gemi 0.44.1 → 0.45.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/app/index.js +1 -1
- package/dist/bin/gemi.js +1 -1
- package/dist/bin/gemi.js.map +1 -1
- package/dist/broadcasting/index.js +1 -1
- package/dist/bun/plugin.js +1 -1
- package/dist/bun/preload.js +1 -1
- package/dist/{chunk-5kx4hw7c.js → chunk-0r110r6m.js} +3 -3
- package/dist/{chunk-5kx4hw7c.js.map → chunk-0r110r6m.js.map} +1 -1
- package/dist/{chunk-ytr22fm4.js → chunk-1nkxmecw.js} +3 -3
- package/dist/{chunk-ytr22fm4.js.map → chunk-1nkxmecw.js.map} +1 -1
- package/dist/{chunk-20376aj6.js → chunk-27tkdqp6.js} +4 -4
- package/dist/{chunk-20376aj6.js.map → chunk-27tkdqp6.js.map} +1 -1
- package/dist/{chunk-3xqyzegw.js → chunk-2a4ze3n3.js} +2 -2
- package/dist/{chunk-3xqyzegw.js.map → chunk-2a4ze3n3.js.map} +1 -1
- package/dist/{chunk-sdj112nj.js → chunk-2cew23ww.js} +3 -3
- package/dist/{chunk-sdj112nj.js.map → chunk-2cew23ww.js.map} +1 -1
- package/dist/{chunk-nhyc69tx.js → chunk-2pazt3hc.js} +2 -2
- package/dist/{chunk-nhyc69tx.js.map → chunk-2pazt3hc.js.map} +1 -1
- package/dist/{chunk-revm9qww.js → chunk-396qq8ge.js} +1 -1
- package/dist/{chunk-8b461343.js → chunk-4k7p344e.js} +2 -2
- package/dist/{chunk-8b461343.js.map → chunk-4k7p344e.js.map} +1 -1
- package/dist/{chunk-whj1a3vr.js → chunk-4z53shav.js} +2 -2
- package/dist/{chunk-whj1a3vr.js.map → chunk-4z53shav.js.map} +1 -1
- package/dist/{chunk-ks0xswsd.js → chunk-63gmzy5r.js} +2 -2
- package/dist/{chunk-ks0xswsd.js.map → chunk-63gmzy5r.js.map} +2 -2
- package/dist/{chunk-jvcbdxtq.js → chunk-6av6dnxx.js} +2 -2
- package/dist/{chunk-jvcbdxtq.js.map → chunk-6av6dnxx.js.map} +1 -1
- package/dist/{chunk-ngnrytfh.js → chunk-7bggj8g7.js} +3 -3
- package/dist/{chunk-ngnrytfh.js.map → chunk-7bggj8g7.js.map} +1 -1
- package/dist/{chunk-x2cq1qp8.js → chunk-8jns0zmx.js} +2 -2
- package/dist/{chunk-x2cq1qp8.js.map → chunk-8jns0zmx.js.map} +1 -1
- package/dist/{chunk-knrx23te.js → chunk-a3bmbfn3.js} +2 -2
- package/dist/{chunk-knrx23te.js.map → chunk-a3bmbfn3.js.map} +1 -1
- package/dist/chunk-atv6nybp.js +4 -0
- package/dist/{chunk-fk9xtngd.js.map → chunk-atv6nybp.js.map} +4 -4
- package/dist/{chunk-fvtfwssb.js → chunk-b0ca3dzf.js} +2 -2
- package/dist/{chunk-fvtfwssb.js.map → chunk-b0ca3dzf.js.map} +1 -1
- package/dist/{chunk-kkdtznm5.js → chunk-cmnhs4mh.js} +3 -3
- package/dist/{chunk-kkdtznm5.js.map → chunk-cmnhs4mh.js.map} +1 -1
- package/dist/{chunk-6gtmkbh0.js → chunk-f18weffa.js} +2 -2
- package/dist/{chunk-6gtmkbh0.js.map → chunk-f18weffa.js.map} +1 -1
- package/dist/{chunk-9s3te5pa.js → chunk-jrnbyhgq.js} +4 -4
- package/dist/{chunk-9s3te5pa.js.map → chunk-jrnbyhgq.js.map} +1 -1
- package/dist/{chunk-q8haepmm.js → chunk-jxpwexpz.js} +16 -16
- package/dist/{chunk-q8haepmm.js.map → chunk-jxpwexpz.js.map} +5 -4
- package/dist/{chunk-sdx8r2qb.js → chunk-m0earq80.js} +2 -2
- package/dist/{chunk-sdx8r2qb.js.map → chunk-m0earq80.js.map} +1 -1
- package/dist/{chunk-errq965d.js → chunk-mped4eh6.js} +3 -3
- package/dist/{chunk-errq965d.js.map → chunk-mped4eh6.js.map} +1 -1
- package/dist/{chunk-mfwbdztp.js → chunk-n4wrg0sn.js} +2 -2
- package/dist/{chunk-drbqadx7.js.map → chunk-n4wrg0sn.js.map} +1 -1
- package/dist/{chunk-ty3q916e.js → chunk-p5r0t9jh.js} +3 -3
- package/dist/{chunk-ty3q916e.js.map → chunk-p5r0t9jh.js.map} +1 -1
- package/dist/chunk-pf4r36w2.js +5 -0
- package/dist/{chunk-tatd75jn.js.map → chunk-pf4r36w2.js.map} +1 -1
- package/dist/{chunk-m359awjw.js → chunk-ppn0j67g.js} +2 -2
- package/dist/{chunk-m359awjw.js.map → chunk-ppn0j67g.js.map} +1 -1
- package/dist/{chunk-s49529x2.js → chunk-snp18f2m.js} +3 -3
- package/dist/{chunk-s49529x2.js.map → chunk-snp18f2m.js.map} +1 -1
- package/dist/{chunk-nx8t65g3.js → chunk-sv4v623e.js} +3 -3
- package/dist/{chunk-nx8t65g3.js.map → chunk-sv4v623e.js.map} +1 -1
- package/dist/{chunk-cbvq4keh.js → chunk-tjzbw6eg.js} +2 -2
- package/dist/{chunk-cbvq4keh.js.map → chunk-tjzbw6eg.js.map} +1 -1
- package/dist/{chunk-fksvw2gz.js → chunk-tvp3xgfq.js} +2 -2
- package/dist/{chunk-fksvw2gz.js.map → chunk-tvp3xgfq.js.map} +1 -1
- package/dist/{chunk-9cw39se2.js → chunk-tyjhatbq.js} +2 -2
- package/dist/{chunk-9cw39se2.js.map → chunk-tyjhatbq.js.map} +1 -1
- package/dist/{chunk-y133781b.js → chunk-v0qh5dqv.js} +51 -24
- package/dist/{chunk-y133781b.js.map → chunk-v0qh5dqv.js.map} +8 -6
- package/dist/{chunk-wrp2v923.js → chunk-vh6dnbty.js} +2 -2
- package/dist/{chunk-wrp2v923.js.map → chunk-vh6dnbty.js.map} +1 -1
- package/dist/{chunk-w7czqgx2.js → chunk-vpqq7v9e.js} +2 -2
- package/dist/{chunk-w7czqgx2.js.map → chunk-vpqq7v9e.js.map} +1 -1
- package/dist/{chunk-32ct42e2.js → chunk-w54fj10r.js} +1 -1
- package/dist/{chunk-ywhazhqt.js → chunk-wed042aw.js} +2 -2
- package/dist/{chunk-ywhazhqt.js.map → chunk-wed042aw.js.map} +1 -1
- package/dist/{chunk-gv4v6qsg.js → chunk-wjhh4pf0.js} +3 -3
- package/dist/{chunk-gv4v6qsg.js.map → chunk-wjhh4pf0.js.map} +1 -1
- package/dist/{chunk-qy3aczt9.js → chunk-wtydwxgg.js} +3 -3
- package/dist/{chunk-qy3aczt9.js.map → chunk-wtydwxgg.js.map} +1 -1
- package/dist/{chunk-bsfbba90.js → chunk-ww5vyb4s.js} +2 -2
- package/dist/{chunk-bsfbba90.js.map → chunk-ww5vyb4s.js.map} +1 -1
- package/dist/{chunk-h509r9s3.js → chunk-xdk6y558.js} +2 -2
- package/dist/{chunk-h509r9s3.js.map → chunk-xdk6y558.js.map} +1 -1
- package/dist/{chunk-9r2k5ykk.js → chunk-xkrthw08.js} +3 -3
- package/dist/{chunk-9r2k5ykk.js.map → chunk-xkrthw08.js.map} +1 -1
- package/dist/{chunk-87keq057.js → chunk-y4q11zr2.js} +2 -2
- package/dist/{chunk-87keq057.js.map → chunk-y4q11zr2.js.map} +1 -1
- package/dist/chunk-yyn0qk1w.js +4 -0
- package/dist/{chunk-mfwbdztp.js.map → chunk-yyn0qk1w.js.map} +1 -1
- package/dist/config/index.js +1 -1
- package/dist/email/index.js +2 -2
- package/dist/email/index.js.map +1 -1
- package/dist/facades/RateLimiter.d.ts +23 -0
- package/dist/facades/RateLimiter.d.ts.map +1 -0
- package/dist/facades/index.d.ts +1 -0
- package/dist/facades/index.d.ts.map +1 -1
- package/dist/facades/index.js +2 -2
- package/dist/facades/index.js.map +1 -1
- package/dist/http/RateLimitMiddleware.d.ts +58 -2
- package/dist/http/RateLimitMiddleware.d.ts.map +1 -1
- package/dist/http/index.d.ts +1 -1
- package/dist/http/index.d.ts.map +1 -1
- package/dist/http/index.js +2 -2
- package/dist/http/index.js.map +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/kernel/index.js +2 -2
- package/dist/kernel/index.js.map +2 -2
- package/dist/server/index.js +2 -2
- package/dist/server/index.js.map +1 -1
- package/dist/services/index.d.ts +6 -3
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +2 -2
- package/dist/services/index.js.map +1 -1
- package/dist/services/rate-limiter/RateLimiterServiceContainer.d.ts +17 -1
- package/dist/services/rate-limiter/RateLimiterServiceContainer.d.ts.map +1 -1
- package/dist/services/rate-limiter/RateLimiterServiceProvider.d.ts +8 -0
- package/dist/services/rate-limiter/RateLimiterServiceProvider.d.ts.map +1 -1
- package/dist/services/rate-limiter/drivers/InMemoryRateLimiterDriver.d.ts +31 -5
- package/dist/services/rate-limiter/drivers/InMemoryRateLimiterDriver.d.ts.map +1 -1
- package/dist/services/rate-limiter/drivers/RateLimiterDriver.d.ts +11 -1
- package/dist/services/rate-limiter/drivers/RateLimiterDriver.d.ts.map +1 -1
- package/dist/services/rate-limiter/drivers/RedisRateLimiterDriver.d.ts +59 -0
- package/dist/services/rate-limiter/drivers/RedisRateLimiterDriver.d.ts.map +1 -0
- package/dist/services/rate-limiter/slidingWindow.d.ts +55 -0
- package/dist/services/rate-limiter/slidingWindow.d.ts.map +1 -0
- package/dist/services/rate-limiter/types.d.ts +35 -1
- package/dist/services/rate-limiter/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-drbqadx7.js +0 -4
- package/dist/chunk-fk9xtngd.js +0 -4
- package/dist/chunk-tatd75jn.js +0 -5
- /package/dist/{chunk-revm9qww.js.map → chunk-396qq8ge.js.map} +0 -0
- /package/dist/{chunk-32ct42e2.js.map → chunk-w54fj10r.js.map} +0 -0
package/dist/services/index.d.ts
CHANGED
|
@@ -4,11 +4,14 @@ export { S3Driver } from "./file-storage/drivers/S3Driver";
|
|
|
4
4
|
export { AzureBlobDriver, type AzureBlobDriverConfig, } from "./file-storage/drivers/AzureBlobDriver";
|
|
5
5
|
export type { ByteRange, FileMetadata, PutFileParams, ReadFileParams, ReadResult, } from "./file-storage/drivers/types";
|
|
6
6
|
export { FileStorageDriver } from "./file-storage/drivers/FileStorageDriver";
|
|
7
|
-
export { resolveRange, toRangeHeaderValue, parseContentRange } from "../http/range";
|
|
7
|
+
export { resolveRange, toRangeHeaderValue, parseContentRange, } from "../http/range";
|
|
8
8
|
export { FileNotFoundError, RangeNotSatisfiableError } from "../http/errors";
|
|
9
9
|
export { RateLimiterServiceProvider } from "./rate-limiter/RateLimiterServiceProvider";
|
|
10
|
-
export { InMemoryRateLimiter } from "./rate-limiter/drivers/InMemoryRateLimiterDriver";
|
|
10
|
+
export { InMemoryRateLimiter, type InMemoryRateLimiterOptions, } from "./rate-limiter/drivers/InMemoryRateLimiterDriver";
|
|
11
|
+
export { RedisRateLimiter, type RedisRateLimiterOptions, type RateLimiterRedisClient, } from "./rate-limiter/drivers/RedisRateLimiterDriver";
|
|
11
12
|
export { RateLimiterDriver } from "./rate-limiter/drivers/RateLimiterDriver";
|
|
13
|
+
export type { ConsumeParams, RateLimitResult } from "./rate-limiter/types";
|
|
14
|
+
export type { ConsumeOptions } from "./rate-limiter/RateLimiterServiceContainer";
|
|
12
15
|
export { EmailServiceProvider } from "./email/EmailServiceProvider";
|
|
13
16
|
export { EmailDriver } from "./email/drivers/EmailDriver";
|
|
14
17
|
export { ResendDriver } from "./email/drivers/ResendDriver";
|
|
@@ -21,7 +24,7 @@ export type { LogEntry } from "./logging/types";
|
|
|
21
24
|
export { QueueServiceProvider } from "./queue/QueueServiceProvider";
|
|
22
25
|
export { Job } from "./queue/Job";
|
|
23
26
|
export { ImageOptimizationServiceProvider } from "./image-optimization/ImageOptimizationServiceProvider";
|
|
24
|
-
export type { FitEnum, ResizeParameters } from "./image-optimization/drivers/types";
|
|
27
|
+
export type { FitEnum, ResizeParameters, } from "./image-optimization/drivers/types";
|
|
25
28
|
export { ImageOptimizationDriver } from "./image-optimization/drivers/ImageOptimizationDriver";
|
|
26
29
|
export { Sharp } from "./image-optimization/drivers/SharpDriver";
|
|
27
30
|
export { GoogleOAuthProvider } from "../auth/oauth/GoogleOAuthProvider";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../services/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAE7E,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../services/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,KAAK,qBAAqB,GAC3B,MAAM,wCAAwC,CAAC;AAChD,YAAY,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,GACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAE7E,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAG7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,GAChC,MAAM,kDAAkD,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0CAA0C,CAAC;AAC7E,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAGjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AAGnF,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAI7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC1E,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAGlC,OAAO,EAAE,gCAAgC,EAAE,MAAM,uDAAuD,CAAC;AACzG,YAAY,EACV,OAAO,EACP,gBAAgB,GACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAC/F,OAAO,EAAE,KAAK,EAAE,MAAM,0CAA0C,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAGzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/services/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import{Aa as
|
|
2
|
+
import{Aa as r,Ba as s,Ca as t,Da as u,Ea as v,Fa as w,Ga as x,Ha as y,Ia as z,Ja as A,Ka as B,La as C,Ma as D,Na as E,Oa as F,Qa as G,oa as f,pa as g,qa as h,ra as i,sa as j,ta as k,ua as l,va as m,wa as n,xa as o,ya as p,za as q}from"../chunk-v0qh5dqv.js";import"../chunk-a3bmbfn3.js";import"../chunk-27tkdqp6.js";import"../chunk-7bggj8g7.js";import"../chunk-jrnbyhgq.js";import"../chunk-wtydwxgg.js";import"../chunk-1nkxmecw.js";import"../chunk-cmnhs4mh.js";import"../chunk-snp18f2m.js";import"../chunk-0r110r6m.js";import"../chunk-sv4v623e.js";import"../chunk-2cew23ww.js";import"../chunk-wjhh4pf0.js";import"../chunk-xkrthw08.js";import{Qb as a,Rb as b,Sb as c,Zb as d,_b as e}from"../chunk-4z53shav.js";import"../chunk-m0earq80.js";import"../chunk-f18weffa.js";export{b as toRangeHeaderValue,a as resolveRange,c as parseContentRange,C as XOAuthProvider,t as ViewRouterServiceProvider,G as Singleton,y as Sharp,j as S3Driver,q as ResendDriver,F as RedisServiceProvider,o as RedisRateLimiter,n as RateLimiterServiceProvider,l as RateLimiterDriver,d as RangeNotSatisfiableError,v as QueueServiceProvider,A as OAuthProvider,u as LoggingServiceProvider,w as Job,m as InMemoryRateLimiter,z as ImageOptimizationServiceProvider,x as ImageOptimizationDriver,B as GoogleOAuthProvider,g as FileSystemDriver,h as FileStorageServiceProvider,f as FileStorageDriver,e as FileNotFoundError,r as EmailServiceProvider,p as EmailDriver,D as CronServiceProvider,E as CronJob,s as BroadcastingServiceProvider,k as AzureBlobDriver,i as ApiRouterServiceProvider};
|
|
3
3
|
|
|
4
|
-
//# debugId=
|
|
4
|
+
//# debugId=1ACE980962EB1CBF64756E2164756E21
|
|
@@ -1,8 +1,24 @@
|
|
|
1
1
|
import { ServiceContainer } from "../ServiceContainer";
|
|
2
|
-
import { RateLimiterServiceProvider } from "./RateLimiterServiceProvider";
|
|
2
|
+
import type { RateLimiterServiceProvider } from "./RateLimiterServiceProvider";
|
|
3
|
+
import type { RateLimitResult } from "./types";
|
|
4
|
+
export interface ConsumeOptions {
|
|
5
|
+
/** Requests allowed per window. Defaults to the provider's `limit`. */
|
|
6
|
+
limit?: number;
|
|
7
|
+
/** Window length in **seconds**. Defaults to the provider's `window`. */
|
|
8
|
+
window?: number;
|
|
9
|
+
/** How much this call costs. Defaults to `1`. */
|
|
10
|
+
cost?: number;
|
|
11
|
+
}
|
|
3
12
|
export declare class RateLimiterServiceContainer extends ServiceContainer {
|
|
4
13
|
service: RateLimiterServiceProvider;
|
|
5
14
|
static _name: string;
|
|
6
15
|
constructor(service: RateLimiterServiceProvider);
|
|
16
|
+
/**
|
|
17
|
+
* Records one hit against `key` and reports whether it fits the budget.
|
|
18
|
+
*
|
|
19
|
+
* Windows are given in seconds here — the unit routes, middleware and config
|
|
20
|
+
* are written in — and converted to the milliseconds drivers work in.
|
|
21
|
+
*/
|
|
22
|
+
consume(key: string, options?: ConsumeOptions): Promise<RateLimitResult>;
|
|
7
23
|
}
|
|
8
24
|
//# sourceMappingURL=RateLimiterServiceContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiterServiceContainer.d.ts","sourceRoot":"","sources":["../../../services/rate-limiter/RateLimiterServiceContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"RateLimiterServiceContainer.d.ts","sourceRoot":"","sources":["../../../services/rate-limiter/RateLimiterServiceContainer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,2BAA4B,SAAQ,gBAAgB;IAG5C,OAAO,EAAE,0BAA0B;IAFtD,MAAM,CAAC,KAAK,SAAiC;gBAE1B,OAAO,EAAE,0BAA0B;IAItD;;;;;OAKG;IACG,OAAO,CACX,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,eAAe,CAAC;CAsB5B"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { ServiceProvider } from "../ServiceProvider";
|
|
2
2
|
import { RateLimiterDriver } from "./drivers/RateLimiterDriver";
|
|
3
3
|
export declare class RateLimiterServiceProvider extends ServiceProvider {
|
|
4
|
+
/**
|
|
5
|
+
* Where counters live. In-process by default; swap in `RedisRateLimiter` once
|
|
6
|
+
* the app runs on more than one instance.
|
|
7
|
+
*/
|
|
4
8
|
driver: RateLimiterDriver;
|
|
9
|
+
/** Requests allowed per window when the `rate-limit` DSL omits a limit. */
|
|
10
|
+
limit: number;
|
|
11
|
+
/** Window length in **seconds** when the `rate-limit` DSL omits one. */
|
|
12
|
+
window: number;
|
|
5
13
|
boot(): void;
|
|
6
14
|
}
|
|
7
15
|
//# sourceMappingURL=RateLimiterServiceProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiterServiceProvider.d.ts","sourceRoot":"","sources":["../../../services/rate-limiter/RateLimiterServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D,MAAM,EAAE,iBAAiB,CAA6B;IAEtD,IAAI;CACL"}
|
|
1
|
+
{"version":3,"file":"RateLimiterServiceProvider.d.ts","sourceRoot":"","sources":["../../../services/rate-limiter/RateLimiterServiceProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAEhE,qBAAa,0BAA2B,SAAQ,eAAe;IAC7D;;;OAGG;IACH,MAAM,EAAE,iBAAiB,CAA6B;IAEtD,2EAA2E;IAC3E,KAAK,SAAQ;IAEb,wEAAwE;IACxE,MAAM,SAAM;IAEZ,IAAI;CACL"}
|
|
@@ -1,9 +1,35 @@
|
|
|
1
|
+
import type { ConsumeParams, RateLimitResult } from "../types";
|
|
1
2
|
import { RateLimiterDriver } from "./RateLimiterDriver";
|
|
3
|
+
export interface InMemoryRateLimiterOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Hard cap on tracked keys. Reached only by traffic that never repeats a key
|
|
6
|
+
* (spoofed `x-forwarded-for`, for instance); the map is swept of dead buckets
|
|
7
|
+
* first and only then evicts live ones, oldest touched first.
|
|
8
|
+
*
|
|
9
|
+
* Defaults to 100k keys — a few MB, and far more than a single instance
|
|
10
|
+
* legitimately sees inside one window.
|
|
11
|
+
*/
|
|
12
|
+
maxKeys?: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Per-process rate limiter. The default driver, and the right one for a single
|
|
16
|
+
* instance or for development.
|
|
17
|
+
*
|
|
18
|
+
* State lives in this process only: with N instances behind a load balancer the
|
|
19
|
+
* effective limit is N × the configured limit, and it resets on deploy. Point
|
|
20
|
+
* the service provider at `RedisRateLimiter` once you run more than one.
|
|
21
|
+
*/
|
|
2
22
|
export declare class InMemoryRateLimiter extends RateLimiterDriver {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
23
|
+
private buckets;
|
|
24
|
+
private maxKeys;
|
|
25
|
+
constructor(options?: InMemoryRateLimiterOptions);
|
|
26
|
+
consume(params: ConsumeParams): RateLimitResult;
|
|
27
|
+
/** Drops all counters. Mainly useful in tests. */
|
|
28
|
+
clear(): void;
|
|
29
|
+
/** Number of tracked keys. Exposed for tests and diagnostics. */
|
|
30
|
+
get size(): number;
|
|
31
|
+
/** Advances a bucket to `windowStart`, creating it when absent or stale. */
|
|
32
|
+
private roll;
|
|
33
|
+
private evict;
|
|
8
34
|
}
|
|
9
35
|
//# sourceMappingURL=InMemoryRateLimiterDriver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryRateLimiterDriver.d.ts","sourceRoot":"","sources":["../../../../services/rate-limiter/drivers/InMemoryRateLimiterDriver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"InMemoryRateLimiterDriver.d.ts","sourceRoot":"","sources":["../../../../services/rate-limiter/drivers/InMemoryRateLimiterDriver.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAUxD,MAAM,WAAW,0BAA0B;IACzC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAoB,SAAQ,iBAAiB;IACxD,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,0BAA+B;IAKpD,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,eAAe;IAwC/C,kDAAkD;IAClD,KAAK;IAIL,iEAAiE;IACjE,IAAI,IAAI,WAEP;IAED,4EAA4E;IAC5E,OAAO,CAAC,IAAI;IAyBZ,OAAO,CAAC,KAAK;CAgBd"}
|
|
@@ -1,4 +1,14 @@
|
|
|
1
|
+
import type { ConsumeParams, RateLimitResult } from "../types";
|
|
1
2
|
export declare abstract class RateLimiterDriver {
|
|
2
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Records one request against `params.key` and reports whether it fits.
|
|
5
|
+
*
|
|
6
|
+
* Implementations must decide *and* record atomically — two concurrent calls
|
|
7
|
+
* for the same key may never both be told they were the last one that fit.
|
|
8
|
+
*
|
|
9
|
+
* May be sync or async: the in-memory driver answers immediately, a network
|
|
10
|
+
* backed driver returns a promise. Callers always `await` the result.
|
|
11
|
+
*/
|
|
12
|
+
abstract consume(params: ConsumeParams): Promise<RateLimitResult> | RateLimitResult;
|
|
3
13
|
}
|
|
4
14
|
//# sourceMappingURL=RateLimiterDriver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiterDriver.d.ts","sourceRoot":"","sources":["../../../../services/rate-limiter/drivers/RateLimiterDriver.ts"],"names":[],"mappings":"AAAA,8BAAsB,iBAAiB;IACrC,QAAQ,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"RateLimiterDriver.d.ts","sourceRoot":"","sources":["../../../../services/rate-limiter/drivers/RateLimiterDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE/D,8BAAsB,iBAAiB;IACrC;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,CACd,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe;CAC9C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { ConsumeParams, RateLimitResult } from "../types";
|
|
2
|
+
import { RateLimiterDriver } from "./RateLimiterDriver";
|
|
3
|
+
/**
|
|
4
|
+
* The slice of Bun's `RedisClient` this driver needs. Narrow on purpose: any
|
|
5
|
+
* client exposing `send(command, args)` works, which keeps the driver testable
|
|
6
|
+
* without a live server.
|
|
7
|
+
*/
|
|
8
|
+
export interface RateLimiterRedisClient {
|
|
9
|
+
send(command: string, args: string[]): Promise<any>;
|
|
10
|
+
}
|
|
11
|
+
export interface RedisRateLimiterOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Client to run against. Defaults to the app's shared client from
|
|
14
|
+
* `RedisServiceProvider`, resolved lazily so constructing the driver never
|
|
15
|
+
* requires a kernel or a connection.
|
|
16
|
+
*/
|
|
17
|
+
client?: RateLimiterRedisClient;
|
|
18
|
+
/** Key namespace. Defaults to `gemi:rl`. */
|
|
19
|
+
prefix?: string;
|
|
20
|
+
/**
|
|
21
|
+
* What to do when Redis is unreachable. `true` (the default) admits the
|
|
22
|
+
* request — a limiter outage should not take the site down with it. Set
|
|
23
|
+
* `false` for endpoints where an unmetered request is worse than a rejected
|
|
24
|
+
* one (payments, sign-up, anything that costs money per call).
|
|
25
|
+
*/
|
|
26
|
+
failOpen?: boolean;
|
|
27
|
+
/** Called with every Redis failure. Defaults to `console.error`. */
|
|
28
|
+
onError?: (error: unknown) => void;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Rate limiter backed by Redis, so every instance of the app counts against the
|
|
32
|
+
* same budget. Use it as soon as you run more than one process.
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* // app/kernel/providers/RateLimiterServiceProvider.ts
|
|
36
|
+
* export default class extends RateLimiterServiceProvider {
|
|
37
|
+
* driver = new RedisRateLimiter();
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* Window boundaries come from the app server's clock, not Redis's, so keep
|
|
42
|
+
* instances on NTP. A few seconds of skew only shifts where a window starts; it
|
|
43
|
+
* cannot double a budget the way an unsynchronised fixed window would.
|
|
44
|
+
*/
|
|
45
|
+
export declare class RedisRateLimiter extends RateLimiterDriver {
|
|
46
|
+
private injectedClient?;
|
|
47
|
+
private prefix;
|
|
48
|
+
private failOpen;
|
|
49
|
+
private onError;
|
|
50
|
+
/** Cached `SCRIPT LOAD` result, so the script body is sent at most once. */
|
|
51
|
+
private scriptSha;
|
|
52
|
+
constructor(options?: RedisRateLimiterOptions);
|
|
53
|
+
consume(params: ConsumeParams): Promise<RateLimitResult>;
|
|
54
|
+
private get client();
|
|
55
|
+
/** Runs the script by digest, loading it on first use and after a flush. */
|
|
56
|
+
private run;
|
|
57
|
+
private load;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=RedisRateLimiterDriver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RedisRateLimiterDriver.d.ts","sourceRoot":"","sources":["../../../../services/rate-limiter/drivers/RedisRateLimiterDriver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;CACrD;AAED,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAyCD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,gBAAiB,SAAQ,iBAAiB;IACrD,OAAO,CAAC,cAAc,CAAC,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAU;IAC1B,OAAO,CAAC,OAAO,CAA2B;IAE1C,4EAA4E;IAC5E,OAAO,CAAC,SAAS,CAAgC;gBAErC,OAAO,GAAE,uBAA4B;IAQ3C,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC;IAwD9D,OAAO,KAAK,MAAM,GAkBjB;IAED,4EAA4E;YAC9D,GAAG;IAejB,OAAO,CAAC,IAAI;CAcb"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { RateLimitResult } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* The sliding-window-counter algorithm, shared by every driver.
|
|
4
|
+
*
|
|
5
|
+
* A fixed window is cheap but lets a client spend its whole budget at the end
|
|
6
|
+
* of one window and again at the start of the next — twice the limit across a
|
|
7
|
+
* window's worth of time. A true sliding log fixes that but has to keep a
|
|
8
|
+
* timestamp per request.
|
|
9
|
+
*
|
|
10
|
+
* The counter variant keeps two integers per key (this window and the one
|
|
11
|
+
* before it) and estimates usage by weighting the previous window by how much
|
|
12
|
+
* of it still overlaps the trailing window:
|
|
13
|
+
*
|
|
14
|
+
* usage = previous * (window - elapsed) / window + current
|
|
15
|
+
*
|
|
16
|
+
* That is a ~0.003% error on real traffic and costs two integers per key, so
|
|
17
|
+
* it is what the in-memory and Redis drivers both implement.
|
|
18
|
+
*/
|
|
19
|
+
/** Epoch ms of the start of the window `now` falls into. */
|
|
20
|
+
export declare function windowStartFor(now: number, window: number): number;
|
|
21
|
+
/** Weight of the previous window's count, from `1` down to `0`. */
|
|
22
|
+
export declare function previousWeight(elapsed: number, window: number): number;
|
|
23
|
+
/** Estimated usage of the trailing `window` ending at `now`. */
|
|
24
|
+
export declare function estimateUsage(current: number, previous: number, elapsed: number, window: number): number;
|
|
25
|
+
/**
|
|
26
|
+
* How long until a request costing `cost` would be admitted, in milliseconds.
|
|
27
|
+
*
|
|
28
|
+
* Solves the usage equation for `elapsed` instead of guessing: the caller gets
|
|
29
|
+
* a `Retry-After` that lands the moment capacity actually frees up rather than
|
|
30
|
+
* at the end of the window, which for a sliding window is usually far too late.
|
|
31
|
+
*/
|
|
32
|
+
export declare function timeUntilAllowed(params: {
|
|
33
|
+
current: number;
|
|
34
|
+
previous: number;
|
|
35
|
+
elapsed: number;
|
|
36
|
+
window: number;
|
|
37
|
+
limit: number;
|
|
38
|
+
cost: number;
|
|
39
|
+
}): number;
|
|
40
|
+
/**
|
|
41
|
+
* Turns a driver's post-operation counters into the result the caller sees.
|
|
42
|
+
* `current` and `previous` are the counts *after* an allowed request has been
|
|
43
|
+
* recorded, so every driver reports the same numbers for the same state.
|
|
44
|
+
*/
|
|
45
|
+
export declare function buildResult(params: {
|
|
46
|
+
allowed: boolean;
|
|
47
|
+
current: number;
|
|
48
|
+
previous: number;
|
|
49
|
+
now: number;
|
|
50
|
+
elapsed: number;
|
|
51
|
+
window: number;
|
|
52
|
+
limit: number;
|
|
53
|
+
cost: number;
|
|
54
|
+
}): RateLimitResult;
|
|
55
|
+
//# sourceMappingURL=slidingWindow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slidingWindow.d.ts","sourceRoot":"","sources":["../../../services/rate-limiter/slidingWindow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;;;;;;;;;;;;;;GAgBG;AAEH,4DAA4D;AAC5D,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAEzD;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,UAG7D;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,UAGf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,UA2BA;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,eAAe,CA+BlB"}
|
|
@@ -1,2 +1,36 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* A single request for capacity from the rate limiter.
|
|
3
|
+
*
|
|
4
|
+
* `key` identifies the bucket — everything the caller wants counted together.
|
|
5
|
+
* The limiter never invents part of the key on its own, so callers stay in
|
|
6
|
+
* control of what is limited (an IP, an IP plus a route, a user id, ...).
|
|
7
|
+
*/
|
|
8
|
+
export interface ConsumeParams {
|
|
9
|
+
key: string;
|
|
10
|
+
/** Maximum cost allowed inside one window. */
|
|
11
|
+
limit: number;
|
|
12
|
+
/** Window length in **milliseconds**. */
|
|
13
|
+
window: number;
|
|
14
|
+
/** How much this request costs. Defaults to `1`. */
|
|
15
|
+
cost?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface RateLimitResult {
|
|
18
|
+
/** `false` means the caller is over budget and should be rejected. */
|
|
19
|
+
allowed: boolean;
|
|
20
|
+
/** The limit this decision was made against. */
|
|
21
|
+
limit: number;
|
|
22
|
+
/**
|
|
23
|
+
* Capacity left in the window, floored to a whole request. `0` when the
|
|
24
|
+
* request was denied.
|
|
25
|
+
*/
|
|
26
|
+
remaining: number;
|
|
27
|
+
/**
|
|
28
|
+
* Epoch milliseconds. When allowed, the end of the current window — the
|
|
29
|
+
* point where the oldest counted requests have fully decayed away. When
|
|
30
|
+
* denied, the earliest moment a retry of the same cost can succeed.
|
|
31
|
+
*/
|
|
32
|
+
resetAt: number;
|
|
33
|
+
/** Milliseconds to wait before retrying. `0` when the request was allowed. */
|
|
34
|
+
retryAfter: number;
|
|
35
|
+
}
|
|
2
36
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../services/rate-limiter/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../services/rate-limiter/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,OAAO,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB,8EAA8E;IAC9E,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
package/package.json
CHANGED
package/dist/chunk-drbqadx7.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Na as a,Oa as b,Pa as c,Qa as d,Ra as e,Sa as f,Ta as g}from"./chunk-knrx23te.js";import"./chunk-nx8t65g3.js";import"./chunk-sdj112nj.js";import"./chunk-6gtmkbh0.js";export{g as fromEnv,c as ENV_SESSION,b as ENV_SECRET,a as ENV_KEY,d as ENV_EXPIRATION,e as ENV_CREDENTIAL_SCOPE,f as ENV_ACCOUNT_ID};
|
|
3
|
-
|
|
4
|
-
//# debugId=1329E74B99E0D77464756E2164756E21
|
package/dist/chunk-fk9xtngd.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
// @bun
|
|
2
|
-
import{Lb as ia,Mb as ec,Pb as sr,Qb as ir,Sb as Ti,Vb as cr,Xb as Vc,Zb as Xd,_b as Qd}from"./chunk-whj1a3vr.js";import{ac as zc}from"./chunk-sdx8r2qb.js";class kc{static kind="controller";constructor(){}}class bd extends kc{}function vd(s){return typeof s==="function"&&s.prototype!==void 0}import{AsyncLocalStorage as cl}from"async_hooks";class uc{content={title:"Gemi App",description:null,openGraph:null};render(){return{title:this.content.title,description:this.content.description,openGraph:this.content.openGraph}}title(s){this.content.title=s}description(s){this.content.description=s}openGraph({title:s,description:i,type:a,url:c,image:r,imageAlt:t,imageWidth:d,imageHeight:f,twitterImage:g=r,twitterImageAlt:T=t,twitterImageWidth:P=d,twitterImageHeight:l=f}){let m=r,D=g;if(r&&!r.startsWith("http"))m=`${process.env.HOST_NAME}${r}`,D=`${process.env.HOST_NAME}${g}`;this.content.openGraph=Object.fromEntries(Object.entries({title:s,description:i,type:a,url:c,image:m,imageAlt:t,imageWidth:d,imageHeight:f,twitterImage:D,twitterImageAlt:T,twitterImageWidth:P,twitterImageHeight:l}).filter(([O,w])=>w!==void 0))}}function Ld(s,i,a={}){return[`${s}=${i}`,a.maxAge?`Max-Age=${a.maxAge}`:"",a.httpOnly?"HttpOnly":"",a.secure?"Secure":"",a.sameSite?`SameSite=${a.sameSite}`:"SameSite=Strict",a.path?`Path=${a.path}`:"Path=/",a.domain?`Domain=${a.domain}`:"",a.expires?`Expires=${a.expires.toUTCString()}`:"",a.partitioned?"Partitioned":""].filter((c)=>c!=="").join("; ")}var nc=new cl;class Gd{req;cookies=new Set;headers=new Headers;prefetchedResources=new Map;prefetchPromiseQueue=new Set;user=null;csrfHmac=null;locale=null;metadata=new uc;rangeRequest=null;constructor(s){this.req=s}setLocale(s){this.locale=s}renderMeta(){return this.metadata.render()}setCSRFHmac(s){this.csrfHmac=s}setCookie(s,i,a={}){this.cookies.add(Ld(s,i,a))}deleteCookie(s){this.cookies.add(Ld(s,"",{maxAge:-1}))}setHeaders(s,i){this.headers.set(s,i)}setUser(s){this.user=s}setRequest(s){this.req=s}destroy(){delete this.cookies,delete this.headers,delete this.prefetchedResources,delete this.prefetchPromiseQueue,delete this.user}}class Ws{static getStore(){return nc.getStore()}static setRequest(s){nc.getStore().req=s}static run(s,i){return nc.run(new Gd(s),i)}}class sa extends Ti{errors={};constructor(s){super("Validation error");this.name="ValidationError",this.errors=s,this.payload={api:{status:400,data:{error:{kind:"validation_error",messages:s}},headers:{"Content-Type":"application/json"}},view:{status:400}}}}class hi{data;constructor(s){this.data=s}get(s){return this.data[s]}has(s){return this.data[s]!==void 0}toJSON(){return this.data}}function rl(s){let[i,a]=s.match(/\d+|\D+/g)??[];if(!i||!a)return 0;let c=Number.parseInt(i);switch(a){case"B":return c;case"KB":return c*1024;case"MB":return c*1024*1024;case"GB":return c*1024*1024*1024;case"TB":return c*1024*1024*1024*1024;default:return 0}}function tl(s){switch(s){case"image":return"image";case"png":return"image/png";case"jpg":return"image/jpeg";case"jpeg":return"image/jpeg";case"ttf":return"font/ttf";case"excel":return"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";case"csv":return"text/csv";case"word":return"application/vnd.openxmlformats-officedocument.wordprocessingml.document";case"pdf":return"application/pdf";case"json":return"application/json";default:return s}}function dl(s){let[i,a]=s.split(":");switch(i){case"required":return(c)=>{if(c instanceof Blob)return c.size>0;return c!==null&&c!==void 0&&c?.length>0};case"password":return(c)=>{return/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{8,}$/.test(c)};case"number":return(c)=>{if(typeof c!=="number")return!1;return!Number.isNaN(c)};case"min":return(c)=>{return c?.length>=Number.parseInt(a)};case"max":return(c)=>{return c?.length<=Number.parseInt(a)};case"email":return(c)=>{return/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(c)};case"file":return(c)=>{return c instanceof Blob};case"fileType":return(c)=>{if(c instanceof Blob){let r=tl(a);return c.type.startsWith(r)}};case"fileSize":return(c)=>{if(c instanceof Blob){let r=rl(a);return c.size<=r}};default:return()=>!0}}class Bs{kind;rawRequest;headers;cookies;search;schema={};routePath;params;constructor(s,i,a,c){if(!s){let T=Ws.getStore().req;this.params=T.params,this.rawRequest=T.rawRequest,this.kind=T.kind,this.routePath=T.routePath}else this.params=i,this.rawRequest=s,this.routePath=c,this.kind=a??"api";this.headers=this.rawRequest.headers;let r=this.rawRequest.headers.get("Cookie"),t=new Map;if(r){let T=r.split(";");for(let P of T){let[l,m]=P.split("=");t.set(l.trim(),m.trim())}}let d=new URL(this.rawRequest.url),f=new Map;for(let[T,P]of d.searchParams)if(f.has(T)){let l=f.get(T);if(Array.isArray(l))l.push(P),f.set(T,l);else f.set(T,[l,P])}else f.set(T,P);let g=Object.fromEntries(f.entries());this.search=new hi(g),this.cookies=t}locale(){return Ws.getStore().locale}ctx(){return Ws.getStore()}range(){return ia(this.rawRequest.headers.get("Range"))}refine(s){return{}}async parseBody(){let s=new hi({});if(this.rawRequest.headers.get("Content-Type")==="application/json"){let i=await this.rawRequest.json();s=new hi(i)}if(this.rawRequest.headers.get("Content-Type")==="application/x-www-form-urlencoded"){let i=await this.rawRequest.formData();s=new hi(i)}if(this.rawRequest.headers.get("Content-Type")?.startsWith("multipart/form-data")){let i=await this.rawRequest.formData(),a=new Map;for(let[c,r]of i.entries())if(a.has(c)){let t=a.get(c);if(Array.isArray(t))t.push(r),a.set(c,t);else a.set(c,[t,r])}else a.set(c,r);s=new hi(Object.fromEntries(a.entries()))}return s}validateInput(s){let i={};for(let[a,c]of Object.entries(this.schema))for(let[r,t]of Object.entries(c)){let d=dl(r),f=t,g=!1;if(typeof t==="function")f=t(s.get(a)),g=typeof f>"u";else g=d(s.get(a));if(g)continue;if(!s.get(a)&&!Object.keys(c).includes("required"))continue;if(!i[a])i[a]=[];if(r==="required"){i[a]=[String(f)];continue}i[a].push(String(f))}for(let[a,c]of Object.entries(this.refine(s.toJSON())??{})){if(!i[a])i[a]=[];i[a]=[...i[a]??[],c]}if(Object.keys(i).length>0)throw new sa(i);return s}async input(){return this.validateInput(await this.parseBody())}async safeInput(){let s=await this.parseBody();try{return this.validateInput(s),{isValid:!0,errors:{},input:s}}catch(i){if(!(i instanceof sa))throw i;return{isValid:!1,errors:i.errors,input:s}}}}function Ga(s,i){let a=i?"attachment":"inline",c=s.replace(/["\\]/g,"").replace(/[^\x20-\x7e]/g,"_");return`${a}; filename="${c}"; filename*=UTF-8''${encodeURIComponent(s)}`}function fl(s){return"total"in s&&"partial"in s&&"body"in s}function aa(s){return new Response(null,{status:416,headers:{"Accept-Ranges":"bytes","Content-Range":ir(s),"Content-Length":"0","Cache-Control":"no-store"}})}async function gl(s){if(s instanceof Blob)return{body:s,start:0,end:s.size-1,total:s.size,partial:!1,type:s.type,name:s.name,download:!1,status:200,extraHeaders:{}};if(fl(s))return{body:s.body,start:s.start,end:s.end,total:s.total,partial:s.partial,type:s.type,name:s.name,download:!1,etag:s.etag,lastModified:s.lastModified,status:200,extraHeaders:{}};let i=s.file,a=i instanceof Blob?i:null,c=s.total??a?.size??-1;return{body:i,start:s.start??0,end:s.end??c-1,total:c,partial:s.partial??!1,type:s.type??a?.type??"",name:s.name??i?.name,download:s.download??!1,etag:s.etag,lastModified:s.lastModified,status:s.status??200,extraHeaders:s.headers??{}}}async function ar(s,i){if(s instanceof Response)return s;if(!s)return new Response("Not found",{status:404});let a=await gl(s),{body:c,start:r,end:t,total:d,partial:f}=a;if(c instanceof Blob&&"exists"in c&&typeof c.exists==="function"){if(!await c.exists())return new Response("Not found",{status:404})}let{range:g}=i;if(g){if(d<=0)return aa(Math.max(d,0));if(!f){if(c instanceof Blob){let m=ec(g,d);if(!m)return aa(d);c=c.slice(m.start,m.end+1),r=m.start,t=m.end,f=!0}}}let T=Boolean(g)&&f,P=T?206:a.status,l=new Headers;if(l.set("Accept-Ranges","bytes"),l.set("Content-Type",a.type||"application/octet-stream"),T)l.set("Content-Range",sr(r,t,d)),l.set("Content-Length",String(t-r+1));else if(d>=0)l.set("Content-Length",String(d));if(a.name)l.set("Content-Disposition",Ga(a.name,a.download));if(a.etag)l.set("ETag",a.etag);if(a.lastModified)l.set("Last-Modified",a.lastModified.toUTCString());for(let[m,D]of Object.entries(a.extraHeaders))l.set(m,D);if((i.method??"GET").toUpperCase()==="HEAD"){if(c&&"cancel"in c&&typeof c.cancel==="function")await c.cancel();return new Response(null,{status:P,headers:l})}return new Response(c,{status:P,headers:l})}function Tl(s){return vd(s)}class ds{method;handler;methodName;__internal_brand="RouteHandler";middlewares=[];constructor(s,i,a){this.method=s;this.handler=i;this.methodName=a;this.handler=i,this.methodName=a,this.method=s}__internal_use(){return{run:this.run.bind(this),middlewares:this.middlewares}}run(s){if(Tl(this.handler)){let i=new this.handler;return i[this.methodName].bind(i)()}return this.handler()}middleware(s){return this.middlewares=s,this}}class Wd{url;headers;__internal_brand="ProxyHandler";constructor(s,i){this.url=s;this.headers=i}run(){let s=new Bs;return fetch(this.url,{method:s.rawRequest.method,headers:{...s.headers.toJSON(),...this.headers},body:s.rawRequest.body})}}class qd{constructor(...s){return new ds(...s)}}class Ud extends ds{__internal_brand="StreamHandler";async run(s){let i=Ws.getStore(),a=i?.req?.rawRequest,c=ia(a?.headers.get("Range"));if(i)i.rangeRequest=c;try{let r=await super.run(s);return await ar(r,{range:c,method:a?.method})}catch(r){if(r instanceof cr)return aa(r.total);throw r}finally{if(i)i.rangeRequest=null}}}class Nd{constructor(...s){return new Ud(...s)}}class $d{__internal_brand="ResourceRoutes";first;second;constructor(s){this.first={get:new ds("GET",s,"list"),post:new ds("POST",s,"store")},this.second={get:new ds("GET",s,"show"),put:new ds("PUT",s,"update"),delete:new ds("DELETE",s,"delete")}}middleware(s){if(s.list)this.first.get.middleware(s.list);if(s.store)this.first.post.middleware(s.store);if(s.show)this.second.get.middleware(s.show);if(s.update)this.second.put.middleware(s.update);if(s.delete)this.second.delete.middleware(s.delete);return this}}class Jd{static __brand="ApiRouter";routes={};middlewares=[];middleware(s){}get(s,i){return new ds("GET",s,i)}post(s,i){return new ds("POST",s,i)}put(s,i){return new ds("PUT",s,i)}patch(s,i){return new ds("PATCH",s,i)}delete(s,i){return new ds("DELETE",s,i)}resource(s){return new $d(s)}file(s,i){return new qd("GET",s,i)}stream(s,i){return new Nd("GET",s,i)}proxy(s,i={}){return new Wd(s,i)}}class Hd{kind="redirect";viewPath="REDIRECT";middlewares=[];handler;constructor(s){if(!s)this.handler=()=>({});else if(typeof s==="function")this.handler=s;else{let[i,a]=s,c=new i,r=c[a].bind(c);this.handler=(t)=>{return r()}}}async run(s,i){let{destination:a,permanent:c=!1,status:r=307}=await this.handler(s);if(!a)throw Error(`Redirect destination is required see ${i}`);return Xd.to(a,{permanent:c,status:r}),{}}middleware(s){return this.middlewares=s,this}}async function Pl(s,i){if(s instanceof Response)return s;let a=s instanceof Blob,c=a?s:s.file,r=a?s.name:s.name??s.file?.name,t=(a?s.type:s.type??s.file?.type)||"",d=a?!1:s.download??!1,f=a?200:s.status??200;if(!a)for(let[g,T]of Object.entries(s.headers??{}))i.set(g,T);if(c instanceof Blob&&"exists"in c&&typeof c.exists==="function"){if(!await c.exists())return new Response("Not found",{status:404})}if(i.set("Content-Type",t||"application/octet-stream"),c instanceof Blob)i.set("Content-Length",String(c.size));if(r)i.set("Content-Disposition",Ga(r,d));return new Response(c instanceof Blob?c.stream():c,{status:f,headers:i})}class Kd{kind="file";viewPath="FILE";middlewares=[];handler;constructor(s){if(!s)this.handler=()=>null;else if(typeof s==="function")this.handler=s;else{let[i,a]=s,c=new i,r=c[a].bind(c);this.handler=(t)=>r(t)}}async run(s,i){let a=await this.handler(s);if(!a)throw Error(`File route handler must return a file see ${i}`);return{FILE:a}}middleware(s){return this.middlewares=s,this}}class Yd{viewPath;middlewares=[];handler;constructor(s,i){this.viewPath=s;if(!i)this.handler=()=>({});else if(typeof i==="function")this.handler=i;else{let[a,c]=i,r=new a,t=r[c].bind(r);this.handler=(d)=>{return t()}}}async run(s,i){let a=await this.handler(s);return{[this.viewPath]:{...a,breadcrumb:{label:a?.breadcrumb??"",href:i}}}}middleware(s){return this.middlewares=s,this}}class Bd{viewPath;children;middlewares=[];handler=()=>({});constructor(s,i,a){this.viewPath=s;if(typeof i==="function")this.handler=i,this.children=class extends ca{routes=a??{}};else if(Array.isArray(i)){let[c,r]=i,t=new c,d=t[r].bind(t);this.handler=(f)=>{return d(f)},this.children=class extends ca{routes=a??{}}}else this.children=class extends ca{routes=i},this.handler=()=>({})}async run(s,i){let a=await this.handler(s);return{[this.viewPath]:{...a,breadcrumb:{label:a?.breadcrumb??"",href:i}}}}middleware(s){return this.middlewares=s,this}}class ca{middlewares=[];routes={};view(s,i){return new Yd(s,i)}file(s){return new Kd(s)}redirect(s){return new Hd(s)}layout(s,i,a){return new Bd(s,i,a)}}class Ds{req;config={};constructor(s){this.req=s}run(...s){return{}}static configure(s){let i=this;return class extends i{config=s}}}function ll(s){let i=s.headers.get("cookie");if(!i)return new Map;let a=new Map,c=i.split(";");for(let r of c){let[t,d]=r.split("=");a.set(t.trim(),d)}return a}class _d extends Qd{aliases={};boot(){}}import{randomBytes as RD}from"crypto";function fs(s,i,a,c,r){return os(i,Tf(s,i),a,c,r)}function os(s,i,a,c,r,t){let d=gr(i,a,c);if(r&&i!==d)throw RangeError(_T(s,i,a,c,t));return d}function Tf(s,i){let a=s[i];if(a===void 0)throw TypeError(Nt(i));return a}function Y(s){return s!==null&&/object|function/.test(typeof s)}function Ps(s,i=Map){let a=new i;return(c,...r)=>{if(a.has(c))return a.get(c);let t=s(c,...r);return a.set(c,t),t}}function Sr(s){return Di({name:s},1)}function Di(s,i){return Es((a)=>({value:a,configurable:1,writable:!i}),s)}function Pf(s){return Es((i)=>({get:i,configurable:1}),s)}function Va(s){return{[Symbol.toStringTag]:{value:s,configurable:1}}}function Wi(s,i){let a={},c=s.length;for(let r of i)a[s[--c]]=r;return a}function Es(s,i,a){let c={};for(let r in i)c[r]=s(i[r],r,a);return c}function ma(s,i,a){let c={};for(let r=0;r<i.length;r++){let t=i[r];c[t]=s(t,r,a)}return c}function ml(s,i,a){let c={};for(let r=0;r<s.length;r++)c[i[r]]=a[s[r]];return c}function ms(s,i){let a={};for(let c of s)a[c]=i[c];return a}function or(s,i){let a={};for(let c in i)s.has(c)||(a[c]=i[c]);return a}function pr(s){s={...s};let i=Object.keys(s);for(let a of i)s[a]===void 0&&delete s[a];return s}function lf(s,i){for(let a of i)if(!(a in s))return 0;return 1}function mf(s,i,a){for(let c of s)if(i[c]!==a[c])return 0;return 1}function Df(s,i,a){let c={...a};for(let r=0;r<i;r++)c[s[r]]=0;return c}function F(s,...i){return(...a)=>s(...i,...a)}function zd(s){return s[0].toUpperCase()+s.substring(1)}function Da(s){return s.slice().sort()}function Xa(s,i){return String(i).padStart(s,"0")}function Qs(s,i){return Math.sign(s-i)}function gr(s,i,a){return Math.min(Math.max(s,i),a)}function Us(s,i){return[Math.floor(s/i),ta(s,i)]}function ta(s,i){return(s%i+i)%i}function Rs(s,i){return[ka(s,i),Ar(s,i)]}function ka(s,i){return Math.trunc(s/i)||0}function Ar(s,i){return s%i||0}function Wa(s){return Math.abs(s%1)===0.5}function Of(s,i,a){let c=0,r=0;for(let f=0;f<=i;f++){let g=s[a[f]],T=js[f],P=C/T,[l,m]=Rs(g,P);c+=m*T,r+=l}let[t,d]=Rs(c,C);return[r+t,d]}function ua(s,i,a){let c={};for(let r=i;r>=0;r--){let t=js[r];c[a[r]]=ka(s,t),s=Ar(s,t)}return c}function wf(s){return s===E?vc:[]}function Sf(s){return s===E?xa:[]}function of(s){return s===E?["year","day"]:[]}function pf(s){if(s!==void 0)return L(s)}function Af(s){if(s!==void 0)return Ms(s)}function Fr(s){if(s!==void 0)return Oa(s)}function Ms(s){return Mf(Oa(s))}function Oa(s){return Ef(cm(s))}function Er(s){if(s==null)throw TypeError("Cannot be null or undefined");return s}function Ff(s,i){if(i==null)throw RangeError(Nt(s));return i}function $s(s){if(!Y(s))throw TypeError(QT);return s}function na(s,i,a=s){if(typeof i!==s)throw TypeError(Fa(a,i));return i}function Ef(s,i="number"){if(!Number.isInteger(s))throw RangeError(jl(i,s));return s||0}function Mf(s,i="number"){if(s<=0)throw RangeError(Il(i,s));return s}function Mr(s){if(typeof s=="symbol")throw TypeError(Gl);return String(s)}function Ha(s,i){return Y(s)?String(s):L(s,i)}function ea(s){if(typeof s=="string")return BigInt(s);if(typeof s!="bigint")throw TypeError(Ll(s));return s}function xf(s,i="number"){if(typeof s=="bigint")throw TypeError(vl(i));if(s=Number(s),!Number.isFinite(s))throw RangeError(bl(i,s));return s}function n(s,i){return Math.trunc(xf(s,i))||0}function Cf(s,i){return Ef(xf(s,i),i)}function Rd(s,i){return Mf(n(s,i),i)}function xr(s,i){let[a,c]=Rs(i,C),r=s+a,t=Math.sign(r);return t&&t===-Math.sign(c)&&(r-=t,c+=t*C),[r,c]}function Ii(s,i,a=1){return xr(s[0]+i[0]*a,s[1]+i[1]*a)}function bi(s,i){return xr(s[0],s[1]+i)}function Os(s,i){return Ii(i,s,-1)}function ss(s,i){return Qs(s[0],i[0])||Qs(s[1],i[1])}function Zf(s,i,a){return ss(s,i)===-1||ss(s,a)===1}function sc(s,i=1){let a=BigInt(C/i);return[Number(s/a),Number(s%a)*i]}function vi(s,i=1){let a=C/i,[c,r]=Rs(s,a);return[c,r*i]}function yf(s,i=1){let[a,c]=s,r=Math.floor(c/i),t=C/i;return BigInt(a)*BigInt(t)+BigInt(r)}function ws(s,i=1,a){let[c,r]=s,[t,d]=Rs(r,i);return c*(C/i)+(t+(a?d/i:0))}function Cr(s,i,a=Us){let[c,r]=s,[t,d]=a(r,i);return[c*(C/i)+t,d]}function Zr(s,i){let a=s.formatToParts(i),c={};for(let r of a)c[r.type]=r.value;return c}function yr(s){return fs(s,"isoYear",la,Pa,1),s.isoYear===la?fs(s,"isoMonth",4,12,1):s.isoYear===Pa&&fs(s,"isoMonth",1,9,1),s}function _s(s){return Js({...s,...Fs,isoHour:12}),s}function Js(s){let i=fs(s,"isoYear",la,Pa,1),a=i===la?1:i===Pa?-1:0;return a&&Ss(e({...s,isoDay:s.isoDay+a,isoNanosecond:s.isoNanosecond-a})),s}function Ss(s){if(!s||Zf(s,Pm,Tm))throw RangeError(hc);return s}function Vs(s){return Of(s,5,ys)[1]}function ic(s){let[i,a]=Us(s,C);return[ua(a,5,ys),i]}function hf(s){return jf(s)[0]}function jf(s){return Cr(s,As)}function is(s){return qi(s.isoYear,s.isoMonth,s.isoDay,s.isoHour,s.isoMinute,s.isoSecond,s.isoMillisecond)}function e(s){let i=is(s);if(i!==void 0){let[a,c]=Rs(i,Ts);return[a,c*Is+(s.isoMicrosecond||0)*Mi+(s.isoNanosecond||0)]}}function hr(s,i){let[a,c]=ic(Vs(s)-i);return Ss(e({...s,isoDay:s.isoDay+c,...a}))}function Ka(...s){return qi(...s)/cP}function qi(...s){let[i,a]=If(...s),c=i.valueOf();if(!isNaN(c))return c-a*Ts}function If(s,i=1,a=1,c=0,r=0,t=0,d=0){let f=s===la?1:s===Pa?-1:0,g=new Date;return g.setUTCHours(c,r,t,d),g.setUTCFullYear(s,i-1,a+f),[g,f]}function us(s,i){let[a,c]=bi(s,i);c<0&&(c+=C,a-=1);let[r,t]=Us(c,Is),[d,f]=Us(t,Mi);return ac(a*Ts+r,d,f)}function ac(s,i=0,a=0){let c=Math.ceil(Math.max(0,Math.abs(s)-gm)/Ts)*Math.sign(s),r=new Date(s-c*Ts);return Wi(Gc,[r.getUTCFullYear(),r.getUTCMonth()+1,r.getUTCDate()+c,r.getUTCHours(),r.getUTCMinutes(),r.getUTCSeconds(),r.getUTCMilliseconds(),i,a])}function bf(s){return[s.isoYear,s.isoMonth,s.isoDay]}function vf(){return qs}function jr(s,i){switch(i){case 2:return Ir(s)?29:28;case 4:case 6:case 9:case 11:return 30}return 31}function Lf(s){return Ir(s)?366:365}function Ir(s){return s%4==0&&(s%100!=0||s%400==0)}function Gf(s){let[i,a]=If(s.isoYear,s.isoMonth,s.isoDay);return ta(i.getUTCDay()-a,7)||7}function Wf({isoYear:s}){return s<1?["bce",1-s]:["ce",s]}function Dl(s){let i=is(s);if(i<mm)return Wf(s);let a=Zr(id(Li),i),{era:c,eraYear:r}=Qg(a,Li);return[c,r]}function cc(s){return Oi(s),rc(s,1),s}function Oi(s){return qf(s,1),s}function Vd(s){return mf(zt,s,qf(s))}function qf(s,i){let{isoYear:a}=s,c=fs(s,"isoMonth",1,vf(),i);return{isoYear:a,isoMonth:c,isoDay:fs(s,"isoDay",1,jr(a,c),i)}}function rc(s,i){return Wi(ys,[fs(s,"isoHour",0,23,i),fs(s,"isoMinute",0,59,i),fs(s,"isoSecond",0,59,i),fs(s,"isoMillisecond",0,999,i),fs(s,"isoMicrosecond",0,999,i),fs(s,"isoNanosecond",0,999,i)])}function M(s){return s===void 0?0:FP($s(s))}function wa(s,i=0){s=xs(s);let a=EP(s),c=Mm(s,i);return[FP(s),c,a]}function br(s){return EP(xs(s))}function Uf(s){return s=xs(s),kt(s,9,6,1)}function Ui(s,i,a,c=9,r=0,t=4){i=xs(i);let d=kt(i,c,r),f=Gr(i),g=Za(i,t),T=Ca(i,c,r,1);return d==null?d=Math.max(a,T):Xf(d,T),f=Wr(f,T,1),s&&(g=((P)=>P<4?(P+2)%4:P)(g)),[d,T,f,g]}function tc(s,i=6,a){let c=Gr(s=qr(s,Ra)),r=Za(s,7),t=Ca(s,i);return t=Ff(Ra,t),c=Wr(c,t,void 0,a),[t,c,r]}function vr(s){return ut(xs(s))}function Nf(s,i){return Lr(xs(s),i)}function Lr(s,i=4){let a=Jf(s);return[Za(s,4),...$f(Ca(s,i),a)]}function $f(s,i){return s!=null?[js[s],s<4?9-3*s:-1]:[i===void 0?1:10**(9-i),i]}function Gr(s){let i=s[da];return i===void 0?1:n(i,da)}function Wr(s,i,a,c){let r=c?C:js[i+1];if(r){let t=js[i];if(r%((s=os(da,s,1,r/t-(c?0:1),1))*t))throw RangeError(Fa(da,s))}else s=os(da,s,1,a?1e9:1,1);return s}function Jf(s){let i=s[fr];if(i!==void 0){if(typeof i!="number"){if(Mr(i)==="auto")return;throw RangeError(Fa(fr,i))}i=os(fr,Math.floor(i),0,9,1)}return i}function xs(s){return s===void 0?{}:$s(s)}function qr(s,i){return typeof s=="string"?{[i]:s}:$s(s)}function U(s){if(s!==void 0){if(Y(s))return Object.assign(Object.create(null),s);throw TypeError(QT)}}function dc(s,i){return s&&Object.assign(Object.create(null),s,{overflow:Om[i]})}function Ur(s,i,a=9,c=0,r){let t=i[s];if(t===void 0)return r?c:void 0;if(t=Mr(t),t==="auto")return r?c:null;let d=mr[t];if(d===void 0&&(d=dm[t]),d===void 0)throw RangeError(VT(s,t,mr));return os(s,d,c,a,1,Ma),d}function wi(s,i,a,c=0){let r=a[s];if(r===void 0)return c;let t=Mr(r),d=i[t];if(d===void 0)throw RangeError(VT(s,t,i));return d}function Xf(s,i){if(i>s)throw RangeError(nl)}function B(s){return{branding:qc,epochNanoseconds:s}}function R(s,i,a){return{branding:Ys,calendar:a,timeZone:i,epochNanoseconds:s}}function N(s,i=s.calendar){return{branding:Ci,calendar:i,...ms(SP,s)}}function $(s,i=s.calendar){return{branding:xi,calendar:i,...ms(Rt,s)}}function li(s,i=s.calendar){return{branding:Bi,calendar:i,...ms(Rt,s)}}function Ya(s,i=s.calendar){return{branding:Qi,calendar:i,...ms(Rt,s)}}function Cs(s){return{branding:Wc,...ms(wP,s)}}function I(s){return{branding:Uc,sign:ns(s),...ms(Bt,s)}}function Hf(s){return hf(s.epochNanoseconds)}function fc(s){return Cr(s.epochNanoseconds,Is)[0]}function Kf(s){return yf(s.epochNanoseconds,Mi)}function Yf(s){return yf(s.epochNanoseconds)}function Bf(s){return s.epochNanoseconds}function _(s){return typeof s=="string"?s:L(s.id)}function Ni(s,i){return s===i||_(s)===_(i)}function Qf(s,i,a,c,r){let t=mi(c),[d,f]=((S,p)=>{let o=p((S=qr(S,wr))[pP]),A=Em(S);return A=Ff(wr,A),[A,o]})(r,s);if(ga(Math.max(d,t),f))return kd(c,d);if(!f)throw RangeError(jc);let[g,T,P]=Dc(i,a,f),l=dt(P),m=Oc(P),D=ft(P),O=m(T,g,c),w=D(T,g,O,d);return ga(d,f)?kd(w,d):((S,p,o,A,q,b,j)=>{let v=ns(S),[Q,H]=Nr(A,_t(o,S),o,v,q,b,j),ni=$r(p,Q,H);return S[x[o]]+ni*v})(w,l(O),d,T,g,l,m)}function kd(s,i){return ws(K(s),js[i],1)}function Nr(s,i,a,c,r,t,d){let f=x[a],g={...i,[f]:i[f]+c},T=d(s,r,i),P=d(s,r,g);return[t(T),t(P)]}function $r(s,i,a){let c=ws(Os(i,a));if(!c)throw RangeError(Ea);return ws(Os(i,s))/c}function _f(s,i){let[a,c,r]=tc(i,5,1);return B(Tc(s.epochNanoseconds,a,c,r,1))}function zf(s,i,a){let{epochNanoseconds:c,timeZone:r,calendar:t}=i,[d,f,g]=tc(a);if(d===0&&f===1)return i;let T=s(r);if(d===6)c=((P,l,m,D)=>{let O=as(m,l),[w,S]=P(O),p=m.epochNanoseconds,o=ls(l,w),A=ls(l,S);if(Zf(p,o,A))throw RangeError(Ea);return ag($r(p,o,A),D)?A:o})(sg,T,i,g);else{let P=T.getOffsetNanosecondsFor(c);c=oi(T,nf(us(c,P),d,f,g),P,2,0,1)}return R(c,r,t)}function Rf(s,i){return N(nf(s,...tc(i)),s.calendar)}function Vf(s,i){let[a,c,r]=tc(i,5);var t;return Cs((t=r,Jr(s,Sa(a,c),t)[0]))}function kf(s,i){let a=s(i.timeZone),c=as(i,a),[r,t]=sg(c),d=ws(Os(ls(a,r),ls(a,t)),bc,1);if(d<=0)throw RangeError(Ea);return d}function uf(s,i){let{timeZone:a,calendar:c}=i,r=((t,d,f)=>ls(d,t(as(f,d))))(ig,s(a),i);return R(r,a,c)}function nf(s,i,a,c){return ef(s,Sa(i,a),c)}function ef(s,i,a){let[c,r]=Jr(s,i,a);return Js({...pi(s,r),...c})}function Jr(s,i,a){return ic(ks(Vs(s),i,a))}function Ba(s){return ks(s,Ic,7)}function Sa(s,i){return js[s]*i}function sg(s){let i=ig(s);return[i,pi(i,1)]}function ig(s){return fm(6,s)}function Ol(s,i,a){let c=Math.min(mi(s),6);return Ji(Pc(K(s,c),i,a),c)}function gc(s,i,a,c,r,t,d,f,g,T){if(c===0&&r===1)return s;let P=ga(c,f)?wc(f)&&c<6&&a>=6?Sl:wl:ol,[l,m,D]=P(s,i,a,c,r,t,d,f,g,T);return D&&c!==7&&(l=((O,w,S,p,o,A,q,b)=>{let j=ns(O);for(let v=p+1;v<=S;v++){if(v===7&&S!==7)continue;let Q=_t(v,O);Q[x[v]]+=j;let H=ws(Os(q(b(o,A,Q)),w));if(H&&Math.sign(H)!==j)break;O=Q}return O})(l,m,a,Math.max(6,c),d,f,g,T)),l}function Tc(s,i,a,c,r){if(i===6){let t=((d)=>d[0]+d[1]/C)(s);return[ks(t,a,c),0]}return Pc(s,Sa(i,a),c,r)}function Pc(s,i,a,c){let[r,t]=s;c&&t<0&&(t+=C,r-=1);let[d,f]=Us(ks(t,i,a),C);return xr(r+d,f)}function ks(s,i,a){return ag(s/i,a)*i}function ag(s,i){return Zm[i](s)}function wl(s,i,a,c,r,t){let d=ns(s),f=K(s),g=Tc(f,c,r,t),T=Os(f,g),P=Math.sign(g[0]-f[0])===d,l=Ji(g,Math.min(a,6));return[{...s,...l},Ii(i,T),P]}function Sl(s,i,a,c,r,t,d,f,g,T){let P=ns(s),l=ws(K(s,5)),m=Sa(c,r),D=ks(l,m,t),[O,w]=Nr(d,{...s,...Qt},6,P,f,g,T),S=D-ws(Os(O,w)),p=0;S&&Math.sign(S)!==P?i=bi(O,D):(p+=P,D=ks(S,m,t),i=bi(w,D));let o=oc(D);return[{...s,...o,days:s.days+p},i,Boolean(p)]}function ol(s,i,a,c,r,t,d,f,g,T){let P=ns(s),l=x[c],m=_t(c,s);c===7&&(s={...s,weeks:s.weeks+Math.trunc(s.days/7)});let D=ka(s[l],r)*r;m[l]=D;let[O,w]=Nr(d,m,c,r*P,f,g,T),S=D+$r(i,O,w)*P*r,p=ks(S,r,t),o=Math.sign(p-S)===P;return m[l]=p,[m,o?w:O,o]}function Xr(s,i,a,c){let[r,t,d,f]=((T)=>{let P=Lr(T=xs(T));return[T.timeZone,...P]})(c),g=r!==void 0;return((T,P,l,m,D,O)=>{l=Pc(l,D,m,1);let w=P.getOffsetNanosecondsFor(l);return zr(us(l,w),O)+(T?Si(Ba(w)):"Z")})(g,i(g?s(r):Zi),a.epochNanoseconds,t,d,f)}function Hr(s,i,a){let[c,r,t,d,f,g]=((T)=>{T=xs(T);let P=ut(T),l=Jf(T),m=Cm(T),D=Za(T,4),O=Ca(T,4);return[P,xm(T),m,D,...$f(O,l)]})(a);return((T,P,l,m,D,O,w,S,p,o)=>{m=Pc(m,p,S,1);let A=T(l).getOffsetNanosecondsFor(m);return zr(us(m,A),o)+Si(Ba(A),w)+((q,b)=>b!==1?"["+(b===2?"!":"")+_(q)+"]":"")(l,O)+Rr(P,D)})(s,i.calendar,i.timeZone,i.epochNanoseconds,c,r,t,d,f,g)}function Kr(s,i){let[a,c,r,t]=((T)=>(T=xs(T),[ut(T),...Lr(T)]))(i);return d=s.calendar,f=a,g=t,zr(ef(s,r,c),g)+Rr(d,f);var d,f,g}function Yr(s,i){return a=s.calendar,c=s,r=vr(i),Qa(c)+Rr(a,r);var a,c,r}function Br(s,i){return cg(s.calendar,rg,s,vr(i))}function Qr(s,i){return cg(s.calendar,pl,s,vr(i))}function _r(s,i){let[a,c,r]=Nf(i);return t=r,tg(Jr(s,c,a)[0],t);var t}function lc(s,i){let[a,c,r]=Nf(i,3);return c>1&&(s={...s,...Ol(s,c,a)}),((t,d)=>{let{sign:f}=t,g=f===-1?cs(t):t,{hours:T,minutes:P}=g,[l,m]=Cr(K(g,3),As,Rs);Dg(l);let D=Vr(m,d),O=d>=0||!f||D;return(f<0?"-":"")+"P"+ud({Y:Pi(g.years),M:Pi(g.months),W:Pi(g.weeks),D:Pi(g.days)})+(T||P||l||O?"T"+ud({H:Pi(T),M:Pi(P),S:Pi(l,O)+D}):"")})(s,r)}function cg(s,i,a,c){let r=_(s),t=c>1||c===0&&r!==E;return c===1?r===E?i(a):Qa(a):t?Qa(a)+dg(r,c===2):i(a)}function ud(s){let i=[];for(let a in s){let c=s[a];c&&i.push(c,a)}return i.join("")}function zr(s,i){return Qa(s)+"T"+tg(s,i)}function Qa(s){return rg(s)+"-"+ps(s.isoDay)}function rg(s){let{isoYear:i}=s;return(i<0||i>9999?fg(i)+Xa(6,Math.abs(i)):Xa(4,i))+"-"+ps(s.isoMonth)}function pl(s){return ps(s.isoMonth)+"-"+ps(s.isoDay)}function tg(s,i){let a=[ps(s.isoHour),ps(s.isoMinute)];return i!==-1&&a.push(ps(s.isoSecond)+((c,r,t,d)=>Vr(c*Is+r*Mi+t,d))(s.isoMillisecond,s.isoMicrosecond,s.isoNanosecond,i)),a.join(":")}function Si(s,i=0){if(i===1)return"";let[a,c]=Us(Math.abs(s),bc),[r,t]=Us(c,Ic),[d,f]=Us(t,As);return fg(s)+ps(a)+":"+ps(r)+(d||f?":"+ps(d)+Vr(f):"")}function Rr(s,i){if(i!==1){let a=_(s);if(i>1||i===0&&a!==E)return dg(a,i===2)}return""}function dg(s,i){return"["+(i?"!":"")+"u-ca="+s+"]"}function Vr(s,i){let a=Xa(9,s);return a=i===void 0?a.replace(jm,""):a.slice(0,i),a?"."+a:""}function fg(s){return s<0?"-":"+"}function Pi(s,i){return s||i?s.toLocaleString("fullwide",{useGrouping:0}):""}function Al(s,i){let{epochNanoseconds:a}=s,c=(i.getOffsetNanosecondsFor?i:i(s.timeZone)).getOffsetNanosecondsFor(a),r=us(a,c);return{calendar:s.calendar,...r,offsetNanoseconds:c}}function gg(s,i){let a=as(i,s);return{calendar:i.calendar,...ms(SP,a),offset:Si(a.offsetNanoseconds),timeZone:i.timeZone}}function oi(s,i,a,c=0,r=0,t,d){if(a!==void 0&&c===1&&(c===1||d))return hr(i,a);let f=s.getPossibleInstantsFor(i);if(a!==void 0&&c!==3){let g=((T,P,l,m)=>{let D=e(P);m&&(l=Ba(l));for(let O of T){let w=ws(Os(O,D));if(m&&(w=Ba(w)),w===l)return O}})(f,i,a,t);if(g!==void 0)return g;if(c===0)throw RangeError(_l)}return d?e(i):ls(s,i,r,f)}function ls(s,i,a=0,c=s.getPossibleInstantsFor(i)){if(c.length===1)return c[0];if(a===1)throw RangeError(zl);if(c.length)return c[a===3?1:0];let r=e(i),t=((f,g)=>{let T=f.getOffsetNanosecondsFor(bi(g,-C));return ur(f.getOffsetNanosecondsFor(bi(g,C))-T)})(s,r),d=t*(a===2?-1:1);return(c=s.getPossibleInstantsFor(us(r,d)))[a===2?0:c.length-1]}function kr(s){if(Math.abs(s)>=C)throw RangeError(Bl);return s}function ur(s){if(s>C)throw RangeError(Ql);return s}function nr(s,i,a){return B(Ss(Ii(i.epochNanoseconds,((c)=>{if(Og(c))throw RangeError(kl);return K(c,5)})(s?cs(a):a))))}function er(s,i,a,c,r,t=Object.create(null)){let d=i(c.timeZone),f=s(c.calendar);return{...c,...rt(d,f,c,a?cs(r):r,t)}}function st(s,i,a,c,r=Object.create(null)){let{calendar:t}=a;return N(tt(s(t),a,i?cs(c):c,r),t)}function it(s,i,a,c,r){let{calendar:t}=a;return $(mc(s(t),a,i?cs(c):c,r),t)}function at(s,i,a,c,r=Object.create(null)){let t=a.calendar,d=s(t),f=fa(d,a);i&&(c=Sc(c)),c.sign<0&&(f=d.dateAdd(f,{...z,months:1}),f=pi(f,-1));let g=d.dateAdd(f,c,r);return li(fa(d,g),t)}function ct(s,i,a){return Cs(Tg(i,s?cs(a):a)[0])}function rt(s,i,a,c,r){let t=K(c,5),d=a.epochNanoseconds;if(Og(c)){let f=as(a,s);d=Ii(ls(s,{...mc(i,f,{...c,...Qt},r),...ms(ys,f)}),t)}else d=Ii(d,t),M(r);return{epochNanoseconds:Ss(d)}}function tt(s,i,a,c){let[r,t]=Tg(i,a);return Js({...mc(s,i,{...a,...Qt,days:a.days+t},c),...r})}function mc(s,i,a,c){if(a.years||a.months||a.weeks)return s.dateAdd(i,a,c);M(c);let r=a.days+K(a,5)[0];return r?_s(pi(i,r)):i}function fa(s,i,a=1){return pi(i,a-s.day(i))}function Tg(s,i){let[a,c]=K(i,5),[r,t]=ic(Vs(s)+c);return[r,a+t]}function pi(s,i){return i?{...s,...ac(is(s)+i*Ts)}:s}function Dc(s,i,a){let c=s(a.calendar);return wc(a)?[a,c,i(a.timeZone)]:[{...a,...Fs},c]}function dt(s){return s?Bf:e}function Oc(s){return s?F(rt,s):tt}function ft(s){return s?F(El,s):Ml}function wc(s){return s&&s.epochNanoseconds}function ga(s,i){return s<=6-(wc(i)?1:0)}function gt(s,i,a,c,r,t,d){let f=s(xs(d).relativeTo),g=Math.max(mi(r),mi(t));if(ga(g,f))return I($i(((w,S,p,o)=>{let A=Ii(K(w),K(S),o?-1:1);if(!Number.isFinite(A[0]))throw RangeError(hc);return{...z,...Ji(A,p)}})(r,t,g,c)));if(!f)throw RangeError(jc);c&&(t=cs(t));let[T,P,l]=Dc(i,a,f),m=Oc(l),D=ft(l),O=m(P,T,r);return I(D(P,T,m(P,O,t),g))}function Pg(s,i,a,c,r){let t=mi(c),[d,f,g,T,P]=((j,v,Q)=>{j=qr(j,Ra);let H=kt(j),ni=Q(j[pP]),ei=Gr(j),al=Za(j,7),gi=Ca(j);if(H===void 0&&gi===void 0)throw RangeError(ul);return gi==null&&(gi=0),H==null&&(H=Math.max(gi,v)),Xf(H,gi),ei=Wr(ei,gi,1),[H,gi,ei,al,ni]})(r,t,s),l=Math.max(t,d);if(!wc(P)&&l<=6)return I($i(((j,v,Q,H,ni)=>{let ei=Tc(K(j),Q,H,ni);return{...z,...Ji(ei,v)}})(c,d,f,g,T)));if(!P)throw RangeError(jc);let[m,D,O]=Dc(i,a,P),w=dt(O),S=Oc(O),p=ft(O),o=S(D,m,c),A=p(D,m,o,d),q=c.sign,b=ns(A);if(q&&b&&q!==b)throw RangeError(Ea);return b&&(A=gc(A,w(o),d,f,g,T,D,m,w,S)),I(A)}function lg(s){return s.sign===-1?Sc(s):s}function Sc(s){return I(cs(s))}function cs(s){let i={};for(let a of x)i[a]=-1*s[a]||0;return i}function mg(s){return!s.sign}function ns(s,i=x){let a=0;for(let c of i){let r=Math.sign(s[c]);if(r){if(a&&a!==r)throw RangeError(Vl);a=r}}return a}function $i(s){for(let i of tm)os(i,s[i],-tf,tf,1);return Dg(ws(K(s),As)),s}function Dg(s){if(!Number.isSafeInteger(s))throw RangeError(Rl)}function K(s,i=6){return Of(s,i,x)}function Ji(s,i=6){let[a,c]=s,r=ua(c,i,x);if(r[x[i]]+=a*(C/js[i]),!Number.isFinite(r[x[i]]))throw RangeError(hc);return r}function oc(s,i=5){return ua(s,i,x)}function Og(s){return Boolean(ns(s,OP))}function mi(s){let i=9;for(;i>0&&!s[x[i]];i--);return i}function Fl(s,i){return[s,i]}function nd(s){let i=Math.floor(s/$a)*$a;return[i,i+$a]}function wg(s){let i=es(s=Ha(s));if(!i)throw RangeError(gs(s));let a;if(i.m)a=0;else{if(!i.offset)throw RangeError(gs(s));a=Xi(i.offset)}return i.timeZone&&mt(i.timeZone,1),B(hr(cc(i),a))}function Sg(s){let i=es(L(s));if(!i)throw RangeError(gs(s));if(i.timeZone)return Zg(i,i.offset?Xi(i.offset):void 0);if(i.m)throw RangeError(gs(s));return hg(i)}function og(s,i){let a=es(L(s));if(!a||!a.timeZone)throw RangeError(gs(s));let{offset:c}=a,r=c?Xi(c):void 0,[,t,d]=wa(i);return Zg(a,r,t,d)}function Xi(s){let i=mt(s);if(i===void 0)throw RangeError(gs(s));return i}function pg(s){let i=es(L(s));if(!i||i.m)throw RangeError(gs(s));return N(yg(i))}function pc(s){let i=es(L(s));if(!i||i.m)throw RangeError(gs(s));return $(i.p?yg(i):hg(i))}function Ag(s,i){let a=Pt(L(i));if(a)return Tt(a),li(yr(Oi(a)));let c=pc(i);return li(fa(s(c.calendar),c))}function Tt(s){if(s.calendar!==E)throw RangeError(Ns(s.calendar))}function Fg(s,i){let a=lt(L(i));if(a)return Tt(a),Ya(Oi(a));let c=pc(i),{calendar:r}=c,t=s(r),[d,f,g]=t.h(c),[T,P]=t.I(d,f),[l,m]=t.N(T,P,g);return Ya(_s(t.P(l,m,g)),r)}function Eg(s){let i,a=((c)=>{let r=Gm.exec(c);return r?(Ac(r[10]),bg(r)):void 0})(L(s));if(!a){if(a=es(s),!a)throw RangeError(gs(s));if(!a.p)throw RangeError(gs(s));if(a.m)throw RangeError(Ns("Z"));Tt(a)}if((i=Pt(s))&&Vd(i))throw RangeError(gs(s));if((i=lt(s))&&Vd(i))throw RangeError(gs(s));return Cs(rc(a,1))}function Mg(s){let i=((a)=>{let c=Um.exec(a);return c?((r)=>{function t(P,l,m){let D=0,O=0;if(m&&([D,g]=Us(g,js[m])),P!==void 0){if(f)throw RangeError(Ns(P));O=((w)=>{let S=parseInt(w);if(!Number.isFinite(S))throw RangeError(Ns(w));return S})(P),d=1,l&&(g=Dt(l)*(js[m]/As),f=1)}return D+O}let d=0,f=0,g=0,T={...Wi(x,[t(r[2]),t(r[3]),t(r[4]),t(r[5]),t(r[6],r[7],5),t(r[8],r[9],4),t(r[10],r[11],3)]),...ua(g,2,x)};if(!d)throw RangeError(zT(x));return Ot(r[1])<0&&(T=cs(T)),T})(c):void 0})(L(s));if(!i)throw RangeError(gs(s));return I($i(i))}function xg(s){let i=es(s)||Pt(s)||lt(s);return i?i.calendar:s}function Cg(s){let i=es(s);return i&&(i.timeZone||i.m&&Zi||i.offset)||s}function Zg(s,i,a=0,c=0){let r=Fc(s.timeZone),t=Nc(r);return R(oi(t,cc(s),i,a,c,!t.v,s.m),r,oa(s.calendar))}function yg(s){return jg(Js(cc(s)))}function hg(s){return jg(_s(Oi(s)))}function jg(s){return{...s,calendar:oa(s.calendar)}}function es(s){let i=Lm.exec(s);return i?((a)=>{let c=a[10],r=(c||"").toUpperCase()==="Z";return{isoYear:Ig(a),isoMonth:parseInt(a[4]),isoDay:parseInt(a[5]),...bg(a.slice(5)),...Ac(a[16]),p:Boolean(a[6]),m:r,offset:r?void 0:c}})(i):void 0}function Pt(s){let i=bm.exec(s);return i?((a)=>({isoYear:Ig(a),isoMonth:parseInt(a[4]),isoDay:1,...Ac(a[5])}))(i):void 0}function lt(s){let i=vm.exec(s);return i?((a)=>({isoYear:Gi,isoMonth:parseInt(a[1]),isoDay:parseInt(a[2]),...Ac(a[3])}))(i):void 0}function mt(s,i){let a=Wm.exec(s);return a?((c,r)=>{let t=c[4]||c[5];if(r&&t)throw RangeError(Ns(t));return kr((ji(c[2])*bc+ji(c[3])*Ic+ji(c[4])*As+Dt(c[5]||""))*Ot(c[1]))})(a,i):void 0}function Ig(s){let i=Ot(s[1]),a=parseInt(s[2]||s[3]);if(i<0&&!a)throw RangeError(Ns(-0));return i*a}function bg(s){let i=ji(s[3]);return{...ic(Dt(s[4]||""))[0],isoHour:ji(s[1]),isoMinute:ji(s[2]),isoSecond:i===60?59:i}}function Ac(s){let i,a,c=[];if(s.replace(qm,(r,t,d)=>{let f=Boolean(t),[g,T]=d.split("=").reverse();if(T){if(T==="u-ca")c.push(g),i||(i=f);else if(f||/[A-Z]/.test(T))throw RangeError(Ns(r))}else{if(a)throw RangeError(Ns(r));a=g}return""}),c.length>1&&i)throw RangeError(Ns(s));return{timeZone:a,calendar:c[0]||E}}function Dt(s){return parseInt(s.padEnd(9,"0"))}function Hi(s){return new RegExp(`^${s}$`,"i")}function Ot(s){return s&&s!=="+"?-1:1}function ji(s){return s===void 0?0:parseInt(s)}function vg(s){return Fc(L(s))}function Fc(s){let i=wt(s);return typeof i=="number"?Si(i):i?((a)=>{if($m.test(a))throw RangeError(Yl);return a.toLowerCase().split("/").map((c,r)=>(c.length<=3||/\d/.test(c))&&!/etc|yap/.test(c)?c.toUpperCase():c.replace(/baja|dumont|[a-z]+/g,(t,d)=>t.length<=2&&!r||t==="in"||t==="chat"?t.toUpperCase():t.length>2||!d?zd(t).replace(/island|noronha|murdo|rivadavia|urville/,zd):t)).join("/")})(s):Zi}function ed(s){let i=wt(s);return typeof i=="number"?i:i?i.resolvedOptions().timeZone:Zi}function wt(s){let i=mt(s=s.toUpperCase(),1);return i!==void 0?i:s!==Zi?Nm(s):void 0}function St(s,i){return ss(s.epochNanoseconds,i.epochNanoseconds)}function ot(s,i){return ss(s.epochNanoseconds,i.epochNanoseconds)}function Lg(s,i,a,c,r,t){let d=s(xs(t).relativeTo),f=Math.max(mi(c),mi(r));if(mf(x,c,r))return 0;if(ga(f,d))return ss(K(c),K(r));if(!d)throw RangeError(jc);let[g,T,P]=Dc(i,a,d),l=dt(P),m=Oc(P);return ss(l(m(T,g,c)),l(m(T,g,r)))}function pt(s,i){return Ai(s,i)||Ec(s,i)}function Ai(s,i){return Qs(is(s),is(i))}function Ec(s,i){return Qs(Vs(s),Vs(i))}function Gg(s,i){return!St(s,i)}function Wg(s,i){return!ot(s,i)&&!!Mc(s.timeZone,i.timeZone)&&Ni(s.calendar,i.calendar)}function qg(s,i){return!pt(s,i)&&Ni(s.calendar,i.calendar)}function Ug(s,i){return!Ai(s,i)&&Ni(s.calendar,i.calendar)}function Ng(s,i){return!Ai(s,i)&&Ni(s.calendar,i.calendar)}function $g(s,i){return!Ai(s,i)&&Ni(s.calendar,i.calendar)}function Jg(s,i){return!Ec(s,i)}function Mc(s,i){if(s===i)return 1;let a=_(s),c=_(i);if(a===c)return 1;try{return ed(a)===ed(c)}catch(r){}}function At(s,i,a,c){let r=Ui(s,U(c),3,5),t=xc(i.epochNanoseconds,a.epochNanoseconds,...r);return I(s?cs(t):t)}function Ft(s,i,a,c,r,t){let d=Zc(c.calendar,r.calendar),f=U(t),[g,T,P,l]=Ui(a,f,5),m=c.epochNanoseconds,D=r.epochNanoseconds,O=ss(D,m),w;if(O)if(g<6)w=xc(m,D,g,T,P,l);else{let S=i(((o,A)=>{if(!Mc(o,A))throw RangeError(eT);return o})(c.timeZone,r.timeZone)),p=s(d);w=Hg(p,S,c,r,O,g,f),w=gc(w,D,g,T,P,l,p,c,Bf,F(rt,S))}else w=z;return I(a?cs(w):w)}function Et(s,i,a,c,r){let t=Zc(a.calendar,c.calendar),d=U(r),[f,g,T,P]=Ui(i,d,6),l=e(a),m=e(c),D=ss(m,l),O;if(D)if(f<=6)O=xc(l,m,f,g,T,P);else{let w=s(t);O=Kg(w,a,c,D,f,d),O=gc(O,m,f,g,T,P,w,a,e,tt)}else O=z;return I(i?cs(O):O)}function Mt(s,i,a,c,r){let t=Zc(a.calendar,c.calendar),d=U(r);return Xg(i,()=>s(t),a,c,...Ui(i,d,6,9,6),d)}function xt(s,i,a,c,r){let t=Zc(a.calendar,c.calendar),d=U(r),f=Ui(i,d,9,9,8),g=s(t);return Xg(i,()=>g,fa(g,a),fa(g,c),...f,d)}function Xg(s,i,a,c,r,t,d,f,g){let T=e(a),P=e(c),l;if(ss(P,T))if(r===6)l=xc(T,P,r,t,d,f);else{let m=i();l=m.dateUntil(a,c,r,g),t===6&&d===1||(l=gc(l,P,r,t,d,f,m,a,e,mc))}else l=z;return I(s?cs(l):l)}function Ct(s,i,a,c){let r=U(c),[t,d,f,g]=Ui(s,r,5,5),T=ks(Zt(i,a),Sa(d,f),g),P={...z,...oc(T,t)};return I(s?cs(P):P)}function El(s,i,a,c,r,t){let d=ss(c.epochNanoseconds,a.epochNanoseconds);return d?r<6?Yg(a.epochNanoseconds,c.epochNanoseconds,r):Hg(i,s,a,c,d,r,t):z}function Ml(s,i,a,c,r){let t=e(i),d=e(a),f=ss(d,t);return f?c<=6?Yg(t,d,c):Kg(s,i,a,f,c,r):z}function Hg(s,i,a,c,r,t,d){let[f,g,T]=((m,D,O,w)=>{function S(){return v={...pi(A,b++*-w),...o},Q=ls(m,v),ss(q,Q)===-w}let p=as(D,m),o=ms(ys,p),A=as(O,m),q=O.epochNanoseconds,b=0,j=Zt(p,A),v,Q;if(Math.sign(j)===-w&&b++,S()&&(w===-1||S()))throw RangeError(Ea);let H=ws(Os(Q,q));return[p,v,H]})(i,a,c,r);var P,l;return{...t===6?(P=f,l=g,{...z,days:Bg(P,l)}):s.dateUntil(f,g,t,d),...oc(T)}}function Kg(s,i,a,c,r,t){let[d,f,g]=((T,P,l)=>{let m=P,D=Zt(T,P);return Math.sign(D)===-l&&(m=pi(P,-l),D+=C*l),[T,m,D]})(i,a,c);return{...s.dateUntil(d,f,r,t),...oc(g)}}function xc(s,i,a,c,r,t){return{...z,...Ji(Tc(Os(s,i),c,r,t),a)}}function Yg(s,i,a){return{...z,...Ji(Os(s,i),a)}}function Bg(s,i){return Cc(is(s),is(i))}function Cc(s,i){return Math.trunc((i-s)/Ts)}function Zt(s,i){return Vs(i)-Vs(s)}function Zc(s,i){if(!Ni(s,i))throw RangeError(Xt);return s}function xl(s){function i(r){return((t,d)=>({...Qg(t,d),F:t.month,day:parseInt(t.day)}))(Zr(a,r),c)}let a=id(s),c=_a(s);return{id:s,O:Cl(i),B:Zl(i)}}function Cl(s){return Ps((i)=>{let a=is(i);return s(a)},WeakMap)}function Zl(s){let i=s(0).year-lm;return Ps((a)=>{let c,r=qi(a-i),t=[],d=[];do r+=400*Ts;while((c=s(r)).year<=a);do r+=(1-c.day)*Ts,c.year===a&&(t.push(r),d.push(c.F)),r-=Ts;while((c=s(r)).year>=a);return{k:t.reverse(),C:aP(d.reverse())}})}function Qg(s,i){let a,c,r=_g(s);if(s.era){let t=lP[i];t!==void 0&&(a=i==="islamic"?"ah":s.era.normalize("NFD").toLowerCase().replace(/[^a-z0-9]/g,""),a==="bc"||a==="b"?a="bce":a!=="ad"&&a!=="a"||(a="ce"),c=r,r=ug(c,t[a]||0))}return{era:a,eraYear:c,year:r}}function _g(s){return parseInt(s.relatedYear||s.year)}function Tr(s){let{year:i,F:a,day:c}=this.O(s),{C:r}=this.B(i);return[i,r[a]+1,c]}function Ta(s,i=1,a=1){return this.B(s).k[i-1]+(a-1)*Ts}function qa(s){let i=af(this,s),a=af(this,s-1),c=i.length;if(c>a.length){let r=ng(this);if(r<0)return-r;for(let t=0;t<c;t++)if(i[t]!==a[t])return t+1}}function Ua(s){return Cc(Ta.call(this,s),Ta.call(this,s+1))}function sf(s,i){let{k:a}=this.B(s),c=i+1,r=a;return c>a.length&&(c=1,r=this.B(s+1).k),Cc(a[i-1],r[c-1])}function Na(s){return this.B(s).k.length}function af(s,i){return Object.keys(s.B(i).C)}function zg(s){return oa(L(s))}function oa(s){if((s=s.toLowerCase())!==E&&s!==Lc&&_a(s)!==_a(id(s).resolvedOptions().calendar))throw RangeError(Kl(s));return s}function _a(s){return s==="islamicc"&&(s="islamic"),s.split("-")[0]}function Rg(s){return this.R(s)[0]}function Vg(s){return this.R(s)[1]}function yt(s){let[i]=this.h(s);return Cc(this.q(i),is(s))+1}function kg(s){let i=Xm.exec(s);if(!i)throw RangeError(Xl(s));return[parseInt(i[1]),Boolean(i[2])]}function za(s,i,a){return s+(i||a&&s>=a?1:0)}function Pr(s,i){return s-(i&&s>=i?1:0)}function ug(s,i){return(i+s)*(Math.sign(i)||1)||0}function lr(s){return lP[eg(s)]}function ng(s){return am[eg(s)]}function eg(s){return _a(s.id||E)}function sT(s,i,a,c){let r=si(a,c,Zs,[],fP);if(r.timeZone!==void 0){let t=a.dateFromFields(r),d=Fi(r),f=s(r.timeZone);return{epochNanoseconds:oi(i(f),{...t,...d},r.offset!==void 0?Xi(r.offset):void 0),timeZone:f}}return{...a.dateFromFields(r),...Fs}}function iT(s,i,a,c,r,t){let d=si(a,r,Zs,tP,fP),f=s(d.timeZone),[g,T,P]=wa(t),l=a.dateFromFields(d,dc(t,g)),m=Fi(d,g);return R(oi(i(f),{...l,...m},d.offset!==void 0?Xi(d.offset):void 0,T,P),f,c)}function aT(s,i,a){let c=si(s,i,Zs,[],Ks),r=M(a);return N(Js({...s.dateFromFields(c,dc(a,r)),...Fi(c,r)}))}function ht(s,i,a,c=[]){let r=si(s,i,Zs,c);return s.dateFromFields(r,a)}function jt(s,i,a,c){let r=si(s,i,Yt,c);return s.yearMonthFromFields(r,a)}function It(s,i,a,c,r=[]){let t=si(s,a,Zs,r);return i&&t.month!==void 0&&t.monthCode===void 0&&t.year===void 0&&(t.year=Gi),s.monthDayFromFields(t,c)}function cT(s,i){let a=M(i);return Cs(Fi(hs(s,Dr,[],1),a))}function rT(s){let i=hs(s,Bt);return I($i({...z,...i}))}function si(s,i,a,c=[],r=[]){return hs(i,[...s.fields(a),...r].sort(),c)}function hs(s,i,a,c=!a){let r={},t,d=0;for(let f of i){if(f===t)throw RangeError(Wl(f));if(f==="constructor"||f==="__proto__")throw RangeError($t(f));let g=s[f];if(g!==void 0)d=1,df[f]&&(g=df[f](g,f)),r[f]=g;else if(a){if(a.includes(f))throw TypeError(Nt(f));r[f]=PP[f]}t=f}if(c&&!d)throw TypeError(zT(i));return r}function Fi(s,i){return rc(Bm({...PP,...s}),i)}function tT(s,i,a,c,r,t){let d=U(t),{calendar:f,timeZone:g}=a;return R(((T,P,l,m,D)=>{let O=pa(T,l,m,Zs,dP,rP),[w,S,p]=wa(D,2);return oi(P,{...T.dateFromFields(O,dc(D,w)),...Fi(O,w)},Xi(O.offset),S,p)})(s(f),i(g),c,r,d),g,f)}function dT(s,i,a,c,r){let t=U(r);return N(((d,f,g,T)=>{let P=pa(d,f,g,Zs,Ks),l=M(T);return Js({...d.dateFromFields(P,dc(T,l)),...Fi(P,l)})})(s(i.calendar),a,c,t))}function fT(s,i,a,c,r){let t=U(r);return((d,f,g,T)=>{let P=pa(d,f,g,Zs);return d.dateFromFields(P,T)})(s(i.calendar),a,c,t)}function gT(s,i,a,c,r){let t=U(r);return li(((d,f,g,T)=>{let P=pa(d,f,g,Yt);return d.yearMonthFromFields(P,T)})(s(i.calendar),a,c,t))}function TT(s,i,a,c,r){let t=U(r);return((d,f,g,T)=>{let P=pa(d,f,g,Zs);return d.monthDayFromFields(P,T)})(s(i.calendar),a,c,t)}function PT(s,i,a){return Cs(((c,r,t)=>{let d=M(t);return Fi({...ms(Dr,c),...hs(r,Dr)},d)})(s,i,a))}function lT(s,i){return I((a=s,c=i,$i({...a,...hs(c,Bt)})));var a,c}function pa(s,i,a,c,r=[],t=[]){let d=[...s.fields(c),...r].sort(),f=hs(i,d,t),g=hs(a,d);return f=s.mergeFields(f,g),hs(f,d,[])}function bt(s,i){let a=si(s,i,TP);return s.monthDayFromFields(a)}function vt(s,i,a){let c=si(s,i,gP);return s.yearMonthFromFields(c,a)}function mT(s,i,a,c,r){i=ms(a=s.fields(a),i),c=hs(c,r=s.fields(r),[]);let t=s.mergeFields(i,c);return t=hs(t,[...a,...r].sort(),[]),s.dateFromFields(t)}function rr(s,i){let{era:a,eraYear:c,year:r}=i,t=lr(s);if(a!==void 0||c!==void 0){if(a===void 0||c===void 0)throw TypeError(Ul);if(!t)throw RangeError(ql);let d=t[a];if(d===void 0)throw RangeError($l(a));let f=ug(c,d);if(r!==void 0&&r!==f)throw RangeError(Nl);r=f}else if(r===void 0)throw TypeError(Jl(t));return r}function tr(s,i,a,c){let{month:r,monthCode:t}=i;if(t!==void 0){let d=((f,g,T,P)=>{let l=f.U(T),[m,D]=kg(g),O=za(m,D,l);if(D){let w=ng(f);if(w===void 0)throw RangeError(ra);if(w>0){if(O>w)throw RangeError(ra);if(l===void 0){if(P===1)throw RangeError(ra);O--}}else{if(O!==-w)throw RangeError(ra);if(l===void 0&&P===1)throw RangeError(ra)}}return O})(s,t,a,c);if(r!==void 0&&r!==d)throw RangeError(uT);r=d,c=1}else if(r===void 0)throw TypeError(Hl);return os("month",r,1,s.L(a),c)}function cf(s,i,a,c,r){return fs(i,"day",1,s.j(c,a),r)}function dr(s,i,a,c){let r=0,t=[];for(let d of a)i[d]!==void 0?r=1:t.push(d);if(Object.assign(s,i),r)for(let d of c||t)delete s[d]}function DT(s){return B(Ss(sc(ea(s))))}function OT(s,i,a,c,r=E){return R(Ss(sc(ea(a))),i(c),s(r))}function wT(s,i,a,c,r=0,t=0,d=0,f=0,g=0,T=0,P=E){return N(Js(cc(Es(n,Wi(Gc,[i,a,c,r,t,d,f,g,T])))),s(P))}function ST(s,i,a,c,r=E){return $(_s(Oi(Es(n,{isoYear:i,isoMonth:a,isoDay:c}))),s(r))}function oT(s,i,a,c=E,r=1){let t=n(i),d=n(a),f=s(c);return li(yr(Oi({isoYear:t,isoMonth:d,isoDay:n(r)})),f)}function pT(s,i,a,c=E,r=Gi){let t=n(i),d=n(a),f=s(c);return Ya(_s(Oi({isoYear:n(r),isoMonth:t,isoDay:d})),f)}function AT(s=0,i=0,a=0,c=0,r=0,t=0){return Cs(rc(Es(n,Wi(ys,[s,i,a,c,r,t])),1))}function FT(s=0,i=0,a=0,c=0,r=0,t=0,d=0,f=0,g=0,T=0){return I($i(Es(Cf,Wi(x,[s,i,a,c,r,t,d,f,g,T]))))}function Lt(s,i,a=E){return R(s.epochNanoseconds,i,a)}function ET(s){return B(s.epochNanoseconds)}function Gt(s,i){return N(as(i,s))}function Wt(s,i){return $(as(i,s))}function MT(s,i,a){return vt(s(i.calendar),a)}function xT(s,i,a){return bt(s(i.calendar),a)}function qt(s,i){return Cs(as(i,s))}function CT(s,i,a,c){let r=((t,d,f,g)=>{let T=br(g);return ls(t(d),f,T)})(s,a,i,c);return R(Ss(r),a,i.calendar)}function ZT(s,i,a){let c=s(i.calendar);return li({...i,...vt(c,a)})}function yT(s,i,a){return bt(s(i.calendar),a)}function hT(s,i,a,c,r){let t=s(r.timeZone),d=r.plainTime,f=d!==void 0?i(d):Fs;return R(ls(a(t),{...c,...f}),t,c.calendar)}function jT(s,i=Fs){return N(Js({...s,...i}))}function IT(s,i,a){return vt(s(i.calendar),a)}function bT(s,i,a){return bt(s(i.calendar),a)}function vT(s,i,a,c){return((r,t,d)=>mT(r,t,gP,$s(d),xa))(s(i.calendar),a,c)}function LT(s,i,a,c){return((r,t,d)=>mT(r,t,TP,$s(d),vc))(s(i.calendar),a,c)}function GT(s,i,a,c,r){let t=$s(r),d=i(t.plainDate),f=s(t.timeZone);return R(ls(a(f),{...d,...c}),f,d.calendar)}function WT(s,i){return N(Js({...s,...i}))}function qT(s){return B(Ss(vi(s,As)))}function UT(s){return B(Ss(vi(s,Is)))}function NT(s){return B(Ss(sc(ea(s),Mi)))}function $T(s){return B(Ss(sc(ea(s))))}function JT(s,i,a=Fs){let c=i.timeZone,r=s(c),t={...as(i,r),...a};return R(oi(r,t,t.offsetNanoseconds,2),c,i.calendar)}function XT(s,i,a){let c=i.timeZone,r=s(c),t={...as(i,r),...a},d=BT(i.calendar,a.calendar);return R(oi(r,t,t.offsetNanoseconds,2),c,d)}function HT(s,i=Fs){return N({...s,...i})}function KT(s,i){return N({...s,...i},BT(s.calendar,i.calendar))}function yc(s,i){return{...s,calendar:i}}function YT(s,i){return{...s,timeZone:i}}function BT(s,i){if(s===i)return s;let a=_(s),c=_(i);if(a===c||a===E)return i;if(c===E)return s;throw RangeError(Xt)}function yl(s,i){return(a)=>a===E?s:a===Lc||a===Li?Object.assign(Object.create(s),{id:a}):Object.assign(Object.create(i),Jm(a))}function Ei(s,i,a){let c=new Set(a);return(r)=>(((t,d)=>{for(let f of d)if(f in t)return 1;return 0})(r=or(c,r),s)||Object.assign(r,i),a&&(r.timeZone=Zi,["full","long"].includes(r.timeStyle)&&(r.timeStyle="medium")),r)}function Xs(s,i=Ut){let[a,,,c]=s;return(r,t=dD,...d)=>{let f=i(c&&c(...d),r,t,a),g=f.resolvedOptions();return[f,...hl(s,g,d)]}}function Ut(s,i,a,c){if(a=c(a),s){if(a.timeZone!==void 0)throw TypeError(el);a.timeZone=s}return new ii(i,a)}function hl(s,i,a){let[,c,r]=s;return a.map((t)=>(t.calendar&&((d,f,g)=>{if((g||d!==E)&&d!==f)throw RangeError(Xt)})(_(t.calendar),i.calendar,r),c(t,i)))}function Ki(s){let i=Aa();return us(i,s.getOffsetNanosecondsFor(i))}function Aa(){return vi(Date.now(),Is)}function Hs(){return gf||(gf=new ii().resolvedOptions().timeZone)}var jl=(s,i)=>`Non-integer ${s}: ${i}`,Il=(s,i)=>`Non-positive ${s}: ${i}`,bl=(s,i)=>`Non-finite ${s}: ${i}`,vl=(s)=>`Cannot convert bigint to ${s}`,Ll=(s)=>`Invalid bigint: ${s}`,Gl="Cannot convert Symbol to string",QT="Invalid object",_T=(s,i,a,c,r)=>r?_T(s,r[i],r[a],r[c]):Fa(s,i)+`; must be between ${a}-${c}`,Fa=(s,i)=>`Invalid ${s}: ${i}`,Nt=(s)=>`Missing ${s}`,$t=(s)=>`Invalid field ${s}`,Wl=(s)=>`Duplicate field ${s}`,zT=(s)=>"No valid fields: "+s.join(),RT="Invalid bag",VT=(s,i,a)=>Fa(s,i)+"; must be "+Object.keys(a).join(),kT="Cannot use valueOf",Jt="Invalid calling context",ql="Forbidden era/eraYear",Ul="Mismatching era/eraYear",Nl="Mismatching year/eraYear",$l=(s)=>`Invalid era: ${s}`,Jl=(s)=>"Missing year"+(s?"/era/eraYear":""),Xl=(s)=>`Invalid monthCode: ${s}`,uT="Mismatching month/monthCode",Hl="Missing month/monthCode",rf="Cannot guess year",ra="Invalid leap month",nT="Invalid protocol",Ea="Invalid protocol results",Xt="Mismatching Calendars",Kl=(s)=>`Invalid Calendar: ${s}`,eT="Mismatching TimeZones",Yl="Forbidden ICU TimeZone",Bl="Out-of-bounds offset",Ql="Out-of-bounds TimeZone gap",_l="Invalid TimeZone offset",zl="Ambiguous offset",hc="Out-of-bounds date",Rl="Out-of-bounds duration",Vl="Cannot mix duration signs",jc="Missing relativeTo",kl="Cannot use large units",ul="Required smallestUnit or largestUnit",nl="smallestUnit > largestUnit",gs=(s)=>`Cannot parse: ${s}`,Ns=(s)=>`Invalid substring: ${s}`,sP=(s)=>`Cannot format ${s}`,iP="Mismatching types for formatting",el="Cannot specify TimeZone",aP=F(ma,(s,i)=>i),Yi=F(ma,(s,i,a)=>a),ps=F(Xa,2),mr={nanosecond:0,microsecond:1,millisecond:2,second:3,minute:4,hour:5,day:6,week:7,month:8,year:9},Ma=Object.keys(mr),Ts=86400000,cP=1000,Mi=1000,Is=1e6,As=1e9,Ic=60000000000,bc=3600000000000,C=86400000000000,js=[1,Mi,Is,As,Ic,bc,C],Ks=Ma.slice(0,6),Dr=Da(Ks),rP=["offset"],tP=["timeZone"],dP=Ks.concat(rP),fP=dP.concat(tP),Or=["era","eraYear"],sm=Or.concat(["year"]),vc=["year"],Ht=["monthCode"],Kt=["month"].concat(Ht),xa=["day"],Yt=Kt.concat(vc),gP=Ht.concat(vc),Zs=xa.concat(Yt),im=xa.concat(Kt),TP=xa.concat(Ht),PP=Yi(Ks,0),E="iso8601",Lc="gregory",Li="japanese",lP={[Lc]:{bce:-1,ce:0},[Li]:{bce:-1,ce:0,meiji:1867,taisho:1911,showa:1925,heisei:1988,reiwa:2018},ethioaa:{era0:0},ethiopic:{era0:0,era1:5500},coptic:{era0:-1,era1:0},roc:{beforeroc:-1,minguo:0},buddhist:{be:0},islamic:{ah:0},indian:{saka:0},persian:{ap:0}},am={chinese:13,dangi:13,hebrew:-6},L=F(na,"string"),mP=F(na,"boolean"),cm=F(na,"number"),DP=F(na,"function"),x=Ma.map((s)=>s+"s"),Bt=Da(x),rm=x.slice(0,6),OP=x.slice(6),tm=OP.slice(1),dm=aP(x),z=Yi(x,0),Qt=Yi(rm,0),_t=F(Df,x),ys=["isoNanosecond","isoMicrosecond","isoMillisecond","isoSecond","isoMinute","isoHour"],zt=["isoDay","isoMonth","isoYear"],Gc=ys.concat(zt),Rt=Da(zt),wP=Da(ys),SP=Da(Gc),Fs=Yi(wP,0),fm=F(Df,Gc),ii=Intl.DateTimeFormat,oP="en-GB",Vt=1e8,gm=Vt*Ts,Tm=[Vt,0],Pm=[-Vt,0],Pa=275760,la=-271821,lm=1970,Gi=1972,qs=12,mm=qi(1868,9,8),Dm=Ps(Dl,WeakMap),Ra="smallestUnit",wr="unit",da="roundingIncrement",fr="fractionalSecondDigits",pP="relativeTo",AP={constrain:0,reject:1},Om=Object.keys(AP),wm={compatible:0,reject:1,earlier:2,later:3},Sm={reject:0,use:1,prefer:2,ignore:3},om={auto:0,never:1,critical:2,always:3},pm={auto:0,never:1,critical:2},Am={auto:0,never:1},Fm={floor:0,halfFloor:1,ceil:2,halfCeil:3,trunc:4,halfTrunc:5,expand:6,halfExpand:7,halfEven:8},Ca=F(Ur,Ra),kt=F(Ur,"largestUnit"),Em=F(Ur,wr),FP=F(wi,"overflow",AP),EP=F(wi,"disambiguation",wm),Mm=F(wi,"offset",Sm),ut=F(wi,"calendarName",om),xm=F(wi,"timeZoneName",pm),Cm=F(wi,"offset",Am),Za=F(wi,"roundingMode",Fm),Bi="PlainYearMonth",Qi="PlainMonthDay",xi="PlainDate",Ci="PlainDateTime",Wc="PlainTime",Ys="ZonedDateTime",qc="Instant",Uc="Duration",Zm=[Math.floor,(s)=>Wa(s)?Math.floor(s):Math.round(s),Math.ceil,(s)=>Wa(s)?Math.ceil(s):Math.round(s),Math.trunc,(s)=>Wa(s)?Math.trunc(s)||0:Math.round(s),(s)=>s<0?Math.floor(s):Math.ceil(s),(s)=>Math.sign(s)*Math.round(Math.abs(s))||0,(s)=>Wa(s)?(s=Math.trunc(s)||0)+s%2:Math.round(s)],Zi="UTC",$a=5184000,ym=Ka(1847),hm=Ka(new Date().getUTCFullYear()+10),jm=/0+$/,as=Ps(Al,WeakMap),tf=4294967295,Nc=Ps((s)=>{let i=wt(s);return typeof i=="object"?new xP(i):new MP(i||0)});class MP{constructor(s){this.v=s}getOffsetNanosecondsFor(){return this.v}getPossibleInstantsFor(s){return[hr(s,this.v)]}l(){}}class xP{constructor(s){this.$=((i)=>{function a(g){let T=gr(g,d,f),[P,l]=nd(T),m=r(P),D=r(l);return m===D?m:c(t(P,l),m,D,g)}function c(g,T,P,l){let m,D;for(;(l===void 0||(m=l<g[0]?T:l>=g[1]?P:void 0)===void 0)&&(D=g[1]-g[0]);){let O=g[0]+Math.floor(D/2);i(O)===P?g[1]=O:g[0]=O+1}return m}let r=Ps(i),t=Ps(Fl),d=ym,f=hm;return{G(g){let T=a(g-86400),P=a(g+86400),l=g-T,m=g-P;if(T===P)return[l];let D=a(l);return D===a(m)?[g-D]:T>P?[l,m]:[]},V:a,l(g,T){let P=gr(g,d,f),[l,m]=nd(P),D=$a*T,O=T<0?()=>m>d||(d=P,0):()=>l<f||(f=P,0);for(;O();){let w=r(l),S=r(m);if(w!==S){let p=t(l,m);c(p,w,S);let o=p[0];if((Qs(o,g)||1)===T)return o}l+=D,m+=D}}}})(((i)=>(a)=>{let c=Zr(i,a*cP);return Ka(_g(c),parseInt(c.month),parseInt(c.day),parseInt(c.hour),parseInt(c.minute),parseInt(c.second))-a})(s))}getOffsetNanosecondsFor(s){return this.$.V(hf(s))*As}getPossibleInstantsFor(s){let[i,a]=[Ka((c=s).isoYear,c.isoMonth,c.isoDay,c.isoHour,c.isoMinute,c.isoSecond),c.isoMillisecond*Is+c.isoMicrosecond*Mi+c.isoNanosecond];var c;return this.$.G(i).map((r)=>Ss(bi(vi(r,As),a)))}l(s,i){let[a,c]=jf(s),r=this.$.l(a+(i>0||c?1:0),i);if(r!==void 0)return vi(r,As)}}var nt="([+\u2212-])",Ja="(?:[.,](\\d{1,9}))?",CP=`(?:(?:${nt}(\\d{6}))|(\\d{4}))-?(\\d{2})`,et="(\\d{2})(?::?(\\d{2})(?::?(\\d{2})"+Ja+")?)?",sd=nt+et,Im=CP+"-?(\\d{2})(?:[T ]"+et+"(Z|"+sd+")?)?",ZP="\\[(!?)([^\\]]*)\\]",$c=`((?:${ZP}){0,9})`,bm=Hi(CP+$c),vm=Hi("(?:--)?(\\d{2})-?(\\d{2})"+$c),Lm=Hi(Im+$c),Gm=Hi("T?"+et+"(?:"+sd+")?"+$c),Wm=Hi(sd),qm=new RegExp(ZP,"g"),Um=Hi(`${nt}?P(\\d+Y)?(\\d+M)?(\\d+W)?(\\d+D)?(?:T(?:(\\d+)${Ja}H)?(?:(\\d+)${Ja}M)?(?:(\\d+)${Ja}S)?)?`),Nm=Ps((s)=>new ii(oP,{timeZone:s,era:"short",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"})),$m=/^(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$/,Jm=Ps(xl),id=Ps((s)=>new ii(oP,{calendar:s,timeZone:Zi,era:"short",year:"numeric",month:"short",day:"numeric"})),Xm=/^M(\d{2})(L?)$/,Hm={era:Ha,eraYear:n,year:n,month:Rd,monthCode:Ha,day:Rd},Km=Yi(Ks,n),Ym=Yi(x,Cf),df=Object.assign({},Hm,Km,Ym,{offset:Ha}),Bm=F(ml,Ks,ys),ff={dateAdd(s,i,a){let c=M(a),r,{years:t,months:d,weeks:f,days:g}=i;if(g+=K(i,5)[0],t||d)r=((T,P,l,m,D)=>{let[O,w,S]=T.h(P);if(l){let[p,o]=T.I(O,w);O+=l,w=za(p,o,T.U(O)),w=os("month",w,1,T.L(O),D)}return m&&([O,w]=T._(O,w,m)),S=os("day",S,1,T.j(O,w),D),T.q(O,w,S)})(this,s,t,d,c);else{if(!f&&!g)return s;r=is(s)}return r+=(7*f+g)*Ts,_s(ac(r))},dateUntil(s,i,a){if(a<=7){let g=0,T=Bg({...s,...Fs},{...i,...Fs});return a===7&&([g,T]=Rs(T,7)),{...z,weeks:g,days:T}}let c=this.h(s),r=this.h(i),[t,d,f]=((g,T,P,l,m,D,O)=>{let w=m-T,S=D-P,p=O-l;if(w||S){let o=Math.sign(w||S),A=g.j(m,D),q=0;if(Math.sign(p)===-o){let b=A;[m,D]=g._(m,D,-o),w=m-T,S=D-P,A=g.j(m,D),q=o<0?-b:A}if(p=O-Math.min(l,A)+q,w){let[b,j]=g.I(T,P),[v,Q]=g.I(m,D);if(S=v-b||Number(Q)-Number(j),Math.sign(S)===-o){let H=o<0&&-g.L(m);w=(m-=o)-T,S=D-za(b,j,g.U(m))+(H||g.L(m))}}}return[w,S,p]})(this,...c,...r);return a===8&&(d+=this.J(t,c[0]),t=0),{...z,years:t,months:d,days:f}},dateFromFields(s,i){let a=M(i),c=rr(this,s),r=tr(this,s,c,a),t=cf(this,s,r,c,a);return $(_s(this.P(c,r,t)),this.id||E)},yearMonthFromFields(s,i){let a=M(i),c=rr(this,s),r=tr(this,s,c,a);return li(yr(this.P(c,r,1)),this.id||E)},monthDayFromFields(s,i){let a=M(i),c=!this.id,{monthCode:r,year:t,month:d}=s,f,g,T,P,l;if(r!==void 0){[f,g]=kg(r),l=Tf(s,"day");let m=this.N(f,g,l);if(!m)throw RangeError(rf);if([T,P]=m,d!==void 0&&d!==P)throw RangeError(uT);c&&(P=os("month",P,1,qs,1),l=os("day",l,1,jr(t!==void 0?t:T,P),a))}else{T=t===void 0&&c?Gi:rr(this,s),P=tr(this,s,T,a),l=cf(this,s,P,T,a);let m=this.U(T);g=P===m,f=Pr(P,m);let D=this.N(f,g,l);if(!D)throw RangeError(rf);[T,P]=D}return Ya(_s(this.P(T,P,l)),this.id||E)},fields(s){return lr(this)&&s.includes("year")?[...s,...Or]:s},mergeFields(s,i){let a=Object.assign(Object.create(null),s);return dr(a,i,Kt),lr(this)&&(dr(a,i,sm),this.id===Li&&dr(a,i,im,Or)),a},inLeapYear(s){let[i]=this.h(s);return this.K(i)},monthsInYear(s){let[i]=this.h(s);return this.L(i)},daysInMonth(s){let[i,a]=this.h(s);return this.j(i,a)},daysInYear(s){let[i]=this.h(s);return this.X(i)},dayOfYear:yt,era(s){return this.ee(s)[0]},eraYear(s){return this.ee(s)[1]},monthCode(s){let[i,a]=this.h(s),[c,r]=this.I(i,a);return((t,d)=>"M"+ps(t)+(d?"L":""))(c,r)},dayOfWeek:Gf,daysInWeek(){return 7}},Qm={dayOfYear:yt,h:bf,q:qi},_m=Object.assign({},Qm,{weekOfYear:Rg,yearOfWeek:Vg,R(s){function i(D){return(7-D<c?7:0)-D}function a(D){let O=Lf(m+D),w=D||1,S=i(ta(g+O*w,7));return P=(O+(S-T)*w)/7}let c=this.id?1:4,r=Gf(s),t=this.dayOfYear(s),d=ta(r-1,7),f=t-1,g=ta(d-f,7),T=i(g),P,l=Math.floor((f-T)/7)+1,m=s.isoYear;return l?l>a(0)&&(l=1,m++):(l=a(-1),m--),[l,m,P]}}),zm={dayOfYear:yt,h:Tr,q:Ta,weekOfYear:Rg,yearOfWeek:Vg,R(){return[]}},_i=yl(Object.assign({},ff,_m,{h:bf,ee(s){return this.id===Lc?Wf(s):this.id===Li?Dm(s):[]},I:(s,i)=>[i,0],N(s,i){if(!i)return[Gi,s]},K:Ir,U(){},L:vf,J:(s)=>s*qs,j:jr,X:Lf,P:(s,i,a)=>({isoYear:s,isoMonth:i,isoDay:a}),q:qi,_:(s,i,a)=>(s+=ka(a,qs),(i+=Ar(a,qs))<1?(s--,i+=qs):i>qs&&(s++,i-=qs),[s,i]),year(s){return s.isoYear},month(s){return s.isoMonth},day:(s)=>s.isoDay}),Object.assign({},ff,zm,{h:Tr,ee(s){let i=this.O(s);return[i.era,i.eraYear]},I(s,i){let a=qa.call(this,s);return[Pr(i,a),a===i]},N(s,i,a){let[c,r,t]=Tr.call(this,{isoYear:Gi,isoMonth:qs,isoDay:31}),d=qa.call(this,c),f=r===d;(Qs(s,Pr(r,d))||Qs(Number(i),Number(f))||Qs(a,t))===1&&c--;for(let g=0;g<100;g++){let T=c-g,P=qa.call(this,T),l=za(s,i,P);if(i===(l===P)&&a<=sf.call(this,T,l))return[T,l]}},K(s){let i=Ua.call(this,s);return i>Ua.call(this,s-1)&&i>Ua.call(this,s+1)},U:qa,L:Na,J(s,i){let a=i+s,c=Math.sign(s),r=c<0?-1:0,t=0;for(let d=i;d!==a;d+=c)t+=Na.call(this,d+r);return t},j:sf,X:Ua,P(s,i,a){return ac(Ta.call(this,s,i,a))},q:Ta,_(s,i,a){if(a){if(i+=a,!Number.isSafeInteger(i))throw RangeError(hc);if(a<0)for(;i<1;)i+=Na.call(this,--s);else{let c;for(;i>(c=Na.call(this,s));)i-=c,s++}}return[s,i]},year(s){return this.O(s).year},month(s){let{year:i,F:a}=this.O(s),{C:c}=this.B(i);return c[a]+1},day(s){return this.O(s).day}})),zs="numeric",zi=["timeZoneName"],yP={month:zs,day:zs},ad={year:zs,month:zs},cd=Object.assign({},ad,{day:zs}),rd={hour:zs,minute:zs,second:zs},td=Object.assign({},cd,rd),Rm=Object.assign({},td,{timeZoneName:"short"}),Vm=Object.keys(ad),km=Object.keys(yP),um=Object.keys(cd),nm=Object.keys(rd),dd=["dateStyle"],em=Vm.concat(dd),sD=km.concat(dd),fd=um.concat(dd,["weekday"]),ya=nm.concat(["dayPeriod","timeStyle"]),gd=fd.concat(ya),iD=gd.concat(zi),aD=zi.concat(ya),cD=zi.concat(fd),rD=zi.concat(["day","weekday"],ya),tD=zi.concat(["year","weekday"],ya),dD={},Td=[Ei(gd,td),fc],hP=[Ei(iD,Rm),fc,0,(s,i)=>{let a=_(s.timeZone);if(i&&_(i.timeZone)!==a)throw RangeError(eT);return a}],Pd=[Ei(gd,td,zi),is],ld=[Ei(fd,cd,aD),is],md=[Ei(ya,rd,cD),(s)=>Vs(s)/Is],Dd=[Ei(em,ad,rD),is,1],Od=[Ei(sD,yP,tD),is,1],gf;function Ls(s,i,a,c,r){function t(...g){if(!(this instanceof t))throw TypeError(Jt);vP(this,i(...g))}function d(g,T){return Object.defineProperties(function(...P){return g.call(this,f(this),...P)},Sr(T))}function f(g){let T=u(g);if(!T||T.branding!==s)throw TypeError(Jt);return T}return Object.defineProperties(t.prototype,{...Pf(Es(d,a)),...Di(Es(d,c)),...Va("Temporal."+s)}),Object.defineProperties(t,{...Di(r),...Sr(s)}),[t,(g)=>{let T=Object.create(t.prototype);return vP(T,g),T},f]}function WP(s){return s=s.concat("id").sort(),(i)=>{if(!lf(i,s))throw TypeError(nT);return i}}function ui(s){if(u(s)||s.calendar!==void 0||s.timeZone!==void 0)throw TypeError(RT);return s}function Jc(s,i){let a={};for(let c in s)a[c]=({o:r},t)=>{let d=u(t)||{},{branding:f}=d,g=f===xi||i.includes(f)?d:ts(t);return r[c](g)};return a}function od(s){let i={};for(let a in s)i[a]=(c)=>{let{calendar:r}=c;return(t=r,typeof t=="string"?_i(t):(d=t,Object.assign(Object.create(MD),{i:d})))[a](c);var t,d};return i}function di(){throw TypeError(kT)}function ja({calendar:s}){return typeof s=="string"?new yd(s):s}function jP(s,i){if(i=U(i),Y(s)){let c=u(s);if(c&&c.branding===Qi)return M(i),c;let r=NP(s);return It(_c(r||E),!r,s,i)}let a=Fg(_i,s);return M(i),a}function qP(s,i,a){return c=i.call(s,rs(B(a))),kr(Oa(c));var c}function Xc(s,i=HP){let a=Object.keys(i).sort(),c={};for(let r of a)c[r]=F(i[r],s,DP(s[r]));return c}function Z(s,i){return typeof s=="string"?Nc(s):Xc(s,i)}function X(s){return Z(s,Sd)}function bs(s){if(Y(s)){let i=u(s);if(i)switch(i.branding){case qc:return i;case Ys:return B(i.epochNanoseconds)}}return wg(s)}function IP(s,i,a){let c=i.l(bs(a).epochNanoseconds,s);return c?rs(B(c)):null}function h(s){return Y(s)?(u(s)||{}).timeZone||jD(s):((i)=>Fc(Cg(L(i))))(s)}function ai(s,i){if(Y(s)){let a=u(s)||{};switch(a.branding){case Wc:return M(i),a;case Ci:return M(i),Cs(a);case Ys:return M(i),qt(X,a)}return cT(s,i)}return M(i),Eg(s)}function pd(s){return s===void 0?void 0:ai(s)}function Ri(s,i){if(i=U(i),Y(s)){let c=u(s);return c&&c.branding===Bi?(M(i),c):jt(Bc(Ia(s)),s,i)}let a=Ag(_i,s);return M(i),a}function ci(s,i){if(i=U(i),Y(s)){let c=u(s)||{};switch(c.branding){case Ci:return M(i),c;case xi:return M(i),N({...c,...Fs});case Ys:return M(i),Gt(X,c)}return aT(Qc(Ia(s)),s,i)}let a=pg(s);return M(i),a}function ts(s,i){if(i=U(i),Y(s)){let c=u(s)||{};switch(c.branding){case xi:return M(i),c;case Ci:return M(i),$(c);case Ys:return M(i),Wt(X,c)}return ht(Qc(Ia(s)),s,i)}let a=pc(s);return M(i),a}function UP(s,i,a){return Ms(i.call(s,W($(a,s))))}function Gs(s){return(i)=>typeof i=="string"?_i(i):((a,c)=>{let r=Object.keys(c).sort(),t={};for(let d of r)t[d]=F(c[d],a,a[d]);return t})(i,s)}function G(s){if(Y(s)){let i=u(s);return i&&i.branding===Uc?i:rT(s)}return Mg(s)}function ha(s){if(s!==void 0){if(Y(s)){let i=u(s)||{};switch(i.branding){case Ys:case xi:return i;case Ci:return $(i)}let a=Ia(s);return{...sT(h,Z,Qc(a),s),calendar:a}}return Sg(s)}}function Ia(s){return NP(s)||E}function NP(s){let{calendar:i}=s;if(i!==void 0)return k(i)}function k(s){return Y(s)?(u(s)||{}).calendar||YD(s):((i)=>oa(xg(L(i))))(s)}function Vi(s,i){if(i=U(i),Y(s)){let a=u(s);if(a&&a.branding===Ys)return wa(i),a;let c=Ia(s);return iT(h,Z,Qc(c),c,s,i)}return og(s,i)}function bP(s){return Es((i)=>(a)=>i(wd(a)),s)}function wd(s){return as(s,X)}function fD(){let s=ii.prototype,i=Object.getOwnPropertyDescriptors(s),a=Object.getOwnPropertyDescriptors(ii),c=function(r,t={}){if(!(this instanceof c))return new c(r,t);hd.set(this,((d,f={})=>{let g=new ii(d,f),T=g.resolvedOptions(),P=T.locale,l=ms(Object.keys(f),T),m=Ps(PD),D=(...O)=>{let w,S=O.map((p,o)=>{let A=u(p),q=(A||{}).branding;if(o&&w&&w!==q)throw TypeError(iP);return w=q,A});return w?m(w)(P,l,...S):[g,...O]};return D.u=g,D})(r,t))};for(let r in i){let t=i[r],d=r.startsWith("format")&&gD(r);typeof t.value=="function"?t.value=r==="constructor"?c:d||TD(r):d&&(t.get=function(){return d.bind(this)})}return a.prototype.value=Object.create(s,i),Object.defineProperties(c,a),c}function gD(s){return function(...i){let a=hd.get(this),[c,...r]=a(...i);return c[s](...r)}}function TD(s){return function(...i){return hd.get(this).u[s](...i)}}function PD(s){let i=lD[s];if(!i)throw TypeError(sP(s));return Xs(i,Ps(Ut))}var lD={Instant:Td,PlainDateTime:Pd,PlainDate:ld,PlainTime:md,PlainYearMonth:Dd,PlainMonthDay:Od},mD=Xs(Td),DD=Xs(hP),OD=Xs(Pd),wD=Xs(ld),SD=Xs(md),oD=Xs(Dd),pD=Xs(Od),Ad={era:pf,eraYear:Fr,year:Oa,month:Ms,daysInMonth:Ms,daysInYear:Ms,inLeapYear:mP,monthsInYear:Ms},Kc={monthCode:L},Fd={day:Ms},$P={dayOfWeek:Ms,dayOfYear:Ms,weekOfYear:Af,yearOfWeek:Fr,daysInWeek:Ms},JP=Object.assign({},Ad,Kc,Fd,$P),Hc=new WeakMap,u=Hc.get.bind(Hc),vP=Hc.set.bind(Hc),AD={...Jc(Ad,[Bi]),...Jc($P,[]),...Jc(Kc,[Bi,Qi]),...Jc(Fd,[Qi])},Ed=od(JP),FD=od({...Ad,...Kc}),ED=od({...Kc,...Fd}),ba={calendarId:(s)=>_(s.calendar)},MD=Es((s,i)=>function(a){let{i:c}=this;return s(c[i](W($(a,c))))},JP),xD=ma((s)=>(i)=>i[s],x.concat("sign")),Md=ma((s,i)=>(a)=>a[ys[i]],Ks),XP={epochSeconds:Hf,epochMilliseconds:fc,epochMicroseconds:Kf,epochNanoseconds:Yf},va=F(or,new Set(["branding"])),[CD,ki,ZD]=Ls(Qi,F(pT,k),{...ba,...ED},{getISOFields:va,getCalendar:ja,with(s,i,a){return ki(TT(XD,s,this,ui(i),a))},equals:(s,i)=>$g(s,jP(i)),toPlainDate(s,i){return W(LT(La,s,this,i))},toLocaleString(s,i,a){let[c,r]=pD(i,a,s);return c.format(r)},toString:Qr,toJSON:(s)=>Qr(s),valueOf:di},{from:(s,i)=>ki(jP(s,i))}),HP={getOffsetNanosecondsFor:qP,getPossibleInstantsFor(s,i,a){let c=[...i.call(s,V(N(a,E)))].map((t)=>hD(t).epochNanoseconds),r=c.length;return r>1&&(c.sort(ss),ur(ws(Os(c[0],c[r-1])))),c}},Sd={getOffsetNanosecondsFor:qP},[yD,rs,hD]=Ls(qc,DT,XP,{add:(s,i)=>rs(nr(0,s,G(i))),subtract:(s,i)=>rs(nr(1,s,G(i))),until:(s,i,a)=>y(At(0,s,bs(i),a)),since:(s,i,a)=>y(At(1,s,bs(i),a)),round:(s,i)=>rs(_f(s,i)),equals:(s,i)=>Gg(s,bs(i)),toZonedDateTime(s,i){let a=$s(i);return J(Lt(s,h(a.timeZone),k(a.calendar)))},toZonedDateTimeISO:(s,i)=>J(Lt(s,h(i))),toLocaleString(s,i,a){let[c,r]=mD(i,a,s);return c.format(r)},toString:(s,i)=>Xr(h,X,s,i),toJSON:(s)=>Xr(h,X,s),valueOf:di},{from:(s)=>rs(bs(s)),fromEpochSeconds:(s)=>rs(qT(s)),fromEpochMilliseconds:(s)=>rs(UT(s)),fromEpochMicroseconds:(s)=>rs(NT(s)),fromEpochNanoseconds:(s)=>rs($T(s)),compare:(s,i)=>St(bs(s),bs(i))}),[Yc,LO]=Ls("TimeZone",(s)=>{let i=vg(s);return{branding:"TimeZone",id:i,o:Nc(i)}},{id:(s)=>s.id},{getPossibleInstantsFor:({o:s},i)=>s.getPossibleInstantsFor(ci(i)).map((a)=>rs(B(a))),getOffsetNanosecondsFor:({o:s},i)=>s.getOffsetNanosecondsFor(bs(i).epochNanoseconds),getOffsetStringFor(s,i){let a=bs(i).epochNanoseconds,c=Xc(this,Sd).getOffsetNanosecondsFor(a);return Si(c)},getPlainDateTimeFor(s,i,a=E){let c=bs(i).epochNanoseconds,r=Xc(this,Sd).getOffsetNanosecondsFor(c);return V(N(us(c,r),k(a)))},getInstantFor(s,i,a){let c=ci(i),r=br(a),t=Xc(this);return rs(B(ls(t,c,r)))},getNextTransition:({o:s},i)=>IP(1,s,i),getPreviousTransition:({o:s},i)=>IP(-1,s,i),equals(s,i){return!!Mc(this,h(i))},toString:(s)=>s.id,toJSON:(s)=>s.id},{from(s){let i=h(s);return typeof i=="string"?new Yc(i):i}}),jD=WP(Object.keys(HP)),[ID,ri]=Ls(Wc,AT,Md,{getISOFields:va,with(s,i,a){return ri(PT(this,ui(i),a))},add:(s,i)=>ri(ct(0,s,G(i))),subtract:(s,i)=>ri(ct(1,s,G(i))),until:(s,i,a)=>y(Ct(0,s,ai(i),a)),since:(s,i,a)=>y(Ct(1,s,ai(i),a)),round:(s,i)=>ri(Vf(s,i)),equals:(s,i)=>Jg(s,ai(i)),toZonedDateTime:(s,i)=>J(GT(h,ts,Z,s,i)),toPlainDateTime:(s,i)=>V(WT(s,ts(i))),toLocaleString(s,i,a){let[c,r]=SD(i,a,s);return c.format(r)},toString:_r,toJSON:(s)=>_r(s),valueOf:di},{from:(s,i)=>ri(ai(s,i)),compare:(s,i)=>Ec(ai(s),ai(i))}),[bD,ti,vD]=Ls(Bi,F(oT,k),{...ba,...FD},{getISOFields:va,getCalendar:ja,with(s,i,a){return ti(gT(JD,s,this,ui(i),a))},add:(s,i,a)=>ti(at(LP,0,s,G(i),a)),subtract:(s,i,a)=>ti(at(LP,1,s,G(i),a)),until:(s,i,a)=>y(xt(GP,0,s,Ri(i),a)),since:(s,i,a)=>y(xt(GP,1,s,Ri(i),a)),equals:(s,i)=>Ng(s,Ri(i)),toPlainDate(s,i){return W(vT(La,s,this,i))},toLocaleString(s,i,a){let[c,r]=oD(i,a,s);return c.format(r)},toString:Br,toJSON:(s)=>Br(s),valueOf:di},{from:(s,i)=>ti(Ri(s,i)),compare:(s,i)=>Ai(Ri(s),Ri(i))}),[LD,V]=Ls(Ci,F(wT,k),{...ba,...Ed,...Md},{getISOFields:va,getCalendar:ja,with(s,i,a){return V(dT(La,s,this,ui(i),a))},withCalendar:(s,i)=>V(yc(s,k(i))),withPlainDate:(s,i)=>V(KT(s,ts(i))),withPlainTime:(s,i)=>V(HT(s,pd(i))),add:(s,i,a)=>V(st(yi,0,s,G(i),a)),subtract:(s,i,a)=>V(st(yi,1,s,G(i),a)),until:(s,i,a)=>y(Et(vs,0,s,ci(i),a)),since:(s,i,a)=>y(Et(vs,1,s,ci(i),a)),round:(s,i)=>V(Rf(s,i)),equals:(s,i)=>qg(s,ci(i)),toZonedDateTime:(s,i,a)=>J(CT(Z,s,h(i),a)),toPlainDate:(s)=>W($(s)),toPlainTime:(s)=>ri(Cs(s)),toPlainYearMonth(s){return ti(ZT(Bc,s,this))},toPlainMonthDay(s){return ki(yT(_c,s,this))},toLocaleString(s,i,a){let[c,r]=OD(i,a,s);return c.format(r)},toString:Kr,toJSON:(s)=>Kr(s),valueOf:di},{from:(s,i)=>V(ci(s,i)),compare:(s,i)=>pt(ci(s),ci(i))}),[GD,W,KP]=Ls(xi,F(ST,k),{...ba,...Ed},{getISOFields:va,getCalendar:ja,with(s,i,a){return W(fT(La,s,this,ui(i),a))},withCalendar:(s,i)=>W(yc(s,k(i))),add:(s,i,a)=>W(it(yi,0,s,G(i),a)),subtract:(s,i,a)=>W(it(yi,1,s,G(i),a)),until:(s,i,a)=>y(Mt(vs,0,s,ts(i),a)),since:(s,i,a)=>y(Mt(vs,1,s,ts(i),a)),equals:(s,i)=>Ug(s,ts(i)),toZonedDateTime(s,i){let a=!Y(i)||i instanceof Yc?{timeZone:i}:i;return J(hT(h,ai,Z,s,a))},toPlainDateTime:(s,i)=>V(jT(s,pd(i))),toPlainYearMonth(s){return ti(IT(Bc,s,this))},toPlainMonthDay(s){return ki(bT(_c,s,this))},toLocaleString(s,i,a){let[c,r]=wD(i,a,s);return c.format(r)},toString:Yr,toJSON:(s)=>Yr(s),valueOf:di},{from:(s,i)=>W(ts(s,i)),compare:(s,i)=>Ai(ts(s),ts(i))}),xd={fields(s,i,a){return[...i.call(s,a)]}},YP=Object.assign({dateFromFields(s,i,a,c){return KP(i.call(s,Object.assign(Object.create(null),a),c))}},xd),BP=Object.assign({yearMonthFromFields(s,i,a,c){return vD(i.call(s,Object.assign(Object.create(null),a),c))}},xd),QP=Object.assign({monthDayFromFields(s,i,a,c){return ZD(i.call(s,Object.assign(Object.create(null),a),c))}},xd),Cd={mergeFields(s,i,a,c){return $s(i.call(s,Object.assign(Object.create(null),a),Object.assign(Object.create(null),c)))}},WD=Object.assign({},YP,Cd),qD=Object.assign({},BP,Cd),UD=Object.assign({},QP,Cd),Zd={dateAdd(s,i,a,c,r){return KP(i.call(s,W($(a,s)),y(I(c)),r))}},_P=Object.assign({},Zd,{dateUntil(s,i,a,c,r,t){return KD(i.call(s,W($(a,s)),W($(c,s)),Object.assign(Object.create(null),t,{largestUnit:Ma[r]})))}}),ND=Object.assign({},Zd,{day:UP}),$D=Object.assign({},_P,{day:UP}),Bc=Gs(BP),Qc=Gs(YP),_c=Gs(QP),JD=Gs(qD),La=Gs(WD),XD=Gs(UD),yi=Gs(Zd),vs=Gs(_P),LP=Gs(ND),GP=Gs($D),[HD,y,KD]=Ls(Uc,FT,{...xD,blank:mg},{with:(s,i)=>y(lT(s,i)),negated:(s)=>y(Sc(s)),abs:(s)=>y(lg(s)),add:(s,i,a)=>y(gt(ha,vs,Z,0,s,G(i),a)),subtract:(s,i,a)=>y(gt(ha,vs,Z,1,s,G(i),a)),round:(s,i)=>y(Pg(ha,vs,Z,s,i)),total:(s,i)=>Qf(ha,vs,Z,s,i),toLocaleString(s,i,a){return Intl.DurationFormat?new Intl.DurationFormat(i,a).format(this):lc(s)},toString:lc,toJSON:(s)=>lc(s),valueOf:di},{from:(s)=>y(G(s)),compare:(s,i,a)=>Lg(ha,yi,Z,G(s),G(i),a)}),zP={toString:(s)=>s.id,toJSON:(s)=>s.id,...AD,dateAdd:({id:s,o:i},a,c,r)=>W($(i.dateAdd(ts(a),G(c),r),s)),dateUntil:({o:s},i,a,c)=>y(I(s.dateUntil(ts(i),ts(a),Uf(c)))),dateFromFields:({id:s,o:i},a,c)=>W(ht(i,a,c,of(s))),yearMonthFromFields:({id:s,o:i},a,c)=>ti(jt(i,a,c,wf(s))),monthDayFromFields:({id:s,o:i},a,c)=>ki(It(i,0,a,c,Sf(s))),fields({o:s},i){let a=new Set(Zs),c=[];for(let r of i){if(L(r),!a.has(r))throw RangeError($t(r));a.delete(r),c.push(r)}return s.fields(c)},mergeFields:({o:s},i,a)=>s.mergeFields(pr(Er(i)),pr(Er(a)))},[yd]=Ls("Calendar",(s)=>{let i=zg(s);return{branding:"Calendar",id:i,o:_i(i)}},{id:(s)=>s.id},zP,{from(s){let i=k(s);return typeof i=="string"?new yd(i):i}}),YD=WP(Object.keys(zP).slice(4)),[BD,J]=Ls(Ys,F(OT,k,h),{...XP,...ba,...bP(Ed),...bP(Md),offset:(s)=>Si(wd(s).offsetNanoseconds),offsetNanoseconds:(s)=>wd(s).offsetNanoseconds,timeZoneId:(s)=>_(s.timeZone),hoursInDay:(s)=>kf(Z,s)},{getISOFields:(s)=>gg(X,s),getCalendar:ja,getTimeZone:({timeZone:s})=>typeof s=="string"?new Yc(s):s,with(s,i,a){return J(tT(La,Z,s,this,ui(i),a))},withCalendar:(s,i)=>J(yc(s,k(i))),withTimeZone:(s,i)=>J(YT(s,h(i))),withPlainDate:(s,i)=>J(XT(Z,s,ts(i))),withPlainTime:(s,i)=>J(JT(Z,s,pd(i))),add:(s,i,a)=>J(er(yi,Z,0,s,G(i),a)),subtract:(s,i,a)=>J(er(yi,Z,1,s,G(i),a)),until:(s,i,a)=>y(I(Ft(vs,Z,0,s,Vi(i),a))),since:(s,i,a)=>y(I(Ft(vs,Z,1,s,Vi(i),a))),round:(s,i)=>J(zf(Z,s,i)),startOfDay:(s)=>J(uf(Z,s)),equals:(s,i)=>Wg(s,Vi(i)),toInstant:(s)=>rs(ET(s)),toPlainDateTime:(s)=>V(Gt(X,s)),toPlainDate:(s)=>W(Wt(X,s)),toPlainTime:(s)=>ri(qt(X,s)),toPlainYearMonth(s){return ti(MT(Bc,s,this))},toPlainMonthDay(s){return ki(xT(_c,s,this))},toLocaleString(s,i,a={}){let[c,r]=DD(i,a,s);return c.format(r)},toString:(s,i)=>Hr(X,s,i),toJSON:(s)=>Hr(X,s),valueOf:di},{from:(s,i)=>J(Vi(s,i)),compare:(s,i)=>ot(Vi(s),Vi(i))}),QD=Object.defineProperties({},{...Va("Temporal.Now"),...Di({timeZoneId:()=>Hs(),instant:()=>rs(B(Aa())),zonedDateTime:(s,i=Hs())=>J(R(Aa(),h(i),k(s))),zonedDateTimeISO:(s=Hs())=>J(R(Aa(),h(s),E)),plainDateTime:(s,i=Hs())=>V(N(Ki(X(h(i))),k(s))),plainDateTimeISO:(s=Hs())=>V(N(Ki(X(h(s))),E)),plainDate:(s,i=Hs())=>W($(Ki(X(h(i))),k(s))),plainDateISO:(s=Hs())=>W($(Ki(X(h(s))),E)),plainTimeISO:(s=Hs())=>ri(Cs(Ki(X(h(s)))))})}),fi=Object.defineProperties({},{...Va("Temporal"),...Di({PlainYearMonth:bD,PlainMonthDay:CD,PlainDate:GD,PlainTime:ID,PlainDateTime:LD,ZonedDateTime:BD,Instant:yD,Calendar:yd,TimeZone:Yc,Duration:HD,Now:QD})}),_D=fD(),hd=new WeakMap,zD=Object.defineProperties(Object.create(Intl),Di({DateTimeFormat:_D}));class Rc extends zc{provider;static _name="AuthenticationServiceContainer";constructor(s){super();this.provider=s}async getSession(s,i){let a=await this.provider.adapter.findSession({token:s,userAgent:i}),c=null;if(a?.user)c=await this.provider.extendSession(a.user),a.user.extension=c;return a}async generateMagicLink(s){}async upsertSession(s){await this.provider.adapter.findSession({token:"",userAgent:""})}async authenticate(s){try{let i=await this.provider.adapter.findUserByEmailAddress(s,!1);if(!i)throw Error(`User not found with email: ${s}`);let a=await this.createOrUpdateSession({email:s,id:i.id}),c=new Bs,r=new URL(c.rawRequest.url);if(c.ctx().setCookie("access_token",a.token,{expires:a.expiresAt,secure:!r.origin.includes("localhost"),httpOnly:!0}),a?.user)a.user.extension=await this.provider.extendSession(a.user);return a}catch(i){console.log(i)}}async createOrUpdateSessionV2(s){let i=this.provider,a=new Bs,c=a.headers.get("User-Agent"),r=new Bun.CryptoHasher("sha256");r.update(`${s.email}${c}`);let t=r.digest("hex"),d=await i.adapter.findSession({token:t,userAgent:Bun.env.NODE_ENV==="development"?"local":a.headers.get("User-Agent")});if(!d){let g=s.id;if(!g){let{id:T}=await i.adapter.findUserByEmailAddress(s.email,!1);g=T}d=await i.adapter.createSessionV2({token:t,userId:g,userAgent:Bun.env.NODE_ENV==="development"?"local":a.headers.get("User-Agent"),expiresAt:new Date(fi.Now.instant().add({hours:i.sessionExpiresInHours}).toString()),absoluteExpiresAt:new Date(fi.Now.instant().add({hours:i.sessionAbsoluteExpiresInHours}).toString())})}else d=await i.adapter.updateSession({token:t,expiresAt:new Date(fi.Now.instant().add({hours:i.sessionExpiresInHours}).toString())});let f=null;if(d?.user)f=await this.provider.extendSession(d.user),d.user.extension=f;return d}async createOrUpdateSession(s){let i=this.provider,a=new Bs,c=a.headers.get("User-Agent"),r=new Bun.CryptoHasher("sha256");r.update(`${s.email}${c}`);let t=r.digest("hex"),d=await i.adapter.findSession({token:t,userAgent:Bun.env.NODE_ENV==="development"?"local":a.headers.get("User-Agent")});if(!d){let f=s.id;if(!f){let{id:g}=await i.adapter.findUserByEmailAddress(s.email,!1);f=g}d=await i.adapter.createSessionV2({token:t,userId:f,userAgent:Bun.env.NODE_ENV==="development"?"local":a.headers.get("User-Agent"),expiresAt:new Date(fi.Now.instant().add({hours:i.sessionExpiresInHours}).toString()),absoluteExpiresAt:new Date(fi.Now.instant().add({hours:i.sessionAbsoluteExpiresInHours}).toString())})}else d=await i.adapter.updateSession({token:t,expiresAt:new Date(fi.Now.instant().add({hours:i.sessionExpiresInHours}).toString())});return d}async createMagicLinkToken(s){let i=Rc.use()?.provider,a=await i.adapter.findUserByEmailAddress(s,!1);if(a){await i.adapter.deleteMagicLinkToken(s);let c=await i.generateMagicLinkToken(s),r=(Number.parseInt(RD(4).toString("hex"),16)%1e6).toString().padStart(6,"0");return await i.adapter.createMagicLinkToken({email:s,token:c,pin:r}),{user:a,email:s,pin:r,token:c}}return{}}}class RP extends Ds{async run(s){let i=Ws.getStore(),a=i.req.cookies.get("access_token"),c=i.req.headers.get("access_token"),r=a||c;if(!r)throw new Vc;let t=i.user;if(!t){let d=await Rc.use().getSession(r,i.req.headers.get("User-Agent"));if(!d)throw new Vc;t=d?.user,i.setUser(t)}return{}}}class VP extends Ds{async run(...s){let[i="public",a="864000",...c]=s,r=`${i}, max-age=${a}${c.length>0?", ":""}${c.join(", ")}`;if(s.length===0)r="public, max-age=864000, stale-while-revalidate=300, stale-if-error=600";if(s.length===1&&s[0]==="public")r="public, max-age=864000, stale-while-revalidate=300, stale-if-error=600";if(s.length===1&&s[0]==="private")r="private, max-age=0, stale-while-revalidate=300, stale-if-error=600";if(this.req.rawRequest.method==="GET")this.req.ctx().setHeaders("Cache-Control",r);return{}}}var VD={"Access-Control-Allow-Methods":"GET, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Requested-With","Access-Control-Allow-Credentials":"true"};class kP extends Ds{config={origins:{"":{"Access-Control-Allow-Methods":"GET, HEAD, POST, PUT, DELETE, OPTIONS","Access-Control-Allow-Headers":"Content-Type, Authorization, X-Requested-With","Access-Control-Allow-Credentials":"true"}}};run(){let s=this.req,i=s.rawRequest.headers.get("Origin");if(this.config.origins[i]){s.ctx().setHeaders("Access-Control-Allow-Origin",i);let a={...VD,...this.config.origins[i]};for(let[c,r]of Object.entries(a))s.ctx().setHeaders(c,r)}return{}}}class jd extends zc{service;static _name="RateLimiterServiceContainer";constructor(s){super();this.service=s}}class uP extends Ti{constructor(){super("Rate limit exceeded");this.payload={api:{status:429,data:{error:{message:"Rate limit exceeded"}},headers:{"Content-Type":"application/json"}},view:{error:{message:"Rate limit exceeded"},status:429}}}}class nP extends Ds{async run(s=1000){let i=this.req.headers.get("x-forwarded-for"),a=jd.use().service.driver;if(a.consume.call(a,i,this.req.routePath)>s)throw new uP;return{}}}class eP extends Ds{async run(){let s=this.req.cookies.get("csrf_token");if(!s)throw new Id;if(!["POST","PUT","PATCH","DELETE"].includes(this.req.rawRequest.method))return{};if(!Bun.CSRF.verify(s,{secret:process.env.SECRET}))throw new Id;return{}}}class Id extends Ti{constructor(){super("Invalid CSRF token");this.name="InvalidCSRFTokenError"}payload={api:{status:403,data:{error:"Invalid CSRF token"}},view:{}}}class sl{policiesList={};constructor(){let s=this.register();for(let i of s){let a=new i;this.policiesList[i.name]=a}}register(){return[]}}class il{all(s,i){return!0}}export{kc as O,bd as P,vd as Q,Ws as R,sa as S,Bs as T,aa as U,ar as V,Jd as W,Pl as X,ca as Y,Ds as Z,ll as _,_d as $,fi as aa,Rc as ba,RP as ca,VP as da,kP as ea,jd as fa,nP as ga,eP as ha,sl as ia,il as ja};
|
|
3
|
-
|
|
4
|
-
//# debugId=927E8523B705345E64756E2164756E21
|
package/dist/chunk-tatd75jn.js
DELETED
|
File without changes
|
|
File without changes
|