gemi 0.63.0 → 0.64.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/AuthController.d.ts.map +1 -1
- package/dist/auth/AuthManager.d.ts +38 -4
- package/dist/auth/AuthManager.d.ts.map +1 -1
- package/dist/auth/UserProvider.d.ts.map +1 -1
- package/dist/auth/config.d.ts.map +1 -1
- package/dist/auth/sessionToken.d.ts +38 -0
- package/dist/auth/sessionToken.d.ts.map +1 -0
- package/dist/auth/types.d.ts +1 -1
- package/dist/auth/types.d.ts.map +1 -1
- package/dist/chunk-2nqxhy1f.js +19 -0
- package/dist/{chunk-anfs5mwm.js.map → chunk-2nqxhy1f.js.map} +11 -10
- package/dist/{chunk-39p7ge47.js → chunk-3tmw1gy2.js} +1 -1
- package/dist/{chunk-tq92xqkk.js → chunk-fwnf3jc6.js} +1 -1
- package/dist/{chunk-0081bz9c.js → chunk-mzpczes2.js} +1 -1
- package/dist/{chunk-maxd55a0.js → chunk-w8ncmp2z.js} +2 -2
- package/dist/{chunk-maxd55a0.js.map → chunk-w8ncmp2z.js.map} +1 -1
- package/dist/client/Link.d.ts +3 -2
- package/dist/client/Link.d.ts.map +1 -1
- package/dist/client/Redirect.d.ts +3 -3
- package/dist/client/Redirect.d.ts.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +4 -6
- package/dist/client/index.js.map +1 -1
- package/dist/facades/Auth.d.ts.map +1 -1
- package/dist/facades/index.js +1 -1
- package/dist/http/index.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/kernel/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/services/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-anfs5mwm.js +0 -19
- /package/dist/{chunk-39p7ge47.js.map → chunk-3tmw1gy2.js.map} +0 -0
- /package/dist/{chunk-tq92xqkk.js.map → chunk-fwnf3jc6.js.map} +0 -0
- /package/dist/{chunk-0081bz9c.js.map → chunk-mzpczes2.js.map} +0 -0
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../auth/AuthManager.ts", "
|
|
3
|
+
"sources": ["../auth/AuthManager.ts", "../internal/isConstructor.ts", "../http/middlewareList.ts", "../http/contentDisposition.ts", "../http/createStreamResponse.ts", "../http/ApiRouter.ts", "../http/McpRouter.ts", "../utils/applyParams.ts", "../facades/Redirect.ts", "../http/ViewRouter.ts", "../http/Middleware.ts", "../http/middleware-config.ts", "../utils/intendedUrl.ts", "../auth/signInRedirect.ts", "../http/AuthenticationMiddlware.ts", "../http/CacheMiddleware.ts", "../http/CorsMiddleware.ts", "../services/rate-limiter/RateLimiter.ts", "../http/RateLimitMiddleware.ts", "../http/CSRFMiddleware.ts", "../http/PoliciesServiceProvider.ts", "../http/Policy.ts", "../auth/sessionToken.ts", "../auth/config.ts", "../auth/requests.ts", "../auth/UserProvider.ts", "../services/router/DomainRouter.ts", "../../../node_modules/.bun/temporal-polyfill@0.2.5/node_modules/temporal-polyfill/chunks/internal.js", "../../../node_modules/.bun/temporal-polyfill@0.2.5/node_modules/temporal-polyfill/chunks/classApi.js", "../auth/AuthController.ts", "../auth/routes.ts", "../i18n/I18nRouter.ts", "../services/image-optimization/drivers/ImageOptimizationDriver.ts", "../services/image-optimization/drivers/SharpDriver.ts", "../services/image-optimization/config.ts", "../services/image-optimization/ImageManager.ts", "../services/logging/LogManager.ts", "../services/logging/LoggingRouter.ts", "../services/middleware/MiddlewareRegistry.ts", "../services/router/config.ts", "../services/router/createFlatApiRoutes.ts", "../services/router/createFlatViewRoutes.ts", "../../../node_modules/.bun/urlpattern-polyfill@10.1.0/node_modules/urlpattern-polyfill/dist/urlpattern.js", "../services/router/matchViewRoute.ts", "../services/router/planPartialRender.ts", "../utils/partialRender.ts", "../services/router/ViewRouteDispatcher.ts", "../services/router/createRouteManifest.ts", "../services/router/createComponentTree.ts", "../client/helpers/flattenComponentTree.ts", "../facades/Log.ts", "../facades/Lang.ts", "../services/kernel-id/KernelId.ts", "../services/router/htmlInsertionPoint.ts", "../services/router/streamQueryInjection.ts", "../services/features/context.ts", "../services/features/bucket.ts", "../services/features/evaluate.ts", "../services/features/FeatureFlagStore.ts", "../services/features/FeatureManager.ts", "../utils/omitNullishValues.ts", "../services/router/ServerQueryStore.ts", "../client/QueryError.ts", "../services/router/policyDenied.ts", "../services/router/serverQueryFetcher.ts", "../services/router/shellContentReport.ts", "../services/router/routePayloadStream.ts", "../services/router/ApiRouteDispatcher.ts", "../services/router/DomainResolver.ts", "../services/pubsub/BroadcastManager.ts", "../facades/Broadcast.ts", "../facades/Auth.ts", "../facades/Prefetch.ts", "../utils/domainUrl.ts", "../facades/Url.ts", "../facades/Meta.ts", "../facades/Cookie.ts", "../services/redis/RedisManager.ts", "../facades/Redis.ts", "../facades/RateLimiter.ts", "../facades/Features.ts", "../facades/DB.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { randomBytes } from \"crypto\";\nimport { Temporal } from \"temporal-polyfill\";\nimport { HttpRequest } from \"../http\";\nimport { authConfigDefaults, type AuthConfig } from \"./config\";\nimport { UserProvider } from \"./UserProvider\";\nimport { withDefaults } from \"../support/withDefaults\";\nimport { app } from \"../foundation/app\";\nimport type { CreateCookieOptions } from \"../http/requestContext\";\nimport { DomainRouter } from \"../services/router/DomainRouter\";\nimport { normalizeHost } from \"../services/router/DomainResolver\";\n\nexport class AuthManager {\n static token = \"auth\";\n\n readonly config: Required<AuthConfig>;\n\n private readonly provider: UserProvider;\n\n /**\n * The provider is a constructor argument rather than a config field, and the\n * distinction is the point: it defaults to the ORM-backed `UserProvider`, so\n * an application configures nothing to get working authentication, while an\n * application that must change a query subclasses it and binds the result in\n * the container.\n *\n * Not a config field because `app/config/auth.ts` is data an app edits, and a\n * persistence implementation is not: routing it through config is what made\n * the old adapter seam a decision every new app had to make before it could\n * log anybody in.\n *\n * Defaulting eagerly is safe — `UserProvider` resolves its models lazily from\n * the registry, so this touches no application module at boot.\n */\n constructor(\n config: AuthConfig = {},\n provider: UserProvider = new UserProvider(),\n ) {\n this.config = withDefaults(authConfigDefaults(config), config);\n this.provider = provider;\n }\n\n /**\n * Everything that reads and writes users, sessions and tokens. Mirrors\n * `Illuminate\\Contracts\\Auth\\UserProvider`.\n */\n get userProvider(): UserProvider {\n return this.provider;\n }\n\n /** How `access_token` is written for `req` — every write goes through here. */\n accessTokenCookieOptions(req: HttpRequest<any, any>, expires: Date): CreateCookieOptions {\n return {\n expires,\n // The scheme the client addressed, not whether the host reads as local.\n // A browser drops a `Secure` cookie from a plain-http origin, and\n // `localhost` is the only such origin it makes an exception for — so a\n // loopback root with subdomains, `acme.lvh.me`, is served over http, is\n // not `localhost`, and could not sign in.\n secure: this.publicOrigin(req).startsWith(\"https://\"),\n httpOnly: true,\n domain: this.cookieDomain(req),\n };\n }\n\n /**\n * The origin the client addressed, through the proxy in front if there is\n * one.\n *\n * `DomainRouter` is bound by `RouteServiceProvider`, which a test that\n * exercises auth against a database need not register — and writing a cookie\n * is no reason to demand the router exist. Without it the request's own\n * origin is the answer, since there is no proxy config to consult.\n */\n private publicOrigin(req: HttpRequest<any, any>): string {\n const resolver = app().bound(DomainRouter) ? app(DomainRouter).resolver : null;\n return resolver ? resolver.publicOrigin(req.rawRequest) : new URL(req.rawRequest.url).origin;\n }\n\n /** `config.cookieDomain` when `req`'s host falls under it, else nothing. */\n cookieDomain(req: HttpRequest<any, any>): string | undefined {\n const setting = this.config.cookieDomain;\n if (!setting) {\n return undefined;\n }\n const domain =\n setting === \"root\" ? app(DomainRouter).resolver?.root : normalizeHost(setting);\n if (!domain) {\n throw new Error(\n '`auth.cookieDomain` is \"root\", but `route.domains` is not configured.',\n );\n }\n const host = req.domain?.host ?? normalizeHost(new URL(req.rawRequest.url).host);\n return host === domain || host?.endsWith(`.${domain}`) ? domain : undefined;\n }\n\n async getSession(token: string, userAgent: string) {\n const session = await this.userProvider.findSession({\n token,\n userAgent,\n });\n let sessionExtension = null;\n if (session?.user) {\n sessionExtension = await this.config.extendSession(session.user);\n session.user[\"extension\"] = sessionExtension;\n }\n return session;\n }\n\n async generateMagicLink(email: string) {}\n\n async upsertSession(params: { email: string; userAgent: string }) {\n await this.userProvider.findSession({ token: \"\", userAgent: \"\" });\n }\n\n async authenticate(email: string) {\n try {\n const user = await this.userProvider.findUserByEmailAddress(email, false);\n if (!user) {\n throw new Error(`User not found with email: ${email}`);\n }\n const session = await this.createOrUpdateSession({ email, id: user.id });\n const req = new HttpRequest();\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n this.accessTokenCookieOptions(req, session.expiresAt),\n );\n if (session?.user) {\n session.user[\"extension\"] = await this.config.extendSession(\n session.user,\n );\n }\n return session;\n } catch (err) {\n console.log(err);\n }\n }\n\n async createOrUpdateSessionV2(user: { email: string; id?: number }) {\n const session = await this.createOrUpdateSession(user);\n\n let sessionExtension = null;\n\n if (session?.user) {\n sessionExtension = await this.config.extendSession(session.user);\n session.user.extension = sessionExtension;\n }\n\n return session;\n }\n\n async createOrUpdateSession(user: { email: string; id?: number }) {\n const req = new HttpRequest();\n\n const userAgent = req.headers.get(\"User-Agent\");\n\n const hasher = new Bun.CryptoHasher(\"sha256\");\n hasher.update(`${user.email}${userAgent}`);\n\n const token = hasher.digest(\"hex\");\n let session = await this.userProvider.findSession({\n token,\n userAgent:\n process.env.NODE_ENV === \"development\"\n ? \"local\"\n : req.headers.get(\"User-Agent\"),\n });\n\n if (!session) {\n let userId: number = user.id;\n if (!userId) {\n const { id } = await this.userProvider.findUserByEmailAddress(\n user.email,\n false,\n );\n userId = id;\n }\n session = await this.userProvider.createSessionV2({\n token,\n userId,\n userAgent:\n process.env.NODE_ENV === \"development\"\n ? \"local\"\n : req.headers.get(\"User-Agent\"),\n expiresAt: new Date(\n Temporal.Now.instant()\n .add({ hours: this.config.sessionExpiresInHours })\n .toString(),\n ),\n absoluteExpiresAt: new Date(\n Temporal.Now.instant()\n .add({ hours: this.config.sessionAbsoluteExpiresInHours })\n .toString(),\n ),\n });\n } else {\n session = await this.userProvider.updateSession({\n token,\n expiresAt: new Date(\n Temporal.Now.instant()\n .add({ hours: this.config.sessionExpiresInHours })\n .toString(),\n ),\n });\n }\n\n return session;\n }\n\n async createMagicLinkToken(email: string) {\n const user = await this.userProvider.findUserByEmailAddress(email, false);\n\n if (user) {\n await this.userProvider.deleteMagicLinkToken(email);\n\n const token = await this.config.generateMagicLinkToken(email);\n\n const pin = (Number.parseInt(randomBytes(4).toString(\"hex\"), 16) % 1000000)\n .toString()\n .padStart(6, \"0\");\n\n await this.userProvider.createMagicLinkToken({\n email,\n token,\n pin,\n });\n\n return {\n user,\n email,\n pin,\n token,\n };\n }\n\n return {};\n }\n}\n",
|
|
6
|
-
"function clampProp(e, n, t, o, r) {\n return clampEntity(n, getDefinedProp(e, n), t, o, r);\n}\n\nfunction clampEntity(e, n, t, o, r, i) {\n const a = clampNumber(n, t, o);\n if (r && n !== a) {\n throw new RangeError(numberOutOfRange(e, n, t, o, i));\n }\n return a;\n}\n\nfunction getDefinedProp(e, n) {\n const t = e[n];\n if (void 0 === t) {\n throw new TypeError(missingField(n));\n }\n return t;\n}\n\nfunction z(e) {\n return null !== e && /object|function/.test(typeof e);\n}\n\nfunction Jn(e, n = Map) {\n const t = new n;\n return (n, ...o) => {\n if (t.has(n)) {\n return t.get(n);\n }\n const r = e(n, ...o);\n return t.set(n, r), r;\n };\n}\n\nfunction D(e) {\n return p({\n name: e\n }, 1);\n}\n\nfunction p(e, n) {\n return T((e => ({\n value: e,\n configurable: 1,\n writable: !n\n })), e);\n}\n\nfunction O(e) {\n return T((e => ({\n get: e,\n configurable: 1\n })), e);\n}\n\nfunction h(e) {\n return {\n [Symbol.toStringTag]: {\n value: e,\n configurable: 1\n }\n };\n}\n\nfunction zipProps(e, n) {\n const t = {};\n let o = e.length;\n for (const r of n) {\n t[e[--o]] = r;\n }\n return t;\n}\n\nfunction T(e, n, t) {\n const o = {};\n for (const r in n) {\n o[r] = e(n[r], r, t);\n }\n return o;\n}\n\nfunction b(e, n, t) {\n const o = {};\n for (let r = 0; r < n.length; r++) {\n const i = n[r];\n o[i] = e(i, r, t);\n }\n return o;\n}\n\nfunction remapProps(e, n, t) {\n const o = {};\n for (let r = 0; r < e.length; r++) {\n o[n[r]] = t[e[r]];\n }\n return o;\n}\n\nfunction Vn(e, n) {\n const t = {};\n for (const o of e) {\n t[o] = n[o];\n }\n return t;\n}\n\nfunction V(e, n) {\n const t = {};\n for (const o in n) {\n e.has(o) || (t[o] = n[o]);\n }\n return t;\n}\n\nfunction nn(e) {\n e = {\n ...e\n };\n const n = Object.keys(e);\n for (const t of n) {\n void 0 === e[t] && delete e[t];\n }\n return e;\n}\n\nfunction C(e, n) {\n for (const t of n) {\n if (!(t in e)) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction allPropsEqual(e, n, t) {\n for (const o of e) {\n if (n[o] !== t[o]) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction zeroOutProps(e, n, t) {\n const o = {\n ...t\n };\n for (let t = 0; t < n; t++) {\n o[e[t]] = 0;\n }\n return o;\n}\n\nfunction E(e, ...n) {\n return (...t) => e(...n, ...t);\n}\n\nfunction capitalize(e) {\n return e[0].toUpperCase() + e.substring(1);\n}\n\nfunction sortStrings(e) {\n return e.slice().sort();\n}\n\nfunction padNumber(e, n) {\n return String(n).padStart(e, \"0\");\n}\n\nfunction compareNumbers(e, n) {\n return Math.sign(e - n);\n}\n\nfunction clampNumber(e, n, t) {\n return Math.min(Math.max(e, n), t);\n}\n\nfunction divModFloor(e, n) {\n return [ Math.floor(e / n), modFloor(e, n) ];\n}\n\nfunction modFloor(e, n) {\n return (e % n + n) % n;\n}\n\nfunction divModTrunc(e, n) {\n return [ divTrunc(e, n), modTrunc(e, n) ];\n}\n\nfunction divTrunc(e, n) {\n return Math.trunc(e / n) || 0;\n}\n\nfunction modTrunc(e, n) {\n return e % n || 0;\n}\n\nfunction hasHalf(e) {\n return .5 === Math.abs(e % 1);\n}\n\nfunction givenFieldsToBigNano(e, n, t) {\n let o = 0, r = 0;\n for (let i = 0; i <= n; i++) {\n const n = e[t[i]], a = Xr[i], s = Qr / a, [c, u] = divModTrunc(n, s);\n o += u * a, r += c;\n }\n const [i, a] = divModTrunc(o, Qr);\n return [ r + i, a ];\n}\n\nfunction nanoToGivenFields(e, n, t) {\n const o = {};\n for (let r = n; r >= 0; r--) {\n const n = Xr[r];\n o[t[r]] = divTrunc(e, n), e = modTrunc(e, n);\n }\n return o;\n}\n\nfunction un(e) {\n return e === X ? si : [];\n}\n\nfunction cn(e) {\n return e === X ? li : [];\n}\n\nfunction ln(e) {\n return e === X ? [ \"year\", \"day\" ] : [];\n}\n\nfunction l(e) {\n if (void 0 !== e) {\n return m(e);\n }\n}\n\nfunction S(e) {\n if (void 0 !== e) {\n return d(e);\n }\n}\n\nfunction c(e) {\n if (void 0 !== e) {\n return u(e);\n }\n}\n\nfunction d(e) {\n return requireNumberIsPositive(u(e));\n}\n\nfunction u(e) {\n return requireNumberIsInteger(Mi(e));\n}\n\nfunction on(e) {\n if (null == e) {\n throw new TypeError(\"Cannot be null or undefined\");\n }\n return e;\n}\n\nfunction requirePropDefined(e, n) {\n if (null == n) {\n throw new RangeError(missingField(e));\n }\n return n;\n}\n\nfunction de(e) {\n if (!z(e)) {\n throw new TypeError(hr);\n }\n return e;\n}\n\nfunction requireType(e, n, t = e) {\n if (typeof n !== e) {\n throw new TypeError(invalidEntity(t, n));\n }\n return n;\n}\n\nfunction requireNumberIsInteger(e, n = \"number\") {\n if (!Number.isInteger(e)) {\n throw new RangeError(expectedInteger(n, e));\n }\n return e || 0;\n}\n\nfunction requireNumberIsPositive(e, n = \"number\") {\n if (e <= 0) {\n throw new RangeError(expectedPositive(n, e));\n }\n return e;\n}\n\nfunction toString(e) {\n if (\"symbol\" == typeof e) {\n throw new TypeError(pr);\n }\n return String(e);\n}\n\nfunction toStringViaPrimitive(e, n) {\n return z(e) ? String(e) : m(e, n);\n}\n\nfunction toBigInt(e) {\n if (\"string\" == typeof e) {\n return BigInt(e);\n }\n if (\"bigint\" != typeof e) {\n throw new TypeError(invalidBigInt(e));\n }\n return e;\n}\n\nfunction toNumber(e, n = \"number\") {\n if (\"bigint\" == typeof e) {\n throw new TypeError(forbiddenBigIntToNumber(n));\n }\n if (e = Number(e), !Number.isFinite(e)) {\n throw new RangeError(expectedFinite(n, e));\n }\n return e;\n}\n\nfunction toInteger(e, n) {\n return Math.trunc(toNumber(e, n)) || 0;\n}\n\nfunction toStrictInteger(e, n) {\n return requireNumberIsInteger(toNumber(e, n), n);\n}\n\nfunction toPositiveInteger(e, n) {\n return requireNumberIsPositive(toInteger(e, n), n);\n}\n\nfunction createBigNano(e, n) {\n let [t, o] = divModTrunc(n, Qr), r = e + t;\n const i = Math.sign(r);\n return i && i === -Math.sign(o) && (r -= i, o += i * Qr), [ r, o ];\n}\n\nfunction addBigNanos(e, n, t = 1) {\n return createBigNano(e[0] + n[0] * t, e[1] + n[1] * t);\n}\n\nfunction moveBigNano(e, n) {\n return createBigNano(e[0], e[1] + n);\n}\n\nfunction re(e, n) {\n return addBigNanos(n, e, -1);\n}\n\nfunction te(e, n) {\n return compareNumbers(e[0], n[0]) || compareNumbers(e[1], n[1]);\n}\n\nfunction bigNanoOutside(e, n, t) {\n return -1 === te(e, n) || 1 === te(e, t);\n}\n\nfunction bigIntToBigNano(e, n = 1) {\n const t = BigInt(Qr / n);\n return [ Number(e / t), Number(e % t) * n ];\n}\n\nfunction he(e, n = 1) {\n const t = Qr / n, [o, r] = divModTrunc(e, t);\n return [ o, r * n ];\n}\n\nfunction bigNanoToBigInt(e, n = 1) {\n const [t, o] = e, r = Math.floor(o / n), i = Qr / n;\n return BigInt(t) * BigInt(i) + BigInt(r);\n}\n\nfunction oe(e, n = 1, t) {\n const [o, r] = e, [i, a] = divModTrunc(r, n);\n return o * (Qr / n) + (i + (t ? a / n : 0));\n}\n\nfunction divModBigNano(e, n, t = divModFloor) {\n const [o, r] = e, [i, a] = t(r, n);\n return [ o * (Qr / n) + i, a ];\n}\n\nfunction hashIntlFormatParts(e, n) {\n const t = e.formatToParts(n), o = {};\n for (const e of t) {\n o[e.type] = e.value;\n }\n return o;\n}\n\nfunction checkIsoYearMonthInBounds(e) {\n return clampProp(e, \"isoYear\", Li, Ai, 1), e.isoYear === Li ? clampProp(e, \"isoMonth\", 4, 12, 1) : e.isoYear === Ai && clampProp(e, \"isoMonth\", 1, 9, 1), \n e;\n}\n\nfunction checkIsoDateInBounds(e) {\n return checkIsoDateTimeInBounds({\n ...e,\n ...Dt,\n isoHour: 12\n }), e;\n}\n\nfunction checkIsoDateTimeInBounds(e) {\n const n = clampProp(e, \"isoYear\", Li, Ai, 1), t = n === Li ? 1 : n === Ai ? -1 : 0;\n return t && checkEpochNanoInBounds(isoToEpochNano({\n ...e,\n isoDay: e.isoDay + t,\n isoNanosecond: e.isoNanosecond - t\n })), e;\n}\n\nfunction checkEpochNanoInBounds(e) {\n if (!e || bigNanoOutside(e, Ui, qi)) {\n throw new RangeError(Cr);\n }\n return e;\n}\n\nfunction isoTimeFieldsToNano(e) {\n return givenFieldsToBigNano(e, 5, j)[1];\n}\n\nfunction nanoToIsoTimeAndDay(e) {\n const [n, t] = divModFloor(e, Qr);\n return [ nanoToGivenFields(t, 5, j), n ];\n}\n\nfunction epochNanoToSec(e) {\n return epochNanoToSecMod(e)[0];\n}\n\nfunction epochNanoToSecMod(e) {\n return divModBigNano(e, _r);\n}\n\nfunction isoToEpochMilli(e) {\n return isoArgsToEpochMilli(e.isoYear, e.isoMonth, e.isoDay, e.isoHour, e.isoMinute, e.isoSecond, e.isoMillisecond);\n}\n\nfunction isoToEpochNano(e) {\n const n = isoToEpochMilli(e);\n if (void 0 !== n) {\n const [t, o] = divModTrunc(n, Gr);\n return [ t, o * be + (e.isoMicrosecond || 0) * Vr + (e.isoNanosecond || 0) ];\n }\n}\n\nfunction isoToEpochNanoWithOffset(e, n) {\n const [t, o] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) - n);\n return checkEpochNanoInBounds(isoToEpochNano({\n ...e,\n isoDay: e.isoDay + o,\n ...t\n }));\n}\n\nfunction isoArgsToEpochSec(...e) {\n return isoArgsToEpochMilli(...e) / Hr;\n}\n\nfunction isoArgsToEpochMilli(...e) {\n const [n, t] = isoToLegacyDate(...e), o = n.valueOf();\n if (!isNaN(o)) {\n return o - t * Gr;\n }\n}\n\nfunction isoToLegacyDate(e, n = 1, t = 1, o = 0, r = 0, i = 0, a = 0) {\n const s = e === Li ? 1 : e === Ai ? -1 : 0, c = new Date;\n return c.setUTCHours(o, r, i, a), c.setUTCFullYear(e, n - 1, t + s), [ c, s ];\n}\n\nfunction Ie(e, n) {\n let [t, o] = moveBigNano(e, n);\n o < 0 && (o += Qr, t -= 1);\n const [r, i] = divModFloor(o, be), [a, s] = divModFloor(i, Vr);\n return epochMilliToIso(t * Gr + r, a, s);\n}\n\nfunction epochMilliToIso(e, n = 0, t = 0) {\n const o = Math.ceil(Math.max(0, Math.abs(e) - zi) / Gr) * Math.sign(e), r = new Date(e - o * Gr);\n return zipProps(wi, [ r.getUTCFullYear(), r.getUTCMonth() + 1, r.getUTCDate() + o, r.getUTCHours(), r.getUTCMinutes(), r.getUTCSeconds(), r.getUTCMilliseconds(), n, t ]);\n}\n\nfunction computeIsoDateParts(e) {\n return [ e.isoYear, e.isoMonth, e.isoDay ];\n}\n\nfunction computeIsoMonthsInYear() {\n return xi;\n}\n\nfunction computeIsoDaysInMonth(e, n) {\n switch (n) {\n case 2:\n return computeIsoInLeapYear(e) ? 29 : 28;\n\n case 4:\n case 6:\n case 9:\n case 11:\n return 30;\n }\n return 31;\n}\n\nfunction computeIsoDaysInYear(e) {\n return computeIsoInLeapYear(e) ? 366 : 365;\n}\n\nfunction computeIsoInLeapYear(e) {\n return e % 4 == 0 && (e % 100 != 0 || e % 400 == 0);\n}\n\nfunction computeIsoDayOfWeek(e) {\n const [n, t] = isoToLegacyDate(e.isoYear, e.isoMonth, e.isoDay);\n return modFloor(n.getUTCDay() - t, 7) || 7;\n}\n\nfunction computeGregoryEraParts({isoYear: e}) {\n return e < 1 ? [ \"bce\", 1 - e ] : [ \"ce\", e ];\n}\n\nfunction computeJapaneseEraParts(e) {\n const n = isoToEpochMilli(e);\n if (n < $i) {\n return computeGregoryEraParts(e);\n }\n const t = hashIntlFormatParts(La(Ti), n), {era: o, eraYear: r} = parseIntlYear(t, Ti);\n return [ o, r ];\n}\n\nfunction checkIsoDateTimeFields(e) {\n return checkIsoDateFields(e), constrainIsoTimeFields(e, 1), e;\n}\n\nfunction checkIsoDateFields(e) {\n return constrainIsoDateFields(e, 1), e;\n}\n\nfunction isIsoDateFieldsValid(e) {\n return allPropsEqual(Oi, e, constrainIsoDateFields(e));\n}\n\nfunction constrainIsoDateFields(e, n) {\n const {isoYear: t} = e, o = clampProp(e, \"isoMonth\", 1, computeIsoMonthsInYear(), n);\n return {\n isoYear: t,\n isoMonth: o,\n isoDay: clampProp(e, \"isoDay\", 1, computeIsoDaysInMonth(t, o), n)\n };\n}\n\nfunction constrainIsoTimeFields(e, n) {\n return zipProps(j, [ clampProp(e, \"isoHour\", 0, 23, n), clampProp(e, \"isoMinute\", 0, 59, n), clampProp(e, \"isoSecond\", 0, 59, n), clampProp(e, \"isoMillisecond\", 0, 999, n), clampProp(e, \"isoMicrosecond\", 0, 999, n), clampProp(e, \"isoNanosecond\", 0, 999, n) ]);\n}\n\nfunction H(e) {\n return void 0 === e ? 0 : ua(de(e));\n}\n\nfunction wn(e, n = 0) {\n e = normalizeOptions(e);\n const t = la(e), o = fa(e, n);\n return [ ua(e), o, t ];\n}\n\nfunction ve(e) {\n return la(normalizeOptions(e));\n}\n\nfunction _t(e) {\n return e = normalizeOptions(e), sa(e, 9, 6, 1);\n}\n\nfunction refineDiffOptions(e, n, t, o = 9, r = 0, i = 4) {\n n = normalizeOptions(n);\n let a = sa(n, o, r), s = parseRoundingIncInteger(n), c = ha(n, i);\n const u = aa(n, o, r, 1);\n return null == a ? a = Math.max(t, u) : checkLargestSmallestUnit(a, u), s = refineRoundingInc(s, u, 1), \n e && (c = (e => e < 4 ? (e + 2) % 4 : e)(c)), [ a, u, s, c ];\n}\n\nfunction refineRoundingOptions(e, n = 6, t) {\n let o = parseRoundingIncInteger(e = normalizeOptionsOrString(e, Hi));\n const r = ha(e, 7);\n let i = aa(e, n);\n return i = requirePropDefined(Hi, i), o = refineRoundingInc(o, i, void 0, t), [ i, o, r ];\n}\n\nfunction refineDateDisplayOptions(e) {\n return da(normalizeOptions(e));\n}\n\nfunction refineTimeDisplayOptions(e, n) {\n return refineTimeDisplayTuple(normalizeOptions(e), n);\n}\n\nfunction refineTimeDisplayTuple(e, n = 4) {\n const t = refineSubsecDigits(e);\n return [ ha(e, 4), ...refineSmallestUnitAndSubsecDigits(aa(e, n), t) ];\n}\n\nfunction refineSmallestUnitAndSubsecDigits(e, n) {\n return null != e ? [ Xr[e], e < 4 ? 9 - 3 * e : -1 ] : [ void 0 === n ? 1 : 10 ** (9 - n), n ];\n}\n\nfunction parseRoundingIncInteger(e) {\n const n = e[_i];\n return void 0 === n ? 1 : toInteger(n, _i);\n}\n\nfunction refineRoundingInc(e, n, t, o) {\n const r = o ? Qr : Xr[n + 1];\n if (r) {\n const t = Xr[n];\n if (r % ((e = clampEntity(_i, e, 1, r / t - (o ? 0 : 1), 1)) * t)) {\n throw new RangeError(invalidEntity(_i, e));\n }\n } else {\n e = clampEntity(_i, e, 1, t ? 10 ** 9 : 1, 1);\n }\n return e;\n}\n\nfunction refineSubsecDigits(e) {\n let n = e[Ji];\n if (void 0 !== n) {\n if (\"number\" != typeof n) {\n if (\"auto\" === toString(n)) {\n return;\n }\n throw new RangeError(invalidEntity(Ji, n));\n }\n n = clampEntity(Ji, Math.floor(n), 0, 9, 1);\n }\n return n;\n}\n\nfunction normalizeOptions(e) {\n return void 0 === e ? {} : de(e);\n}\n\nfunction normalizeOptionsOrString(e, n) {\n return \"string\" == typeof e ? {\n [n]: e\n } : de(e);\n}\n\nfunction U(e) {\n if (void 0 !== e) {\n if (z(e)) {\n return Object.assign(Object.create(null), e);\n }\n throw new TypeError(hr);\n }\n}\n\nfunction overrideOverflowOptions(e, n) {\n return e && Object.assign(Object.create(null), e, {\n overflow: Xi[n]\n });\n}\n\nfunction refineUnitOption(e, n, t = 9, o = 0, r) {\n let i = n[e];\n if (void 0 === i) {\n return r ? o : void 0;\n }\n if (i = toString(i), \"auto\" === i) {\n return r ? o : null;\n }\n let a = $r[i];\n if (void 0 === a && (a = Ei[i]), void 0 === a) {\n throw new RangeError(invalidChoice(e, i, $r));\n }\n return clampEntity(e, a, o, t, 1, Et), a;\n}\n\nfunction refineChoiceOption(e, n, t, o = 0) {\n const r = t[e];\n if (void 0 === r) {\n return o;\n }\n const i = toString(r), a = n[i];\n if (void 0 === a) {\n throw new RangeError(invalidChoice(e, i, n));\n }\n return a;\n}\n\nfunction checkLargestSmallestUnit(e, n) {\n if (n > e) {\n throw new RangeError(Ar);\n }\n}\n\nfunction _(e) {\n return {\n branding: Oe,\n epochNanoseconds: e\n };\n}\n\nfunction Yn(e, n, t) {\n return {\n branding: Te,\n calendar: t,\n timeZone: n,\n epochNanoseconds: e\n };\n}\n\nfunction ee(e, n = e.calendar) {\n return {\n branding: We,\n calendar: n,\n ...Vn(Yi, e)\n };\n}\n\nfunction v(e, n = e.calendar) {\n return {\n branding: J,\n calendar: n,\n ...Vn(Bi, e)\n };\n}\n\nfunction createPlainYearMonthSlots(e, n = e.calendar) {\n return {\n branding: L,\n calendar: n,\n ...Vn(Bi, e)\n };\n}\n\nfunction createPlainMonthDaySlots(e, n = e.calendar) {\n return {\n branding: q,\n calendar: n,\n ...Vn(Bi, e)\n };\n}\n\nfunction Ge(e) {\n return {\n branding: xe,\n ...Vn(ki, e)\n };\n}\n\nfunction Vt(e) {\n return {\n branding: qt,\n sign: computeDurationSign(e),\n ...Vn(Ni, e)\n };\n}\n\nfunction M(e) {\n return epochNanoToSec(e.epochNanoseconds);\n}\n\nfunction y(e) {\n return divModBigNano(e.epochNanoseconds, be)[0];\n}\n\nfunction N(e) {\n return bigNanoToBigInt(e.epochNanoseconds, Vr);\n}\n\nfunction B(e) {\n return bigNanoToBigInt(e.epochNanoseconds);\n}\n\nfunction extractEpochNano(e) {\n return e.epochNanoseconds;\n}\n\nfunction I(e) {\n return \"string\" == typeof e ? e : m(e.id);\n}\n\nfunction isIdLikeEqual(e, n) {\n return e === n || I(e) === I(n);\n}\n\nfunction Ut(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s] = ((e, n) => {\n const t = n((e = normalizeOptionsOrString(e, Vi))[Ki]);\n let o = ca(e);\n return o = requirePropDefined(Vi, o), [ o, t ];\n })(r, e);\n if (isUniformUnit(Math.max(a, i), s)) {\n return totalDayTimeDuration(o, a);\n }\n if (!s) {\n throw new RangeError(zr);\n }\n const [c, u, l] = createMarkerSystem(n, t, s), f = createMarkerToEpochNano(l), d = createMoveMarker(l), m = createDiffMarkers(l), p = d(u, c, o), h = m(u, c, p, a);\n return isUniformUnit(a, s) ? totalDayTimeDuration(h, a) : ((e, n, t, o, r, i, a) => {\n const s = computeDurationSign(e), [c, u] = clampRelativeDuration(o, bi(t, e), t, s, r, i, a), l = computeEpochNanoFrac(n, c, u);\n return e[F[t]] + l * s;\n })(h, f(p), a, u, c, f, d);\n}\n\nfunction totalDayTimeDuration(e, n) {\n return oe(durationFieldsToBigNano(e), Xr[n], 1);\n}\n\nfunction clampRelativeDuration(e, n, t, o, r, i, a) {\n const s = F[t], c = {\n ...n,\n [s]: n[s] + o\n }, u = a(e, r, n), l = a(e, r, c);\n return [ i(u), i(l) ];\n}\n\nfunction computeEpochNanoFrac(e, n, t) {\n const o = oe(re(n, t));\n if (!o) {\n throw new RangeError(vr);\n }\n return oe(re(n, e)) / o;\n}\n\nfunction ce(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5, 1);\n return _(roundBigNano(e.epochNanoseconds, t, o, r, 1));\n}\n\nfunction Pn(e, n, t) {\n let {epochNanoseconds: o, timeZone: r, calendar: i} = n;\n const [a, s, c] = refineRoundingOptions(t);\n if (0 === a && 1 === s) {\n return n;\n }\n const u = e(r);\n if (6 === a) {\n o = ((e, n, t, o) => {\n const r = fn(t, n), [i, a] = e(r), s = t.epochNanoseconds, c = we(n, i), u = we(n, a);\n if (bigNanoOutside(s, c, u)) {\n throw new RangeError(vr);\n }\n return roundWithMode(computeEpochNanoFrac(s, c, u), o) ? u : c;\n })(computeDayInterval, u, n, c);\n } else {\n const e = u.getOffsetNanosecondsFor(o);\n o = getMatchingInstantFor(u, roundDateTime(Ie(o, e), a, s, c), e, 2, 0, 1);\n }\n return Yn(o, r, i);\n}\n\nfunction dt(e, n) {\n return ee(roundDateTime(e, ...refineRoundingOptions(n)), e.calendar);\n}\n\nfunction Ee(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5);\n var i;\n return Ge((i = r, roundTimeToNano(e, computeNanoInc(t, o), i)[0]));\n}\n\nfunction dn(e, n) {\n const t = e(n.timeZone), o = fn(n, t), [r, i] = computeDayInterval(o), a = oe(re(we(t, r), we(t, i)), Kr, 1);\n if (a <= 0) {\n throw new RangeError(vr);\n }\n return a;\n}\n\nfunction Cn(e, n) {\n const {timeZone: t, calendar: o} = n, r = ((e, n, t) => we(n, e(fn(t, n))))(computeDayFloor, e(t), n);\n return Yn(r, t, o);\n}\n\nfunction roundDateTime(e, n, t, o) {\n return roundDateTimeToNano(e, computeNanoInc(n, t), o);\n}\n\nfunction roundDateTimeToNano(e, n, t) {\n const [o, r] = roundTimeToNano(e, n, t);\n return checkIsoDateTimeInBounds({\n ...moveByDays(e, r),\n ...o\n });\n}\n\nfunction roundTimeToNano(e, n, t) {\n return nanoToIsoTimeAndDay(roundByInc(isoTimeFieldsToNano(e), n, t));\n}\n\nfunction roundToMinute(e) {\n return roundByInc(e, Jr, 7);\n}\n\nfunction computeNanoInc(e, n) {\n return Xr[e] * n;\n}\n\nfunction computeDayInterval(e) {\n const n = computeDayFloor(e);\n return [ n, moveByDays(n, 1) ];\n}\n\nfunction computeDayFloor(e) {\n return Ci(6, e);\n}\n\nfunction roundDayTimeDurationByInc(e, n, t) {\n const o = Math.min(getMaxDurationUnit(e), 6);\n return nanoToDurationDayTimeFields(roundBigNanoByInc(durationFieldsToBigNano(e, o), n, t), o);\n}\n\nfunction roundRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n if (0 === o && 1 === r) {\n return e;\n }\n const l = isUniformUnit(o, s) ? isZonedEpochSlots(s) && o < 6 && t >= 6 ? nudgeZonedTimeDuration : nudgeDayTimeDuration : nudgeRelativeDuration;\n let [f, d, m] = l(e, n, t, o, r, i, a, s, c, u);\n return m && 7 !== o && (f = ((e, n, t, o, r, i, a, s) => {\n const c = computeDurationSign(e);\n for (let u = o + 1; u <= t; u++) {\n if (7 === u && 7 !== t) {\n continue;\n }\n const o = bi(u, e);\n o[F[u]] += c;\n const l = oe(re(a(s(r, i, o)), n));\n if (l && Math.sign(l) !== c) {\n break;\n }\n e = o;\n }\n return e;\n })(f, d, t, Math.max(6, o), a, s, c, u)), f;\n}\n\nfunction roundBigNano(e, n, t, o, r) {\n if (6 === n) {\n const n = (e => e[0] + e[1] / Qr)(e);\n return [ roundByInc(n, t, o), 0 ];\n }\n return roundBigNanoByInc(e, computeNanoInc(n, t), o, r);\n}\n\nfunction roundBigNanoByInc(e, n, t, o) {\n let [r, i] = e;\n o && i < 0 && (i += Qr, r -= 1);\n const [a, s] = divModFloor(roundByInc(i, n, t), Qr);\n return createBigNano(r + a, s);\n}\n\nfunction roundByInc(e, n, t) {\n return roundWithMode(e / n, t) * n;\n}\n\nfunction roundWithMode(e, n) {\n return ga[n](e);\n}\n\nfunction nudgeDayTimeDuration(e, n, t, o, r, i) {\n const a = computeDurationSign(e), s = durationFieldsToBigNano(e), c = roundBigNano(s, o, r, i), u = re(s, c), l = Math.sign(c[0] - s[0]) === a, f = nanoToDurationDayTimeFields(c, Math.min(t, 6));\n return [ {\n ...e,\n ...f\n }, addBigNanos(n, u), l ];\n}\n\nfunction nudgeZonedTimeDuration(e, n, t, o, r, i, a, s, c, u) {\n const l = computeDurationSign(e), f = oe(durationFieldsToBigNano(e, 5)), d = computeNanoInc(o, r);\n let m = roundByInc(f, d, i);\n const [p, h] = clampRelativeDuration(a, {\n ...e,\n ...Fi\n }, 6, l, s, c, u), g = m - oe(re(p, h));\n let T = 0;\n g && Math.sign(g) !== l ? n = moveBigNano(p, m) : (T += l, m = roundByInc(g, d, i), \n n = moveBigNano(h, m));\n const D = nanoToDurationTimeFields(m);\n return [ {\n ...e,\n ...D,\n days: e.days + T\n }, n, Boolean(T) ];\n}\n\nfunction nudgeRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n const l = computeDurationSign(e), f = F[o], d = bi(o, e);\n 7 === o && (e = {\n ...e,\n weeks: e.weeks + Math.trunc(e.days / 7)\n });\n const m = divTrunc(e[f], r) * r;\n d[f] = m;\n const [p, h] = clampRelativeDuration(a, d, o, r * l, s, c, u), g = m + computeEpochNanoFrac(n, p, h) * l * r, T = roundByInc(g, r, i), D = Math.sign(T - g) === l;\n return d[f] = T, [ d, D ? h : p, D ];\n}\n\nfunction me(e, n, t, o) {\n const [r, i, a, s] = (e => {\n const n = refineTimeDisplayTuple(e = normalizeOptions(e));\n return [ e.timeZone, ...n ];\n })(o), c = void 0 !== r;\n return ((e, n, t, o, r, i) => {\n t = roundBigNanoByInc(t, r, o, 1);\n const a = n.getOffsetNanosecondsFor(t);\n return formatIsoDateTimeFields(Ie(t, a), i) + (e ? Fe(roundToMinute(a)) : \"Z\");\n })(c, n(c ? e(r) : Ta), t.epochNanoseconds, i, a, s);\n}\n\nfunction In(e, n, t) {\n const [o, r, i, a, s, c] = (e => {\n e = normalizeOptions(e);\n const n = da(e), t = refineSubsecDigits(e), o = pa(e), r = ha(e, 4), i = aa(e, 4);\n return [ n, ma(e), o, r, ...refineSmallestUnitAndSubsecDigits(i, t) ];\n })(t);\n return ((e, n, t, o, r, i, a, s, c, u) => {\n o = roundBigNanoByInc(o, c, s, 1);\n const l = e(t).getOffsetNanosecondsFor(o);\n return formatIsoDateTimeFields(Ie(o, l), u) + Fe(roundToMinute(l), a) + ((e, n) => 1 !== n ? \"[\" + (2 === n ? \"!\" : \"\") + I(e) + \"]\" : \"\")(t, i) + formatCalendar(n, r);\n })(e, n.calendar, n.timeZone, n.epochNanoseconds, o, r, i, a, s, c);\n}\n\nfunction Tt(e, n) {\n const [t, o, r, i] = (e => (e = normalizeOptions(e), [ da(e), ...refineTimeDisplayTuple(e) ]))(n);\n return a = e.calendar, s = t, c = i, formatIsoDateTimeFields(roundDateTimeToNano(e, r, o), c) + formatCalendar(a, s);\n var a, s, c;\n}\n\nfunction yt(e, n) {\n return t = e.calendar, o = e, r = refineDateDisplayOptions(n), formatIsoDateFields(o) + formatCalendar(t, r);\n var t, o, r;\n}\n\nfunction et(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoYearMonthFields, e, refineDateDisplayOptions(n));\n}\n\nfunction W(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoMonthDayFields, e, refineDateDisplayOptions(n));\n}\n\nfunction qe(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n);\n return i = r, formatIsoTimeFields(roundTimeToNano(e, o, t)[0], i);\n var i;\n}\n\nfunction zt(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n, 3);\n return o > 1 && (e = {\n ...e,\n ...roundDayTimeDurationByInc(e, o, t)\n }), ((e, n) => {\n const {sign: t} = e, o = -1 === t ? negateDurationFields(e) : e, {hours: r, minutes: i} = o, [a, s] = divModBigNano(durationFieldsToBigNano(o, 3), _r, divModTrunc);\n checkDurationTimeUnit(a);\n const c = formatSubsecNano(s, n), u = n >= 0 || !t || c;\n return (t < 0 ? \"-\" : \"\") + \"P\" + formatDurationFragments({\n Y: formatDurationNumber(o.years),\n M: formatDurationNumber(o.months),\n W: formatDurationNumber(o.weeks),\n D: formatDurationNumber(o.days)\n }) + (r || i || a || u ? \"T\" + formatDurationFragments({\n H: formatDurationNumber(r),\n M: formatDurationNumber(i),\n S: formatDurationNumber(a, u) + c\n }) : \"\");\n })(e, r);\n}\n\nfunction formatDateLikeIso(e, n, t, o) {\n const r = I(e), i = o > 1 || 0 === o && r !== X;\n return 1 === o ? r === X ? n(t) : formatIsoDateFields(t) : i ? formatIsoDateFields(t) + formatCalendarId(r, 2 === o) : n(t);\n}\n\nfunction formatDurationFragments(e) {\n const n = [];\n for (const t in e) {\n const o = e[t];\n o && n.push(o, t);\n }\n return n.join(\"\");\n}\n\nfunction formatIsoDateTimeFields(e, n) {\n return formatIsoDateFields(e) + \"T\" + formatIsoTimeFields(e, n);\n}\n\nfunction formatIsoDateFields(e) {\n return formatIsoYearMonthFields(e) + \"-\" + xr(e.isoDay);\n}\n\nfunction formatIsoYearMonthFields(e) {\n const {isoYear: n} = e;\n return (n < 0 || n > 9999 ? getSignStr(n) + padNumber(6, Math.abs(n)) : padNumber(4, n)) + \"-\" + xr(e.isoMonth);\n}\n\nfunction formatIsoMonthDayFields(e) {\n return xr(e.isoMonth) + \"-\" + xr(e.isoDay);\n}\n\nfunction formatIsoTimeFields(e, n) {\n const t = [ xr(e.isoHour), xr(e.isoMinute) ];\n return -1 !== n && t.push(xr(e.isoSecond) + ((e, n, t, o) => formatSubsecNano(e * be + n * Vr + t, o))(e.isoMillisecond, e.isoMicrosecond, e.isoNanosecond, n)), \n t.join(\":\");\n}\n\nfunction Fe(e, n = 0) {\n if (1 === n) {\n return \"\";\n }\n const [t, o] = divModFloor(Math.abs(e), Kr), [r, i] = divModFloor(o, Jr), [a, s] = divModFloor(i, _r);\n return getSignStr(e) + xr(t) + \":\" + xr(r) + (a || s ? \":\" + xr(a) + formatSubsecNano(s) : \"\");\n}\n\nfunction formatCalendar(e, n) {\n if (1 !== n) {\n const t = I(e);\n if (n > 1 || 0 === n && t !== X) {\n return formatCalendarId(t, 2 === n);\n }\n }\n return \"\";\n}\n\nfunction formatCalendarId(e, n) {\n return \"[\" + (n ? \"!\" : \"\") + \"u-ca=\" + e + \"]\";\n}\n\nfunction formatSubsecNano(e, n) {\n let t = padNumber(9, e);\n return t = void 0 === n ? t.replace(Na, \"\") : t.slice(0, n), t ? \".\" + t : \"\";\n}\n\nfunction getSignStr(e) {\n return e < 0 ? \"-\" : \"+\";\n}\n\nfunction formatDurationNumber(e, n) {\n return e || n ? e.toLocaleString(\"fullwide\", {\n useGrouping: 0\n }) : \"\";\n}\n\nfunction _zonedEpochSlotsToIso(e, n) {\n const {epochNanoseconds: t} = e, o = (n.getOffsetNanosecondsFor ? n : n(e.timeZone)).getOffsetNanosecondsFor(t), r = Ie(t, o);\n return {\n calendar: e.calendar,\n ...r,\n offsetNanoseconds: o\n };\n}\n\nfunction mn(e, n) {\n const t = fn(n, e);\n return {\n calendar: n.calendar,\n ...Vn(Yi, t),\n offset: Fe(t.offsetNanoseconds),\n timeZone: n.timeZone\n };\n}\n\nfunction getMatchingInstantFor(e, n, t, o = 0, r = 0, i, a) {\n if (void 0 !== t && 1 === o && (1 === o || a)) {\n return isoToEpochNanoWithOffset(n, t);\n }\n const s = e.getPossibleInstantsFor(n);\n if (void 0 !== t && 3 !== o) {\n const e = ((e, n, t, o) => {\n const r = isoToEpochNano(n);\n o && (t = roundToMinute(t));\n for (const n of e) {\n let e = oe(re(n, r));\n if (o && (e = roundToMinute(e)), e === t) {\n return n;\n }\n }\n })(s, n, t, i);\n if (void 0 !== e) {\n return e;\n }\n if (0 === o) {\n throw new RangeError(kr);\n }\n }\n return a ? isoToEpochNano(n) : we(e, n, r, s);\n}\n\nfunction we(e, n, t = 0, o = e.getPossibleInstantsFor(n)) {\n if (1 === o.length) {\n return o[0];\n }\n if (1 === t) {\n throw new RangeError(Yr);\n }\n if (o.length) {\n return o[3 === t ? 1 : 0];\n }\n const r = isoToEpochNano(n), i = ((e, n) => {\n const t = e.getOffsetNanosecondsFor(moveBigNano(n, -Qr));\n return ne(e.getOffsetNanosecondsFor(moveBigNano(n, Qr)) - t);\n })(e, r), a = i * (2 === t ? -1 : 1);\n return (o = e.getPossibleInstantsFor(Ie(r, a)))[2 === t ? 0 : o.length - 1];\n}\n\nfunction ae(e) {\n if (Math.abs(e) >= Qr) {\n throw new RangeError(wr);\n }\n return e;\n}\n\nfunction ne(e) {\n if (e > Qr) {\n throw new RangeError(Br);\n }\n return e;\n}\n\nfunction se(e, n, t) {\n return _(checkEpochNanoInBounds(addBigNanos(n.epochNanoseconds, (e => {\n if (durationHasDateParts(e)) {\n throw new RangeError(qr);\n }\n return durationFieldsToBigNano(e, 5);\n })(e ? negateDurationFields(t) : t))));\n}\n\nfunction hn(e, n, t, o, r, i = Object.create(null)) {\n const a = n(o.timeZone), s = e(o.calendar);\n return {\n ...o,\n ...moveZonedEpochs(a, s, o, t ? negateDurationFields(r) : r, i)\n };\n}\n\nfunction ct(e, n, t, o, r = Object.create(null)) {\n const {calendar: i} = t;\n return ee(moveDateTime(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction bt(e, n, t, o, r) {\n const {calendar: i} = t;\n return v(moveDate(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction Qe(e, n, t, o, r = Object.create(null)) {\n const i = t.calendar, a = e(i);\n let s = moveToDayOfMonthUnsafe(a, t);\n n && (o = xt(o)), o.sign < 0 && (s = a.dateAdd(s, {\n ...Si,\n months: 1\n }), s = moveByDays(s, -1));\n const c = a.dateAdd(s, o, r);\n return createPlainYearMonthSlots(moveToDayOfMonthUnsafe(a, c), i);\n}\n\nfunction Ye(e, n, t) {\n return Ge(moveTime(n, e ? negateDurationFields(t) : t)[0]);\n}\n\nfunction moveZonedEpochs(e, n, t, o, r) {\n const i = durationFieldsToBigNano(o, 5);\n let a = t.epochNanoseconds;\n if (durationHasDateParts(o)) {\n const s = fn(t, e);\n a = addBigNanos(we(e, {\n ...moveDate(n, s, {\n ...o,\n ...Fi\n }, r),\n ...Vn(j, s)\n }), i);\n } else {\n a = addBigNanos(a, i), H(r);\n }\n return {\n epochNanoseconds: checkEpochNanoInBounds(a)\n };\n}\n\nfunction moveDateTime(e, n, t, o) {\n const [r, i] = moveTime(n, t);\n return checkIsoDateTimeInBounds({\n ...moveDate(e, n, {\n ...t,\n ...Fi,\n days: t.days + i\n }, o),\n ...r\n });\n}\n\nfunction moveDate(e, n, t, o) {\n if (t.years || t.months || t.weeks) {\n return e.dateAdd(n, t, o);\n }\n H(o);\n const r = t.days + durationFieldsToBigNano(t, 5)[0];\n return r ? checkIsoDateInBounds(moveByDays(n, r)) : n;\n}\n\nfunction moveToDayOfMonthUnsafe(e, n, t = 1) {\n return moveByDays(n, t - e.day(n));\n}\n\nfunction moveTime(e, n) {\n const [t, o] = durationFieldsToBigNano(n, 5), [r, i] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) + o);\n return [ r, t + i ];\n}\n\nfunction moveByDays(e, n) {\n return n ? {\n ...e,\n ...epochMilliToIso(isoToEpochMilli(e) + n * Gr)\n } : e;\n}\n\nfunction createMarkerSystem(e, n, t) {\n const o = e(t.calendar);\n return isZonedEpochSlots(t) ? [ t, o, n(t.timeZone) ] : [ {\n ...t,\n ...Dt\n }, o ];\n}\n\nfunction createMarkerToEpochNano(e) {\n return e ? extractEpochNano : isoToEpochNano;\n}\n\nfunction createMoveMarker(e) {\n return e ? E(moveZonedEpochs, e) : moveDateTime;\n}\n\nfunction createDiffMarkers(e) {\n return e ? E(diffZonedEpochsExact, e) : diffDateTimesExact;\n}\n\nfunction isZonedEpochSlots(e) {\n return e && e.epochNanoseconds;\n}\n\nfunction isUniformUnit(e, n) {\n return e <= 6 - (isZonedEpochSlots(n) ? 1 : 0);\n}\n\nfunction Wt(e, n, t, o, r, i, a) {\n const s = e(normalizeOptions(a).relativeTo), c = Math.max(getMaxDurationUnit(r), getMaxDurationUnit(i));\n if (isUniformUnit(c, s)) {\n return Vt(checkDurationUnits(((e, n, t, o) => {\n const r = addBigNanos(durationFieldsToBigNano(e), durationFieldsToBigNano(n), o ? -1 : 1);\n if (!Number.isFinite(r[0])) {\n throw new RangeError(Cr);\n }\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(r, t)\n };\n })(r, i, c, o)));\n }\n if (!s) {\n throw new RangeError(zr);\n }\n o && (i = negateDurationFields(i));\n const [u, l, f] = createMarkerSystem(n, t, s), d = createMoveMarker(f), m = createDiffMarkers(f), p = d(l, u, r);\n return Vt(m(l, u, d(l, p, i), c));\n}\n\nfunction Gt(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s, c, u, l] = ((e, n, t) => {\n e = normalizeOptionsOrString(e, Hi);\n let o = sa(e);\n const r = t(e[Ki]);\n let i = parseRoundingIncInteger(e);\n const a = ha(e, 7);\n let s = aa(e);\n if (void 0 === o && void 0 === s) {\n throw new RangeError(Ur);\n }\n return null == s && (s = 0), null == o && (o = Math.max(s, n)), checkLargestSmallestUnit(o, s), \n i = refineRoundingInc(i, s, 1), [ o, s, i, a, r ];\n })(r, i, e), f = Math.max(i, a);\n if (!isZonedEpochSlots(l) && f <= 6) {\n return Vt(checkDurationUnits(((e, n, t, o, r) => {\n const i = roundBigNano(durationFieldsToBigNano(e), t, o, r);\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(i, n)\n };\n })(o, a, s, c, u)));\n }\n if (!l) {\n throw new RangeError(zr);\n }\n const [d, m, p] = createMarkerSystem(n, t, l), h = createMarkerToEpochNano(p), g = createMoveMarker(p), T = createDiffMarkers(p), D = g(m, d, o);\n let I = T(m, d, D, a);\n const M = o.sign, N = computeDurationSign(I);\n if (M && N && M !== N) {\n throw new RangeError(vr);\n }\n return N && (I = roundRelativeDuration(I, h(D), a, s, c, u, m, d, h, g)), Vt(I);\n}\n\nfunction Rt(e) {\n return -1 === e.sign ? xt(e) : e;\n}\n\nfunction xt(e) {\n return Vt(negateDurationFields(e));\n}\n\nfunction negateDurationFields(e) {\n const n = {};\n for (const t of F) {\n n[t] = -1 * e[t] || 0;\n }\n return n;\n}\n\nfunction Jt(e) {\n return !e.sign;\n}\n\nfunction computeDurationSign(e, n = F) {\n let t = 0;\n for (const o of n) {\n const n = Math.sign(e[o]);\n if (n) {\n if (t && t !== n) {\n throw new RangeError(Rr);\n }\n t = n;\n }\n }\n return t;\n}\n\nfunction checkDurationUnits(e) {\n for (const n of vi) {\n clampEntity(n, e[n], -ya, ya, 1);\n }\n return checkDurationTimeUnit(oe(durationFieldsToBigNano(e), _r)), e;\n}\n\nfunction checkDurationTimeUnit(e) {\n if (!Number.isSafeInteger(e)) {\n throw new RangeError(Zr);\n }\n}\n\nfunction durationFieldsToBigNano(e, n = 6) {\n return givenFieldsToBigNano(e, n, F);\n}\n\nfunction nanoToDurationDayTimeFields(e, n = 6) {\n const [t, o] = e, r = nanoToGivenFields(o, n, F);\n if (r[F[n]] += t * (Qr / Xr[n]), !Number.isFinite(r[F[n]])) {\n throw new RangeError(Cr);\n }\n return r;\n}\n\nfunction nanoToDurationTimeFields(e, n = 5) {\n return nanoToGivenFields(e, n, F);\n}\n\nfunction durationHasDateParts(e) {\n return Boolean(computeDurationSign(e, Pi));\n}\n\nfunction getMaxDurationUnit(e) {\n let n = 9;\n for (;n > 0 && !e[F[n]]; n--) {}\n return n;\n}\n\nfunction createSplitTuple(e, n) {\n return [ e, n ];\n}\n\nfunction computePeriod(e) {\n const n = Math.floor(e / Da) * Da;\n return [ n, n + Da ];\n}\n\nfunction pe(e) {\n const n = parseDateTimeLike(e = toStringViaPrimitive(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n let t;\n if (n.m) {\n t = 0;\n } else {\n if (!n.offset) {\n throw new RangeError(failedParse(e));\n }\n t = parseOffsetNano(n.offset);\n }\n return n.timeZone && parseOffsetNanoMaybe(n.timeZone, 1), _(isoToEpochNanoWithOffset(checkIsoDateTimeFields(n), t));\n}\n\nfunction Xt(e) {\n const n = parseDateTimeLike(m(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n if (n.timeZone) {\n return finalizeZonedDateTime(n, n.offset ? parseOffsetNano(n.offset) : void 0);\n }\n if (n.m) {\n throw new RangeError(failedParse(e));\n }\n return finalizeDate(n);\n}\n\nfunction Mn(e, n) {\n const t = parseDateTimeLike(m(e));\n if (!t || !t.timeZone) {\n throw new RangeError(failedParse(e));\n }\n const {offset: o} = t, r = o ? parseOffsetNano(o) : void 0, [, i, a] = wn(n);\n return finalizeZonedDateTime(t, r, i, a);\n}\n\nfunction parseOffsetNano(e) {\n const n = parseOffsetNanoMaybe(e);\n if (void 0 === n) {\n throw new RangeError(failedParse(e));\n }\n return n;\n}\n\nfunction Ct(e) {\n const n = parseDateTimeLike(m(e));\n if (!n || n.m) {\n throw new RangeError(failedParse(e));\n }\n return ee(finalizeDateTime(n));\n}\n\nfunction At(e) {\n const n = parseDateTimeLike(m(e));\n if (!n || n.m) {\n throw new RangeError(failedParse(e));\n }\n return v(n.p ? finalizeDateTime(n) : finalizeDate(n));\n}\n\nfunction ot(e, n) {\n const t = parseYearMonthOnly(m(n));\n if (t) {\n return requireIsoCalendar(t), createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields(t)));\n }\n const o = At(n);\n return createPlainYearMonthSlots(moveToDayOfMonthUnsafe(e(o.calendar), o));\n}\n\nfunction requireIsoCalendar(e) {\n if (e.calendar !== X) {\n throw new RangeError(invalidSubstring(e.calendar));\n }\n}\n\nfunction Q(e, n) {\n const t = parseMonthDayOnly(m(n));\n if (t) {\n return requireIsoCalendar(t), createPlainMonthDaySlots(checkIsoDateFields(t));\n }\n const o = At(n), {calendar: r} = o, i = e(r), [a, s, c] = i.h(o), [u, l] = i.I(a, s), [f, d] = i.N(u, l, c);\n return createPlainMonthDaySlots(checkIsoDateInBounds(i.P(f, d, c)), r);\n}\n\nfunction ze(e) {\n let n, t = (e => {\n const n = Ca.exec(e);\n return n ? (organizeAnnotationParts(n[10]), organizeTimeParts(n)) : void 0;\n })(m(e));\n if (!t) {\n if (t = parseDateTimeLike(e), !t) {\n throw new RangeError(failedParse(e));\n }\n if (!t.p) {\n throw new RangeError(failedParse(e));\n }\n if (t.m) {\n throw new RangeError(invalidSubstring(\"Z\"));\n }\n requireIsoCalendar(t);\n }\n if ((n = parseYearMonthOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n if ((n = parseMonthDayOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n return Ge(constrainIsoTimeFields(t, 1));\n}\n\nfunction Kt(e) {\n const n = (e => {\n const n = za.exec(e);\n return n ? (e => {\n function parseUnit(e, r, i) {\n let a = 0, s = 0;\n if (i && ([a, o] = divModFloor(o, Xr[i])), void 0 !== e) {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n s = (e => {\n const n = parseInt(e);\n if (!Number.isFinite(n)) {\n throw new RangeError(invalidSubstring(e));\n }\n return n;\n })(e), n = 1, r && (o = parseSubsecNano(r) * (Xr[i] / _r), t = 1);\n }\n return a + s;\n }\n let n = 0, t = 0, o = 0, r = {\n ...zipProps(F, [ parseUnit(e[2]), parseUnit(e[3]), parseUnit(e[4]), parseUnit(e[5]), parseUnit(e[6], e[7], 5), parseUnit(e[8], e[9], 4), parseUnit(e[10], e[11], 3) ]),\n ...nanoToGivenFields(o, 2, F)\n };\n if (!n) {\n throw new RangeError(noValidFields(F));\n }\n return parseSign(e[1]) < 0 && (r = negateDurationFields(r)), r;\n })(n) : void 0;\n })(m(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n return Vt(checkDurationUnits(n));\n}\n\nfunction sn(e) {\n const n = parseDateTimeLike(e) || parseYearMonthOnly(e) || parseMonthDayOnly(e);\n return n ? n.calendar : e;\n}\n\nfunction Ne(e) {\n const n = parseDateTimeLike(e);\n return n && (n.timeZone || n.m && Ta || n.offset) || e;\n}\n\nfunction finalizeZonedDateTime(e, n, t = 0, o = 0) {\n const r = ye(e.timeZone), i = ie(r);\n return Yn(getMatchingInstantFor(i, checkIsoDateTimeFields(e), n, t, o, !i.v, e.m), r, an(e.calendar));\n}\n\nfunction finalizeDateTime(e) {\n return resolveSlotsCalendar(checkIsoDateTimeInBounds(checkIsoDateTimeFields(e)));\n}\n\nfunction finalizeDate(e) {\n return resolveSlotsCalendar(checkIsoDateInBounds(checkIsoDateFields(e)));\n}\n\nfunction resolveSlotsCalendar(e) {\n return {\n ...e,\n calendar: an(e.calendar)\n };\n}\n\nfunction parseDateTimeLike(e) {\n const n = Ya.exec(e);\n return n ? (e => {\n const n = e[10], t = \"Z\" === (n || \"\").toUpperCase();\n return {\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: parseInt(e[5]),\n ...organizeTimeParts(e.slice(5)),\n ...organizeAnnotationParts(e[16]),\n p: Boolean(e[6]),\n m: t,\n offset: t ? void 0 : n\n };\n })(n) : void 0;\n}\n\nfunction parseYearMonthOnly(e) {\n const n = Ba.exec(e);\n return n ? (e => ({\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: 1,\n ...organizeAnnotationParts(e[5])\n }))(n) : void 0;\n}\n\nfunction parseMonthDayOnly(e) {\n const n = ka.exec(e);\n return n ? (e => ({\n isoYear: ji,\n isoMonth: parseInt(e[1]),\n isoDay: parseInt(e[2]),\n ...organizeAnnotationParts(e[3])\n }))(n) : void 0;\n}\n\nfunction parseOffsetNanoMaybe(e, n) {\n const t = Za.exec(e);\n return t ? ((e, n) => {\n const t = e[4] || e[5];\n if (n && t) {\n throw new RangeError(invalidSubstring(t));\n }\n return ae((parseInt0(e[2]) * Kr + parseInt0(e[3]) * Jr + parseInt0(e[4]) * _r + parseSubsecNano(e[5] || \"\")) * parseSign(e[1]));\n })(t, n) : void 0;\n}\n\nfunction organizeIsoYearParts(e) {\n const n = parseSign(e[1]), t = parseInt(e[2] || e[3]);\n if (n < 0 && !t) {\n throw new RangeError(invalidSubstring(-0));\n }\n return n * t;\n}\n\nfunction organizeTimeParts(e) {\n const n = parseInt0(e[3]);\n return {\n ...nanoToIsoTimeAndDay(parseSubsecNano(e[4] || \"\"))[0],\n isoHour: parseInt0(e[1]),\n isoMinute: parseInt0(e[2]),\n isoSecond: 60 === n ? 59 : n\n };\n}\n\nfunction organizeAnnotationParts(e) {\n let n, t;\n const o = [];\n if (e.replace(Ra, ((e, r, i) => {\n const a = Boolean(r), [s, c] = i.split(\"=\").reverse();\n if (c) {\n if (\"u-ca\" === c) {\n o.push(s), n || (n = a);\n } else if (a || /[A-Z]/.test(c)) {\n throw new RangeError(invalidSubstring(e));\n }\n } else {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n t = s;\n }\n return \"\";\n })), o.length > 1 && n) {\n throw new RangeError(invalidSubstring(e));\n }\n return {\n timeZone: t,\n calendar: o[0] || X\n };\n}\n\nfunction parseSubsecNano(e) {\n return parseInt(e.padEnd(9, \"0\"));\n}\n\nfunction createRegExp(e) {\n return new RegExp(`^${e}$`, \"i\");\n}\n\nfunction parseSign(e) {\n return e && \"+\" !== e ? -1 : 1;\n}\n\nfunction parseInt0(e) {\n return void 0 === e ? 0 : parseInt(e);\n}\n\nfunction Me(e) {\n return ye(m(e));\n}\n\nfunction ye(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? Fe(n) : n ? (e => {\n if (Ua.test(e)) {\n throw new RangeError(br);\n }\n return e.toLowerCase().split(\"/\").map(((e, n) => (e.length <= 3 || /\\d/.test(e)) && !/etc|yap/.test(e) ? e.toUpperCase() : e.replace(/baja|dumont|[a-z]+/g, ((e, t) => e.length <= 2 && !n || \"in\" === e || \"chat\" === e ? e.toUpperCase() : e.length > 2 || !t ? capitalize(e).replace(/island|noronha|murdo|rivadavia|urville/, capitalize) : e)))).join(\"/\");\n })(e) : Ta;\n}\n\nfunction getTimeZoneAtomic(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? n : n ? n.resolvedOptions().timeZone : Ta;\n}\n\nfunction getTimeZoneEssence(e) {\n const n = parseOffsetNanoMaybe(e = e.toUpperCase(), 1);\n return void 0 !== n ? n : e !== Ta ? qa(e) : void 0;\n}\n\nfunction Ze(e, n) {\n return te(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction yn(e, n) {\n return te(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction $t(e, n, t, o, r, i) {\n const a = e(normalizeOptions(i).relativeTo), s = Math.max(getMaxDurationUnit(o), getMaxDurationUnit(r));\n if (allPropsEqual(F, o, r)) {\n return 0;\n }\n if (isUniformUnit(s, a)) {\n return te(durationFieldsToBigNano(o), durationFieldsToBigNano(r));\n }\n if (!a) {\n throw new RangeError(zr);\n }\n const [c, u, l] = createMarkerSystem(n, t, a), f = createMarkerToEpochNano(l), d = createMoveMarker(l);\n return te(f(d(u, c, o)), f(d(u, c, r)));\n}\n\nfunction gt(e, n) {\n return rt(e, n) || He(e, n);\n}\n\nfunction rt(e, n) {\n return compareNumbers(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction He(e, n) {\n return compareNumbers(isoTimeFieldsToNano(e), isoTimeFieldsToNano(n));\n}\n\nfunction ue(e, n) {\n return !Ze(e, n);\n}\n\nfunction gn(e, n) {\n return !yn(e, n) && !!je(e.timeZone, n.timeZone) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction ft(e, n) {\n return !gt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction It(e, n) {\n return !rt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction $e(e, n) {\n return !rt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction x(e, n) {\n return !rt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction Ve(e, n) {\n return !He(e, n);\n}\n\nfunction je(e, n) {\n if (e === n) {\n return 1;\n }\n const t = I(e), o = I(n);\n if (t === o) {\n return 1;\n }\n try {\n return getTimeZoneAtomic(t) === getTimeZoneAtomic(o);\n } catch (e) {}\n}\n\nfunction le(e, n, t, o) {\n const r = refineDiffOptions(e, U(o), 3, 5), i = diffEpochNanos(n.epochNanoseconds, t.epochNanoseconds, ...r);\n return Vt(e ? negateDurationFields(i) : i);\n}\n\nfunction Dn(e, n, t, o, r, i) {\n const a = getCommonCalendarSlot(o.calendar, r.calendar), s = U(i), [c, u, l, f] = refineDiffOptions(t, s, 5), d = o.epochNanoseconds, m = r.epochNanoseconds, p = te(m, d);\n let h;\n if (p) {\n if (c < 6) {\n h = diffEpochNanos(d, m, c, u, l, f);\n } else {\n const t = n(((e, n) => {\n if (!je(e, n)) {\n throw new RangeError(Fr);\n }\n return e;\n })(o.timeZone, r.timeZone)), i = e(a);\n h = diffZonedEpochsBig(i, t, o, r, p, c, s), h = roundRelativeDuration(h, m, c, u, l, f, i, o, extractEpochNano, E(moveZonedEpochs, t));\n }\n } else {\n h = Si;\n }\n return Vt(t ? negateDurationFields(h) : h);\n}\n\nfunction ut(e, n, t, o, r) {\n const i = getCommonCalendarSlot(t.calendar, o.calendar), a = U(r), [s, c, u, l] = refineDiffOptions(n, a, 6), f = isoToEpochNano(t), d = isoToEpochNano(o), m = te(d, f);\n let p;\n if (m) {\n if (s <= 6) {\n p = diffEpochNanos(f, d, s, c, u, l);\n } else {\n const n = e(i);\n p = diffDateTimesBig(n, t, o, m, s, a), p = roundRelativeDuration(p, d, s, c, u, l, n, t, isoToEpochNano, moveDateTime);\n }\n } else {\n p = Si;\n }\n return Vt(n ? negateDurationFields(p) : p);\n}\n\nfunction Ft(e, n, t, o, r) {\n const i = getCommonCalendarSlot(t.calendar, o.calendar), a = U(r);\n return diffDateLike(n, (() => e(i)), t, o, ...refineDiffOptions(n, a, 6, 9, 6), a);\n}\n\nfunction Xe(e, n, t, o, r) {\n const i = getCommonCalendarSlot(t.calendar, o.calendar), a = U(r), s = refineDiffOptions(n, a, 9, 9, 8), c = e(i);\n return diffDateLike(n, (() => c), moveToDayOfMonthUnsafe(c, t), moveToDayOfMonthUnsafe(c, o), ...s, a);\n}\n\nfunction diffDateLike(e, n, t, o, r, i, a, s, c) {\n const u = isoToEpochNano(t), l = isoToEpochNano(o);\n let f;\n if (te(l, u)) {\n if (6 === r) {\n f = diffEpochNanos(u, l, r, i, a, s);\n } else {\n const e = n();\n f = e.dateUntil(t, o, r, c), 6 === i && 1 === a || (f = roundRelativeDuration(f, l, r, i, a, s, e, t, isoToEpochNano, moveDate));\n }\n } else {\n f = Si;\n }\n return Vt(e ? negateDurationFields(f) : f);\n}\n\nfunction Ae(e, n, t, o) {\n const r = U(o), [i, a, s, c] = refineDiffOptions(e, r, 5, 5), u = roundByInc(diffTimes(n, t), computeNanoInc(a, s), c), l = {\n ...Si,\n ...nanoToDurationTimeFields(u, i)\n };\n return Vt(e ? negateDurationFields(l) : l);\n}\n\nfunction diffZonedEpochsExact(e, n, t, o, r, i) {\n const a = te(o.epochNanoseconds, t.epochNanoseconds);\n return a ? r < 6 ? diffEpochNanosExact(t.epochNanoseconds, o.epochNanoseconds, r) : diffZonedEpochsBig(n, e, t, o, a, r, i) : Si;\n}\n\nfunction diffDateTimesExact(e, n, t, o, r) {\n const i = isoToEpochNano(n), a = isoToEpochNano(t), s = te(a, i);\n return s ? o <= 6 ? diffEpochNanosExact(i, a, o) : diffDateTimesBig(e, n, t, s, o, r) : Si;\n}\n\nfunction diffZonedEpochsBig(e, n, t, o, r, i, a) {\n const [s, c, u] = ((e, n, t, o) => {\n function updateMid() {\n return l = {\n ...moveByDays(a, c++ * -o),\n ...i\n }, f = we(e, l), te(s, f) === -o;\n }\n const r = fn(n, e), i = Vn(j, r), a = fn(t, e), s = t.epochNanoseconds;\n let c = 0;\n const u = diffTimes(r, a);\n let l, f;\n if (Math.sign(u) === -o && c++, updateMid() && (-1 === o || updateMid())) {\n throw new RangeError(vr);\n }\n const d = oe(re(f, s));\n return [ r, l, d ];\n })(n, t, o, r);\n var l, f;\n return {\n ...6 === i ? (l = s, f = c, {\n ...Si,\n days: diffDays(l, f)\n }) : e.dateUntil(s, c, i, a),\n ...nanoToDurationTimeFields(u)\n };\n}\n\nfunction diffDateTimesBig(e, n, t, o, r, i) {\n const [a, s, c] = ((e, n, t) => {\n let o = n, r = diffTimes(e, n);\n return Math.sign(r) === -t && (o = moveByDays(n, -t), r += Qr * t), [ e, o, r ];\n })(n, t, o);\n return {\n ...e.dateUntil(a, s, r, i),\n ...nanoToDurationTimeFields(c)\n };\n}\n\nfunction diffEpochNanos(e, n, t, o, r, i) {\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(roundBigNano(re(e, n), o, r, i), t)\n };\n}\n\nfunction diffEpochNanosExact(e, n, t) {\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(re(e, n), t)\n };\n}\n\nfunction diffDays(e, n) {\n return diffEpochMilliByDay(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction diffEpochMilliByDay(e, n) {\n return Math.trunc((n - e) / Gr);\n}\n\nfunction diffTimes(e, n) {\n return isoTimeFieldsToNano(n) - isoTimeFieldsToNano(e);\n}\n\nfunction getCommonCalendarSlot(e, n) {\n if (!isIdLikeEqual(e, n)) {\n throw new RangeError(Er);\n }\n return e;\n}\n\nfunction createIntlCalendar(e) {\n function epochMilliToIntlFields(e) {\n return ((e, n) => ({\n ...parseIntlYear(e, n),\n F: e.month,\n day: parseInt(e.day)\n }))(hashIntlFormatParts(n, e), t);\n }\n const n = La(e), t = computeCalendarIdBase(e);\n return {\n id: e,\n O: createIntlFieldCache(epochMilliToIntlFields),\n B: createIntlYearDataCache(epochMilliToIntlFields)\n };\n}\n\nfunction createIntlFieldCache(e) {\n return Jn((n => {\n const t = isoToEpochMilli(n);\n return e(t);\n }), WeakMap);\n}\n\nfunction createIntlYearDataCache(e) {\n const n = e(0).year - Wi;\n return Jn((t => {\n let o, r = isoArgsToEpochMilli(t - n);\n const i = [], a = [];\n do {\n r += 400 * Gr;\n } while ((o = e(r)).year <= t);\n do {\n r += (1 - o.day) * Gr, o.year === t && (i.push(r), a.push(o.F)), r -= Gr;\n } while ((o = e(r)).year >= t);\n return {\n k: i.reverse(),\n C: Wr(a.reverse())\n };\n }));\n}\n\nfunction parseIntlYear(e, n) {\n let t, o, r = parseIntlPartsYear(e);\n if (e.era) {\n const i = Di[n];\n void 0 !== i && (t = \"islamic\" === n ? \"ah\" : e.era.normalize(\"NFD\").toLowerCase().replace(/[^a-z0-9]/g, \"\"), \n \"bc\" === t || \"b\" === t ? t = \"bce\" : \"ad\" !== t && \"a\" !== t || (t = \"ce\"), o = r, \n r = eraYearToYear(o, i[t] || 0));\n }\n return {\n era: t,\n eraYear: o,\n year: r\n };\n}\n\nfunction parseIntlPartsYear(e) {\n return parseInt(e.relatedYear || e.year);\n}\n\nfunction computeIntlDateParts(e) {\n const {year: n, F: t, day: o} = this.O(e), {C: r} = this.B(n);\n return [ n, r[t] + 1, o ];\n}\n\nfunction computeIntlEpochMilli(e, n = 1, t = 1) {\n return this.B(e).k[n - 1] + (t - 1) * Gr;\n}\n\nfunction computeIntlLeapMonth(e) {\n const n = queryMonthStrings(this, e), t = queryMonthStrings(this, e - 1), o = n.length;\n if (o > t.length) {\n const e = getCalendarLeapMonthMeta(this);\n if (e < 0) {\n return -e;\n }\n for (let e = 0; e < o; e++) {\n if (n[e] !== t[e]) {\n return e + 1;\n }\n }\n }\n}\n\nfunction computeIntlDaysInYear(e) {\n return diffEpochMilliByDay(computeIntlEpochMilli.call(this, e), computeIntlEpochMilli.call(this, e + 1));\n}\n\nfunction computeIntlDaysInMonth(e, n) {\n const {k: t} = this.B(e);\n let o = n + 1, r = t;\n return o > t.length && (o = 1, r = this.B(e + 1).k), diffEpochMilliByDay(t[n - 1], r[o - 1]);\n}\n\nfunction computeIntlMonthsInYear(e) {\n return this.B(e).k.length;\n}\n\nfunction queryMonthStrings(e, n) {\n return Object.keys(e.B(n).C);\n}\n\nfunction rn(e) {\n return an(m(e));\n}\n\nfunction an(e) {\n if ((e = e.toLowerCase()) !== X && e !== gi && computeCalendarIdBase(e) !== computeCalendarIdBase(La(e).resolvedOptions().calendar)) {\n throw new RangeError(invalidCalendar(e));\n }\n return e;\n}\n\nfunction computeCalendarIdBase(e) {\n return \"islamicc\" === e && (e = \"islamic\"), e.split(\"-\")[0];\n}\n\nfunction computeNativeWeekOfYear(e) {\n return this.R(e)[0];\n}\n\nfunction computeNativeYearOfWeek(e) {\n return this.R(e)[1];\n}\n\nfunction computeNativeDayOfYear(e) {\n const [n] = this.h(e);\n return diffEpochMilliByDay(this.q(n), isoToEpochMilli(e)) + 1;\n}\n\nfunction parseMonthCode(e) {\n const n = Wa.exec(e);\n if (!n) {\n throw new RangeError(invalidMonthCode(e));\n }\n return [ parseInt(n[1]), Boolean(n[2]) ];\n}\n\nfunction monthCodeNumberToMonth(e, n, t) {\n return e + (n || t && e >= t ? 1 : 0);\n}\n\nfunction monthToMonthCodeNumber(e, n) {\n return e - (n && e >= n ? 1 : 0);\n}\n\nfunction eraYearToYear(e, n) {\n return (n + e) * (Math.sign(n) || 1) || 0;\n}\n\nfunction getCalendarEraOrigins(e) {\n return Di[getCalendarIdBase(e)];\n}\n\nfunction getCalendarLeapMonthMeta(e) {\n return Ii[getCalendarIdBase(e)];\n}\n\nfunction getCalendarIdBase(e) {\n return computeCalendarIdBase(e.id || X);\n}\n\nfunction Qt(e, n, t, o) {\n const r = refineCalendarFields(t, o, en, [], ri);\n if (void 0 !== r.timeZone) {\n const o = t.dateFromFields(r), i = refineTimeBag(r), a = e(r.timeZone);\n return {\n epochNanoseconds: getMatchingInstantFor(n(a), {\n ...o,\n ...i\n }, void 0 !== r.offset ? parseOffsetNano(r.offset) : void 0),\n timeZone: a\n };\n }\n return {\n ...t.dateFromFields(r),\n ...Dt\n };\n}\n\nfunction jn(e, n, t, o, r, i) {\n const a = refineCalendarFields(t, r, en, ti, ri), s = e(a.timeZone), [c, u, l] = wn(i), f = t.dateFromFields(a, overrideOverflowOptions(i, c)), d = refineTimeBag(a, c);\n return Yn(getMatchingInstantFor(n(s), {\n ...f,\n ...d\n }, void 0 !== a.offset ? parseOffsetNano(a.offset) : void 0, u, l), s, o);\n}\n\nfunction Pt(e, n, t) {\n const o = refineCalendarFields(e, n, en, [], w), r = H(t);\n return ee(checkIsoDateTimeInBounds({\n ...e.dateFromFields(o, overrideOverflowOptions(t, r)),\n ...refineTimeBag(o, r)\n }));\n}\n\nfunction Yt(e, n, t, o = []) {\n const r = refineCalendarFields(e, n, en, o);\n return e.dateFromFields(r, t);\n}\n\nfunction nt(e, n, t, o) {\n const r = refineCalendarFields(e, n, fi, o);\n return e.yearMonthFromFields(r, t);\n}\n\nfunction K(e, n, t, o, r = []) {\n const i = refineCalendarFields(e, t, en, r);\n return n && void 0 !== i.month && void 0 === i.monthCode && void 0 === i.year && (i.year = ji), \n e.monthDayFromFields(i, o);\n}\n\nfunction Ue(e, n) {\n const t = H(n);\n return Ge(refineTimeBag(refineFields(e, ei, [], 1), t));\n}\n\nfunction Ht(e) {\n const n = refineFields(e, Ni);\n return Vt(checkDurationUnits({\n ...Si,\n ...n\n }));\n}\n\nfunction refineCalendarFields(e, n, t, o = [], r = []) {\n return refineFields(n, [ ...e.fields(t), ...r ].sort(), o);\n}\n\nfunction refineFields(e, n, t, o = !t) {\n const r = {};\n let i, a = 0;\n for (const o of n) {\n if (o === i) {\n throw new RangeError(duplicateFields(o));\n }\n if (\"constructor\" === o || \"__proto__\" === o) {\n throw new RangeError(tn(o));\n }\n let n = e[o];\n if (void 0 !== n) {\n a = 1, Ga[o] && (n = Ga[o](n, o)), r[o] = n;\n } else if (t) {\n if (t.includes(o)) {\n throw new TypeError(missingField(o));\n }\n r[o] = hi[o];\n }\n i = o;\n }\n if (o && !a) {\n throw new TypeError(noValidFields(n));\n }\n return r;\n}\n\nfunction refineTimeBag(e, n) {\n return constrainIsoTimeFields(Ha({\n ...hi,\n ...e\n }), n);\n}\n\nfunction Sn(e, n, t, o, r, i) {\n const a = U(i), {calendar: s, timeZone: c} = t;\n return Yn(((e, n, t, o, r) => {\n const i = mergeCalendarFields(e, t, o, en, oi, ni), [a, s, c] = wn(r, 2);\n return getMatchingInstantFor(n, {\n ...e.dateFromFields(i, overrideOverflowOptions(r, a)),\n ...refineTimeBag(i, a)\n }, parseOffsetNano(i.offset), s, c);\n })(e(s), n(c), o, r, a), c, s);\n}\n\nfunction at(e, n, t, o, r) {\n const i = U(r);\n return ee(((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, en, w), i = H(o);\n return checkIsoDateTimeInBounds({\n ...e.dateFromFields(r, overrideOverflowOptions(o, i)),\n ...refineTimeBag(r, i)\n });\n })(e(n.calendar), t, o, i));\n}\n\nfunction Zt(e, n, t, o, r) {\n const i = U(r);\n return ((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, en);\n return e.dateFromFields(r, o);\n })(e(n.calendar), t, o, i);\n}\n\nfunction Ke(e, n, t, o, r) {\n const i = U(r);\n return createPlainYearMonthSlots(((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, fi);\n return e.yearMonthFromFields(r, o);\n })(e(n.calendar), t, o, i));\n}\n\nfunction k(e, n, t, o, r) {\n const i = U(r);\n return ((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, en);\n return e.monthDayFromFields(r, o);\n })(e(n.calendar), t, o, i);\n}\n\nfunction Be(e, n, t) {\n return Ge(((e, n, t) => {\n const o = H(t);\n return refineTimeBag({\n ...Vn(ei, e),\n ...refineFields(n, ei)\n }, o);\n })(e, n, t));\n}\n\nfunction kt(e, n) {\n return Vt((t = e, o = n, checkDurationUnits({\n ...t,\n ...refineFields(o, Ni)\n })));\n var t, o;\n}\n\nfunction mergeCalendarFields(e, n, t, o, r = [], i = []) {\n const a = [ ...e.fields(o), ...r ].sort();\n let s = refineFields(n, a, i);\n const c = refineFields(t, a);\n return s = e.mergeFields(s, c), refineFields(s, a, []);\n}\n\nfunction convertToPlainMonthDay(e, n) {\n const t = refineCalendarFields(e, n, pi);\n return e.monthDayFromFields(t);\n}\n\nfunction convertToPlainYearMonth(e, n, t) {\n const o = refineCalendarFields(e, n, di);\n return e.yearMonthFromFields(o, t);\n}\n\nfunction convertToIso(e, n, t, o, r) {\n n = Vn(t = e.fields(t), n), o = refineFields(o, r = e.fields(r), []);\n let i = e.mergeFields(n, o);\n return i = refineFields(i, [ ...t, ...r ].sort(), []), e.dateFromFields(i);\n}\n\nfunction refineYear(e, n) {\n let {era: t, eraYear: o, year: r} = n;\n const i = getCalendarEraOrigins(e);\n if (void 0 !== t || void 0 !== o) {\n if (void 0 === t || void 0 === o) {\n throw new TypeError(Dr);\n }\n if (!i) {\n throw new RangeError(gr);\n }\n const e = i[t];\n if (void 0 === e) {\n throw new RangeError(invalidEra(t));\n }\n const n = eraYearToYear(o, e);\n if (void 0 !== r && r !== n) {\n throw new RangeError(Ir);\n }\n r = n;\n } else if (void 0 === r) {\n throw new TypeError(missingYear(i));\n }\n return r;\n}\n\nfunction refineMonth(e, n, t, o) {\n let {month: r, monthCode: i} = n;\n if (void 0 !== i) {\n const n = ((e, n, t, o) => {\n const r = e.U(t), [i, a] = parseMonthCode(n);\n let s = monthCodeNumberToMonth(i, a, r);\n if (a) {\n const n = getCalendarLeapMonthMeta(e);\n if (void 0 === n) {\n throw new RangeError(Pr);\n }\n if (n > 0) {\n if (s > n) {\n throw new RangeError(Pr);\n }\n if (void 0 === r) {\n if (1 === o) {\n throw new RangeError(Pr);\n }\n s--;\n }\n } else {\n if (s !== -n) {\n throw new RangeError(Pr);\n }\n if (void 0 === r && 1 === o) {\n throw new RangeError(Pr);\n }\n }\n }\n return s;\n })(e, i, t, o);\n if (void 0 !== r && r !== n) {\n throw new RangeError(Mr);\n }\n r = n, o = 1;\n } else if (void 0 === r) {\n throw new TypeError(Nr);\n }\n return clampEntity(\"month\", r, 1, e.L(t), o);\n}\n\nfunction refineDay(e, n, t, o, r) {\n return clampProp(n, \"day\", 1, e.j(o, t), r);\n}\n\nfunction spliceFields(e, n, t, o) {\n let r = 0;\n const i = [];\n for (const e of t) {\n void 0 !== n[e] ? r = 1 : i.push(e);\n }\n if (Object.assign(e, n), r) {\n for (const n of o || i) {\n delete e[n];\n }\n }\n}\n\nfunction Se(e) {\n return _(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction vn(e, n, t, o, r = X) {\n return Yn(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(t))), n(o), e(r));\n}\n\nfunction pt(e, n, t, o, r = 0, i = 0, a = 0, s = 0, c = 0, u = 0, l = X) {\n return ee(checkIsoDateTimeInBounds(checkIsoDateTimeFields(T(toInteger, zipProps(wi, [ n, t, o, r, i, a, s, c, u ])))), e(l));\n}\n\nfunction Nt(e, n, t, o, r = X) {\n return v(checkIsoDateInBounds(checkIsoDateFields(T(toInteger, {\n isoYear: n,\n isoMonth: t,\n isoDay: o\n }))), e(r));\n}\n\nfunction tt(e, n, t, o = X, r = 1) {\n const i = toInteger(n), a = toInteger(t), s = e(o);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields({\n isoYear: i,\n isoMonth: a,\n isoDay: toInteger(r)\n })), s);\n}\n\nfunction G(e, n, t, o = X, r = ji) {\n const i = toInteger(n), a = toInteger(t), s = e(o);\n return createPlainMonthDaySlots(checkIsoDateInBounds(checkIsoDateFields({\n isoYear: toInteger(r),\n isoMonth: i,\n isoDay: a\n })), s);\n}\n\nfunction ke(e = 0, n = 0, t = 0, o = 0, r = 0, i = 0) {\n return Ge(constrainIsoTimeFields(T(toInteger, zipProps(j, [ e, n, t, o, r, i ])), 1));\n}\n\nfunction Lt(e = 0, n = 0, t = 0, o = 0, r = 0, i = 0, a = 0, s = 0, c = 0, u = 0) {\n return Vt(checkDurationUnits(T(toStrictInteger, zipProps(F, [ e, n, t, o, r, i, a, s, c, u ]))));\n}\n\nfunction fe(e, n, t = X) {\n return Yn(e.epochNanoseconds, n, t);\n}\n\nfunction Zn(e) {\n return _(e.epochNanoseconds);\n}\n\nfunction ht(e, n) {\n return ee(fn(n, e));\n}\n\nfunction Bt(e, n) {\n return v(fn(n, e));\n}\n\nfunction bn(e, n, t) {\n return convertToPlainYearMonth(e(n.calendar), t);\n}\n\nfunction Fn(e, n, t) {\n return convertToPlainMonthDay(e(n.calendar), t);\n}\n\nfunction Re(e, n) {\n return Ge(fn(n, e));\n}\n\nfunction mt(e, n, t, o) {\n const r = ((e, n, t, o) => {\n const r = ve(o);\n return we(e(n), t, r);\n })(e, t, n, o);\n return Yn(checkEpochNanoInBounds(r), t, n.calendar);\n}\n\nfunction St(e, n, t) {\n const o = e(n.calendar);\n return createPlainYearMonthSlots({\n ...n,\n ...convertToPlainYearMonth(o, t)\n });\n}\n\nfunction Ot(e, n, t) {\n return convertToPlainMonthDay(e(n.calendar), t);\n}\n\nfunction vt(e, n, t, o, r) {\n const i = e(r.timeZone), a = r.plainTime, s = void 0 !== a ? n(a) : Dt;\n return Yn(we(t(i), {\n ...o,\n ...s\n }), i, o.calendar);\n}\n\nfunction wt(e, n = Dt) {\n return ee(checkIsoDateTimeInBounds({\n ...e,\n ...n\n }));\n}\n\nfunction jt(e, n, t) {\n return convertToPlainYearMonth(e(n.calendar), t);\n}\n\nfunction Mt(e, n, t) {\n return convertToPlainMonthDay(e(n.calendar), t);\n}\n\nfunction _e(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, di, de(t), li))(e(n.calendar), t, o);\n}\n\nfunction R(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, pi, de(t), si))(e(n.calendar), t, o);\n}\n\nfunction Je(e, n, t, o, r) {\n const i = de(r), a = n(i.plainDate), s = e(i.timeZone);\n return Yn(we(t(s), {\n ...a,\n ...o\n }), s, a.calendar);\n}\n\nfunction Le(e, n) {\n return ee(checkIsoDateTimeInBounds({\n ...e,\n ...n\n }));\n}\n\nfunction De(e) {\n return _(checkEpochNanoInBounds(he(e, _r)));\n}\n\nfunction Pe(e) {\n return _(checkEpochNanoInBounds(he(e, be)));\n}\n\nfunction Ce(e) {\n return _(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e), Vr)));\n}\n\nfunction ge(e) {\n return _(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction pn(e, n, t = Dt) {\n const o = n.timeZone, r = e(o), i = {\n ...fn(n, r),\n ...t\n };\n return Yn(getMatchingInstantFor(r, i, i.offsetNanoseconds, 2), o, n.calendar);\n}\n\nfunction Tn(e, n, t) {\n const o = n.timeZone, r = e(o), i = {\n ...fn(n, r),\n ...t\n }, a = getPreferredCalendarSlot(n.calendar, t.calendar);\n return Yn(getMatchingInstantFor(r, i, i.offsetNanoseconds, 2), o, a);\n}\n\nfunction lt(e, n = Dt) {\n return ee({\n ...e,\n ...n\n });\n}\n\nfunction st(e, n) {\n return ee({\n ...e,\n ...n\n }, getPreferredCalendarSlot(e.calendar, n.calendar));\n}\n\nfunction it(e, n) {\n return {\n ...e,\n calendar: n\n };\n}\n\nfunction On(e, n) {\n return {\n ...e,\n timeZone: n\n };\n}\n\nfunction getPreferredCalendarSlot(e, n) {\n if (e === n) {\n return e;\n }\n const t = I(e), o = I(n);\n if (t === o || t === X) {\n return n;\n }\n if (o === X) {\n return e;\n }\n throw new RangeError(Er);\n}\n\nfunction createNativeOpsCreator(e, n) {\n return t => t === X ? e : t === gi || t === Ti ? Object.assign(Object.create(e), {\n id: t\n }) : Object.assign(Object.create(n), Aa(t));\n}\n\nfunction createOptionsTransformer(e, n, t) {\n const o = new Set(t);\n return r => (((e, n) => {\n for (const t of n) {\n if (t in e) {\n return 1;\n }\n }\n return 0;\n })(r = V(o, r), e) || Object.assign(r, n), t && (r.timeZone = Ta, [ \"full\", \"long\" ].includes(r.timeStyle) && (r.timeStyle = \"medium\")), \n r);\n}\n\nfunction e(e, n = qn) {\n const [t, , , o] = e;\n return (r, i = Ns, ...a) => {\n const s = n(o && o(...a), r, i, t), c = s.resolvedOptions();\n return [ s, ...toEpochMillis(e, c, a) ];\n };\n}\n\nfunction qn(e, n, t, o) {\n if (t = o(t), e) {\n if (void 0 !== t.timeZone) {\n throw new TypeError(Lr);\n }\n t.timeZone = e;\n }\n return new En(n, t);\n}\n\nfunction toEpochMillis(e, n, t) {\n const [, o, r] = e;\n return t.map((e => (e.calendar && ((e, n, t) => {\n if ((t || e !== X) && e !== n) {\n throw new RangeError(Er);\n }\n })(I(e.calendar), n.calendar, r), o(e, n))));\n}\n\nfunction An(e) {\n const n = Bn();\n return Ie(n, e.getOffsetNanosecondsFor(n));\n}\n\nfunction Bn() {\n return he(Date.now(), be);\n}\n\nfunction Nn() {\n return ys || (ys = (new En).resolvedOptions().timeZone);\n}\n\nconst expectedInteger = (e, n) => `Non-integer ${e}: ${n}`, expectedPositive = (e, n) => `Non-positive ${e}: ${n}`, expectedFinite = (e, n) => `Non-finite ${e}: ${n}`, forbiddenBigIntToNumber = e => `Cannot convert bigint to ${e}`, invalidBigInt = e => `Invalid bigint: ${e}`, pr = \"Cannot convert Symbol to string\", hr = \"Invalid object\", numberOutOfRange = (e, n, t, o, r) => r ? numberOutOfRange(e, r[n], r[t], r[o]) : invalidEntity(e, n) + `; must be between ${t}-${o}`, invalidEntity = (e, n) => `Invalid ${e}: ${n}`, missingField = e => `Missing ${e}`, tn = e => `Invalid field ${e}`, duplicateFields = e => `Duplicate field ${e}`, noValidFields = e => \"No valid fields: \" + e.join(), Z = \"Invalid bag\", invalidChoice = (e, n, t) => invalidEntity(e, n) + \"; must be \" + Object.keys(t).join(), A = \"Cannot use valueOf\", P = \"Invalid calling context\", gr = \"Forbidden era/eraYear\", Dr = \"Mismatching era/eraYear\", Ir = \"Mismatching year/eraYear\", invalidEra = e => `Invalid era: ${e}`, missingYear = e => \"Missing year\" + (e ? \"/era/eraYear\" : \"\"), invalidMonthCode = e => `Invalid monthCode: ${e}`, Mr = \"Mismatching month/monthCode\", Nr = \"Missing month/monthCode\", yr = \"Cannot guess year\", Pr = \"Invalid leap month\", g = \"Invalid protocol\", vr = \"Invalid protocol results\", Er = \"Mismatching Calendars\", invalidCalendar = e => `Invalid Calendar: ${e}`, Fr = \"Mismatching TimeZones\", br = \"Forbidden ICU TimeZone\", wr = \"Out-of-bounds offset\", Br = \"Out-of-bounds TimeZone gap\", kr = \"Invalid TimeZone offset\", Yr = \"Ambiguous offset\", Cr = \"Out-of-bounds date\", Zr = \"Out-of-bounds duration\", Rr = \"Cannot mix duration signs\", zr = \"Missing relativeTo\", qr = \"Cannot use large units\", Ur = \"Required smallestUnit or largestUnit\", Ar = \"smallestUnit > largestUnit\", failedParse = e => `Cannot parse: ${e}`, invalidSubstring = e => `Invalid substring: ${e}`, Ln = e => `Cannot format ${e}`, kn = \"Mismatching types for formatting\", Lr = \"Cannot specify TimeZone\", Wr = /*@__PURE__*/ E(b, ((e, n) => n)), jr = /*@__PURE__*/ E(b, ((e, n, t) => t)), xr = /*@__PURE__*/ E(padNumber, 2), $r = {\n nanosecond: 0,\n microsecond: 1,\n millisecond: 2,\n second: 3,\n minute: 4,\n hour: 5,\n day: 6,\n week: 7,\n month: 8,\n year: 9\n}, Et = /*@__PURE__*/ Object.keys($r), Gr = 864e5, Hr = 1e3, Vr = 1e3, be = 1e6, _r = 1e9, Jr = 6e10, Kr = 36e11, Qr = 864e11, Xr = [ 1, Vr, be, _r, Jr, Kr, Qr ], w = /*@__PURE__*/ Et.slice(0, 6), ei = /*@__PURE__*/ sortStrings(w), ni = [ \"offset\" ], ti = [ \"timeZone\" ], oi = /*@__PURE__*/ w.concat(ni), ri = /*@__PURE__*/ oi.concat(ti), ii = [ \"era\", \"eraYear\" ], ai = /*@__PURE__*/ ii.concat([ \"year\" ]), si = [ \"year\" ], ci = [ \"monthCode\" ], ui = /*@__PURE__*/ [ \"month\" ].concat(ci), li = [ \"day\" ], fi = /*@__PURE__*/ ui.concat(si), di = /*@__PURE__*/ ci.concat(si), en = /*@__PURE__*/ li.concat(fi), mi = /*@__PURE__*/ li.concat(ui), pi = /*@__PURE__*/ li.concat(ci), hi = /*@__PURE__*/ jr(w, 0), X = \"iso8601\", gi = \"gregory\", Ti = \"japanese\", Di = {\n [gi]: {\n bce: -1,\n ce: 0\n },\n [Ti]: {\n bce: -1,\n ce: 0,\n meiji: 1867,\n taisho: 1911,\n showa: 1925,\n heisei: 1988,\n reiwa: 2018\n },\n ethioaa: {\n era0: 0\n },\n ethiopic: {\n era0: 0,\n era1: 5500\n },\n coptic: {\n era0: -1,\n era1: 0\n },\n roc: {\n beforeroc: -1,\n minguo: 0\n },\n buddhist: {\n be: 0\n },\n islamic: {\n ah: 0\n },\n indian: {\n saka: 0\n },\n persian: {\n ap: 0\n }\n}, Ii = {\n chinese: 13,\n dangi: 13,\n hebrew: -6\n}, m = /*@__PURE__*/ E(requireType, \"string\"), f = /*@__PURE__*/ E(requireType, \"boolean\"), Mi = /*@__PURE__*/ E(requireType, \"number\"), $ = /*@__PURE__*/ E(requireType, \"function\"), F = /*@__PURE__*/ Et.map((e => e + \"s\")), Ni = /*@__PURE__*/ sortStrings(F), yi = /*@__PURE__*/ F.slice(0, 6), Pi = /*@__PURE__*/ F.slice(6), vi = /*@__PURE__*/ Pi.slice(1), Ei = /*@__PURE__*/ Wr(F), Si = /*@__PURE__*/ jr(F, 0), Fi = /*@__PURE__*/ jr(yi, 0), bi = /*@__PURE__*/ E(zeroOutProps, F), j = [ \"isoNanosecond\", \"isoMicrosecond\", \"isoMillisecond\", \"isoSecond\", \"isoMinute\", \"isoHour\" ], Oi = [ \"isoDay\", \"isoMonth\", \"isoYear\" ], wi = /*@__PURE__*/ j.concat(Oi), Bi = /*@__PURE__*/ sortStrings(Oi), ki = /*@__PURE__*/ sortStrings(j), Yi = /*@__PURE__*/ sortStrings(wi), Dt = /*@__PURE__*/ jr(ki, 0), Ci = /*@__PURE__*/ E(zeroOutProps, wi), En = Intl.DateTimeFormat, Zi = \"en-GB\", Ri = 1e8, zi = Ri * Gr, qi = [ Ri, 0 ], Ui = [ -Ri, 0 ], Ai = 275760, Li = -271821, Wi = 1970, ji = 1972, xi = 12, $i = /*@__PURE__*/ isoArgsToEpochMilli(1868, 9, 8), Gi = /*@__PURE__*/ Jn(computeJapaneseEraParts, WeakMap), Hi = \"smallestUnit\", Vi = \"unit\", _i = \"roundingIncrement\", Ji = \"fractionalSecondDigits\", Ki = \"relativeTo\", Qi = {\n constrain: 0,\n reject: 1\n}, Xi = /*@__PURE__*/ Object.keys(Qi), ea = {\n compatible: 0,\n reject: 1,\n earlier: 2,\n later: 3\n}, na = {\n reject: 0,\n use: 1,\n prefer: 2,\n ignore: 3\n}, ta = {\n auto: 0,\n never: 1,\n critical: 2,\n always: 3\n}, oa = {\n auto: 0,\n never: 1,\n critical: 2\n}, ra = {\n auto: 0,\n never: 1\n}, ia = {\n floor: 0,\n halfFloor: 1,\n ceil: 2,\n halfCeil: 3,\n trunc: 4,\n halfTrunc: 5,\n expand: 6,\n halfExpand: 7,\n halfEven: 8\n}, aa = /*@__PURE__*/ E(refineUnitOption, Hi), sa = /*@__PURE__*/ E(refineUnitOption, \"largestUnit\"), ca = /*@__PURE__*/ E(refineUnitOption, Vi), ua = /*@__PURE__*/ E(refineChoiceOption, \"overflow\", Qi), la = /*@__PURE__*/ E(refineChoiceOption, \"disambiguation\", ea), fa = /*@__PURE__*/ E(refineChoiceOption, \"offset\", na), da = /*@__PURE__*/ E(refineChoiceOption, \"calendarName\", ta), ma = /*@__PURE__*/ E(refineChoiceOption, \"timeZoneName\", oa), pa = /*@__PURE__*/ E(refineChoiceOption, \"offset\", ra), ha = /*@__PURE__*/ E(refineChoiceOption, \"roundingMode\", ia), L = \"PlainYearMonth\", q = \"PlainMonthDay\", J = \"PlainDate\", We = \"PlainDateTime\", xe = \"PlainTime\", Te = \"ZonedDateTime\", Oe = \"Instant\", qt = \"Duration\", ga = [ Math.floor, e => hasHalf(e) ? Math.floor(e) : Math.round(e), Math.ceil, e => hasHalf(e) ? Math.ceil(e) : Math.round(e), Math.trunc, e => hasHalf(e) ? Math.trunc(e) || 0 : Math.round(e), e => e < 0 ? Math.floor(e) : Math.ceil(e), e => Math.sign(e) * Math.round(Math.abs(e)) || 0, e => hasHalf(e) ? (e = Math.trunc(e) || 0) + e % 2 : Math.round(e) ], Ta = \"UTC\", Da = 5184e3, Ia = /*@__PURE__*/ isoArgsToEpochSec(1847), Ma = /*@__PURE__*/ isoArgsToEpochSec(/*@__PURE__*/ (/*@__PURE__*/ new Date).getUTCFullYear() + 10), Na = /0+$/, fn = /*@__PURE__*/ Jn(_zonedEpochSlotsToIso, WeakMap), ya = 2 ** 32 - 1, ie = /*@__PURE__*/ Jn((e => {\n const n = getTimeZoneEssence(e);\n return \"object\" == typeof n ? new IntlTimeZone(n) : new FixedTimeZone(n || 0);\n}));\n\nclass FixedTimeZone {\n constructor(e) {\n this.v = e;\n }\n getOffsetNanosecondsFor() {\n return this.v;\n }\n getPossibleInstantsFor(e) {\n return [ isoToEpochNanoWithOffset(e, this.v) ];\n }\n l() {}\n}\n\nclass IntlTimeZone {\n constructor(e) {\n this.$ = (e => {\n function getOffsetSec(e) {\n const i = clampNumber(e, o, r), [a, s] = computePeriod(i), c = n(a), u = n(s);\n return c === u ? c : pinch(t(a, s), c, u, e);\n }\n function pinch(n, t, o, r) {\n let i, a;\n for (;(void 0 === r || void 0 === (i = r < n[0] ? t : r >= n[1] ? o : void 0)) && (a = n[1] - n[0]); ) {\n const t = n[0] + Math.floor(a / 2);\n e(t) === o ? n[1] = t : n[0] = t + 1;\n }\n return i;\n }\n const n = Jn(e), t = Jn(createSplitTuple);\n let o = Ia, r = Ma;\n return {\n G(e) {\n const n = getOffsetSec(e - 86400), t = getOffsetSec(e + 86400), o = e - n, r = e - t;\n if (n === t) {\n return [ o ];\n }\n const i = getOffsetSec(o);\n return i === getOffsetSec(r) ? [ e - i ] : n > t ? [ o, r ] : [];\n },\n V: getOffsetSec,\n l(e, i) {\n const a = clampNumber(e, o, r);\n let [s, c] = computePeriod(a);\n const u = Da * i, l = i < 0 ? () => c > o || (o = a, 0) : () => s < r || (r = a, \n 0);\n for (;l(); ) {\n const o = n(s), r = n(c);\n if (o !== r) {\n const n = t(s, c);\n pinch(n, o, r);\n const a = n[0];\n if ((compareNumbers(a, e) || 1) === i) {\n return a;\n }\n }\n s += u, c += u;\n }\n }\n };\n })((e => n => {\n const t = hashIntlFormatParts(e, n * Hr);\n return isoArgsToEpochSec(parseIntlPartsYear(t), parseInt(t.month), parseInt(t.day), parseInt(t.hour), parseInt(t.minute), parseInt(t.second)) - n;\n })(e));\n }\n getOffsetNanosecondsFor(e) {\n return this.$.V(epochNanoToSec(e)) * _r;\n }\n getPossibleInstantsFor(e) {\n const [n, t] = [ isoArgsToEpochSec((o = e).isoYear, o.isoMonth, o.isoDay, o.isoHour, o.isoMinute, o.isoSecond), o.isoMillisecond * be + o.isoMicrosecond * Vr + o.isoNanosecond ];\n var o;\n return this.$.G(n).map((e => checkEpochNanoInBounds(moveBigNano(he(e, _r), t))));\n }\n l(e, n) {\n const [t, o] = epochNanoToSecMod(e), r = this.$.l(t + (n > 0 || o ? 1 : 0), n);\n if (void 0 !== r) {\n return he(r, _r);\n }\n }\n}\n\nconst Pa = \"([+−-])\", va = \"(?:[.,](\\\\d{1,9}))?\", Ea = `(?:(?:${Pa}(\\\\d{6}))|(\\\\d{4}))-?(\\\\d{2})`, Sa = \"(\\\\d{2})(?::?(\\\\d{2})(?::?(\\\\d{2})\" + va + \")?)?\", Fa = Pa + Sa, ba = Ea + \"-?(\\\\d{2})(?:[T ]\" + Sa + \"(Z|\" + Fa + \")?)?\", Oa = \"\\\\[(!?)([^\\\\]]*)\\\\]\", wa = `((?:${Oa}){0,9})`, Ba = /*@__PURE__*/ createRegExp(Ea + wa), ka = /*@__PURE__*/ createRegExp(\"(?:--)?(\\\\d{2})-?(\\\\d{2})\" + wa), Ya = /*@__PURE__*/ createRegExp(ba + wa), Ca = /*@__PURE__*/ createRegExp(\"T?\" + Sa + \"(?:\" + Fa + \")?\" + wa), Za = /*@__PURE__*/ createRegExp(Fa), Ra = /*@__PURE__*/ new RegExp(Oa, \"g\"), za = /*@__PURE__*/ createRegExp(`${Pa}?P(\\\\d+Y)?(\\\\d+M)?(\\\\d+W)?(\\\\d+D)?(?:T(?:(\\\\d+)${va}H)?(?:(\\\\d+)${va}M)?(?:(\\\\d+)${va}S)?)?`), qa = /*@__PURE__*/ Jn((e => new En(Zi, {\n timeZone: e,\n era: \"short\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\"\n}))), Ua = /^(AC|AE|AG|AR|AS|BE|BS|CA|CN|CS|CT|EA|EC|IE|IS|JS|MI|NE|NS|PL|PN|PR|PS|SS|VS)T$/, Aa = /*@__PURE__*/ Jn(createIntlCalendar), La = /*@__PURE__*/ Jn((e => new En(Zi, {\n calendar: e,\n timeZone: Ta,\n era: \"short\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\"\n}))), Wa = /^M(\\d{2})(L?)$/, ja = {\n era: toStringViaPrimitive,\n eraYear: toInteger,\n year: toInteger,\n month: toPositiveInteger,\n monthCode: toStringViaPrimitive,\n day: toPositiveInteger\n}, xa = /*@__PURE__*/ jr(w, toInteger), $a = /*@__PURE__*/ jr(F, toStrictInteger), Ga = /*@__PURE__*/ Object.assign({}, ja, xa, $a, {\n offset: toStringViaPrimitive\n}), Ha = /*@__PURE__*/ E(remapProps, w, j), Va = {\n dateAdd(e, n, t) {\n const o = H(t);\n let r, {years: i, months: a, weeks: s, days: c} = n;\n if (c += durationFieldsToBigNano(n, 5)[0], i || a) {\n r = ((e, n, t, o, r) => {\n let [i, a, s] = e.h(n);\n if (t) {\n const [n, o] = e.I(i, a);\n i += t, a = monthCodeNumberToMonth(n, o, e.U(i)), a = clampEntity(\"month\", a, 1, e.L(i), r);\n }\n return o && ([i, a] = e._(i, a, o)), s = clampEntity(\"day\", s, 1, e.j(i, a), r), \n e.q(i, a, s);\n })(this, e, i, a, o);\n } else {\n if (!s && !c) {\n return e;\n }\n r = isoToEpochMilli(e);\n }\n return r += (7 * s + c) * Gr, checkIsoDateInBounds(epochMilliToIso(r));\n },\n dateUntil(e, n, t) {\n if (t <= 7) {\n let o = 0, r = diffDays({\n ...e,\n ...Dt\n }, {\n ...n,\n ...Dt\n });\n return 7 === t && ([o, r] = divModTrunc(r, 7)), {\n ...Si,\n weeks: o,\n days: r\n };\n }\n const o = this.h(e), r = this.h(n);\n let [i, a, s] = ((e, n, t, o, r, i, a) => {\n let s = r - n, c = i - t, u = a - o;\n if (s || c) {\n const l = Math.sign(s || c);\n let f = e.j(r, i), d = 0;\n if (Math.sign(u) === -l) {\n const o = f;\n [r, i] = e._(r, i, -l), s = r - n, c = i - t, f = e.j(r, i), d = l < 0 ? -o : f;\n }\n if (u = a - Math.min(o, f) + d, s) {\n const [o, a] = e.I(n, t), [u, f] = e.I(r, i);\n if (c = u - o || Number(f) - Number(a), Math.sign(c) === -l) {\n const t = l < 0 && -e.L(r);\n s = (r -= l) - n, c = i - monthCodeNumberToMonth(o, a, e.U(r)) + (t || e.L(r));\n }\n }\n }\n return [ s, c, u ];\n })(this, ...o, ...r);\n return 8 === t && (a += this.J(i, o[0]), i = 0), {\n ...Si,\n years: i,\n months: a,\n days: s\n };\n },\n dateFromFields(e, n) {\n const t = H(n), o = refineYear(this, e), r = refineMonth(this, e, o, t), i = refineDay(this, e, r, o, t);\n return v(checkIsoDateInBounds(this.P(o, r, i)), this.id || X);\n },\n yearMonthFromFields(e, n) {\n const t = H(n), o = refineYear(this, e), r = refineMonth(this, e, o, t);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(this.P(o, r, 1)), this.id || X);\n },\n monthDayFromFields(e, n) {\n const t = H(n), o = !this.id, {monthCode: r, year: i, month: a} = e;\n let s, c, u, l, f;\n if (void 0 !== r) {\n [s, c] = parseMonthCode(r), f = getDefinedProp(e, \"day\");\n const n = this.N(s, c, f);\n if (!n) {\n throw new RangeError(yr);\n }\n if ([u, l] = n, void 0 !== a && a !== l) {\n throw new RangeError(Mr);\n }\n o && (l = clampEntity(\"month\", l, 1, xi, 1), f = clampEntity(\"day\", f, 1, computeIsoDaysInMonth(void 0 !== i ? i : u, l), t));\n } else {\n u = void 0 === i && o ? ji : refineYear(this, e), l = refineMonth(this, e, u, t), \n f = refineDay(this, e, l, u, t);\n const n = this.U(u);\n c = l === n, s = monthToMonthCodeNumber(l, n);\n const r = this.N(s, c, f);\n if (!r) {\n throw new RangeError(yr);\n }\n [u, l] = r;\n }\n return createPlainMonthDaySlots(checkIsoDateInBounds(this.P(u, l, f)), this.id || X);\n },\n fields(e) {\n return getCalendarEraOrigins(this) && e.includes(\"year\") ? [ ...e, ...ii ] : e;\n },\n mergeFields(e, n) {\n const t = Object.assign(Object.create(null), e);\n return spliceFields(t, n, ui), getCalendarEraOrigins(this) && (spliceFields(t, n, ai), \n this.id === Ti && spliceFields(t, n, mi, ii)), t;\n },\n inLeapYear(e) {\n const [n] = this.h(e);\n return this.K(n);\n },\n monthsInYear(e) {\n const [n] = this.h(e);\n return this.L(n);\n },\n daysInMonth(e) {\n const [n, t] = this.h(e);\n return this.j(n, t);\n },\n daysInYear(e) {\n const [n] = this.h(e);\n return this.X(n);\n },\n dayOfYear: computeNativeDayOfYear,\n era(e) {\n return this.ee(e)[0];\n },\n eraYear(e) {\n return this.ee(e)[1];\n },\n monthCode(e) {\n const [n, t] = this.h(e), [o, r] = this.I(n, t);\n return ((e, n) => \"M\" + xr(e) + (n ? \"L\" : \"\"))(o, r);\n },\n dayOfWeek: computeIsoDayOfWeek,\n daysInWeek() {\n return 7;\n }\n}, _a = {\n dayOfYear: computeNativeDayOfYear,\n h: computeIsoDateParts,\n q: isoArgsToEpochMilli\n}, Ja = /*@__PURE__*/ Object.assign({}, _a, {\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek,\n R(e) {\n function computeWeekShift(e) {\n return (7 - e < n ? 7 : 0) - e;\n }\n function computeWeeksInYear(e) {\n const n = computeIsoDaysInYear(l + e), t = e || 1, o = computeWeekShift(modFloor(a + n * t, 7));\n return c = (n + (o - s) * t) / 7;\n }\n const n = this.id ? 1 : 4, t = computeIsoDayOfWeek(e), o = this.dayOfYear(e), r = modFloor(t - 1, 7), i = o - 1, a = modFloor(r - i, 7), s = computeWeekShift(a);\n let c, u = Math.floor((i - s) / 7) + 1, l = e.isoYear;\n return u ? u > computeWeeksInYear(0) && (u = 1, l++) : (u = computeWeeksInYear(-1), \n l--), [ u, l, c ];\n }\n}), Ka = {\n dayOfYear: computeNativeDayOfYear,\n h: computeIntlDateParts,\n q: computeIntlEpochMilli,\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek,\n R() {\n return [];\n }\n}, Y = /*@__PURE__*/ createNativeOpsCreator(/*@__PURE__*/ Object.assign({}, Va, Ja, {\n h: computeIsoDateParts,\n ee(e) {\n return this.id === gi ? computeGregoryEraParts(e) : this.id === Ti ? Gi(e) : [];\n },\n I: (e, n) => [ n, 0 ],\n N(e, n) {\n if (!n) {\n return [ ji, e ];\n }\n },\n K: computeIsoInLeapYear,\n U() {},\n L: computeIsoMonthsInYear,\n J: e => e * xi,\n j: computeIsoDaysInMonth,\n X: computeIsoDaysInYear,\n P: (e, n, t) => ({\n isoYear: e,\n isoMonth: n,\n isoDay: t\n }),\n q: isoArgsToEpochMilli,\n _: (e, n, t) => (e += divTrunc(t, xi), (n += modTrunc(t, xi)) < 1 ? (e--, n += xi) : n > xi && (e++, \n n -= xi), [ e, n ]),\n year(e) {\n return e.isoYear;\n },\n month(e) {\n return e.isoMonth;\n },\n day: e => e.isoDay\n}), /*@__PURE__*/ Object.assign({}, Va, Ka, {\n h: computeIntlDateParts,\n ee(e) {\n const n = this.O(e);\n return [ n.era, n.eraYear ];\n },\n I(e, n) {\n const t = computeIntlLeapMonth.call(this, e);\n return [ monthToMonthCodeNumber(n, t), t === n ];\n },\n N(e, n, t) {\n let [o, r, i] = computeIntlDateParts.call(this, {\n isoYear: ji,\n isoMonth: xi,\n isoDay: 31\n });\n const a = computeIntlLeapMonth.call(this, o), s = r === a;\n 1 === (compareNumbers(e, monthToMonthCodeNumber(r, a)) || compareNumbers(Number(n), Number(s)) || compareNumbers(t, i)) && o--;\n for (let r = 0; r < 100; r++) {\n const i = o - r, a = computeIntlLeapMonth.call(this, i), s = monthCodeNumberToMonth(e, n, a);\n if (n === (s === a) && t <= computeIntlDaysInMonth.call(this, i, s)) {\n return [ i, s ];\n }\n }\n },\n K(e) {\n const n = computeIntlDaysInYear.call(this, e);\n return n > computeIntlDaysInYear.call(this, e - 1) && n > computeIntlDaysInYear.call(this, e + 1);\n },\n U: computeIntlLeapMonth,\n L: computeIntlMonthsInYear,\n J(e, n) {\n const t = n + e, o = Math.sign(e), r = o < 0 ? -1 : 0;\n let i = 0;\n for (let e = n; e !== t; e += o) {\n i += computeIntlMonthsInYear.call(this, e + r);\n }\n return i;\n },\n j: computeIntlDaysInMonth,\n X: computeIntlDaysInYear,\n P(e, n, t) {\n return epochMilliToIso(computeIntlEpochMilli.call(this, e, n, t));\n },\n q: computeIntlEpochMilli,\n _(e, n, t) {\n if (t) {\n if (n += t, !Number.isSafeInteger(n)) {\n throw new RangeError(Cr);\n }\n if (t < 0) {\n for (;n < 1; ) {\n n += computeIntlMonthsInYear.call(this, --e);\n }\n } else {\n let t;\n for (;n > (t = computeIntlMonthsInYear.call(this, e)); ) {\n n -= t, e++;\n }\n }\n }\n return [ e, n ];\n },\n year(e) {\n return this.O(e).year;\n },\n month(e) {\n const {year: n, F: t} = this.O(e), {C: o} = this.B(n);\n return o[t] + 1;\n },\n day(e) {\n return this.O(e).day;\n }\n})), Qa = \"numeric\", Xa = [ \"timeZoneName\" ], es = {\n month: Qa,\n day: Qa\n}, ns = {\n year: Qa,\n month: Qa\n}, ts = /*@__PURE__*/ Object.assign({}, ns, {\n day: Qa\n}), os = {\n hour: Qa,\n minute: Qa,\n second: Qa\n}, rs = /*@__PURE__*/ Object.assign({}, ts, os), is = /*@__PURE__*/ Object.assign({}, rs, {\n timeZoneName: \"short\"\n}), as = /*@__PURE__*/ Object.keys(ns), ss = /*@__PURE__*/ Object.keys(es), cs = /*@__PURE__*/ Object.keys(ts), us = /*@__PURE__*/ Object.keys(os), ls = [ \"dateStyle\" ], fs = /*@__PURE__*/ as.concat(ls), ds = /*@__PURE__*/ ss.concat(ls), ms = /*@__PURE__*/ cs.concat(ls, [ \"weekday\" ]), ps = /*@__PURE__*/ us.concat([ \"dayPeriod\", \"timeStyle\" ]), hs = /*@__PURE__*/ ms.concat(ps), gs = /*@__PURE__*/ hs.concat(Xa), Ts = /*@__PURE__*/ Xa.concat(ps), Ds = /*@__PURE__*/ Xa.concat(ms), Is = /*@__PURE__*/ Xa.concat([ \"day\", \"weekday\" ], ps), Ms = /*@__PURE__*/ Xa.concat([ \"year\", \"weekday\" ], ps), Ns = {}, t = [ /*@__PURE__*/ createOptionsTransformer(hs, rs), y ], s = [ /*@__PURE__*/ createOptionsTransformer(gs, is), y, 0, (e, n) => {\n const t = I(e.timeZone);\n if (n && I(n.timeZone) !== t) {\n throw new RangeError(Fr);\n }\n return t;\n} ], n = [ /*@__PURE__*/ createOptionsTransformer(hs, rs, Xa), isoToEpochMilli ], o = [ /*@__PURE__*/ createOptionsTransformer(ms, ts, Ts), isoToEpochMilli ], r = [ /*@__PURE__*/ createOptionsTransformer(ps, os, Ds), e => isoTimeFieldsToNano(e) / be ], a = [ /*@__PURE__*/ createOptionsTransformer(fs, ns, Is), isoToEpochMilli, 1 ], i = [ /*@__PURE__*/ createOptionsTransformer(ds, es, Ms), isoToEpochMilli, 1 ];\n\nlet ys;\n\nexport { qt as DurationBranding, Oe as InstantBranding, J as PlainDateBranding, We as PlainDateTimeBranding, q as PlainMonthDayBranding, xe as PlainTimeBranding, L as PlainYearMonthBranding, En as RawDateTimeFormat, Te as ZonedDateTimeBranding, Rt as absDuration, Wt as addDurations, oe as bigNanoToNumber, E as bindArgs, mn as buildZonedIsoFields, te as compareBigNanos, $t as compareDurations, Ze as compareInstants, rt as compareIsoDateFields, gt as compareIsoDateTimeFields, He as compareIsoTimeFields, yn as compareZonedDateTimes, dn as computeZonedHoursInDay, Cn as computeZonedStartOfDay, Lt as constructDurationSlots, Se as constructInstantSlots, Nt as constructPlainDateSlots, pt as constructPlainDateTimeSlots, G as constructPlainMonthDaySlots, ke as constructPlainTimeSlots, tt as constructPlainYearMonthSlots, vn as constructZonedDateTimeSlots, U as copyOptions, Vt as createDurationSlots, qn as createFormatForPrep, e as createFormatPrepper, O as createGetterDescriptors, _ as createInstantSlots, D as createNameDescriptors, Y as createNativeStandardOps, v as createPlainDateSlots, ee as createPlainDateTimeSlots, Ge as createPlainTimeSlots, p as createPropDescriptors, h as createStringTagDescriptors, Yn as createZonedDateTimeSlots, o as dateConfig, en as dateFieldNamesAlpha, n as dateTimeConfig, re as diffBigNanos, le as diffInstants, ut as diffPlainDateTimes, Ft as diffPlainDates, Ae as diffPlainTimes, Xe as diffPlainYearMonth, Dn as diffZonedDateTimes, F as durationFieldNamesAsc, kt as durationWithFields, Ce as epochMicroToInstant, Pe as epochMilliToInstant, ge as epochNanoToInstant, Ie as epochNanoToIso, De as epochSecToInstant, V as excludePropsByName, nn as excludeUndefinedProps, tn as forbiddenField, A as forbiddenValueOf, zt as formatDurationIso, me as formatInstantIso, Fe as formatOffsetNano, yt as formatPlainDateIso, Tt as formatPlainDateTimeIso, W as formatPlainMonthDayIso, qe as formatPlainTimeIso, et as formatPlainYearMonthIso, In as formatZonedDateTimeIso, Bn as getCurrentEpochNano, An as getCurrentIsoDateTime, Nn as getCurrentTimeZoneId, Jt as getDurationBlank, N as getEpochMicro, y as getEpochMilli, B as getEpochNano, M as getEpochSec, I as getId, ln as getRequiredDateFields, cn as getRequiredMonthDayFields, un as getRequiredYearMonthFields, we as getSingleInstantFor, C as hasAllPropsByName, t as instantConfig, fe as instantToZonedDateTime, ue as instantsEqual, Z as invalidBag, P as invalidCallingContext, Ln as invalidFormatType, g as invalidProtocol, z as isObjectLike, je as isTimeZoneSlotsEqual, X as isoCalendarId, Dt as isoTimeFieldDefaults, j as isoTimeFieldNamesAsc, b as mapPropNames, T as mapProps, Jn as memoize, kn as mismatchingFormatTypes, i as monthDayConfig, se as moveInstant, bt as movePlainDate, ct as movePlainDateTime, Ye as movePlainTime, Qe as movePlainYearMonth, hn as moveZonedDateTime, be as nanoInMilli, xt as negateDuration, he as numberToBigNano, sn as parseCalendarId, Kt as parseDuration, pe as parseInstant, At as parsePlainDate, Ct as parsePlainDateTime, Q as parsePlainMonthDay, ze as parsePlainTime, ot as parsePlainYearMonth, Xt as parseRelativeToSlots, Ne as parseTimeZoneId, Mn as parseZonedDateTime, Ot as plainDateTimeToPlainMonthDay, St as plainDateTimeToPlainYearMonth, mt as plainDateTimeToZonedDateTime, at as plainDateTimeWithFields, st as plainDateTimeWithPlainDate, lt as plainDateTimeWithPlainTime, ft as plainDateTimesEqual, wt as plainDateToPlainDateTime, Mt as plainDateToPlainMonthDay, jt as plainDateToPlainYearMonth, vt as plainDateToZonedDateTime, Zt as plainDateWithFields, It as plainDatesEqual, R as plainMonthDayToPlainDate, k as plainMonthDayWithFields, x as plainMonthDaysEqual, Le as plainTimeToPlainDateTime, Je as plainTimeToZonedDateTime, Be as plainTimeWithFields, Ve as plainTimesEqual, _e as plainYearMonthToPlainDate, Ke as plainYearMonthWithFields, $e as plainYearMonthsEqual, Vn as pluckProps, ie as queryNativeTimeZone, rn as refineCalendarId, _t as refineDateDiffOptions, Ht as refineDurationBag, ve as refineEpochDisambigOptions, Qt as refineMaybeZonedDateTimeBag, H as refineOverflowOptions, Yt as refinePlainDateBag, Pt as refinePlainDateTimeBag, K as refinePlainMonthDayBag, Ue as refinePlainTimeBag, nt as refinePlainYearMonthBag, Me as refineTimeZoneId, jn as refineZonedDateTimeBag, wn as refineZonedFieldOptions, f as requireBoolean, $ as requireFunction, u as requireInteger, c as requireIntegerOrUndefined, on as requireNonNullish, de as requireObjectLike, d as requirePositiveInteger, S as requirePositiveIntegerOrUndefined, m as requireString, l as requireStringOrUndefined, an as resolveCalendarId, ye as resolveTimeZoneId, Gt as roundDuration, ce as roundInstant, dt as roundPlainDateTime, Ee as roundPlainTime, Pn as roundZonedDateTime, it as slotsWithCalendar, On as slotsWithTimeZone, r as timeConfig, w as timeFieldNamesAsc, Ut as totalDuration, Et as unitNamesAsc, ne as validateTimeZoneGap, ae as validateTimeZoneOffset, a as yearMonthConfig, s as zonedConfig, Zn as zonedDateTimeToInstant, Bt as zonedDateTimeToPlainDate, ht as zonedDateTimeToPlainDateTime, Fn as zonedDateTimeToPlainMonthDay, Re as zonedDateTimeToPlainTime, bn as zonedDateTimeToPlainYearMonth, Sn as zonedDateTimeWithFields, Tn as zonedDateTimeWithPlainDate, pn as zonedDateTimeWithPlainTime, gn as zonedDateTimesEqual, fn as zonedEpochSlotsToIso };\n",
|
|
7
|
-
"function createSlotClass(e, t, n, o, r) {\n function Class(...e) {\n if (!(this instanceof Class)) {\n throw new TypeError(P);\n }\n oo(this, t(...e));\n }\n function bindMethod(e, t) {\n return Object.defineProperties((function(...t) {\n return e.call(this, getSpecificSlots(this), ...t);\n }), D(t));\n }\n function getSpecificSlots(t) {\n const n = no(t);\n if (!n || n.branding !== e) {\n throw new TypeError(P);\n }\n return n;\n }\n return Object.defineProperties(Class.prototype, {\n ...O(T(bindMethod, n)),\n ...p(T(bindMethod, o)),\n ...h(\"Temporal.\" + e)\n }), Object.defineProperties(Class, {\n ...p(r),\n ...D(e)\n }), [ Class, e => {\n const t = Object.create(Class.prototype);\n return oo(t, e), t;\n }, getSpecificSlots ];\n}\n\nfunction createProtocolValidator(e) {\n return e = e.concat(\"id\").sort(), t => {\n if (!C(t, e)) {\n throw new TypeError(g);\n }\n return t;\n };\n}\n\nfunction rejectInvalidBag(e) {\n if (no(e) || void 0 !== e.calendar || void 0 !== e.timeZone) {\n throw new TypeError(Z);\n }\n return e;\n}\n\nfunction createCalendarFieldMethods(e, t) {\n const n = {};\n for (const o in e) {\n n[o] = ({o: e}, n) => {\n const r = no(n) || {}, {branding: a} = r, i = a === J || t.includes(a) ? r : toPlainDateSlots(n);\n return e[o](i);\n };\n }\n return n;\n}\n\nfunction createCalendarGetters(e) {\n const t = {};\n for (const n in e) {\n t[n] = e => {\n const {calendar: t} = e;\n return (o = t, \"string\" == typeof o ? Y(o) : (r = o, Object.assign(Object.create(co), {\n i: r\n })))[n](e);\n var o, r;\n };\n }\n return t;\n}\n\nfunction neverValueOf() {\n throw new TypeError(A);\n}\n\nfunction createCalendarFromSlots({calendar: e}) {\n return \"string\" == typeof e ? new lr(e) : e;\n}\n\nfunction toPlainMonthDaySlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e);\n if (n && n.branding === q) {\n return H(t), n;\n }\n const o = extractCalendarSlotFromBag(e);\n return K(Qo(o || X), !o, e, t);\n }\n const n = Q(Y, e);\n return H(t), n;\n}\n\nfunction getOffsetNanosecondsForAdapter(e, t, n) {\n return o = t.call(e, Co(_(n))), ae(u(o));\n var o;\n}\n\nfunction createAdapterOps(e, t = ho) {\n const n = Object.keys(t).sort(), o = {};\n for (const r of n) {\n o[r] = E(t[r], e, $(e[r]));\n }\n return o;\n}\n\nfunction createTimeZoneOps(e, t) {\n return \"string\" == typeof e ? ie(e) : createAdapterOps(e, t);\n}\n\nfunction createTimeZoneOffsetOps(e) {\n return createTimeZoneOps(e, Do);\n}\n\nfunction toInstantSlots(e) {\n if (z(e)) {\n const t = no(e);\n if (t) {\n switch (t.branding) {\n case Oe:\n return t;\n\n case Te:\n return _(t.epochNanoseconds);\n }\n }\n }\n return pe(e);\n}\n\nfunction toTemporalInstant() {\n return Co(_(he(this.valueOf(), be)));\n}\n\nfunction getImplTransition(e, t, n) {\n const o = t.l(toInstantSlots(n).epochNanoseconds, e);\n return o ? Co(_(o)) : null;\n}\n\nfunction refineTimeZoneSlot(e) {\n return z(e) ? (no(e) || {}).timeZone || Fo(e) : (e => ye(Ne(m(e))))(e);\n}\n\nfunction toPlainTimeSlots(e, t) {\n if (z(e)) {\n const n = no(e) || {};\n switch (n.branding) {\n case xe:\n return H(t), n;\n\n case We:\n return H(t), Ge(n);\n\n case Te:\n return H(t), Re(createTimeZoneOffsetOps, n);\n }\n return Ue(e, t);\n }\n return H(t), ze(e);\n}\n\nfunction optionalToPlainTimeFields(e) {\n return void 0 === e ? void 0 : toPlainTimeSlots(e);\n}\n\nfunction toPlainYearMonthSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e);\n return n && n.branding === L ? (H(t), n) : nt(Ho(getCalendarSlotFromBag(e)), e, t);\n }\n const n = ot(Y, e);\n return H(t), n;\n}\n\nfunction toPlainDateTimeSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e) || {};\n switch (n.branding) {\n case We:\n return H(t), n;\n\n case J:\n return H(t), ee({\n ...n,\n ...Dt\n });\n\n case Te:\n return H(t), ht(createTimeZoneOffsetOps, n);\n }\n return Pt(Ko(getCalendarSlotFromBag(e)), e, t);\n }\n const n = Ct(e);\n return H(t), n;\n}\n\nfunction toPlainDateSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e) || {};\n switch (n.branding) {\n case J:\n return H(t), n;\n\n case We:\n return H(t), v(n);\n\n case Te:\n return H(t), Bt(createTimeZoneOffsetOps, n);\n }\n return Yt(Ko(getCalendarSlotFromBag(e)), e, t);\n }\n const n = At(e);\n return H(t), n;\n}\n\nfunction dayAdapter(e, t, n) {\n return d(t.call(e, Yo(v(n, e))));\n}\n\nfunction createCompoundOpsCreator(e) {\n return t => \"string\" == typeof t ? Y(t) : ((e, t) => {\n const n = Object.keys(t).sort(), o = {};\n for (const r of n) {\n o[r] = E(t[r], e, e[r]);\n }\n return o;\n })(t, e);\n}\n\nfunction toDurationSlots(e) {\n if (z(e)) {\n const t = no(e);\n return t && t.branding === qt ? t : Ht(e);\n }\n return Kt(e);\n}\n\nfunction refinePublicRelativeTo(e) {\n if (void 0 !== e) {\n if (z(e)) {\n const t = no(e) || {};\n switch (t.branding) {\n case Te:\n case J:\n return t;\n\n case We:\n return v(t);\n }\n const n = getCalendarSlotFromBag(e);\n return {\n ...Qt(refineTimeZoneSlot, createTimeZoneOps, Ko(n), e),\n calendar: n\n };\n }\n return Xt(e);\n }\n}\n\nfunction getCalendarSlotFromBag(e) {\n return extractCalendarSlotFromBag(e) || X;\n}\n\nfunction extractCalendarSlotFromBag(e) {\n const {calendar: t} = e;\n if (void 0 !== t) {\n return refineCalendarSlot(t);\n }\n}\n\nfunction refineCalendarSlot(e) {\n return z(e) ? (no(e) || {}).calendar || cr(e) : (e => an(sn(m(e))))(e);\n}\n\nfunction toZonedDateTimeSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e);\n if (n && n.branding === Te) {\n return wn(t), n;\n }\n const o = getCalendarSlotFromBag(e);\n return jn(refineTimeZoneSlot, createTimeZoneOps, Ko(o), o, e, t);\n }\n return Mn(e, t);\n}\n\nfunction adaptDateMethods(e) {\n return T((e => t => e(slotsToIso(t))), e);\n}\n\nfunction slotsToIso(e) {\n return fn(e, createTimeZoneOffsetOps);\n}\n\nfunction createDateTimeFormatClass() {\n const e = En.prototype, t = Object.getOwnPropertyDescriptors(e), n = Object.getOwnPropertyDescriptors(En), DateTimeFormat = function(e, t = {}) {\n if (!(this instanceof DateTimeFormat)) {\n return new DateTimeFormat(e, t);\n }\n Or.set(this, ((e, t = {}) => {\n const n = new En(e, t), o = n.resolvedOptions(), r = o.locale, a = Vn(Object.keys(t), o), i = Jn(createFormatPrepperForBranding), prepFormat = (...e) => {\n let t;\n const o = e.map(((e, n) => {\n const o = no(e), r = (o || {}).branding;\n if (n && t && t !== r) {\n throw new TypeError(kn);\n }\n return t = r, o;\n }));\n return t ? i(t)(r, a, ...o) : [ n, ...e ];\n };\n return prepFormat.u = n, prepFormat;\n })(e, t));\n };\n for (const e in t) {\n const n = t[e], o = e.startsWith(\"format\") && createFormatMethod(e);\n \"function\" == typeof n.value ? n.value = \"constructor\" === e ? DateTimeFormat : o || createProxiedMethod(e) : o && (n.get = function() {\n return o.bind(this);\n });\n }\n return n.prototype.value = Object.create(e, t), Object.defineProperties(DateTimeFormat, n), \n DateTimeFormat;\n}\n\nfunction createFormatMethod(e) {\n return function(...t) {\n const n = Or.get(this), [o, ...r] = n(...t);\n return o[e](...r);\n };\n}\n\nfunction createProxiedMethod(e) {\n return function(...t) {\n return Or.get(this).u[e](...t);\n };\n}\n\nfunction createFormatPrepperForBranding(t) {\n const n = xn[t];\n if (!n) {\n throw new TypeError(Ln(t));\n }\n return e(n, Jn(qn));\n}\n\nimport { createFormatPrepper as e, instantConfig as t, dateTimeConfig as n, dateConfig as o, timeConfig as r, yearMonthConfig as a, monthDayConfig as i, zonedConfig as s, requireStringOrUndefined as l, requireIntegerOrUndefined as c, requireInteger as u, requirePositiveInteger as d, requireBoolean as f, requireString as m, requirePositiveIntegerOrUndefined as S, createGetterDescriptors as O, mapProps as T, createPropDescriptors as p, createStringTagDescriptors as h, createNameDescriptors as D, invalidCallingContext as P, hasAllPropsByName as C, invalidProtocol as g, invalidBag as Z, mapPropNames as b, durationFieldNamesAsc as F, getId as I, createPlainDateSlots as v, timeFieldNamesAsc as w, isoTimeFieldNamesAsc as j, getEpochSec as M, getEpochMilli as y, getEpochMicro as N, getEpochNano as B, createNativeStandardOps as Y, forbiddenValueOf as A, bindArgs as E, excludePropsByName as V, PlainDateBranding as J, PlainYearMonthBranding as L, PlainMonthDayBranding as q, plainMonthDayWithFields as k, plainMonthDaysEqual as x, plainMonthDayToPlainDate as R, formatPlainMonthDayIso as W, constructPlainMonthDaySlots as G, copyOptions as U, isObjectLike as z, refineOverflowOptions as H, refinePlainMonthDayBag as K, parsePlainMonthDay as Q, isoCalendarId as X, requireFunction as $, createInstantSlots as _, createPlainDateTimeSlots as ee, compareBigNanos as te, validateTimeZoneGap as ne, bigNanoToNumber as oe, diffBigNanos as re, validateTimeZoneOffset as ae, queryNativeTimeZone as ie, moveInstant as se, diffInstants as le, roundInstant as ce, instantsEqual as ue, requireObjectLike as de, instantToZonedDateTime as fe, formatInstantIso as me, constructInstantSlots as Se, InstantBranding as Oe, ZonedDateTimeBranding as Te, parseInstant as pe, numberToBigNano as he, epochSecToInstant as De, epochMilliToInstant as Pe, epochMicroToInstant as Ce, epochNanoToInstant as ge, compareInstants as Ze, nanoInMilli as be, formatOffsetNano as Fe, epochNanoToIso as Ie, refineEpochDisambigOptions as ve, getSingleInstantFor as we, isTimeZoneSlotsEqual as je, refineTimeZoneId as Me, resolveTimeZoneId as ye, parseTimeZoneId as Ne, plainTimeWithFields as Be, movePlainTime as Ye, diffPlainTimes as Ae, roundPlainTime as Ee, plainTimesEqual as Ve, plainTimeToZonedDateTime as Je, plainTimeToPlainDateTime as Le, formatPlainTimeIso as qe, constructPlainTimeSlots as ke, PlainTimeBranding as xe, zonedDateTimeToPlainTime as Re, PlainDateTimeBranding as We, createPlainTimeSlots as Ge, refinePlainTimeBag as Ue, parsePlainTime as ze, compareIsoTimeFields as He, plainYearMonthWithFields as Ke, movePlainYearMonth as Qe, diffPlainYearMonth as Xe, plainYearMonthsEqual as $e, plainYearMonthToPlainDate as _e, formatPlainYearMonthIso as et, constructPlainYearMonthSlots as tt, refinePlainYearMonthBag as nt, parsePlainYearMonth as ot, compareIsoDateFields as rt, plainDateTimeWithFields as at, slotsWithCalendar as it, plainDateTimeWithPlainDate as st, plainDateTimeWithPlainTime as lt, movePlainDateTime as ct, diffPlainDateTimes as ut, roundPlainDateTime as dt, plainDateTimesEqual as ft, plainDateTimeToZonedDateTime as mt, plainDateTimeToPlainYearMonth as St, plainDateTimeToPlainMonthDay as Ot, formatPlainDateTimeIso as Tt, constructPlainDateTimeSlots as pt, zonedDateTimeToPlainDateTime as ht, isoTimeFieldDefaults as Dt, refinePlainDateTimeBag as Pt, parsePlainDateTime as Ct, compareIsoDateTimeFields as gt, plainDateWithFields as Zt, movePlainDate as bt, diffPlainDates as Ft, plainDatesEqual as It, plainDateToZonedDateTime as vt, plainDateToPlainDateTime as wt, plainDateToPlainYearMonth as jt, plainDateToPlainMonthDay as Mt, formatPlainDateIso as yt, constructPlainDateSlots as Nt, zonedDateTimeToPlainDate as Bt, refinePlainDateBag as Yt, parsePlainDate as At, unitNamesAsc as Et, createDurationSlots as Vt, getDurationBlank as Jt, constructDurationSlots as Lt, DurationBranding as qt, durationWithFields as kt, negateDuration as xt, absDuration as Rt, addDurations as Wt, roundDuration as Gt, totalDuration as Ut, formatDurationIso as zt, refineDurationBag as Ht, parseDuration as Kt, refineMaybeZonedDateTimeBag as Qt, parseRelativeToSlots as Xt, compareDurations as $t, refineDateDiffOptions as _t, dateFieldNamesAlpha as en, forbiddenField as tn, excludeUndefinedProps as nn, requireNonNullish as on, refineCalendarId as rn, resolveCalendarId as an, parseCalendarId as sn, getRequiredDateFields as ln, getRequiredMonthDayFields as cn, getRequiredYearMonthFields as un, computeZonedHoursInDay as dn, zonedEpochSlotsToIso as fn, buildZonedIsoFields as mn, zonedDateTimeWithFields as Sn, slotsWithTimeZone as On, zonedDateTimeWithPlainDate as Tn, zonedDateTimeWithPlainTime as pn, moveZonedDateTime as hn, diffZonedDateTimes as Dn, roundZonedDateTime as Pn, computeZonedStartOfDay as Cn, zonedDateTimesEqual as gn, zonedDateTimeToInstant as Zn, zonedDateTimeToPlainYearMonth as bn, zonedDateTimeToPlainMonthDay as Fn, formatZonedDateTimeIso as In, constructZonedDateTimeSlots as vn, refineZonedFieldOptions as wn, refineZonedDateTimeBag as jn, parseZonedDateTime as Mn, compareZonedDateTimes as yn, getCurrentTimeZoneId as Nn, getCurrentEpochNano as Bn, createZonedDateTimeSlots as Yn, getCurrentIsoDateTime as An, RawDateTimeFormat as En, pluckProps as Vn, memoize as Jn, invalidFormatType as Ln, createFormatForPrep as qn, mismatchingFormatTypes as kn } from \"./internal.js\";\n\nconst xn = {\n Instant: t,\n PlainDateTime: n,\n PlainDate: o,\n PlainTime: r,\n PlainYearMonth: a,\n PlainMonthDay: i\n}, Rn = /*@__PURE__*/ e(t), Wn = /*@__PURE__*/ e(s), Gn = /*@__PURE__*/ e(n), Un = /*@__PURE__*/ e(o), zn = /*@__PURE__*/ e(r), Hn = /*@__PURE__*/ e(a), Kn = /*@__PURE__*/ e(i), Qn = {\n era: l,\n eraYear: c,\n year: u,\n month: d,\n daysInMonth: d,\n daysInYear: d,\n inLeapYear: f,\n monthsInYear: d\n}, Xn = {\n monthCode: m\n}, $n = {\n day: d\n}, _n = {\n dayOfWeek: d,\n dayOfYear: d,\n weekOfYear: S,\n yearOfWeek: c,\n daysInWeek: d\n}, eo = /*@__PURE__*/ Object.assign({}, Qn, Xn, $n, _n), to = /*@__PURE__*/ new WeakMap, no = /*@__PURE__*/ to.get.bind(to), oo = /*@__PURE__*/ to.set.bind(to), ro = {\n ...createCalendarFieldMethods(Qn, [ L ]),\n ...createCalendarFieldMethods(_n, []),\n ...createCalendarFieldMethods(Xn, [ L, q ]),\n ...createCalendarFieldMethods($n, [ q ])\n}, ao = /*@__PURE__*/ createCalendarGetters(eo), io = /*@__PURE__*/ createCalendarGetters({\n ...Qn,\n ...Xn\n}), so = /*@__PURE__*/ createCalendarGetters({\n ...Xn,\n ...$n\n}), lo = {\n calendarId: e => I(e.calendar)\n}, co = /*@__PURE__*/ T(((e, t) => function(n) {\n const {i: o} = this;\n return e(o[t](Yo(v(n, o))));\n}), eo), uo = /*@__PURE__*/ b((e => t => t[e]), F.concat(\"sign\")), fo = /*@__PURE__*/ b(((e, t) => e => e[j[t]]), w), mo = {\n epochSeconds: M,\n epochMilliseconds: y,\n epochMicroseconds: N,\n epochNanoseconds: B\n}, So = /*@__PURE__*/ E(V, new Set([ \"branding\" ])), [Oo, To, po] = createSlotClass(q, E(G, refineCalendarSlot), {\n ...lo,\n ...so\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return To(k(_o, e, this, rejectInvalidBag(t), n));\n },\n equals: (e, t) => x(e, toPlainMonthDaySlots(t)),\n toPlainDate(e, t) {\n return Yo(R($o, e, this, t));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Kn(t, n, e);\n return o.format(r);\n },\n toString: W,\n toJSON: e => W(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => To(toPlainMonthDaySlots(e, t))\n}), ho = {\n getOffsetNanosecondsFor: getOffsetNanosecondsForAdapter,\n getPossibleInstantsFor(e, t, n) {\n const o = [ ...t.call(e, No(ee(n, X))) ].map((e => go(e).epochNanoseconds)), r = o.length;\n return r > 1 && (o.sort(te), ne(oe(re(o[0], o[r - 1])))), o;\n }\n}, Do = {\n getOffsetNanosecondsFor: getOffsetNanosecondsForAdapter\n}, [Po, Co, go] = createSlotClass(Oe, Se, mo, {\n add: (e, t) => Co(se(0, e, toDurationSlots(t))),\n subtract: (e, t) => Co(se(1, e, toDurationSlots(t))),\n until: (e, t, n) => ar(le(0, e, toInstantSlots(t), n)),\n since: (e, t, n) => ar(le(1, e, toInstantSlots(t), n)),\n round: (e, t) => Co(ce(e, t)),\n equals: (e, t) => ue(e, toInstantSlots(t)),\n toZonedDateTime(e, t) {\n const n = de(t);\n return dr(fe(e, refineTimeZoneSlot(n.timeZone), refineCalendarSlot(n.calendar)));\n },\n toZonedDateTimeISO: (e, t) => dr(fe(e, refineTimeZoneSlot(t))),\n toLocaleString(e, t, n) {\n const [o, r] = Rn(t, n, e);\n return o.format(r);\n },\n toString: (e, t) => me(refineTimeZoneSlot, createTimeZoneOffsetOps, e, t),\n toJSON: e => me(refineTimeZoneSlot, createTimeZoneOffsetOps, e),\n valueOf: neverValueOf\n}, {\n from: e => Co(toInstantSlots(e)),\n fromEpochSeconds: e => Co(De(e)),\n fromEpochMilliseconds: e => Co(Pe(e)),\n fromEpochMicroseconds: e => Co(Ce(e)),\n fromEpochNanoseconds: e => Co(ge(e)),\n compare: (e, t) => Ze(toInstantSlots(e), toInstantSlots(t))\n}), [Zo, bo] = createSlotClass(\"TimeZone\", (e => {\n const t = Me(e);\n return {\n branding: \"TimeZone\",\n id: t,\n o: ie(t)\n };\n}), {\n id: e => e.id\n}, {\n getPossibleInstantsFor: ({o: e}, t) => e.getPossibleInstantsFor(toPlainDateTimeSlots(t)).map((e => Co(_(e)))),\n getOffsetNanosecondsFor: ({o: e}, t) => e.getOffsetNanosecondsFor(toInstantSlots(t).epochNanoseconds),\n getOffsetStringFor(e, t) {\n const n = toInstantSlots(t).epochNanoseconds, o = createAdapterOps(this, Do).getOffsetNanosecondsFor(n);\n return Fe(o);\n },\n getPlainDateTimeFor(e, t, n = X) {\n const o = toInstantSlots(t).epochNanoseconds, r = createAdapterOps(this, Do).getOffsetNanosecondsFor(o);\n return No(ee(Ie(o, r), refineCalendarSlot(n)));\n },\n getInstantFor(e, t, n) {\n const o = toPlainDateTimeSlots(t), r = ve(n), a = createAdapterOps(this);\n return Co(_(we(a, o, r)));\n },\n getNextTransition: ({o: e}, t) => getImplTransition(1, e, t),\n getPreviousTransition: ({o: e}, t) => getImplTransition(-1, e, t),\n equals(e, t) {\n return !!je(this, refineTimeZoneSlot(t));\n },\n toString: e => e.id,\n toJSON: e => e.id\n}, {\n from(e) {\n const t = refineTimeZoneSlot(e);\n return \"string\" == typeof t ? new Zo(t) : t;\n }\n}), Fo = /*@__PURE__*/ createProtocolValidator(Object.keys(ho)), [Io, vo] = createSlotClass(xe, ke, fo, {\n getISOFields: So,\n with(e, t, n) {\n return vo(Be(this, rejectInvalidBag(t), n));\n },\n add: (e, t) => vo(Ye(0, e, toDurationSlots(t))),\n subtract: (e, t) => vo(Ye(1, e, toDurationSlots(t))),\n until: (e, t, n) => ar(Ae(0, e, toPlainTimeSlots(t), n)),\n since: (e, t, n) => ar(Ae(1, e, toPlainTimeSlots(t), n)),\n round: (e, t) => vo(Ee(e, t)),\n equals: (e, t) => Ve(e, toPlainTimeSlots(t)),\n toZonedDateTime: (e, t) => dr(Je(refineTimeZoneSlot, toPlainDateSlots, createTimeZoneOps, e, t)),\n toPlainDateTime: (e, t) => No(Le(e, toPlainDateSlots(t))),\n toLocaleString(e, t, n) {\n const [o, r] = zn(t, n, e);\n return o.format(r);\n },\n toString: qe,\n toJSON: e => qe(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => vo(toPlainTimeSlots(e, t)),\n compare: (e, t) => He(toPlainTimeSlots(e), toPlainTimeSlots(t))\n}), [wo, jo, Mo] = createSlotClass(L, E(tt, refineCalendarSlot), {\n ...lo,\n ...io\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return jo(Ke(Xo, e, this, rejectInvalidBag(t), n));\n },\n add: (e, t, n) => jo(Qe(nr, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => jo(Qe(nr, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(Xe(or, 0, e, toPlainYearMonthSlots(t), n)),\n since: (e, t, n) => ar(Xe(or, 1, e, toPlainYearMonthSlots(t), n)),\n equals: (e, t) => $e(e, toPlainYearMonthSlots(t)),\n toPlainDate(e, t) {\n return Yo(_e($o, e, this, t));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Hn(t, n, e);\n return o.format(r);\n },\n toString: et,\n toJSON: e => et(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => jo(toPlainYearMonthSlots(e, t)),\n compare: (e, t) => rt(toPlainYearMonthSlots(e), toPlainYearMonthSlots(t))\n}), [yo, No] = createSlotClass(We, E(pt, refineCalendarSlot), {\n ...lo,\n ...ao,\n ...fo\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return No(at($o, e, this, rejectInvalidBag(t), n));\n },\n withCalendar: (e, t) => No(it(e, refineCalendarSlot(t))),\n withPlainDate: (e, t) => No(st(e, toPlainDateSlots(t))),\n withPlainTime: (e, t) => No(lt(e, optionalToPlainTimeFields(t))),\n add: (e, t, n) => No(ct(er, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => No(ct(er, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(ut(tr, 0, e, toPlainDateTimeSlots(t), n)),\n since: (e, t, n) => ar(ut(tr, 1, e, toPlainDateTimeSlots(t), n)),\n round: (e, t) => No(dt(e, t)),\n equals: (e, t) => ft(e, toPlainDateTimeSlots(t)),\n toZonedDateTime: (e, t, n) => dr(mt(createTimeZoneOps, e, refineTimeZoneSlot(t), n)),\n toPlainDate: e => Yo(v(e)),\n toPlainTime: e => vo(Ge(e)),\n toPlainYearMonth(e) {\n return jo(St(Ho, e, this));\n },\n toPlainMonthDay(e) {\n return To(Ot(Qo, e, this));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Gn(t, n, e);\n return o.format(r);\n },\n toString: Tt,\n toJSON: e => Tt(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => No(toPlainDateTimeSlots(e, t)),\n compare: (e, t) => gt(toPlainDateTimeSlots(e), toPlainDateTimeSlots(t))\n}), [Bo, Yo, Ao] = createSlotClass(J, E(Nt, refineCalendarSlot), {\n ...lo,\n ...ao\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return Yo(Zt($o, e, this, rejectInvalidBag(t), n));\n },\n withCalendar: (e, t) => Yo(it(e, refineCalendarSlot(t))),\n add: (e, t, n) => Yo(bt(er, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => Yo(bt(er, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(Ft(tr, 0, e, toPlainDateSlots(t), n)),\n since: (e, t, n) => ar(Ft(tr, 1, e, toPlainDateSlots(t), n)),\n equals: (e, t) => It(e, toPlainDateSlots(t)),\n toZonedDateTime(e, t) {\n const n = !z(t) || t instanceof Zo ? {\n timeZone: t\n } : t;\n return dr(vt(refineTimeZoneSlot, toPlainTimeSlots, createTimeZoneOps, e, n));\n },\n toPlainDateTime: (e, t) => No(wt(e, optionalToPlainTimeFields(t))),\n toPlainYearMonth(e) {\n return jo(jt(Ho, e, this));\n },\n toPlainMonthDay(e) {\n return To(Mt(Qo, e, this));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Un(t, n, e);\n return o.format(r);\n },\n toString: yt,\n toJSON: e => yt(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => Yo(toPlainDateSlots(e, t)),\n compare: (e, t) => rt(toPlainDateSlots(e), toPlainDateSlots(t))\n}), Eo = {\n fields(e, t, n) {\n return [ ...t.call(e, n) ];\n }\n}, Vo = /*@__PURE__*/ Object.assign({\n dateFromFields(e, t, n, o) {\n return Ao(t.call(e, Object.assign(Object.create(null), n), o));\n }\n}, Eo), Jo = /*@__PURE__*/ Object.assign({\n yearMonthFromFields(e, t, n, o) {\n return Mo(t.call(e, Object.assign(Object.create(null), n), o));\n }\n}, Eo), Lo = /*@__PURE__*/ Object.assign({\n monthDayFromFields(e, t, n, o) {\n return po(t.call(e, Object.assign(Object.create(null), n), o));\n }\n}, Eo), qo = {\n mergeFields(e, t, n, o) {\n return de(t.call(e, Object.assign(Object.create(null), n), Object.assign(Object.create(null), o)));\n }\n}, ko = /*@__PURE__*/ Object.assign({}, Vo, qo), xo = /*@__PURE__*/ Object.assign({}, Jo, qo), Ro = /*@__PURE__*/ Object.assign({}, Lo, qo), Wo = {\n dateAdd(e, t, n, o, r) {\n return Ao(t.call(e, Yo(v(n, e)), ar(Vt(o)), r));\n }\n}, Go = /*@__PURE__*/ Object.assign({}, Wo, {\n dateUntil(e, t, n, o, r, a) {\n return ir(t.call(e, Yo(v(n, e)), Yo(v(o, e)), Object.assign(Object.create(null), a, {\n largestUnit: Et[r]\n })));\n }\n}), Uo = /*@__PURE__*/ Object.assign({}, Wo, {\n day: dayAdapter\n}), zo = /*@__PURE__*/ Object.assign({}, Go, {\n day: dayAdapter\n}), Ho = /*@__PURE__*/ createCompoundOpsCreator(Jo), Ko = /*@__PURE__*/ createCompoundOpsCreator(Vo), Qo = /*@__PURE__*/ createCompoundOpsCreator(Lo), Xo = /*@__PURE__*/ createCompoundOpsCreator(xo), $o = /*@__PURE__*/ createCompoundOpsCreator(ko), _o = /*@__PURE__*/ createCompoundOpsCreator(Ro), er = /*@__PURE__*/ createCompoundOpsCreator(Wo), tr = /*@__PURE__*/ createCompoundOpsCreator(Go), nr = /*@__PURE__*/ createCompoundOpsCreator(Uo), or = /*@__PURE__*/ createCompoundOpsCreator(zo), [rr, ar, ir] = createSlotClass(qt, Lt, {\n ...uo,\n blank: Jt\n}, {\n with: (e, t) => ar(kt(e, t)),\n negated: e => ar(xt(e)),\n abs: e => ar(Rt(e)),\n add: (e, t, n) => ar(Wt(refinePublicRelativeTo, tr, createTimeZoneOps, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => ar(Wt(refinePublicRelativeTo, tr, createTimeZoneOps, 1, e, toDurationSlots(t), n)),\n round: (e, t) => ar(Gt(refinePublicRelativeTo, tr, createTimeZoneOps, e, t)),\n total: (e, t) => Ut(refinePublicRelativeTo, tr, createTimeZoneOps, e, t),\n toLocaleString(e, t, n) {\n return Intl.DurationFormat ? new Intl.DurationFormat(t, n).format(this) : zt(e);\n },\n toString: zt,\n toJSON: e => zt(e),\n valueOf: neverValueOf\n}, {\n from: e => ar(toDurationSlots(e)),\n compare: (e, t, n) => $t(refinePublicRelativeTo, er, createTimeZoneOps, toDurationSlots(e), toDurationSlots(t), n)\n}), sr = {\n toString: e => e.id,\n toJSON: e => e.id,\n ...ro,\n dateAdd: ({id: e, o: t}, n, o, r) => Yo(v(t.dateAdd(toPlainDateSlots(n), toDurationSlots(o), r), e)),\n dateUntil: ({o: e}, t, n, o) => ar(Vt(e.dateUntil(toPlainDateSlots(t), toPlainDateSlots(n), _t(o)))),\n dateFromFields: ({id: e, o: t}, n, o) => Yo(Yt(t, n, o, ln(e))),\n yearMonthFromFields: ({id: e, o: t}, n, o) => jo(nt(t, n, o, un(e))),\n monthDayFromFields: ({id: e, o: t}, n, o) => To(K(t, 0, n, o, cn(e))),\n fields({o: e}, t) {\n const n = new Set(en), o = [];\n for (const e of t) {\n if (m(e), !n.has(e)) {\n throw new RangeError(tn(e));\n }\n n.delete(e), o.push(e);\n }\n return e.fields(o);\n },\n mergeFields: ({o: e}, t, n) => e.mergeFields(nn(on(t)), nn(on(n)))\n}, [lr] = createSlotClass(\"Calendar\", (e => {\n const t = rn(e);\n return {\n branding: \"Calendar\",\n id: t,\n o: Y(t)\n };\n}), {\n id: e => e.id\n}, sr, {\n from(e) {\n const t = refineCalendarSlot(e);\n return \"string\" == typeof t ? new lr(t) : t;\n }\n}), cr = /*@__PURE__*/ createProtocolValidator(Object.keys(sr).slice(4)), [ur, dr] = createSlotClass(Te, E(vn, refineCalendarSlot, refineTimeZoneSlot), {\n ...mo,\n ...lo,\n ...adaptDateMethods(ao),\n ...adaptDateMethods(fo),\n offset: e => Fe(slotsToIso(e).offsetNanoseconds),\n offsetNanoseconds: e => slotsToIso(e).offsetNanoseconds,\n timeZoneId: e => I(e.timeZone),\n hoursInDay: e => dn(createTimeZoneOps, e)\n}, {\n getISOFields: e => mn(createTimeZoneOffsetOps, e),\n getCalendar: createCalendarFromSlots,\n getTimeZone: ({timeZone: e}) => \"string\" == typeof e ? new Zo(e) : e,\n with(e, t, n) {\n return dr(Sn($o, createTimeZoneOps, e, this, rejectInvalidBag(t), n));\n },\n withCalendar: (e, t) => dr(it(e, refineCalendarSlot(t))),\n withTimeZone: (e, t) => dr(On(e, refineTimeZoneSlot(t))),\n withPlainDate: (e, t) => dr(Tn(createTimeZoneOps, e, toPlainDateSlots(t))),\n withPlainTime: (e, t) => dr(pn(createTimeZoneOps, e, optionalToPlainTimeFields(t))),\n add: (e, t, n) => dr(hn(er, createTimeZoneOps, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => dr(hn(er, createTimeZoneOps, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(Vt(Dn(tr, createTimeZoneOps, 0, e, toZonedDateTimeSlots(t), n))),\n since: (e, t, n) => ar(Vt(Dn(tr, createTimeZoneOps, 1, e, toZonedDateTimeSlots(t), n))),\n round: (e, t) => dr(Pn(createTimeZoneOps, e, t)),\n startOfDay: e => dr(Cn(createTimeZoneOps, e)),\n equals: (e, t) => gn(e, toZonedDateTimeSlots(t)),\n toInstant: e => Co(Zn(e)),\n toPlainDateTime: e => No(ht(createTimeZoneOffsetOps, e)),\n toPlainDate: e => Yo(Bt(createTimeZoneOffsetOps, e)),\n toPlainTime: e => vo(Re(createTimeZoneOffsetOps, e)),\n toPlainYearMonth(e) {\n return jo(bn(Ho, e, this));\n },\n toPlainMonthDay(e) {\n return To(Fn(Qo, e, this));\n },\n toLocaleString(e, t, n = {}) {\n const [o, r] = Wn(t, n, e);\n return o.format(r);\n },\n toString: (e, t) => In(createTimeZoneOffsetOps, e, t),\n toJSON: e => In(createTimeZoneOffsetOps, e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => dr(toZonedDateTimeSlots(e, t)),\n compare: (e, t) => yn(toZonedDateTimeSlots(e), toZonedDateTimeSlots(t))\n}), fr = /*@__PURE__*/ Object.defineProperties({}, {\n ...h(\"Temporal.Now\"),\n ...p({\n timeZoneId: () => Nn(),\n instant: () => Co(_(Bn())),\n zonedDateTime: (e, t = Nn()) => dr(Yn(Bn(), refineTimeZoneSlot(t), refineCalendarSlot(e))),\n zonedDateTimeISO: (e = Nn()) => dr(Yn(Bn(), refineTimeZoneSlot(e), X)),\n plainDateTime: (e, t = Nn()) => No(ee(An(createTimeZoneOffsetOps(refineTimeZoneSlot(t))), refineCalendarSlot(e))),\n plainDateTimeISO: (e = Nn()) => No(ee(An(createTimeZoneOffsetOps(refineTimeZoneSlot(e))), X)),\n plainDate: (e, t = Nn()) => Yo(v(An(createTimeZoneOffsetOps(refineTimeZoneSlot(t))), refineCalendarSlot(e))),\n plainDateISO: (e = Nn()) => Yo(v(An(createTimeZoneOffsetOps(refineTimeZoneSlot(e))), X)),\n plainTimeISO: (e = Nn()) => vo(Ge(An(createTimeZoneOffsetOps(refineTimeZoneSlot(e)))))\n })\n}), mr = /*@__PURE__*/ Object.defineProperties({}, {\n ...h(\"Temporal\"),\n ...p({\n PlainYearMonth: wo,\n PlainMonthDay: Oo,\n PlainDate: Bo,\n PlainTime: Io,\n PlainDateTime: yo,\n ZonedDateTime: ur,\n Instant: Po,\n Calendar: lr,\n TimeZone: Zo,\n Duration: rr,\n Now: fr\n })\n}), Sr = /*@__PURE__*/ createDateTimeFormatClass(), Or = /*@__PURE__*/ new WeakMap, Tr = /*@__PURE__*/ Object.defineProperties(Object.create(Intl), p({\n DateTimeFormat: Sr\n}));\n\nexport { Sr as DateTimeFormat, Tr as IntlExtended, mr as Temporal, toTemporalInstant };\n",
|
|
5
|
+
"import { randomBytes } from \"crypto\";\nimport { HttpRequest } from \"../http\";\nimport { AuthenticationError } from \"../http/errors\";\nimport { RequestContext } from \"../http/requestContext\";\nimport { isSessionToken, mintSessionToken } from \"./sessionToken\";\nimport type { SessionWithUser } from \"./types\";\nimport { authConfigDefaults, type AuthConfig } from \"./config\";\nimport { UserProvider } from \"./UserProvider\";\nimport { withDefaults } from \"../support/withDefaults\";\nimport { app } from \"../foundation/app\";\nimport type { CreateCookieOptions } from \"../http/requestContext\";\nimport { DomainRouter } from \"../services/router/DomainRouter\";\nimport { normalizeHost } from \"../services/router/DomainResolver\";\n\n/**\n * A session's expiry in milliseconds, or `0` — already past — for a date the\n * provider could not give us.\n *\n * `new Date(undefined).getTime()` is `NaN`, and every comparison against\n * `NaN` is false, so a column that arrived missing read as a session that\n * never expires. A date this cannot make sense of is treated as spent, which\n * costs a re-authentication and never grants one.\n */\nfunction expiryMs(value: Date | string | number | null | undefined): number {\n const ms = new Date(value ?? 0).getTime();\n return Number.isFinite(ms) ? ms : 0;\n}\n\nexport class AuthManager {\n static token = \"auth\";\n\n readonly config: Required<AuthConfig>;\n\n private readonly provider: UserProvider;\n\n /**\n * The provider is a constructor argument rather than a config field, and the\n * distinction is the point: it defaults to the ORM-backed `UserProvider`, so\n * an application configures nothing to get working authentication, while an\n * application that must change a query subclasses it and binds the result in\n * the container.\n *\n * Not a config field because `app/config/auth.ts` is data an app edits, and a\n * persistence implementation is not: routing it through config is what made\n * the old adapter seam a decision every new app had to make before it could\n * log anybody in.\n *\n * Defaulting eagerly is safe — `UserProvider` resolves its models lazily from\n * the registry, so this touches no application module at boot.\n */\n constructor(\n config: AuthConfig = {},\n provider: UserProvider = new UserProvider(),\n ) {\n this.config = withDefaults(authConfigDefaults(config), config);\n this.provider = provider;\n }\n\n /**\n * Everything that reads and writes users, sessions and tokens. Mirrors\n * `Illuminate\\Contracts\\Auth\\UserProvider`.\n */\n get userProvider(): UserProvider {\n return this.provider;\n }\n\n /** How `access_token` is written for `req` — every write goes through here. */\n accessTokenCookieOptions(req: HttpRequest<any, any>, expires: Date): CreateCookieOptions {\n return {\n expires,\n // The scheme the client addressed, not whether the host reads as local.\n // A browser drops a `Secure` cookie from a plain-http origin, and\n // `localhost` is the only such origin it makes an exception for — so a\n // loopback root with subdomains, `acme.lvh.me`, is served over http, is\n // not `localhost`, and could not sign in.\n secure: this.publicOrigin(req).startsWith(\"https://\"),\n httpOnly: true,\n domain: this.cookieDomain(req),\n };\n }\n\n /**\n * The origin the client addressed, through the proxy in front if there is\n * one.\n *\n * `DomainRouter` is bound by `RouteServiceProvider`, which a test that\n * exercises auth against a database need not register — and writing a cookie\n * is no reason to demand the router exist. Without it the request's own\n * origin is the answer, since there is no proxy config to consult.\n */\n private publicOrigin(req: HttpRequest<any, any>): string {\n const resolver = app().bound(DomainRouter) ? app(DomainRouter).resolver : null;\n return resolver ? resolver.publicOrigin(req.rawRequest) : new URL(req.rawRequest.url).origin;\n }\n\n /** `config.cookieDomain` when `req`'s host falls under it, else nothing. */\n cookieDomain(req: HttpRequest<any, any>): string | undefined {\n const setting = this.config.cookieDomain;\n if (!setting) {\n return undefined;\n }\n const domain =\n setting === \"root\" ? app(DomainRouter).resolver?.root : normalizeHost(setting);\n if (!domain) {\n throw new Error(\n '`auth.cookieDomain` is \"root\", but `route.domains` is not configured.',\n );\n }\n const host = req.domain?.host ?? normalizeHost(new URL(req.rawRequest.url).host);\n return host === domain || host?.endsWith(`.${domain}`) ? domain : undefined;\n }\n\n /**\n * The session `token` names, or null when there is none or it has run out.\n *\n * **Expiry is enforced here.** `expiresAt` is the idle timeout and\n * `absoluteExpiresAt` the hard cap; either one past is no session, and the\n * row is deleted. Both used to exist only as the cookie's `Expires`, which a\n * client sending the `access_token` header never honoured, so its token was\n * good for as long as the row existed.\n *\n * **The idle timeout slides.** A session used after half of its window has\n * gone is pushed to `now + sessionExpiresInHours`, never past\n * `absoluteExpiresAt`, and the cookie is written again when this request is\n * the one that carried the token. Without that, enforcing `expiresAt` would\n * sign every user out `sessionExpiresInHours` after they signed in, however\n * active they were.\n *\n * **A token from before minted tokens is no session.** It was computable\n * (see `sessionToken.ts`), so it is refused before the lookup; its row is\n * left for the operator to delete. Its user signs in again.\n */\n async getSession(token: string, userAgent: string) {\n // `Auth.user()` asks with no token at all when the request carried none.\n if (!token || !isSessionToken(token)) {\n return null;\n }\n const session = await this.userProvider.findSession({\n token,\n userAgent,\n });\n if (!session?.user) {\n return null;\n }\n\n const now = Date.now();\n const expiresAt = expiryMs(session.expiresAt);\n const absoluteExpiresAt = expiryMs(session.absoluteExpiresAt);\n const expired = expiresAt <= now || absoluteExpiresAt <= now;\n\n if (expired) {\n await this.userProvider.deleteSession({ token });\n return null;\n }\n const current = await this.slideSession(session, now);\n\n current.user[\"extension\"] = await this.config.extendSession(current.user);\n return current;\n }\n\n /** The current request, when `token` arrived as its `access_token` cookie. */\n private requestCarryingCookie(token: string): HttpRequest<any, any> | null {\n const req = RequestContext.getStore()?.req;\n return req?.cookies.get(\"access_token\") === token ? req : null;\n }\n\n private async slideSession(session: SessionWithUser, now: number) {\n const window = this.config.sessionExpiresInHours * 3_600_000;\n if (new Date(session.expiresAt).getTime() - now >= window / 2) {\n return session;\n }\n const expiresAt = new Date(\n Math.min(now + window, new Date(session.absoluteExpiresAt).getTime()),\n );\n const updated = await this.userProvider.updateSession({\n token: session.token,\n expiresAt,\n });\n const req = this.requestCarryingCookie(session.token);\n if (req) {\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n this.accessTokenCookieOptions(req, expiresAt),\n );\n }\n return updated ?? session;\n }\n\n private freshLifetime(now: number) {\n return {\n expiresAt: new Date(now + this.config.sessionExpiresInHours * 3_600_000),\n absoluteExpiresAt: new Date(\n now + this.config.sessionAbsoluteExpiresInHours * 3_600_000,\n ),\n };\n }\n\n async generateMagicLink(email: string) {}\n\n async upsertSession(params: { email: string; userAgent: string }) {\n await this.userProvider.findSession({ token: \"\", userAgent: \"\" });\n }\n\n async authenticate(email: string) {\n try {\n const user = await this.userProvider.findUserByEmailAddress(email, false);\n if (!user) {\n throw new Error(`User not found with email: ${email}`);\n }\n const session = await this.createOrUpdateSession({ email, id: user.id });\n const req = new HttpRequest();\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n this.accessTokenCookieOptions(req, session.expiresAt),\n );\n if (session?.user) {\n session.user[\"extension\"] = await this.config.extendSession(\n session.user,\n );\n }\n return session;\n } catch (err) {\n console.log(err);\n }\n }\n\n async createOrUpdateSessionV2(user: { email: string; id?: number }) {\n const session = await this.createOrUpdateSession(user);\n\n let sessionExtension = null;\n\n if (session?.user) {\n sessionExtension = await this.config.extendSession(session.user);\n session.user.extension = sessionExtension;\n }\n\n return session;\n }\n\n /**\n * A new session for `user`, on every sign-in.\n *\n * The name is historical: this used to derive the token from the email and\n * the User-Agent and, finding a row under it, extend that row — without\n * checking whose it was, so a user who took over a freed email address was\n * handed its previous owner's session. Every sign-in now mints its own token\n * and its own row, bound to the id of the user who just authenticated.\n */\n async createOrUpdateSession(user: { email: string; id?: number }) {\n const req = new HttpRequest();\n\n const userId =\n user.id ??\n (await this.userProvider.findUserByEmailAddress(user.email, false))?.id;\n if (!userId) {\n throw new AuthenticationError();\n }\n\n return await this.userProvider.createSessionV2({\n token: mintSessionToken(userId),\n userId,\n userAgent:\n process.env.NODE_ENV === \"development\"\n ? \"local\"\n : req.headers.get(\"User-Agent\"),\n ...this.freshLifetime(Date.now()),\n });\n }\n\n async createMagicLinkToken(email: string) {\n const user = await this.userProvider.findUserByEmailAddress(email, false);\n\n if (user) {\n await this.userProvider.deleteMagicLinkToken(email);\n\n const token = await this.config.generateMagicLinkToken(email);\n\n const pin = (Number.parseInt(randomBytes(4).toString(\"hex\"), 16) % 1000000)\n .toString()\n .padStart(6, \"0\");\n\n await this.userProvider.createMagicLinkToken({\n email,\n token,\n pin,\n });\n\n return {\n user,\n email,\n pin,\n token,\n };\n }\n\n return {};\n }\n}\n",
|
|
8
6
|
"export function isConstructor(value: any) {\n return typeof value === \"function\" && value.prototype !== undefined;\n}\n",
|
|
9
7
|
"/**\n * What a route's `.middleware()` accepts.\n *\n * A bare string is allowed because it is what people write — `\"auth\"` reads\n * better than `[\"auth\"]` for the overwhelmingly common single-middleware case,\n * and the array form was accepted silently wrong for long enough that the\n * starter template itself does it (`.middleware(\"cache:private\")`).\n */\nexport type MiddlewareInput = string | string[];\n\n/**\n * Normalizes `.middleware()`'s argument to the array the registry expects.\n *\n * Without this, a bare string was assigned straight to `middlewares`, and\n * `transformMiddleware` iterates its input — so a string was iterated one\n * **character** at a time. Each character became an alias lookup that resolved\n * to nothing and was dropped by the trailing `.filter(Boolean)`, which means the\n * middleware did not run and nothing anywhere said so. A route that looked\n * authenticated was public.\n *\n * The type said `string[]`, so this was a type error at every call site — but\n * only for a project whose `tsc` is clean, and the failure at runtime is silent\n * either way. Accepting both shapes removes the trap rather than documenting it.\n */\nexport function toMiddlewareList(input: MiddlewareInput): string[] {\n return typeof input === \"string\" ? [input] : input;\n}\n",
|
|
10
8
|
"/**\n * Builds a `Content-Disposition` value.\n *\n * Lives in its own module so both `ViewRouter` and `createStreamResponse` can\n * use it without `ApiRouter` having to import `ViewRouter`, which would close\n * an import cycle through the `Redirect` facade.\n */\nexport function contentDisposition(name: string, download: boolean) {\n const kind = download ? \"attachment\" : \"inline\";\n // Quoted form for legacy clients, RFC 5987 form for anything non-ascii.\n const fallback = name.replace(/[\"\\\\]/g, \"\").replace(/[^\\x20-\\x7e]/g, \"_\");\n return `${kind}; filename=\"${fallback}\"; filename*=UTF-8''${encodeURIComponent(name)}`;\n}\n",
|
|
@@ -26,11 +24,14 @@
|
|
|
26
24
|
"import { RequestBreakerError } from \"./Error\";\nimport { Middleware } from \"./Middleware\";\n\nexport class CSRFMiddleware extends Middleware {\n async run() {\n const csrfToken = this.req.cookies.get(\"csrf_token\");\n if (!csrfToken) {\n throw new InvalidCSRFTokenError();\n }\n const NON_GET_METHODS = [\"POST\", \"PUT\", \"PATCH\", \"DELETE\"];\n if (!NON_GET_METHODS.includes(this.req.rawRequest.method)) {\n return {};\n }\n\n if (!Bun.CSRF.verify(csrfToken, { secret: process.env.SECRET })) {\n throw new InvalidCSRFTokenError();\n }\n\n return {};\n }\n}\n\nexport class InvalidCSRFTokenError extends RequestBreakerError {\n constructor() {\n super(\"Invalid CSRF token\");\n this.name = \"InvalidCSRFTokenError\";\n }\n\n payload = {\n api: {\n status: 403,\n data: { error: \"Invalid CSRF token\" },\n },\n view: {},\n };\n}\n",
|
|
27
25
|
"import { Policies } from \"./Policy\";\n\nexport class PoliciesServiceProvider {\n policiesList: Record<string, Policies> = {};\n constructor() {\n const policies = this.register();\n for (const Policy of policies) {\n const policy = new Policy();\n this.policiesList[Policy.name] = policy;\n }\n }\n\n protected register(): Array<new () => Policies> {\n return [];\n }\n}\n",
|
|
28
26
|
"export class Policies {\n all(_operation: string, _args: any): Promise<boolean> | boolean {\n return true;\n }\n}\n",
|
|
27
|
+
"import { createHmac, randomBytes } from \"node:crypto\";\n\n/**\n * Session tokens: minting them, and telling them from the computable ones they\n * replaced.\n *\n * ## The old token was computable\n *\n * It was `sha256(email + User-Agent)`: no secret and no randomness, so anyone\n * who knew a user's email and could guess their client could compute a token\n * that `findSession` would accept. It was also the same on every sign-in from\n * that client, so a leaked one survived signing in again, and it went to\n * whoever held the email next — a user who took over a freed address was\n * handed the previous owner's session.\n *\n * ## The new one\n *\n * `v2.` + HMAC-SHA256(secret, `userId:nonce`), with a fresh 16-byte nonce per\n * sign-in. The nonce is what makes it unguessable and different every time;\n * the secret means that even the inputs don't let anyone recompute it. The\n * token is not verified against the secret on the way in — it is looked up —\n * so rotating `SECRET` changes new tokens and signs nobody out.\n *\n * The prefix is the whole test, and it is all a prefix: `isSessionToken` reads\n * nothing else, so anything not starting with `v2.` is refused — an old token,\n * which was bare hex, and any other string alike. `AuthManager.getSession`\n * refuses it without looking it up, so the rows still holding old tokens grant\n * nothing whether or not they have been deleted.\n */\nexport const SESSION_TOKEN_PREFIX = \"v2.\";\n\nexport function isSessionToken(token: string): boolean {\n return token.startsWith(SESSION_TOKEN_PREFIX);\n}\n\n/**\n * The app's `SECRET`, the key CSRF and agent approvals are signed with too.\n *\n * Throws rather than falling back to anything: a token minted with a default\n * secret is one every other gemi app could mint too.\n */\nexport function sessionTokenSecret(): string {\n const secret = process.env.SECRET;\n if (!secret) {\n throw new Error(\n \"Signing in needs a secret to mint session tokens with. Set SECRET in the environment.\",\n );\n }\n return secret;\n}\n\nexport function mintSessionToken(userId: number): string {\n const nonce = randomBytes(16).toString(\"hex\");\n const mac = createHmac(\"sha256\", sessionTokenSecret()).update(`${userId}:${nonce}`).digest(\"hex\");\n return `${SESSION_TOKEN_PREFIX}${mac}`;\n}\n",
|
|
28
|
+
"import { randomBytes } from \"node:crypto\";\nimport type { HttpRequest } from \"../http/HttpRequest\";\nimport type { User } from \"./types\";\nimport type { OAuthProvider } from \"./oauth/OAuthProvider\";\nimport { SignUpRequest } from \"./requests\";\n\n// Config key: `auth`.\nexport interface AuthConfig {\n basePath?: string;\n verifyEmail?: boolean;\n /**\n * Where a signed-in user goes when there is no intended URL to return to —\n * the fallback of `Auth.intendedUrl()` and of the OAuth callback's\n * `redirectTo`.\n */\n redirectPath?: string;\n /**\n * The sign-in page `AuthenticationMiddleware` (and `Auth.user()`) sends a\n * signed-out view request to. The page that was asked for rides along as\n * `?redirect=`, for `useIntendedUrl()` / `Auth.intendedUrl()` to return to.\n * A path, or an absolute URL for sign-in hosted elsewhere. One route can\n * override it with `\"auth:/other/sign-in\"`.\n */\n signInPath?: string;\n\n sessionExpiresInHours?: number;\n sessionAbsoluteExpiresInHours?: number;\n\n /**\n * Shares the session cookie across subdomains. `\"root\"` is\n * `route.domains.root`; a hostname names the domain outright. Applied only\n * to a request whose host is that domain or one of its subdomains — on a\n * custom domain the browser would refuse it, so a custom domain keeps its\n * own session and its users sign in there. `null`, the default, scopes the\n * cookie to the host that set it.\n */\n cookieDomain?: \"root\" | (string & {}) | null;\n\n signUpRequest?: new () => HttpRequest<any, any>;\n oauthProviders?: Record<string, OAuthProvider>;\n\n verifyPassword?: (password: string, hash: string) => Promise<boolean>;\n hashPassword?: (password: string) => Promise<string>;\n generateForgotPasswordToken?: (user: User) => Promise<string>;\n generateEmailVerificationToken?: (\n email: string,\n ) => Promise<string> | string;\n generateMagicLinkToken?: (email: string) => Promise<string> | string;\n\n // Extra claims merged into the session payload.\n extendSession?: <T extends User>(user: T) => Promise<any> | any;\n\n /**\n * **This one is not a notification, whatever the name suggests.** It runs\n * *inside* the transaction that creates the user, after the row is written\n * and before it commits, and a throw rolls the user back. Every other `onXxx`\n * here fires after its work is committed and can only report; this one\n * participates in the write.\n *\n * The past tense is worth distrusting, then, and it is deliberate that this\n * paragraph comes first: an application that mistakes this for `onSignUp`\n * with better timing, and swallows its own errors inside it, gets exactly the\n * orphaned user the hook exists to prevent.\n *\n * That is what it is for: an application that must create rows *alongside*\n * every user — an organization, a workspace, a default settings row — has\n * nowhere else to do it atomically. `onSignUp` fires after the commit on both\n * paths, so provisioning there leaves an orphaned user when the second insert\n * fails, which is a failure that only turns up in production.\n *\n * Fires on all three creation paths — email/password sign-up, invited\n * sign-up, and first OAuth sign-in — and receives the same password-stripped\n * user the endpoint returns, so a hook that logs its argument does not log a\n * credential hash.\n *\n * On the invited path the inviting organization's `Account` row is already\n * written when this runs, so a hook provisioning an own workspace should\n * check before adding a second one.\n *\n * Four constraints come from where this runs:\n *\n * - **Writes to a policied model need `Model.asSystem`.** This runs with no\n * user in scope — a sign-up has not authenticated anybody yet — so a policy\n * whose `scope` or `onCreate` reads `ctx.user` raises `PolicyDeniedError`\n * under deny-by-default, and the rollback takes the user with it. That is\n * the correct behaviour and the reason this hook is *not* wrapped in\n * `UserProvider.run`: suspending policies for application code is a\n * sentence somebody types, never something a framework does quietly. Say it\n * at the call site:\n *\n * await Model.asSystem(() => Organization.create({ data }))\n *\n * - **Errors thrown here reach the client as-is.** A `ValidationError` is a\n * 400 on `POST /sign-up`; anything else is a 500. On the OAuth path there\n * is no form to fail — a throw is a 500 page mid-redirect. Either way no\n * user is created.\n * - **Raw queries do not join the transaction.** ORM calls at any depth do,\n * automatically; a hand-written Prisma or `DB` statement runs outside and\n * survives the rollback.\n * - **`Promise.all` over ORM calls is not safe here.** The transaction holds\n * one reserved connection, so await them in sequence. Keep network and\n * filesystem I/O out entirely — the connection is held for as long as this\n * runs.\n */\n onUserCreated?: (user: User) => Promise<void>;\n\n onSignUp?: (\n user: User,\n verificationToken: string,\n search: Record<string, string>,\n ) => Promise<void> | void;\n onSignIn?: (\n session: any,\n search: Record<string, string>,\n ) => Promise<void> | void;\n onSignOut?: (session: any) => Promise<void> | void;\n onForgotPassword?: (\n user: any,\n verificationToken: string,\n ) => Promise<void> | void;\n onResetPassword?: (session: any) => Promise<void> | void;\n onMagicLinkCreated?: (\n session: any,\n args: { email: string; token: string; pin: string },\n ) => Promise<void> | void;\n}\n\nexport function defineAuthConfig(config: AuthConfig): AuthConfig {\n return config;\n}\n\n// `generateEmailVerificationToken`'s default short-circuits on `verifyEmail`,\n// so the already-merged config is threaded in to keep that behaviour intact.\nexport function authConfigDefaults(\n config: AuthConfig = {},\n): Required<AuthConfig> {\n return {\n basePath: \"/auth\",\n verifyEmail: true,\n redirectPath: \"/dashboard\",\n signInPath: \"/auth/sign-in\",\n\n sessionExpiresInHours: 24,\n sessionAbsoluteExpiresInHours: 24 * 7 * 4,\n cookieDomain: null,\n\n signUpRequest: SignUpRequest as any,\n oauthProviders: {},\n\n verifyPassword: async (password, hash) =>\n await Bun.password.verify(password, hash),\n hashPassword: async (password) => await Bun.password.hash(password),\n // Random, not derived. These used to be sha256(email + Date.now()), which\n // anyone who asked for a reset could recompute: the email is theirs to\n // choose and the millisecond is within a second of their own request.\n generateForgotPasswordToken: async () => randomBytes(32).toString(\"hex\"),\n generateEmailVerificationToken: () => {\n if (!(config.verifyEmail ?? true)) {\n return \"\";\n }\n return randomBytes(32).toString(\"hex\");\n },\n generateMagicLinkToken: () => randomBytes(32).toString(\"hex\"),\n\n extendSession: () => ({}),\n\n // `async`, unlike its neighbours: the call site awaits it inside a\n // transaction, so it has to be a promise rather than sometimes one.\n onUserCreated: async () => {},\n onSignUp: () => {},\n onSignIn: () => {},\n onSignOut: () => {},\n onForgotPassword: () => {},\n onResetPassword: () => {},\n onMagicLinkCreated: () => {},\n };\n}\n",
|
|
29
29
|
"import { HttpRequest } from \"../http/HttpRequest\";\n\nexport class SignUpRequest extends HttpRequest<\n {\n name: string;\n email: string;\n password: string;\n invitationId?: string;\n },\n Record<string, string>\n> {\n schema = {\n name: {\n string: \"Invalid name\",\n required: \"Name is required\",\n \"min:2\": \"Name must be at least 3 characters\",\n },\n email: {\n string: \"Invalid email\",\n required: \"Email is required\",\n email: \"Invalid email\",\n },\n password: {\n // required: \"Password is required\",\n \"min:8\": \"Password must be at least 9 characters\",\n },\n };\n}\n",
|
|
30
|
-
"import type { HttpRequest } from \"../http/HttpRequest\";\nimport type { User } from \"./types\";\nimport type { OAuthProvider } from \"./oauth/OAuthProvider\";\nimport { SignUpRequest } from \"./requests\";\n\n// Config key: `auth`.\nexport interface AuthConfig {\n basePath?: string;\n verifyEmail?: boolean;\n /**\n * Where a signed-in user goes when there is no intended URL to return to —\n * the fallback of `Auth.intendedUrl()` and of the OAuth callback's\n * `redirectTo`.\n */\n redirectPath?: string;\n /**\n * The sign-in page `AuthenticationMiddleware` (and `Auth.user()`) sends a\n * signed-out view request to. The page that was asked for rides along as\n * `?redirect=`, for `useIntendedUrl()` / `Auth.intendedUrl()` to return to.\n * A path, or an absolute URL for sign-in hosted elsewhere. One route can\n * override it with `\"auth:/other/sign-in\"`.\n */\n signInPath?: string;\n\n sessionExpiresInHours?: number;\n sessionAbsoluteExpiresInHours?: number;\n\n /**\n * Shares the session cookie across subdomains. `\"root\"` is\n * `route.domains.root`; a hostname names the domain outright. Applied only\n * to a request whose host is that domain or one of its subdomains — on a\n * custom domain the browser would refuse it, so a custom domain keeps its\n * own session and its users sign in there. `null`, the default, scopes the\n * cookie to the host that set it.\n */\n cookieDomain?: \"root\" | (string & {}) | null;\n\n signUpRequest?: new () => HttpRequest<any, any>;\n oauthProviders?: Record<string, OAuthProvider>;\n\n verifyPassword?: (password: string, hash: string) => Promise<boolean>;\n hashPassword?: (password: string) => Promise<string>;\n generateForgotPasswordToken?: (user: User) => Promise<string>;\n generateEmailVerificationToken?: (\n email: string,\n ) => Promise<string> | string;\n generateMagicLinkToken?: (email: string) => Promise<string> | string;\n\n // Extra claims merged into the session payload.\n extendSession?: <T extends User>(user: T) => Promise<any> | any;\n\n /**\n * **This one is not a notification, whatever the name suggests.** It runs\n * *inside* the transaction that creates the user, after the row is written\n * and before it commits, and a throw rolls the user back. Every other `onXxx`\n * here fires after its work is committed and can only report; this one\n * participates in the write.\n *\n * The past tense is worth distrusting, then, and it is deliberate that this\n * paragraph comes first: an application that mistakes this for `onSignUp`\n * with better timing, and swallows its own errors inside it, gets exactly the\n * orphaned user the hook exists to prevent.\n *\n * That is what it is for: an application that must create rows *alongside*\n * every user — an organization, a workspace, a default settings row — has\n * nowhere else to do it atomically. `onSignUp` fires after the commit on both\n * paths, so provisioning there leaves an orphaned user when the second insert\n * fails, which is a failure that only turns up in production.\n *\n * Fires on all three creation paths — email/password sign-up, invited\n * sign-up, and first OAuth sign-in — and receives the same password-stripped\n * user the endpoint returns, so a hook that logs its argument does not log a\n * credential hash.\n *\n * On the invited path the inviting organization's `Account` row is already\n * written when this runs, so a hook provisioning an own workspace should\n * check before adding a second one.\n *\n * Four constraints come from where this runs:\n *\n * - **Writes to a policied model need `Model.asSystem`.** This runs with no\n * user in scope — a sign-up has not authenticated anybody yet — so a policy\n * whose `scope` or `onCreate` reads `ctx.user` raises `PolicyDeniedError`\n * under deny-by-default, and the rollback takes the user with it. That is\n * the correct behaviour and the reason this hook is *not* wrapped in\n * `UserProvider.run`: suspending policies for application code is a\n * sentence somebody types, never something a framework does quietly. Say it\n * at the call site:\n *\n * await Model.asSystem(() => Organization.create({ data }))\n *\n * - **Errors thrown here reach the client as-is.** A `ValidationError` is a\n * 400 on `POST /sign-up`; anything else is a 500. On the OAuth path there\n * is no form to fail — a throw is a 500 page mid-redirect. Either way no\n * user is created.\n * - **Raw queries do not join the transaction.** ORM calls at any depth do,\n * automatically; a hand-written Prisma or `DB` statement runs outside and\n * survives the rollback.\n * - **`Promise.all` over ORM calls is not safe here.** The transaction holds\n * one reserved connection, so await them in sequence. Keep network and\n * filesystem I/O out entirely — the connection is held for as long as this\n * runs.\n */\n onUserCreated?: (user: User) => Promise<void>;\n\n onSignUp?: (\n user: User,\n verificationToken: string,\n search: Record<string, string>,\n ) => Promise<void> | void;\n onSignIn?: (\n session: any,\n search: Record<string, string>,\n ) => Promise<void> | void;\n onSignOut?: (session: any) => Promise<void> | void;\n onForgotPassword?: (\n user: any,\n verificationToken: string,\n ) => Promise<void> | void;\n onResetPassword?: (session: any) => Promise<void> | void;\n onMagicLinkCreated?: (\n session: any,\n args: { email: string; token: string; pin: string },\n ) => Promise<void> | void;\n}\n\nexport function defineAuthConfig(config: AuthConfig): AuthConfig {\n return config;\n}\n\n// `generateEmailVerificationToken`'s default short-circuits on `verifyEmail`,\n// so the already-merged config is threaded in to keep that behaviour intact.\nexport function authConfigDefaults(\n config: AuthConfig = {},\n): Required<AuthConfig> {\n return {\n basePath: \"/auth\",\n verifyEmail: true,\n redirectPath: \"/dashboard\",\n signInPath: \"/auth/sign-in\",\n\n sessionExpiresInHours: 24,\n sessionAbsoluteExpiresInHours: 24 * 7 * 4,\n cookieDomain: null,\n\n signUpRequest: SignUpRequest as any,\n oauthProviders: {},\n\n verifyPassword: async (password, hash) =>\n await Bun.password.verify(password, hash),\n hashPassword: async (password) => await Bun.password.hash(password),\n generateForgotPasswordToken: async (user) => {\n const hasher = new Bun.CryptoHasher(\"sha256\");\n hasher.update(`${user.email}${Date.now()}`);\n return hasher.digest(\"hex\");\n },\n generateEmailVerificationToken: (email) => {\n if (!(config.verifyEmail ?? true)) {\n return \"\";\n }\n const hasher = new Bun.CryptoHasher(\"sha256\");\n hasher.update(`${email}${Date.now()}`);\n return hasher.digest(\"hex\");\n },\n generateMagicLinkToken: (email) => {\n const hasher = new Bun.CryptoHasher(\"sha256\");\n hasher.update(`${email}${Date.now()}`);\n return hasher.digest(\"hex\");\n },\n\n extendSession: () => ({}),\n\n // `async`, unlike its neighbours: the call site awaits it inside a\n // transaction, so it has to be a promise rather than sometimes one.\n onUserCreated: async () => {},\n onSignUp: () => {},\n onSignIn: () => {},\n onSignOut: () => {},\n onForgotPassword: () => {},\n onResetPassword: () => {},\n onMagicLinkCreated: () => {},\n };\n}\n",
|
|
31
|
-
"import * as registry from \"../orm/registry\";\nimport type {\n Account,\n AuthModels,\n CreateAccountArgs,\n CreateMagicLinkTokenArgs,\n CreatePasswordResetTokenArgs,\n CreateSessionArgs,\n CreateSocialAccountArgs,\n CreateUserArgs,\n DeletePasswordResetTokenArgs,\n DeleteSessionArgs,\n FindPasswordResetTokenArgs,\n FindSessionArgs,\n Invitation,\n PasswordResetToken,\n SessionWithUser,\n SocialAccount,\n UpdateSessionArgs,\n UpdateUserPasswordArgs,\n User,\n} from \"./types\";\n\n/**\n * Everything `auth/` reads and writes — users, sessions, tokens — on the gemi\n * ORM. Named after `Illuminate\\Contracts\\Auth\\UserProvider`, which is also where\n * the `AuthManager.userProvider` accessor gets its name.\n *\n * ## Why this is a class and not an interface\n *\n * It used to be one of three interchangeable `IAuthenticationAdapter`\n * implementations — blank, Prisma, and this. That seam is gone. The framework\n * ships an ORM, and auth persistence on it is not a choice an application should\n * have to make before it can log anybody in; the pluggable version meant a\n * default that threw `AdapterNotFound` and a starter template that reached for\n * Prisma to get past it.\n *\n * What the seam actually bought was reachable more cheaply. An application that\n * needs different behaviour subclasses this and overrides the methods it cares\n * about — the queries are twenty-five small independent methods, all funnelled\n * through `run`, precisely the shape that subclasses well. What it no longer\n * buys is a *different database*, and that is deliberate: an app on the ORM has\n * one.\n *\n * Note what was **not** done here. Writing these methods against `DB`/raw SQL\n * would mean twenty-two methods of per-dialect SQL across SQLite and Postgres —\n * the hand-written `SqlUserProvider` PR #33 proposed, dropped in favour of\n * building the ORM first. That reasoning did not stop applying when the adapter\n * seam went away. Twenty-two methods of per-dialect SQL is exactly what a\n * compiler is for.\n *\n * ## Why the models are injected rather than imported\n *\n * The ORM resolves models by *name* through a registry, and the generated classes\n * live in the application (`app/models/generated`), not in the framework. So this\n * cannot import `User` — there is no such module here. It takes the model\n * classes it needs, defaulting to the registry, which also makes it testable\n * against fixtures and lets an application point it at its own subclasses (the\n * ones carrying policies, which matters: see the note on `asSystem` below).\n *\n * ## Two behaviours worth knowing\n *\n * **Policies are suspended.** Every query here runs inside `Model.asSystem`.\n * Authentication happens *before* there is an authenticated user, so a policy\n * that scopes by `ctx.user` cannot be satisfied — and under deny-by-default it\n * would raise rather than return null, turning \"wrong password\" into a 500. This\n * is the one place in an application where acting without a user is correct\n * rather than a mistake, so it says so explicitly at the call site, which is what\n * `asSystem` is for.\n *\n * **`password` is stripped from returned users.** The ORM does not implement\n * `omit`, so it is deleted from the returned object rather than excluded by the\n * query — see `createUser` for why that is the right shape and why it matters:\n * `POST /sign-up` returns this object as its response body.\n */\n\n/**\n * Drops the password from a user object.\n *\n * By deletion rather than by a `select` naming every other column, which would\n * have to be maintained against the schema and would silently start returning a\n * new sensitive column the day one is added. Mutates and returns the same object\n * because it is the freshly-created row and nothing else holds a reference to it.\n */\nfunction withoutPassword<T>(user: T): T {\n if (user && typeof user === \"object\") {\n delete (user as { password?: unknown }).password;\n }\n return user;\n}\n\n/**\n * The models, resolved from the ORM registry by name.\n *\n * Lazily, through a Proxy, so the order of module evaluation does not matter —\n * the same property `registry.get` provides everywhere else. Constructing a\n * `UserProvider` therefore does not require the application's models to have\n * been imported yet; only *calling* one of its methods does.\n *\n * When they never are, `registry.get` throws `ModelNotRegisteredError`, which\n * names the model and lists what is registered. That is the replacement for the\n * old `BlankAdapter`, and a better one: it says which model is missing instead\n * of `AdapterNotFound`.\n */\nfunction registryModels(): AuthModels {\n return new Proxy({} as AuthModels, {\n get: (_target, name: string) => registry.get(name),\n });\n}\n\n/**\n * The user shape the rest of `auth/` expects on a session.\n *\n * Spelled out rather than `include: { user: true }` because `User` in\n * `./types.ts` carries `accounts[].organization`, which is a relation two levels\n * down — and because naming the columns is what keeps the *session* queries from\n * selecting `password` into something that is handed to a client.\n *\n * **Organizations come from the accounts, not from a column on `User`.** A user\n * belongs to an organization by having an `Account` in it, which is the shape\n * the rest of `auth/` already writes: `AuthController`'s invited sign-up creates\n * the membership with `createAccount`, and nothing in this file has ever set an\n * organization on the user row.\n *\n * This used to also select `User.organizationId`. Nothing in the framework read\n * it — it was selected here and nowhere else — and selecting it made every\n * application's `User` table have to carry the starter template's column: a\n * schema without it fails `UnknownFieldError` inside `findSession`, which\n * catches, logs, and returns null, so every request looks like an expired\n * session rather than a misconfiguration.\n *\n * Note for a policy that scopes by tenant: `ctx.user.organizationId` is\n * therefore no longer a thing to read. Scope through the membership —\n * `{ accounts: { some: { organizationId: … } } }` — and take the organization\n * from `user.accounts`. A scope naming a key the session user does not carry\n * evaluates to `undefined`, which is an *absent* filter rather than an error.\n */\nconst SESSION_USER = {\n select: {\n id: true,\n publicId: true,\n email: true,\n name: true,\n locale: true,\n globalRole: true,\n accounts: {\n select: {\n id: true,\n publicId: true,\n organizationRole: true,\n organization: true,\n },\n },\n },\n} as const;\n\nexport class UserProvider {\n /**\n * Defaults to the ORM registry, so an application needs no configuration to\n * get working authentication. Pass models explicitly to test against fixtures\n * or to point at subclasses carrying policies.\n */\n constructor(protected models: AuthModels = registryModels()) {}\n\n /**\n * Every query in this class goes through here.\n *\n * `asSystem` rather than a user scope, for the reason in the class comment:\n * authentication runs before there is a user, so a policy that scopes by one\n * cannot be satisfied and deny-by-default would turn a failed sign-in into a\n * server error. One wrapper, applied uniformly, so no method can forget.\n */\n protected run<T>(fn: () => Promise<T>): Promise<T> {\n return this.models.User.asSystem(fn);\n }\n\n /**\n * Runs `fn` inside a transaction on the connection the `User` model lives on.\n * Every ORM query in it joins automatically, at any call depth — see\n * `Model.transaction`.\n *\n * Here so that `AuthController` can make a sign-up atomic without importing a\n * model: the controller has none, and reaching for a bare `Model.transaction`\n * would open on the ambient connection rather than the one this provider's\n * models are bound to. Nesting is a savepoint, so an application that already\n * wrapped its own transaction around a sign-up composes instead of breaking.\n *\n * Deliberately **not** wrapped in `run`. `asSystem` is applied per query by\n * the methods below, which keeps it to this class's own reads and writes;\n * hoisting it here would silently suspend policies for `config.onUserCreated`\n * too, and an application's provisioning writes should run under the same\n * policy resolution as the rest of its code.\n */\n transaction<T>(fn: () => Promise<T>): Promise<T> {\n return this.models.User.transaction(fn);\n }\n\n /**\n * Note the password is **removed from the returned object**, matching Prisma's\n * adapter, which uses `omit: { password: true }`.\n *\n * This is not defensive tidying. `auth/routes.ts` maps `POST /sign-up` to\n * `AuthController.signUp`, and that handler ends `return newUser` — so whatever\n * `createUser` returns *is the response body of an unauthenticated endpoint*.\n * The same object reaches `config.onSignUp`, so an application hook that logs\n * its argument would log a credential hash.\n *\n * An earlier version returned the row whole and documented the difference on\n * the class, on the grounds that emulating `omit` with a `select` naming every\n * other column would drift as the schema grows. That objection is fair and this\n * avoids it entirely: deleting the key needs no column list and cannot drift.\n * It also brings `createUser` in line with `SESSION_USER` above, which already\n * names its columns explicitly for exactly this reason.\n */\n async createUser(args: CreateUserArgs): Promise<User> {\n const user: User = await this.run(() =>\n this.models.User.create({ data: args }),\n );\n return withoutPassword(user);\n }\n\n async updateUserPassword(args: UpdateUserPasswordArgs): Promise<User> {\n // Same treatment. No path was found that serialises this one, but a method\n // whose entire purpose is to set a password should not hand it back — and\n // \"no path today\" is not a property that stays true.\n const user: User = await this.run(() =>\n this.models.User.update({\n where: { id: args.id },\n data: { password: args.password },\n }),\n );\n return withoutPassword(user);\n }\n\n async findUserByEmailAddress(\n email: string,\n verifyEmail: boolean,\n ): Promise<User> {\n return await this.run(() =>\n // A `WhereUniqueInput` carrying an extra non-unique filter, which Prisma 5\n // allows and the ORM honours for `findUnique` — the key is present, and\n // `emailVerifiedAt` narrows further. See `compile/unique.ts`.\n this.models.User.findUnique({\n where: verifyEmail\n ? { email, emailVerifiedAt: { not: null } }\n : { email },\n }),\n );\n }\n\n async findUserByVerificationToken(token: string): Promise<User | null> {\n return await this.run(() =>\n this.models.User.findFirst({ where: { verificationToken: token } }),\n );\n }\n\n async verifyUser(email: string): Promise<User> {\n return await this.run(() =>\n this.models.User.update({\n where: { email },\n data: { emailVerifiedAt: new Date() },\n }),\n );\n }\n\n async createSession(args: CreateSessionArgs): Promise<SessionWithUser> {\n return await this.run(() =>\n this.models.Session.create({ data: args, include: { user: true } }),\n );\n }\n\n async createSessionV2(args: CreateSessionArgs): Promise<SessionWithUser> {\n return await this.run(() =>\n this.models.Session.create({\n data: args,\n select: { token: true, expiresAt: true, absoluteExpiresAt: true, updatedAt: true, location: true, userAgent: true, user: SESSION_USER },\n }),\n );\n }\n\n async findSession(args: FindSessionArgs): Promise<SessionWithUser | null> {\n if (!args.token) return null;\n\n // `findUnique` returns null on no match rather than raising, so the\n // try/catch Prisma's adapter wraps this in is not needed for the\n // not-found case. It is kept for the *connection* case — a sign-in path\n // that throws on a database blip becomes a 500 where returning null is a\n // redirect to the login page. The error is logged rather than swallowed\n // silently.\n try {\n return await this.run(() =>\n this.models.Session.findUnique({\n where: { token: args.token },\n select: {\n token: true,\n expiresAt: true,\n absoluteExpiresAt: true,\n updatedAt: true,\n location: true,\n userAgent: true,\n user: SESSION_USER,\n },\n }),\n );\n } catch (error) {\n console.error(\"findSession failed:\", error);\n return null;\n }\n }\n\n async updateSession(\n args: UpdateSessionArgs,\n ): Promise<SessionWithUser | null> {\n return await this.run(() =>\n this.models.Session.update({\n where: { token: args.token },\n data: { expiresAt: args.expiresAt },\n select: {\n token: true,\n expiresAt: true,\n absoluteExpiresAt: true,\n updatedAt: true,\n location: true,\n userAgent: true,\n user: SESSION_USER,\n },\n }),\n );\n }\n\n async deleteSession(args: DeleteSessionArgs): Promise<void> {\n // `deleteMany`, not `delete`: signing out twice must not raise, and `delete`\n // raises when nothing matched.\n await this.run(() =>\n this.models.Session.deleteMany({ where: { token: args.token } }),\n );\n }\n\n async deleteAllUserSessions(userId: number): Promise<void> {\n await this.run(() =>\n this.models.Session.deleteMany({ where: { userId } }),\n );\n }\n\n async createPasswordResetToken(\n args: CreatePasswordResetTokenArgs,\n ): Promise<string> {\n // A nested `connect`, which iteration 4 supports on the owning side — the\n // foreign key is on this row, so it becomes a bound column with no extra\n // query when the connect names the referenced field.\n return await this.run(() =>\n this.models.PasswordResetToken.create({\n data: { token: args.token, user: { connect: { id: args.user.id } } },\n }),\n );\n }\n\n async findPasswordResetToken(\n args: FindPasswordResetTokenArgs,\n ): Promise<PasswordResetToken | null> {\n return await this.run(() =>\n this.models.PasswordResetToken.findUnique({\n where: { token: args.token },\n include: { user: true },\n }),\n );\n }\n\n async deletePasswordResetToken(\n args: DeletePasswordResetTokenArgs,\n ): Promise<string> {\n return await this.run(() =>\n this.models.PasswordResetToken.delete({ where: { token: args.token } }),\n );\n }\n\n async findInvitation(\n invitationId: string,\n email: string,\n ): Promise<Invitation> {\n return await this.run(() =>\n this.models.OrganizationInvitation.findFirst({\n where: { publicId: invitationId, email },\n }),\n );\n }\n\n async deleteInvitationById(invitationId: string): Promise<void> {\n await this.run(() =>\n this.models.OrganizationInvitation.delete({\n where: { publicId: invitationId },\n }),\n );\n }\n\n async createAccount(args: CreateAccountArgs): Promise<Account | null> {\n return await this.run(() =>\n this.models.Account.create({\n data: {\n userId: args.userId,\n organizationId: args.organizationId,\n organizationRole: args.organizationRole,\n },\n }),\n );\n }\n\n async createMagicLinkToken(\n args: CreateMagicLinkTokenArgs,\n ): Promise<{ token: string; pin: string }> {\n return await this.run(() =>\n this.models.MagicLinkToken.create({\n data: { email: args.email, token: args.token, pin: args.pin },\n }),\n );\n }\n\n async findUserMagicLinkToken(args: {\n token?: string;\n pin?: string;\n email: string;\n }): Promise<User | null> {\n // Prisma's compound-unique form: one key named after the fields joined by\n // `_`. The schema declares `@@unique([token, email])` and\n // `@@unique([pin, email])`, so which one is used depends on what the caller\n // has — a link click carries the token, a typed code carries the pin.\n return await this.run(() =>\n args.token\n ? this.models.MagicLinkToken.findUnique({\n where: { token_email: { token: args.token, email: args.email } },\n })\n : this.models.MagicLinkToken.findUnique({\n where: { pin_email: { pin: args.pin, email: args.email } },\n }),\n );\n }\n\n async deleteMagicLinkToken(email: string): Promise<void> {\n await this.run(() =>\n this.models.MagicLinkToken.deleteMany({ where: { email } }),\n );\n }\n\n async createSocialAccount(args: CreateSocialAccountArgs): Promise<any> {\n return await this.run(() =>\n this.models.SocialAccount.create({ data: args }),\n );\n }\n\n /**\n * The user a provider identity is linked to, or null.\n *\n * `findFirst` rather than `findUnique` on `provider_providerId`, so this\n * works against a schema that has not yet moved its `@@unique` off\n * `[username, provider]` — the lookup is the same either way; what the\n * migration adds is the *constraint*. See \"OAuth\" in\n * `docs/authentication.md`.\n *\n * An empty `providerId` never matches: legacy rows hold `\"\"` or `NULL`, and\n * neither is anybody's identity.\n */\n async findUserBySocialAccount(\n provider: string,\n providerId: string,\n ): Promise<User | null> {\n if (!providerId) return null;\n const account: { user: User } | null = await this.run(() =>\n this.models.SocialAccount.findFirst({\n where: { provider, providerId },\n include: { user: true },\n }),\n );\n return account ? withoutPassword(account.user) : null;\n }\n\n async findSocialAccounts(\n userId: number,\n provider: string,\n ): Promise<SocialAccount[]> {\n return await this.run(() =>\n this.models.SocialAccount.findMany({\n where: { userId, provider },\n orderBy: { id: \"asc\" },\n }),\n );\n }\n\n /**\n * Records `providerId` on a row written before the callback stored one.\n *\n * Conditional on the row still holding the value it was read with, so two\n * callbacks racing to claim the same legacy row cannot both succeed: the\n * loser matches nothing and gets `false`. `updateMany`, because `update`\n * raises on no match and the non-unique filter is the point.\n */\n async claimSocialAccount(\n account: Pick<SocialAccount, \"id\" | \"providerId\">,\n providerId: string,\n ): Promise<boolean> {\n const { count }: { count: number } = await this.run(() =>\n this.models.SocialAccount.updateMany({\n where: { id: account.id, providerId: account.providerId },\n data: { providerId },\n }),\n );\n return count === 1;\n }\n}\n\n",
|
|
30
|
+
"import * as registry from \"../orm/registry\";\nimport type {\n Account,\n AuthModels,\n CreateAccountArgs,\n CreateMagicLinkTokenArgs,\n CreatePasswordResetTokenArgs,\n CreateSessionArgs,\n CreateSocialAccountArgs,\n CreateUserArgs,\n DeletePasswordResetTokenArgs,\n DeleteSessionArgs,\n FindPasswordResetTokenArgs,\n FindSessionArgs,\n Invitation,\n PasswordResetToken,\n SessionWithUser,\n SocialAccount,\n UpdateSessionArgs,\n UpdateUserPasswordArgs,\n User,\n} from \"./types\";\n\n/**\n * Everything `auth/` reads and writes — users, sessions, tokens — on the gemi\n * ORM. Named after `Illuminate\\Contracts\\Auth\\UserProvider`, which is also where\n * the `AuthManager.userProvider` accessor gets its name.\n *\n * ## Why this is a class and not an interface\n *\n * It used to be one of three interchangeable `IAuthenticationAdapter`\n * implementations — blank, Prisma, and this. That seam is gone. The framework\n * ships an ORM, and auth persistence on it is not a choice an application should\n * have to make before it can log anybody in; the pluggable version meant a\n * default that threw `AdapterNotFound` and a starter template that reached for\n * Prisma to get past it.\n *\n * What the seam actually bought was reachable more cheaply. An application that\n * needs different behaviour subclasses this and overrides the methods it cares\n * about — the queries are twenty-five small independent methods, all funnelled\n * through `run`, precisely the shape that subclasses well. What it no longer\n * buys is a *different database*, and that is deliberate: an app on the ORM has\n * one.\n *\n * Note what was **not** done here. Writing these methods against `DB`/raw SQL\n * would mean twenty-two methods of per-dialect SQL across SQLite and Postgres —\n * the hand-written `SqlUserProvider` PR #33 proposed, dropped in favour of\n * building the ORM first. That reasoning did not stop applying when the adapter\n * seam went away. Twenty-two methods of per-dialect SQL is exactly what a\n * compiler is for.\n *\n * ## Why the models are injected rather than imported\n *\n * The ORM resolves models by *name* through a registry, and the generated classes\n * live in the application (`app/models/generated`), not in the framework. So this\n * cannot import `User` — there is no such module here. It takes the model\n * classes it needs, defaulting to the registry, which also makes it testable\n * against fixtures and lets an application point it at its own subclasses (the\n * ones carrying policies, which matters: see the note on `asSystem` below).\n *\n * ## Two behaviours worth knowing\n *\n * **Policies are suspended.** Every query here runs inside `Model.asSystem`.\n * Authentication happens *before* there is an authenticated user, so a policy\n * that scopes by `ctx.user` cannot be satisfied — and under deny-by-default it\n * would raise rather than return null, turning \"wrong password\" into a 500. This\n * is the one place in an application where acting without a user is correct\n * rather than a mistake, so it says so explicitly at the call site, which is what\n * `asSystem` is for.\n *\n * **`password` is stripped from returned users.** The ORM does not implement\n * `omit`, so it is deleted from the returned object rather than excluded by the\n * query — see `createUser` for why that is the right shape and why it matters:\n * `POST /sign-up` returns this object as its response body.\n */\n\n/**\n * Drops the password from a user object.\n *\n * By deletion rather than by a `select` naming every other column, which would\n * have to be maintained against the schema and would silently start returning a\n * new sensitive column the day one is added. Mutates and returns the same object\n * because it is the freshly-created row and nothing else holds a reference to it.\n */\nfunction withoutPassword<T>(user: T): T {\n if (user && typeof user === \"object\") {\n delete (user as { password?: unknown }).password;\n }\n return user;\n}\n\n/**\n * The models, resolved from the ORM registry by name.\n *\n * Lazily, through a Proxy, so the order of module evaluation does not matter —\n * the same property `registry.get` provides everywhere else. Constructing a\n * `UserProvider` therefore does not require the application's models to have\n * been imported yet; only *calling* one of its methods does.\n *\n * When they never are, `registry.get` throws `ModelNotRegisteredError`, which\n * names the model and lists what is registered. That is the replacement for the\n * old `BlankAdapter`, and a better one: it says which model is missing instead\n * of `AdapterNotFound`.\n */\nfunction registryModels(): AuthModels {\n return new Proxy({} as AuthModels, {\n get: (_target, name: string) => registry.get(name),\n });\n}\n\n/**\n * The user shape the rest of `auth/` expects on a session.\n *\n * Spelled out rather than `include: { user: true }` because `User` in\n * `./types.ts` carries `accounts[].organization`, which is a relation two levels\n * down — and because naming the columns is what keeps the *session* queries from\n * selecting `password` into something that is handed to a client.\n *\n * **Organizations come from the accounts, not from a column on `User`.** A user\n * belongs to an organization by having an `Account` in it, which is the shape\n * the rest of `auth/` already writes: `AuthController`'s invited sign-up creates\n * the membership with `createAccount`, and nothing in this file has ever set an\n * organization on the user row.\n *\n * This used to also select `User.organizationId`. Nothing in the framework read\n * it — it was selected here and nowhere else — and selecting it made every\n * application's `User` table have to carry the starter template's column: a\n * schema without it fails `UnknownFieldError` inside `findSession`, which\n * catches, logs, and returns null, so every request looks like an expired\n * session rather than a misconfiguration.\n *\n * Note for a policy that scopes by tenant: `ctx.user.organizationId` is\n * therefore no longer a thing to read. Scope through the membership —\n * `{ accounts: { some: { organizationId: … } } }` — and take the organization\n * from `user.accounts`. A scope naming a key the session user does not carry\n * evaluates to `undefined`, which is an *absent* filter rather than an error.\n */\nconst SESSION_USER = {\n select: {\n id: true,\n publicId: true,\n email: true,\n name: true,\n locale: true,\n globalRole: true,\n accounts: {\n select: {\n id: true,\n publicId: true,\n organizationRole: true,\n organization: true,\n },\n },\n },\n} as const;\n\nexport class UserProvider {\n /**\n * Defaults to the ORM registry, so an application needs no configuration to\n * get working authentication. Pass models explicitly to test against fixtures\n * or to point at subclasses carrying policies.\n */\n constructor(protected models: AuthModels = registryModels()) {}\n\n /**\n * Every query in this class goes through here.\n *\n * `asSystem` rather than a user scope, for the reason in the class comment:\n * authentication runs before there is a user, so a policy that scopes by one\n * cannot be satisfied and deny-by-default would turn a failed sign-in into a\n * server error. One wrapper, applied uniformly, so no method can forget.\n */\n protected run<T>(fn: () => Promise<T>): Promise<T> {\n return this.models.User.asSystem(fn);\n }\n\n /**\n * Runs `fn` inside a transaction on the connection the `User` model lives on.\n * Every ORM query in it joins automatically, at any call depth — see\n * `Model.transaction`.\n *\n * Here so that `AuthController` can make a sign-up atomic without importing a\n * model: the controller has none, and reaching for a bare `Model.transaction`\n * would open on the ambient connection rather than the one this provider's\n * models are bound to. Nesting is a savepoint, so an application that already\n * wrapped its own transaction around a sign-up composes instead of breaking.\n *\n * Deliberately **not** wrapped in `run`. `asSystem` is applied per query by\n * the methods below, which keeps it to this class's own reads and writes;\n * hoisting it here would silently suspend policies for `config.onUserCreated`\n * too, and an application's provisioning writes should run under the same\n * policy resolution as the rest of its code.\n */\n transaction<T>(fn: () => Promise<T>): Promise<T> {\n return this.models.User.transaction(fn);\n }\n\n /**\n * Note the password is **removed from the returned object**, matching Prisma's\n * adapter, which uses `omit: { password: true }`.\n *\n * This is not defensive tidying. `auth/routes.ts` maps `POST /sign-up` to\n * `AuthController.signUp`, and that handler ends `return newUser` — so whatever\n * `createUser` returns *is the response body of an unauthenticated endpoint*.\n * The same object reaches `config.onSignUp`, so an application hook that logs\n * its argument would log a credential hash.\n *\n * An earlier version returned the row whole and documented the difference on\n * the class, on the grounds that emulating `omit` with a `select` naming every\n * other column would drift as the schema grows. That objection is fair and this\n * avoids it entirely: deleting the key needs no column list and cannot drift.\n * It also brings `createUser` in line with `SESSION_USER` above, which already\n * names its columns explicitly for exactly this reason.\n */\n async createUser(args: CreateUserArgs): Promise<User> {\n const user: User = await this.run(() =>\n this.models.User.create({ data: args }),\n );\n return withoutPassword(user);\n }\n\n async updateUserPassword(args: UpdateUserPasswordArgs): Promise<User> {\n // Same treatment. No path was found that serialises this one, but a method\n // whose entire purpose is to set a password should not hand it back — and\n // \"no path today\" is not a property that stays true.\n const user: User = await this.run(() =>\n this.models.User.update({\n where: { id: args.id },\n data: { password: args.password },\n }),\n );\n return withoutPassword(user);\n }\n\n async findUserByEmailAddress(\n email: string,\n verifyEmail: boolean,\n ): Promise<User> {\n return await this.run(() =>\n // A `WhereUniqueInput` carrying an extra non-unique filter, which Prisma 5\n // allows and the ORM honours for `findUnique` — the key is present, and\n // `emailVerifiedAt` narrows further. See `compile/unique.ts`.\n this.models.User.findUnique({\n where: verifyEmail\n ? { email, emailVerifiedAt: { not: null } }\n : { email },\n }),\n );\n }\n\n async findUserByVerificationToken(token: string): Promise<User | null> {\n return await this.run(() =>\n this.models.User.findFirst({ where: { verificationToken: token } }),\n );\n }\n\n async verifyUser(email: string): Promise<User> {\n return await this.run(() =>\n this.models.User.update({\n where: { email },\n data: { emailVerifiedAt: new Date() },\n }),\n );\n }\n\n async createSession(args: CreateSessionArgs): Promise<SessionWithUser> {\n return await this.run(() =>\n this.models.Session.create({ data: args, include: { user: true } }),\n );\n }\n\n async createSessionV2(args: CreateSessionArgs): Promise<SessionWithUser> {\n return await this.run(() =>\n this.models.Session.create({\n data: args,\n select: { token: true, expiresAt: true, absoluteExpiresAt: true, updatedAt: true, location: true, userAgent: true, user: SESSION_USER },\n }),\n );\n }\n\n async findSession(args: FindSessionArgs): Promise<SessionWithUser | null> {\n if (!args.token) return null;\n\n // `findUnique` returns null on no match rather than raising, so the\n // try/catch Prisma's adapter wraps this in is not needed for the\n // not-found case. It is kept for the *connection* case — a sign-in path\n // that throws on a database blip becomes a 500 where returning null is a\n // redirect to the login page. The error is logged rather than swallowed\n // silently.\n try {\n return await this.run(() =>\n this.models.Session.findUnique({\n where: { token: args.token },\n select: {\n token: true,\n expiresAt: true,\n absoluteExpiresAt: true,\n updatedAt: true,\n location: true,\n userAgent: true,\n user: SESSION_USER,\n },\n }),\n );\n } catch (error) {\n console.error(\"findSession failed:\", error);\n return null;\n }\n }\n\n async updateSession(\n args: UpdateSessionArgs,\n ): Promise<SessionWithUser | null> {\n return await this.run(() =>\n this.models.Session.update({\n where: { token: args.token },\n data: { expiresAt: args.expiresAt },\n select: {\n token: true,\n expiresAt: true,\n absoluteExpiresAt: true,\n updatedAt: true,\n location: true,\n userAgent: true,\n user: SESSION_USER,\n },\n }),\n );\n }\n\n async deleteSession(args: DeleteSessionArgs): Promise<void> {\n // An absent token is nothing to delete, and must not be asked for: a\n // `where` operand of `undefined` is dropped as \"not provided\", which\n // would leave `deleteMany({ where: {} })` — every session in the table.\n if (!args.token) {\n return;\n }\n // `deleteMany`, not `delete`: signing out twice must not raise, and `delete`\n // raises when nothing matched.\n await this.run(() =>\n this.models.Session.deleteMany({ where: { token: args.token } }),\n );\n }\n\n async deleteAllUserSessions(userId: number): Promise<void> {\n await this.run(() =>\n this.models.Session.deleteMany({ where: { userId } }),\n );\n }\n\n async createPasswordResetToken(\n args: CreatePasswordResetTokenArgs,\n ): Promise<string> {\n // A nested `connect`, which iteration 4 supports on the owning side — the\n // foreign key is on this row, so it becomes a bound column with no extra\n // query when the connect names the referenced field.\n return await this.run(() =>\n this.models.PasswordResetToken.create({\n data: { token: args.token, user: { connect: { id: args.user.id } } },\n }),\n );\n }\n\n async findPasswordResetToken(\n args: FindPasswordResetTokenArgs,\n ): Promise<PasswordResetToken | null> {\n return await this.run(() =>\n this.models.PasswordResetToken.findUnique({\n where: { token: args.token },\n include: { user: true },\n }),\n );\n }\n\n async deletePasswordResetToken(\n args: DeletePasswordResetTokenArgs,\n ): Promise<string> {\n return await this.run(() =>\n this.models.PasswordResetToken.delete({ where: { token: args.token } }),\n );\n }\n\n async findInvitation(\n invitationId: string,\n email: string,\n ): Promise<Invitation> {\n return await this.run(() =>\n this.models.OrganizationInvitation.findFirst({\n where: { publicId: invitationId, email },\n }),\n );\n }\n\n async deleteInvitationById(invitationId: string): Promise<void> {\n await this.run(() =>\n this.models.OrganizationInvitation.delete({\n where: { publicId: invitationId },\n }),\n );\n }\n\n async createAccount(args: CreateAccountArgs): Promise<Account | null> {\n return await this.run(() =>\n this.models.Account.create({\n data: {\n userId: args.userId,\n organizationId: args.organizationId,\n organizationRole: args.organizationRole,\n },\n }),\n );\n }\n\n async createMagicLinkToken(\n args: CreateMagicLinkTokenArgs,\n ): Promise<{ token: string; pin: string }> {\n return await this.run(() =>\n this.models.MagicLinkToken.create({\n data: { email: args.email, token: args.token, pin: args.pin },\n }),\n );\n }\n\n async findUserMagicLinkToken(args: {\n token?: string;\n pin?: string;\n email: string;\n }): Promise<User | null> {\n // Prisma's compound-unique form: one key named after the fields joined by\n // `_`. The schema declares `@@unique([token, email])` and\n // `@@unique([pin, email])`, so which one is used depends on what the caller\n // has — a link click carries the token, a typed code carries the pin.\n return await this.run(() =>\n args.token\n ? this.models.MagicLinkToken.findUnique({\n where: { token_email: { token: args.token, email: args.email } },\n })\n : this.models.MagicLinkToken.findUnique({\n where: { pin_email: { pin: args.pin, email: args.email } },\n }),\n );\n }\n\n async deleteMagicLinkToken(email: string): Promise<void> {\n await this.run(() =>\n this.models.MagicLinkToken.deleteMany({ where: { email } }),\n );\n }\n\n async createSocialAccount(args: CreateSocialAccountArgs): Promise<any> {\n return await this.run(() =>\n this.models.SocialAccount.create({ data: args }),\n );\n }\n\n /**\n * The user a provider identity is linked to, or null.\n *\n * `findFirst` rather than `findUnique` on `provider_providerId`, so this\n * works against a schema that has not yet moved its `@@unique` off\n * `[username, provider]` — the lookup is the same either way; what the\n * migration adds is the *constraint*. See \"OAuth\" in\n * `docs/authentication.md`.\n *\n * An empty `providerId` never matches: legacy rows hold `\"\"` or `NULL`, and\n * neither is anybody's identity.\n */\n async findUserBySocialAccount(\n provider: string,\n providerId: string,\n ): Promise<User | null> {\n if (!providerId) return null;\n const account: { user: User } | null = await this.run(() =>\n this.models.SocialAccount.findFirst({\n where: { provider, providerId },\n include: { user: true },\n }),\n );\n return account ? withoutPassword(account.user) : null;\n }\n\n async findSocialAccounts(\n userId: number,\n provider: string,\n ): Promise<SocialAccount[]> {\n return await this.run(() =>\n this.models.SocialAccount.findMany({\n where: { userId, provider },\n orderBy: { id: \"asc\" },\n }),\n );\n }\n\n /**\n * Records `providerId` on a row written before the callback stored one.\n *\n * Conditional on the row still holding the value it was read with, so two\n * callbacks racing to claim the same legacy row cannot both succeed: the\n * loser matches nothing and gets `false`. `updateMany`, because `update`\n * raises on no match and the non-unique filter is the point.\n */\n async claimSocialAccount(\n account: Pick<SocialAccount, \"id\" | \"providerId\">,\n providerId: string,\n ): Promise<boolean> {\n const { count }: { count: number } = await this.run(() =>\n this.models.SocialAccount.updateMany({\n where: { id: account.id, providerId: account.providerId },\n data: { providerId },\n }),\n );\n return count === 1;\n }\n}\n\n",
|
|
32
31
|
"import { timingSafeEqual } from \"node:crypto\";\nimport { ApiRouteDispatcher } from \"./ApiRouteDispatcher\";\nimport { ViewRouteDispatcher } from \"./ViewRouteDispatcher\";\nimport { DomainResolver, FALLBACK_GROUP, ROOT_GROUP, type ResolvedDomain } from \"./DomainResolver\";\nimport type { ApiRouteConfig, DomainGroupRouters, DomainsConfig, ViewRouteConfig } from \"./config\";\nimport { setRequestDomain } from \"../../http/requestDomain\";\n\n/**\n * Where a TLS proxy asks whether to issue a certificate for a host — Caddy's\n * `on_demand_tls { ask ... }`. Answered before host resolution, since the\n * proxy calls it on whatever host it reaches the app by.\n */\nexport const DOMAIN_ASK_PATH = \"/__gemi__/domains/ask\";\n\n/**\n * Compares in constant time, so the secret cannot be recovered a character at\n * a time. The length is compared first and leaks, which `timingSafeEqual`\n * requires and which tells an attacker nothing they can walk.\n */\nfunction secretMatches(given: string | null, expected: string): boolean {\n if (given === null) {\n return false;\n }\n const a = Buffer.from(given, \"utf8\");\n const b = Buffer.from(expected, \"utf8\");\n return a.length === b.length && timingSafeEqual(a, b);\n}\n\nexport interface DomainDispatchers {\n api: ApiRouteDispatcher;\n view: ViewRouteDispatcher;\n}\n\n/**\n * One api/view dispatcher pair per `route.domains` group. A group that brings\n * no routers of its own shares the root's dispatcher for that side — the same\n * instance, not a copy — so a tenant subdomain running the root app costs\n * nothing extra and keeps the root's typed routes.\n */\nexport class DomainRouter {\n static token = \"router.domains\";\n\n /** `null` when the app declares no `route.domains`: every host is the root. */\n readonly resolver: DomainResolver | null;\n /** Whether hosts outside the root are served at all — `route.domains.custom` is set. */\n readonly acceptsCustomDomains: boolean;\n private readonly groups = new Map<string, DomainDispatchers>();\n\n constructor(\n root: DomainDispatchers,\n config: { api: ApiRouteConfig; view: ViewRouteConfig; domains?: DomainsConfig },\n ) {\n this.groups.set(ROOT_GROUP, root);\n const { domains } = config;\n this.acceptsCustomDomains = Boolean(domains?.custom);\n if (!domains) {\n this.resolver = null;\n return;\n }\n this.resolver = new DomainResolver(domains);\n\n const build = (routers: DomainGroupRouters): DomainDispatchers => ({\n api: routers.api ? new ApiRouteDispatcher({ ...config.api, ...routers.api }) : root.api,\n view: routers.view ? new ViewRouteDispatcher({ ...config.view, ...routers.view }) : root.view,\n });\n for (const group of domains.groups ?? []) {\n this.groups.set(group.subdomain, build(group));\n }\n if (domains.custom?.fallback) {\n this.groups.set(FALLBACK_GROUP, build(domains.custom.fallback));\n }\n }\n\n /**\n * Resolves `req`'s host group, records it for every `HttpRequest` built over\n * `req`, and returns that group's dispatchers — `null` when no group serves\n * the host. Lives here, not in `App.fetch`, because the request's domain\n * must be recorded by the app's copy of gemi, which is the one the handlers\n * read it back from (see the note at the top of `app/App.ts`).\n */\n async route(req: Request): Promise<DomainDispatchers | null> {\n if (!this.resolver) {\n return this.dispatchers(null);\n }\n const domain = await this.resolver.resolve(req);\n if (!domain) {\n return null;\n }\n setRequestDomain(req, domain);\n return this.dispatchers(domain);\n }\n\n /**\n * Answers a TLS proxy's on-demand \"ask\": 200 when `?domain=` names a host\n * the app serves in its own right, 404 otherwise. `null` when `req` is not\n * an ask, the app declares no `route.domains`, or `route.domains.ask` is\n * not configured or its secret does not match.\n *\n * Falling through on a bad secret rather than answering 401 is deliberate:\n * the reply to a wrong guess is then whatever the app answers for any\n * unrouted path, so the endpoint cannot be found by probing for it. The\n * answer it gives is \"is this host a tenant of yours\", which is worth\n * guarding — and each one costs the app an `exists` or `resolve` call.\n */\n async ask(req: Request): Promise<Response | null> {\n if (!this.resolver?.askSecret || req.method !== \"GET\") {\n return null;\n }\n const url = new URL(req.url);\n if (url.pathname !== DOMAIN_ASK_PATH) {\n return null;\n }\n if (!secretMatches(url.searchParams.get(\"secret\"), this.resolver.askSecret)) {\n return null;\n }\n const host = url.searchParams.get(\"domain\");\n const allowed = host ? await this.resolver.allows(host, req) : false;\n return new Response(null, { status: allowed ? 200 : 404 });\n }\n\n /** The dispatchers of `domain`'s group; the root's for `null`. */\n dispatchers(domain: ResolvedDomain | null): DomainDispatchers {\n return this.groups.get(domain?.group ?? ROOT_GROUP)!;\n }\n\n /** Every distinct view dispatcher, the root's first — for anything that has to know every view. */\n viewDispatchers(): ViewRouteDispatcher[] {\n return Array.from(new Set(Array.from(this.groups.values(), (group) => group.view)));\n }\n}\n",
|
|
33
|
-
"import { Temporal } from \"temporal-polyfill\";\n\nimport { Controller } from \"../http/Controller\";\nimport { HttpRequest } from \"../http/HttpRequest\";\nimport { ValidationError } from \"../http\";\nimport { AuthorizationError } from \"../http/errors\";\nimport { Auth } from \"../facades\";\nimport { app } from \"../foundation/app\";\nimport { Translator } from \"../i18n/Translator\";\nimport type { Invitation, User } from \"./types\";\nimport { AuthManager } from \"./AuthManager\";\nimport { INTENDED_URL_PARAM, isSecureRequest, safeRedirectPath } from \"../utils/intendedUrl\";\n\n/** Holds a `?redirect=` across the OAuth provider round trip. */\nconst INTENDED_URL_COOKIE = \"intended_url\";\n\nclass SignInRequest extends HttpRequest<\n {\n email: string;\n password: string;\n },\n Record<string, string>\n> {\n schema = {\n email: {\n required: \"Email is required\",\n string: \"Invalid email\",\n email: \"Invalid email\",\n },\n password: {\n required: \"Password is required\",\n },\n };\n}\n\nclass ForgotPasswordRequest extends HttpRequest<\n {\n email: string;\n },\n Record<string, string>\n> {\n schema = {\n email: {\n required: \"Email is required\",\n email: \"Invalid email\",\n },\n };\n}\n\nclass ResetPasswordRequest extends HttpRequest<\n {\n password: string;\n token: string;\n },\n Record<string, string>\n> {\n schema = {\n password: {\n required: \"Password is required\",\n password: \"Invalid password\",\n },\n };\n}\n\nexport class AuthController extends Controller {\n async me() {\n const user = await Auth.user();\n\n if (!user) {\n throw new AuthorizationError();\n }\n\n return user;\n }\n\n async verifyEmail(req = new HttpRequest<{ token: string }>()) {\n const input = await req.input();\n const { userProvider } = app(AuthManager);\n\n const user = await userProvider.findUserByVerificationToken(\n input.get(\"token\"),\n );\n\n if (!user) {\n return { email: null };\n }\n\n await userProvider.verifyUser(user.email);\n\n return {\n email: user.email,\n };\n }\n\n async signInWithMagicLink(req = new HttpRequest()) {\n const auth = app(AuthManager);\n const { userProvider } = auth;\n const token = req.search.get(\"token\");\n const email = decodeURIComponent(req.search.get(\"email\"))\n .toLowerCase()\n .trim();\n\n let magicLink = null;\n\n try {\n magicLink = await userProvider.findUserMagicLinkToken({\n email,\n token,\n });\n } catch (err) {\n console.log(err);\n return { error: JSON.stringify(err) };\n }\n\n if (!magicLink) {\n return { error: \"Invalid token\" };\n }\n\n await userProvider.verifyUser(email);\n await userProvider.deleteMagicLinkToken(email);\n const session = await auth.createOrUpdateSession({ email });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(session, req.search.toJSON());\n\n return { session };\n }\n\n async signInWithPinV2(\n req = new HttpRequest<{ email: string; pin: string }>(),\n ) {\n const auth = app(AuthManager);\n const { userProvider } = auth;\n const input = await req.input();\n const { email: _email, pin } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const magicLinkToken = await userProvider.findUserMagicLinkToken({\n email,\n pin,\n });\n\n if (!magicLinkToken) {\n throw new ValidationError({\n pin: [\"Invalid pin\"],\n });\n }\n\n await userProvider.deleteMagicLinkToken(email);\n await userProvider.verifyUser(email);\n\n const session = await auth.createOrUpdateSessionV2({ email });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(session, req.search.toJSON());\n\n return session;\n }\n\n async signInWithPin(req = new HttpRequest<{ email: string; pin: string }>()) {\n const auth = app(AuthManager);\n const { userProvider } = auth;\n const input = await req.input();\n const { email: _email, pin } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const magicLinkToken = await userProvider.findUserMagicLinkToken({\n email,\n pin,\n });\n\n if (!magicLinkToken) {\n throw new ValidationError({\n pin: [\"Invalid pin\"],\n });\n }\n\n await userProvider.deleteMagicLinkToken(email);\n await userProvider.verifyUser(email);\n\n const session = await auth.createOrUpdateSession({ email });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(session, req.search.toJSON());\n\n return { session };\n }\n\n async signInV2(req = new SignInRequest()) {\n const input = await req.input();\n const { email: _email, password } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const auth = app(AuthManager);\n\n const user = await auth.userProvider.findUserByEmailAddress(\n email,\n auth.config.verifyEmail,\n );\n\n if (!user) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const isPasswordValid = await auth.config.verifyPassword(\n password,\n user.password,\n );\n\n if (!isPasswordValid) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const session = await auth.createOrUpdateSessionV2({\n email: user.email,\n id: user.id,\n });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(user, req.search.toJSON());\n\n const { password: _, ...rest } = user;\n\n return rest;\n }\n\n async signIn(req = new SignInRequest()) {\n const input = await req.input();\n const { email: _email, password } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const auth = app(AuthManager);\n\n const user = await auth.userProvider.findUserByEmailAddress(\n email,\n auth.config.verifyEmail,\n );\n\n if (!user) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const isPasswordValid = await auth.config.verifyPassword(\n password,\n user.password,\n );\n\n if (!isPasswordValid) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const session = await auth.createOrUpdateSession({\n email: user.email,\n id: user.id,\n });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(user, req.search.toJSON());\n\n const { password: _, ...rest } = user;\n\n return rest;\n }\n\n async signUp() {\n const auth = app(AuthManager);\n const { userProvider, config } = auth;\n const req = new config.signUpRequest();\n const input = await req.input();\n const {\n email: _email,\n password,\n name,\n invitationId,\n } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const user = await userProvider.findUserByEmailAddress(email, false);\n\n if (user) {\n throw new ValidationError({\n email: [\"Email address already exists\"],\n });\n }\n\n const hashedPassword = await config.hashPassword(password);\n\n const locale = app(Translator).detectLocale(req);\n\n let invitation: Invitation;\n if (invitationId) {\n invitation = await userProvider.findInvitation(invitationId, email);\n }\n\n let newUser: User;\n // `\"\"` rather than left undefined, because only the `else` branch below\n // assigns it. An invited sign-up sets `emailVerifiedAt` and never writes a\n // token, so there is nothing to verify — the same reason `oauthCallback`\n // passes `\"\"` — and `onSignUp` is typed `verificationToken: string`. Left\n // undeclared, the invited path handed the hook `undefined` against that\n // signature.\n let verificationToken = \"\";\n\n // Both branches write the user and everything that has to exist alongside\n // it in one transaction, `config.onUserCreated` last. A throw from the hook\n // takes the user with it, which is the whole point of the hook: an app\n // provisioning an organization in `onSignUp` — which fires after the commit\n // — gets a user with no organization when that insert fails.\n if (invitation) {\n newUser = await userProvider.transaction(async () => {\n // Consuming the invitation belongs in here too. Deleted before the\n // transaction, a rollback would leave the invite burned and no user to\n // show for it, so the invitee could not retry.\n await userProvider.deleteInvitationById(invitationId);\n\n const user = await userProvider.createUser({\n email,\n name,\n password: hashedPassword,\n emailVerifiedAt: new Date(),\n locale,\n });\n await userProvider.createAccount({\n organizationId: invitation.organizationId,\n userId: user.id,\n organizationRole: invitation.role,\n });\n\n await config.onUserCreated(user);\n\n return user;\n });\n } else {\n // Outside the transaction: it is a hash, not a query, and the\n // transaction holds a connection for as long as it is open.\n verificationToken = await config.generateEmailVerificationToken(email);\n\n newUser = await userProvider.transaction(async () => {\n const user = await userProvider.createUser({\n email,\n name,\n password: hashedPassword,\n verificationToken,\n locale,\n });\n\n await config.onUserCreated(user);\n\n return user;\n });\n }\n\n await config.onSignUp(newUser, verificationToken, req.search.toJSON());\n\n return newUser;\n }\n\n async signOut(req = new HttpRequest()) {\n const token = req.cookies.get(\"access_token\");\n\n const user = await Auth.user();\n\n const { userProvider, config } = app(AuthManager);\n\n await userProvider.deleteSession({ token });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n \"\",\n app(AuthManager).accessTokenCookieOptions(req, new Date(0)),\n );\n // A cookie set before `cookieDomain` was turned on is scoped to the host\n // alone, and the one above does not clear it.\n if (app(AuthManager).cookieDomain(req)) {\n req.ctx().setCookie(\"access_token\", \"\", {\n ...app(AuthManager).accessTokenCookieOptions(req, new Date(0)),\n domain: undefined,\n });\n }\n\n await config.onSignOut(user);\n\n return {};\n }\n\n async forgotPassword(req = new ForgotPasswordRequest()) {\n const input = await req.input();\n const email = input.get(\"email\").toLowerCase().trim();\n\n const { userProvider, config } = app(AuthManager);\n\n const user = await userProvider.findUserByEmailAddress(\n email,\n config.verifyEmail,\n );\n\n if (!user) {\n return {};\n }\n\n const token = await config.generateForgotPasswordToken(user);\n\n // TODO: Do not create token if already there is one that is valid\n // Prevent token spamming\n await userProvider.createPasswordResetToken({\n user,\n token,\n });\n\n await config.onForgotPassword(user, token);\n\n return {};\n }\n\n async resetPassword(req = new ResetPasswordRequest()) {\n const { userProvider, config } = app(AuthManager);\n const input = await req.input();\n const { password, token } = input.toJSON();\n\n const passwordResetToken = await userProvider.findPasswordResetToken({\n token,\n });\n\n if (!passwordResetToken) {\n throw new ValidationError({\n token: [\"Invalid token\"],\n });\n }\n\n const isTokenExpired = Temporal.Instant.from(\n passwordResetToken.createdAt.toISOString(),\n )\n .add({ hours: 24 })\n .until(Temporal.Now.instant()).sign;\n\n if (isTokenExpired >= 0) {\n throw new ValidationError({\n token: [\"Token expired\"],\n });\n }\n\n await userProvider.deletePasswordResetToken({ token });\n\n const user = await userProvider.findUserByEmailAddress(\n passwordResetToken.user.email,\n config.verifyEmail,\n );\n\n if (!user) {\n throw new ValidationError({\n email: [\"User not found\"],\n });\n }\n\n const hashedPassword = await config.hashPassword(password);\n\n await userProvider.updateUserPassword({\n id: user.id,\n password: hashedPassword,\n });\n\n await userProvider.deleteAllUserSessions(user.id);\n\n await config.onResetPassword(user);\n\n return {};\n }\n\n async changePassword(\n req = new HttpRequest<{ oldPassword: string; newPassword: string }>(),\n ) {\n const { userProvider, config } = app(AuthManager);\n const user = await Auth.user();\n const input = await req.input();\n const { oldPassword, newPassword } = input.toJSON();\n\n const { password } = await userProvider.findUserByEmailAddress(\n user.email,\n config.verifyEmail,\n );\n\n const isPasswordValid = await config.verifyPassword(oldPassword, password);\n\n if (!isPasswordValid) {\n throw new ValidationError({\n oldPassword: [\"Incorrect password\"],\n });\n }\n\n const hashedPassword = await config.hashPassword(newPassword);\n\n await userProvider.updateUserPassword({\n id: user.id,\n password: hashedPassword,\n });\n\n await userProvider.deleteAllUserSessions(user.id);\n return {};\n }\n\n async oauthRedirect(req = new HttpRequest()) {\n const { provider } = req.params;\n const oauthProvider =\n app(AuthManager).config.oauthProviders[provider as string];\n\n if (!oauthProvider) {\n throw new Error(`Invalid provider: ${provider}`);\n }\n\n // The provider round trip drops our query string, so a `?redirect=` the\n // sign-in page forwarded onto this link waits in a cookie for the callback.\n // `Lax`, not the default `Strict`: the callback is a cross-site navigation\n // from the provider, and a strict cookie would not be sent on it.\n const intended = safeRedirectPath(req.search.get(INTENDED_URL_PARAM), \"\");\n if (intended) {\n req.ctx().setCookie(INTENDED_URL_COOKIE, encodeURIComponent(intended), {\n httpOnly: true,\n sameSite: \"Lax\",\n // By the scheme the client addressed, not by whether the host reads\n // as local: `localhost.evil.example` is not local, and a browser\n // drops a `Secure` cookie from a plain-http origin anyway.\n secure: isSecureRequest(req.rawRequest),\n maxAge: 60 * 10,\n });\n }\n\n return {\n destination: await oauthProvider.getRedirectUrl(req),\n };\n }\n\n async oauthCallback(req = new HttpRequest()) {\n const { provider } = req.params;\n const auth = app(AuthManager);\n const { userProvider, config } = auth;\n const oauthProvider = config.oauthProviders[provider as string];\n\n const { email, name, username, providerId } =\n await oauthProvider.onCallback(req);\n\n // Who this is, in order of how much each answer can be trusted:\n //\n // 1. The provider identity, `(provider, providerId)`. A returning account\n // resolves here whatever has happened to its email or display name at\n // the provider since — and the local user's email is not touched, so a\n // provider-side change never moves the account to a different user.\n // 2. Otherwise the email, exactly as before: an existing user is signed in,\n // and a new one is created. Either way the identity is linked, so the\n // next callback takes step 1.\n //\n // A provider that returns no `providerId` only ever takes step 2, and has\n // no `SocialAccount` written — a row with no identity in it can never be\n // resolved by one.\n let user: User | null = providerId\n ? await userProvider.findUserBySocialAccount(provider, providerId)\n : null;\n\n let action: \"signin\" | \"signup\" = \"signin\";\n\n if (!user) {\n if (!email) {\n console.error(\n \"Authentication error: No email returned from OAuth provider callback\",\n );\n return {\n session: null,\n };\n }\n\n const locale = app(Translator).detectLocale(req);\n\n try {\n const resolved = await this.linkOAuthAccount({\n provider,\n providerId,\n email,\n name,\n username,\n locale,\n });\n if (resolved) {\n user = resolved.user;\n action = resolved.action;\n }\n } catch (error) {\n // A concurrent callback for the same identity can win the race to\n // create the user or the link, and this one then fails on a unique\n // constraint. Recover only by *resolving the identity again*: the\n // error itself proves nothing — it could equally be a rolled-back\n // `onUserCreated` or a dropped connection — so anything that does not\n // now resolve is rethrown unchanged.\n const winner = providerId\n ? await userProvider.findUserBySocialAccount(provider, providerId)\n : null;\n if (!winner) throw error;\n user = winner;\n }\n\n if (!user) {\n return {\n session: null,\n };\n }\n }\n\n const session = await auth.createOrUpdateSessionV2({\n email: user.email,\n id: user.id,\n });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n if (action === \"signup\") {\n // `\"\"`, and not a token, deliberately.\n //\n // This used to hand the hook `config.generateMagicLinkToken(email)`.\n // That function is a pure hash and nothing here persisted what it\n // returned — `userProvider.createMagicLinkToken`, which writes the\n // `MagicLinkToken` row, was never called — so the value resolved in\n // neither place a token can be looked up: not `User.verificationToken`,\n // which `createUser` above does not set, and not the `MagicLinkToken`\n // table. An application doing the obvious thing with the argument, and\n // mailing a confirmation link carrying it, sent every OAuth signup a link\n // that could not resolve, and it tested clean against email/password\n // signup, where the same parameter is the persisted verification token.\n //\n // There is nothing to verify on this path — the user arrives with\n // `emailVerifiedAt` already set — so \"no token\" is the honest value, and\n // it is the one the email path already passes under `verifyEmail: false`.\n // An app that does want to hand new OAuth users a magic link should mint\n // a persisted one with `Auth.createMagicLink(user.email)` from the hook.\n await config.onSignUp(user, \"\", req.search.toJSON());\n } else {\n await config.onSignIn(user, req.search.toJSON());\n }\n\n // Where `oauthRedirect` was asked to return to, else `redirectPath`.\n // Checked again on the way out: a cookie is client-writable too.\n const stashed = req.cookies.get(INTENDED_URL_COOKIE);\n let redirectTo = config.redirectPath;\n if (stashed) {\n try {\n redirectTo = safeRedirectPath(decodeURIComponent(stashed), redirectTo);\n } catch {}\n req.ctx().setCookie(INTENDED_URL_COOKIE, \"\", { maxAge: -1 });\n }\n\n return { session, redirectTo };\n }\n\n /**\n * Step 2 of `oauthCallback`: an identity that resolved to nobody, matched by\n * email. Returns null when the callback must be refused.\n *\n * Not a route — `protected` keeps it off the controller's public surface.\n */\n protected async linkOAuthAccount(args: {\n provider: string;\n providerId?: string;\n email: string;\n name?: string;\n username?: string;\n locale: string;\n }): Promise<{ user: User; action: \"signin\" | \"signup\" } | null> {\n const { provider, providerId, email, name, username, locale } = args;\n const { userProvider, config } = app(AuthManager);\n\n const socialAccount = (userId: number) => ({\n provider,\n userId,\n email,\n // The provider's handle where it has one (X). Google has none, and the\n // display name is not one: it is neither unique nor stable, and it was\n // what made two Google users called the same thing collide.\n username,\n providerId,\n expiresAt: new Date(),\n accessToken: \"\",\n refreshToken: \"\",\n });\n\n const existing = await userProvider.findUserByEmailAddress(email, false);\n\n if (existing) {\n if (!providerId) return { user: existing, action: \"signin\" };\n\n const accounts = await userProvider.findSocialAccounts(\n existing.id,\n provider,\n );\n\n // Linked since step 1 looked — a concurrent callback for this same\n // account committed in between.\n if (accounts.some((account) => account.providerId === providerId)) {\n return { user: existing, action: \"signin\" };\n }\n\n // This user is already linked to a *different* account at this\n // provider. The email matching is not enough to move the link: it is the\n // same address, not the same account (a deleted and re-created Workspace\n // user, an address that changed hands). Refuse, and leave it to the\n // application to unlink the old row if re-linking is intended.\n if (accounts.some((account) => account.providerId)) {\n console.error(\n `Authentication error: user ${existing.id} is already linked to a different ${provider} account`,\n );\n return null;\n }\n\n // A row from before identities were recorded. It was made for this user\n // when they signed up through this provider by this email, so recording\n // the identity on it grants nothing the email match did not already.\n const legacy = accounts[0];\n if (legacy) {\n if (!(await userProvider.claimSocialAccount(legacy, providerId))) {\n // Someone else claimed it between the read and the write. Throwing\n // hands it to the caller's recovery, which signs in only if the\n // claim was for this same identity.\n throw new Error(`${provider} account link changed concurrently`);\n }\n } else {\n await userProvider.createSocialAccount(socialAccount(existing.id));\n }\n\n return { user: existing, action: \"signin\" };\n }\n\n // Same shape as `signUp`: the user, the row that has to exist beside it,\n // and `onUserCreated`, in one transaction. The social account in\n // particular has a foreign key onto the user — created outside, a rolled\n // back user would leave it pointing at nothing.\n const user = await userProvider.transaction(async () => {\n const created = await userProvider.createUser({\n email,\n name,\n locale,\n emailVerifiedAt: new Date(),\n });\n\n if (providerId) {\n await userProvider.createSocialAccount(socialAccount(created.id));\n }\n\n await config.onUserCreated(created);\n\n return created;\n });\n\n return { user, action: \"signup\" };\n }\n\n async createMagicLinkToken(req = new HttpRequest<{ email: string }>()) {\n const input = await req.input();\n const email = input.get(\"email\").toLowerCase().trim();\n const auth = app(AuthManager);\n const { user, pin, token } = await auth.createMagicLinkToken(email);\n\n if (user) {\n await auth.config.onMagicLinkCreated(user, { email, pin, token });\n return {\n email,\n };\n }\n\n return { email: null };\n }\n}\n",
|
|
32
|
+
"function clampProp(e, n, t, o, r) {\n return clampEntity(n, getDefinedProp(e, n), t, o, r);\n}\n\nfunction clampEntity(e, n, t, o, r, i) {\n const a = clampNumber(n, t, o);\n if (r && n !== a) {\n throw new RangeError(numberOutOfRange(e, n, t, o, i));\n }\n return a;\n}\n\nfunction getDefinedProp(e, n) {\n const t = e[n];\n if (void 0 === t) {\n throw new TypeError(missingField(n));\n }\n return t;\n}\n\nfunction z(e) {\n return null !== e && /object|function/.test(typeof e);\n}\n\nfunction Jn(e, n = Map) {\n const t = new n;\n return (n, ...o) => {\n if (t.has(n)) {\n return t.get(n);\n }\n const r = e(n, ...o);\n return t.set(n, r), r;\n };\n}\n\nfunction D(e) {\n return p({\n name: e\n }, 1);\n}\n\nfunction p(e, n) {\n return T((e => ({\n value: e,\n configurable: 1,\n writable: !n\n })), e);\n}\n\nfunction O(e) {\n return T((e => ({\n get: e,\n configurable: 1\n })), e);\n}\n\nfunction h(e) {\n return {\n [Symbol.toStringTag]: {\n value: e,\n configurable: 1\n }\n };\n}\n\nfunction zipProps(e, n) {\n const t = {};\n let o = e.length;\n for (const r of n) {\n t[e[--o]] = r;\n }\n return t;\n}\n\nfunction T(e, n, t) {\n const o = {};\n for (const r in n) {\n o[r] = e(n[r], r, t);\n }\n return o;\n}\n\nfunction b(e, n, t) {\n const o = {};\n for (let r = 0; r < n.length; r++) {\n const i = n[r];\n o[i] = e(i, r, t);\n }\n return o;\n}\n\nfunction remapProps(e, n, t) {\n const o = {};\n for (let r = 0; r < e.length; r++) {\n o[n[r]] = t[e[r]];\n }\n return o;\n}\n\nfunction Vn(e, n) {\n const t = {};\n for (const o of e) {\n t[o] = n[o];\n }\n return t;\n}\n\nfunction V(e, n) {\n const t = {};\n for (const o in n) {\n e.has(o) || (t[o] = n[o]);\n }\n return t;\n}\n\nfunction nn(e) {\n e = {\n ...e\n };\n const n = Object.keys(e);\n for (const t of n) {\n void 0 === e[t] && delete e[t];\n }\n return e;\n}\n\nfunction C(e, n) {\n for (const t of n) {\n if (!(t in e)) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction allPropsEqual(e, n, t) {\n for (const o of e) {\n if (n[o] !== t[o]) {\n return 0;\n }\n }\n return 1;\n}\n\nfunction zeroOutProps(e, n, t) {\n const o = {\n ...t\n };\n for (let t = 0; t < n; t++) {\n o[e[t]] = 0;\n }\n return o;\n}\n\nfunction E(e, ...n) {\n return (...t) => e(...n, ...t);\n}\n\nfunction capitalize(e) {\n return e[0].toUpperCase() + e.substring(1);\n}\n\nfunction sortStrings(e) {\n return e.slice().sort();\n}\n\nfunction padNumber(e, n) {\n return String(n).padStart(e, \"0\");\n}\n\nfunction compareNumbers(e, n) {\n return Math.sign(e - n);\n}\n\nfunction clampNumber(e, n, t) {\n return Math.min(Math.max(e, n), t);\n}\n\nfunction divModFloor(e, n) {\n return [ Math.floor(e / n), modFloor(e, n) ];\n}\n\nfunction modFloor(e, n) {\n return (e % n + n) % n;\n}\n\nfunction divModTrunc(e, n) {\n return [ divTrunc(e, n), modTrunc(e, n) ];\n}\n\nfunction divTrunc(e, n) {\n return Math.trunc(e / n) || 0;\n}\n\nfunction modTrunc(e, n) {\n return e % n || 0;\n}\n\nfunction hasHalf(e) {\n return .5 === Math.abs(e % 1);\n}\n\nfunction givenFieldsToBigNano(e, n, t) {\n let o = 0, r = 0;\n for (let i = 0; i <= n; i++) {\n const n = e[t[i]], a = Xr[i], s = Qr / a, [c, u] = divModTrunc(n, s);\n o += u * a, r += c;\n }\n const [i, a] = divModTrunc(o, Qr);\n return [ r + i, a ];\n}\n\nfunction nanoToGivenFields(e, n, t) {\n const o = {};\n for (let r = n; r >= 0; r--) {\n const n = Xr[r];\n o[t[r]] = divTrunc(e, n), e = modTrunc(e, n);\n }\n return o;\n}\n\nfunction un(e) {\n return e === X ? si : [];\n}\n\nfunction cn(e) {\n return e === X ? li : [];\n}\n\nfunction ln(e) {\n return e === X ? [ \"year\", \"day\" ] : [];\n}\n\nfunction l(e) {\n if (void 0 !== e) {\n return m(e);\n }\n}\n\nfunction S(e) {\n if (void 0 !== e) {\n return d(e);\n }\n}\n\nfunction c(e) {\n if (void 0 !== e) {\n return u(e);\n }\n}\n\nfunction d(e) {\n return requireNumberIsPositive(u(e));\n}\n\nfunction u(e) {\n return requireNumberIsInteger(Mi(e));\n}\n\nfunction on(e) {\n if (null == e) {\n throw new TypeError(\"Cannot be null or undefined\");\n }\n return e;\n}\n\nfunction requirePropDefined(e, n) {\n if (null == n) {\n throw new RangeError(missingField(e));\n }\n return n;\n}\n\nfunction de(e) {\n if (!z(e)) {\n throw new TypeError(hr);\n }\n return e;\n}\n\nfunction requireType(e, n, t = e) {\n if (typeof n !== e) {\n throw new TypeError(invalidEntity(t, n));\n }\n return n;\n}\n\nfunction requireNumberIsInteger(e, n = \"number\") {\n if (!Number.isInteger(e)) {\n throw new RangeError(expectedInteger(n, e));\n }\n return e || 0;\n}\n\nfunction requireNumberIsPositive(e, n = \"number\") {\n if (e <= 0) {\n throw new RangeError(expectedPositive(n, e));\n }\n return e;\n}\n\nfunction toString(e) {\n if (\"symbol\" == typeof e) {\n throw new TypeError(pr);\n }\n return String(e);\n}\n\nfunction toStringViaPrimitive(e, n) {\n return z(e) ? String(e) : m(e, n);\n}\n\nfunction toBigInt(e) {\n if (\"string\" == typeof e) {\n return BigInt(e);\n }\n if (\"bigint\" != typeof e) {\n throw new TypeError(invalidBigInt(e));\n }\n return e;\n}\n\nfunction toNumber(e, n = \"number\") {\n if (\"bigint\" == typeof e) {\n throw new TypeError(forbiddenBigIntToNumber(n));\n }\n if (e = Number(e), !Number.isFinite(e)) {\n throw new RangeError(expectedFinite(n, e));\n }\n return e;\n}\n\nfunction toInteger(e, n) {\n return Math.trunc(toNumber(e, n)) || 0;\n}\n\nfunction toStrictInteger(e, n) {\n return requireNumberIsInteger(toNumber(e, n), n);\n}\n\nfunction toPositiveInteger(e, n) {\n return requireNumberIsPositive(toInteger(e, n), n);\n}\n\nfunction createBigNano(e, n) {\n let [t, o] = divModTrunc(n, Qr), r = e + t;\n const i = Math.sign(r);\n return i && i === -Math.sign(o) && (r -= i, o += i * Qr), [ r, o ];\n}\n\nfunction addBigNanos(e, n, t = 1) {\n return createBigNano(e[0] + n[0] * t, e[1] + n[1] * t);\n}\n\nfunction moveBigNano(e, n) {\n return createBigNano(e[0], e[1] + n);\n}\n\nfunction re(e, n) {\n return addBigNanos(n, e, -1);\n}\n\nfunction te(e, n) {\n return compareNumbers(e[0], n[0]) || compareNumbers(e[1], n[1]);\n}\n\nfunction bigNanoOutside(e, n, t) {\n return -1 === te(e, n) || 1 === te(e, t);\n}\n\nfunction bigIntToBigNano(e, n = 1) {\n const t = BigInt(Qr / n);\n return [ Number(e / t), Number(e % t) * n ];\n}\n\nfunction he(e, n = 1) {\n const t = Qr / n, [o, r] = divModTrunc(e, t);\n return [ o, r * n ];\n}\n\nfunction bigNanoToBigInt(e, n = 1) {\n const [t, o] = e, r = Math.floor(o / n), i = Qr / n;\n return BigInt(t) * BigInt(i) + BigInt(r);\n}\n\nfunction oe(e, n = 1, t) {\n const [o, r] = e, [i, a] = divModTrunc(r, n);\n return o * (Qr / n) + (i + (t ? a / n : 0));\n}\n\nfunction divModBigNano(e, n, t = divModFloor) {\n const [o, r] = e, [i, a] = t(r, n);\n return [ o * (Qr / n) + i, a ];\n}\n\nfunction hashIntlFormatParts(e, n) {\n const t = e.formatToParts(n), o = {};\n for (const e of t) {\n o[e.type] = e.value;\n }\n return o;\n}\n\nfunction checkIsoYearMonthInBounds(e) {\n return clampProp(e, \"isoYear\", Li, Ai, 1), e.isoYear === Li ? clampProp(e, \"isoMonth\", 4, 12, 1) : e.isoYear === Ai && clampProp(e, \"isoMonth\", 1, 9, 1), \n e;\n}\n\nfunction checkIsoDateInBounds(e) {\n return checkIsoDateTimeInBounds({\n ...e,\n ...Dt,\n isoHour: 12\n }), e;\n}\n\nfunction checkIsoDateTimeInBounds(e) {\n const n = clampProp(e, \"isoYear\", Li, Ai, 1), t = n === Li ? 1 : n === Ai ? -1 : 0;\n return t && checkEpochNanoInBounds(isoToEpochNano({\n ...e,\n isoDay: e.isoDay + t,\n isoNanosecond: e.isoNanosecond - t\n })), e;\n}\n\nfunction checkEpochNanoInBounds(e) {\n if (!e || bigNanoOutside(e, Ui, qi)) {\n throw new RangeError(Cr);\n }\n return e;\n}\n\nfunction isoTimeFieldsToNano(e) {\n return givenFieldsToBigNano(e, 5, j)[1];\n}\n\nfunction nanoToIsoTimeAndDay(e) {\n const [n, t] = divModFloor(e, Qr);\n return [ nanoToGivenFields(t, 5, j), n ];\n}\n\nfunction epochNanoToSec(e) {\n return epochNanoToSecMod(e)[0];\n}\n\nfunction epochNanoToSecMod(e) {\n return divModBigNano(e, _r);\n}\n\nfunction isoToEpochMilli(e) {\n return isoArgsToEpochMilli(e.isoYear, e.isoMonth, e.isoDay, e.isoHour, e.isoMinute, e.isoSecond, e.isoMillisecond);\n}\n\nfunction isoToEpochNano(e) {\n const n = isoToEpochMilli(e);\n if (void 0 !== n) {\n const [t, o] = divModTrunc(n, Gr);\n return [ t, o * be + (e.isoMicrosecond || 0) * Vr + (e.isoNanosecond || 0) ];\n }\n}\n\nfunction isoToEpochNanoWithOffset(e, n) {\n const [t, o] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) - n);\n return checkEpochNanoInBounds(isoToEpochNano({\n ...e,\n isoDay: e.isoDay + o,\n ...t\n }));\n}\n\nfunction isoArgsToEpochSec(...e) {\n return isoArgsToEpochMilli(...e) / Hr;\n}\n\nfunction isoArgsToEpochMilli(...e) {\n const [n, t] = isoToLegacyDate(...e), o = n.valueOf();\n if (!isNaN(o)) {\n return o - t * Gr;\n }\n}\n\nfunction isoToLegacyDate(e, n = 1, t = 1, o = 0, r = 0, i = 0, a = 0) {\n const s = e === Li ? 1 : e === Ai ? -1 : 0, c = new Date;\n return c.setUTCHours(o, r, i, a), c.setUTCFullYear(e, n - 1, t + s), [ c, s ];\n}\n\nfunction Ie(e, n) {\n let [t, o] = moveBigNano(e, n);\n o < 0 && (o += Qr, t -= 1);\n const [r, i] = divModFloor(o, be), [a, s] = divModFloor(i, Vr);\n return epochMilliToIso(t * Gr + r, a, s);\n}\n\nfunction epochMilliToIso(e, n = 0, t = 0) {\n const o = Math.ceil(Math.max(0, Math.abs(e) - zi) / Gr) * Math.sign(e), r = new Date(e - o * Gr);\n return zipProps(wi, [ r.getUTCFullYear(), r.getUTCMonth() + 1, r.getUTCDate() + o, r.getUTCHours(), r.getUTCMinutes(), r.getUTCSeconds(), r.getUTCMilliseconds(), n, t ]);\n}\n\nfunction computeIsoDateParts(e) {\n return [ e.isoYear, e.isoMonth, e.isoDay ];\n}\n\nfunction computeIsoMonthsInYear() {\n return xi;\n}\n\nfunction computeIsoDaysInMonth(e, n) {\n switch (n) {\n case 2:\n return computeIsoInLeapYear(e) ? 29 : 28;\n\n case 4:\n case 6:\n case 9:\n case 11:\n return 30;\n }\n return 31;\n}\n\nfunction computeIsoDaysInYear(e) {\n return computeIsoInLeapYear(e) ? 366 : 365;\n}\n\nfunction computeIsoInLeapYear(e) {\n return e % 4 == 0 && (e % 100 != 0 || e % 400 == 0);\n}\n\nfunction computeIsoDayOfWeek(e) {\n const [n, t] = isoToLegacyDate(e.isoYear, e.isoMonth, e.isoDay);\n return modFloor(n.getUTCDay() - t, 7) || 7;\n}\n\nfunction computeGregoryEraParts({isoYear: e}) {\n return e < 1 ? [ \"bce\", 1 - e ] : [ \"ce\", e ];\n}\n\nfunction computeJapaneseEraParts(e) {\n const n = isoToEpochMilli(e);\n if (n < $i) {\n return computeGregoryEraParts(e);\n }\n const t = hashIntlFormatParts(La(Ti), n), {era: o, eraYear: r} = parseIntlYear(t, Ti);\n return [ o, r ];\n}\n\nfunction checkIsoDateTimeFields(e) {\n return checkIsoDateFields(e), constrainIsoTimeFields(e, 1), e;\n}\n\nfunction checkIsoDateFields(e) {\n return constrainIsoDateFields(e, 1), e;\n}\n\nfunction isIsoDateFieldsValid(e) {\n return allPropsEqual(Oi, e, constrainIsoDateFields(e));\n}\n\nfunction constrainIsoDateFields(e, n) {\n const {isoYear: t} = e, o = clampProp(e, \"isoMonth\", 1, computeIsoMonthsInYear(), n);\n return {\n isoYear: t,\n isoMonth: o,\n isoDay: clampProp(e, \"isoDay\", 1, computeIsoDaysInMonth(t, o), n)\n };\n}\n\nfunction constrainIsoTimeFields(e, n) {\n return zipProps(j, [ clampProp(e, \"isoHour\", 0, 23, n), clampProp(e, \"isoMinute\", 0, 59, n), clampProp(e, \"isoSecond\", 0, 59, n), clampProp(e, \"isoMillisecond\", 0, 999, n), clampProp(e, \"isoMicrosecond\", 0, 999, n), clampProp(e, \"isoNanosecond\", 0, 999, n) ]);\n}\n\nfunction H(e) {\n return void 0 === e ? 0 : ua(de(e));\n}\n\nfunction wn(e, n = 0) {\n e = normalizeOptions(e);\n const t = la(e), o = fa(e, n);\n return [ ua(e), o, t ];\n}\n\nfunction ve(e) {\n return la(normalizeOptions(e));\n}\n\nfunction _t(e) {\n return e = normalizeOptions(e), sa(e, 9, 6, 1);\n}\n\nfunction refineDiffOptions(e, n, t, o = 9, r = 0, i = 4) {\n n = normalizeOptions(n);\n let a = sa(n, o, r), s = parseRoundingIncInteger(n), c = ha(n, i);\n const u = aa(n, o, r, 1);\n return null == a ? a = Math.max(t, u) : checkLargestSmallestUnit(a, u), s = refineRoundingInc(s, u, 1), \n e && (c = (e => e < 4 ? (e + 2) % 4 : e)(c)), [ a, u, s, c ];\n}\n\nfunction refineRoundingOptions(e, n = 6, t) {\n let o = parseRoundingIncInteger(e = normalizeOptionsOrString(e, Hi));\n const r = ha(e, 7);\n let i = aa(e, n);\n return i = requirePropDefined(Hi, i), o = refineRoundingInc(o, i, void 0, t), [ i, o, r ];\n}\n\nfunction refineDateDisplayOptions(e) {\n return da(normalizeOptions(e));\n}\n\nfunction refineTimeDisplayOptions(e, n) {\n return refineTimeDisplayTuple(normalizeOptions(e), n);\n}\n\nfunction refineTimeDisplayTuple(e, n = 4) {\n const t = refineSubsecDigits(e);\n return [ ha(e, 4), ...refineSmallestUnitAndSubsecDigits(aa(e, n), t) ];\n}\n\nfunction refineSmallestUnitAndSubsecDigits(e, n) {\n return null != e ? [ Xr[e], e < 4 ? 9 - 3 * e : -1 ] : [ void 0 === n ? 1 : 10 ** (9 - n), n ];\n}\n\nfunction parseRoundingIncInteger(e) {\n const n = e[_i];\n return void 0 === n ? 1 : toInteger(n, _i);\n}\n\nfunction refineRoundingInc(e, n, t, o) {\n const r = o ? Qr : Xr[n + 1];\n if (r) {\n const t = Xr[n];\n if (r % ((e = clampEntity(_i, e, 1, r / t - (o ? 0 : 1), 1)) * t)) {\n throw new RangeError(invalidEntity(_i, e));\n }\n } else {\n e = clampEntity(_i, e, 1, t ? 10 ** 9 : 1, 1);\n }\n return e;\n}\n\nfunction refineSubsecDigits(e) {\n let n = e[Ji];\n if (void 0 !== n) {\n if (\"number\" != typeof n) {\n if (\"auto\" === toString(n)) {\n return;\n }\n throw new RangeError(invalidEntity(Ji, n));\n }\n n = clampEntity(Ji, Math.floor(n), 0, 9, 1);\n }\n return n;\n}\n\nfunction normalizeOptions(e) {\n return void 0 === e ? {} : de(e);\n}\n\nfunction normalizeOptionsOrString(e, n) {\n return \"string\" == typeof e ? {\n [n]: e\n } : de(e);\n}\n\nfunction U(e) {\n if (void 0 !== e) {\n if (z(e)) {\n return Object.assign(Object.create(null), e);\n }\n throw new TypeError(hr);\n }\n}\n\nfunction overrideOverflowOptions(e, n) {\n return e && Object.assign(Object.create(null), e, {\n overflow: Xi[n]\n });\n}\n\nfunction refineUnitOption(e, n, t = 9, o = 0, r) {\n let i = n[e];\n if (void 0 === i) {\n return r ? o : void 0;\n }\n if (i = toString(i), \"auto\" === i) {\n return r ? o : null;\n }\n let a = $r[i];\n if (void 0 === a && (a = Ei[i]), void 0 === a) {\n throw new RangeError(invalidChoice(e, i, $r));\n }\n return clampEntity(e, a, o, t, 1, Et), a;\n}\n\nfunction refineChoiceOption(e, n, t, o = 0) {\n const r = t[e];\n if (void 0 === r) {\n return o;\n }\n const i = toString(r), a = n[i];\n if (void 0 === a) {\n throw new RangeError(invalidChoice(e, i, n));\n }\n return a;\n}\n\nfunction checkLargestSmallestUnit(e, n) {\n if (n > e) {\n throw new RangeError(Ar);\n }\n}\n\nfunction _(e) {\n return {\n branding: Oe,\n epochNanoseconds: e\n };\n}\n\nfunction Yn(e, n, t) {\n return {\n branding: Te,\n calendar: t,\n timeZone: n,\n epochNanoseconds: e\n };\n}\n\nfunction ee(e, n = e.calendar) {\n return {\n branding: We,\n calendar: n,\n ...Vn(Yi, e)\n };\n}\n\nfunction v(e, n = e.calendar) {\n return {\n branding: J,\n calendar: n,\n ...Vn(Bi, e)\n };\n}\n\nfunction createPlainYearMonthSlots(e, n = e.calendar) {\n return {\n branding: L,\n calendar: n,\n ...Vn(Bi, e)\n };\n}\n\nfunction createPlainMonthDaySlots(e, n = e.calendar) {\n return {\n branding: q,\n calendar: n,\n ...Vn(Bi, e)\n };\n}\n\nfunction Ge(e) {\n return {\n branding: xe,\n ...Vn(ki, e)\n };\n}\n\nfunction Vt(e) {\n return {\n branding: qt,\n sign: computeDurationSign(e),\n ...Vn(Ni, e)\n };\n}\n\nfunction M(e) {\n return epochNanoToSec(e.epochNanoseconds);\n}\n\nfunction y(e) {\n return divModBigNano(e.epochNanoseconds, be)[0];\n}\n\nfunction N(e) {\n return bigNanoToBigInt(e.epochNanoseconds, Vr);\n}\n\nfunction B(e) {\n return bigNanoToBigInt(e.epochNanoseconds);\n}\n\nfunction extractEpochNano(e) {\n return e.epochNanoseconds;\n}\n\nfunction I(e) {\n return \"string\" == typeof e ? e : m(e.id);\n}\n\nfunction isIdLikeEqual(e, n) {\n return e === n || I(e) === I(n);\n}\n\nfunction Ut(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s] = ((e, n) => {\n const t = n((e = normalizeOptionsOrString(e, Vi))[Ki]);\n let o = ca(e);\n return o = requirePropDefined(Vi, o), [ o, t ];\n })(r, e);\n if (isUniformUnit(Math.max(a, i), s)) {\n return totalDayTimeDuration(o, a);\n }\n if (!s) {\n throw new RangeError(zr);\n }\n const [c, u, l] = createMarkerSystem(n, t, s), f = createMarkerToEpochNano(l), d = createMoveMarker(l), m = createDiffMarkers(l), p = d(u, c, o), h = m(u, c, p, a);\n return isUniformUnit(a, s) ? totalDayTimeDuration(h, a) : ((e, n, t, o, r, i, a) => {\n const s = computeDurationSign(e), [c, u] = clampRelativeDuration(o, bi(t, e), t, s, r, i, a), l = computeEpochNanoFrac(n, c, u);\n return e[F[t]] + l * s;\n })(h, f(p), a, u, c, f, d);\n}\n\nfunction totalDayTimeDuration(e, n) {\n return oe(durationFieldsToBigNano(e), Xr[n], 1);\n}\n\nfunction clampRelativeDuration(e, n, t, o, r, i, a) {\n const s = F[t], c = {\n ...n,\n [s]: n[s] + o\n }, u = a(e, r, n), l = a(e, r, c);\n return [ i(u), i(l) ];\n}\n\nfunction computeEpochNanoFrac(e, n, t) {\n const o = oe(re(n, t));\n if (!o) {\n throw new RangeError(vr);\n }\n return oe(re(n, e)) / o;\n}\n\nfunction ce(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5, 1);\n return _(roundBigNano(e.epochNanoseconds, t, o, r, 1));\n}\n\nfunction Pn(e, n, t) {\n let {epochNanoseconds: o, timeZone: r, calendar: i} = n;\n const [a, s, c] = refineRoundingOptions(t);\n if (0 === a && 1 === s) {\n return n;\n }\n const u = e(r);\n if (6 === a) {\n o = ((e, n, t, o) => {\n const r = fn(t, n), [i, a] = e(r), s = t.epochNanoseconds, c = we(n, i), u = we(n, a);\n if (bigNanoOutside(s, c, u)) {\n throw new RangeError(vr);\n }\n return roundWithMode(computeEpochNanoFrac(s, c, u), o) ? u : c;\n })(computeDayInterval, u, n, c);\n } else {\n const e = u.getOffsetNanosecondsFor(o);\n o = getMatchingInstantFor(u, roundDateTime(Ie(o, e), a, s, c), e, 2, 0, 1);\n }\n return Yn(o, r, i);\n}\n\nfunction dt(e, n) {\n return ee(roundDateTime(e, ...refineRoundingOptions(n)), e.calendar);\n}\n\nfunction Ee(e, n) {\n const [t, o, r] = refineRoundingOptions(n, 5);\n var i;\n return Ge((i = r, roundTimeToNano(e, computeNanoInc(t, o), i)[0]));\n}\n\nfunction dn(e, n) {\n const t = e(n.timeZone), o = fn(n, t), [r, i] = computeDayInterval(o), a = oe(re(we(t, r), we(t, i)), Kr, 1);\n if (a <= 0) {\n throw new RangeError(vr);\n }\n return a;\n}\n\nfunction Cn(e, n) {\n const {timeZone: t, calendar: o} = n, r = ((e, n, t) => we(n, e(fn(t, n))))(computeDayFloor, e(t), n);\n return Yn(r, t, o);\n}\n\nfunction roundDateTime(e, n, t, o) {\n return roundDateTimeToNano(e, computeNanoInc(n, t), o);\n}\n\nfunction roundDateTimeToNano(e, n, t) {\n const [o, r] = roundTimeToNano(e, n, t);\n return checkIsoDateTimeInBounds({\n ...moveByDays(e, r),\n ...o\n });\n}\n\nfunction roundTimeToNano(e, n, t) {\n return nanoToIsoTimeAndDay(roundByInc(isoTimeFieldsToNano(e), n, t));\n}\n\nfunction roundToMinute(e) {\n return roundByInc(e, Jr, 7);\n}\n\nfunction computeNanoInc(e, n) {\n return Xr[e] * n;\n}\n\nfunction computeDayInterval(e) {\n const n = computeDayFloor(e);\n return [ n, moveByDays(n, 1) ];\n}\n\nfunction computeDayFloor(e) {\n return Ci(6, e);\n}\n\nfunction roundDayTimeDurationByInc(e, n, t) {\n const o = Math.min(getMaxDurationUnit(e), 6);\n return nanoToDurationDayTimeFields(roundBigNanoByInc(durationFieldsToBigNano(e, o), n, t), o);\n}\n\nfunction roundRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n if (0 === o && 1 === r) {\n return e;\n }\n const l = isUniformUnit(o, s) ? isZonedEpochSlots(s) && o < 6 && t >= 6 ? nudgeZonedTimeDuration : nudgeDayTimeDuration : nudgeRelativeDuration;\n let [f, d, m] = l(e, n, t, o, r, i, a, s, c, u);\n return m && 7 !== o && (f = ((e, n, t, o, r, i, a, s) => {\n const c = computeDurationSign(e);\n for (let u = o + 1; u <= t; u++) {\n if (7 === u && 7 !== t) {\n continue;\n }\n const o = bi(u, e);\n o[F[u]] += c;\n const l = oe(re(a(s(r, i, o)), n));\n if (l && Math.sign(l) !== c) {\n break;\n }\n e = o;\n }\n return e;\n })(f, d, t, Math.max(6, o), a, s, c, u)), f;\n}\n\nfunction roundBigNano(e, n, t, o, r) {\n if (6 === n) {\n const n = (e => e[0] + e[1] / Qr)(e);\n return [ roundByInc(n, t, o), 0 ];\n }\n return roundBigNanoByInc(e, computeNanoInc(n, t), o, r);\n}\n\nfunction roundBigNanoByInc(e, n, t, o) {\n let [r, i] = e;\n o && i < 0 && (i += Qr, r -= 1);\n const [a, s] = divModFloor(roundByInc(i, n, t), Qr);\n return createBigNano(r + a, s);\n}\n\nfunction roundByInc(e, n, t) {\n return roundWithMode(e / n, t) * n;\n}\n\nfunction roundWithMode(e, n) {\n return ga[n](e);\n}\n\nfunction nudgeDayTimeDuration(e, n, t, o, r, i) {\n const a = computeDurationSign(e), s = durationFieldsToBigNano(e), c = roundBigNano(s, o, r, i), u = re(s, c), l = Math.sign(c[0] - s[0]) === a, f = nanoToDurationDayTimeFields(c, Math.min(t, 6));\n return [ {\n ...e,\n ...f\n }, addBigNanos(n, u), l ];\n}\n\nfunction nudgeZonedTimeDuration(e, n, t, o, r, i, a, s, c, u) {\n const l = computeDurationSign(e), f = oe(durationFieldsToBigNano(e, 5)), d = computeNanoInc(o, r);\n let m = roundByInc(f, d, i);\n const [p, h] = clampRelativeDuration(a, {\n ...e,\n ...Fi\n }, 6, l, s, c, u), g = m - oe(re(p, h));\n let T = 0;\n g && Math.sign(g) !== l ? n = moveBigNano(p, m) : (T += l, m = roundByInc(g, d, i), \n n = moveBigNano(h, m));\n const D = nanoToDurationTimeFields(m);\n return [ {\n ...e,\n ...D,\n days: e.days + T\n }, n, Boolean(T) ];\n}\n\nfunction nudgeRelativeDuration(e, n, t, o, r, i, a, s, c, u) {\n const l = computeDurationSign(e), f = F[o], d = bi(o, e);\n 7 === o && (e = {\n ...e,\n weeks: e.weeks + Math.trunc(e.days / 7)\n });\n const m = divTrunc(e[f], r) * r;\n d[f] = m;\n const [p, h] = clampRelativeDuration(a, d, o, r * l, s, c, u), g = m + computeEpochNanoFrac(n, p, h) * l * r, T = roundByInc(g, r, i), D = Math.sign(T - g) === l;\n return d[f] = T, [ d, D ? h : p, D ];\n}\n\nfunction me(e, n, t, o) {\n const [r, i, a, s] = (e => {\n const n = refineTimeDisplayTuple(e = normalizeOptions(e));\n return [ e.timeZone, ...n ];\n })(o), c = void 0 !== r;\n return ((e, n, t, o, r, i) => {\n t = roundBigNanoByInc(t, r, o, 1);\n const a = n.getOffsetNanosecondsFor(t);\n return formatIsoDateTimeFields(Ie(t, a), i) + (e ? Fe(roundToMinute(a)) : \"Z\");\n })(c, n(c ? e(r) : Ta), t.epochNanoseconds, i, a, s);\n}\n\nfunction In(e, n, t) {\n const [o, r, i, a, s, c] = (e => {\n e = normalizeOptions(e);\n const n = da(e), t = refineSubsecDigits(e), o = pa(e), r = ha(e, 4), i = aa(e, 4);\n return [ n, ma(e), o, r, ...refineSmallestUnitAndSubsecDigits(i, t) ];\n })(t);\n return ((e, n, t, o, r, i, a, s, c, u) => {\n o = roundBigNanoByInc(o, c, s, 1);\n const l = e(t).getOffsetNanosecondsFor(o);\n return formatIsoDateTimeFields(Ie(o, l), u) + Fe(roundToMinute(l), a) + ((e, n) => 1 !== n ? \"[\" + (2 === n ? \"!\" : \"\") + I(e) + \"]\" : \"\")(t, i) + formatCalendar(n, r);\n })(e, n.calendar, n.timeZone, n.epochNanoseconds, o, r, i, a, s, c);\n}\n\nfunction Tt(e, n) {\n const [t, o, r, i] = (e => (e = normalizeOptions(e), [ da(e), ...refineTimeDisplayTuple(e) ]))(n);\n return a = e.calendar, s = t, c = i, formatIsoDateTimeFields(roundDateTimeToNano(e, r, o), c) + formatCalendar(a, s);\n var a, s, c;\n}\n\nfunction yt(e, n) {\n return t = e.calendar, o = e, r = refineDateDisplayOptions(n), formatIsoDateFields(o) + formatCalendar(t, r);\n var t, o, r;\n}\n\nfunction et(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoYearMonthFields, e, refineDateDisplayOptions(n));\n}\n\nfunction W(e, n) {\n return formatDateLikeIso(e.calendar, formatIsoMonthDayFields, e, refineDateDisplayOptions(n));\n}\n\nfunction qe(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n);\n return i = r, formatIsoTimeFields(roundTimeToNano(e, o, t)[0], i);\n var i;\n}\n\nfunction zt(e, n) {\n const [t, o, r] = refineTimeDisplayOptions(n, 3);\n return o > 1 && (e = {\n ...e,\n ...roundDayTimeDurationByInc(e, o, t)\n }), ((e, n) => {\n const {sign: t} = e, o = -1 === t ? negateDurationFields(e) : e, {hours: r, minutes: i} = o, [a, s] = divModBigNano(durationFieldsToBigNano(o, 3), _r, divModTrunc);\n checkDurationTimeUnit(a);\n const c = formatSubsecNano(s, n), u = n >= 0 || !t || c;\n return (t < 0 ? \"-\" : \"\") + \"P\" + formatDurationFragments({\n Y: formatDurationNumber(o.years),\n M: formatDurationNumber(o.months),\n W: formatDurationNumber(o.weeks),\n D: formatDurationNumber(o.days)\n }) + (r || i || a || u ? \"T\" + formatDurationFragments({\n H: formatDurationNumber(r),\n M: formatDurationNumber(i),\n S: formatDurationNumber(a, u) + c\n }) : \"\");\n })(e, r);\n}\n\nfunction formatDateLikeIso(e, n, t, o) {\n const r = I(e), i = o > 1 || 0 === o && r !== X;\n return 1 === o ? r === X ? n(t) : formatIsoDateFields(t) : i ? formatIsoDateFields(t) + formatCalendarId(r, 2 === o) : n(t);\n}\n\nfunction formatDurationFragments(e) {\n const n = [];\n for (const t in e) {\n const o = e[t];\n o && n.push(o, t);\n }\n return n.join(\"\");\n}\n\nfunction formatIsoDateTimeFields(e, n) {\n return formatIsoDateFields(e) + \"T\" + formatIsoTimeFields(e, n);\n}\n\nfunction formatIsoDateFields(e) {\n return formatIsoYearMonthFields(e) + \"-\" + xr(e.isoDay);\n}\n\nfunction formatIsoYearMonthFields(e) {\n const {isoYear: n} = e;\n return (n < 0 || n > 9999 ? getSignStr(n) + padNumber(6, Math.abs(n)) : padNumber(4, n)) + \"-\" + xr(e.isoMonth);\n}\n\nfunction formatIsoMonthDayFields(e) {\n return xr(e.isoMonth) + \"-\" + xr(e.isoDay);\n}\n\nfunction formatIsoTimeFields(e, n) {\n const t = [ xr(e.isoHour), xr(e.isoMinute) ];\n return -1 !== n && t.push(xr(e.isoSecond) + ((e, n, t, o) => formatSubsecNano(e * be + n * Vr + t, o))(e.isoMillisecond, e.isoMicrosecond, e.isoNanosecond, n)), \n t.join(\":\");\n}\n\nfunction Fe(e, n = 0) {\n if (1 === n) {\n return \"\";\n }\n const [t, o] = divModFloor(Math.abs(e), Kr), [r, i] = divModFloor(o, Jr), [a, s] = divModFloor(i, _r);\n return getSignStr(e) + xr(t) + \":\" + xr(r) + (a || s ? \":\" + xr(a) + formatSubsecNano(s) : \"\");\n}\n\nfunction formatCalendar(e, n) {\n if (1 !== n) {\n const t = I(e);\n if (n > 1 || 0 === n && t !== X) {\n return formatCalendarId(t, 2 === n);\n }\n }\n return \"\";\n}\n\nfunction formatCalendarId(e, n) {\n return \"[\" + (n ? \"!\" : \"\") + \"u-ca=\" + e + \"]\";\n}\n\nfunction formatSubsecNano(e, n) {\n let t = padNumber(9, e);\n return t = void 0 === n ? t.replace(Na, \"\") : t.slice(0, n), t ? \".\" + t : \"\";\n}\n\nfunction getSignStr(e) {\n return e < 0 ? \"-\" : \"+\";\n}\n\nfunction formatDurationNumber(e, n) {\n return e || n ? e.toLocaleString(\"fullwide\", {\n useGrouping: 0\n }) : \"\";\n}\n\nfunction _zonedEpochSlotsToIso(e, n) {\n const {epochNanoseconds: t} = e, o = (n.getOffsetNanosecondsFor ? n : n(e.timeZone)).getOffsetNanosecondsFor(t), r = Ie(t, o);\n return {\n calendar: e.calendar,\n ...r,\n offsetNanoseconds: o\n };\n}\n\nfunction mn(e, n) {\n const t = fn(n, e);\n return {\n calendar: n.calendar,\n ...Vn(Yi, t),\n offset: Fe(t.offsetNanoseconds),\n timeZone: n.timeZone\n };\n}\n\nfunction getMatchingInstantFor(e, n, t, o = 0, r = 0, i, a) {\n if (void 0 !== t && 1 === o && (1 === o || a)) {\n return isoToEpochNanoWithOffset(n, t);\n }\n const s = e.getPossibleInstantsFor(n);\n if (void 0 !== t && 3 !== o) {\n const e = ((e, n, t, o) => {\n const r = isoToEpochNano(n);\n o && (t = roundToMinute(t));\n for (const n of e) {\n let e = oe(re(n, r));\n if (o && (e = roundToMinute(e)), e === t) {\n return n;\n }\n }\n })(s, n, t, i);\n if (void 0 !== e) {\n return e;\n }\n if (0 === o) {\n throw new RangeError(kr);\n }\n }\n return a ? isoToEpochNano(n) : we(e, n, r, s);\n}\n\nfunction we(e, n, t = 0, o = e.getPossibleInstantsFor(n)) {\n if (1 === o.length) {\n return o[0];\n }\n if (1 === t) {\n throw new RangeError(Yr);\n }\n if (o.length) {\n return o[3 === t ? 1 : 0];\n }\n const r = isoToEpochNano(n), i = ((e, n) => {\n const t = e.getOffsetNanosecondsFor(moveBigNano(n, -Qr));\n return ne(e.getOffsetNanosecondsFor(moveBigNano(n, Qr)) - t);\n })(e, r), a = i * (2 === t ? -1 : 1);\n return (o = e.getPossibleInstantsFor(Ie(r, a)))[2 === t ? 0 : o.length - 1];\n}\n\nfunction ae(e) {\n if (Math.abs(e) >= Qr) {\n throw new RangeError(wr);\n }\n return e;\n}\n\nfunction ne(e) {\n if (e > Qr) {\n throw new RangeError(Br);\n }\n return e;\n}\n\nfunction se(e, n, t) {\n return _(checkEpochNanoInBounds(addBigNanos(n.epochNanoseconds, (e => {\n if (durationHasDateParts(e)) {\n throw new RangeError(qr);\n }\n return durationFieldsToBigNano(e, 5);\n })(e ? negateDurationFields(t) : t))));\n}\n\nfunction hn(e, n, t, o, r, i = Object.create(null)) {\n const a = n(o.timeZone), s = e(o.calendar);\n return {\n ...o,\n ...moveZonedEpochs(a, s, o, t ? negateDurationFields(r) : r, i)\n };\n}\n\nfunction ct(e, n, t, o, r = Object.create(null)) {\n const {calendar: i} = t;\n return ee(moveDateTime(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction bt(e, n, t, o, r) {\n const {calendar: i} = t;\n return v(moveDate(e(i), t, n ? negateDurationFields(o) : o, r), i);\n}\n\nfunction Qe(e, n, t, o, r = Object.create(null)) {\n const i = t.calendar, a = e(i);\n let s = moveToDayOfMonthUnsafe(a, t);\n n && (o = xt(o)), o.sign < 0 && (s = a.dateAdd(s, {\n ...Si,\n months: 1\n }), s = moveByDays(s, -1));\n const c = a.dateAdd(s, o, r);\n return createPlainYearMonthSlots(moveToDayOfMonthUnsafe(a, c), i);\n}\n\nfunction Ye(e, n, t) {\n return Ge(moveTime(n, e ? negateDurationFields(t) : t)[0]);\n}\n\nfunction moveZonedEpochs(e, n, t, o, r) {\n const i = durationFieldsToBigNano(o, 5);\n let a = t.epochNanoseconds;\n if (durationHasDateParts(o)) {\n const s = fn(t, e);\n a = addBigNanos(we(e, {\n ...moveDate(n, s, {\n ...o,\n ...Fi\n }, r),\n ...Vn(j, s)\n }), i);\n } else {\n a = addBigNanos(a, i), H(r);\n }\n return {\n epochNanoseconds: checkEpochNanoInBounds(a)\n };\n}\n\nfunction moveDateTime(e, n, t, o) {\n const [r, i] = moveTime(n, t);\n return checkIsoDateTimeInBounds({\n ...moveDate(e, n, {\n ...t,\n ...Fi,\n days: t.days + i\n }, o),\n ...r\n });\n}\n\nfunction moveDate(e, n, t, o) {\n if (t.years || t.months || t.weeks) {\n return e.dateAdd(n, t, o);\n }\n H(o);\n const r = t.days + durationFieldsToBigNano(t, 5)[0];\n return r ? checkIsoDateInBounds(moveByDays(n, r)) : n;\n}\n\nfunction moveToDayOfMonthUnsafe(e, n, t = 1) {\n return moveByDays(n, t - e.day(n));\n}\n\nfunction moveTime(e, n) {\n const [t, o] = durationFieldsToBigNano(n, 5), [r, i] = nanoToIsoTimeAndDay(isoTimeFieldsToNano(e) + o);\n return [ r, t + i ];\n}\n\nfunction moveByDays(e, n) {\n return n ? {\n ...e,\n ...epochMilliToIso(isoToEpochMilli(e) + n * Gr)\n } : e;\n}\n\nfunction createMarkerSystem(e, n, t) {\n const o = e(t.calendar);\n return isZonedEpochSlots(t) ? [ t, o, n(t.timeZone) ] : [ {\n ...t,\n ...Dt\n }, o ];\n}\n\nfunction createMarkerToEpochNano(e) {\n return e ? extractEpochNano : isoToEpochNano;\n}\n\nfunction createMoveMarker(e) {\n return e ? E(moveZonedEpochs, e) : moveDateTime;\n}\n\nfunction createDiffMarkers(e) {\n return e ? E(diffZonedEpochsExact, e) : diffDateTimesExact;\n}\n\nfunction isZonedEpochSlots(e) {\n return e && e.epochNanoseconds;\n}\n\nfunction isUniformUnit(e, n) {\n return e <= 6 - (isZonedEpochSlots(n) ? 1 : 0);\n}\n\nfunction Wt(e, n, t, o, r, i, a) {\n const s = e(normalizeOptions(a).relativeTo), c = Math.max(getMaxDurationUnit(r), getMaxDurationUnit(i));\n if (isUniformUnit(c, s)) {\n return Vt(checkDurationUnits(((e, n, t, o) => {\n const r = addBigNanos(durationFieldsToBigNano(e), durationFieldsToBigNano(n), o ? -1 : 1);\n if (!Number.isFinite(r[0])) {\n throw new RangeError(Cr);\n }\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(r, t)\n };\n })(r, i, c, o)));\n }\n if (!s) {\n throw new RangeError(zr);\n }\n o && (i = negateDurationFields(i));\n const [u, l, f] = createMarkerSystem(n, t, s), d = createMoveMarker(f), m = createDiffMarkers(f), p = d(l, u, r);\n return Vt(m(l, u, d(l, p, i), c));\n}\n\nfunction Gt(e, n, t, o, r) {\n const i = getMaxDurationUnit(o), [a, s, c, u, l] = ((e, n, t) => {\n e = normalizeOptionsOrString(e, Hi);\n let o = sa(e);\n const r = t(e[Ki]);\n let i = parseRoundingIncInteger(e);\n const a = ha(e, 7);\n let s = aa(e);\n if (void 0 === o && void 0 === s) {\n throw new RangeError(Ur);\n }\n return null == s && (s = 0), null == o && (o = Math.max(s, n)), checkLargestSmallestUnit(o, s), \n i = refineRoundingInc(i, s, 1), [ o, s, i, a, r ];\n })(r, i, e), f = Math.max(i, a);\n if (!isZonedEpochSlots(l) && f <= 6) {\n return Vt(checkDurationUnits(((e, n, t, o, r) => {\n const i = roundBigNano(durationFieldsToBigNano(e), t, o, r);\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(i, n)\n };\n })(o, a, s, c, u)));\n }\n if (!l) {\n throw new RangeError(zr);\n }\n const [d, m, p] = createMarkerSystem(n, t, l), h = createMarkerToEpochNano(p), g = createMoveMarker(p), T = createDiffMarkers(p), D = g(m, d, o);\n let I = T(m, d, D, a);\n const M = o.sign, N = computeDurationSign(I);\n if (M && N && M !== N) {\n throw new RangeError(vr);\n }\n return N && (I = roundRelativeDuration(I, h(D), a, s, c, u, m, d, h, g)), Vt(I);\n}\n\nfunction Rt(e) {\n return -1 === e.sign ? xt(e) : e;\n}\n\nfunction xt(e) {\n return Vt(negateDurationFields(e));\n}\n\nfunction negateDurationFields(e) {\n const n = {};\n for (const t of F) {\n n[t] = -1 * e[t] || 0;\n }\n return n;\n}\n\nfunction Jt(e) {\n return !e.sign;\n}\n\nfunction computeDurationSign(e, n = F) {\n let t = 0;\n for (const o of n) {\n const n = Math.sign(e[o]);\n if (n) {\n if (t && t !== n) {\n throw new RangeError(Rr);\n }\n t = n;\n }\n }\n return t;\n}\n\nfunction checkDurationUnits(e) {\n for (const n of vi) {\n clampEntity(n, e[n], -ya, ya, 1);\n }\n return checkDurationTimeUnit(oe(durationFieldsToBigNano(e), _r)), e;\n}\n\nfunction checkDurationTimeUnit(e) {\n if (!Number.isSafeInteger(e)) {\n throw new RangeError(Zr);\n }\n}\n\nfunction durationFieldsToBigNano(e, n = 6) {\n return givenFieldsToBigNano(e, n, F);\n}\n\nfunction nanoToDurationDayTimeFields(e, n = 6) {\n const [t, o] = e, r = nanoToGivenFields(o, n, F);\n if (r[F[n]] += t * (Qr / Xr[n]), !Number.isFinite(r[F[n]])) {\n throw new RangeError(Cr);\n }\n return r;\n}\n\nfunction nanoToDurationTimeFields(e, n = 5) {\n return nanoToGivenFields(e, n, F);\n}\n\nfunction durationHasDateParts(e) {\n return Boolean(computeDurationSign(e, Pi));\n}\n\nfunction getMaxDurationUnit(e) {\n let n = 9;\n for (;n > 0 && !e[F[n]]; n--) {}\n return n;\n}\n\nfunction createSplitTuple(e, n) {\n return [ e, n ];\n}\n\nfunction computePeriod(e) {\n const n = Math.floor(e / Da) * Da;\n return [ n, n + Da ];\n}\n\nfunction pe(e) {\n const n = parseDateTimeLike(e = toStringViaPrimitive(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n let t;\n if (n.m) {\n t = 0;\n } else {\n if (!n.offset) {\n throw new RangeError(failedParse(e));\n }\n t = parseOffsetNano(n.offset);\n }\n return n.timeZone && parseOffsetNanoMaybe(n.timeZone, 1), _(isoToEpochNanoWithOffset(checkIsoDateTimeFields(n), t));\n}\n\nfunction Xt(e) {\n const n = parseDateTimeLike(m(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n if (n.timeZone) {\n return finalizeZonedDateTime(n, n.offset ? parseOffsetNano(n.offset) : void 0);\n }\n if (n.m) {\n throw new RangeError(failedParse(e));\n }\n return finalizeDate(n);\n}\n\nfunction Mn(e, n) {\n const t = parseDateTimeLike(m(e));\n if (!t || !t.timeZone) {\n throw new RangeError(failedParse(e));\n }\n const {offset: o} = t, r = o ? parseOffsetNano(o) : void 0, [, i, a] = wn(n);\n return finalizeZonedDateTime(t, r, i, a);\n}\n\nfunction parseOffsetNano(e) {\n const n = parseOffsetNanoMaybe(e);\n if (void 0 === n) {\n throw new RangeError(failedParse(e));\n }\n return n;\n}\n\nfunction Ct(e) {\n const n = parseDateTimeLike(m(e));\n if (!n || n.m) {\n throw new RangeError(failedParse(e));\n }\n return ee(finalizeDateTime(n));\n}\n\nfunction At(e) {\n const n = parseDateTimeLike(m(e));\n if (!n || n.m) {\n throw new RangeError(failedParse(e));\n }\n return v(n.p ? finalizeDateTime(n) : finalizeDate(n));\n}\n\nfunction ot(e, n) {\n const t = parseYearMonthOnly(m(n));\n if (t) {\n return requireIsoCalendar(t), createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields(t)));\n }\n const o = At(n);\n return createPlainYearMonthSlots(moveToDayOfMonthUnsafe(e(o.calendar), o));\n}\n\nfunction requireIsoCalendar(e) {\n if (e.calendar !== X) {\n throw new RangeError(invalidSubstring(e.calendar));\n }\n}\n\nfunction Q(e, n) {\n const t = parseMonthDayOnly(m(n));\n if (t) {\n return requireIsoCalendar(t), createPlainMonthDaySlots(checkIsoDateFields(t));\n }\n const o = At(n), {calendar: r} = o, i = e(r), [a, s, c] = i.h(o), [u, l] = i.I(a, s), [f, d] = i.N(u, l, c);\n return createPlainMonthDaySlots(checkIsoDateInBounds(i.P(f, d, c)), r);\n}\n\nfunction ze(e) {\n let n, t = (e => {\n const n = Ca.exec(e);\n return n ? (organizeAnnotationParts(n[10]), organizeTimeParts(n)) : void 0;\n })(m(e));\n if (!t) {\n if (t = parseDateTimeLike(e), !t) {\n throw new RangeError(failedParse(e));\n }\n if (!t.p) {\n throw new RangeError(failedParse(e));\n }\n if (t.m) {\n throw new RangeError(invalidSubstring(\"Z\"));\n }\n requireIsoCalendar(t);\n }\n if ((n = parseYearMonthOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n if ((n = parseMonthDayOnly(e)) && isIsoDateFieldsValid(n)) {\n throw new RangeError(failedParse(e));\n }\n return Ge(constrainIsoTimeFields(t, 1));\n}\n\nfunction Kt(e) {\n const n = (e => {\n const n = za.exec(e);\n return n ? (e => {\n function parseUnit(e, r, i) {\n let a = 0, s = 0;\n if (i && ([a, o] = divModFloor(o, Xr[i])), void 0 !== e) {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n s = (e => {\n const n = parseInt(e);\n if (!Number.isFinite(n)) {\n throw new RangeError(invalidSubstring(e));\n }\n return n;\n })(e), n = 1, r && (o = parseSubsecNano(r) * (Xr[i] / _r), t = 1);\n }\n return a + s;\n }\n let n = 0, t = 0, o = 0, r = {\n ...zipProps(F, [ parseUnit(e[2]), parseUnit(e[3]), parseUnit(e[4]), parseUnit(e[5]), parseUnit(e[6], e[7], 5), parseUnit(e[8], e[9], 4), parseUnit(e[10], e[11], 3) ]),\n ...nanoToGivenFields(o, 2, F)\n };\n if (!n) {\n throw new RangeError(noValidFields(F));\n }\n return parseSign(e[1]) < 0 && (r = negateDurationFields(r)), r;\n })(n) : void 0;\n })(m(e));\n if (!n) {\n throw new RangeError(failedParse(e));\n }\n return Vt(checkDurationUnits(n));\n}\n\nfunction sn(e) {\n const n = parseDateTimeLike(e) || parseYearMonthOnly(e) || parseMonthDayOnly(e);\n return n ? n.calendar : e;\n}\n\nfunction Ne(e) {\n const n = parseDateTimeLike(e);\n return n && (n.timeZone || n.m && Ta || n.offset) || e;\n}\n\nfunction finalizeZonedDateTime(e, n, t = 0, o = 0) {\n const r = ye(e.timeZone), i = ie(r);\n return Yn(getMatchingInstantFor(i, checkIsoDateTimeFields(e), n, t, o, !i.v, e.m), r, an(e.calendar));\n}\n\nfunction finalizeDateTime(e) {\n return resolveSlotsCalendar(checkIsoDateTimeInBounds(checkIsoDateTimeFields(e)));\n}\n\nfunction finalizeDate(e) {\n return resolveSlotsCalendar(checkIsoDateInBounds(checkIsoDateFields(e)));\n}\n\nfunction resolveSlotsCalendar(e) {\n return {\n ...e,\n calendar: an(e.calendar)\n };\n}\n\nfunction parseDateTimeLike(e) {\n const n = Ya.exec(e);\n return n ? (e => {\n const n = e[10], t = \"Z\" === (n || \"\").toUpperCase();\n return {\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: parseInt(e[5]),\n ...organizeTimeParts(e.slice(5)),\n ...organizeAnnotationParts(e[16]),\n p: Boolean(e[6]),\n m: t,\n offset: t ? void 0 : n\n };\n })(n) : void 0;\n}\n\nfunction parseYearMonthOnly(e) {\n const n = Ba.exec(e);\n return n ? (e => ({\n isoYear: organizeIsoYearParts(e),\n isoMonth: parseInt(e[4]),\n isoDay: 1,\n ...organizeAnnotationParts(e[5])\n }))(n) : void 0;\n}\n\nfunction parseMonthDayOnly(e) {\n const n = ka.exec(e);\n return n ? (e => ({\n isoYear: ji,\n isoMonth: parseInt(e[1]),\n isoDay: parseInt(e[2]),\n ...organizeAnnotationParts(e[3])\n }))(n) : void 0;\n}\n\nfunction parseOffsetNanoMaybe(e, n) {\n const t = Za.exec(e);\n return t ? ((e, n) => {\n const t = e[4] || e[5];\n if (n && t) {\n throw new RangeError(invalidSubstring(t));\n }\n return ae((parseInt0(e[2]) * Kr + parseInt0(e[3]) * Jr + parseInt0(e[4]) * _r + parseSubsecNano(e[5] || \"\")) * parseSign(e[1]));\n })(t, n) : void 0;\n}\n\nfunction organizeIsoYearParts(e) {\n const n = parseSign(e[1]), t = parseInt(e[2] || e[3]);\n if (n < 0 && !t) {\n throw new RangeError(invalidSubstring(-0));\n }\n return n * t;\n}\n\nfunction organizeTimeParts(e) {\n const n = parseInt0(e[3]);\n return {\n ...nanoToIsoTimeAndDay(parseSubsecNano(e[4] || \"\"))[0],\n isoHour: parseInt0(e[1]),\n isoMinute: parseInt0(e[2]),\n isoSecond: 60 === n ? 59 : n\n };\n}\n\nfunction organizeAnnotationParts(e) {\n let n, t;\n const o = [];\n if (e.replace(Ra, ((e, r, i) => {\n const a = Boolean(r), [s, c] = i.split(\"=\").reverse();\n if (c) {\n if (\"u-ca\" === c) {\n o.push(s), n || (n = a);\n } else if (a || /[A-Z]/.test(c)) {\n throw new RangeError(invalidSubstring(e));\n }\n } else {\n if (t) {\n throw new RangeError(invalidSubstring(e));\n }\n t = s;\n }\n return \"\";\n })), o.length > 1 && n) {\n throw new RangeError(invalidSubstring(e));\n }\n return {\n timeZone: t,\n calendar: o[0] || X\n };\n}\n\nfunction parseSubsecNano(e) {\n return parseInt(e.padEnd(9, \"0\"));\n}\n\nfunction createRegExp(e) {\n return new RegExp(`^${e}$`, \"i\");\n}\n\nfunction parseSign(e) {\n return e && \"+\" !== e ? -1 : 1;\n}\n\nfunction parseInt0(e) {\n return void 0 === e ? 0 : parseInt(e);\n}\n\nfunction Me(e) {\n return ye(m(e));\n}\n\nfunction ye(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? Fe(n) : n ? (e => {\n if (Ua.test(e)) {\n throw new RangeError(br);\n }\n return e.toLowerCase().split(\"/\").map(((e, n) => (e.length <= 3 || /\\d/.test(e)) && !/etc|yap/.test(e) ? e.toUpperCase() : e.replace(/baja|dumont|[a-z]+/g, ((e, t) => e.length <= 2 && !n || \"in\" === e || \"chat\" === e ? e.toUpperCase() : e.length > 2 || !t ? capitalize(e).replace(/island|noronha|murdo|rivadavia|urville/, capitalize) : e)))).join(\"/\");\n })(e) : Ta;\n}\n\nfunction getTimeZoneAtomic(e) {\n const n = getTimeZoneEssence(e);\n return \"number\" == typeof n ? n : n ? n.resolvedOptions().timeZone : Ta;\n}\n\nfunction getTimeZoneEssence(e) {\n const n = parseOffsetNanoMaybe(e = e.toUpperCase(), 1);\n return void 0 !== n ? n : e !== Ta ? qa(e) : void 0;\n}\n\nfunction Ze(e, n) {\n return te(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction yn(e, n) {\n return te(e.epochNanoseconds, n.epochNanoseconds);\n}\n\nfunction $t(e, n, t, o, r, i) {\n const a = e(normalizeOptions(i).relativeTo), s = Math.max(getMaxDurationUnit(o), getMaxDurationUnit(r));\n if (allPropsEqual(F, o, r)) {\n return 0;\n }\n if (isUniformUnit(s, a)) {\n return te(durationFieldsToBigNano(o), durationFieldsToBigNano(r));\n }\n if (!a) {\n throw new RangeError(zr);\n }\n const [c, u, l] = createMarkerSystem(n, t, a), f = createMarkerToEpochNano(l), d = createMoveMarker(l);\n return te(f(d(u, c, o)), f(d(u, c, r)));\n}\n\nfunction gt(e, n) {\n return rt(e, n) || He(e, n);\n}\n\nfunction rt(e, n) {\n return compareNumbers(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction He(e, n) {\n return compareNumbers(isoTimeFieldsToNano(e), isoTimeFieldsToNano(n));\n}\n\nfunction ue(e, n) {\n return !Ze(e, n);\n}\n\nfunction gn(e, n) {\n return !yn(e, n) && !!je(e.timeZone, n.timeZone) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction ft(e, n) {\n return !gt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction It(e, n) {\n return !rt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction $e(e, n) {\n return !rt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction x(e, n) {\n return !rt(e, n) && isIdLikeEqual(e.calendar, n.calendar);\n}\n\nfunction Ve(e, n) {\n return !He(e, n);\n}\n\nfunction je(e, n) {\n if (e === n) {\n return 1;\n }\n const t = I(e), o = I(n);\n if (t === o) {\n return 1;\n }\n try {\n return getTimeZoneAtomic(t) === getTimeZoneAtomic(o);\n } catch (e) {}\n}\n\nfunction le(e, n, t, o) {\n const r = refineDiffOptions(e, U(o), 3, 5), i = diffEpochNanos(n.epochNanoseconds, t.epochNanoseconds, ...r);\n return Vt(e ? negateDurationFields(i) : i);\n}\n\nfunction Dn(e, n, t, o, r, i) {\n const a = getCommonCalendarSlot(o.calendar, r.calendar), s = U(i), [c, u, l, f] = refineDiffOptions(t, s, 5), d = o.epochNanoseconds, m = r.epochNanoseconds, p = te(m, d);\n let h;\n if (p) {\n if (c < 6) {\n h = diffEpochNanos(d, m, c, u, l, f);\n } else {\n const t = n(((e, n) => {\n if (!je(e, n)) {\n throw new RangeError(Fr);\n }\n return e;\n })(o.timeZone, r.timeZone)), i = e(a);\n h = diffZonedEpochsBig(i, t, o, r, p, c, s), h = roundRelativeDuration(h, m, c, u, l, f, i, o, extractEpochNano, E(moveZonedEpochs, t));\n }\n } else {\n h = Si;\n }\n return Vt(t ? negateDurationFields(h) : h);\n}\n\nfunction ut(e, n, t, o, r) {\n const i = getCommonCalendarSlot(t.calendar, o.calendar), a = U(r), [s, c, u, l] = refineDiffOptions(n, a, 6), f = isoToEpochNano(t), d = isoToEpochNano(o), m = te(d, f);\n let p;\n if (m) {\n if (s <= 6) {\n p = diffEpochNanos(f, d, s, c, u, l);\n } else {\n const n = e(i);\n p = diffDateTimesBig(n, t, o, m, s, a), p = roundRelativeDuration(p, d, s, c, u, l, n, t, isoToEpochNano, moveDateTime);\n }\n } else {\n p = Si;\n }\n return Vt(n ? negateDurationFields(p) : p);\n}\n\nfunction Ft(e, n, t, o, r) {\n const i = getCommonCalendarSlot(t.calendar, o.calendar), a = U(r);\n return diffDateLike(n, (() => e(i)), t, o, ...refineDiffOptions(n, a, 6, 9, 6), a);\n}\n\nfunction Xe(e, n, t, o, r) {\n const i = getCommonCalendarSlot(t.calendar, o.calendar), a = U(r), s = refineDiffOptions(n, a, 9, 9, 8), c = e(i);\n return diffDateLike(n, (() => c), moveToDayOfMonthUnsafe(c, t), moveToDayOfMonthUnsafe(c, o), ...s, a);\n}\n\nfunction diffDateLike(e, n, t, o, r, i, a, s, c) {\n const u = isoToEpochNano(t), l = isoToEpochNano(o);\n let f;\n if (te(l, u)) {\n if (6 === r) {\n f = diffEpochNanos(u, l, r, i, a, s);\n } else {\n const e = n();\n f = e.dateUntil(t, o, r, c), 6 === i && 1 === a || (f = roundRelativeDuration(f, l, r, i, a, s, e, t, isoToEpochNano, moveDate));\n }\n } else {\n f = Si;\n }\n return Vt(e ? negateDurationFields(f) : f);\n}\n\nfunction Ae(e, n, t, o) {\n const r = U(o), [i, a, s, c] = refineDiffOptions(e, r, 5, 5), u = roundByInc(diffTimes(n, t), computeNanoInc(a, s), c), l = {\n ...Si,\n ...nanoToDurationTimeFields(u, i)\n };\n return Vt(e ? negateDurationFields(l) : l);\n}\n\nfunction diffZonedEpochsExact(e, n, t, o, r, i) {\n const a = te(o.epochNanoseconds, t.epochNanoseconds);\n return a ? r < 6 ? diffEpochNanosExact(t.epochNanoseconds, o.epochNanoseconds, r) : diffZonedEpochsBig(n, e, t, o, a, r, i) : Si;\n}\n\nfunction diffDateTimesExact(e, n, t, o, r) {\n const i = isoToEpochNano(n), a = isoToEpochNano(t), s = te(a, i);\n return s ? o <= 6 ? diffEpochNanosExact(i, a, o) : diffDateTimesBig(e, n, t, s, o, r) : Si;\n}\n\nfunction diffZonedEpochsBig(e, n, t, o, r, i, a) {\n const [s, c, u] = ((e, n, t, o) => {\n function updateMid() {\n return l = {\n ...moveByDays(a, c++ * -o),\n ...i\n }, f = we(e, l), te(s, f) === -o;\n }\n const r = fn(n, e), i = Vn(j, r), a = fn(t, e), s = t.epochNanoseconds;\n let c = 0;\n const u = diffTimes(r, a);\n let l, f;\n if (Math.sign(u) === -o && c++, updateMid() && (-1 === o || updateMid())) {\n throw new RangeError(vr);\n }\n const d = oe(re(f, s));\n return [ r, l, d ];\n })(n, t, o, r);\n var l, f;\n return {\n ...6 === i ? (l = s, f = c, {\n ...Si,\n days: diffDays(l, f)\n }) : e.dateUntil(s, c, i, a),\n ...nanoToDurationTimeFields(u)\n };\n}\n\nfunction diffDateTimesBig(e, n, t, o, r, i) {\n const [a, s, c] = ((e, n, t) => {\n let o = n, r = diffTimes(e, n);\n return Math.sign(r) === -t && (o = moveByDays(n, -t), r += Qr * t), [ e, o, r ];\n })(n, t, o);\n return {\n ...e.dateUntil(a, s, r, i),\n ...nanoToDurationTimeFields(c)\n };\n}\n\nfunction diffEpochNanos(e, n, t, o, r, i) {\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(roundBigNano(re(e, n), o, r, i), t)\n };\n}\n\nfunction diffEpochNanosExact(e, n, t) {\n return {\n ...Si,\n ...nanoToDurationDayTimeFields(re(e, n), t)\n };\n}\n\nfunction diffDays(e, n) {\n return diffEpochMilliByDay(isoToEpochMilli(e), isoToEpochMilli(n));\n}\n\nfunction diffEpochMilliByDay(e, n) {\n return Math.trunc((n - e) / Gr);\n}\n\nfunction diffTimes(e, n) {\n return isoTimeFieldsToNano(n) - isoTimeFieldsToNano(e);\n}\n\nfunction getCommonCalendarSlot(e, n) {\n if (!isIdLikeEqual(e, n)) {\n throw new RangeError(Er);\n }\n return e;\n}\n\nfunction createIntlCalendar(e) {\n function epochMilliToIntlFields(e) {\n return ((e, n) => ({\n ...parseIntlYear(e, n),\n F: e.month,\n day: parseInt(e.day)\n }))(hashIntlFormatParts(n, e), t);\n }\n const n = La(e), t = computeCalendarIdBase(e);\n return {\n id: e,\n O: createIntlFieldCache(epochMilliToIntlFields),\n B: createIntlYearDataCache(epochMilliToIntlFields)\n };\n}\n\nfunction createIntlFieldCache(e) {\n return Jn((n => {\n const t = isoToEpochMilli(n);\n return e(t);\n }), WeakMap);\n}\n\nfunction createIntlYearDataCache(e) {\n const n = e(0).year - Wi;\n return Jn((t => {\n let o, r = isoArgsToEpochMilli(t - n);\n const i = [], a = [];\n do {\n r += 400 * Gr;\n } while ((o = e(r)).year <= t);\n do {\n r += (1 - o.day) * Gr, o.year === t && (i.push(r), a.push(o.F)), r -= Gr;\n } while ((o = e(r)).year >= t);\n return {\n k: i.reverse(),\n C: Wr(a.reverse())\n };\n }));\n}\n\nfunction parseIntlYear(e, n) {\n let t, o, r = parseIntlPartsYear(e);\n if (e.era) {\n const i = Di[n];\n void 0 !== i && (t = \"islamic\" === n ? \"ah\" : e.era.normalize(\"NFD\").toLowerCase().replace(/[^a-z0-9]/g, \"\"), \n \"bc\" === t || \"b\" === t ? t = \"bce\" : \"ad\" !== t && \"a\" !== t || (t = \"ce\"), o = r, \n r = eraYearToYear(o, i[t] || 0));\n }\n return {\n era: t,\n eraYear: o,\n year: r\n };\n}\n\nfunction parseIntlPartsYear(e) {\n return parseInt(e.relatedYear || e.year);\n}\n\nfunction computeIntlDateParts(e) {\n const {year: n, F: t, day: o} = this.O(e), {C: r} = this.B(n);\n return [ n, r[t] + 1, o ];\n}\n\nfunction computeIntlEpochMilli(e, n = 1, t = 1) {\n return this.B(e).k[n - 1] + (t - 1) * Gr;\n}\n\nfunction computeIntlLeapMonth(e) {\n const n = queryMonthStrings(this, e), t = queryMonthStrings(this, e - 1), o = n.length;\n if (o > t.length) {\n const e = getCalendarLeapMonthMeta(this);\n if (e < 0) {\n return -e;\n }\n for (let e = 0; e < o; e++) {\n if (n[e] !== t[e]) {\n return e + 1;\n }\n }\n }\n}\n\nfunction computeIntlDaysInYear(e) {\n return diffEpochMilliByDay(computeIntlEpochMilli.call(this, e), computeIntlEpochMilli.call(this, e + 1));\n}\n\nfunction computeIntlDaysInMonth(e, n) {\n const {k: t} = this.B(e);\n let o = n + 1, r = t;\n return o > t.length && (o = 1, r = this.B(e + 1).k), diffEpochMilliByDay(t[n - 1], r[o - 1]);\n}\n\nfunction computeIntlMonthsInYear(e) {\n return this.B(e).k.length;\n}\n\nfunction queryMonthStrings(e, n) {\n return Object.keys(e.B(n).C);\n}\n\nfunction rn(e) {\n return an(m(e));\n}\n\nfunction an(e) {\n if ((e = e.toLowerCase()) !== X && e !== gi && computeCalendarIdBase(e) !== computeCalendarIdBase(La(e).resolvedOptions().calendar)) {\n throw new RangeError(invalidCalendar(e));\n }\n return e;\n}\n\nfunction computeCalendarIdBase(e) {\n return \"islamicc\" === e && (e = \"islamic\"), e.split(\"-\")[0];\n}\n\nfunction computeNativeWeekOfYear(e) {\n return this.R(e)[0];\n}\n\nfunction computeNativeYearOfWeek(e) {\n return this.R(e)[1];\n}\n\nfunction computeNativeDayOfYear(e) {\n const [n] = this.h(e);\n return diffEpochMilliByDay(this.q(n), isoToEpochMilli(e)) + 1;\n}\n\nfunction parseMonthCode(e) {\n const n = Wa.exec(e);\n if (!n) {\n throw new RangeError(invalidMonthCode(e));\n }\n return [ parseInt(n[1]), Boolean(n[2]) ];\n}\n\nfunction monthCodeNumberToMonth(e, n, t) {\n return e + (n || t && e >= t ? 1 : 0);\n}\n\nfunction monthToMonthCodeNumber(e, n) {\n return e - (n && e >= n ? 1 : 0);\n}\n\nfunction eraYearToYear(e, n) {\n return (n + e) * (Math.sign(n) || 1) || 0;\n}\n\nfunction getCalendarEraOrigins(e) {\n return Di[getCalendarIdBase(e)];\n}\n\nfunction getCalendarLeapMonthMeta(e) {\n return Ii[getCalendarIdBase(e)];\n}\n\nfunction getCalendarIdBase(e) {\n return computeCalendarIdBase(e.id || X);\n}\n\nfunction Qt(e, n, t, o) {\n const r = refineCalendarFields(t, o, en, [], ri);\n if (void 0 !== r.timeZone) {\n const o = t.dateFromFields(r), i = refineTimeBag(r), a = e(r.timeZone);\n return {\n epochNanoseconds: getMatchingInstantFor(n(a), {\n ...o,\n ...i\n }, void 0 !== r.offset ? parseOffsetNano(r.offset) : void 0),\n timeZone: a\n };\n }\n return {\n ...t.dateFromFields(r),\n ...Dt\n };\n}\n\nfunction jn(e, n, t, o, r, i) {\n const a = refineCalendarFields(t, r, en, ti, ri), s = e(a.timeZone), [c, u, l] = wn(i), f = t.dateFromFields(a, overrideOverflowOptions(i, c)), d = refineTimeBag(a, c);\n return Yn(getMatchingInstantFor(n(s), {\n ...f,\n ...d\n }, void 0 !== a.offset ? parseOffsetNano(a.offset) : void 0, u, l), s, o);\n}\n\nfunction Pt(e, n, t) {\n const o = refineCalendarFields(e, n, en, [], w), r = H(t);\n return ee(checkIsoDateTimeInBounds({\n ...e.dateFromFields(o, overrideOverflowOptions(t, r)),\n ...refineTimeBag(o, r)\n }));\n}\n\nfunction Yt(e, n, t, o = []) {\n const r = refineCalendarFields(e, n, en, o);\n return e.dateFromFields(r, t);\n}\n\nfunction nt(e, n, t, o) {\n const r = refineCalendarFields(e, n, fi, o);\n return e.yearMonthFromFields(r, t);\n}\n\nfunction K(e, n, t, o, r = []) {\n const i = refineCalendarFields(e, t, en, r);\n return n && void 0 !== i.month && void 0 === i.monthCode && void 0 === i.year && (i.year = ji), \n e.monthDayFromFields(i, o);\n}\n\nfunction Ue(e, n) {\n const t = H(n);\n return Ge(refineTimeBag(refineFields(e, ei, [], 1), t));\n}\n\nfunction Ht(e) {\n const n = refineFields(e, Ni);\n return Vt(checkDurationUnits({\n ...Si,\n ...n\n }));\n}\n\nfunction refineCalendarFields(e, n, t, o = [], r = []) {\n return refineFields(n, [ ...e.fields(t), ...r ].sort(), o);\n}\n\nfunction refineFields(e, n, t, o = !t) {\n const r = {};\n let i, a = 0;\n for (const o of n) {\n if (o === i) {\n throw new RangeError(duplicateFields(o));\n }\n if (\"constructor\" === o || \"__proto__\" === o) {\n throw new RangeError(tn(o));\n }\n let n = e[o];\n if (void 0 !== n) {\n a = 1, Ga[o] && (n = Ga[o](n, o)), r[o] = n;\n } else if (t) {\n if (t.includes(o)) {\n throw new TypeError(missingField(o));\n }\n r[o] = hi[o];\n }\n i = o;\n }\n if (o && !a) {\n throw new TypeError(noValidFields(n));\n }\n return r;\n}\n\nfunction refineTimeBag(e, n) {\n return constrainIsoTimeFields(Ha({\n ...hi,\n ...e\n }), n);\n}\n\nfunction Sn(e, n, t, o, r, i) {\n const a = U(i), {calendar: s, timeZone: c} = t;\n return Yn(((e, n, t, o, r) => {\n const i = mergeCalendarFields(e, t, o, en, oi, ni), [a, s, c] = wn(r, 2);\n return getMatchingInstantFor(n, {\n ...e.dateFromFields(i, overrideOverflowOptions(r, a)),\n ...refineTimeBag(i, a)\n }, parseOffsetNano(i.offset), s, c);\n })(e(s), n(c), o, r, a), c, s);\n}\n\nfunction at(e, n, t, o, r) {\n const i = U(r);\n return ee(((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, en, w), i = H(o);\n return checkIsoDateTimeInBounds({\n ...e.dateFromFields(r, overrideOverflowOptions(o, i)),\n ...refineTimeBag(r, i)\n });\n })(e(n.calendar), t, o, i));\n}\n\nfunction Zt(e, n, t, o, r) {\n const i = U(r);\n return ((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, en);\n return e.dateFromFields(r, o);\n })(e(n.calendar), t, o, i);\n}\n\nfunction Ke(e, n, t, o, r) {\n const i = U(r);\n return createPlainYearMonthSlots(((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, fi);\n return e.yearMonthFromFields(r, o);\n })(e(n.calendar), t, o, i));\n}\n\nfunction k(e, n, t, o, r) {\n const i = U(r);\n return ((e, n, t, o) => {\n const r = mergeCalendarFields(e, n, t, en);\n return e.monthDayFromFields(r, o);\n })(e(n.calendar), t, o, i);\n}\n\nfunction Be(e, n, t) {\n return Ge(((e, n, t) => {\n const o = H(t);\n return refineTimeBag({\n ...Vn(ei, e),\n ...refineFields(n, ei)\n }, o);\n })(e, n, t));\n}\n\nfunction kt(e, n) {\n return Vt((t = e, o = n, checkDurationUnits({\n ...t,\n ...refineFields(o, Ni)\n })));\n var t, o;\n}\n\nfunction mergeCalendarFields(e, n, t, o, r = [], i = []) {\n const a = [ ...e.fields(o), ...r ].sort();\n let s = refineFields(n, a, i);\n const c = refineFields(t, a);\n return s = e.mergeFields(s, c), refineFields(s, a, []);\n}\n\nfunction convertToPlainMonthDay(e, n) {\n const t = refineCalendarFields(e, n, pi);\n return e.monthDayFromFields(t);\n}\n\nfunction convertToPlainYearMonth(e, n, t) {\n const o = refineCalendarFields(e, n, di);\n return e.yearMonthFromFields(o, t);\n}\n\nfunction convertToIso(e, n, t, o, r) {\n n = Vn(t = e.fields(t), n), o = refineFields(o, r = e.fields(r), []);\n let i = e.mergeFields(n, o);\n return i = refineFields(i, [ ...t, ...r ].sort(), []), e.dateFromFields(i);\n}\n\nfunction refineYear(e, n) {\n let {era: t, eraYear: o, year: r} = n;\n const i = getCalendarEraOrigins(e);\n if (void 0 !== t || void 0 !== o) {\n if (void 0 === t || void 0 === o) {\n throw new TypeError(Dr);\n }\n if (!i) {\n throw new RangeError(gr);\n }\n const e = i[t];\n if (void 0 === e) {\n throw new RangeError(invalidEra(t));\n }\n const n = eraYearToYear(o, e);\n if (void 0 !== r && r !== n) {\n throw new RangeError(Ir);\n }\n r = n;\n } else if (void 0 === r) {\n throw new TypeError(missingYear(i));\n }\n return r;\n}\n\nfunction refineMonth(e, n, t, o) {\n let {month: r, monthCode: i} = n;\n if (void 0 !== i) {\n const n = ((e, n, t, o) => {\n const r = e.U(t), [i, a] = parseMonthCode(n);\n let s = monthCodeNumberToMonth(i, a, r);\n if (a) {\n const n = getCalendarLeapMonthMeta(e);\n if (void 0 === n) {\n throw new RangeError(Pr);\n }\n if (n > 0) {\n if (s > n) {\n throw new RangeError(Pr);\n }\n if (void 0 === r) {\n if (1 === o) {\n throw new RangeError(Pr);\n }\n s--;\n }\n } else {\n if (s !== -n) {\n throw new RangeError(Pr);\n }\n if (void 0 === r && 1 === o) {\n throw new RangeError(Pr);\n }\n }\n }\n return s;\n })(e, i, t, o);\n if (void 0 !== r && r !== n) {\n throw new RangeError(Mr);\n }\n r = n, o = 1;\n } else if (void 0 === r) {\n throw new TypeError(Nr);\n }\n return clampEntity(\"month\", r, 1, e.L(t), o);\n}\n\nfunction refineDay(e, n, t, o, r) {\n return clampProp(n, \"day\", 1, e.j(o, t), r);\n}\n\nfunction spliceFields(e, n, t, o) {\n let r = 0;\n const i = [];\n for (const e of t) {\n void 0 !== n[e] ? r = 1 : i.push(e);\n }\n if (Object.assign(e, n), r) {\n for (const n of o || i) {\n delete e[n];\n }\n }\n}\n\nfunction Se(e) {\n return _(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction vn(e, n, t, o, r = X) {\n return Yn(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(t))), n(o), e(r));\n}\n\nfunction pt(e, n, t, o, r = 0, i = 0, a = 0, s = 0, c = 0, u = 0, l = X) {\n return ee(checkIsoDateTimeInBounds(checkIsoDateTimeFields(T(toInteger, zipProps(wi, [ n, t, o, r, i, a, s, c, u ])))), e(l));\n}\n\nfunction Nt(e, n, t, o, r = X) {\n return v(checkIsoDateInBounds(checkIsoDateFields(T(toInteger, {\n isoYear: n,\n isoMonth: t,\n isoDay: o\n }))), e(r));\n}\n\nfunction tt(e, n, t, o = X, r = 1) {\n const i = toInteger(n), a = toInteger(t), s = e(o);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(checkIsoDateFields({\n isoYear: i,\n isoMonth: a,\n isoDay: toInteger(r)\n })), s);\n}\n\nfunction G(e, n, t, o = X, r = ji) {\n const i = toInteger(n), a = toInteger(t), s = e(o);\n return createPlainMonthDaySlots(checkIsoDateInBounds(checkIsoDateFields({\n isoYear: toInteger(r),\n isoMonth: i,\n isoDay: a\n })), s);\n}\n\nfunction ke(e = 0, n = 0, t = 0, o = 0, r = 0, i = 0) {\n return Ge(constrainIsoTimeFields(T(toInteger, zipProps(j, [ e, n, t, o, r, i ])), 1));\n}\n\nfunction Lt(e = 0, n = 0, t = 0, o = 0, r = 0, i = 0, a = 0, s = 0, c = 0, u = 0) {\n return Vt(checkDurationUnits(T(toStrictInteger, zipProps(F, [ e, n, t, o, r, i, a, s, c, u ]))));\n}\n\nfunction fe(e, n, t = X) {\n return Yn(e.epochNanoseconds, n, t);\n}\n\nfunction Zn(e) {\n return _(e.epochNanoseconds);\n}\n\nfunction ht(e, n) {\n return ee(fn(n, e));\n}\n\nfunction Bt(e, n) {\n return v(fn(n, e));\n}\n\nfunction bn(e, n, t) {\n return convertToPlainYearMonth(e(n.calendar), t);\n}\n\nfunction Fn(e, n, t) {\n return convertToPlainMonthDay(e(n.calendar), t);\n}\n\nfunction Re(e, n) {\n return Ge(fn(n, e));\n}\n\nfunction mt(e, n, t, o) {\n const r = ((e, n, t, o) => {\n const r = ve(o);\n return we(e(n), t, r);\n })(e, t, n, o);\n return Yn(checkEpochNanoInBounds(r), t, n.calendar);\n}\n\nfunction St(e, n, t) {\n const o = e(n.calendar);\n return createPlainYearMonthSlots({\n ...n,\n ...convertToPlainYearMonth(o, t)\n });\n}\n\nfunction Ot(e, n, t) {\n return convertToPlainMonthDay(e(n.calendar), t);\n}\n\nfunction vt(e, n, t, o, r) {\n const i = e(r.timeZone), a = r.plainTime, s = void 0 !== a ? n(a) : Dt;\n return Yn(we(t(i), {\n ...o,\n ...s\n }), i, o.calendar);\n}\n\nfunction wt(e, n = Dt) {\n return ee(checkIsoDateTimeInBounds({\n ...e,\n ...n\n }));\n}\n\nfunction jt(e, n, t) {\n return convertToPlainYearMonth(e(n.calendar), t);\n}\n\nfunction Mt(e, n, t) {\n return convertToPlainMonthDay(e(n.calendar), t);\n}\n\nfunction _e(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, di, de(t), li))(e(n.calendar), t, o);\n}\n\nfunction R(e, n, t, o) {\n return ((e, n, t) => convertToIso(e, n, pi, de(t), si))(e(n.calendar), t, o);\n}\n\nfunction Je(e, n, t, o, r) {\n const i = de(r), a = n(i.plainDate), s = e(i.timeZone);\n return Yn(we(t(s), {\n ...a,\n ...o\n }), s, a.calendar);\n}\n\nfunction Le(e, n) {\n return ee(checkIsoDateTimeInBounds({\n ...e,\n ...n\n }));\n}\n\nfunction De(e) {\n return _(checkEpochNanoInBounds(he(e, _r)));\n}\n\nfunction Pe(e) {\n return _(checkEpochNanoInBounds(he(e, be)));\n}\n\nfunction Ce(e) {\n return _(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e), Vr)));\n}\n\nfunction ge(e) {\n return _(checkEpochNanoInBounds(bigIntToBigNano(toBigInt(e))));\n}\n\nfunction pn(e, n, t = Dt) {\n const o = n.timeZone, r = e(o), i = {\n ...fn(n, r),\n ...t\n };\n return Yn(getMatchingInstantFor(r, i, i.offsetNanoseconds, 2), o, n.calendar);\n}\n\nfunction Tn(e, n, t) {\n const o = n.timeZone, r = e(o), i = {\n ...fn(n, r),\n ...t\n }, a = getPreferredCalendarSlot(n.calendar, t.calendar);\n return Yn(getMatchingInstantFor(r, i, i.offsetNanoseconds, 2), o, a);\n}\n\nfunction lt(e, n = Dt) {\n return ee({\n ...e,\n ...n\n });\n}\n\nfunction st(e, n) {\n return ee({\n ...e,\n ...n\n }, getPreferredCalendarSlot(e.calendar, n.calendar));\n}\n\nfunction it(e, n) {\n return {\n ...e,\n calendar: n\n };\n}\n\nfunction On(e, n) {\n return {\n ...e,\n timeZone: n\n };\n}\n\nfunction getPreferredCalendarSlot(e, n) {\n if (e === n) {\n return e;\n }\n const t = I(e), o = I(n);\n if (t === o || t === X) {\n return n;\n }\n if (o === X) {\n return e;\n }\n throw new RangeError(Er);\n}\n\nfunction createNativeOpsCreator(e, n) {\n return t => t === X ? e : t === gi || t === Ti ? Object.assign(Object.create(e), {\n id: t\n }) : Object.assign(Object.create(n), Aa(t));\n}\n\nfunction createOptionsTransformer(e, n, t) {\n const o = new Set(t);\n return r => (((e, n) => {\n for (const t of n) {\n if (t in e) {\n return 1;\n }\n }\n return 0;\n })(r = V(o, r), e) || Object.assign(r, n), t && (r.timeZone = Ta, [ \"full\", \"long\" ].includes(r.timeStyle) && (r.timeStyle = \"medium\")), \n r);\n}\n\nfunction e(e, n = qn) {\n const [t, , , o] = e;\n return (r, i = Ns, ...a) => {\n const s = n(o && o(...a), r, i, t), c = s.resolvedOptions();\n return [ s, ...toEpochMillis(e, c, a) ];\n };\n}\n\nfunction qn(e, n, t, o) {\n if (t = o(t), e) {\n if (void 0 !== t.timeZone) {\n throw new TypeError(Lr);\n }\n t.timeZone = e;\n }\n return new En(n, t);\n}\n\nfunction toEpochMillis(e, n, t) {\n const [, o, r] = e;\n return t.map((e => (e.calendar && ((e, n, t) => {\n if ((t || e !== X) && e !== n) {\n throw new RangeError(Er);\n }\n })(I(e.calendar), n.calendar, r), o(e, n))));\n}\n\nfunction An(e) {\n const n = Bn();\n return Ie(n, e.getOffsetNanosecondsFor(n));\n}\n\nfunction Bn() {\n return he(Date.now(), be);\n}\n\nfunction Nn() {\n return ys || (ys = (new En).resolvedOptions().timeZone);\n}\n\nconst expectedInteger = (e, n) => `Non-integer ${e}: ${n}`, expectedPositive = (e, n) => `Non-positive ${e}: ${n}`, expectedFinite = (e, n) => `Non-finite ${e}: ${n}`, forbiddenBigIntToNumber = e => `Cannot convert bigint to ${e}`, invalidBigInt = e => `Invalid bigint: ${e}`, pr = \"Cannot convert Symbol to string\", hr = \"Invalid object\", numberOutOfRange = (e, n, t, o, r) => r ? numberOutOfRange(e, r[n], r[t], r[o]) : invalidEntity(e, n) + `; must be between ${t}-${o}`, invalidEntity = (e, n) => `Invalid ${e}: ${n}`, missingField = e => `Missing ${e}`, tn = e => `Invalid field ${e}`, duplicateFields = e => `Duplicate field ${e}`, noValidFields = e => \"No valid fields: \" + e.join(), Z = \"Invalid bag\", invalidChoice = (e, n, t) => invalidEntity(e, n) + \"; must be \" + Object.keys(t).join(), A = \"Cannot use valueOf\", P = \"Invalid calling context\", gr = \"Forbidden era/eraYear\", Dr = \"Mismatching era/eraYear\", Ir = \"Mismatching year/eraYear\", invalidEra = e => `Invalid era: ${e}`, missingYear = e => \"Missing year\" + (e ? \"/era/eraYear\" : \"\"), invalidMonthCode = e => `Invalid monthCode: ${e}`, Mr = \"Mismatching month/monthCode\", Nr = \"Missing month/monthCode\", yr = \"Cannot guess year\", Pr = \"Invalid leap month\", g = \"Invalid protocol\", vr = \"Invalid protocol results\", Er = \"Mismatching Calendars\", invalidCalendar = e => `Invalid Calendar: ${e}`, Fr = \"Mismatching TimeZones\", br = \"Forbidden ICU TimeZone\", wr = \"Out-of-bounds offset\", Br = \"Out-of-bounds TimeZone gap\", kr = \"Invalid TimeZone offset\", Yr = \"Ambiguous offset\", Cr = \"Out-of-bounds date\", Zr = \"Out-of-bounds duration\", Rr = \"Cannot mix duration signs\", zr = \"Missing relativeTo\", qr = \"Cannot use large units\", Ur = \"Required smallestUnit or largestUnit\", Ar = \"smallestUnit > largestUnit\", failedParse = e => `Cannot parse: ${e}`, invalidSubstring = e => `Invalid substring: ${e}`, Ln = e => `Cannot format ${e}`, kn = \"Mismatching types for formatting\", Lr = \"Cannot specify TimeZone\", Wr = /*@__PURE__*/ E(b, ((e, n) => n)), jr = /*@__PURE__*/ E(b, ((e, n, t) => t)), xr = /*@__PURE__*/ E(padNumber, 2), $r = {\n nanosecond: 0,\n microsecond: 1,\n millisecond: 2,\n second: 3,\n minute: 4,\n hour: 5,\n day: 6,\n week: 7,\n month: 8,\n year: 9\n}, Et = /*@__PURE__*/ Object.keys($r), Gr = 864e5, Hr = 1e3, Vr = 1e3, be = 1e6, _r = 1e9, Jr = 6e10, Kr = 36e11, Qr = 864e11, Xr = [ 1, Vr, be, _r, Jr, Kr, Qr ], w = /*@__PURE__*/ Et.slice(0, 6), ei = /*@__PURE__*/ sortStrings(w), ni = [ \"offset\" ], ti = [ \"timeZone\" ], oi = /*@__PURE__*/ w.concat(ni), ri = /*@__PURE__*/ oi.concat(ti), ii = [ \"era\", \"eraYear\" ], ai = /*@__PURE__*/ ii.concat([ \"year\" ]), si = [ \"year\" ], ci = [ \"monthCode\" ], ui = /*@__PURE__*/ [ \"month\" ].concat(ci), li = [ \"day\" ], fi = /*@__PURE__*/ ui.concat(si), di = /*@__PURE__*/ ci.concat(si), en = /*@__PURE__*/ li.concat(fi), mi = /*@__PURE__*/ li.concat(ui), pi = /*@__PURE__*/ li.concat(ci), hi = /*@__PURE__*/ jr(w, 0), X = \"iso8601\", gi = \"gregory\", Ti = \"japanese\", Di = {\n [gi]: {\n bce: -1,\n ce: 0\n },\n [Ti]: {\n bce: -1,\n ce: 0,\n meiji: 1867,\n taisho: 1911,\n showa: 1925,\n heisei: 1988,\n reiwa: 2018\n },\n ethioaa: {\n era0: 0\n },\n ethiopic: {\n era0: 0,\n era1: 5500\n },\n coptic: {\n era0: -1,\n era1: 0\n },\n roc: {\n beforeroc: -1,\n minguo: 0\n },\n buddhist: {\n be: 0\n },\n islamic: {\n ah: 0\n },\n indian: {\n saka: 0\n },\n persian: {\n ap: 0\n }\n}, Ii = {\n chinese: 13,\n dangi: 13,\n hebrew: -6\n}, m = /*@__PURE__*/ E(requireType, \"string\"), f = /*@__PURE__*/ E(requireType, \"boolean\"), Mi = /*@__PURE__*/ E(requireType, \"number\"), $ = /*@__PURE__*/ E(requireType, \"function\"), F = /*@__PURE__*/ Et.map((e => e + \"s\")), Ni = /*@__PURE__*/ sortStrings(F), yi = /*@__PURE__*/ F.slice(0, 6), Pi = /*@__PURE__*/ F.slice(6), vi = /*@__PURE__*/ Pi.slice(1), Ei = /*@__PURE__*/ Wr(F), Si = /*@__PURE__*/ jr(F, 0), Fi = /*@__PURE__*/ jr(yi, 0), bi = /*@__PURE__*/ E(zeroOutProps, F), j = [ \"isoNanosecond\", \"isoMicrosecond\", \"isoMillisecond\", \"isoSecond\", \"isoMinute\", \"isoHour\" ], Oi = [ \"isoDay\", \"isoMonth\", \"isoYear\" ], wi = /*@__PURE__*/ j.concat(Oi), Bi = /*@__PURE__*/ sortStrings(Oi), ki = /*@__PURE__*/ sortStrings(j), Yi = /*@__PURE__*/ sortStrings(wi), Dt = /*@__PURE__*/ jr(ki, 0), Ci = /*@__PURE__*/ E(zeroOutProps, wi), En = Intl.DateTimeFormat, Zi = \"en-GB\", Ri = 1e8, zi = Ri * Gr, qi = [ Ri, 0 ], Ui = [ -Ri, 0 ], Ai = 275760, Li = -271821, Wi = 1970, ji = 1972, xi = 12, $i = /*@__PURE__*/ isoArgsToEpochMilli(1868, 9, 8), Gi = /*@__PURE__*/ Jn(computeJapaneseEraParts, WeakMap), Hi = \"smallestUnit\", Vi = \"unit\", _i = \"roundingIncrement\", Ji = \"fractionalSecondDigits\", Ki = \"relativeTo\", Qi = {\n constrain: 0,\n reject: 1\n}, Xi = /*@__PURE__*/ Object.keys(Qi), ea = {\n compatible: 0,\n reject: 1,\n earlier: 2,\n later: 3\n}, na = {\n reject: 0,\n use: 1,\n prefer: 2,\n ignore: 3\n}, ta = {\n auto: 0,\n never: 1,\n critical: 2,\n always: 3\n}, oa = {\n auto: 0,\n never: 1,\n critical: 2\n}, ra = {\n auto: 0,\n never: 1\n}, ia = {\n floor: 0,\n halfFloor: 1,\n ceil: 2,\n halfCeil: 3,\n trunc: 4,\n halfTrunc: 5,\n expand: 6,\n halfExpand: 7,\n halfEven: 8\n}, aa = /*@__PURE__*/ E(refineUnitOption, Hi), sa = /*@__PURE__*/ E(refineUnitOption, \"largestUnit\"), ca = /*@__PURE__*/ E(refineUnitOption, Vi), ua = /*@__PURE__*/ E(refineChoiceOption, \"overflow\", Qi), la = /*@__PURE__*/ E(refineChoiceOption, \"disambiguation\", ea), fa = /*@__PURE__*/ E(refineChoiceOption, \"offset\", na), da = /*@__PURE__*/ E(refineChoiceOption, \"calendarName\", ta), ma = /*@__PURE__*/ E(refineChoiceOption, \"timeZoneName\", oa), pa = /*@__PURE__*/ E(refineChoiceOption, \"offset\", ra), ha = /*@__PURE__*/ E(refineChoiceOption, \"roundingMode\", ia), L = \"PlainYearMonth\", q = \"PlainMonthDay\", J = \"PlainDate\", We = \"PlainDateTime\", xe = \"PlainTime\", Te = \"ZonedDateTime\", Oe = \"Instant\", qt = \"Duration\", ga = [ Math.floor, e => hasHalf(e) ? Math.floor(e) : Math.round(e), Math.ceil, e => hasHalf(e) ? Math.ceil(e) : Math.round(e), Math.trunc, e => hasHalf(e) ? Math.trunc(e) || 0 : Math.round(e), e => e < 0 ? Math.floor(e) : Math.ceil(e), e => Math.sign(e) * Math.round(Math.abs(e)) || 0, e => hasHalf(e) ? (e = Math.trunc(e) || 0) + e % 2 : Math.round(e) ], Ta = \"UTC\", Da = 5184e3, Ia = /*@__PURE__*/ isoArgsToEpochSec(1847), Ma = /*@__PURE__*/ isoArgsToEpochSec(/*@__PURE__*/ (/*@__PURE__*/ new Date).getUTCFullYear() + 10), Na = /0+$/, fn = /*@__PURE__*/ Jn(_zonedEpochSlotsToIso, WeakMap), ya = 2 ** 32 - 1, ie = /*@__PURE__*/ Jn((e => {\n const n = getTimeZoneEssence(e);\n return \"object\" == typeof n ? new IntlTimeZone(n) : new FixedTimeZone(n || 0);\n}));\n\nclass FixedTimeZone {\n constructor(e) {\n this.v = e;\n }\n getOffsetNanosecondsFor() {\n return this.v;\n }\n getPossibleInstantsFor(e) {\n return [ isoToEpochNanoWithOffset(e, this.v) ];\n }\n l() {}\n}\n\nclass IntlTimeZone {\n constructor(e) {\n this.$ = (e => {\n function getOffsetSec(e) {\n const i = clampNumber(e, o, r), [a, s] = computePeriod(i), c = n(a), u = n(s);\n return c === u ? c : pinch(t(a, s), c, u, e);\n }\n function pinch(n, t, o, r) {\n let i, a;\n for (;(void 0 === r || void 0 === (i = r < n[0] ? t : r >= n[1] ? o : void 0)) && (a = n[1] - n[0]); ) {\n const t = n[0] + Math.floor(a / 2);\n e(t) === o ? n[1] = t : n[0] = t + 1;\n }\n return i;\n }\n const n = Jn(e), t = Jn(createSplitTuple);\n let o = Ia, r = Ma;\n return {\n G(e) {\n const n = getOffsetSec(e - 86400), t = getOffsetSec(e + 86400), o = e - n, r = e - t;\n if (n === t) {\n return [ o ];\n }\n const i = getOffsetSec(o);\n return i === getOffsetSec(r) ? [ e - i ] : n > t ? [ o, r ] : [];\n },\n V: getOffsetSec,\n l(e, i) {\n const a = clampNumber(e, o, r);\n let [s, c] = computePeriod(a);\n const u = Da * i, l = i < 0 ? () => c > o || (o = a, 0) : () => s < r || (r = a, \n 0);\n for (;l(); ) {\n const o = n(s), r = n(c);\n if (o !== r) {\n const n = t(s, c);\n pinch(n, o, r);\n const a = n[0];\n if ((compareNumbers(a, e) || 1) === i) {\n return a;\n }\n }\n s += u, c += u;\n }\n }\n };\n })((e => n => {\n const t = hashIntlFormatParts(e, n * Hr);\n return isoArgsToEpochSec(parseIntlPartsYear(t), parseInt(t.month), parseInt(t.day), parseInt(t.hour), parseInt(t.minute), parseInt(t.second)) - n;\n })(e));\n }\n getOffsetNanosecondsFor(e) {\n return this.$.V(epochNanoToSec(e)) * _r;\n }\n getPossibleInstantsFor(e) {\n const [n, t] = [ isoArgsToEpochSec((o = e).isoYear, o.isoMonth, o.isoDay, o.isoHour, o.isoMinute, o.isoSecond), o.isoMillisecond * be + o.isoMicrosecond * Vr + o.isoNanosecond ];\n var o;\n return this.$.G(n).map((e => checkEpochNanoInBounds(moveBigNano(he(e, _r), t))));\n }\n l(e, n) {\n const [t, o] = epochNanoToSecMod(e), r = this.$.l(t + (n > 0 || o ? 1 : 0), n);\n if (void 0 !== r) {\n return he(r, _r);\n }\n }\n}\n\nconst Pa = \"([+−-])\", va = \"(?:[.,](\\\\d{1,9}))?\", Ea = `(?:(?:${Pa}(\\\\d{6}))|(\\\\d{4}))-?(\\\\d{2})`, Sa = \"(\\\\d{2})(?::?(\\\\d{2})(?::?(\\\\d{2})\" + va + \")?)?\", Fa = Pa + Sa, ba = Ea + \"-?(\\\\d{2})(?:[T ]\" + Sa + \"(Z|\" + Fa + \")?)?\", Oa = \"\\\\[(!?)([^\\\\]]*)\\\\]\", wa = `((?:${Oa}){0,9})`, Ba = /*@__PURE__*/ createRegExp(Ea + wa), ka = /*@__PURE__*/ createRegExp(\"(?:--)?(\\\\d{2})-?(\\\\d{2})\" + wa), Ya = /*@__PURE__*/ createRegExp(ba + wa), Ca = /*@__PURE__*/ createRegExp(\"T?\" + Sa + \"(?:\" + Fa + \")?\" + wa), Za = /*@__PURE__*/ createRegExp(Fa), Ra = /*@__PURE__*/ new RegExp(Oa, \"g\"), za = /*@__PURE__*/ createRegExp(`${Pa}?P(\\\\d+Y)?(\\\\d+M)?(\\\\d+W)?(\\\\d+D)?(?:T(?:(\\\\d+)${va}H)?(?:(\\\\d+)${va}M)?(?:(\\\\d+)${va}S)?)?`), qa = /*@__PURE__*/ Jn((e => new En(Zi, {\n timeZone: e,\n era: \"short\",\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\"\n}))), Ua = /^(AC|AE|AG|AR|AS|BE|BS|CA|CN|CS|CT|EA|EC|IE|IS|JS|MI|NE|NS|PL|PN|PR|PS|SS|VS)T$/, Aa = /*@__PURE__*/ Jn(createIntlCalendar), La = /*@__PURE__*/ Jn((e => new En(Zi, {\n calendar: e,\n timeZone: Ta,\n era: \"short\",\n year: \"numeric\",\n month: \"short\",\n day: \"numeric\"\n}))), Wa = /^M(\\d{2})(L?)$/, ja = {\n era: toStringViaPrimitive,\n eraYear: toInteger,\n year: toInteger,\n month: toPositiveInteger,\n monthCode: toStringViaPrimitive,\n day: toPositiveInteger\n}, xa = /*@__PURE__*/ jr(w, toInteger), $a = /*@__PURE__*/ jr(F, toStrictInteger), Ga = /*@__PURE__*/ Object.assign({}, ja, xa, $a, {\n offset: toStringViaPrimitive\n}), Ha = /*@__PURE__*/ E(remapProps, w, j), Va = {\n dateAdd(e, n, t) {\n const o = H(t);\n let r, {years: i, months: a, weeks: s, days: c} = n;\n if (c += durationFieldsToBigNano(n, 5)[0], i || a) {\n r = ((e, n, t, o, r) => {\n let [i, a, s] = e.h(n);\n if (t) {\n const [n, o] = e.I(i, a);\n i += t, a = monthCodeNumberToMonth(n, o, e.U(i)), a = clampEntity(\"month\", a, 1, e.L(i), r);\n }\n return o && ([i, a] = e._(i, a, o)), s = clampEntity(\"day\", s, 1, e.j(i, a), r), \n e.q(i, a, s);\n })(this, e, i, a, o);\n } else {\n if (!s && !c) {\n return e;\n }\n r = isoToEpochMilli(e);\n }\n return r += (7 * s + c) * Gr, checkIsoDateInBounds(epochMilliToIso(r));\n },\n dateUntil(e, n, t) {\n if (t <= 7) {\n let o = 0, r = diffDays({\n ...e,\n ...Dt\n }, {\n ...n,\n ...Dt\n });\n return 7 === t && ([o, r] = divModTrunc(r, 7)), {\n ...Si,\n weeks: o,\n days: r\n };\n }\n const o = this.h(e), r = this.h(n);\n let [i, a, s] = ((e, n, t, o, r, i, a) => {\n let s = r - n, c = i - t, u = a - o;\n if (s || c) {\n const l = Math.sign(s || c);\n let f = e.j(r, i), d = 0;\n if (Math.sign(u) === -l) {\n const o = f;\n [r, i] = e._(r, i, -l), s = r - n, c = i - t, f = e.j(r, i), d = l < 0 ? -o : f;\n }\n if (u = a - Math.min(o, f) + d, s) {\n const [o, a] = e.I(n, t), [u, f] = e.I(r, i);\n if (c = u - o || Number(f) - Number(a), Math.sign(c) === -l) {\n const t = l < 0 && -e.L(r);\n s = (r -= l) - n, c = i - monthCodeNumberToMonth(o, a, e.U(r)) + (t || e.L(r));\n }\n }\n }\n return [ s, c, u ];\n })(this, ...o, ...r);\n return 8 === t && (a += this.J(i, o[0]), i = 0), {\n ...Si,\n years: i,\n months: a,\n days: s\n };\n },\n dateFromFields(e, n) {\n const t = H(n), o = refineYear(this, e), r = refineMonth(this, e, o, t), i = refineDay(this, e, r, o, t);\n return v(checkIsoDateInBounds(this.P(o, r, i)), this.id || X);\n },\n yearMonthFromFields(e, n) {\n const t = H(n), o = refineYear(this, e), r = refineMonth(this, e, o, t);\n return createPlainYearMonthSlots(checkIsoYearMonthInBounds(this.P(o, r, 1)), this.id || X);\n },\n monthDayFromFields(e, n) {\n const t = H(n), o = !this.id, {monthCode: r, year: i, month: a} = e;\n let s, c, u, l, f;\n if (void 0 !== r) {\n [s, c] = parseMonthCode(r), f = getDefinedProp(e, \"day\");\n const n = this.N(s, c, f);\n if (!n) {\n throw new RangeError(yr);\n }\n if ([u, l] = n, void 0 !== a && a !== l) {\n throw new RangeError(Mr);\n }\n o && (l = clampEntity(\"month\", l, 1, xi, 1), f = clampEntity(\"day\", f, 1, computeIsoDaysInMonth(void 0 !== i ? i : u, l), t));\n } else {\n u = void 0 === i && o ? ji : refineYear(this, e), l = refineMonth(this, e, u, t), \n f = refineDay(this, e, l, u, t);\n const n = this.U(u);\n c = l === n, s = monthToMonthCodeNumber(l, n);\n const r = this.N(s, c, f);\n if (!r) {\n throw new RangeError(yr);\n }\n [u, l] = r;\n }\n return createPlainMonthDaySlots(checkIsoDateInBounds(this.P(u, l, f)), this.id || X);\n },\n fields(e) {\n return getCalendarEraOrigins(this) && e.includes(\"year\") ? [ ...e, ...ii ] : e;\n },\n mergeFields(e, n) {\n const t = Object.assign(Object.create(null), e);\n return spliceFields(t, n, ui), getCalendarEraOrigins(this) && (spliceFields(t, n, ai), \n this.id === Ti && spliceFields(t, n, mi, ii)), t;\n },\n inLeapYear(e) {\n const [n] = this.h(e);\n return this.K(n);\n },\n monthsInYear(e) {\n const [n] = this.h(e);\n return this.L(n);\n },\n daysInMonth(e) {\n const [n, t] = this.h(e);\n return this.j(n, t);\n },\n daysInYear(e) {\n const [n] = this.h(e);\n return this.X(n);\n },\n dayOfYear: computeNativeDayOfYear,\n era(e) {\n return this.ee(e)[0];\n },\n eraYear(e) {\n return this.ee(e)[1];\n },\n monthCode(e) {\n const [n, t] = this.h(e), [o, r] = this.I(n, t);\n return ((e, n) => \"M\" + xr(e) + (n ? \"L\" : \"\"))(o, r);\n },\n dayOfWeek: computeIsoDayOfWeek,\n daysInWeek() {\n return 7;\n }\n}, _a = {\n dayOfYear: computeNativeDayOfYear,\n h: computeIsoDateParts,\n q: isoArgsToEpochMilli\n}, Ja = /*@__PURE__*/ Object.assign({}, _a, {\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek,\n R(e) {\n function computeWeekShift(e) {\n return (7 - e < n ? 7 : 0) - e;\n }\n function computeWeeksInYear(e) {\n const n = computeIsoDaysInYear(l + e), t = e || 1, o = computeWeekShift(modFloor(a + n * t, 7));\n return c = (n + (o - s) * t) / 7;\n }\n const n = this.id ? 1 : 4, t = computeIsoDayOfWeek(e), o = this.dayOfYear(e), r = modFloor(t - 1, 7), i = o - 1, a = modFloor(r - i, 7), s = computeWeekShift(a);\n let c, u = Math.floor((i - s) / 7) + 1, l = e.isoYear;\n return u ? u > computeWeeksInYear(0) && (u = 1, l++) : (u = computeWeeksInYear(-1), \n l--), [ u, l, c ];\n }\n}), Ka = {\n dayOfYear: computeNativeDayOfYear,\n h: computeIntlDateParts,\n q: computeIntlEpochMilli,\n weekOfYear: computeNativeWeekOfYear,\n yearOfWeek: computeNativeYearOfWeek,\n R() {\n return [];\n }\n}, Y = /*@__PURE__*/ createNativeOpsCreator(/*@__PURE__*/ Object.assign({}, Va, Ja, {\n h: computeIsoDateParts,\n ee(e) {\n return this.id === gi ? computeGregoryEraParts(e) : this.id === Ti ? Gi(e) : [];\n },\n I: (e, n) => [ n, 0 ],\n N(e, n) {\n if (!n) {\n return [ ji, e ];\n }\n },\n K: computeIsoInLeapYear,\n U() {},\n L: computeIsoMonthsInYear,\n J: e => e * xi,\n j: computeIsoDaysInMonth,\n X: computeIsoDaysInYear,\n P: (e, n, t) => ({\n isoYear: e,\n isoMonth: n,\n isoDay: t\n }),\n q: isoArgsToEpochMilli,\n _: (e, n, t) => (e += divTrunc(t, xi), (n += modTrunc(t, xi)) < 1 ? (e--, n += xi) : n > xi && (e++, \n n -= xi), [ e, n ]),\n year(e) {\n return e.isoYear;\n },\n month(e) {\n return e.isoMonth;\n },\n day: e => e.isoDay\n}), /*@__PURE__*/ Object.assign({}, Va, Ka, {\n h: computeIntlDateParts,\n ee(e) {\n const n = this.O(e);\n return [ n.era, n.eraYear ];\n },\n I(e, n) {\n const t = computeIntlLeapMonth.call(this, e);\n return [ monthToMonthCodeNumber(n, t), t === n ];\n },\n N(e, n, t) {\n let [o, r, i] = computeIntlDateParts.call(this, {\n isoYear: ji,\n isoMonth: xi,\n isoDay: 31\n });\n const a = computeIntlLeapMonth.call(this, o), s = r === a;\n 1 === (compareNumbers(e, monthToMonthCodeNumber(r, a)) || compareNumbers(Number(n), Number(s)) || compareNumbers(t, i)) && o--;\n for (let r = 0; r < 100; r++) {\n const i = o - r, a = computeIntlLeapMonth.call(this, i), s = monthCodeNumberToMonth(e, n, a);\n if (n === (s === a) && t <= computeIntlDaysInMonth.call(this, i, s)) {\n return [ i, s ];\n }\n }\n },\n K(e) {\n const n = computeIntlDaysInYear.call(this, e);\n return n > computeIntlDaysInYear.call(this, e - 1) && n > computeIntlDaysInYear.call(this, e + 1);\n },\n U: computeIntlLeapMonth,\n L: computeIntlMonthsInYear,\n J(e, n) {\n const t = n + e, o = Math.sign(e), r = o < 0 ? -1 : 0;\n let i = 0;\n for (let e = n; e !== t; e += o) {\n i += computeIntlMonthsInYear.call(this, e + r);\n }\n return i;\n },\n j: computeIntlDaysInMonth,\n X: computeIntlDaysInYear,\n P(e, n, t) {\n return epochMilliToIso(computeIntlEpochMilli.call(this, e, n, t));\n },\n q: computeIntlEpochMilli,\n _(e, n, t) {\n if (t) {\n if (n += t, !Number.isSafeInteger(n)) {\n throw new RangeError(Cr);\n }\n if (t < 0) {\n for (;n < 1; ) {\n n += computeIntlMonthsInYear.call(this, --e);\n }\n } else {\n let t;\n for (;n > (t = computeIntlMonthsInYear.call(this, e)); ) {\n n -= t, e++;\n }\n }\n }\n return [ e, n ];\n },\n year(e) {\n return this.O(e).year;\n },\n month(e) {\n const {year: n, F: t} = this.O(e), {C: o} = this.B(n);\n return o[t] + 1;\n },\n day(e) {\n return this.O(e).day;\n }\n})), Qa = \"numeric\", Xa = [ \"timeZoneName\" ], es = {\n month: Qa,\n day: Qa\n}, ns = {\n year: Qa,\n month: Qa\n}, ts = /*@__PURE__*/ Object.assign({}, ns, {\n day: Qa\n}), os = {\n hour: Qa,\n minute: Qa,\n second: Qa\n}, rs = /*@__PURE__*/ Object.assign({}, ts, os), is = /*@__PURE__*/ Object.assign({}, rs, {\n timeZoneName: \"short\"\n}), as = /*@__PURE__*/ Object.keys(ns), ss = /*@__PURE__*/ Object.keys(es), cs = /*@__PURE__*/ Object.keys(ts), us = /*@__PURE__*/ Object.keys(os), ls = [ \"dateStyle\" ], fs = /*@__PURE__*/ as.concat(ls), ds = /*@__PURE__*/ ss.concat(ls), ms = /*@__PURE__*/ cs.concat(ls, [ \"weekday\" ]), ps = /*@__PURE__*/ us.concat([ \"dayPeriod\", \"timeStyle\" ]), hs = /*@__PURE__*/ ms.concat(ps), gs = /*@__PURE__*/ hs.concat(Xa), Ts = /*@__PURE__*/ Xa.concat(ps), Ds = /*@__PURE__*/ Xa.concat(ms), Is = /*@__PURE__*/ Xa.concat([ \"day\", \"weekday\" ], ps), Ms = /*@__PURE__*/ Xa.concat([ \"year\", \"weekday\" ], ps), Ns = {}, t = [ /*@__PURE__*/ createOptionsTransformer(hs, rs), y ], s = [ /*@__PURE__*/ createOptionsTransformer(gs, is), y, 0, (e, n) => {\n const t = I(e.timeZone);\n if (n && I(n.timeZone) !== t) {\n throw new RangeError(Fr);\n }\n return t;\n} ], n = [ /*@__PURE__*/ createOptionsTransformer(hs, rs, Xa), isoToEpochMilli ], o = [ /*@__PURE__*/ createOptionsTransformer(ms, ts, Ts), isoToEpochMilli ], r = [ /*@__PURE__*/ createOptionsTransformer(ps, os, Ds), e => isoTimeFieldsToNano(e) / be ], a = [ /*@__PURE__*/ createOptionsTransformer(fs, ns, Is), isoToEpochMilli, 1 ], i = [ /*@__PURE__*/ createOptionsTransformer(ds, es, Ms), isoToEpochMilli, 1 ];\n\nlet ys;\n\nexport { qt as DurationBranding, Oe as InstantBranding, J as PlainDateBranding, We as PlainDateTimeBranding, q as PlainMonthDayBranding, xe as PlainTimeBranding, L as PlainYearMonthBranding, En as RawDateTimeFormat, Te as ZonedDateTimeBranding, Rt as absDuration, Wt as addDurations, oe as bigNanoToNumber, E as bindArgs, mn as buildZonedIsoFields, te as compareBigNanos, $t as compareDurations, Ze as compareInstants, rt as compareIsoDateFields, gt as compareIsoDateTimeFields, He as compareIsoTimeFields, yn as compareZonedDateTimes, dn as computeZonedHoursInDay, Cn as computeZonedStartOfDay, Lt as constructDurationSlots, Se as constructInstantSlots, Nt as constructPlainDateSlots, pt as constructPlainDateTimeSlots, G as constructPlainMonthDaySlots, ke as constructPlainTimeSlots, tt as constructPlainYearMonthSlots, vn as constructZonedDateTimeSlots, U as copyOptions, Vt as createDurationSlots, qn as createFormatForPrep, e as createFormatPrepper, O as createGetterDescriptors, _ as createInstantSlots, D as createNameDescriptors, Y as createNativeStandardOps, v as createPlainDateSlots, ee as createPlainDateTimeSlots, Ge as createPlainTimeSlots, p as createPropDescriptors, h as createStringTagDescriptors, Yn as createZonedDateTimeSlots, o as dateConfig, en as dateFieldNamesAlpha, n as dateTimeConfig, re as diffBigNanos, le as diffInstants, ut as diffPlainDateTimes, Ft as diffPlainDates, Ae as diffPlainTimes, Xe as diffPlainYearMonth, Dn as diffZonedDateTimes, F as durationFieldNamesAsc, kt as durationWithFields, Ce as epochMicroToInstant, Pe as epochMilliToInstant, ge as epochNanoToInstant, Ie as epochNanoToIso, De as epochSecToInstant, V as excludePropsByName, nn as excludeUndefinedProps, tn as forbiddenField, A as forbiddenValueOf, zt as formatDurationIso, me as formatInstantIso, Fe as formatOffsetNano, yt as formatPlainDateIso, Tt as formatPlainDateTimeIso, W as formatPlainMonthDayIso, qe as formatPlainTimeIso, et as formatPlainYearMonthIso, In as formatZonedDateTimeIso, Bn as getCurrentEpochNano, An as getCurrentIsoDateTime, Nn as getCurrentTimeZoneId, Jt as getDurationBlank, N as getEpochMicro, y as getEpochMilli, B as getEpochNano, M as getEpochSec, I as getId, ln as getRequiredDateFields, cn as getRequiredMonthDayFields, un as getRequiredYearMonthFields, we as getSingleInstantFor, C as hasAllPropsByName, t as instantConfig, fe as instantToZonedDateTime, ue as instantsEqual, Z as invalidBag, P as invalidCallingContext, Ln as invalidFormatType, g as invalidProtocol, z as isObjectLike, je as isTimeZoneSlotsEqual, X as isoCalendarId, Dt as isoTimeFieldDefaults, j as isoTimeFieldNamesAsc, b as mapPropNames, T as mapProps, Jn as memoize, kn as mismatchingFormatTypes, i as monthDayConfig, se as moveInstant, bt as movePlainDate, ct as movePlainDateTime, Ye as movePlainTime, Qe as movePlainYearMonth, hn as moveZonedDateTime, be as nanoInMilli, xt as negateDuration, he as numberToBigNano, sn as parseCalendarId, Kt as parseDuration, pe as parseInstant, At as parsePlainDate, Ct as parsePlainDateTime, Q as parsePlainMonthDay, ze as parsePlainTime, ot as parsePlainYearMonth, Xt as parseRelativeToSlots, Ne as parseTimeZoneId, Mn as parseZonedDateTime, Ot as plainDateTimeToPlainMonthDay, St as plainDateTimeToPlainYearMonth, mt as plainDateTimeToZonedDateTime, at as plainDateTimeWithFields, st as plainDateTimeWithPlainDate, lt as plainDateTimeWithPlainTime, ft as plainDateTimesEqual, wt as plainDateToPlainDateTime, Mt as plainDateToPlainMonthDay, jt as plainDateToPlainYearMonth, vt as plainDateToZonedDateTime, Zt as plainDateWithFields, It as plainDatesEqual, R as plainMonthDayToPlainDate, k as plainMonthDayWithFields, x as plainMonthDaysEqual, Le as plainTimeToPlainDateTime, Je as plainTimeToZonedDateTime, Be as plainTimeWithFields, Ve as plainTimesEqual, _e as plainYearMonthToPlainDate, Ke as plainYearMonthWithFields, $e as plainYearMonthsEqual, Vn as pluckProps, ie as queryNativeTimeZone, rn as refineCalendarId, _t as refineDateDiffOptions, Ht as refineDurationBag, ve as refineEpochDisambigOptions, Qt as refineMaybeZonedDateTimeBag, H as refineOverflowOptions, Yt as refinePlainDateBag, Pt as refinePlainDateTimeBag, K as refinePlainMonthDayBag, Ue as refinePlainTimeBag, nt as refinePlainYearMonthBag, Me as refineTimeZoneId, jn as refineZonedDateTimeBag, wn as refineZonedFieldOptions, f as requireBoolean, $ as requireFunction, u as requireInteger, c as requireIntegerOrUndefined, on as requireNonNullish, de as requireObjectLike, d as requirePositiveInteger, S as requirePositiveIntegerOrUndefined, m as requireString, l as requireStringOrUndefined, an as resolveCalendarId, ye as resolveTimeZoneId, Gt as roundDuration, ce as roundInstant, dt as roundPlainDateTime, Ee as roundPlainTime, Pn as roundZonedDateTime, it as slotsWithCalendar, On as slotsWithTimeZone, r as timeConfig, w as timeFieldNamesAsc, Ut as totalDuration, Et as unitNamesAsc, ne as validateTimeZoneGap, ae as validateTimeZoneOffset, a as yearMonthConfig, s as zonedConfig, Zn as zonedDateTimeToInstant, Bt as zonedDateTimeToPlainDate, ht as zonedDateTimeToPlainDateTime, Fn as zonedDateTimeToPlainMonthDay, Re as zonedDateTimeToPlainTime, bn as zonedDateTimeToPlainYearMonth, Sn as zonedDateTimeWithFields, Tn as zonedDateTimeWithPlainDate, pn as zonedDateTimeWithPlainTime, gn as zonedDateTimesEqual, fn as zonedEpochSlotsToIso };\n",
|
|
33
|
+
"function createSlotClass(e, t, n, o, r) {\n function Class(...e) {\n if (!(this instanceof Class)) {\n throw new TypeError(P);\n }\n oo(this, t(...e));\n }\n function bindMethod(e, t) {\n return Object.defineProperties((function(...t) {\n return e.call(this, getSpecificSlots(this), ...t);\n }), D(t));\n }\n function getSpecificSlots(t) {\n const n = no(t);\n if (!n || n.branding !== e) {\n throw new TypeError(P);\n }\n return n;\n }\n return Object.defineProperties(Class.prototype, {\n ...O(T(bindMethod, n)),\n ...p(T(bindMethod, o)),\n ...h(\"Temporal.\" + e)\n }), Object.defineProperties(Class, {\n ...p(r),\n ...D(e)\n }), [ Class, e => {\n const t = Object.create(Class.prototype);\n return oo(t, e), t;\n }, getSpecificSlots ];\n}\n\nfunction createProtocolValidator(e) {\n return e = e.concat(\"id\").sort(), t => {\n if (!C(t, e)) {\n throw new TypeError(g);\n }\n return t;\n };\n}\n\nfunction rejectInvalidBag(e) {\n if (no(e) || void 0 !== e.calendar || void 0 !== e.timeZone) {\n throw new TypeError(Z);\n }\n return e;\n}\n\nfunction createCalendarFieldMethods(e, t) {\n const n = {};\n for (const o in e) {\n n[o] = ({o: e}, n) => {\n const r = no(n) || {}, {branding: a} = r, i = a === J || t.includes(a) ? r : toPlainDateSlots(n);\n return e[o](i);\n };\n }\n return n;\n}\n\nfunction createCalendarGetters(e) {\n const t = {};\n for (const n in e) {\n t[n] = e => {\n const {calendar: t} = e;\n return (o = t, \"string\" == typeof o ? Y(o) : (r = o, Object.assign(Object.create(co), {\n i: r\n })))[n](e);\n var o, r;\n };\n }\n return t;\n}\n\nfunction neverValueOf() {\n throw new TypeError(A);\n}\n\nfunction createCalendarFromSlots({calendar: e}) {\n return \"string\" == typeof e ? new lr(e) : e;\n}\n\nfunction toPlainMonthDaySlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e);\n if (n && n.branding === q) {\n return H(t), n;\n }\n const o = extractCalendarSlotFromBag(e);\n return K(Qo(o || X), !o, e, t);\n }\n const n = Q(Y, e);\n return H(t), n;\n}\n\nfunction getOffsetNanosecondsForAdapter(e, t, n) {\n return o = t.call(e, Co(_(n))), ae(u(o));\n var o;\n}\n\nfunction createAdapterOps(e, t = ho) {\n const n = Object.keys(t).sort(), o = {};\n for (const r of n) {\n o[r] = E(t[r], e, $(e[r]));\n }\n return o;\n}\n\nfunction createTimeZoneOps(e, t) {\n return \"string\" == typeof e ? ie(e) : createAdapterOps(e, t);\n}\n\nfunction createTimeZoneOffsetOps(e) {\n return createTimeZoneOps(e, Do);\n}\n\nfunction toInstantSlots(e) {\n if (z(e)) {\n const t = no(e);\n if (t) {\n switch (t.branding) {\n case Oe:\n return t;\n\n case Te:\n return _(t.epochNanoseconds);\n }\n }\n }\n return pe(e);\n}\n\nfunction toTemporalInstant() {\n return Co(_(he(this.valueOf(), be)));\n}\n\nfunction getImplTransition(e, t, n) {\n const o = t.l(toInstantSlots(n).epochNanoseconds, e);\n return o ? Co(_(o)) : null;\n}\n\nfunction refineTimeZoneSlot(e) {\n return z(e) ? (no(e) || {}).timeZone || Fo(e) : (e => ye(Ne(m(e))))(e);\n}\n\nfunction toPlainTimeSlots(e, t) {\n if (z(e)) {\n const n = no(e) || {};\n switch (n.branding) {\n case xe:\n return H(t), n;\n\n case We:\n return H(t), Ge(n);\n\n case Te:\n return H(t), Re(createTimeZoneOffsetOps, n);\n }\n return Ue(e, t);\n }\n return H(t), ze(e);\n}\n\nfunction optionalToPlainTimeFields(e) {\n return void 0 === e ? void 0 : toPlainTimeSlots(e);\n}\n\nfunction toPlainYearMonthSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e);\n return n && n.branding === L ? (H(t), n) : nt(Ho(getCalendarSlotFromBag(e)), e, t);\n }\n const n = ot(Y, e);\n return H(t), n;\n}\n\nfunction toPlainDateTimeSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e) || {};\n switch (n.branding) {\n case We:\n return H(t), n;\n\n case J:\n return H(t), ee({\n ...n,\n ...Dt\n });\n\n case Te:\n return H(t), ht(createTimeZoneOffsetOps, n);\n }\n return Pt(Ko(getCalendarSlotFromBag(e)), e, t);\n }\n const n = Ct(e);\n return H(t), n;\n}\n\nfunction toPlainDateSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e) || {};\n switch (n.branding) {\n case J:\n return H(t), n;\n\n case We:\n return H(t), v(n);\n\n case Te:\n return H(t), Bt(createTimeZoneOffsetOps, n);\n }\n return Yt(Ko(getCalendarSlotFromBag(e)), e, t);\n }\n const n = At(e);\n return H(t), n;\n}\n\nfunction dayAdapter(e, t, n) {\n return d(t.call(e, Yo(v(n, e))));\n}\n\nfunction createCompoundOpsCreator(e) {\n return t => \"string\" == typeof t ? Y(t) : ((e, t) => {\n const n = Object.keys(t).sort(), o = {};\n for (const r of n) {\n o[r] = E(t[r], e, e[r]);\n }\n return o;\n })(t, e);\n}\n\nfunction toDurationSlots(e) {\n if (z(e)) {\n const t = no(e);\n return t && t.branding === qt ? t : Ht(e);\n }\n return Kt(e);\n}\n\nfunction refinePublicRelativeTo(e) {\n if (void 0 !== e) {\n if (z(e)) {\n const t = no(e) || {};\n switch (t.branding) {\n case Te:\n case J:\n return t;\n\n case We:\n return v(t);\n }\n const n = getCalendarSlotFromBag(e);\n return {\n ...Qt(refineTimeZoneSlot, createTimeZoneOps, Ko(n), e),\n calendar: n\n };\n }\n return Xt(e);\n }\n}\n\nfunction getCalendarSlotFromBag(e) {\n return extractCalendarSlotFromBag(e) || X;\n}\n\nfunction extractCalendarSlotFromBag(e) {\n const {calendar: t} = e;\n if (void 0 !== t) {\n return refineCalendarSlot(t);\n }\n}\n\nfunction refineCalendarSlot(e) {\n return z(e) ? (no(e) || {}).calendar || cr(e) : (e => an(sn(m(e))))(e);\n}\n\nfunction toZonedDateTimeSlots(e, t) {\n if (t = U(t), z(e)) {\n const n = no(e);\n if (n && n.branding === Te) {\n return wn(t), n;\n }\n const o = getCalendarSlotFromBag(e);\n return jn(refineTimeZoneSlot, createTimeZoneOps, Ko(o), o, e, t);\n }\n return Mn(e, t);\n}\n\nfunction adaptDateMethods(e) {\n return T((e => t => e(slotsToIso(t))), e);\n}\n\nfunction slotsToIso(e) {\n return fn(e, createTimeZoneOffsetOps);\n}\n\nfunction createDateTimeFormatClass() {\n const e = En.prototype, t = Object.getOwnPropertyDescriptors(e), n = Object.getOwnPropertyDescriptors(En), DateTimeFormat = function(e, t = {}) {\n if (!(this instanceof DateTimeFormat)) {\n return new DateTimeFormat(e, t);\n }\n Or.set(this, ((e, t = {}) => {\n const n = new En(e, t), o = n.resolvedOptions(), r = o.locale, a = Vn(Object.keys(t), o), i = Jn(createFormatPrepperForBranding), prepFormat = (...e) => {\n let t;\n const o = e.map(((e, n) => {\n const o = no(e), r = (o || {}).branding;\n if (n && t && t !== r) {\n throw new TypeError(kn);\n }\n return t = r, o;\n }));\n return t ? i(t)(r, a, ...o) : [ n, ...e ];\n };\n return prepFormat.u = n, prepFormat;\n })(e, t));\n };\n for (const e in t) {\n const n = t[e], o = e.startsWith(\"format\") && createFormatMethod(e);\n \"function\" == typeof n.value ? n.value = \"constructor\" === e ? DateTimeFormat : o || createProxiedMethod(e) : o && (n.get = function() {\n return o.bind(this);\n });\n }\n return n.prototype.value = Object.create(e, t), Object.defineProperties(DateTimeFormat, n), \n DateTimeFormat;\n}\n\nfunction createFormatMethod(e) {\n return function(...t) {\n const n = Or.get(this), [o, ...r] = n(...t);\n return o[e](...r);\n };\n}\n\nfunction createProxiedMethod(e) {\n return function(...t) {\n return Or.get(this).u[e](...t);\n };\n}\n\nfunction createFormatPrepperForBranding(t) {\n const n = xn[t];\n if (!n) {\n throw new TypeError(Ln(t));\n }\n return e(n, Jn(qn));\n}\n\nimport { createFormatPrepper as e, instantConfig as t, dateTimeConfig as n, dateConfig as o, timeConfig as r, yearMonthConfig as a, monthDayConfig as i, zonedConfig as s, requireStringOrUndefined as l, requireIntegerOrUndefined as c, requireInteger as u, requirePositiveInteger as d, requireBoolean as f, requireString as m, requirePositiveIntegerOrUndefined as S, createGetterDescriptors as O, mapProps as T, createPropDescriptors as p, createStringTagDescriptors as h, createNameDescriptors as D, invalidCallingContext as P, hasAllPropsByName as C, invalidProtocol as g, invalidBag as Z, mapPropNames as b, durationFieldNamesAsc as F, getId as I, createPlainDateSlots as v, timeFieldNamesAsc as w, isoTimeFieldNamesAsc as j, getEpochSec as M, getEpochMilli as y, getEpochMicro as N, getEpochNano as B, createNativeStandardOps as Y, forbiddenValueOf as A, bindArgs as E, excludePropsByName as V, PlainDateBranding as J, PlainYearMonthBranding as L, PlainMonthDayBranding as q, plainMonthDayWithFields as k, plainMonthDaysEqual as x, plainMonthDayToPlainDate as R, formatPlainMonthDayIso as W, constructPlainMonthDaySlots as G, copyOptions as U, isObjectLike as z, refineOverflowOptions as H, refinePlainMonthDayBag as K, parsePlainMonthDay as Q, isoCalendarId as X, requireFunction as $, createInstantSlots as _, createPlainDateTimeSlots as ee, compareBigNanos as te, validateTimeZoneGap as ne, bigNanoToNumber as oe, diffBigNanos as re, validateTimeZoneOffset as ae, queryNativeTimeZone as ie, moveInstant as se, diffInstants as le, roundInstant as ce, instantsEqual as ue, requireObjectLike as de, instantToZonedDateTime as fe, formatInstantIso as me, constructInstantSlots as Se, InstantBranding as Oe, ZonedDateTimeBranding as Te, parseInstant as pe, numberToBigNano as he, epochSecToInstant as De, epochMilliToInstant as Pe, epochMicroToInstant as Ce, epochNanoToInstant as ge, compareInstants as Ze, nanoInMilli as be, formatOffsetNano as Fe, epochNanoToIso as Ie, refineEpochDisambigOptions as ve, getSingleInstantFor as we, isTimeZoneSlotsEqual as je, refineTimeZoneId as Me, resolveTimeZoneId as ye, parseTimeZoneId as Ne, plainTimeWithFields as Be, movePlainTime as Ye, diffPlainTimes as Ae, roundPlainTime as Ee, plainTimesEqual as Ve, plainTimeToZonedDateTime as Je, plainTimeToPlainDateTime as Le, formatPlainTimeIso as qe, constructPlainTimeSlots as ke, PlainTimeBranding as xe, zonedDateTimeToPlainTime as Re, PlainDateTimeBranding as We, createPlainTimeSlots as Ge, refinePlainTimeBag as Ue, parsePlainTime as ze, compareIsoTimeFields as He, plainYearMonthWithFields as Ke, movePlainYearMonth as Qe, diffPlainYearMonth as Xe, plainYearMonthsEqual as $e, plainYearMonthToPlainDate as _e, formatPlainYearMonthIso as et, constructPlainYearMonthSlots as tt, refinePlainYearMonthBag as nt, parsePlainYearMonth as ot, compareIsoDateFields as rt, plainDateTimeWithFields as at, slotsWithCalendar as it, plainDateTimeWithPlainDate as st, plainDateTimeWithPlainTime as lt, movePlainDateTime as ct, diffPlainDateTimes as ut, roundPlainDateTime as dt, plainDateTimesEqual as ft, plainDateTimeToZonedDateTime as mt, plainDateTimeToPlainYearMonth as St, plainDateTimeToPlainMonthDay as Ot, formatPlainDateTimeIso as Tt, constructPlainDateTimeSlots as pt, zonedDateTimeToPlainDateTime as ht, isoTimeFieldDefaults as Dt, refinePlainDateTimeBag as Pt, parsePlainDateTime as Ct, compareIsoDateTimeFields as gt, plainDateWithFields as Zt, movePlainDate as bt, diffPlainDates as Ft, plainDatesEqual as It, plainDateToZonedDateTime as vt, plainDateToPlainDateTime as wt, plainDateToPlainYearMonth as jt, plainDateToPlainMonthDay as Mt, formatPlainDateIso as yt, constructPlainDateSlots as Nt, zonedDateTimeToPlainDate as Bt, refinePlainDateBag as Yt, parsePlainDate as At, unitNamesAsc as Et, createDurationSlots as Vt, getDurationBlank as Jt, constructDurationSlots as Lt, DurationBranding as qt, durationWithFields as kt, negateDuration as xt, absDuration as Rt, addDurations as Wt, roundDuration as Gt, totalDuration as Ut, formatDurationIso as zt, refineDurationBag as Ht, parseDuration as Kt, refineMaybeZonedDateTimeBag as Qt, parseRelativeToSlots as Xt, compareDurations as $t, refineDateDiffOptions as _t, dateFieldNamesAlpha as en, forbiddenField as tn, excludeUndefinedProps as nn, requireNonNullish as on, refineCalendarId as rn, resolveCalendarId as an, parseCalendarId as sn, getRequiredDateFields as ln, getRequiredMonthDayFields as cn, getRequiredYearMonthFields as un, computeZonedHoursInDay as dn, zonedEpochSlotsToIso as fn, buildZonedIsoFields as mn, zonedDateTimeWithFields as Sn, slotsWithTimeZone as On, zonedDateTimeWithPlainDate as Tn, zonedDateTimeWithPlainTime as pn, moveZonedDateTime as hn, diffZonedDateTimes as Dn, roundZonedDateTime as Pn, computeZonedStartOfDay as Cn, zonedDateTimesEqual as gn, zonedDateTimeToInstant as Zn, zonedDateTimeToPlainYearMonth as bn, zonedDateTimeToPlainMonthDay as Fn, formatZonedDateTimeIso as In, constructZonedDateTimeSlots as vn, refineZonedFieldOptions as wn, refineZonedDateTimeBag as jn, parseZonedDateTime as Mn, compareZonedDateTimes as yn, getCurrentTimeZoneId as Nn, getCurrentEpochNano as Bn, createZonedDateTimeSlots as Yn, getCurrentIsoDateTime as An, RawDateTimeFormat as En, pluckProps as Vn, memoize as Jn, invalidFormatType as Ln, createFormatForPrep as qn, mismatchingFormatTypes as kn } from \"./internal.js\";\n\nconst xn = {\n Instant: t,\n PlainDateTime: n,\n PlainDate: o,\n PlainTime: r,\n PlainYearMonth: a,\n PlainMonthDay: i\n}, Rn = /*@__PURE__*/ e(t), Wn = /*@__PURE__*/ e(s), Gn = /*@__PURE__*/ e(n), Un = /*@__PURE__*/ e(o), zn = /*@__PURE__*/ e(r), Hn = /*@__PURE__*/ e(a), Kn = /*@__PURE__*/ e(i), Qn = {\n era: l,\n eraYear: c,\n year: u,\n month: d,\n daysInMonth: d,\n daysInYear: d,\n inLeapYear: f,\n monthsInYear: d\n}, Xn = {\n monthCode: m\n}, $n = {\n day: d\n}, _n = {\n dayOfWeek: d,\n dayOfYear: d,\n weekOfYear: S,\n yearOfWeek: c,\n daysInWeek: d\n}, eo = /*@__PURE__*/ Object.assign({}, Qn, Xn, $n, _n), to = /*@__PURE__*/ new WeakMap, no = /*@__PURE__*/ to.get.bind(to), oo = /*@__PURE__*/ to.set.bind(to), ro = {\n ...createCalendarFieldMethods(Qn, [ L ]),\n ...createCalendarFieldMethods(_n, []),\n ...createCalendarFieldMethods(Xn, [ L, q ]),\n ...createCalendarFieldMethods($n, [ q ])\n}, ao = /*@__PURE__*/ createCalendarGetters(eo), io = /*@__PURE__*/ createCalendarGetters({\n ...Qn,\n ...Xn\n}), so = /*@__PURE__*/ createCalendarGetters({\n ...Xn,\n ...$n\n}), lo = {\n calendarId: e => I(e.calendar)\n}, co = /*@__PURE__*/ T(((e, t) => function(n) {\n const {i: o} = this;\n return e(o[t](Yo(v(n, o))));\n}), eo), uo = /*@__PURE__*/ b((e => t => t[e]), F.concat(\"sign\")), fo = /*@__PURE__*/ b(((e, t) => e => e[j[t]]), w), mo = {\n epochSeconds: M,\n epochMilliseconds: y,\n epochMicroseconds: N,\n epochNanoseconds: B\n}, So = /*@__PURE__*/ E(V, new Set([ \"branding\" ])), [Oo, To, po] = createSlotClass(q, E(G, refineCalendarSlot), {\n ...lo,\n ...so\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return To(k(_o, e, this, rejectInvalidBag(t), n));\n },\n equals: (e, t) => x(e, toPlainMonthDaySlots(t)),\n toPlainDate(e, t) {\n return Yo(R($o, e, this, t));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Kn(t, n, e);\n return o.format(r);\n },\n toString: W,\n toJSON: e => W(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => To(toPlainMonthDaySlots(e, t))\n}), ho = {\n getOffsetNanosecondsFor: getOffsetNanosecondsForAdapter,\n getPossibleInstantsFor(e, t, n) {\n const o = [ ...t.call(e, No(ee(n, X))) ].map((e => go(e).epochNanoseconds)), r = o.length;\n return r > 1 && (o.sort(te), ne(oe(re(o[0], o[r - 1])))), o;\n }\n}, Do = {\n getOffsetNanosecondsFor: getOffsetNanosecondsForAdapter\n}, [Po, Co, go] = createSlotClass(Oe, Se, mo, {\n add: (e, t) => Co(se(0, e, toDurationSlots(t))),\n subtract: (e, t) => Co(se(1, e, toDurationSlots(t))),\n until: (e, t, n) => ar(le(0, e, toInstantSlots(t), n)),\n since: (e, t, n) => ar(le(1, e, toInstantSlots(t), n)),\n round: (e, t) => Co(ce(e, t)),\n equals: (e, t) => ue(e, toInstantSlots(t)),\n toZonedDateTime(e, t) {\n const n = de(t);\n return dr(fe(e, refineTimeZoneSlot(n.timeZone), refineCalendarSlot(n.calendar)));\n },\n toZonedDateTimeISO: (e, t) => dr(fe(e, refineTimeZoneSlot(t))),\n toLocaleString(e, t, n) {\n const [o, r] = Rn(t, n, e);\n return o.format(r);\n },\n toString: (e, t) => me(refineTimeZoneSlot, createTimeZoneOffsetOps, e, t),\n toJSON: e => me(refineTimeZoneSlot, createTimeZoneOffsetOps, e),\n valueOf: neverValueOf\n}, {\n from: e => Co(toInstantSlots(e)),\n fromEpochSeconds: e => Co(De(e)),\n fromEpochMilliseconds: e => Co(Pe(e)),\n fromEpochMicroseconds: e => Co(Ce(e)),\n fromEpochNanoseconds: e => Co(ge(e)),\n compare: (e, t) => Ze(toInstantSlots(e), toInstantSlots(t))\n}), [Zo, bo] = createSlotClass(\"TimeZone\", (e => {\n const t = Me(e);\n return {\n branding: \"TimeZone\",\n id: t,\n o: ie(t)\n };\n}), {\n id: e => e.id\n}, {\n getPossibleInstantsFor: ({o: e}, t) => e.getPossibleInstantsFor(toPlainDateTimeSlots(t)).map((e => Co(_(e)))),\n getOffsetNanosecondsFor: ({o: e}, t) => e.getOffsetNanosecondsFor(toInstantSlots(t).epochNanoseconds),\n getOffsetStringFor(e, t) {\n const n = toInstantSlots(t).epochNanoseconds, o = createAdapterOps(this, Do).getOffsetNanosecondsFor(n);\n return Fe(o);\n },\n getPlainDateTimeFor(e, t, n = X) {\n const o = toInstantSlots(t).epochNanoseconds, r = createAdapterOps(this, Do).getOffsetNanosecondsFor(o);\n return No(ee(Ie(o, r), refineCalendarSlot(n)));\n },\n getInstantFor(e, t, n) {\n const o = toPlainDateTimeSlots(t), r = ve(n), a = createAdapterOps(this);\n return Co(_(we(a, o, r)));\n },\n getNextTransition: ({o: e}, t) => getImplTransition(1, e, t),\n getPreviousTransition: ({o: e}, t) => getImplTransition(-1, e, t),\n equals(e, t) {\n return !!je(this, refineTimeZoneSlot(t));\n },\n toString: e => e.id,\n toJSON: e => e.id\n}, {\n from(e) {\n const t = refineTimeZoneSlot(e);\n return \"string\" == typeof t ? new Zo(t) : t;\n }\n}), Fo = /*@__PURE__*/ createProtocolValidator(Object.keys(ho)), [Io, vo] = createSlotClass(xe, ke, fo, {\n getISOFields: So,\n with(e, t, n) {\n return vo(Be(this, rejectInvalidBag(t), n));\n },\n add: (e, t) => vo(Ye(0, e, toDurationSlots(t))),\n subtract: (e, t) => vo(Ye(1, e, toDurationSlots(t))),\n until: (e, t, n) => ar(Ae(0, e, toPlainTimeSlots(t), n)),\n since: (e, t, n) => ar(Ae(1, e, toPlainTimeSlots(t), n)),\n round: (e, t) => vo(Ee(e, t)),\n equals: (e, t) => Ve(e, toPlainTimeSlots(t)),\n toZonedDateTime: (e, t) => dr(Je(refineTimeZoneSlot, toPlainDateSlots, createTimeZoneOps, e, t)),\n toPlainDateTime: (e, t) => No(Le(e, toPlainDateSlots(t))),\n toLocaleString(e, t, n) {\n const [o, r] = zn(t, n, e);\n return o.format(r);\n },\n toString: qe,\n toJSON: e => qe(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => vo(toPlainTimeSlots(e, t)),\n compare: (e, t) => He(toPlainTimeSlots(e), toPlainTimeSlots(t))\n}), [wo, jo, Mo] = createSlotClass(L, E(tt, refineCalendarSlot), {\n ...lo,\n ...io\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return jo(Ke(Xo, e, this, rejectInvalidBag(t), n));\n },\n add: (e, t, n) => jo(Qe(nr, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => jo(Qe(nr, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(Xe(or, 0, e, toPlainYearMonthSlots(t), n)),\n since: (e, t, n) => ar(Xe(or, 1, e, toPlainYearMonthSlots(t), n)),\n equals: (e, t) => $e(e, toPlainYearMonthSlots(t)),\n toPlainDate(e, t) {\n return Yo(_e($o, e, this, t));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Hn(t, n, e);\n return o.format(r);\n },\n toString: et,\n toJSON: e => et(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => jo(toPlainYearMonthSlots(e, t)),\n compare: (e, t) => rt(toPlainYearMonthSlots(e), toPlainYearMonthSlots(t))\n}), [yo, No] = createSlotClass(We, E(pt, refineCalendarSlot), {\n ...lo,\n ...ao,\n ...fo\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return No(at($o, e, this, rejectInvalidBag(t), n));\n },\n withCalendar: (e, t) => No(it(e, refineCalendarSlot(t))),\n withPlainDate: (e, t) => No(st(e, toPlainDateSlots(t))),\n withPlainTime: (e, t) => No(lt(e, optionalToPlainTimeFields(t))),\n add: (e, t, n) => No(ct(er, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => No(ct(er, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(ut(tr, 0, e, toPlainDateTimeSlots(t), n)),\n since: (e, t, n) => ar(ut(tr, 1, e, toPlainDateTimeSlots(t), n)),\n round: (e, t) => No(dt(e, t)),\n equals: (e, t) => ft(e, toPlainDateTimeSlots(t)),\n toZonedDateTime: (e, t, n) => dr(mt(createTimeZoneOps, e, refineTimeZoneSlot(t), n)),\n toPlainDate: e => Yo(v(e)),\n toPlainTime: e => vo(Ge(e)),\n toPlainYearMonth(e) {\n return jo(St(Ho, e, this));\n },\n toPlainMonthDay(e) {\n return To(Ot(Qo, e, this));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Gn(t, n, e);\n return o.format(r);\n },\n toString: Tt,\n toJSON: e => Tt(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => No(toPlainDateTimeSlots(e, t)),\n compare: (e, t) => gt(toPlainDateTimeSlots(e), toPlainDateTimeSlots(t))\n}), [Bo, Yo, Ao] = createSlotClass(J, E(Nt, refineCalendarSlot), {\n ...lo,\n ...ao\n}, {\n getISOFields: So,\n getCalendar: createCalendarFromSlots,\n with(e, t, n) {\n return Yo(Zt($o, e, this, rejectInvalidBag(t), n));\n },\n withCalendar: (e, t) => Yo(it(e, refineCalendarSlot(t))),\n add: (e, t, n) => Yo(bt(er, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => Yo(bt(er, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(Ft(tr, 0, e, toPlainDateSlots(t), n)),\n since: (e, t, n) => ar(Ft(tr, 1, e, toPlainDateSlots(t), n)),\n equals: (e, t) => It(e, toPlainDateSlots(t)),\n toZonedDateTime(e, t) {\n const n = !z(t) || t instanceof Zo ? {\n timeZone: t\n } : t;\n return dr(vt(refineTimeZoneSlot, toPlainTimeSlots, createTimeZoneOps, e, n));\n },\n toPlainDateTime: (e, t) => No(wt(e, optionalToPlainTimeFields(t))),\n toPlainYearMonth(e) {\n return jo(jt(Ho, e, this));\n },\n toPlainMonthDay(e) {\n return To(Mt(Qo, e, this));\n },\n toLocaleString(e, t, n) {\n const [o, r] = Un(t, n, e);\n return o.format(r);\n },\n toString: yt,\n toJSON: e => yt(e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => Yo(toPlainDateSlots(e, t)),\n compare: (e, t) => rt(toPlainDateSlots(e), toPlainDateSlots(t))\n}), Eo = {\n fields(e, t, n) {\n return [ ...t.call(e, n) ];\n }\n}, Vo = /*@__PURE__*/ Object.assign({\n dateFromFields(e, t, n, o) {\n return Ao(t.call(e, Object.assign(Object.create(null), n), o));\n }\n}, Eo), Jo = /*@__PURE__*/ Object.assign({\n yearMonthFromFields(e, t, n, o) {\n return Mo(t.call(e, Object.assign(Object.create(null), n), o));\n }\n}, Eo), Lo = /*@__PURE__*/ Object.assign({\n monthDayFromFields(e, t, n, o) {\n return po(t.call(e, Object.assign(Object.create(null), n), o));\n }\n}, Eo), qo = {\n mergeFields(e, t, n, o) {\n return de(t.call(e, Object.assign(Object.create(null), n), Object.assign(Object.create(null), o)));\n }\n}, ko = /*@__PURE__*/ Object.assign({}, Vo, qo), xo = /*@__PURE__*/ Object.assign({}, Jo, qo), Ro = /*@__PURE__*/ Object.assign({}, Lo, qo), Wo = {\n dateAdd(e, t, n, o, r) {\n return Ao(t.call(e, Yo(v(n, e)), ar(Vt(o)), r));\n }\n}, Go = /*@__PURE__*/ Object.assign({}, Wo, {\n dateUntil(e, t, n, o, r, a) {\n return ir(t.call(e, Yo(v(n, e)), Yo(v(o, e)), Object.assign(Object.create(null), a, {\n largestUnit: Et[r]\n })));\n }\n}), Uo = /*@__PURE__*/ Object.assign({}, Wo, {\n day: dayAdapter\n}), zo = /*@__PURE__*/ Object.assign({}, Go, {\n day: dayAdapter\n}), Ho = /*@__PURE__*/ createCompoundOpsCreator(Jo), Ko = /*@__PURE__*/ createCompoundOpsCreator(Vo), Qo = /*@__PURE__*/ createCompoundOpsCreator(Lo), Xo = /*@__PURE__*/ createCompoundOpsCreator(xo), $o = /*@__PURE__*/ createCompoundOpsCreator(ko), _o = /*@__PURE__*/ createCompoundOpsCreator(Ro), er = /*@__PURE__*/ createCompoundOpsCreator(Wo), tr = /*@__PURE__*/ createCompoundOpsCreator(Go), nr = /*@__PURE__*/ createCompoundOpsCreator(Uo), or = /*@__PURE__*/ createCompoundOpsCreator(zo), [rr, ar, ir] = createSlotClass(qt, Lt, {\n ...uo,\n blank: Jt\n}, {\n with: (e, t) => ar(kt(e, t)),\n negated: e => ar(xt(e)),\n abs: e => ar(Rt(e)),\n add: (e, t, n) => ar(Wt(refinePublicRelativeTo, tr, createTimeZoneOps, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => ar(Wt(refinePublicRelativeTo, tr, createTimeZoneOps, 1, e, toDurationSlots(t), n)),\n round: (e, t) => ar(Gt(refinePublicRelativeTo, tr, createTimeZoneOps, e, t)),\n total: (e, t) => Ut(refinePublicRelativeTo, tr, createTimeZoneOps, e, t),\n toLocaleString(e, t, n) {\n return Intl.DurationFormat ? new Intl.DurationFormat(t, n).format(this) : zt(e);\n },\n toString: zt,\n toJSON: e => zt(e),\n valueOf: neverValueOf\n}, {\n from: e => ar(toDurationSlots(e)),\n compare: (e, t, n) => $t(refinePublicRelativeTo, er, createTimeZoneOps, toDurationSlots(e), toDurationSlots(t), n)\n}), sr = {\n toString: e => e.id,\n toJSON: e => e.id,\n ...ro,\n dateAdd: ({id: e, o: t}, n, o, r) => Yo(v(t.dateAdd(toPlainDateSlots(n), toDurationSlots(o), r), e)),\n dateUntil: ({o: e}, t, n, o) => ar(Vt(e.dateUntil(toPlainDateSlots(t), toPlainDateSlots(n), _t(o)))),\n dateFromFields: ({id: e, o: t}, n, o) => Yo(Yt(t, n, o, ln(e))),\n yearMonthFromFields: ({id: e, o: t}, n, o) => jo(nt(t, n, o, un(e))),\n monthDayFromFields: ({id: e, o: t}, n, o) => To(K(t, 0, n, o, cn(e))),\n fields({o: e}, t) {\n const n = new Set(en), o = [];\n for (const e of t) {\n if (m(e), !n.has(e)) {\n throw new RangeError(tn(e));\n }\n n.delete(e), o.push(e);\n }\n return e.fields(o);\n },\n mergeFields: ({o: e}, t, n) => e.mergeFields(nn(on(t)), nn(on(n)))\n}, [lr] = createSlotClass(\"Calendar\", (e => {\n const t = rn(e);\n return {\n branding: \"Calendar\",\n id: t,\n o: Y(t)\n };\n}), {\n id: e => e.id\n}, sr, {\n from(e) {\n const t = refineCalendarSlot(e);\n return \"string\" == typeof t ? new lr(t) : t;\n }\n}), cr = /*@__PURE__*/ createProtocolValidator(Object.keys(sr).slice(4)), [ur, dr] = createSlotClass(Te, E(vn, refineCalendarSlot, refineTimeZoneSlot), {\n ...mo,\n ...lo,\n ...adaptDateMethods(ao),\n ...adaptDateMethods(fo),\n offset: e => Fe(slotsToIso(e).offsetNanoseconds),\n offsetNanoseconds: e => slotsToIso(e).offsetNanoseconds,\n timeZoneId: e => I(e.timeZone),\n hoursInDay: e => dn(createTimeZoneOps, e)\n}, {\n getISOFields: e => mn(createTimeZoneOffsetOps, e),\n getCalendar: createCalendarFromSlots,\n getTimeZone: ({timeZone: e}) => \"string\" == typeof e ? new Zo(e) : e,\n with(e, t, n) {\n return dr(Sn($o, createTimeZoneOps, e, this, rejectInvalidBag(t), n));\n },\n withCalendar: (e, t) => dr(it(e, refineCalendarSlot(t))),\n withTimeZone: (e, t) => dr(On(e, refineTimeZoneSlot(t))),\n withPlainDate: (e, t) => dr(Tn(createTimeZoneOps, e, toPlainDateSlots(t))),\n withPlainTime: (e, t) => dr(pn(createTimeZoneOps, e, optionalToPlainTimeFields(t))),\n add: (e, t, n) => dr(hn(er, createTimeZoneOps, 0, e, toDurationSlots(t), n)),\n subtract: (e, t, n) => dr(hn(er, createTimeZoneOps, 1, e, toDurationSlots(t), n)),\n until: (e, t, n) => ar(Vt(Dn(tr, createTimeZoneOps, 0, e, toZonedDateTimeSlots(t), n))),\n since: (e, t, n) => ar(Vt(Dn(tr, createTimeZoneOps, 1, e, toZonedDateTimeSlots(t), n))),\n round: (e, t) => dr(Pn(createTimeZoneOps, e, t)),\n startOfDay: e => dr(Cn(createTimeZoneOps, e)),\n equals: (e, t) => gn(e, toZonedDateTimeSlots(t)),\n toInstant: e => Co(Zn(e)),\n toPlainDateTime: e => No(ht(createTimeZoneOffsetOps, e)),\n toPlainDate: e => Yo(Bt(createTimeZoneOffsetOps, e)),\n toPlainTime: e => vo(Re(createTimeZoneOffsetOps, e)),\n toPlainYearMonth(e) {\n return jo(bn(Ho, e, this));\n },\n toPlainMonthDay(e) {\n return To(Fn(Qo, e, this));\n },\n toLocaleString(e, t, n = {}) {\n const [o, r] = Wn(t, n, e);\n return o.format(r);\n },\n toString: (e, t) => In(createTimeZoneOffsetOps, e, t),\n toJSON: e => In(createTimeZoneOffsetOps, e),\n valueOf: neverValueOf\n}, {\n from: (e, t) => dr(toZonedDateTimeSlots(e, t)),\n compare: (e, t) => yn(toZonedDateTimeSlots(e), toZonedDateTimeSlots(t))\n}), fr = /*@__PURE__*/ Object.defineProperties({}, {\n ...h(\"Temporal.Now\"),\n ...p({\n timeZoneId: () => Nn(),\n instant: () => Co(_(Bn())),\n zonedDateTime: (e, t = Nn()) => dr(Yn(Bn(), refineTimeZoneSlot(t), refineCalendarSlot(e))),\n zonedDateTimeISO: (e = Nn()) => dr(Yn(Bn(), refineTimeZoneSlot(e), X)),\n plainDateTime: (e, t = Nn()) => No(ee(An(createTimeZoneOffsetOps(refineTimeZoneSlot(t))), refineCalendarSlot(e))),\n plainDateTimeISO: (e = Nn()) => No(ee(An(createTimeZoneOffsetOps(refineTimeZoneSlot(e))), X)),\n plainDate: (e, t = Nn()) => Yo(v(An(createTimeZoneOffsetOps(refineTimeZoneSlot(t))), refineCalendarSlot(e))),\n plainDateISO: (e = Nn()) => Yo(v(An(createTimeZoneOffsetOps(refineTimeZoneSlot(e))), X)),\n plainTimeISO: (e = Nn()) => vo(Ge(An(createTimeZoneOffsetOps(refineTimeZoneSlot(e)))))\n })\n}), mr = /*@__PURE__*/ Object.defineProperties({}, {\n ...h(\"Temporal\"),\n ...p({\n PlainYearMonth: wo,\n PlainMonthDay: Oo,\n PlainDate: Bo,\n PlainTime: Io,\n PlainDateTime: yo,\n ZonedDateTime: ur,\n Instant: Po,\n Calendar: lr,\n TimeZone: Zo,\n Duration: rr,\n Now: fr\n })\n}), Sr = /*@__PURE__*/ createDateTimeFormatClass(), Or = /*@__PURE__*/ new WeakMap, Tr = /*@__PURE__*/ Object.defineProperties(Object.create(Intl), p({\n DateTimeFormat: Sr\n}));\n\nexport { Sr as DateTimeFormat, Tr as IntlExtended, mr as Temporal, toTemporalInstant };\n",
|
|
34
|
+
"import { Temporal } from \"temporal-polyfill\";\n\nimport { Controller } from \"../http/Controller\";\nimport { HttpRequest } from \"../http/HttpRequest\";\nimport { ValidationError } from \"../http\";\nimport { AuthorizationError } from \"../http/errors\";\nimport { Auth } from \"../facades\";\nimport { app } from \"../foundation/app\";\nimport { Translator } from \"../i18n/Translator\";\nimport type { Invitation, User } from \"./types\";\nimport { AuthManager } from \"./AuthManager\";\nimport { INTENDED_URL_PARAM, isSecureRequest, safeRedirectPath } from \"../utils/intendedUrl\";\n\n/** Holds a `?redirect=` across the OAuth provider round trip. */\nconst INTENDED_URL_COOKIE = \"intended_url\";\n\nclass SignInRequest extends HttpRequest<\n {\n email: string;\n password: string;\n },\n Record<string, string>\n> {\n schema = {\n email: {\n required: \"Email is required\",\n string: \"Invalid email\",\n email: \"Invalid email\",\n },\n password: {\n required: \"Password is required\",\n },\n };\n}\n\nclass ForgotPasswordRequest extends HttpRequest<\n {\n email: string;\n },\n Record<string, string>\n> {\n schema = {\n email: {\n required: \"Email is required\",\n email: \"Invalid email\",\n },\n };\n}\n\nclass ResetPasswordRequest extends HttpRequest<\n {\n password: string;\n token: string;\n },\n Record<string, string>\n> {\n schema = {\n password: {\n required: \"Password is required\",\n password: \"Invalid password\",\n },\n };\n}\n\nexport class AuthController extends Controller {\n async me() {\n const user = await Auth.user();\n\n if (!user) {\n throw new AuthorizationError();\n }\n\n return user;\n }\n\n async verifyEmail(req = new HttpRequest<{ token: string }>()) {\n const input = await req.input();\n const { userProvider } = app(AuthManager);\n\n const user = await userProvider.findUserByVerificationToken(\n input.get(\"token\"),\n );\n\n if (!user) {\n return { email: null };\n }\n\n await userProvider.verifyUser(user.email);\n\n return {\n email: user.email,\n };\n }\n\n async signInWithMagicLink(req = new HttpRequest()) {\n const auth = app(AuthManager);\n const { userProvider } = auth;\n const token = req.search.get(\"token\");\n const email = decodeURIComponent(req.search.get(\"email\"))\n .toLowerCase()\n .trim();\n\n let magicLink = null;\n\n try {\n magicLink = await userProvider.findUserMagicLinkToken({\n email,\n token,\n });\n } catch (err) {\n console.log(err);\n return { error: JSON.stringify(err) };\n }\n\n if (!magicLink) {\n return { error: \"Invalid token\" };\n }\n\n await userProvider.verifyUser(email);\n await userProvider.deleteMagicLinkToken(email);\n const session = await auth.createOrUpdateSession({ email });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(session, req.search.toJSON());\n\n return { session };\n }\n\n async signInWithPinV2(\n req = new HttpRequest<{ email: string; pin: string }>(),\n ) {\n const auth = app(AuthManager);\n const { userProvider } = auth;\n const input = await req.input();\n const { email: _email, pin } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const magicLinkToken = await userProvider.findUserMagicLinkToken({\n email,\n pin,\n });\n\n if (!magicLinkToken) {\n throw new ValidationError({\n pin: [\"Invalid pin\"],\n });\n }\n\n await userProvider.deleteMagicLinkToken(email);\n await userProvider.verifyUser(email);\n\n const session = await auth.createOrUpdateSessionV2({ email });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(session, req.search.toJSON());\n\n return session;\n }\n\n async signInWithPin(req = new HttpRequest<{ email: string; pin: string }>()) {\n const auth = app(AuthManager);\n const { userProvider } = auth;\n const input = await req.input();\n const { email: _email, pin } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const magicLinkToken = await userProvider.findUserMagicLinkToken({\n email,\n pin,\n });\n\n if (!magicLinkToken) {\n throw new ValidationError({\n pin: [\"Invalid pin\"],\n });\n }\n\n await userProvider.deleteMagicLinkToken(email);\n await userProvider.verifyUser(email);\n\n const session = await auth.createOrUpdateSession({ email });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(session, req.search.toJSON());\n\n return { session };\n }\n\n async signInV2(req = new SignInRequest()) {\n const input = await req.input();\n const { email: _email, password } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const auth = app(AuthManager);\n\n const user = await auth.userProvider.findUserByEmailAddress(\n email,\n auth.config.verifyEmail,\n );\n\n if (!user) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const isPasswordValid = await auth.config.verifyPassword(\n password,\n user.password,\n );\n\n if (!isPasswordValid) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const session = await auth.createOrUpdateSessionV2({\n email: user.email,\n id: user.id,\n });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(user, req.search.toJSON());\n\n const { password: _, ...rest } = user;\n\n return rest;\n }\n\n async signIn(req = new SignInRequest()) {\n const input = await req.input();\n const { email: _email, password } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const auth = app(AuthManager);\n\n const user = await auth.userProvider.findUserByEmailAddress(\n email,\n auth.config.verifyEmail,\n );\n\n if (!user) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const isPasswordValid = await auth.config.verifyPassword(\n password,\n user.password,\n );\n\n if (!isPasswordValid) {\n throw new ValidationError({\n invalid_credentials: [\"Invalid credentials\"],\n });\n }\n\n const session = await auth.createOrUpdateSession({\n email: user.email,\n id: user.id,\n });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n await auth.config.onSignIn(user, req.search.toJSON());\n\n const { password: _, ...rest } = user;\n\n return rest;\n }\n\n async signUp() {\n const auth = app(AuthManager);\n const { userProvider, config } = auth;\n const req = new config.signUpRequest();\n const input = await req.input();\n const {\n email: _email,\n password,\n name,\n invitationId,\n } = input.toJSON();\n const email = _email.toLowerCase().trim();\n\n const user = await userProvider.findUserByEmailAddress(email, false);\n\n if (user) {\n throw new ValidationError({\n email: [\"Email address already exists\"],\n });\n }\n\n const hashedPassword = await config.hashPassword(password);\n\n const locale = app(Translator).detectLocale(req);\n\n let invitation: Invitation;\n if (invitationId) {\n invitation = await userProvider.findInvitation(invitationId, email);\n }\n\n let newUser: User;\n // `\"\"` rather than left undefined, because only the `else` branch below\n // assigns it. An invited sign-up sets `emailVerifiedAt` and never writes a\n // token, so there is nothing to verify — the same reason `oauthCallback`\n // passes `\"\"` — and `onSignUp` is typed `verificationToken: string`. Left\n // undeclared, the invited path handed the hook `undefined` against that\n // signature.\n let verificationToken = \"\";\n\n // Both branches write the user and everything that has to exist alongside\n // it in one transaction, `config.onUserCreated` last. A throw from the hook\n // takes the user with it, which is the whole point of the hook: an app\n // provisioning an organization in `onSignUp` — which fires after the commit\n // — gets a user with no organization when that insert fails.\n if (invitation) {\n newUser = await userProvider.transaction(async () => {\n // Consuming the invitation belongs in here too. Deleted before the\n // transaction, a rollback would leave the invite burned and no user to\n // show for it, so the invitee could not retry.\n await userProvider.deleteInvitationById(invitationId);\n\n const user = await userProvider.createUser({\n email,\n name,\n password: hashedPassword,\n emailVerifiedAt: new Date(),\n locale,\n });\n await userProvider.createAccount({\n organizationId: invitation.organizationId,\n userId: user.id,\n organizationRole: invitation.role,\n });\n\n await config.onUserCreated(user);\n\n return user;\n });\n } else {\n // Outside the transaction: it is a hash, not a query, and the\n // transaction holds a connection for as long as it is open.\n verificationToken = await config.generateEmailVerificationToken(email);\n\n newUser = await userProvider.transaction(async () => {\n const user = await userProvider.createUser({\n email,\n name,\n password: hashedPassword,\n verificationToken,\n locale,\n });\n\n await config.onUserCreated(user);\n\n return user;\n });\n }\n\n await config.onSignUp(newUser, verificationToken, req.search.toJSON());\n\n return newUser;\n }\n\n async signOut(req = new HttpRequest()) {\n // Both transports the `auth` middleware accepts, in its order: a browser's\n // cookie, or the `access_token` header a native client sends. Reading the\n // cookie alone revoked nothing for a header client — and, because\n // `Auth.user()` reads the cookie too, that sign-out answered `401` before\n // it ever reached the revocation below.\n const token =\n req.cookies.get(\"access_token\") ?? req.headers.get(\"access_token\");\n\n const { userProvider, config } = app(AuthManager);\n\n // Looked up, rather than resolved through `Auth.user()`. Two reasons: it\n // reads the cookie alone, and it goes through `getSession`, which slides a\n // session past half its window and writes the cookie again — a second\n // `Set-Cookie` for `access_token` racing the one below that clears it,\n // since a request's cookies are a set of serialized strings, not a map.\n const session = token\n ? await userProvider.findSession({\n token,\n userAgent: req.headers.get(\"User-Agent\"),\n })\n : null;\n\n await userProvider.deleteSession({ token });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n \"\",\n app(AuthManager).accessTokenCookieOptions(req, new Date(0)),\n );\n // A cookie set before `cookieDomain` was turned on is scoped to the host\n // alone, and the one above does not clear it.\n if (app(AuthManager).cookieDomain(req)) {\n req.ctx().setCookie(\"access_token\", \"\", {\n ...app(AuthManager).accessTokenCookieOptions(req, new Date(0)),\n domain: undefined,\n });\n }\n\n // No session is no longer a refusal: signing out is what a client does when\n // it wants none, and enforcing expiry makes \"it ran out a moment ago\" an\n // ordinary case — one whose cookie the old `401` left in place, with no way\n // to clear it. The hook still only ever sees a real user, as it did when\n // `Auth.user()` stood in front of it.\n if (session?.user) {\n session.user[\"extension\"] = await config.extendSession(session.user);\n await config.onSignOut(session.user);\n }\n\n return {};\n }\n\n async forgotPassword(req = new ForgotPasswordRequest()) {\n const input = await req.input();\n const email = input.get(\"email\").toLowerCase().trim();\n\n const { userProvider, config } = app(AuthManager);\n\n const user = await userProvider.findUserByEmailAddress(\n email,\n config.verifyEmail,\n );\n\n if (!user) {\n return {};\n }\n\n const token = await config.generateForgotPasswordToken(user);\n\n // TODO: Do not create token if already there is one that is valid\n // Prevent token spamming\n await userProvider.createPasswordResetToken({\n user,\n token,\n });\n\n await config.onForgotPassword(user, token);\n\n return {};\n }\n\n async resetPassword(req = new ResetPasswordRequest()) {\n const { userProvider, config } = app(AuthManager);\n const input = await req.input();\n const { password, token } = input.toJSON();\n\n const passwordResetToken = await userProvider.findPasswordResetToken({\n token,\n });\n\n if (!passwordResetToken) {\n throw new ValidationError({\n token: [\"Invalid token\"],\n });\n }\n\n const isTokenExpired = Temporal.Instant.from(\n passwordResetToken.createdAt.toISOString(),\n )\n .add({ hours: 24 })\n .until(Temporal.Now.instant()).sign;\n\n if (isTokenExpired >= 0) {\n throw new ValidationError({\n token: [\"Token expired\"],\n });\n }\n\n await userProvider.deletePasswordResetToken({ token });\n\n const user = await userProvider.findUserByEmailAddress(\n passwordResetToken.user.email,\n config.verifyEmail,\n );\n\n if (!user) {\n throw new ValidationError({\n email: [\"User not found\"],\n });\n }\n\n const hashedPassword = await config.hashPassword(password);\n\n await userProvider.updateUserPassword({\n id: user.id,\n password: hashedPassword,\n });\n\n await userProvider.deleteAllUserSessions(user.id);\n\n await config.onResetPassword(user);\n\n return {};\n }\n\n async changePassword(\n req = new HttpRequest<{ oldPassword: string; newPassword: string }>(),\n ) {\n const { userProvider, config } = app(AuthManager);\n const user = await Auth.user();\n const input = await req.input();\n const { oldPassword, newPassword } = input.toJSON();\n\n const { password } = await userProvider.findUserByEmailAddress(\n user.email,\n config.verifyEmail,\n );\n\n const isPasswordValid = await config.verifyPassword(oldPassword, password);\n\n if (!isPasswordValid) {\n throw new ValidationError({\n oldPassword: [\"Incorrect password\"],\n });\n }\n\n const hashedPassword = await config.hashPassword(newPassword);\n\n await userProvider.updateUserPassword({\n id: user.id,\n password: hashedPassword,\n });\n\n await userProvider.deleteAllUserSessions(user.id);\n return {};\n }\n\n async oauthRedirect(req = new HttpRequest()) {\n const { provider } = req.params;\n const oauthProvider =\n app(AuthManager).config.oauthProviders[provider as string];\n\n if (!oauthProvider) {\n throw new Error(`Invalid provider: ${provider}`);\n }\n\n // The provider round trip drops our query string, so a `?redirect=` the\n // sign-in page forwarded onto this link waits in a cookie for the callback.\n // `Lax`, not the default `Strict`: the callback is a cross-site navigation\n // from the provider, and a strict cookie would not be sent on it.\n const intended = safeRedirectPath(req.search.get(INTENDED_URL_PARAM), \"\");\n if (intended) {\n req.ctx().setCookie(INTENDED_URL_COOKIE, encodeURIComponent(intended), {\n httpOnly: true,\n sameSite: \"Lax\",\n // By the scheme the client addressed, not by whether the host reads\n // as local: `localhost.evil.example` is not local, and a browser\n // drops a `Secure` cookie from a plain-http origin anyway.\n secure: isSecureRequest(req.rawRequest),\n maxAge: 60 * 10,\n });\n }\n\n return {\n destination: await oauthProvider.getRedirectUrl(req),\n };\n }\n\n async oauthCallback(req = new HttpRequest()) {\n const { provider } = req.params;\n const auth = app(AuthManager);\n const { userProvider, config } = auth;\n const oauthProvider = config.oauthProviders[provider as string];\n\n const { email, name, username, providerId } =\n await oauthProvider.onCallback(req);\n\n // Who this is, in order of how much each answer can be trusted:\n //\n // 1. The provider identity, `(provider, providerId)`. A returning account\n // resolves here whatever has happened to its email or display name at\n // the provider since — and the local user's email is not touched, so a\n // provider-side change never moves the account to a different user.\n // 2. Otherwise the email, exactly as before: an existing user is signed in,\n // and a new one is created. Either way the identity is linked, so the\n // next callback takes step 1.\n //\n // A provider that returns no `providerId` only ever takes step 2, and has\n // no `SocialAccount` written — a row with no identity in it can never be\n // resolved by one.\n let user: User | null = providerId\n ? await userProvider.findUserBySocialAccount(provider, providerId)\n : null;\n\n let action: \"signin\" | \"signup\" = \"signin\";\n\n if (!user) {\n if (!email) {\n console.error(\n \"Authentication error: No email returned from OAuth provider callback\",\n );\n return {\n session: null,\n };\n }\n\n const locale = app(Translator).detectLocale(req);\n\n try {\n const resolved = await this.linkOAuthAccount({\n provider,\n providerId,\n email,\n name,\n username,\n locale,\n });\n if (resolved) {\n user = resolved.user;\n action = resolved.action;\n }\n } catch (error) {\n // A concurrent callback for the same identity can win the race to\n // create the user or the link, and this one then fails on a unique\n // constraint. Recover only by *resolving the identity again*: the\n // error itself proves nothing — it could equally be a rolled-back\n // `onUserCreated` or a dropped connection — so anything that does not\n // now resolve is rethrown unchanged.\n const winner = providerId\n ? await userProvider.findUserBySocialAccount(provider, providerId)\n : null;\n if (!winner) throw error;\n user = winner;\n }\n\n if (!user) {\n return {\n session: null,\n };\n }\n }\n\n const session = await auth.createOrUpdateSessionV2({\n email: user.email,\n id: user.id,\n });\n\n req\n .ctx()\n .setCookie(\n \"access_token\",\n session.token,\n app(AuthManager).accessTokenCookieOptions(req, session.expiresAt),\n );\n\n if (action === \"signup\") {\n // `\"\"`, and not a token, deliberately.\n //\n // This used to hand the hook `config.generateMagicLinkToken(email)`.\n // That function is a pure hash and nothing here persisted what it\n // returned — `userProvider.createMagicLinkToken`, which writes the\n // `MagicLinkToken` row, was never called — so the value resolved in\n // neither place a token can be looked up: not `User.verificationToken`,\n // which `createUser` above does not set, and not the `MagicLinkToken`\n // table. An application doing the obvious thing with the argument, and\n // mailing a confirmation link carrying it, sent every OAuth signup a link\n // that could not resolve, and it tested clean against email/password\n // signup, where the same parameter is the persisted verification token.\n //\n // There is nothing to verify on this path — the user arrives with\n // `emailVerifiedAt` already set — so \"no token\" is the honest value, and\n // it is the one the email path already passes under `verifyEmail: false`.\n // An app that does want to hand new OAuth users a magic link should mint\n // a persisted one with `Auth.createMagicLink(user.email)` from the hook.\n await config.onSignUp(user, \"\", req.search.toJSON());\n } else {\n await config.onSignIn(user, req.search.toJSON());\n }\n\n // Where `oauthRedirect` was asked to return to, else `redirectPath`.\n // Checked again on the way out: a cookie is client-writable too.\n const stashed = req.cookies.get(INTENDED_URL_COOKIE);\n let redirectTo = config.redirectPath;\n if (stashed) {\n try {\n redirectTo = safeRedirectPath(decodeURIComponent(stashed), redirectTo);\n } catch {}\n req.ctx().setCookie(INTENDED_URL_COOKIE, \"\", { maxAge: -1 });\n }\n\n return { session, redirectTo };\n }\n\n /**\n * Step 2 of `oauthCallback`: an identity that resolved to nobody, matched by\n * email. Returns null when the callback must be refused.\n *\n * Not a route — `protected` keeps it off the controller's public surface.\n */\n protected async linkOAuthAccount(args: {\n provider: string;\n providerId?: string;\n email: string;\n name?: string;\n username?: string;\n locale: string;\n }): Promise<{ user: User; action: \"signin\" | \"signup\" } | null> {\n const { provider, providerId, email, name, username, locale } = args;\n const { userProvider, config } = app(AuthManager);\n\n const socialAccount = (userId: number) => ({\n provider,\n userId,\n email,\n // The provider's handle where it has one (X). Google has none, and the\n // display name is not one: it is neither unique nor stable, and it was\n // what made two Google users called the same thing collide.\n username,\n providerId,\n expiresAt: new Date(),\n accessToken: \"\",\n refreshToken: \"\",\n });\n\n const existing = await userProvider.findUserByEmailAddress(email, false);\n\n if (existing) {\n if (!providerId) return { user: existing, action: \"signin\" };\n\n const accounts = await userProvider.findSocialAccounts(\n existing.id,\n provider,\n );\n\n // Linked since step 1 looked — a concurrent callback for this same\n // account committed in between.\n if (accounts.some((account) => account.providerId === providerId)) {\n return { user: existing, action: \"signin\" };\n }\n\n // This user is already linked to a *different* account at this\n // provider. The email matching is not enough to move the link: it is the\n // same address, not the same account (a deleted and re-created Workspace\n // user, an address that changed hands). Refuse, and leave it to the\n // application to unlink the old row if re-linking is intended.\n if (accounts.some((account) => account.providerId)) {\n console.error(\n `Authentication error: user ${existing.id} is already linked to a different ${provider} account`,\n );\n return null;\n }\n\n // A row from before identities were recorded. It was made for this user\n // when they signed up through this provider by this email, so recording\n // the identity on it grants nothing the email match did not already.\n const legacy = accounts[0];\n if (legacy) {\n if (!(await userProvider.claimSocialAccount(legacy, providerId))) {\n // Someone else claimed it between the read and the write. Throwing\n // hands it to the caller's recovery, which signs in only if the\n // claim was for this same identity.\n throw new Error(`${provider} account link changed concurrently`);\n }\n } else {\n await userProvider.createSocialAccount(socialAccount(existing.id));\n }\n\n return { user: existing, action: \"signin\" };\n }\n\n // Same shape as `signUp`: the user, the row that has to exist beside it,\n // and `onUserCreated`, in one transaction. The social account in\n // particular has a foreign key onto the user — created outside, a rolled\n // back user would leave it pointing at nothing.\n const user = await userProvider.transaction(async () => {\n const created = await userProvider.createUser({\n email,\n name,\n locale,\n emailVerifiedAt: new Date(),\n });\n\n if (providerId) {\n await userProvider.createSocialAccount(socialAccount(created.id));\n }\n\n await config.onUserCreated(created);\n\n return created;\n });\n\n return { user, action: \"signup\" };\n }\n\n async createMagicLinkToken(req = new HttpRequest<{ email: string }>()) {\n const input = await req.input();\n const email = input.get(\"email\").toLowerCase().trim();\n const auth = app(AuthManager);\n const { user, pin, token } = await auth.createMagicLinkToken(email);\n\n if (user) {\n await auth.config.onMagicLinkCreated(user, { email, pin, token });\n return {\n email,\n };\n }\n\n return { email: null };\n }\n}\n",
|
|
34
35
|
"import { ApiRouter } from \"../http/ApiRouter\";\nimport { ViewRouter } from \"../http/ViewRouter\";\nimport { AuthController } from \"./AuthController\";\n\nclass OAuthViewRouter extends ViewRouter {\n middlewares = [\"cache:private\"];\n routes = {\n \"/:provider\": this.view(\"_Redirect\", [AuthController, \"oauthRedirect\"]),\n \"/:provider/callback\": this.view(\"auth/OauthCallback\", [\n AuthController,\n \"oauthCallback\",\n ]),\n };\n}\n\nexport class AuthViewRouter extends ViewRouter {\n middlewares = [\"cache:private\"];\n routes = {\n \"/sign-in/magic-link\": this.view(\"auth/MagicLinkSignIn\", [\n AuthController,\n \"signInWithMagicLink\",\n ]),\n \"/oauth\": OAuthViewRouter,\n };\n}\n\nexport class AuthApiRouter extends ApiRouter {\n middlewares = [\"cache:private\"];\n routes = {\n \"/sign-in\": this.post(AuthController, \"signIn\"),\n \"/sign-in-v2\": this.post(AuthController, \"signInV2\"),\n \"/sign-up\": this.post(AuthController, \"signUp\"),\n \"/sign-out\": this.post(AuthController, \"signOut\"),\n \"/forgot-password\": this.post(AuthController, \"forgotPassword\"),\n \"/reset-password\": this.post(AuthController, \"resetPassword\"),\n \"/change-password\": this.post(AuthController, \"changePassword\"),\n \"/verify-email\": this.post(AuthController, \"verifyEmail\"),\n \"/me\": this.get(AuthController, \"me\").middleware([\"auth\"]),\n \"/magic-link\": this.post(AuthController, \"createMagicLinkToken\"),\n \"/sign-in-with-pin\": this.post(AuthController, \"signInWithPin\"),\n \"/sign-in-with-pin-v2\": this.post(AuthController, \"signInWithPinV2\"),\n };\n}\n",
|
|
35
36
|
"import { ApiRouter, HttpRequest } from \"../http\";\nimport { app } from \"../foundation/app\";\nimport { Translator } from \"./Translator\";\n\nexport class I18nRouter extends ApiRouter {\n middlewares = [\"cache:private,0,no-store\"];\n routes = {\n // Fires `onLocaleChange` and nothing else. The `i18n-locale` cookie is\n // written by the client before it navigates (`useLocale`), because the\n // navigation's own route-data request already has to carry it. Setting it\n // here as well could only ever undo that: this response would replace the\n // client's year-long cookie with a session one, and two switches in quick\n // succession put two responses in flight, where the later-landing one wins\n // regardless of which locale the user actually stopped on.\n \"/set-locale/:locale\": this.get(async () => {\n const req = new HttpRequest<any, any>();\n const locale = req.params.locale;\n await app(Translator).onLocaleChange(locale);\n return { locale };\n }),\n \"/translations/:locale/:scope*\": this.get(async () => {\n const req = new HttpRequest<any, any>();\n\n const scope = `/${req.params.scope ?? \"\"}`;\n const forcedLocale = req.params.locale;\n\n const translator = app(Translator);\n const locale = forcedLocale ?? translator.detectLocale(req);\n\n const translations = translator.getPageTranslations(locale, scope);\n\n req.ctx().setCookie(\"i18n-locale\", locale, {\n expires: new Date(Date.now() + 1000 * 60 * 60 * 24 * 365),\n });\n\n return {\n [locale]: translations,\n };\n }),\n };\n}\n",
|
|
36
37
|
"import type { ResizeParameters } from \"./types\";\n\nexport abstract class ImageOptimizationDriver {\n abstract resize(\n buffer: Buffer,\n parameters: ResizeParameters,\n ): Promise<Buffer>;\n}\n",
|
|
@@ -72,7 +73,7 @@
|
|
|
72
73
|
"import type { CustomDomainConfig, DomainGroupConfig, DomainsConfig } from \"./config\";\n\n/** The group key the apex itself is served under. */\nexport const ROOT_GROUP = \"\";\n/** The group key of `custom.fallback`. */\nexport const FALLBACK_GROUP = \"*\";\n\n/** Which host group a request landed in, and what its host said. */\nexport interface ResolvedDomain {\n /** The request's hostname, lowercased and without the port. */\n host: string;\n /** `\"\"` for the apex, the group's `subdomain` otherwise, `\"*\"` for the fallback. */\n group: string;\n /** A param subdomain's value, or what `custom.resolve` returned. */\n params: Record<string, string>;\n /** Whether the host is outside `domains.root`, i.e. a custom domain. */\n custom: boolean;\n}\n\nconst DEFAULT_CACHE_TTL_MS = 60_000;\nconst MAX_CACHE_ENTRIES = 10_000;\nconst LABEL = /^[a-z0-9]([a-z0-9-]*[a-z0-9])?$/;\nconst MIN_ASK_SECRET_LENGTH = 16;\n\nfunction isParamSubdomain(subdomain: string) {\n return subdomain.startsWith(\":\");\n}\n\n/** Lowercased hostname without port or trailing dot; `null` if unparseable. */\nexport function normalizeHost(host: string | null | undefined): string | null {\n if (!host) {\n return null;\n }\n try {\n return new URL(`http://${host.trim()}`).hostname.toLowerCase().replace(/\\.$/, \"\") || null;\n } catch {\n return null;\n }\n}\n\n/** The same, keeping the port — for rebuilding an origin. `null` if unparseable. */\nfunction hostAndPort(host: string): string | null {\n try {\n const url = new URL(`http://${host.trim()}`);\n // `url.host` keeps userinfo out; the hostname is re-read to drop a trailing\n // dot the way `normalizeHost` does.\n const name = url.hostname.toLowerCase().replace(/\\.$/, \"\");\n return name ? (url.port ? `${name}:${url.port}` : name) : null;\n } catch {\n return null;\n }\n}\n\n/**\n * Fails the boot on a `domains` config that could never route the way it\n * reads: an empty root, a subdomain declared twice, a malformed label, two\n * param groups competing for the same label, or a custom-domain target that\n * names no group.\n */\nexport function assertValidDomainsConfig(config: DomainsConfig) {\n const root = normalizeHost(config.root);\n // `normalizeHost` alone accepts far more than a hostname, and every one of\n // these booted cleanly and then matched no request at all:\n // `https://example.com` parses down to the host `https` — a valid label, so\n // checking the labels is not enough — while `.example.com` keeps its empty\n // first label, and `example.com:8080` quietly loses the port it was given.\n // So the labels have to be valid *and* nothing may have been dropped.\n const asGiven = config.root?.trim().toLowerCase().replace(/\\.$/, \"\");\n if (!root || root !== asGiven || !root.split(\".\").every((label) => LABEL.test(label))) {\n throw new Error(\n `\\`route.domains.root\\` must be a bare hostname, e.g. \"example.com\" — no scheme, port or path. Got \"${config.root}\".`,\n );\n }\n if (config.custom && (config.custom.cacheTtlMs ?? 0) < 0) {\n throw new Error(\n `\\`route.domains.custom.cacheTtlMs\\` is ${config.custom.cacheTtlMs}; it cannot be negative. Use 0 to disable the cache.`,\n );\n }\n if (config.ask && config.ask.secret.length < MIN_ASK_SECRET_LENGTH) {\n throw new Error(\n `\\`route.domains.ask.secret\\` must be at least ${MIN_ASK_SECRET_LENGTH} characters. A guessable one is worse than leaving \\`ask\\` out.`,\n );\n }\n const seen = new Set<string>();\n let paramGroup: DomainGroupConfig | null = null;\n for (const group of config.groups ?? []) {\n const { subdomain } = group;\n if (seen.has(subdomain)) {\n throw new Error(`\\`route.domains\\` declares the subdomain \"${subdomain}\" twice.`);\n }\n seen.add(subdomain);\n if (isParamSubdomain(subdomain)) {\n if (!/^:[A-Za-z_][A-Za-z0-9_]*$/.test(subdomain)) {\n throw new Error(\n `\"${subdomain}\" is not a valid param subdomain. It must be a single \\`:name\\` label.`,\n );\n }\n if (paramGroup) {\n throw new Error(\n `\\`route.domains\\` declares two param subdomains, \"${paramGroup.subdomain}\" and \"${subdomain}\"; a host could match either.`,\n );\n }\n paramGroup = group;\n continue;\n }\n if (group.exists) {\n throw new Error(\n `The subdomain \"${subdomain}\" is fixed, so \\`exists\\` has no param to check. It only applies to a \\`:param\\` subdomain.`,\n );\n }\n if (!subdomain.split(\".\").every((label) => LABEL.test(label))) {\n throw new Error(`\"${subdomain}\" is not a valid subdomain.`);\n }\n }\n if (config.custom && !seen.has(config.custom.group)) {\n throw new Error(\n `\\`route.domains.custom.group\\` is \"${config.custom.group}\", but no group declares that subdomain.`,\n );\n }\n // Without `exists` the param group matches every label, so the ask endpoint\n // would approve a certificate for every name anyone connects with, and a\n // scripted walk would spend the certificate authority's rate limit for the\n // whole registered domain — after which no real tenant can get one either.\n if (config.ask && paramGroup && !paramGroup.exists) {\n throw new Error(\n `\\`route.domains.ask\\` is set, so \"${paramGroup.subdomain}\" needs an \\`exists\\` to say which tenants are real. Without one every host under the root would be approved for a certificate.`,\n );\n }\n}\n\n/**\n * Maps a request's host onto one of the `route.domains` groups. Pure apart from\n * the calls into `exists` and `custom.resolve`, and the cache in front of the\n * latter.\n */\nexport class DomainResolver {\n readonly root: string;\n private readonly trustProxy: boolean;\n private readonly fixed = new Map<string, DomainGroupConfig>();\n private readonly param: (DomainGroupConfig & { name: string }) | null = null;\n private readonly custom: CustomDomainConfig | null;\n private readonly cacheTtlMs: number;\n private readonly cache = new Map<\n string,\n { value: Record<string, string> | null; expiresAt: number }\n >();\n /** In-progress `custom.resolve` calls, so concurrent misses share one. */\n private readonly inFlight = new Map<string, Promise<Record<string, string> | null>>();\n /** The `ask` secret, or `null` when the endpoint is not served. */\n readonly askSecret: string | null;\n\n constructor(config: DomainsConfig) {\n assertValidDomainsConfig(config);\n this.root = normalizeHost(config.root)!;\n this.trustProxy = config.trustProxy ?? false;\n for (const group of config.groups ?? []) {\n if (isParamSubdomain(group.subdomain)) {\n this.param = { ...group, name: group.subdomain.slice(1) };\n } else {\n this.fixed.set(group.subdomain.toLowerCase(), group);\n }\n }\n this.custom = config.custom ?? null;\n this.cacheTtlMs = this.custom?.cacheTtlMs ?? DEFAULT_CACHE_TTL_MS;\n this.askSecret = config.ask?.secret ?? null;\n }\n\n /** The hostname the request is addressed to, honouring `trustProxy`. */\n hostOf(req: Request): string | null {\n if (this.trustProxy) {\n const forwarded = req.headers.get(\"x-forwarded-host\")?.split(\",\")[0];\n const host = normalizeHost(forwarded);\n if (host) {\n return host;\n }\n }\n return normalizeHost(new URL(req.url).host);\n }\n\n /**\n * The origin the client addressed, port included — behind a trusted proxy,\n * the forwarded one rather than the one the proxy reached the app on.\n *\n * The scheme follows `X-Forwarded-Proto` whether or not `trustProxy` is set,\n * and the host only when it is. They are gated differently because the\n * hazards are: a forged host sends a link to somewhere the attacker chose,\n * while a forged scheme only spoils the attacker's own links. TLS is almost\n * always terminated by a proxy that reaches the app over plain http, so\n * reading the scheme is what keeps a cross-host URL from coming out `http://`\n * on an `https://` page.\n */\n publicOrigin(req: Request): string {\n const url = new URL(req.url);\n const forwardedProto = req.headers.get(\"x-forwarded-proto\")?.split(\",\")[0]?.trim();\n // An allowlist, not the header's text: it is spliced into an origin, and\n // `javascript` there would build a URL that is typed absolute but that\n // nothing treats as one.\n const proto =\n forwardedProto === \"http\" || forwardedProto === \"https\"\n ? forwardedProto\n : url.protocol.replace(/:$/, \"\");\n if (!this.trustProxy) {\n return `${proto}://${url.host}`;\n }\n // Through `normalizeHost` so userinfo, whitespace and an unparseable header\n // cannot ride into the origin — and back through `URL` so the port\n // survives, which `normalizeHost` drops.\n const forwardedHost = req.headers.get(\"x-forwarded-host\")?.split(\",\")[0]?.trim();\n const host = forwardedHost && normalizeHost(forwardedHost) ? hostAndPort(forwardedHost) : null;\n return `${proto}://${host ?? url.host}`;\n }\n\n /** The group serving `req`, or `null` when no group, and no fallback, serves its host. */\n async resolve(req: Request): Promise<ResolvedDomain | null> {\n const host = this.hostOf(req);\n if (!host) {\n return null;\n }\n const match = await this.match(host, req);\n if (match) {\n return match;\n }\n if (this.custom?.fallback && !this.isUnderRoot(host)) {\n return { host, group: FALLBACK_GROUP, params: {}, custom: true };\n }\n return null;\n }\n\n /**\n * Whether `host` is one the app serves in its own right — what a TLS proxy\n * asks before issuing a certificate. The fallback group does not count: it\n * would otherwise approve every host on the internet.\n */\n async allows(host: string, req: Request): Promise<boolean> {\n const normalized = normalizeHost(host);\n return normalized ? (await this.match(normalized, req)) !== null : false;\n }\n\n private isUnderRoot(host: string) {\n return host === this.root || host.endsWith(`.${this.root}`);\n }\n\n private async match(host: string, req: Request): Promise<ResolvedDomain | null> {\n if (host === this.root) {\n return { host, group: ROOT_GROUP, params: {}, custom: false };\n }\n if (host.endsWith(`.${this.root}`)) {\n const sub = host.slice(0, -(this.root.length + 1));\n const fixed = this.fixed.get(sub);\n if (fixed) {\n return { host, group: fixed.subdomain, params: {}, custom: false };\n }\n if (this.param && LABEL.test(sub)) {\n const params = { [this.param.name]: sub };\n if (this.param.exists && !(await this.param.exists(params, req))) {\n return null;\n }\n return { host, group: this.param.subdomain, params, custom: false };\n }\n return null;\n }\n if (!this.custom) {\n return null;\n }\n const params = await this.resolveCustom(host);\n return params ? { host, group: this.custom.group, params, custom: true } : null;\n }\n\n private async resolveCustom(host: string) {\n const now = Date.now();\n const cached = this.cache.get(host);\n if (cached && cached.expiresAt > now) {\n // Re-insert to move it to the end: a Map iterates in insertion order, so\n // this is what makes the eviction below least-recently-*used* rather than\n // oldest-inserted. Without it a burst of unknown hosts evicts every real\n // customer, however often they are asked for.\n this.cache.delete(host);\n this.cache.set(host, cached);\n return cached.value;\n }\n // One call per host at a time. A cold host that a hundred requests arrive\n // for at once is one `resolve`, not a hundred — the difference between a\n // cache miss and a stampede against the database behind it.\n const inFlight = this.inFlight.get(host);\n if (inFlight) {\n return inFlight;\n }\n const pending = (async () => (await this.custom!.resolve(host)) ?? null)();\n this.inFlight.set(host, pending);\n let value: Record<string, string> | null;\n try {\n value = await pending;\n } finally {\n // Before the `set` below, so a throw leaves nothing cached and nothing\n // stuck: the next request retries.\n this.inFlight.delete(host);\n }\n if (this.cacheTtlMs > 0) {\n if (this.cache.size >= MAX_CACHE_ENTRIES) {\n this.cache.delete(this.cache.keys().next().value!);\n }\n this.cache.delete(host);\n this.cache.set(host, { value, expiresAt: Date.now() + this.cacheTtlMs });\n }\n return value;\n }\n\n /** Drops cached `custom.resolve` answers — one host, or all of them. */\n forget(host?: string) {\n if (host === undefined) {\n this.cache.clear();\n } else {\n const normalized = normalizeHost(host);\n if (normalized) {\n this.cache.delete(normalized);\n }\n }\n }\n}\n",
|
|
73
74
|
"import type { ServerWebSocket } from \"bun\";\nimport type { BroadcastConfig } from \"./config\";\nimport type { PublishArgs } from \"./types\";\nimport { AsyncLocalStorage } from \"async_hooks\";\nimport { parseCookieHeader } from \"../../http/getCookies\";\n\ntype PublishCallback = (...args: PublishArgs) => void;\n\nexport class BroadcastManager {\n static token = \"broadcast\";\n\n publishCb: PublishCallback;\n context = new AsyncLocalStorage<{\n headers: Headers;\n cookies: Map<string, string>;\n }>();\n\n constructor(public config: Required<BroadcastConfig>) {}\n\n get channels() {\n return this.config.channels;\n }\n\n onPublish(cb: PublishCallback) {\n this.publishCb = cb;\n }\n\n publish(...args: PublishArgs) {\n const [topic, data, compress] = args;\n this.publishCb(topic, data, compress);\n }\n\n async handleMessage(\n ws: ServerWebSocket<{ headers: Headers }>,\n message: string | Buffer,\n ) {\n const messageData = JSON.parse(message as string);\n if (messageData.type === \"subscribe\") {\n const sortedChannels = Object.entries(this.channels).sort(\n ([keyA], [keyB]) => keyA.length - keyB.length,\n );\n for (const [pathname, Channel] of sortedChannels) {\n const urlPattern = new URLPattern({ pathname });\n if (urlPattern.test({ pathname: messageData.topic })) {\n const params = urlPattern.exec({ pathname: messageData.topic })\n ?.pathname.groups!;\n const instance = new Channel();\n const canSubscribe = await instance.subscribe.call(instance, params);\n if (canSubscribe) {\n ws.subscribe(messageData.topic);\n }\n\n break;\n }\n }\n }\n if (messageData.type === \"broadcast\") {\n ws.publish(\n messageData.topic,\n JSON.stringify({ topic: messageData.topic, data: messageData.payload }),\n );\n }\n if (messageData.type === \"unsubscribe\") {\n ws.unsubscribe(messageData.topic);\n }\n }\n\n run(headers: Headers, fn: VoidFunction) {\n const cookies = parseCookieHeader(headers.get(\"Cookie\"));\n this.context.run({ headers, cookies }, fn);\n }\n}\n",
|
|
74
75
|
"import { BroadcastManager } from \"../services/pubsub/BroadcastManager\";\nimport { applyParams } from \"../utils/applyParams\";\nimport { Facade } from \"./Facade\";\n\nexport class Broadcast extends Facade {\n static getFacadeAccessor() {\n return BroadcastManager;\n }\n\n static channel<T>(route: T, params: any) {\n const broadcast = this.getFacadeRoot();\n const channel = broadcast.channels[route as any];\n if (!channel) {\n console.error(`Channel ${route} not found`);\n return {\n publish: () => {},\n };\n }\n const instance = new channel();\n return {\n publish: (\n data: string | ArrayBufferView | ArrayBuffer | SharedArrayBuffer,\n compress: boolean = false,\n ) => {\n const topic = applyParams(route as any, params);\n broadcast.publish(\n topic,\n JSON.stringify({ topic, data: instance.publish(data) }),\n compress,\n );\n },\n };\n }\n}\n",
|
|
75
|
-
"import type { User } from \"../auth/types\";\nimport { AuthManager } from \"../auth/AuthManager\";\nimport { signInLocation } from \"../auth/signInRedirect\";\nimport { INTENDED_URL_PARAM, safeRedirectPath } from \"../utils/intendedUrl\";\nimport {\n AuthenticationError,\n InsufficientPermissionsError,\n} from \"../http/errors\";\nimport { RequestContext } from \"../http/requestContext\";\nimport { Broadcast } from \"./Broadcast\";\nimport { Facade } from \"./Facade\";\n\nexport class Auth extends Facade {\n static getFacadeAccessor() {\n return AuthManager;\n }\n\n static async user(): Promise<User> {\n const requestContextStore = RequestContext.getStore();\n const broadcastingContextStore =\n Broadcast.getFacadeRoot().context.getStore();\n\n let accessToken = \"\";\n let userAgent = \"\";\n\n if (requestContextStore?.req) {\n accessToken = requestContextStore.req.cookies.get(\"access_token\");\n userAgent = requestContextStore.req.headers.get(\"User-Agent\");\n }\n\n if (broadcastingContextStore?.cookies) {\n userAgent = broadcastingContextStore.headers.get(\"User-Agent\");\n accessToken = broadcastingContextStore.cookies.get(\"access_token\");\n }\n\n let user = requestContextStore?.user;\n\n if (!user) {\n const container = this.getFacadeRoot();\n
|
|
76
|
+
"import type { User } from \"../auth/types\";\nimport { AuthManager } from \"../auth/AuthManager\";\nimport { signInLocation } from \"../auth/signInRedirect\";\nimport { INTENDED_URL_PARAM, safeRedirectPath } from \"../utils/intendedUrl\";\nimport {\n AuthenticationError,\n InsufficientPermissionsError,\n} from \"../http/errors\";\nimport { RequestContext } from \"../http/requestContext\";\nimport { Broadcast } from \"./Broadcast\";\nimport { Facade } from \"./Facade\";\n\nexport class Auth extends Facade {\n static getFacadeAccessor() {\n return AuthManager;\n }\n\n static async user(): Promise<User> {\n const requestContextStore = RequestContext.getStore();\n const broadcastingContextStore =\n Broadcast.getFacadeRoot().context.getStore();\n\n let accessToken = \"\";\n let userAgent = \"\";\n\n if (requestContextStore?.req) {\n accessToken = requestContextStore.req.cookies.get(\"access_token\");\n userAgent = requestContextStore.req.headers.get(\"User-Agent\");\n }\n\n if (broadcastingContextStore?.cookies) {\n userAgent = broadcastingContextStore.headers.get(\"User-Agent\");\n accessToken = broadcastingContextStore.cookies.get(\"access_token\");\n }\n\n let user = requestContextStore?.user;\n\n if (!user) {\n const container = this.getFacadeRoot();\n const session = await container.getSession(accessToken, userAgent);\n\n user = session?.user;\n requestContextStore?.setUser(user);\n }\n\n if (user) {\n return user;\n }\n throw new AuthenticationError({\n redirectTo: signInLocation(\n requestContextStore?.req,\n this.getFacadeRoot().config.signInPath,\n ),\n });\n }\n\n /**\n * Where to send a user who has just signed in: the page they were turned\n * away from, which `AuthenticationMiddleware` put on the sign-in URL as\n * `?redirect=`, or `auth.redirectPath` when there is none.\n *\n * Reads the current request's query, so call it from the sign-in page's own\n * loader or from a controller the sign-in page posts to with its query\n * forwarded. Anything but a path on this origin is ignored — the parameter\n * is attacker-writable, and passing it on unchecked is an open redirect.\n *\n * ```ts\n * Redirect.to(Auth.intendedUrl() as any);\n * ```\n */\n static intendedUrl(fallback?: string): string {\n const req = RequestContext.getStore()?.req;\n return safeRedirectPath(\n req?.search.get(INTENDED_URL_PARAM),\n fallback ?? this.getFacadeRoot().config.redirectPath,\n );\n }\n\n static async guard(\n fn: (user: User) => Promise<boolean> | boolean,\n ): Promise<void> {\n // With no user this throws `AuthenticationError` (401, and a redirect to\n // sign-in for a view), before `fn` ever runs. Only a known user can be\n // refused with the 403 below.\n const user = await Auth.user();\n\n // An error thrown by `fn` propagates as itself. Turning it into a 403 would\n // report a database outage to the client as \"you may not do this\" and hide\n // it from `onRequestFail`; it still refuses the request either way.\n if (!(await fn(user))) {\n throw new InsufficientPermissionsError();\n }\n }\n\n static async guardSafe(\n fn: (user: User) => Promise<boolean> | boolean,\n ): Promise<boolean> {\n // Like `guard`, this throws `AuthenticationError` with no user; `false`\n // means a known user the predicate refused.\n const user = await Auth.user();\n\n try {\n return await fn(user);\n } catch (err) {\n return false;\n }\n }\n\n static async authenticate(email: string) {\n const container = this.getFacadeRoot();\n return await container.authenticate(email);\n }\n\n static async createMagicLink(email: string) {\n const container = this.getFacadeRoot();\n return await container.createMagicLinkToken(email);\n }\n}\n",
|
|
76
77
|
"import type { RPC } from \"../client/rpc\";\nimport type { UrlParser } from \"../client/types\";\nimport type { ApiRouterHandler } from \"../http/ApiRouter\";\nimport { RequestContext } from \"../http/requestContext\";\nimport { ServerQueryStore, type ServerQueryEntry } from \"../services/router/ServerQueryStore\";\nimport { createServerQueryFetcher } from \"../services/router/serverQueryFetcher\";\n\ntype GetRPC = {\n [K in keyof RPC as K extends `GET:${infer P}` ? P : never]: RPC[K];\n};\n\ntype Data<T extends keyof GetRPC> = GetRPC[T] extends ApiRouterHandler<\n any,\n infer Data,\n any\n>\n ? Awaited<Data>\n : never;\n\ntype QueryFacadeOptions<T extends keyof GetRPC> = {\n search?: Record<string, string | number | boolean | null>;\n params?: Partial<UrlParser<T>>;\n};\n\nexport class Query {\n private static ensure<T extends keyof GetRPC>(\n path: T,\n options: QueryFacadeOptions<T> = {},\n ): ServerQueryEntry {\n const ctx = RequestContext.getStore();\n\n if (ctx.req.kind === \"api\") {\n throw new Error(\"Query.prefetch() cannot be called from an API request\");\n }\n\n // The view router creates the store up front; this lazy fallback keeps the\n // facade usable anywhere else a view-kind request context exists.\n ctx.serverQueries ??= new ServerQueryStore(\n createServerQueryFetcher(ctx.req.rawRequest),\n );\n\n return ctx.serverQueries.ensure(path, options, \"prefetch\");\n }\n\n /**\n * Start the query AND wait for it — the response cannot begin until it\n * resolves, so its data is part of the first paint. Use for data the shell\n * itself needs; `prefetch` for everything that may stream.\n */\n static async instant<T extends keyof GetRPC>(\n path: T,\n ...args: [options?: QueryFacadeOptions<T>]\n ): Promise<Data<T>> {\n const entry = Query.ensure(path, args[0]);\n await entry.promise;\n if (entry.status === \"rejected\") {\n throw entry.error;\n }\n return entry.data as Data<T>;\n }\n\n /**\n * Start the query now, in parallel with everything else this request does,\n * without blocking the response on it. A `useQuery` for the same path and\n * search renders with this data the moment it lands — in the document\n * payload when it wins the render, streamed into the page when it doesn't.\n */\n static prefetch<T extends keyof GetRPC>(\n path: T,\n ...args: [options?: QueryFacadeOptions<T>]\n ) {\n Query.ensure(path, args[0]);\n }\n\n /**\n * Declare that this route primes nothing on purpose, silencing the dev-mode\n * late-discovery hints for the request. Priming is not free — prefetched\n * data is re-fetched and streamed into every client-navigation payload for\n * the route, even when the client already holds it — so a handler that\n * deliberately leaves a heavy query to `useQuery`'s cache-then-revalidate\n * can say so instead of being nagged.\n */\n static noPrefetch() {\n const ctx = RequestContext.getStore();\n\n if (ctx.req.kind === \"api\") {\n throw new Error(\"Query.noPrefetch() cannot be called from an API request\");\n }\n\n ctx.serverQueries ??= new ServerQueryStore(\n createServerQueryFetcher(ctx.req.rawRequest),\n );\n ctx.serverQueries.muteDiscoveryHints();\n }\n}\n",
|
|
77
78
|
"/** Which host a cross-domain URL points at. */\nexport interface DomainTarget {\n /** A subdomain of `route.domains.root` — `\"acme\"`, `\"admin\"`. `null` or omitted for the apex. */\n subdomain?: string | null;\n /** A whole hostname instead, for a custom domain. Wins over `subdomain`. */\n host?: string;\n}\n\n/** An `http(s)://` URL — what `domainUrl` returns. */\nexport type AbsoluteUrl = `http://${string}` | `https://${string}`;\n\n/**\n * Whether `href` names a whole URL rather than a path. The client router only\n * handles paths on the current host; anything absolute is a full page load.\n */\nexport function isAbsoluteUrl(href: string): href is AbsoluteUrl {\n return /^https?:\\/\\//i.test(href);\n}\n\n/**\n * An absolute URL for `path` on another host of the same app. The protocol and\n * port come from `origin`, the one the caller is on, so the URL a page on\n * `acme.localhost:5173` builds for `admin` stays on port 5173 in development\n * and on none behind a production proxy.\n */\nexport function domainUrl(\n base: { root: string; origin: string },\n target: DomainTarget,\n path = \"/\",\n): AbsoluteUrl {\n const current = new URL(base.origin);\n const wanted = target.host\n ? target.host\n : target.subdomain\n ? `${target.subdomain}.${base.root}`\n : base.root;\n const url = new URL(path.startsWith(\"/\") ? path : `/${path}`, current);\n // `url.hostname = x` is a WHATWG setter, and it *ignores* a value it cannot\n // parse rather than failing. A stored custom domain that carries a port or a\n // scheme therefore used to return a link to the host the caller is already\n // on — a wrong-tenant link that looks right. Parse it first, and take a port\n // with it, since a custom domain in development often has one.\n const host = asHost(wanted);\n if (!host) {\n throw new Error(\n `\"${wanted}\" is not a hostname, so there is no URL for it. Give a bare host, optionally with a port — no scheme, path or credentials.`,\n );\n }\n url.hostname = host.hostname;\n if (host.port) {\n url.port = host.port;\n }\n return url.toString() as AbsoluteUrl;\n}\n\n/** `value` as a host and port, or `null` if it is anything more than that. */\nfunction asHost(value: string): { hostname: string; port: string } | null {\n try {\n const url = new URL(`http://${value.trim()}`);\n // A scheme leaves a path behind, and credentials leave the host shorter\n // than what was given; either means this is not a hostname.\n return url.host === value.trim().toLowerCase() && url.pathname === \"/\"\n ? { hostname: url.hostname, port: url.port }\n : null;\n } catch {\n return null;\n }\n}\n",
|
|
78
79
|
"import type { UrlParser, ViewPaths } from \"../client/types\";\nimport { app } from \"../foundation/app\";\nimport { RequestContext } from \"../http/requestContext\";\nimport { DomainRouter } from \"../services/router/DomainRouter\";\nimport { applyParams } from \"../utils/applyParams\";\nimport { domainUrl, type DomainTarget } from \"../utils/domainUrl\";\n\nexport class Url {\n static absolute<T extends ViewPaths>(\n key: T,\n ...args: UrlParser<T> extends Record<string, never>\n ? []\n : [params: UrlParser<T>]\n ) {\n return `${process.env.HOST_NAME}${applyParams(String(key), args[0] ?? {})}`;\n }\n\n static relative<T extends ViewPaths>(\n key: T,\n ...args: UrlParser<T> extends Record<string, never>\n ? []\n : [params: UrlParser<T>]\n ) {\n return applyParams(String(key), args[0] ?? {});\n }\n\n /**\n * An absolute URL on another `route.domains` host:\n * `Url.forDomain({ subdomain: \"acme\" }, \"/projects/:id\", { id })`. Inside a\n * request the protocol and port are the request's own; outside one — a job,\n * an email — they come from `HOST_NAME`.\n */\n static forDomain<T extends ViewPaths>(\n target: DomainTarget,\n key: T,\n ...args: UrlParser<T> extends Record<string, never>\n ? []\n : [params: UrlParser<T>]\n ) {\n const resolver = app(DomainRouter).resolver;\n if (!resolver) {\n throw new Error(\"`Url.forDomain` needs `route.domains` to be configured.\");\n }\n const raw = RequestContext.getStore()?.req?.rawRequest;\n const origin = raw ? resolver.publicOrigin(raw) : process.env.HOST_NAME;\n if (!origin) {\n throw new Error(\"`Url.forDomain` outside a request needs `HOST_NAME` for the protocol.\");\n }\n return domainUrl(\n { root: resolver.root, origin },\n target,\n applyParams(String(key), args[0] ?? {}),\n );\n }\n}\n",
|
|
@@ -84,7 +85,7 @@
|
|
|
84
85
|
"import type { FeatureKey } from \"../client/rpc\";\nimport type { FeatureSubject } from \"../services/features/context\";\nimport { FeatureManager, type FeatureScope } from \"../services/features/FeatureManager\";\nimport type { FeatureEvaluation, FeatureListing } from \"../services/features/types\";\nimport { Facade } from \"./Facade\";\n\n/**\n * Features on the server.\n *\n * Keys are typed against the application's `app/features` declarations, so a\n * typo is a compile error rather than a feature that is silently always off.\n *\n * ```ts\n * if (await Features.enabled(\"new-checkout\")) { ... }\n *\n * // In a job or cron tick, where there is no request to read a user from:\n * if (await Features.for({ user }).enabled(\"digest-v2\")) { ... }\n * ```\n *\n * ## Everything is async, and there is no sync variant\n *\n * After the boot-time warm-up every call settles in a microtask with no I/O —\n * the snapshot is in memory and refreshes behind the request. The promise is\n * kept anyway because the *first* call in a cold process does hit the database,\n * and because a source that is not the local table will too. A sync variant\n * would have to answer that case with \"off\", which is a feature silently\n * disappearing during exactly the window a deploy is rolling.\n *\n * ## The ambient user\n *\n * Read from the request store, not `Auth.user()` — features must be evaluable on\n * an anonymous page without throwing. On a route with no `auth` middleware,\n * where nothing has resolved a session, a `when` that reads `ctx.user` sees\n * `null`.\n */\nexport class Features extends Facade {\n static getFacadeAccessor() {\n return FeatureManager;\n }\n\n /** Whether the feature is on for this request. */\n static enabled(key: FeatureKey): Promise<boolean> {\n return this.getFacadeRoot().enabled(key as string);\n }\n\n /**\n * Every client-visible feature for this request. This is what the SSR payload\n * carries.\n */\n static all(): Promise<Record<string, boolean>> {\n return this.getFacadeRoot().forClient();\n }\n\n /**\n * Value plus why.\n *\n * **Server-side only.** `reason` distinguishes \"targeted by name\" from \"landed\n * in the rollout\", which is a fact about the viewer — never serialize it into\n * a response.\n */\n static explain(key: FeatureKey): Promise<FeatureEvaluation> {\n return this.getFacadeRoot().explain(key as string);\n }\n\n /** Evaluation against an explicit subject rather than the ambient request. */\n static for(subject: FeatureSubject): FeatureScope {\n return this.getFacadeRoot().for(subject);\n }\n\n /**\n * Every feature declared in the code, with its switch — the list an admin\n * screen renders.\n *\n * The declarations are what exists. A feature is here because `app/features`\n * declares it, never because a row was inserted; `active` is `undefined` for a\n * feature that has been deployed but never switched on, which is deliberately\n * distinct from a row that says `false`.\n *\n * Check `unavailable` before rendering `active`. It means no snapshot has ever\n * loaded, so the switches are unknown rather than absent.\n *\n * **Server-side only, and the route must be gated.** The listing includes\n * `serverOnly` features — whose keys are the thing `serverOnly` exists to keep\n * out of the payload — and every descriptor carries `rollout` and `targeted`,\n * which describe who is in an experiment.\n *\n * ```ts\n * // app/http/routes/api.ts\n * \"/admin/features\": this.get([AdminFeatureController, \"index\"]).middleware([\"admin\"]),\n *\n * // app/http/controllers/AdminFeatureController.ts\n * public async index() {\n * return await Features.list();\n * }\n * ```\n */\n static list(): Promise<FeatureListing> {\n return this.getFacadeRoot().list();\n }\n\n /** Reloads this process's snapshot now, rather than waiting for the TTL. */\n static refresh(): Promise<void> {\n return this.getFacadeRoot().refresh();\n }\n\n /**\n * Call this after writing to the `FeatureFlag` table.\n *\n * ```ts\n * public async update(\n * request: HttpRequest<{ active: boolean }, { key: string }>,\n * ) {\n * const input = await request.input();\n *\n * await FeatureFlag.update({\n * where: { key: request.params.key },\n * data: { active: input.get(\"active\") },\n * });\n *\n * await Features.invalidate();\n * return await Features.list();\n * }\n * ```\n *\n * Unlike `refresh()` this never settles on a load that started before it was\n * called, so the `list()` above reflects the write that precedes it. It also\n * clears the request's evaluation memo, so a feature read earlier in the same\n * request is re-evaluated rather than answered from before the write.\n *\n * **Throws `FeatureReloadError` when the reload fails.** The write landed and\n * the cache did not follow, so the switches in memory may still predate it;\n * returning normally would present them as the result of the update. This is\n * the one call in the subsystem that fails loudly — everywhere else an outage\n * means \"keep serving what we have\", which is right for evaluation and wrong\n * for an operator watching their own change.\n *\n * **Process-local.** The other instances are still serving their own\n * snapshots and converge within `ttl` — there is no cross-instance\n * invalidation. What this fixes is the window that reads as a bug: the admin\n * who flips a switch and is told for the next thirty seconds that nothing\n * happened.\n */\n static invalidate(): Promise<void> {\n return this.getFacadeRoot().invalidate();\n }\n}\n",
|
|
85
86
|
"import type { SQL } from \"bun\";\nimport type { DatabaseConnection } from \"../database/Connection\";\nimport { DatabaseManager } from \"../database/DatabaseManager\";\nimport type { Dialect } from \"../database/dialect\";\nimport type { DatabaseSchema } from \"../database/introspect/types\";\nimport { app } from \"../foundation/app\";\nimport {\n assertConnectionUsable,\n currentConnectionName,\n currentTransaction,\n runOnConnection,\n withTransaction,\n} from \"../orm/context\";\nimport { dialectFor } from \"../orm/dialect\";\nimport { renderFragment, type SqlFragment } from \"../orm/sql\";\nimport { Facade } from \"./Facade\";\n\n/**\n * The raw-SQL surface, pointed at one connection.\n *\n * `DB` itself is one of these — the one that resolves the **ambient**\n * connection per call — and `DB.connection(name)` returns one bound to a name.\n * Written once rather than twice so the two cannot drift: a fragment run\n * through a named connection has to reach the driver by exactly the path\n * `DB.query` does, or the ambient transaction, the placeholder numbering and\n * the string refusal would each be a thing that works on one of them.\n *\n * Every method resolves the manager, the connection and the dialect **per\n * call** and captures none of them, which is the rule `Model.$exec` follows and\n * what keeps the connection swappable in tests.\n */\nexport class ConnectionQueries {\n /**\n * `undefined` means *whichever connection is ambient*, which is the default\n * one unless an enclosing transaction or `Model.on` named another. That is\n * the mode `DB`'s own statics use, and it is why an unqualified `DB.query`\n * inside `DB.connection(\"analytics\").transaction(...)` joins that transaction\n * instead of being refused by it.\n */\n constructor(private readonly bound?: string) {}\n\n /** The name this handle will use for the call happening now. */\n get name(): string {\n return this.bound ?? currentConnectionName();\n }\n\n /**\n * The Bun `SQL` client. Tagged-template queries go through here.\n *\n * **The pool, not the open transaction.** `DB.sql` has always been Bun's own\n * template and has never joined the ambient transaction — on Postgres it runs\n * on a pooled connection and survives a rollback — and a named handle does\n * not change that, only which pool it is. `query` and `execute` are the ones\n * that join; reach for them when the difference matters.\n *\n * **This getter throws where the methods reject**, and it cannot do\n * otherwise: an accessor has nowhere to put a rejection. So\n * `DB.connection(\"typo\").sql` throws `UnknownConnectionError` synchronously,\n * and reading it while a transaction is open on another connection throws\n * `CrossConnectionTransactionError` the same way. `query`, `execute` and\n * `transaction` are `async` precisely so a `.catch()` cannot miss those.\n */\n get sql(): SQL {\n return this.connection().sql;\n }\n\n /**\n * Which database is in use, inferred from the connection URL. Read this when\n * generating SQL that differs across databases (upserts, `RETURNING`,\n * autoincrement, boolean and timestamp types).\n *\n * Throws rather than rejects, for the reason given on `sql` above.\n */\n get dialect(): Dialect {\n return this.connection().dialect;\n }\n\n // Runs a composed fragment and returns its rows.\n //\n // const where = filters.length ? sql`where ${join(filters, \" and \")}` : empty\n // const rows = await DB.query(sql`select * from \"Product\" ${where}`)\n //\n // Two things it does that `DB.sql` does not, and they are the reason it\n // exists rather than being sugar:\n //\n // - It takes a **fragment**, so a predicate can be built as a value and\n // passed around. See `orm/sql.ts` for why that shape is the one raw SQL\n // actually needs.\n // - It runs on the **ambient transaction** when there is one. A raw statement\n // that quietly escapes `Model.transaction` and commits while its neighbours\n // roll back is worse than no raw statement at all — so this resolves the\n // handle exactly as `Model.$exec` does, through `currentTransaction()`.\n //\n // A plain string is refused. That is deliberate: accepting one would make an\n // interpolated template the path of least resistance, which is the injection\n // this whole mechanism exists to keep closed. `unsafeSql` is the door, and it\n // is named so that using it is a decision.\n //\n // `async` rather than returning the driver's promise directly, so that a\n // rejected fragment — a plain string, a parameter count over the ceiling —\n // *rejects* instead of throwing synchronously. An API that does one sometimes\n // and the other otherwise is a footgun: `DB.query(...).catch(…)` would miss\n // exactly the errors this refuses to run.\n async query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return (await this.run(fragment, \"query\")) as T[];\n }\n\n // The same, for a statement whose answer is *how many rows it touched*.\n //\n // const won = await DB.execute(\n // sql`update \"Reservation\" set status = 'claimed'\n // where id = ${id} and status = 'reserved'`,\n // )\n // if (won === 0) { /* somebody else claimed it first */ }\n //\n // The count is the concurrency primitive there, not a diagnostic: 1 means this\n // caller won the compare-and-swap and 0 means it lost, and an API that\n // discarded it could not express that at all.\n //\n // **Where the number comes from.** Bun puts it on `count`, and leaves\n // `affectedRows` null — measured on both dialects rather than read from a\n // changelog, for `update`, `delete`, `insert`, a statement matching nothing,\n // and one with `returning`.\n //\n // `result.count` on what is otherwise an *array* reads like a bug, so: Bun\n // returns an array with `count`, `command` and `lastInsertRowid` hung off it,\n // on every statement including the ones that return no rows at all. A write\n // without `returning` is therefore a zero-length array whose `count` is the\n // number of rows it touched, and a write *with* one is an array of the rows\n // whose `count` matches their number. `compile/write.ts` records the same measurement\n // from the other side: the *ORM's* counts come from `RETURNING` instead,\n // because there the statement shape is ours to choose and an exact count that\n // depends on nothing undocumented is worth a key column per row. Here the\n // statement is the caller's, so there is nothing to add a `RETURNING` to.\n async execute(fragment: SqlFragment): Promise<number> {\n const result = await this.run(fragment, \"execute\");\n return Number((result as { count?: unknown })?.count ?? 0);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. The callback still receives the raw handle, as\n // it always has.\n //\n // It goes through the ORM's `withTransaction` rather than straight to\n // `sql.begin` so that the two transaction systems are one: a `User.create`\n // inside a `DB.transaction` joins it instead of committing separately on a\n // pooled connection, and a `DB.transaction` nested inside a\n // `Model.transaction` becomes a savepoint instead of throwing (Bun refuses\n // `begin` inside a transaction). Two systems that silently ignored each other\n // would be worse than either alone — a rollback would leave half the work\n // committed.\n //\n // The slow-transaction threshold comes from the same `database` config as it\n // does for the ORM, so a `DB.transaction` holding a connection too long warns\n // exactly as a `Model.transaction` would. Same reason as above: one system.\n //\n // On a named connection the whole callback runs with that connection ambient,\n // so a `User.create` inside `DB.connection(\"analytics\").transaction(...)`\n // joins the transaction rather than opening a second one on the hot path.\n //\n // `async` so that a handle used inside a transaction on another connection\n // *rejects* rather than throwing synchronously — the same reason `query`\n // above is, and the same `.catch()` that would otherwise miss it.\n async transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n const name = this.name;\n const connection = this.connection(name);\n\n return withTransaction(\n connection.sql,\n (tx) => runOnConnection(name, () => fn(tx)),\n {\n slowTransactionThreshold: connection.config.slowTransactionThreshold,\n connection: name,\n },\n );\n }\n\n // The schema of the live database, read back from its own catalog: every\n // table, its columns and their types, its primary key, and the foreign keys\n // that relate it to the others.\n //\n // const { tables } = await DB.schema()\n // tables.find((t) => t.name === \"Post\")?.relations\n // // [{ columns: [\"authorId\"], referencedTable: \"User\", referencedColumns: [\"id\"], … }]\n //\n // **What the database says, not what the models say.** The ORM's schema is\n // generated from Prisma and never checked against the database; this is the\n // database's side of that, on every dialect including MySQL, where\n // `query` itself is not supported yet.\n //\n // The introspection code is loaded on the first call, not with the facade.\n // It is a diagnostic most apps never run, so nothing that imports `DB` pays\n // for it.\n //\n // On the ambient transaction when there is one, like `query`: a table created\n // earlier in the same transaction is in the answer. `async` for the same\n // reason as the others.\n async schema(): Promise<DatabaseSchema> {\n const db = this.connection();\n const { introspect } = await import(\"../database/introspect/index.js\");\n return introspect(this.handle() ?? db.sql, db.dialect);\n }\n\n private run(fragment: SqlFragment, operation: string) {\n const db = this.connection();\n // Per call, never captured: the same rule `Model.$exec` follows, and what\n // keeps the connection swappable in tests.\n const { text, values } = renderFragment(\n fragment,\n dialectFor(db.dialect),\n operation,\n );\n return (this.handle() ?? db.sql).unsafe(text, values);\n }\n\n /**\n * The open transaction, but only when it belongs to this handle's connection.\n *\n * `assertConnectionUsable` has already refused the case where they differ, so\n * reaching this with a mismatch is impossible — except for the unqualified\n * handle, whose name *is* the transaction's. The comparison is kept anyway\n * because it is what makes that reasoning local: nothing here has to know\n * which caller checked what.\n */\n private handle() {\n const tx = currentTransaction();\n if (tx === undefined) return undefined;\n return currentConnectionName() === this.name ? tx : undefined;\n }\n\n private connection(name = this.name): DatabaseConnection {\n assertConnectionUsable(name);\n return app(DatabaseManager).connection(name);\n }\n}\n\n/** The unqualified handle: whichever connection is ambient, per call. */\nconst ambient = new ConnectionQueries();\n\n// Access to the app's database connections. Bun's `SQL` client is a tagged\n// template, so queries read the same here as they do in Bun's own docs:\n//\n// const users = await DB.sql`select * from users where id = ${id}`\n//\n// Values interpolated into the template are bound as parameters, not\n// concatenated into the SQL string — `${id}` is a placeholder, so this is not a\n// SQL injection risk.\n//\n// Every static here works on the **ambient** connection: the default one,\n// unless an enclosing `DB.connection(name).transaction(...)` named another.\n// `DB.connection(name)` is the way to name one explicitly.\nexport class DB extends Facade {\n static getFacadeAccessor() {\n return DatabaseManager;\n }\n\n /**\n * The raw-SQL surface for a named connection.\n *\n * const rows = await DB.connection(\"analytics\").query(sql`…`)\n * await DB.connection(\"analytics\").transaction(async () => { … })\n *\n * The names are the keys of `connections` in `app/config/database.ts`, plus\n * `\"default\"` for the top-level `url`. An unknown one raises\n * `UnknownConnectionError` when the handle is used, listing what is\n * configured — never a silent fall back to the default, which would put the\n * query on precisely the pool the caller was trying to stay off.\n *\n * A transaction cannot span two connections. Using a named handle while a\n * transaction is open on another connection raises\n * `CrossConnectionTransactionError` rather than running the statement outside\n * that transaction, where it would survive the rollback.\n */\n // Built per call rather than memoised by name. A handle is one string and a\n // few methods that resolve everything else per call, so caching it saves an\n // allocation — and a `Map` keyed on the caller's string is a slow leak the\n // moment a name reaches it from a request, since an unknown name is not\n // rejected until the handle is *used*. Nothing is worth keeping here.\n static connection(name: string): ConnectionQueries {\n return new ConnectionQueries(name);\n }\n\n // The Bun `SQL` client. Tagged-template queries go through here.\n static get sql(): SQL {\n return ambient.sql;\n }\n\n // Which database is in use, inferred from the connection URL. Read this when\n // generating SQL that differs across databases (upserts, `RETURNING`,\n // autoincrement, boolean and timestamp types).\n static get dialect(): Dialect {\n return ambient.dialect;\n }\n\n // Runs a composed fragment and returns its rows, on the ambient transaction\n // when there is one. See `ConnectionQueries.query`, which is the whole of it.\n static query<T = any>(fragment: SqlFragment): Promise<T[]> {\n return ambient.query<T>(fragment);\n }\n\n // The same, for a statement whose answer is *how many rows it touched* — the\n // compare-and-swap primitive. See `ConnectionQueries.execute`.\n static execute(fragment: SqlFragment): Promise<number> {\n return ambient.execute(fragment);\n }\n\n // Runs the callback inside a transaction, committing when it resolves and\n // rolling back if it throws. One transaction system with the ORM's, so a\n // `User.create` inside this joins it. See `ConnectionQueries.transaction`.\n static transaction<T>(fn: (tx: SQL) => Promise<T>): Promise<T> {\n return ambient.transaction(fn);\n }\n\n // The schema of the live database: tables, columns and their types, primary\n // keys and foreign-key relations. Loads its code on first use. See\n // `ConnectionQueries.schema`.\n static schema(): Promise<DatabaseSchema> {\n return ambient.schema();\n }\n\n /** Closes every configured connection, not only the default one. */\n static close(): Promise<void> {\n return this.getFacadeRoot().close();\n }\n}\n"
|
|
86
87
|
],
|
|
87
|
-
"mappings": "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",
|
|
88
|
-
"debugId": "
|
|
88
|
+
"mappings": "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",
|
|
89
|
+
"debugId": "95E4E3C166B8569C64756E2164756E21",
|
|
89
90
|
"names": []
|
|
90
91
|
}
|