barejs 0.1.15 → 0.1.17
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/README.md +60 -107
- package/dist/index.js +4 -4
- package/dist/types/bare.d.ts +12 -11
- package/dist/types/context.d.ts +12 -17
- package/dist/types/cors.d.ts +1 -2
- package/dist/types/index.d.ts +3 -1
- package/dist/types/validators.d.ts +3 -4
- package/package.json +1 -1
- package/src/bare.ts +98 -98
- package/src/context.ts +34 -24
- package/src/index.ts +4 -1
package/README.md
CHANGED
|
@@ -1,38 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
1
3
|
# 🚀 BareJS
|
|
2
|
-
### The Ultra-Low Latency JIT Web Engine for Bun
|
|
3
4
|
|
|
4
|
-
|
|
5
|
+
### The Sub-Microsecond JIT Web Engine for Bun
|
|
6
|
+
|
|
7
|
+
BareJS is a minimalist, ultra-high-performance web engine architected for the **Bun** ecosystem. By combining **Just-In-Time (JIT) Route Compilation** with a **Zero-Allocation Circular Context Pool**, BareJS achieves latency levels previously thought impossible for JavaScript—frequently breaking the **600ns** barrier.
|
|
5
8
|
|
|
6
9
|
---
|
|
7
10
|
|
|
8
|
-
## 🏛 Architectural Engineering
|
|
11
|
+
## 🏛 Architectural Engineering: The "Nano-Core"
|
|
12
|
+
|
|
13
|
+
While other frameworks focus on features, BareJS focuses on **Mechanical Sympathy**—aligning software execution with how CPUs actually process data.
|
|
9
14
|
|
|
10
|
-
|
|
15
|
+
### 1. Zero-Allocation (Circular Context Pool)
|
|
11
16
|
|
|
12
|
-
|
|
17
|
+
Traditional frameworks create new objects for every request, triggering the Garbage Collector (GC). BareJS uses a pre-allocated pool of `Context` objects (default: 1024). When a request hits the server, the engine "resets" an existing object instead of creating a new one. **Result: Zero GC pressure.**
|
|
13
18
|
|
|
14
|
-
|
|
19
|
+
### 2. Double-Jump JIT Routing
|
|
15
20
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
3.
|
|
21
|
+
BareJS transforms your route definitions into a **Static Jump Table**. For static routes, lookup is —a direct property access on a V8/JSC object. For dynamic routes, regex patterns are pre-compiled and cached during the boot phase.
|
|
22
|
+
|
|
23
|
+
### 3. Pre-Compiled Onion Pipeline
|
|
24
|
+
|
|
25
|
+
Middleware chains are not evaluated at runtime. Instead, they are recursively "baked" into a single, flat execution function during the `.compile()` phase.
|
|
19
26
|
|
|
20
27
|
---
|
|
21
28
|
|
|
22
|
-
## 📊 Performance Benchmarks
|
|
29
|
+
## 📊 Performance Benchmarks (v0_fast_01)
|
|
23
30
|
|
|
24
|
-
Performance comparison
|
|
31
|
+
Performance comparison conducted on **Bun v1.3.5** (Windows x64 / AMD Ryzen).
|
|
25
32
|
|
|
26
33
|
### 🚀 Latest Benchmark Results
|
|
34
|
+
|
|
27
35
|
<!-- MARKER: PERFORMANCE_TABLE_START -->
|
|
28
|
-
|
|
36
|
+
|
|
29
37
|
| Framework | Latency | Speed |
|
|
30
38
|
| :--- | :--- | :--- |
|
|
31
|
-
| **BareJS** | **
|
|
32
|
-
| Elysia |
|
|
33
|
-
| Hono | 3.
|
|
39
|
+
| **BareJS** | **595.16 ns** | **Baseline** |
|
|
40
|
+
| Elysia | 1.84 µs | 3.10x slower |
|
|
41
|
+
| Hono | 3.55 µs | 5.96x slower |
|
|
34
42
|
|
|
35
|
-
> Last Updated: Tue, 06 Jan 2026
|
|
43
|
+
> Last Updated: Tue, 06 Jan 2026 16:03:09 GMT
|
|
36
44
|
|
|
37
45
|
<!-- MARKER: PERFORMANCE_TABLE_END -->
|
|
38
46
|
|
|
@@ -40,58 +48,20 @@ Performance comparison between **BareJS**, **Elysia**, and **Hono**.
|
|
|
40
48
|
|
|
41
49
|
---
|
|
42
50
|
|
|
43
|
-
##
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
bun add barejs
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## ⚡ Quick Start (All-in-One)
|
|
53
|
-
|
|
54
|
-
BareJS provides everything you need in a single entry point. No more messy imports.
|
|
51
|
+
## ⚡ Quick Start
|
|
55
52
|
|
|
56
53
|
```typescript
|
|
57
|
-
import {
|
|
58
|
-
BareJS,
|
|
59
|
-
typebox,
|
|
60
|
-
logger,
|
|
61
|
-
cors,
|
|
62
|
-
staticFile,
|
|
63
|
-
bareAuth,
|
|
64
|
-
type Context
|
|
65
|
-
} from 'barejs';
|
|
66
|
-
import * as TB from '@sinclair/typebox';
|
|
54
|
+
import { BareJS, type Context } from 'barejs';
|
|
67
55
|
|
|
68
56
|
const app = new BareJS();
|
|
69
57
|
|
|
70
|
-
//
|
|
71
|
-
app.
|
|
72
|
-
app.use(cors()); // Enable CORS for all origins
|
|
73
|
-
app.use(staticFile('public')); // Serve images/css from /public
|
|
74
|
-
|
|
75
|
-
// 2. Schema Validation (TypeBox)
|
|
76
|
-
const UserSchema = TB.Type.Object({
|
|
77
|
-
name: TB.Type.String(),
|
|
78
|
-
age: TB.Type.Number()
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
// 3. Protected Route with Native Auth (Bun.crypto)
|
|
82
|
-
app.get('/admin', bareAuth('MY_SECRET'), (ctx: Context) => {
|
|
83
|
-
return ctx.json({
|
|
84
|
-
message: "Welcome Admin",
|
|
85
|
-
user: ctx.get('user')
|
|
86
|
-
});
|
|
87
|
-
});
|
|
58
|
+
// High-speed static route
|
|
59
|
+
app.get('/', () => ({ status: 'optimal', latency: '< 600ns' }));
|
|
88
60
|
|
|
89
|
-
//
|
|
90
|
-
app.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
data: ctx.body
|
|
94
|
-
});
|
|
61
|
+
// Dynamic route with context pooling
|
|
62
|
+
app.get('/user/:id', (ctx: Context) => {
|
|
63
|
+
const id = ctx.params.id;
|
|
64
|
+
return { id, timestamp: Date.now() };
|
|
95
65
|
});
|
|
96
66
|
|
|
97
67
|
app.listen(3000);
|
|
@@ -100,55 +70,46 @@ app.listen(3000);
|
|
|
100
70
|
|
|
101
71
|
---
|
|
102
72
|
|
|
103
|
-
## 📖
|
|
104
|
-
|
|
105
|
-
### 1. Essential Middlewares
|
|
106
|
-
|
|
107
|
-
BareJS comes with built-in high-performance middlewares:
|
|
108
|
-
|
|
109
|
-
* **`logger`**: Prints colored logs with response time (ms).
|
|
110
|
-
* **`cors(options?)`**: Configurable CORS headers.
|
|
111
|
-
* **`staticFile(root)`**: High-speed static file serving using `Bun.file()` (Zero-copy).
|
|
73
|
+
## 📖 Feature Manual
|
|
112
74
|
|
|
113
|
-
###
|
|
75
|
+
### 🛡️ Native Authentication (`bareAuth`)
|
|
114
76
|
|
|
115
|
-
|
|
77
|
+
Uses **Bun.crypto** (HMAC-SHA256) for hardware-accelerated signing. Much faster than standard JWT libraries.
|
|
116
78
|
|
|
117
79
|
```typescript
|
|
118
80
|
import { bareAuth, createToken } from 'barejs';
|
|
119
81
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
// Protect routes
|
|
124
|
-
app.get('/secure', bareAuth('SECRET_KEY'), (ctx) => {
|
|
125
|
-
const user = ctx.get('user'); // Access decoded payload
|
|
126
|
-
return { hello: user.role };
|
|
82
|
+
app.get('/admin', bareAuth('MY_SECRET'), (ctx) => {
|
|
83
|
+
return { user: ctx.get('user') };
|
|
127
84
|
});
|
|
128
85
|
|
|
129
86
|
```
|
|
130
87
|
|
|
131
|
-
###
|
|
88
|
+
### 🧪 Schema Validation
|
|
132
89
|
|
|
133
|
-
|
|
90
|
+
BareJS supports JIT-compiled validation via **TypeBox**. This ensures that even with validation, your API remains significantly faster than rivals.
|
|
134
91
|
|
|
135
92
|
```typescript
|
|
136
|
-
import { typebox
|
|
93
|
+
import { typebox } from 'barejs';
|
|
94
|
+
import * as TB from '@sinclair/typebox';
|
|
95
|
+
|
|
96
|
+
const Schema = TB.Type.Object({
|
|
97
|
+
id: TB.Type.Number()
|
|
98
|
+
});
|
|
137
99
|
|
|
138
|
-
app.post('/
|
|
139
|
-
app.post('/zod', zod(ZodSchema), handler); // Industry Standard
|
|
140
|
-
app.post('/native', native(Schema), handler); // Zero dependencies
|
|
100
|
+
app.post('/data', typebox(Schema), (ctx) => ctx.body);
|
|
141
101
|
|
|
142
102
|
```
|
|
143
103
|
|
|
144
|
-
###
|
|
104
|
+
### 🛰️ WebSockets
|
|
145
105
|
|
|
146
|
-
BareJS
|
|
106
|
+
BareJS provides a native wrapper for Bun's high-speed WebSockets.
|
|
147
107
|
|
|
148
108
|
```typescript
|
|
149
|
-
app.
|
|
150
|
-
|
|
151
|
-
|
|
109
|
+
app.ws('/chat', {
|
|
110
|
+
message(ws, msg) {
|
|
111
|
+
ws.send(`Echo: ${msg}`);
|
|
112
|
+
}
|
|
152
113
|
});
|
|
153
114
|
|
|
154
115
|
```
|
|
@@ -157,23 +118,15 @@ app.get('/custom', (ctx) => {
|
|
|
157
118
|
|
|
158
119
|
## 🏗 Roadmap
|
|
159
120
|
|
|
160
|
-
* [x] **
|
|
161
|
-
* [x] **JIT Static
|
|
162
|
-
* [x] **Native Auth
|
|
163
|
-
* [x] **
|
|
164
|
-
* [
|
|
165
|
-
* [ ] **
|
|
166
|
-
* [ ] **Native Database Drivers**: Optimized Drizzle/Prisma integration.
|
|
121
|
+
* [x] **Zero-Allocation Context Pooling**
|
|
122
|
+
* [x] **JIT Static & Dynamic Routing**
|
|
123
|
+
* [x] **Native Auth (Bun.crypto)**
|
|
124
|
+
* [x] **WebSocket Support**
|
|
125
|
+
* [ ] **Auto-Generated Swagger/OpenAPI**
|
|
126
|
+
* [ ] **Buffer-Based Raw Responses** (Targeting 400ns)
|
|
167
127
|
|
|
168
128
|
---
|
|
169
129
|
|
|
170
|
-
|
|
130
|
+
**Maintained by [xarhang**](https://www.google.com/search?q=https://github.com/xarhang) **License: MIT**
|
|
171
131
|
|
|
172
|
-
|
|
173
|
-
* **[TypeBox](https://github.com/sinclairzx81/typebox)**: High-speed validation.
|
|
174
|
-
* **[Inspiration]**: Architectural patterns from **Koa** and **ElysiaJS**.
|
|
175
|
-
|
|
176
|
-
**Maintained by [xarhang**](https://www.google.com/search?q=https://github.com/xarhang)
|
|
177
|
-
**License: MIT**
|
|
178
|
-
|
|
179
|
-
---
|
|
132
|
+
---
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
var t8=Object.defineProperty;var g0=(Q,Y)=>{for(var X in Y)t8(Q,X,{get:Y[X],enumerable:!0,configurable:!0,set:(Z)=>Y[X]=()=>Z})};function u1(Q){return s(Q)&&globalThis.Symbol.asyncIterator in Q}function l1(Q){return s(Q)&&globalThis.Symbol.iterator in Q}function s1(Q){return Q instanceof globalThis.Promise}function F1(Q){return Q instanceof Date&&globalThis.Number.isFinite(Q.getTime())}function K1(Q){return Q instanceof globalThis.Uint8Array}function r1(Q,Y){return Y in Q}function s(Q){return Q!==null&&typeof Q==="object"}function V(Q){return globalThis.Array.isArray(Q)&&!globalThis.ArrayBuffer.isView(Q)}function v(Q){return Q===void 0}function D1(Q){return Q===null}function N1(Q){return typeof Q==="boolean"}function N(Q){return typeof Q==="number"}function a1(Q){return globalThis.Number.isInteger(Q)}function a(Q){return typeof Q==="bigint"}function f(Q){return typeof Q==="string"}function e1(Q){return typeof Q==="function"}function P1(Q){return typeof Q==="symbol"}function Q0(Q){return a(Q)||N1(Q)||D1(Q)||N(Q)||f(Q)||P1(Q)||v(Q)}var _;(function(Q){Q.InstanceMode="default",Q.ExactOptionalPropertyTypes=!1,Q.AllowArrayObject=!1,Q.AllowNaN=!1,Q.AllowNullVoid=!1;function Y(J,q){return Q.ExactOptionalPropertyTypes?q in J:J[q]!==void 0}Q.IsExactOptionalProperty=Y;function X(J){let q=s(J);return Q.AllowArrayObject?q:q&&!V(J)}Q.IsObjectLike=X;function Z(J){return X(J)&&!(J instanceof Date)&&!(J instanceof Uint8Array)}Q.IsRecordLike=Z;function G(J){return Q.AllowNaN?N(J):Number.isFinite(J)}Q.IsNumberLike=G;function W(J){let q=v(J);return Q.AllowNullVoid?q||J===null:q}Q.IsVoidLike=W})(_||(_={}));var Q1={};g0(Q1,{Set:()=>u8,Has:()=>c8,Get:()=>l8,Entries:()=>m8,Delete:()=>v8,Clear:()=>h8});var g1=new Map;function m8(){return new Map(g1)}function h8(){return g1.clear()}function v8(Q){return g1.delete(Q)}function c8(Q){return g1.has(Q)}function u8(Q,Y){g1.set(Q,Y)}function l8(Q){return g1.get(Q)}var r={};g0(r,{Set:()=>QQ,Has:()=>e8,Get:()=>XQ,Entries:()=>s8,Delete:()=>a8,Clear:()=>r8});var _1=new Map;function s8(){return new Map(_1)}function r8(){return _1.clear()}function a8(Q){return _1.delete(Q)}function e8(Q){return _1.has(Q)}function QQ(Q,Y){_1.set(Q,Y)}function XQ(Q){return _1.get(Q)}function X1(Q){return Array.isArray(Q)}function _0(Q){return typeof Q==="bigint"}function X0(Q){return typeof Q==="boolean"}function Y0(Q){return Q instanceof globalThis.Date}function A1(Q){return typeof Q==="number"}function I(Q){return typeof Q==="object"&&Q!==null}function Z0(Q){return Q instanceof globalThis.RegExp}function n(Q){return typeof Q==="string"}function G0(Q){return Q instanceof globalThis.Uint8Array}function $1(Q){return Q===void 0}function YQ(Q){return globalThis.Object.freeze(Q).map((Y)=>i1(Y))}function ZQ(Q){return Q}function GQ(Q){return Q}function WQ(Q){return Q}function zQ(Q){let Y={};for(let X of Object.getOwnPropertyNames(Q))Y[X]=i1(Q[X]);for(let X of Object.getOwnPropertySymbols(Q))Y[X]=i1(Q[X]);return globalThis.Object.freeze(Y)}function i1(Q){return X1(Q)?YQ(Q):Y0(Q)?ZQ(Q):G0(Q)?GQ(Q):Z0(Q)?WQ(Q):I(Q)?zQ(Q):Q}function $Q(Q){return Q.map((Y)=>z0(Y))}function JQ(Q){return new Date(Q.getTime())}function HQ(Q){return new Uint8Array(Q)}function qQ(Q){return new RegExp(Q.source,Q.flags)}function LQ(Q){let Y={};for(let X of Object.getOwnPropertyNames(Q))Y[X]=z0(Q[X]);for(let X of Object.getOwnPropertySymbols(Q))Y[X]=z0(Q[X]);return Y}function z0(Q){return X1(Q)?$Q(Q):Y0(Q)?JQ(Q):G0(Q)?HQ(Q):Z0(Q)?qQ(Q):I(Q)?LQ(Q):Q}function k0(Q){return z0(Q)}function t(Q,Y){let X=Y!==void 0?{...Y,...Q}:Q;switch(_.InstanceMode){case"freeze":return i1(X);case"clone":return k0(X);default:return X}}var B1=Symbol.for("TypeBox.Transform");var J1=Symbol.for("TypeBox.Optional");var j=Symbol.for("TypeBox.Kind");class T extends Error{constructor(Q){super(Q)}}function E0(Q){return t({[j]:"MappedResult",properties:Q})}function MQ(Q,Y){let{[Y]:X,...Z}=Q;return Z}function k1(Q,Y){return Y.reduce((X,Z)=>MQ(X,Z),Q)}function c(Q){return t({[j]:"Never",not:{}},Q)}function E1(Q){return I(Q)&&Q[J1]==="Optional"}function AQ(Q){return S(Q,"Any")}function BQ(Q){return S(Q,"Argument")}function y1(Q){return S(Q,"Array")}function wQ(Q){return S(Q,"AsyncIterator")}function jQ(Q){return S(Q,"BigInt")}function DQ(Q){return S(Q,"Boolean")}function NQ(Q){return S(Q,"Computed")}function PQ(Q){return S(Q,"Constructor")}function bQ(Q){return S(Q,"Date")}function SQ(Q){return S(Q,"Function")}function xQ(Q){return S(Q,"Integer")}function p1(Q){return S(Q,"Intersect")}function CQ(Q){return S(Q,"Iterator")}function S(Q,Y){return I(Q)&&j in Q&&Q[j]===Y}function OQ(Q){return S(Q,"Literal")}function V0(Q){return S(Q,"MappedKey")}function $0(Q){return S(Q,"MappedResult")}function J0(Q){return S(Q,"Never")}function FQ(Q){return S(Q,"Not")}function KQ(Q){return S(Q,"Null")}function gQ(Q){return S(Q,"Number")}function b1(Q){return S(Q,"Object")}function _Q(Q){return S(Q,"Promise")}function M0(Q){return S(Q,"Record")}function T0(Q){return S(Q,"Ref")}function kQ(Q){return S(Q,"RegExp")}function EQ(Q){return S(Q,"String")}function VQ(Q){return S(Q,"Symbol")}function TQ(Q){return S(Q,"TemplateLiteral")}function IQ(Q){return S(Q,"This")}function F(Q){return I(Q)&&B1 in Q}function o1(Q){return S(Q,"Tuple")}function n1(Q){return S(Q,"Undefined")}function t1(Q){return S(Q,"Union")}function dQ(Q){return S(Q,"Uint8Array")}function fQ(Q){return S(Q,"Unknown")}function iQ(Q){return S(Q,"Unsafe")}function yQ(Q){return S(Q,"Void")}function pQ(Q){return I(Q)&&j in Q&&n(Q[j])}function u(Q){return AQ(Q)||BQ(Q)||y1(Q)||DQ(Q)||jQ(Q)||wQ(Q)||NQ(Q)||PQ(Q)||bQ(Q)||SQ(Q)||xQ(Q)||p1(Q)||CQ(Q)||OQ(Q)||V0(Q)||$0(Q)||J0(Q)||FQ(Q)||KQ(Q)||gQ(Q)||b1(Q)||_Q(Q)||M0(Q)||T0(Q)||kQ(Q)||EQ(Q)||VQ(Q)||TQ(Q)||IQ(Q)||o1(Q)||n1(Q)||t1(Q)||dQ(Q)||fQ(Q)||iQ(Q)||yQ(Q)||pQ(Q)}function oQ(Q){return t(k1(Q,[J1]))}function nQ(Q){return t({...Q,[J1]:"Optional"})}function tQ(Q,Y){return Y===!1?oQ(Q):nQ(Q)}function V1(Q,Y){let X=Y??!0;return $0(Q)?I0(Q,X):tQ(Q,X)}function mQ(Q,Y){let X={};for(let Z of globalThis.Object.getOwnPropertyNames(Q))X[Z]=V1(Q[Z],Y);return X}function hQ(Q,Y){return mQ(Q.properties,Y)}function I0(Q,Y){let X=hQ(Q,Y);return E0(X)}function U0(Q,Y={}){let X=Q.every((G)=>b1(G)),Z=u(Y.unevaluatedProperties)?{unevaluatedProperties:Y.unevaluatedProperties}:{};return t(Y.unevaluatedProperties===!1||u(Y.unevaluatedProperties)||X?{...Z,[j]:"Intersect",type:"object",allOf:Q}:{...Z,[j]:"Intersect",allOf:Q},Y)}function vQ(Q){return Q.every((Y)=>E1(Y))}function cQ(Q){return k1(Q,[J1])}function d0(Q){return Q.map((Y)=>E1(Y)?cQ(Y):Y)}function uQ(Q,Y){return vQ(Q)?V1(U0(d0(Q),Y)):U0(d0(Q),Y)}function f0(Q,Y={}){if(Q.length===1)return t(Q[0],Y);if(Q.length===0)return c(Y);if(Q.some((X)=>F(X)))throw Error("Cannot intersect transform types");return uQ(Q,Y)}function R0(Q,Y){return t({[j]:"Union",anyOf:Q},Y)}function lQ(Q){return Q.some((Y)=>E1(Y))}function i0(Q){return Q.map((Y)=>E1(Y)?sQ(Y):Y)}function sQ(Q){return k1(Q,[J1])}function rQ(Q,Y){return lQ(Q)?V1(R0(i0(Q),Y)):R0(i0(Q),Y)}function A0(Q,Y){return Q.length===1?t(Q[0],Y):Q.length===0?c(Y):rQ(Q,Y)}function y0(Q,Y){return Q.map((X)=>p0(X,Y))}function aQ(Q){return Q.filter((Y)=>!J0(Y))}function eQ(Q,Y){return f0(aQ(y0(Q,Y)))}function QX(Q){return Q.some((Y)=>J0(Y))?[]:Q}function XX(Q,Y){return A0(QX(y0(Q,Y)))}function YX(Q,Y){return Y in Q?Q[Y]:Y==="[number]"?A0(Q):c()}function ZX(Q,Y){return Y==="[number]"?Q:c()}function GX(Q,Y){return Y in Q?Q[Y]:c()}function p0(Q,Y){return p1(Q)?eQ(Q.allOf,Y):t1(Q)?XX(Q.anyOf,Y):o1(Q)?YX(Q.items??[],Y):y1(Q)?ZX(Q.items,Y):b1(Q)?GX(Q.properties,Y):c()}function o0(Q,Y){return Y.map((X)=>p0(Q,X))}function WX(Q,Y){return Q.filter((X)=>Y.includes(X))}function zX(Q,Y){return Q.reduce((X,Z)=>{return WX(X,Z)},Y)}function n0(Q){return Q.length===1?Q[0]:Q.length>1?zX(Q.slice(1),Q[0]):[]}function t0(Q){let Y=[];for(let X of Q)Y.push(...X);return Y}function m0(...Q){let[Y,X]=typeof Q[0]==="string"?[Q[0],Q[1]]:[Q[0].$id,Q[1]];if(typeof Y!=="string")throw new T("Ref: $ref must be a string");return t({[j]:"Ref",$ref:Y},X)}function h0(Q){let Y=[];for(let X of Q)Y.push(w1(X));return Y}function $X(Q){let Y=h0(Q);return t0(Y)}function JX(Q){let Y=h0(Q);return n0(Y)}function HX(Q){return Q.map((Y,X)=>X.toString())}function qX(Q){return["[number]"]}function LX(Q){return globalThis.Object.getOwnPropertyNames(Q)}function MX(Q){if(!B0)return[];return globalThis.Object.getOwnPropertyNames(Q).map((X)=>{return X[0]==="^"&&X[X.length-1]==="$"?X.slice(1,X.length-1):X})}function w1(Q){return p1(Q)?$X(Q.allOf):t1(Q)?JX(Q.anyOf):o1(Q)?HX(Q.items??[]):y1(Q)?qX(Q.items):b1(Q)?LX(Q.properties):M0(Q)?MX(Q.patternProperties):[]}var B0=!1;function q1(Q){B0=!0;let Y=w1(Q);return B0=!1,`^(${Y.map((Z)=>`(${Z})`).join("|")})$`}function H0(Q){let Y=w1(Q),X=o0(Q,Y);return Y.map((Z,G)=>[Y[G],X[G]])}function UX(Q){return Q.allOf.every((Y)=>L1(Y))}function RX(Q){return Q.anyOf.some((Y)=>L1(Y))}function AX(Q){return!L1(Q.not)}function L1(Q){return Q[j]==="Intersect"?UX(Q):Q[j]==="Union"?RX(Q):Q[j]==="Not"?AX(Q):Q[j]==="Undefined"?!0:!1}function BX(Q){switch(Q.errorType){case H.ArrayContains:return"Expected array to contain at least one matching value";case H.ArrayMaxContains:return`Expected array to contain no more than ${Q.schema.maxContains} matching values`;case H.ArrayMinContains:return`Expected array to contain at least ${Q.schema.minContains} matching values`;case H.ArrayMaxItems:return`Expected array length to be less or equal to ${Q.schema.maxItems}`;case H.ArrayMinItems:return`Expected array length to be greater or equal to ${Q.schema.minItems}`;case H.ArrayUniqueItems:return"Expected array elements to be unique";case H.Array:return"Expected array";case H.AsyncIterator:return"Expected AsyncIterator";case H.BigIntExclusiveMaximum:return`Expected bigint to be less than ${Q.schema.exclusiveMaximum}`;case H.BigIntExclusiveMinimum:return`Expected bigint to be greater than ${Q.schema.exclusiveMinimum}`;case H.BigIntMaximum:return`Expected bigint to be less or equal to ${Q.schema.maximum}`;case H.BigIntMinimum:return`Expected bigint to be greater or equal to ${Q.schema.minimum}`;case H.BigIntMultipleOf:return`Expected bigint to be a multiple of ${Q.schema.multipleOf}`;case H.BigInt:return"Expected bigint";case H.Boolean:return"Expected boolean";case H.DateExclusiveMinimumTimestamp:return`Expected Date timestamp to be greater than ${Q.schema.exclusiveMinimumTimestamp}`;case H.DateExclusiveMaximumTimestamp:return`Expected Date timestamp to be less than ${Q.schema.exclusiveMaximumTimestamp}`;case H.DateMinimumTimestamp:return`Expected Date timestamp to be greater or equal to ${Q.schema.minimumTimestamp}`;case H.DateMaximumTimestamp:return`Expected Date timestamp to be less or equal to ${Q.schema.maximumTimestamp}`;case H.DateMultipleOfTimestamp:return`Expected Date timestamp to be a multiple of ${Q.schema.multipleOfTimestamp}`;case H.Date:return"Expected Date";case H.Function:return"Expected function";case H.IntegerExclusiveMaximum:return`Expected integer to be less than ${Q.schema.exclusiveMaximum}`;case H.IntegerExclusiveMinimum:return`Expected integer to be greater than ${Q.schema.exclusiveMinimum}`;case H.IntegerMaximum:return`Expected integer to be less or equal to ${Q.schema.maximum}`;case H.IntegerMinimum:return`Expected integer to be greater or equal to ${Q.schema.minimum}`;case H.IntegerMultipleOf:return`Expected integer to be a multiple of ${Q.schema.multipleOf}`;case H.Integer:return"Expected integer";case H.IntersectUnevaluatedProperties:return"Unexpected property";case H.Intersect:return"Expected all values to match";case H.Iterator:return"Expected Iterator";case H.Literal:return`Expected ${typeof Q.schema.const==="string"?`'${Q.schema.const}'`:Q.schema.const}`;case H.Never:return"Never";case H.Not:return"Value should not match";case H.Null:return"Expected null";case H.NumberExclusiveMaximum:return`Expected number to be less than ${Q.schema.exclusiveMaximum}`;case H.NumberExclusiveMinimum:return`Expected number to be greater than ${Q.schema.exclusiveMinimum}`;case H.NumberMaximum:return`Expected number to be less or equal to ${Q.schema.maximum}`;case H.NumberMinimum:return`Expected number to be greater or equal to ${Q.schema.minimum}`;case H.NumberMultipleOf:return`Expected number to be a multiple of ${Q.schema.multipleOf}`;case H.Number:return"Expected number";case H.Object:return"Expected object";case H.ObjectAdditionalProperties:return"Unexpected property";case H.ObjectMaxProperties:return`Expected object to have no more than ${Q.schema.maxProperties} properties`;case H.ObjectMinProperties:return`Expected object to have at least ${Q.schema.minProperties} properties`;case H.ObjectRequiredProperty:return"Expected required property";case H.Promise:return"Expected Promise";case H.RegExp:return"Expected string to match regular expression";case H.StringFormatUnknown:return`Unknown format '${Q.schema.format}'`;case H.StringFormat:return`Expected string to match '${Q.schema.format}' format`;case H.StringMaxLength:return`Expected string length less or equal to ${Q.schema.maxLength}`;case H.StringMinLength:return`Expected string length greater or equal to ${Q.schema.minLength}`;case H.StringPattern:return`Expected string to match '${Q.schema.pattern}'`;case H.String:return"Expected string";case H.Symbol:return"Expected symbol";case H.TupleLength:return`Expected tuple to have ${Q.schema.maxItems||0} elements`;case H.Tuple:return"Expected tuple";case H.Uint8ArrayMaxByteLength:return`Expected byte length less or equal to ${Q.schema.maxByteLength}`;case H.Uint8ArrayMinByteLength:return`Expected byte length greater or equal to ${Q.schema.minByteLength}`;case H.Uint8Array:return"Expected Uint8Array";case H.Undefined:return"Expected undefined";case H.Union:return"Expected union value";case H.Void:return"Expected void";case H.Kind:return`Expected kind '${Q.schema[j]}'`;default:return"Unknown error type"}}var wX=BX;function v0(){return wX}class c0 extends T{constructor(Q){super(`Unable to dereference schema with $id '${Q.$ref}'`);this.schema=Q}}function jX(Q,Y){let X=Y.find((Z)=>Z.$id===Q.$ref);if(X===void 0)throw new c0(Q);return i(X,Y)}function j1(Q,Y){if(!f(Q.$id)||Y.some((X)=>X.$id===Q.$id))return Y;return Y.push(Q),Y}function i(Q,Y){return Q[j]==="This"||Q[j]==="Ref"?jX(Q,Y):Q}class u0 extends T{constructor(Q){super("Unable to hash value");this.value=Q}}var e;(function(Q){Q[Q.Undefined=0]="Undefined",Q[Q.Null=1]="Null",Q[Q.Boolean=2]="Boolean",Q[Q.Number=3]="Number",Q[Q.String=4]="String",Q[Q.Object=5]="Object",Q[Q.Array=6]="Array",Q[Q.Date=7]="Date",Q[Q.Uint8Array=8]="Uint8Array",Q[Q.Symbol=9]="Symbol",Q[Q.BigInt=10]="BigInt"})(e||(e={}));var T1=BigInt("14695981039346656037"),[DX,NX]=[BigInt("1099511628211"),BigInt("18446744073709551616")],PX=Array.from({length:256}).map((Q,Y)=>BigInt(Y)),l0=new Float64Array(1),s0=new DataView(l0.buffer),r0=new Uint8Array(l0.buffer);function*bX(Q){let Y=Q===0?1:Math.ceil(Math.floor(Math.log2(Q)+1)/8);for(let X=0;X<Y;X++)yield Q>>8*(Y-1-X)&255}function SX(Q){h(e.Array);for(let Y of Q)I1(Y)}function xX(Q){h(e.Boolean),h(Q?1:0)}function CX(Q){h(e.BigInt),s0.setBigInt64(0,Q);for(let Y of r0)h(Y)}function OX(Q){h(e.Date),I1(Q.getTime())}function FX(Q){h(e.Null)}function KX(Q){h(e.Number),s0.setFloat64(0,Q);for(let Y of r0)h(Y)}function gX(Q){h(e.Object);for(let Y of globalThis.Object.getOwnPropertyNames(Q).sort())I1(Y),I1(Q[Y])}function _X(Q){h(e.String);for(let Y=0;Y<Q.length;Y++)for(let X of bX(Q.charCodeAt(Y)))h(X)}function kX(Q){h(e.Symbol),I1(Q.description)}function EX(Q){h(e.Uint8Array);for(let Y=0;Y<Q.length;Y++)h(Q[Y])}function VX(Q){return h(e.Undefined)}function I1(Q){if(V(Q))return SX(Q);if(N1(Q))return xX(Q);if(a(Q))return CX(Q);if(F1(Q))return OX(Q);if(D1(Q))return FX(Q);if(N(Q))return KX(Q);if(s(Q))return gX(Q);if(f(Q))return _X(Q);if(P1(Q))return kX(Q);if(K1(Q))return EX(Q);if(v(Q))return VX(Q);throw new u0(Q)}function h(Q){T1=T1^PX[Q],T1=T1*DX%NX}function d1(Q){return T1=BigInt("14695981039346656037"),I1(Q),T1}var TX=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"];function a0(Q){try{return new RegExp(Q),!0}catch{return!1}}function w0(Q){if(!n(Q))return!1;for(let Y=0;Y<Q.length;Y++){let X=Q.charCodeAt(Y);if(X>=7&&X<=13||X===27||X===127)return!1}return!0}function e0(Q){return j0(Q)||k(Q)}function m1(Q){return $1(Q)||_0(Q)}function K(Q){return $1(Q)||A1(Q)}function j0(Q){return $1(Q)||X0(Q)}function C(Q){return $1(Q)||n(Q)}function IX(Q){return $1(Q)||n(Q)&&w0(Q)&&a0(Q)}function dX(Q){return $1(Q)||n(Q)&&w0(Q)}function Q8(Q){return $1(Q)||k(Q)}function fX(Q){return x(Q,"Any")&&C(Q.$id)}function iX(Q){return x(Q,"Argument")&&A1(Q.index)}function yX(Q){return x(Q,"Array")&&Q.type==="array"&&C(Q.$id)&&k(Q.items)&&K(Q.minItems)&&K(Q.maxItems)&&j0(Q.uniqueItems)&&Q8(Q.contains)&&K(Q.minContains)&&K(Q.maxContains)}function pX(Q){return x(Q,"AsyncIterator")&&Q.type==="AsyncIterator"&&C(Q.$id)&&k(Q.items)}function oX(Q){return x(Q,"BigInt")&&Q.type==="bigint"&&C(Q.$id)&&m1(Q.exclusiveMaximum)&&m1(Q.exclusiveMinimum)&&m1(Q.maximum)&&m1(Q.minimum)&&m1(Q.multipleOf)}function nX(Q){return x(Q,"Boolean")&&Q.type==="boolean"&&C(Q.$id)}function tX(Q){return x(Q,"Computed")&&n(Q.target)&&X1(Q.parameters)&&Q.parameters.every((Y)=>k(Y))}function mX(Q){return x(Q,"Constructor")&&Q.type==="Constructor"&&C(Q.$id)&&X1(Q.parameters)&&Q.parameters.every((Y)=>k(Y))&&k(Q.returns)}function hX(Q){return x(Q,"Date")&&Q.type==="Date"&&C(Q.$id)&&K(Q.exclusiveMaximumTimestamp)&&K(Q.exclusiveMinimumTimestamp)&&K(Q.maximumTimestamp)&&K(Q.minimumTimestamp)&&K(Q.multipleOfTimestamp)}function vX(Q){return x(Q,"Function")&&Q.type==="Function"&&C(Q.$id)&&X1(Q.parameters)&&Q.parameters.every((Y)=>k(Y))&&k(Q.returns)}function cX(Q){return x(Q,"Integer")&&Q.type==="integer"&&C(Q.$id)&&K(Q.exclusiveMaximum)&&K(Q.exclusiveMinimum)&&K(Q.maximum)&&K(Q.minimum)&&K(Q.multipleOf)}function X8(Q){return I(Q)&&Object.entries(Q).every(([Y,X])=>w0(Y)&&k(X))}function uX(Q){return x(Q,"Intersect")&&(n(Q.type)&&Q.type!=="object"?!1:!0)&&X1(Q.allOf)&&Q.allOf.every((Y)=>k(Y)&&!UY(Y))&&C(Q.type)&&(j0(Q.unevaluatedProperties)||Q8(Q.unevaluatedProperties))&&C(Q.$id)}function lX(Q){return x(Q,"Iterator")&&Q.type==="Iterator"&&C(Q.$id)&&k(Q.items)}function x(Q,Y){return I(Q)&&j in Q&&Q[j]===Y}function sX(Q){return x(Q,"Literal")&&C(Q.$id)&&rX(Q.const)}function rX(Q){return X0(Q)||A1(Q)||n(Q)}function aX(Q){return x(Q,"MappedKey")&&X1(Q.keys)&&Q.keys.every((Y)=>A1(Y)||n(Y))}function eX(Q){return x(Q,"MappedResult")&&X8(Q.properties)}function QY(Q){return x(Q,"Never")&&I(Q.not)&&Object.getOwnPropertyNames(Q.not).length===0}function XY(Q){return x(Q,"Not")&&k(Q.not)}function YY(Q){return x(Q,"Null")&&Q.type==="null"&&C(Q.$id)}function ZY(Q){return x(Q,"Number")&&Q.type==="number"&&C(Q.$id)&&K(Q.exclusiveMaximum)&&K(Q.exclusiveMinimum)&&K(Q.maximum)&&K(Q.minimum)&&K(Q.multipleOf)}function GY(Q){return x(Q,"Object")&&Q.type==="object"&&C(Q.$id)&&X8(Q.properties)&&e0(Q.additionalProperties)&&K(Q.minProperties)&&K(Q.maxProperties)}function WY(Q){return x(Q,"Promise")&&Q.type==="Promise"&&C(Q.$id)&&k(Q.item)}function zY(Q){return x(Q,"Record")&&Q.type==="object"&&C(Q.$id)&&e0(Q.additionalProperties)&&I(Q.patternProperties)&&((Y)=>{let X=Object.getOwnPropertyNames(Y.patternProperties);return X.length===1&&a0(X[0])&&I(Y.patternProperties)&&k(Y.patternProperties[X[0]])})(Q)}function $Y(Q){return x(Q,"Ref")&&C(Q.$id)&&n(Q.$ref)}function JY(Q){return x(Q,"RegExp")&&C(Q.$id)&&n(Q.source)&&n(Q.flags)&&K(Q.maxLength)&&K(Q.minLength)}function HY(Q){return x(Q,"String")&&Q.type==="string"&&C(Q.$id)&&K(Q.minLength)&&K(Q.maxLength)&&IX(Q.pattern)&&dX(Q.format)}function qY(Q){return x(Q,"Symbol")&&Q.type==="symbol"&&C(Q.$id)}function LY(Q){return x(Q,"TemplateLiteral")&&Q.type==="string"&&n(Q.pattern)&&Q.pattern[0]==="^"&&Q.pattern[Q.pattern.length-1]==="$"}function MY(Q){return x(Q,"This")&&C(Q.$id)&&n(Q.$ref)}function UY(Q){return I(Q)&&B1 in Q}function RY(Q){return x(Q,"Tuple")&&Q.type==="array"&&C(Q.$id)&&A1(Q.minItems)&&A1(Q.maxItems)&&Q.minItems===Q.maxItems&&($1(Q.items)&&$1(Q.additionalItems)&&Q.minItems===0||X1(Q.items)&&Q.items.every((Y)=>k(Y)))}function AY(Q){return x(Q,"Undefined")&&Q.type==="undefined"&&C(Q.$id)}function BY(Q){return x(Q,"Union")&&C(Q.$id)&&I(Q)&&X1(Q.anyOf)&&Q.anyOf.every((Y)=>k(Y))}function wY(Q){return x(Q,"Uint8Array")&&Q.type==="Uint8Array"&&C(Q.$id)&&K(Q.minByteLength)&&K(Q.maxByteLength)}function jY(Q){return x(Q,"Unknown")&&C(Q.$id)}function DY(Q){return x(Q,"Unsafe")}function NY(Q){return x(Q,"Void")&&Q.type==="void"&&C(Q.$id)}function PY(Q){return I(Q)&&j in Q&&n(Q[j])&&!TX.includes(Q[j])}function k(Q){return I(Q)&&(fX(Q)||iX(Q)||yX(Q)||nX(Q)||oX(Q)||pX(Q)||tX(Q)||mX(Q)||hX(Q)||vX(Q)||cX(Q)||uX(Q)||lX(Q)||sX(Q)||aX(Q)||eX(Q)||QY(Q)||XY(Q)||YY(Q)||ZY(Q)||GY(Q)||WY(Q)||zY(Q)||$Y(Q)||JY(Q)||HY(Q)||qY(Q)||LY(Q)||MY(Q)||RY(Q)||AY(Q)||BY(Q)||wY(Q)||jY(Q)||DY(Q)||NY(Q)||PY(Q))}class Y8 extends T{constructor(Q){super("Unknown type");this.schema=Q}}function bY(Q){return Q[j]==="Any"||Q[j]==="Unknown"}function P(Q){return Q!==void 0}function SY(Q,Y,X){return!0}function xY(Q,Y,X){return!0}function CY(Q,Y,X){if(!V(X))return!1;if(P(Q.minItems)&&!(X.length>=Q.minItems))return!1;if(P(Q.maxItems)&&!(X.length<=Q.maxItems))return!1;if(!X.every((W)=>y(Q.items,Y,W)))return!1;if(Q.uniqueItems===!0&&!function(){let W=new Set;for(let J of X){let q=d1(J);if(W.has(q))return!1;else W.add(q)}return!0}())return!1;if(!(P(Q.contains)||N(Q.minContains)||N(Q.maxContains)))return!0;let Z=P(Q.contains)?Q.contains:c(),G=X.reduce((W,J)=>y(Z,Y,J)?W+1:W,0);if(G===0)return!1;if(N(Q.minContains)&&G<Q.minContains)return!1;if(N(Q.maxContains)&&G>Q.maxContains)return!1;return!0}function OY(Q,Y,X){return u1(X)}function FY(Q,Y,X){if(!a(X))return!1;if(P(Q.exclusiveMaximum)&&!(X<Q.exclusiveMaximum))return!1;if(P(Q.exclusiveMinimum)&&!(X>Q.exclusiveMinimum))return!1;if(P(Q.maximum)&&!(X<=Q.maximum))return!1;if(P(Q.minimum)&&!(X>=Q.minimum))return!1;if(P(Q.multipleOf)&&X%Q.multipleOf!==BigInt(0))return!1;return!0}function KY(Q,Y,X){return N1(X)}function gY(Q,Y,X){return y(Q.returns,Y,X.prototype)}function _Y(Q,Y,X){if(!F1(X))return!1;if(P(Q.exclusiveMaximumTimestamp)&&!(X.getTime()<Q.exclusiveMaximumTimestamp))return!1;if(P(Q.exclusiveMinimumTimestamp)&&!(X.getTime()>Q.exclusiveMinimumTimestamp))return!1;if(P(Q.maximumTimestamp)&&!(X.getTime()<=Q.maximumTimestamp))return!1;if(P(Q.minimumTimestamp)&&!(X.getTime()>=Q.minimumTimestamp))return!1;if(P(Q.multipleOfTimestamp)&&X.getTime()%Q.multipleOfTimestamp!==0)return!1;return!0}function kY(Q,Y,X){return e1(X)}function EY(Q,Y,X){let Z=globalThis.Object.values(Q.$defs),G=Q.$defs[Q.$ref];return y(G,[...Y,...Z],X)}function VY(Q,Y,X){if(!a1(X))return!1;if(P(Q.exclusiveMaximum)&&!(X<Q.exclusiveMaximum))return!1;if(P(Q.exclusiveMinimum)&&!(X>Q.exclusiveMinimum))return!1;if(P(Q.maximum)&&!(X<=Q.maximum))return!1;if(P(Q.minimum)&&!(X>=Q.minimum))return!1;if(P(Q.multipleOf)&&X%Q.multipleOf!==0)return!1;return!0}function TY(Q,Y,X){let Z=Q.allOf.every((G)=>y(G,Y,X));if(Q.unevaluatedProperties===!1){let G=new RegExp(q1(Q)),W=Object.getOwnPropertyNames(X).every((J)=>G.test(J));return Z&&W}else if(u(Q.unevaluatedProperties)){let G=new RegExp(q1(Q)),W=Object.getOwnPropertyNames(X).every((J)=>G.test(J)||y(Q.unevaluatedProperties,Y,X[J]));return Z&&W}else return Z}function IY(Q,Y,X){return l1(X)}function dY(Q,Y,X){return X===Q.const}function fY(Q,Y,X){return!1}function iY(Q,Y,X){return!y(Q.not,Y,X)}function yY(Q,Y,X){return D1(X)}function pY(Q,Y,X){if(!_.IsNumberLike(X))return!1;if(P(Q.exclusiveMaximum)&&!(X<Q.exclusiveMaximum))return!1;if(P(Q.exclusiveMinimum)&&!(X>Q.exclusiveMinimum))return!1;if(P(Q.minimum)&&!(X>=Q.minimum))return!1;if(P(Q.maximum)&&!(X<=Q.maximum))return!1;if(P(Q.multipleOf)&&X%Q.multipleOf!==0)return!1;return!0}function oY(Q,Y,X){if(!_.IsObjectLike(X))return!1;if(P(Q.minProperties)&&!(Object.getOwnPropertyNames(X).length>=Q.minProperties))return!1;if(P(Q.maxProperties)&&!(Object.getOwnPropertyNames(X).length<=Q.maxProperties))return!1;let Z=Object.getOwnPropertyNames(Q.properties);for(let G of Z){let W=Q.properties[G];if(Q.required&&Q.required.includes(G)){if(!y(W,Y,X[G]))return!1;if((L1(W)||bY(W))&&!(G in X))return!1}else if(_.IsExactOptionalProperty(X,G)&&!y(W,Y,X[G]))return!1}if(Q.additionalProperties===!1){let G=Object.getOwnPropertyNames(X);if(Q.required&&Q.required.length===Z.length&&G.length===Z.length)return!0;else return G.every((W)=>Z.includes(W))}else if(typeof Q.additionalProperties==="object")return Object.getOwnPropertyNames(X).every((W)=>Z.includes(W)||y(Q.additionalProperties,Y,X[W]));else return!0}function nY(Q,Y,X){return s1(X)}function tY(Q,Y,X){if(!_.IsRecordLike(X))return!1;if(P(Q.minProperties)&&!(Object.getOwnPropertyNames(X).length>=Q.minProperties))return!1;if(P(Q.maxProperties)&&!(Object.getOwnPropertyNames(X).length<=Q.maxProperties))return!1;let[Z,G]=Object.entries(Q.patternProperties)[0],W=new RegExp(Z),J=Object.entries(X).every(([w,B])=>{return W.test(w)?y(G,Y,B):!0}),q=typeof Q.additionalProperties==="object"?Object.entries(X).every(([w,B])=>{return!W.test(w)?y(Q.additionalProperties,Y,B):!0}):!0,A=Q.additionalProperties===!1?Object.getOwnPropertyNames(X).every((w)=>{return W.test(w)}):!0;return J&&q&&A}function mY(Q,Y,X){return y(i(Q,Y),Y,X)}function hY(Q,Y,X){let Z=new RegExp(Q.source,Q.flags);if(P(Q.minLength)){if(!(X.length>=Q.minLength))return!1}if(P(Q.maxLength)){if(!(X.length<=Q.maxLength))return!1}return Z.test(X)}function vY(Q,Y,X){if(!f(X))return!1;if(P(Q.minLength)){if(!(X.length>=Q.minLength))return!1}if(P(Q.maxLength)){if(!(X.length<=Q.maxLength))return!1}if(P(Q.pattern)){if(!new RegExp(Q.pattern).test(X))return!1}if(P(Q.format)){if(!Q1.Has(Q.format))return!1;return Q1.Get(Q.format)(X)}return!0}function cY(Q,Y,X){return P1(X)}function uY(Q,Y,X){return f(X)&&new RegExp(Q.pattern).test(X)}function lY(Q,Y,X){return y(i(Q,Y),Y,X)}function sY(Q,Y,X){if(!V(X))return!1;if(Q.items===void 0&&X.length!==0)return!1;if(X.length!==Q.maxItems)return!1;if(!Q.items)return!0;for(let Z=0;Z<Q.items.length;Z++)if(!y(Q.items[Z],Y,X[Z]))return!1;return!0}function rY(Q,Y,X){return v(X)}function aY(Q,Y,X){return Q.anyOf.some((Z)=>y(Z,Y,X))}function eY(Q,Y,X){if(!K1(X))return!1;if(P(Q.maxByteLength)&&!(X.length<=Q.maxByteLength))return!1;if(P(Q.minByteLength)&&!(X.length>=Q.minByteLength))return!1;return!0}function Q4(Q,Y,X){return!0}function X4(Q,Y,X){return _.IsVoidLike(X)}function Y4(Q,Y,X){if(!r.Has(Q[j]))return!1;return r.Get(Q[j])(Q,X)}function y(Q,Y,X){let Z=P(Q.$id)?j1(Q,Y):Y,G=Q;switch(G[j]){case"Any":return SY(G,Z,X);case"Argument":return xY(G,Z,X);case"Array":return CY(G,Z,X);case"AsyncIterator":return OY(G,Z,X);case"BigInt":return FY(G,Z,X);case"Boolean":return KY(G,Z,X);case"Constructor":return gY(G,Z,X);case"Date":return _Y(G,Z,X);case"Function":return kY(G,Z,X);case"Import":return EY(G,Z,X);case"Integer":return VY(G,Z,X);case"Intersect":return TY(G,Z,X);case"Iterator":return IY(G,Z,X);case"Literal":return dY(G,Z,X);case"Never":return fY(G,Z,X);case"Not":return iY(G,Z,X);case"Null":return yY(G,Z,X);case"Number":return pY(G,Z,X);case"Object":return oY(G,Z,X);case"Promise":return nY(G,Z,X);case"Record":return tY(G,Z,X);case"Ref":return mY(G,Z,X);case"RegExp":return hY(G,Z,X);case"String":return vY(G,Z,X);case"Symbol":return cY(G,Z,X);case"TemplateLiteral":return uY(G,Z,X);case"This":return lY(G,Z,X);case"Tuple":return sY(G,Z,X);case"Undefined":return rY(G,Z,X);case"Union":return aY(G,Z,X);case"Uint8Array":return eY(G,Z,X);case"Unknown":return Q4(G,Z,X);case"Void":return X4(G,Z,X);default:if(!r.Has(G[j]))throw new Y8(G);return Y4(G,Z,X)}}function S1(...Q){return Q.length===3?y(Q[0],Q[1],Q[2]):y(Q[0],[],Q[1])}var H;(function(Q){Q[Q.ArrayContains=0]="ArrayContains",Q[Q.ArrayMaxContains=1]="ArrayMaxContains",Q[Q.ArrayMaxItems=2]="ArrayMaxItems",Q[Q.ArrayMinContains=3]="ArrayMinContains",Q[Q.ArrayMinItems=4]="ArrayMinItems",Q[Q.ArrayUniqueItems=5]="ArrayUniqueItems",Q[Q.Array=6]="Array",Q[Q.AsyncIterator=7]="AsyncIterator",Q[Q.BigIntExclusiveMaximum=8]="BigIntExclusiveMaximum",Q[Q.BigIntExclusiveMinimum=9]="BigIntExclusiveMinimum",Q[Q.BigIntMaximum=10]="BigIntMaximum",Q[Q.BigIntMinimum=11]="BigIntMinimum",Q[Q.BigIntMultipleOf=12]="BigIntMultipleOf",Q[Q.BigInt=13]="BigInt",Q[Q.Boolean=14]="Boolean",Q[Q.DateExclusiveMaximumTimestamp=15]="DateExclusiveMaximumTimestamp",Q[Q.DateExclusiveMinimumTimestamp=16]="DateExclusiveMinimumTimestamp",Q[Q.DateMaximumTimestamp=17]="DateMaximumTimestamp",Q[Q.DateMinimumTimestamp=18]="DateMinimumTimestamp",Q[Q.DateMultipleOfTimestamp=19]="DateMultipleOfTimestamp",Q[Q.Date=20]="Date",Q[Q.Function=21]="Function",Q[Q.IntegerExclusiveMaximum=22]="IntegerExclusiveMaximum",Q[Q.IntegerExclusiveMinimum=23]="IntegerExclusiveMinimum",Q[Q.IntegerMaximum=24]="IntegerMaximum",Q[Q.IntegerMinimum=25]="IntegerMinimum",Q[Q.IntegerMultipleOf=26]="IntegerMultipleOf",Q[Q.Integer=27]="Integer",Q[Q.IntersectUnevaluatedProperties=28]="IntersectUnevaluatedProperties",Q[Q.Intersect=29]="Intersect",Q[Q.Iterator=30]="Iterator",Q[Q.Kind=31]="Kind",Q[Q.Literal=32]="Literal",Q[Q.Never=33]="Never",Q[Q.Not=34]="Not",Q[Q.Null=35]="Null",Q[Q.NumberExclusiveMaximum=36]="NumberExclusiveMaximum",Q[Q.NumberExclusiveMinimum=37]="NumberExclusiveMinimum",Q[Q.NumberMaximum=38]="NumberMaximum",Q[Q.NumberMinimum=39]="NumberMinimum",Q[Q.NumberMultipleOf=40]="NumberMultipleOf",Q[Q.Number=41]="Number",Q[Q.ObjectAdditionalProperties=42]="ObjectAdditionalProperties",Q[Q.ObjectMaxProperties=43]="ObjectMaxProperties",Q[Q.ObjectMinProperties=44]="ObjectMinProperties",Q[Q.ObjectRequiredProperty=45]="ObjectRequiredProperty",Q[Q.Object=46]="Object",Q[Q.Promise=47]="Promise",Q[Q.RegExp=48]="RegExp",Q[Q.StringFormatUnknown=49]="StringFormatUnknown",Q[Q.StringFormat=50]="StringFormat",Q[Q.StringMaxLength=51]="StringMaxLength",Q[Q.StringMinLength=52]="StringMinLength",Q[Q.StringPattern=53]="StringPattern",Q[Q.String=54]="String",Q[Q.Symbol=55]="Symbol",Q[Q.TupleLength=56]="TupleLength",Q[Q.Tuple=57]="Tuple",Q[Q.Uint8ArrayMaxByteLength=58]="Uint8ArrayMaxByteLength",Q[Q.Uint8ArrayMinByteLength=59]="Uint8ArrayMinByteLength",Q[Q.Uint8Array=60]="Uint8Array",Q[Q.Undefined=61]="Undefined",Q[Q.Union=62]="Union",Q[Q.Void=63]="Void"})(H||(H={}));class Z8 extends T{constructor(Q){super("Unknown type");this.schema=Q}}function M1(Q){return Q.replace(/~/g,"~0").replace(/\//g,"~1")}function b(Q){return Q!==void 0}class D0{constructor(Q){this.iterator=Q}[Symbol.iterator](){return this.iterator}First(){let Q=this.iterator.next();return Q.done?void 0:Q.value}}function L(Q,Y,X,Z,G=[]){return{type:Q,schema:Y,path:X,value:Z,message:v0()({errorType:Q,path:X,schema:Y,value:Z,errors:G}),errors:G}}function*Z4(Q,Y,X,Z){}function*G4(Q,Y,X,Z){}function*W4(Q,Y,X,Z){if(!V(Z))return yield L(H.Array,Q,X,Z);if(b(Q.minItems)&&!(Z.length>=Q.minItems))yield L(H.ArrayMinItems,Q,X,Z);if(b(Q.maxItems)&&!(Z.length<=Q.maxItems))yield L(H.ArrayMaxItems,Q,X,Z);for(let J=0;J<Z.length;J++)yield*p(Q.items,Y,`${X}/${J}`,Z[J]);if(Q.uniqueItems===!0&&!function(){let J=new Set;for(let q of Z){let A=d1(q);if(J.has(A))return!1;else J.add(A)}return!0}())yield L(H.ArrayUniqueItems,Q,X,Z);if(!(b(Q.contains)||b(Q.minContains)||b(Q.maxContains)))return;let G=b(Q.contains)?Q.contains:c(),W=Z.reduce((J,q,A)=>p(G,Y,`${X}${A}`,q).next().done===!0?J+1:J,0);if(W===0)yield L(H.ArrayContains,Q,X,Z);if(N(Q.minContains)&&W<Q.minContains)yield L(H.ArrayMinContains,Q,X,Z);if(N(Q.maxContains)&&W>Q.maxContains)yield L(H.ArrayMaxContains,Q,X,Z)}function*z4(Q,Y,X,Z){if(!u1(Z))yield L(H.AsyncIterator,Q,X,Z)}function*$4(Q,Y,X,Z){if(!a(Z))return yield L(H.BigInt,Q,X,Z);if(b(Q.exclusiveMaximum)&&!(Z<Q.exclusiveMaximum))yield L(H.BigIntExclusiveMaximum,Q,X,Z);if(b(Q.exclusiveMinimum)&&!(Z>Q.exclusiveMinimum))yield L(H.BigIntExclusiveMinimum,Q,X,Z);if(b(Q.maximum)&&!(Z<=Q.maximum))yield L(H.BigIntMaximum,Q,X,Z);if(b(Q.minimum)&&!(Z>=Q.minimum))yield L(H.BigIntMinimum,Q,X,Z);if(b(Q.multipleOf)&&Z%Q.multipleOf!==BigInt(0))yield L(H.BigIntMultipleOf,Q,X,Z)}function*J4(Q,Y,X,Z){if(!N1(Z))yield L(H.Boolean,Q,X,Z)}function*H4(Q,Y,X,Z){yield*p(Q.returns,Y,X,Z.prototype)}function*q4(Q,Y,X,Z){if(!F1(Z))return yield L(H.Date,Q,X,Z);if(b(Q.exclusiveMaximumTimestamp)&&!(Z.getTime()<Q.exclusiveMaximumTimestamp))yield L(H.DateExclusiveMaximumTimestamp,Q,X,Z);if(b(Q.exclusiveMinimumTimestamp)&&!(Z.getTime()>Q.exclusiveMinimumTimestamp))yield L(H.DateExclusiveMinimumTimestamp,Q,X,Z);if(b(Q.maximumTimestamp)&&!(Z.getTime()<=Q.maximumTimestamp))yield L(H.DateMaximumTimestamp,Q,X,Z);if(b(Q.minimumTimestamp)&&!(Z.getTime()>=Q.minimumTimestamp))yield L(H.DateMinimumTimestamp,Q,X,Z);if(b(Q.multipleOfTimestamp)&&Z.getTime()%Q.multipleOfTimestamp!==0)yield L(H.DateMultipleOfTimestamp,Q,X,Z)}function*L4(Q,Y,X,Z){if(!e1(Z))yield L(H.Function,Q,X,Z)}function*M4(Q,Y,X,Z){let G=globalThis.Object.values(Q.$defs),W=Q.$defs[Q.$ref];yield*p(W,[...Y,...G],X,Z)}function*U4(Q,Y,X,Z){if(!a1(Z))return yield L(H.Integer,Q,X,Z);if(b(Q.exclusiveMaximum)&&!(Z<Q.exclusiveMaximum))yield L(H.IntegerExclusiveMaximum,Q,X,Z);if(b(Q.exclusiveMinimum)&&!(Z>Q.exclusiveMinimum))yield L(H.IntegerExclusiveMinimum,Q,X,Z);if(b(Q.maximum)&&!(Z<=Q.maximum))yield L(H.IntegerMaximum,Q,X,Z);if(b(Q.minimum)&&!(Z>=Q.minimum))yield L(H.IntegerMinimum,Q,X,Z);if(b(Q.multipleOf)&&Z%Q.multipleOf!==0)yield L(H.IntegerMultipleOf,Q,X,Z)}function*R4(Q,Y,X,Z){let G=!1;for(let W of Q.allOf)for(let J of p(W,Y,X,Z))G=!0,yield J;if(G)return yield L(H.Intersect,Q,X,Z);if(Q.unevaluatedProperties===!1){let W=new RegExp(q1(Q));for(let J of Object.getOwnPropertyNames(Z))if(!W.test(J))yield L(H.IntersectUnevaluatedProperties,Q,`${X}/${J}`,Z)}if(typeof Q.unevaluatedProperties==="object"){let W=new RegExp(q1(Q));for(let J of Object.getOwnPropertyNames(Z))if(!W.test(J)){let q=p(Q.unevaluatedProperties,Y,`${X}/${J}`,Z[J]).next();if(!q.done)yield q.value}}}function*A4(Q,Y,X,Z){if(!l1(Z))yield L(H.Iterator,Q,X,Z)}function*B4(Q,Y,X,Z){if(Z!==Q.const)yield L(H.Literal,Q,X,Z)}function*w4(Q,Y,X,Z){yield L(H.Never,Q,X,Z)}function*j4(Q,Y,X,Z){if(p(Q.not,Y,X,Z).next().done===!0)yield L(H.Not,Q,X,Z)}function*D4(Q,Y,X,Z){if(!D1(Z))yield L(H.Null,Q,X,Z)}function*N4(Q,Y,X,Z){if(!_.IsNumberLike(Z))return yield L(H.Number,Q,X,Z);if(b(Q.exclusiveMaximum)&&!(Z<Q.exclusiveMaximum))yield L(H.NumberExclusiveMaximum,Q,X,Z);if(b(Q.exclusiveMinimum)&&!(Z>Q.exclusiveMinimum))yield L(H.NumberExclusiveMinimum,Q,X,Z);if(b(Q.maximum)&&!(Z<=Q.maximum))yield L(H.NumberMaximum,Q,X,Z);if(b(Q.minimum)&&!(Z>=Q.minimum))yield L(H.NumberMinimum,Q,X,Z);if(b(Q.multipleOf)&&Z%Q.multipleOf!==0)yield L(H.NumberMultipleOf,Q,X,Z)}function*P4(Q,Y,X,Z){if(!_.IsObjectLike(Z))return yield L(H.Object,Q,X,Z);if(b(Q.minProperties)&&!(Object.getOwnPropertyNames(Z).length>=Q.minProperties))yield L(H.ObjectMinProperties,Q,X,Z);if(b(Q.maxProperties)&&!(Object.getOwnPropertyNames(Z).length<=Q.maxProperties))yield L(H.ObjectMaxProperties,Q,X,Z);let G=Array.isArray(Q.required)?Q.required:[],W=Object.getOwnPropertyNames(Q.properties),J=Object.getOwnPropertyNames(Z);for(let q of G){if(J.includes(q))continue;yield L(H.ObjectRequiredProperty,Q.properties[q],`${X}/${M1(q)}`,void 0)}if(Q.additionalProperties===!1){for(let q of J)if(!W.includes(q))yield L(H.ObjectAdditionalProperties,Q,`${X}/${M1(q)}`,Z[q])}if(typeof Q.additionalProperties==="object")for(let q of J){if(W.includes(q))continue;yield*p(Q.additionalProperties,Y,`${X}/${M1(q)}`,Z[q])}for(let q of W){let A=Q.properties[q];if(Q.required&&Q.required.includes(q)){if(yield*p(A,Y,`${X}/${M1(q)}`,Z[q]),L1(Q)&&!(q in Z))yield L(H.ObjectRequiredProperty,A,`${X}/${M1(q)}`,void 0)}else if(_.IsExactOptionalProperty(Z,q))yield*p(A,Y,`${X}/${M1(q)}`,Z[q])}}function*b4(Q,Y,X,Z){if(!s1(Z))yield L(H.Promise,Q,X,Z)}function*S4(Q,Y,X,Z){if(!_.IsRecordLike(Z))return yield L(H.Object,Q,X,Z);if(b(Q.minProperties)&&!(Object.getOwnPropertyNames(Z).length>=Q.minProperties))yield L(H.ObjectMinProperties,Q,X,Z);if(b(Q.maxProperties)&&!(Object.getOwnPropertyNames(Z).length<=Q.maxProperties))yield L(H.ObjectMaxProperties,Q,X,Z);let[G,W]=Object.entries(Q.patternProperties)[0],J=new RegExp(G);for(let[q,A]of Object.entries(Z))if(J.test(q))yield*p(W,Y,`${X}/${M1(q)}`,A);if(typeof Q.additionalProperties==="object"){for(let[q,A]of Object.entries(Z))if(!J.test(q))yield*p(Q.additionalProperties,Y,`${X}/${M1(q)}`,A)}if(Q.additionalProperties===!1)for(let[q,A]of Object.entries(Z)){if(J.test(q))continue;return yield L(H.ObjectAdditionalProperties,Q,`${X}/${M1(q)}`,A)}}function*x4(Q,Y,X,Z){yield*p(i(Q,Y),Y,X,Z)}function*C4(Q,Y,X,Z){if(!f(Z))return yield L(H.String,Q,X,Z);if(b(Q.minLength)&&!(Z.length>=Q.minLength))yield L(H.StringMinLength,Q,X,Z);if(b(Q.maxLength)&&!(Z.length<=Q.maxLength))yield L(H.StringMaxLength,Q,X,Z);if(!new RegExp(Q.source,Q.flags).test(Z))return yield L(H.RegExp,Q,X,Z)}function*O4(Q,Y,X,Z){if(!f(Z))return yield L(H.String,Q,X,Z);if(b(Q.minLength)&&!(Z.length>=Q.minLength))yield L(H.StringMinLength,Q,X,Z);if(b(Q.maxLength)&&!(Z.length<=Q.maxLength))yield L(H.StringMaxLength,Q,X,Z);if(f(Q.pattern)){if(!new RegExp(Q.pattern).test(Z))yield L(H.StringPattern,Q,X,Z)}if(f(Q.format)){if(!Q1.Has(Q.format))yield L(H.StringFormatUnknown,Q,X,Z);else if(!Q1.Get(Q.format)(Z))yield L(H.StringFormat,Q,X,Z)}}function*F4(Q,Y,X,Z){if(!P1(Z))yield L(H.Symbol,Q,X,Z)}function*K4(Q,Y,X,Z){if(!f(Z))return yield L(H.String,Q,X,Z);if(!new RegExp(Q.pattern).test(Z))yield L(H.StringPattern,Q,X,Z)}function*g4(Q,Y,X,Z){yield*p(i(Q,Y),Y,X,Z)}function*_4(Q,Y,X,Z){if(!V(Z))return yield L(H.Tuple,Q,X,Z);if(Q.items===void 0&&Z.length!==0)return yield L(H.TupleLength,Q,X,Z);if(Z.length!==Q.maxItems)return yield L(H.TupleLength,Q,X,Z);if(!Q.items)return;for(let G=0;G<Q.items.length;G++)yield*p(Q.items[G],Y,`${X}/${G}`,Z[G])}function*k4(Q,Y,X,Z){if(!v(Z))yield L(H.Undefined,Q,X,Z)}function*E4(Q,Y,X,Z){if(S1(Q,Y,Z))return;let G=Q.anyOf.map((W)=>new D0(p(W,Y,X,Z)));yield L(H.Union,Q,X,Z,G)}function*V4(Q,Y,X,Z){if(!K1(Z))return yield L(H.Uint8Array,Q,X,Z);if(b(Q.maxByteLength)&&!(Z.length<=Q.maxByteLength))yield L(H.Uint8ArrayMaxByteLength,Q,X,Z);if(b(Q.minByteLength)&&!(Z.length>=Q.minByteLength))yield L(H.Uint8ArrayMinByteLength,Q,X,Z)}function*T4(Q,Y,X,Z){}function*I4(Q,Y,X,Z){if(!_.IsVoidLike(Z))yield L(H.Void,Q,X,Z)}function*d4(Q,Y,X,Z){if(!r.Get(Q[j])(Q,Z))yield L(H.Kind,Q,X,Z)}function*p(Q,Y,X,Z){let G=b(Q.$id)?[...Y,Q]:Y,W=Q;switch(W[j]){case"Any":return yield*Z4(W,G,X,Z);case"Argument":return yield*G4(W,G,X,Z);case"Array":return yield*W4(W,G,X,Z);case"AsyncIterator":return yield*z4(W,G,X,Z);case"BigInt":return yield*$4(W,G,X,Z);case"Boolean":return yield*J4(W,G,X,Z);case"Constructor":return yield*H4(W,G,X,Z);case"Date":return yield*q4(W,G,X,Z);case"Function":return yield*L4(W,G,X,Z);case"Import":return yield*M4(W,G,X,Z);case"Integer":return yield*U4(W,G,X,Z);case"Intersect":return yield*R4(W,G,X,Z);case"Iterator":return yield*A4(W,G,X,Z);case"Literal":return yield*B4(W,G,X,Z);case"Never":return yield*w4(W,G,X,Z);case"Not":return yield*j4(W,G,X,Z);case"Null":return yield*D4(W,G,X,Z);case"Number":return yield*N4(W,G,X,Z);case"Object":return yield*P4(W,G,X,Z);case"Promise":return yield*b4(W,G,X,Z);case"Record":return yield*S4(W,G,X,Z);case"Ref":return yield*x4(W,G,X,Z);case"RegExp":return yield*C4(W,G,X,Z);case"String":return yield*O4(W,G,X,Z);case"Symbol":return yield*F4(W,G,X,Z);case"TemplateLiteral":return yield*K4(W,G,X,Z);case"This":return yield*g4(W,G,X,Z);case"Tuple":return yield*_4(W,G,X,Z);case"Undefined":return yield*k4(W,G,X,Z);case"Union":return yield*E4(W,G,X,Z);case"Uint8Array":return yield*V4(W,G,X,Z);case"Unknown":return yield*T4(W,G,X,Z);case"Void":return yield*I4(W,G,X,Z);default:if(!r.Has(W[j]))throw new Z8(Q);return yield*d4(W,G,X,Z)}}function G8(...Q){let Y=Q.length===3?p(Q[0],Q[1],"",Q[2]):p(Q[0],[],"",Q[1]);return new D0(Y)}class N0 extends T{constructor(Q,Y,X){super("Unable to decode value as it does not match the expected schema");this.schema=Q,this.value=Y,this.error=X}}class W8 extends T{constructor(Q,Y,X,Z){super(Z instanceof Error?Z.message:"Unknown error");this.schema=Q,this.path=Y,this.value=X,this.error=Z}}function E(Q,Y,X){try{return F(Q)?Q[B1].Decode(X):X}catch(Z){throw new W8(Q,Y,X,Z)}}function f4(Q,Y,X,Z){return V(Z)?E(Q,X,Z.map((G,W)=>G1(Q.items,Y,`${X}/${W}`,G))):E(Q,X,Z)}function i4(Q,Y,X,Z){if(!s(Z)||Q0(Z))return E(Q,X,Z);let G=H0(Q),W=G.map((B)=>B[0]),J={...Z};for(let[B,O]of G)if(B in J)J[B]=G1(O,Y,`${X}/${B}`,J[B]);if(!F(Q.unevaluatedProperties))return E(Q,X,J);let q=Object.getOwnPropertyNames(J),A=Q.unevaluatedProperties,w={...J};for(let B of q)if(!W.includes(B))w[B]=E(A,`${X}/${B}`,w[B]);return E(Q,X,w)}function y4(Q,Y,X,Z){let G=globalThis.Object.values(Q.$defs),W=Q.$defs[Q.$ref],J=G1(W,[...Y,...G],X,Z);return E(Q,X,J)}function p4(Q,Y,X,Z){return E(Q,X,G1(Q.not,Y,X,Z))}function o4(Q,Y,X,Z){if(!s(Z))return E(Q,X,Z);let G=w1(Q),W={...Z};for(let w of G){if(!r1(W,w))continue;if(v(W[w])&&(!n1(Q.properties[w])||_.IsExactOptionalProperty(W,w)))continue;W[w]=G1(Q.properties[w],Y,`${X}/${w}`,W[w])}if(!u(Q.additionalProperties))return E(Q,X,W);let J=Object.getOwnPropertyNames(W),q=Q.additionalProperties,A={...W};for(let w of J)if(!G.includes(w))A[w]=E(q,`${X}/${w}`,A[w]);return E(Q,X,A)}function n4(Q,Y,X,Z){if(!s(Z))return E(Q,X,Z);let G=Object.getOwnPropertyNames(Q.patternProperties)[0],W=new RegExp(G),J={...Z};for(let B of Object.getOwnPropertyNames(Z))if(W.test(B))J[B]=G1(Q.patternProperties[G],Y,`${X}/${B}`,J[B]);if(!u(Q.additionalProperties))return E(Q,X,J);let q=Object.getOwnPropertyNames(J),A=Q.additionalProperties,w={...J};for(let B of q)if(!W.test(B))w[B]=E(A,`${X}/${B}`,w[B]);return E(Q,X,w)}function t4(Q,Y,X,Z){let G=i(Q,Y);return E(Q,X,G1(G,Y,X,Z))}function m4(Q,Y,X,Z){let G=i(Q,Y);return E(Q,X,G1(G,Y,X,Z))}function h4(Q,Y,X,Z){return V(Z)&&V(Q.items)?E(Q,X,Q.items.map((G,W)=>G1(G,Y,`${X}/${W}`,Z[W]))):E(Q,X,Z)}function v4(Q,Y,X,Z){for(let G of Q.anyOf){if(!S1(G,Y,Z))continue;let W=G1(G,Y,X,Z);return E(Q,X,W)}return E(Q,X,Z)}function G1(Q,Y,X,Z){let G=j1(Q,Y),W=Q;switch(Q[j]){case"Array":return f4(W,G,X,Z);case"Import":return y4(W,G,X,Z);case"Intersect":return i4(W,G,X,Z);case"Not":return p4(W,G,X,Z);case"Object":return o4(W,G,X,Z);case"Record":return n4(W,G,X,Z);case"Ref":return t4(W,G,X,Z);case"Symbol":return E(W,X,Z);case"This":return m4(W,G,X,Z);case"Tuple":return h4(W,G,X,Z);case"Union":return v4(W,G,X,Z);default:return E(W,X,Z)}}function z8(Q,Y,X){return G1(Q,Y,"",X)}class P0 extends T{constructor(Q,Y,X){super("The encoded value does not match the expected schema");this.schema=Q,this.value=Y,this.error=X}}class $8 extends T{constructor(Q,Y,X,Z){super(`${Z instanceof Error?Z.message:"Unknown error"}`);this.schema=Q,this.path=Y,this.value=X,this.error=Z}}function m(Q,Y,X){try{return F(Q)?Q[B1].Encode(X):X}catch(Z){throw new $8(Q,Y,X,Z)}}function c4(Q,Y,X,Z){let G=m(Q,X,Z);return V(G)?G.map((W,J)=>W1(Q.items,Y,`${X}/${J}`,W)):G}function u4(Q,Y,X,Z){let G=globalThis.Object.values(Q.$defs),W=Q.$defs[Q.$ref],J=m(Q,X,Z);return W1(W,[...Y,...G],X,J)}function l4(Q,Y,X,Z){let G=m(Q,X,Z);if(!s(Z)||Q0(Z))return G;let W=H0(Q),J=W.map((O)=>O[0]),q={...G};for(let[O,R1]of W)if(O in q)q[O]=W1(R1,Y,`${X}/${O}`,q[O]);if(!F(Q.unevaluatedProperties))return q;let A=Object.getOwnPropertyNames(q),w=Q.unevaluatedProperties,B={...q};for(let O of A)if(!J.includes(O))B[O]=m(w,`${X}/${O}`,B[O]);return B}function s4(Q,Y,X,Z){return m(Q.not,X,m(Q,X,Z))}function r4(Q,Y,X,Z){let G=m(Q,X,Z);if(!s(G))return G;let W=w1(Q),J={...G};for(let B of W){if(!r1(J,B))continue;if(v(J[B])&&(!n1(Q.properties[B])||_.IsExactOptionalProperty(J,B)))continue;J[B]=W1(Q.properties[B],Y,`${X}/${B}`,J[B])}if(!u(Q.additionalProperties))return J;let q=Object.getOwnPropertyNames(J),A=Q.additionalProperties,w={...J};for(let B of q)if(!W.includes(B))w[B]=m(A,`${X}/${B}`,w[B]);return w}function a4(Q,Y,X,Z){let G=m(Q,X,Z);if(!s(Z))return G;let W=Object.getOwnPropertyNames(Q.patternProperties)[0],J=new RegExp(W),q={...G};for(let O of Object.getOwnPropertyNames(Z))if(J.test(O))q[O]=W1(Q.patternProperties[W],Y,`${X}/${O}`,q[O]);if(!u(Q.additionalProperties))return q;let A=Object.getOwnPropertyNames(q),w=Q.additionalProperties,B={...q};for(let O of A)if(!J.test(O))B[O]=m(w,`${X}/${O}`,B[O]);return B}function e4(Q,Y,X,Z){let G=i(Q,Y),W=W1(G,Y,X,Z);return m(Q,X,W)}function QZ(Q,Y,X,Z){let G=i(Q,Y),W=W1(G,Y,X,Z);return m(Q,X,W)}function XZ(Q,Y,X,Z){let G=m(Q,X,Z);return V(Q.items)?Q.items.map((W,J)=>W1(W,Y,`${X}/${J}`,G[J])):[]}function YZ(Q,Y,X,Z){for(let G of Q.anyOf){if(!S1(G,Y,Z))continue;let W=W1(G,Y,X,Z);return m(Q,X,W)}for(let G of Q.anyOf){let W=W1(G,Y,X,Z);if(!S1(Q,Y,W))continue;return m(Q,X,W)}return m(Q,X,Z)}function W1(Q,Y,X,Z){let G=j1(Q,Y),W=Q;switch(Q[j]){case"Array":return c4(W,G,X,Z);case"Import":return u4(W,G,X,Z);case"Intersect":return l4(W,G,X,Z);case"Not":return s4(W,G,X,Z);case"Object":return r4(W,G,X,Z);case"Record":return a4(W,G,X,Z);case"Ref":return e4(W,G,X,Z);case"This":return QZ(W,G,X,Z);case"Tuple":return XZ(W,G,X,Z);case"Union":return YZ(W,G,X,Z);default:return m(W,X,Z)}}function J8(Q,Y,X){return W1(Q,Y,"",X)}function ZZ(Q,Y){return F(Q)||d(Q.items,Y)}function GZ(Q,Y){return F(Q)||d(Q.items,Y)}function WZ(Q,Y){return F(Q)||d(Q.returns,Y)||Q.parameters.some((X)=>d(X,Y))}function zZ(Q,Y){return F(Q)||d(Q.returns,Y)||Q.parameters.some((X)=>d(X,Y))}function $Z(Q,Y){return F(Q)||F(Q.unevaluatedProperties)||Q.allOf.some((X)=>d(X,Y))}function JZ(Q,Y){let X=globalThis.Object.getOwnPropertyNames(Q.$defs).reduce((G,W)=>[...G,Q.$defs[W]],[]),Z=Q.$defs[Q.$ref];return F(Q)||d(Z,[...X,...Y])}function HZ(Q,Y){return F(Q)||d(Q.items,Y)}function qZ(Q,Y){return F(Q)||d(Q.not,Y)}function LZ(Q,Y){return F(Q)||Object.values(Q.properties).some((X)=>d(X,Y))||u(Q.additionalProperties)&&d(Q.additionalProperties,Y)}function MZ(Q,Y){return F(Q)||d(Q.item,Y)}function UZ(Q,Y){let X=Object.getOwnPropertyNames(Q.patternProperties)[0],Z=Q.patternProperties[X];return F(Q)||d(Z,Y)||u(Q.additionalProperties)&&F(Q.additionalProperties)}function RZ(Q,Y){if(F(Q))return!0;return d(i(Q,Y),Y)}function AZ(Q,Y){if(F(Q))return!0;return d(i(Q,Y),Y)}function BZ(Q,Y){return F(Q)||!v(Q.items)&&Q.items.some((X)=>d(X,Y))}function wZ(Q,Y){return F(Q)||Q.anyOf.some((X)=>d(X,Y))}function d(Q,Y){let X=j1(Q,Y),Z=Q;if(Q.$id&&b0.has(Q.$id))return!1;if(Q.$id)b0.add(Q.$id);switch(Q[j]){case"Array":return ZZ(Z,X);case"AsyncIterator":return GZ(Z,X);case"Constructor":return WZ(Z,X);case"Function":return zZ(Z,X);case"Import":return JZ(Z,X);case"Intersect":return $Z(Z,X);case"Iterator":return HZ(Z,X);case"Not":return qZ(Z,X);case"Object":return LZ(Z,X);case"Promise":return MZ(Z,X);case"Record":return UZ(Z,X);case"Ref":return RZ(Z,X);case"This":return AZ(Z,X);case"Tuple":return BZ(Z,X);case"Union":return wZ(Z,X);default:return F(Q)}}var b0=new Set;function H8(Q,Y){return b0.clear(),d(Q,Y)}class q8{constructor(Q,Y,X,Z){this.schema=Q,this.references=Y,this.checkFunc=X,this.code=Z,this.hasTransform=H8(Q,Y)}Code(){return this.code}Schema(){return this.schema}References(){return this.references}Errors(Q){return G8(this.schema,this.references,Q)}Check(Q){return this.checkFunc(Q)}Decode(Q){if(!this.checkFunc(Q))throw new N0(this.schema,Q,this.Errors(Q).First());return this.hasTransform?z8(this.schema,this.references,Q):Q}Encode(Q){let Y=this.hasTransform?J8(this.schema,this.references,Q):Q;if(!this.checkFunc(Y))throw new P0(this.schema,Q,this.Errors(Q).First());return Y}}var U1;(function(Q){function Y(W){return W===36}Q.DollarSign=Y;function X(W){return W===95}Q.IsUnderscore=X;function Z(W){return W>=65&&W<=90||W>=97&&W<=122}Q.IsAlpha=Z;function G(W){return W>=48&&W<=57}Q.IsNumeric=G})(U1||(U1={}));var q0;(function(Q){function Y(W){if(W.length===0)return!1;return U1.IsNumeric(W.charCodeAt(0))}function X(W){if(Y(W))return!1;for(let J=0;J<W.length;J++){let q=W.charCodeAt(J);if(!(U1.IsAlpha(q)||U1.IsNumeric(q)||U1.DollarSign(q)||U1.IsUnderscore(q)))return!1}return!0}function Z(W){return W.replace(/'/g,"\\'")}function G(W,J){return X(J)?`${W}.${J}`:`${W}['${Z(J)}']`}Q.Encode=G})(q0||(q0={}));var S0;(function(Q){function Y(X){let Z=[];for(let G=0;G<X.length;G++){let W=X.charCodeAt(G);if(U1.IsNumeric(W)||U1.IsAlpha(W))Z.push(X.charAt(G));else Z.push(`_${W}_`)}return Z.join("").replace(/__/g,"_")}Q.Encode=Y})(S0||(S0={}));var x0;(function(Q){function Y(X){return X.replace(/'/g,"\\'")}Q.Escape=Y})(x0||(x0={}));class L8 extends T{constructor(Q){super("Unknown type");this.schema=Q}}class C0 extends T{constructor(Q){super("Preflight validation check failed to guard for the given schema");this.schema=Q}}var x1;(function(Q){function Y(J,q,A){return _.ExactOptionalPropertyTypes?`('${q}' in ${J} ? ${A} : true)`:`(${q0.Encode(J,q)} !== undefined ? ${A} : true)`}Q.IsExactOptionalProperty=Y;function X(J){return!_.AllowArrayObject?`(typeof ${J} === 'object' && ${J} !== null && !Array.isArray(${J}))`:`(typeof ${J} === 'object' && ${J} !== null)`}Q.IsObjectLike=X;function Z(J){return!_.AllowArrayObject?`(typeof ${J} === 'object' && ${J} !== null && !Array.isArray(${J}) && !(${J} instanceof Date) && !(${J} instanceof Uint8Array))`:`(typeof ${J} === 'object' && ${J} !== null && !(${J} instanceof Date) && !(${J} instanceof Uint8Array))`}Q.IsRecordLike=Z;function G(J){return _.AllowNaN?`typeof ${J} === 'number'`:`Number.isFinite(${J})`}Q.IsNumberLike=G;function W(J){return _.AllowNullVoid?`(${J} === undefined || ${J} === null)`:`${J} === undefined`}Q.IsVoidLike=W})(x1||(x1={}));var L0;(function(Q){function Y(z){return z[j]==="Any"||z[j]==="Unknown"}function*X(z,M,$){yield"true"}function*Z(z,M,$){yield"true"}function*G(z,M,$){yield`Array.isArray(${$})`;let[D,U]=[v1("value","any"),v1("acc","number")];if(N(z.maxItems))yield`${$}.length <= ${z.maxItems}`;if(N(z.minItems))yield`${$}.length >= ${z.minItems}`;let R=Y1(z.items,M,"value");if(yield`${$}.every((${D}) => ${R})`,k(z.contains)||N(z.minContains)||N(z.maxContains)){let g=k(z.contains)?z.contains:c(),l=Y1(g,M,"value"),H1=N(z.minContains)?[`(count >= ${z.minContains})`]:[],Z1=N(z.maxContains)?[`(count <= ${z.maxContains})`]:[],z1=`const count = value.reduce((${U}, ${D}) => ${l} ? acc + 1 : acc, 0)`,c1=["(count > 0)",...H1,...Z1].join(" && ");yield`((${D}) => { ${z1}; return ${c1}})(${$})`}if(z.uniqueItems===!0)yield`((${D}) => { const set = new Set(); for(const element of value) { const hashed = hash(element); if(set.has(hashed)) { return false } else { set.add(hashed) } } return true } )(${$})`}function*W(z,M,$){yield`(typeof value === 'object' && Symbol.asyncIterator in ${$})`}function*J(z,M,$){if(yield`(typeof ${$} === 'bigint')`,a(z.exclusiveMaximum))yield`${$} < BigInt(${z.exclusiveMaximum})`;if(a(z.exclusiveMinimum))yield`${$} > BigInt(${z.exclusiveMinimum})`;if(a(z.maximum))yield`${$} <= BigInt(${z.maximum})`;if(a(z.minimum))yield`${$} >= BigInt(${z.minimum})`;if(a(z.multipleOf))yield`(${$} % BigInt(${z.multipleOf})) === 0`}function*q(z,M,$){yield`(typeof ${$} === 'boolean')`}function*A(z,M,$){yield*C1(z.returns,M,`${$}.prototype`)}function*w(z,M,$){if(yield`(${$} instanceof Date) && Number.isFinite(${$}.getTime())`,N(z.exclusiveMaximumTimestamp))yield`${$}.getTime() < ${z.exclusiveMaximumTimestamp}`;if(N(z.exclusiveMinimumTimestamp))yield`${$}.getTime() > ${z.exclusiveMinimumTimestamp}`;if(N(z.maximumTimestamp))yield`${$}.getTime() <= ${z.maximumTimestamp}`;if(N(z.minimumTimestamp))yield`${$}.getTime() >= ${z.minimumTimestamp}`;if(N(z.multipleOfTimestamp))yield`(${$}.getTime() % ${z.multipleOfTimestamp}) === 0`}function*B(z,M,$){yield`(typeof ${$} === 'function')`}function*O(z,M,$){let D=globalThis.Object.getOwnPropertyNames(z.$defs).reduce((U,R)=>{return[...U,z.$defs[R]]},[]);yield*C1(m0(z.$ref),[...M,...D],$)}function*R1(z,M,$){if(yield`Number.isInteger(${$})`,N(z.exclusiveMaximum))yield`${$} < ${z.exclusiveMaximum}`;if(N(z.exclusiveMinimum))yield`${$} > ${z.exclusiveMinimum}`;if(N(z.maximum))yield`${$} <= ${z.maximum}`;if(N(z.minimum))yield`${$} >= ${z.minimum}`;if(N(z.multipleOf))yield`(${$} % ${z.multipleOf}) === 0`}function*B8(z,M,$){let D=z.allOf.map((U)=>Y1(U,M,$)).join(" && ");if(z.unevaluatedProperties===!1){let U=O1(`${new RegExp(q1(z))};`),R=`Object.getOwnPropertyNames(${$}).every(key => ${U}.test(key))`;yield`(${D} && ${R})`}else if(k(z.unevaluatedProperties)){let U=O1(`${new RegExp(q1(z))};`),R=`Object.getOwnPropertyNames(${$}).every(key => ${U}.test(key) || ${Y1(z.unevaluatedProperties,M,`${$}[key]`)})`;yield`(${D} && ${R})`}else yield`(${D})`}function*w8(z,M,$){yield`(typeof value === 'object' && Symbol.iterator in ${$})`}function*j8(z,M,$){if(typeof z.const==="number"||typeof z.const==="boolean")yield`(${$} === ${z.const})`;else yield`(${$} === '${x0.Escape(z.const)}')`}function*D8(z,M,$){yield"false"}function*N8(z,M,$){yield`(!${Y1(z.not,M,$)})`}function*P8(z,M,$){yield`(${$} === null)`}function*b8(z,M,$){if(yield x1.IsNumberLike($),N(z.exclusiveMaximum))yield`${$} < ${z.exclusiveMaximum}`;if(N(z.exclusiveMinimum))yield`${$} > ${z.exclusiveMinimum}`;if(N(z.maximum))yield`${$} <= ${z.maximum}`;if(N(z.minimum))yield`${$} >= ${z.minimum}`;if(N(z.multipleOf))yield`(${$} % ${z.multipleOf}) === 0`}function*S8(z,M,$){if(yield x1.IsObjectLike($),N(z.minProperties))yield`Object.getOwnPropertyNames(${$}).length >= ${z.minProperties}`;if(N(z.maxProperties))yield`Object.getOwnPropertyNames(${$}).length <= ${z.maxProperties}`;let D=Object.getOwnPropertyNames(z.properties);for(let U of D){let R=q0.Encode($,U),g=z.properties[U];if(z.required&&z.required.includes(U)){if(yield*C1(g,M,R),L1(g)||Y(g))yield`('${U}' in ${$})`}else{let l=Y1(g,M,R);yield x1.IsExactOptionalProperty($,U,l)}}if(z.additionalProperties===!1)if(z.required&&z.required.length===D.length)yield`Object.getOwnPropertyNames(${$}).length === ${D.length}`;else{let U=`[${D.map((R)=>`'${R}'`).join(", ")}]`;yield`Object.getOwnPropertyNames(${$}).every(key => ${U}.includes(key))`}if(typeof z.additionalProperties==="object"){let U=Y1(z.additionalProperties,M,`${$}[key]`),R=`[${D.map((g)=>`'${g}'`).join(", ")}]`;yield`(Object.getOwnPropertyNames(${$}).every(key => ${R}.includes(key) || ${U}))`}}function*x8(z,M,$){yield`${$} instanceof Promise`}function*C8(z,M,$){if(yield x1.IsRecordLike($),N(z.minProperties))yield`Object.getOwnPropertyNames(${$}).length >= ${z.minProperties}`;if(N(z.maxProperties))yield`Object.getOwnPropertyNames(${$}).length <= ${z.maxProperties}`;let[D,U]=Object.entries(z.patternProperties)[0],R=O1(`${new RegExp(D)}`),g=Y1(U,M,"value"),l=k(z.additionalProperties)?Y1(z.additionalProperties,M,$):z.additionalProperties===!1?"false":"true",H1=`(${R}.test(key) ? ${g} : ${l})`;yield`(Object.entries(${$}).every(([key, value]) => ${H1}))`}function*O8(z,M,$){let D=i(z,M);if(o.functions.has(z.$ref))return yield`${h1(z.$ref)}(${$})`;yield*C1(D,M,$)}function*F8(z,M,$){let D=O1(`${new RegExp(z.source,z.flags)};`);if(yield`(typeof ${$} === 'string')`,N(z.maxLength))yield`${$}.length <= ${z.maxLength}`;if(N(z.minLength))yield`${$}.length >= ${z.minLength}`;yield`${D}.test(${$})`}function*K8(z,M,$){if(yield`(typeof ${$} === 'string')`,N(z.maxLength))yield`${$}.length <= ${z.maxLength}`;if(N(z.minLength))yield`${$}.length >= ${z.minLength}`;if(z.pattern!==void 0)yield`${O1(`${new RegExp(z.pattern)};`)}.test(${$})`;if(z.format!==void 0)yield`format('${z.format}', ${$})`}function*g8(z,M,$){yield`(typeof ${$} === 'symbol')`}function*_8(z,M,$){yield`(typeof ${$} === 'string')`,yield`${O1(`${new RegExp(z.pattern)};`)}.test(${$})`}function*k8(z,M,$){yield`${h1(z.$ref)}(${$})`}function*E8(z,M,$){if(yield`Array.isArray(${$})`,z.items===void 0)return yield`${$}.length === 0`;yield`(${$}.length === ${z.maxItems})`;for(let D=0;D<z.items.length;D++)yield`${Y1(z.items[D],M,`${$}[${D}]`)}`}function*V8(z,M,$){yield`${$} === undefined`}function*T8(z,M,$){yield`(${z.anyOf.map((U)=>Y1(U,M,$)).join(" || ")})`}function*I8(z,M,$){if(yield`${$} instanceof Uint8Array`,N(z.maxByteLength))yield`(${$}.length <= ${z.maxByteLength})`;if(N(z.minByteLength))yield`(${$}.length >= ${z.minByteLength})`}function*d8(z,M,$){yield"true"}function*f8(z,M,$){yield x1.IsVoidLike($)}function*i8(z,M,$){let D=o.instances.size;o.instances.set(D,z),yield`kind('${z[j]}', ${D}, ${$})`}function*C1(z,M,$,D=!0){let U=f(z.$id)?[...M,z]:M,R=z;if(D&&f(z.$id)){let g=h1(z.$id);if(o.functions.has(g))return yield`${g}(${$})`;else{o.functions.set(g,"<deferred>");let l=O0(g,z,M,"value",!1);return o.functions.set(g,l),yield`${g}(${$})`}}switch(R[j]){case"Any":return yield*X(R,U,$);case"Argument":return yield*Z(R,U,$);case"Array":return yield*G(R,U,$);case"AsyncIterator":return yield*W(R,U,$);case"BigInt":return yield*J(R,U,$);case"Boolean":return yield*q(R,U,$);case"Constructor":return yield*A(R,U,$);case"Date":return yield*w(R,U,$);case"Function":return yield*B(R,U,$);case"Import":return yield*O(R,U,$);case"Integer":return yield*R1(R,U,$);case"Intersect":return yield*B8(R,U,$);case"Iterator":return yield*w8(R,U,$);case"Literal":return yield*j8(R,U,$);case"Never":return yield*D8(R,U,$);case"Not":return yield*N8(R,U,$);case"Null":return yield*P8(R,U,$);case"Number":return yield*b8(R,U,$);case"Object":return yield*S8(R,U,$);case"Promise":return yield*x8(R,U,$);case"Record":return yield*C8(R,U,$);case"Ref":return yield*O8(R,U,$);case"RegExp":return yield*F8(R,U,$);case"String":return yield*K8(R,U,$);case"Symbol":return yield*g8(R,U,$);case"TemplateLiteral":return yield*_8(R,U,$);case"This":return yield*k8(R,U,$);case"Tuple":return yield*E8(R,U,$);case"Undefined":return yield*V8(R,U,$);case"Union":return yield*T8(R,U,$);case"Uint8Array":return yield*I8(R,U,$);case"Unknown":return yield*d8(R,U,$);case"Void":return yield*f8(R,U,$);default:if(!r.Has(R[j]))throw new L8(z);return yield*i8(R,U,$)}}let o={language:"javascript",functions:new Map,variables:new Map,instances:new Map};function Y1(z,M,$,D=!0){return`(${[...C1(z,M,$,D)].join(" && ")})`}function h1(z){return`check_${S0.Encode(z)}`}function O1(z){let M=`local_${o.variables.size}`;return o.variables.set(M,`const ${M} = ${z}`),M}function O0(z,M,$,D,U=!0){let[R,g]=[`
|
|
3
|
-
`,(z1)=>"".padStart(z1," ")],l=v1("value","any"),H1=
|
|
4
|
-
}`}function v1(z,M){let $=o.language==="typescript"?`: ${M}`:"";return`${z}${$}`}function
|
|
2
|
+
var t8=Object.defineProperty;var _0=(Q,Y)=>{for(var X in Y)t8(Q,X,{get:Y[X],enumerable:!0,configurable:!0,set:(Z)=>Y[X]=()=>Z})};class M0{req;params;_status=200;store=Object.create(null);body=null;reset(Q,Y){return this.req=Q,this.params=Y,this._status=200,this.store=Object.create(null),this.body=null,this}status(Q){return this._status=Q,this}json(Q){return Q}set(Q,Y){this.store[Q]=Y}get(Q){return this.store[Q]}}function u1(Q){return s(Q)&&globalThis.Symbol.asyncIterator in Q}function l1(Q){return s(Q)&&globalThis.Symbol.iterator in Q}function s1(Q){return Q instanceof globalThis.Promise}function F1(Q){return Q instanceof Date&&globalThis.Number.isFinite(Q.getTime())}function K1(Q){return Q instanceof globalThis.Uint8Array}function r1(Q,Y){return Y in Q}function s(Q){return Q!==null&&typeof Q==="object"}function V(Q){return globalThis.Array.isArray(Q)&&!globalThis.ArrayBuffer.isView(Q)}function v(Q){return Q===void 0}function D1(Q){return Q===null}function N1(Q){return typeof Q==="boolean"}function N(Q){return typeof Q==="number"}function a1(Q){return globalThis.Number.isInteger(Q)}function a(Q){return typeof Q==="bigint"}function f(Q){return typeof Q==="string"}function e1(Q){return typeof Q==="function"}function P1(Q){return typeof Q==="symbol"}function Q0(Q){return a(Q)||N1(Q)||D1(Q)||N(Q)||f(Q)||P1(Q)||v(Q)}var _;(function(Q){Q.InstanceMode="default",Q.ExactOptionalPropertyTypes=!1,Q.AllowArrayObject=!1,Q.AllowNaN=!1,Q.AllowNullVoid=!1;function Y(J,q){return Q.ExactOptionalPropertyTypes?q in J:J[q]!==void 0}Q.IsExactOptionalProperty=Y;function X(J){let q=s(J);return Q.AllowArrayObject?q:q&&!V(J)}Q.IsObjectLike=X;function Z(J){return X(J)&&!(J instanceof Date)&&!(J instanceof Uint8Array)}Q.IsRecordLike=Z;function G(J){return Q.AllowNaN?N(J):Number.isFinite(J)}Q.IsNumberLike=G;function W(J){let q=v(J);return Q.AllowNullVoid?q||J===null:q}Q.IsVoidLike=W})(_||(_={}));var Q1={};_0(Q1,{Set:()=>l8,Has:()=>u8,Get:()=>s8,Entries:()=>h8,Delete:()=>c8,Clear:()=>v8});var g1=new Map;function h8(){return new Map(g1)}function v8(){return g1.clear()}function c8(Q){return g1.delete(Q)}function u8(Q){return g1.has(Q)}function l8(Q,Y){g1.set(Q,Y)}function s8(Q){return g1.get(Q)}var r={};_0(r,{Set:()=>XQ,Has:()=>QQ,Get:()=>YQ,Entries:()=>r8,Delete:()=>e8,Clear:()=>a8});var _1=new Map;function r8(){return new Map(_1)}function a8(){return _1.clear()}function e8(Q){return _1.delete(Q)}function QQ(Q){return _1.has(Q)}function XQ(Q,Y){_1.set(Q,Y)}function YQ(Q){return _1.get(Q)}function X1(Q){return Array.isArray(Q)}function k0(Q){return typeof Q==="bigint"}function X0(Q){return typeof Q==="boolean"}function Y0(Q){return Q instanceof globalThis.Date}function A1(Q){return typeof Q==="number"}function I(Q){return typeof Q==="object"&&Q!==null}function Z0(Q){return Q instanceof globalThis.RegExp}function n(Q){return typeof Q==="string"}function G0(Q){return Q instanceof globalThis.Uint8Array}function $1(Q){return Q===void 0}function ZQ(Q){return globalThis.Object.freeze(Q).map((Y)=>i1(Y))}function GQ(Q){return Q}function WQ(Q){return Q}function zQ(Q){return Q}function $Q(Q){let Y={};for(let X of Object.getOwnPropertyNames(Q))Y[X]=i1(Q[X]);for(let X of Object.getOwnPropertySymbols(Q))Y[X]=i1(Q[X]);return globalThis.Object.freeze(Y)}function i1(Q){return X1(Q)?ZQ(Q):Y0(Q)?GQ(Q):G0(Q)?WQ(Q):Z0(Q)?zQ(Q):I(Q)?$Q(Q):Q}function JQ(Q){return Q.map((Y)=>z0(Y))}function HQ(Q){return new Date(Q.getTime())}function qQ(Q){return new Uint8Array(Q)}function LQ(Q){return new RegExp(Q.source,Q.flags)}function MQ(Q){let Y={};for(let X of Object.getOwnPropertyNames(Q))Y[X]=z0(Q[X]);for(let X of Object.getOwnPropertySymbols(Q))Y[X]=z0(Q[X]);return Y}function z0(Q){return X1(Q)?JQ(Q):Y0(Q)?HQ(Q):G0(Q)?qQ(Q):Z0(Q)?LQ(Q):I(Q)?MQ(Q):Q}function E0(Q){return z0(Q)}function m(Q,Y){let X=Y!==void 0?{...Y,...Q}:Q;switch(_.InstanceMode){case"freeze":return i1(X);case"clone":return E0(X);default:return X}}var B1=Symbol.for("TypeBox.Transform");var J1=Symbol.for("TypeBox.Optional");var j=Symbol.for("TypeBox.Kind");class T extends Error{constructor(Q){super(Q)}}function V0(Q){return m({[j]:"MappedResult",properties:Q})}function UQ(Q,Y){let{[Y]:X,...Z}=Q;return Z}function k1(Q,Y){return Y.reduce((X,Z)=>UQ(X,Z),Q)}function c(Q){return m({[j]:"Never",not:{}},Q)}function E1(Q){return I(Q)&&Q[J1]==="Optional"}function BQ(Q){return S(Q,"Any")}function jQ(Q){return S(Q,"Argument")}function y1(Q){return S(Q,"Array")}function wQ(Q){return S(Q,"AsyncIterator")}function DQ(Q){return S(Q,"BigInt")}function NQ(Q){return S(Q,"Boolean")}function PQ(Q){return S(Q,"Computed")}function bQ(Q){return S(Q,"Constructor")}function SQ(Q){return S(Q,"Date")}function CQ(Q){return S(Q,"Function")}function OQ(Q){return S(Q,"Integer")}function p1(Q){return S(Q,"Intersect")}function xQ(Q){return S(Q,"Iterator")}function S(Q,Y){return I(Q)&&j in Q&&Q[j]===Y}function FQ(Q){return S(Q,"Literal")}function T0(Q){return S(Q,"MappedKey")}function $0(Q){return S(Q,"MappedResult")}function J0(Q){return S(Q,"Never")}function KQ(Q){return S(Q,"Not")}function gQ(Q){return S(Q,"Null")}function _Q(Q){return S(Q,"Number")}function b1(Q){return S(Q,"Object")}function kQ(Q){return S(Q,"Promise")}function U0(Q){return S(Q,"Record")}function I0(Q){return S(Q,"Ref")}function EQ(Q){return S(Q,"RegExp")}function VQ(Q){return S(Q,"String")}function TQ(Q){return S(Q,"Symbol")}function IQ(Q){return S(Q,"TemplateLiteral")}function dQ(Q){return S(Q,"This")}function F(Q){return I(Q)&&B1 in Q}function o1(Q){return S(Q,"Tuple")}function n1(Q){return S(Q,"Undefined")}function m1(Q){return S(Q,"Union")}function fQ(Q){return S(Q,"Uint8Array")}function iQ(Q){return S(Q,"Unknown")}function yQ(Q){return S(Q,"Unsafe")}function pQ(Q){return S(Q,"Void")}function oQ(Q){return I(Q)&&j in Q&&n(Q[j])}function u(Q){return BQ(Q)||jQ(Q)||y1(Q)||NQ(Q)||DQ(Q)||wQ(Q)||PQ(Q)||bQ(Q)||SQ(Q)||CQ(Q)||OQ(Q)||p1(Q)||xQ(Q)||FQ(Q)||T0(Q)||$0(Q)||J0(Q)||KQ(Q)||gQ(Q)||_Q(Q)||b1(Q)||kQ(Q)||U0(Q)||I0(Q)||EQ(Q)||VQ(Q)||TQ(Q)||IQ(Q)||dQ(Q)||o1(Q)||n1(Q)||m1(Q)||fQ(Q)||iQ(Q)||yQ(Q)||pQ(Q)||oQ(Q)}function nQ(Q){return m(k1(Q,[J1]))}function mQ(Q){return m({...Q,[J1]:"Optional"})}function tQ(Q,Y){return Y===!1?nQ(Q):mQ(Q)}function V1(Q,Y){let X=Y??!0;return $0(Q)?d0(Q,X):tQ(Q,X)}function hQ(Q,Y){let X={};for(let Z of globalThis.Object.getOwnPropertyNames(Q))X[Z]=V1(Q[Z],Y);return X}function vQ(Q,Y){return hQ(Q.properties,Y)}function d0(Q,Y){let X=vQ(Q,Y);return V0(X)}function R0(Q,Y={}){let X=Q.every((G)=>b1(G)),Z=u(Y.unevaluatedProperties)?{unevaluatedProperties:Y.unevaluatedProperties}:{};return m(Y.unevaluatedProperties===!1||u(Y.unevaluatedProperties)||X?{...Z,[j]:"Intersect",type:"object",allOf:Q}:{...Z,[j]:"Intersect",allOf:Q},Y)}function cQ(Q){return Q.every((Y)=>E1(Y))}function uQ(Q){return k1(Q,[J1])}function f0(Q){return Q.map((Y)=>E1(Y)?uQ(Y):Y)}function lQ(Q,Y){return cQ(Q)?V1(R0(f0(Q),Y)):R0(f0(Q),Y)}function i0(Q,Y={}){if(Q.length===1)return m(Q[0],Y);if(Q.length===0)return c(Y);if(Q.some((X)=>F(X)))throw Error("Cannot intersect transform types");return lQ(Q,Y)}function A0(Q,Y){return m({[j]:"Union",anyOf:Q},Y)}function sQ(Q){return Q.some((Y)=>E1(Y))}function y0(Q){return Q.map((Y)=>E1(Y)?rQ(Y):Y)}function rQ(Q){return k1(Q,[J1])}function aQ(Q,Y){return sQ(Q)?V1(A0(y0(Q),Y)):A0(y0(Q),Y)}function B0(Q,Y){return Q.length===1?m(Q[0],Y):Q.length===0?c(Y):aQ(Q,Y)}function p0(Q,Y){return Q.map((X)=>o0(X,Y))}function eQ(Q){return Q.filter((Y)=>!J0(Y))}function QX(Q,Y){return i0(eQ(p0(Q,Y)))}function XX(Q){return Q.some((Y)=>J0(Y))?[]:Q}function YX(Q,Y){return B0(XX(p0(Q,Y)))}function ZX(Q,Y){return Y in Q?Q[Y]:Y==="[number]"?B0(Q):c()}function GX(Q,Y){return Y==="[number]"?Q:c()}function WX(Q,Y){return Y in Q?Q[Y]:c()}function o0(Q,Y){return p1(Q)?QX(Q.allOf,Y):m1(Q)?YX(Q.anyOf,Y):o1(Q)?ZX(Q.items??[],Y):y1(Q)?GX(Q.items,Y):b1(Q)?WX(Q.properties,Y):c()}function n0(Q,Y){return Y.map((X)=>o0(Q,X))}function zX(Q,Y){return Q.filter((X)=>Y.includes(X))}function $X(Q,Y){return Q.reduce((X,Z)=>{return zX(X,Z)},Y)}function m0(Q){return Q.length===1?Q[0]:Q.length>1?$X(Q.slice(1),Q[0]):[]}function t0(Q){let Y=[];for(let X of Q)Y.push(...X);return Y}function h0(...Q){let[Y,X]=typeof Q[0]==="string"?[Q[0],Q[1]]:[Q[0].$id,Q[1]];if(typeof Y!=="string")throw new T("Ref: $ref must be a string");return m({[j]:"Ref",$ref:Y},X)}function v0(Q){let Y=[];for(let X of Q)Y.push(j1(X));return Y}function JX(Q){let Y=v0(Q);return t0(Y)}function HX(Q){let Y=v0(Q);return m0(Y)}function qX(Q){return Q.map((Y,X)=>X.toString())}function LX(Q){return["[number]"]}function MX(Q){return globalThis.Object.getOwnPropertyNames(Q)}function UX(Q){if(!j0)return[];return globalThis.Object.getOwnPropertyNames(Q).map((X)=>{return X[0]==="^"&&X[X.length-1]==="$"?X.slice(1,X.length-1):X})}function j1(Q){return p1(Q)?JX(Q.allOf):m1(Q)?HX(Q.anyOf):o1(Q)?qX(Q.items??[]):y1(Q)?LX(Q.items):b1(Q)?MX(Q.properties):U0(Q)?UX(Q.patternProperties):[]}var j0=!1;function q1(Q){j0=!0;let Y=j1(Q);return j0=!1,`^(${Y.map((Z)=>`(${Z})`).join("|")})$`}function H0(Q){let Y=j1(Q),X=n0(Q,Y);return Y.map((Z,G)=>[Y[G],X[G]])}function RX(Q){return Q.allOf.every((Y)=>L1(Y))}function AX(Q){return Q.anyOf.some((Y)=>L1(Y))}function BX(Q){return!L1(Q.not)}function L1(Q){return Q[j]==="Intersect"?RX(Q):Q[j]==="Union"?AX(Q):Q[j]==="Not"?BX(Q):Q[j]==="Undefined"?!0:!1}function jX(Q){switch(Q.errorType){case H.ArrayContains:return"Expected array to contain at least one matching value";case H.ArrayMaxContains:return`Expected array to contain no more than ${Q.schema.maxContains} matching values`;case H.ArrayMinContains:return`Expected array to contain at least ${Q.schema.minContains} matching values`;case H.ArrayMaxItems:return`Expected array length to be less or equal to ${Q.schema.maxItems}`;case H.ArrayMinItems:return`Expected array length to be greater or equal to ${Q.schema.minItems}`;case H.ArrayUniqueItems:return"Expected array elements to be unique";case H.Array:return"Expected array";case H.AsyncIterator:return"Expected AsyncIterator";case H.BigIntExclusiveMaximum:return`Expected bigint to be less than ${Q.schema.exclusiveMaximum}`;case H.BigIntExclusiveMinimum:return`Expected bigint to be greater than ${Q.schema.exclusiveMinimum}`;case H.BigIntMaximum:return`Expected bigint to be less or equal to ${Q.schema.maximum}`;case H.BigIntMinimum:return`Expected bigint to be greater or equal to ${Q.schema.minimum}`;case H.BigIntMultipleOf:return`Expected bigint to be a multiple of ${Q.schema.multipleOf}`;case H.BigInt:return"Expected bigint";case H.Boolean:return"Expected boolean";case H.DateExclusiveMinimumTimestamp:return`Expected Date timestamp to be greater than ${Q.schema.exclusiveMinimumTimestamp}`;case H.DateExclusiveMaximumTimestamp:return`Expected Date timestamp to be less than ${Q.schema.exclusiveMaximumTimestamp}`;case H.DateMinimumTimestamp:return`Expected Date timestamp to be greater or equal to ${Q.schema.minimumTimestamp}`;case H.DateMaximumTimestamp:return`Expected Date timestamp to be less or equal to ${Q.schema.maximumTimestamp}`;case H.DateMultipleOfTimestamp:return`Expected Date timestamp to be a multiple of ${Q.schema.multipleOfTimestamp}`;case H.Date:return"Expected Date";case H.Function:return"Expected function";case H.IntegerExclusiveMaximum:return`Expected integer to be less than ${Q.schema.exclusiveMaximum}`;case H.IntegerExclusiveMinimum:return`Expected integer to be greater than ${Q.schema.exclusiveMinimum}`;case H.IntegerMaximum:return`Expected integer to be less or equal to ${Q.schema.maximum}`;case H.IntegerMinimum:return`Expected integer to be greater or equal to ${Q.schema.minimum}`;case H.IntegerMultipleOf:return`Expected integer to be a multiple of ${Q.schema.multipleOf}`;case H.Integer:return"Expected integer";case H.IntersectUnevaluatedProperties:return"Unexpected property";case H.Intersect:return"Expected all values to match";case H.Iterator:return"Expected Iterator";case H.Literal:return`Expected ${typeof Q.schema.const==="string"?`'${Q.schema.const}'`:Q.schema.const}`;case H.Never:return"Never";case H.Not:return"Value should not match";case H.Null:return"Expected null";case H.NumberExclusiveMaximum:return`Expected number to be less than ${Q.schema.exclusiveMaximum}`;case H.NumberExclusiveMinimum:return`Expected number to be greater than ${Q.schema.exclusiveMinimum}`;case H.NumberMaximum:return`Expected number to be less or equal to ${Q.schema.maximum}`;case H.NumberMinimum:return`Expected number to be greater or equal to ${Q.schema.minimum}`;case H.NumberMultipleOf:return`Expected number to be a multiple of ${Q.schema.multipleOf}`;case H.Number:return"Expected number";case H.Object:return"Expected object";case H.ObjectAdditionalProperties:return"Unexpected property";case H.ObjectMaxProperties:return`Expected object to have no more than ${Q.schema.maxProperties} properties`;case H.ObjectMinProperties:return`Expected object to have at least ${Q.schema.minProperties} properties`;case H.ObjectRequiredProperty:return"Expected required property";case H.Promise:return"Expected Promise";case H.RegExp:return"Expected string to match regular expression";case H.StringFormatUnknown:return`Unknown format '${Q.schema.format}'`;case H.StringFormat:return`Expected string to match '${Q.schema.format}' format`;case H.StringMaxLength:return`Expected string length less or equal to ${Q.schema.maxLength}`;case H.StringMinLength:return`Expected string length greater or equal to ${Q.schema.minLength}`;case H.StringPattern:return`Expected string to match '${Q.schema.pattern}'`;case H.String:return"Expected string";case H.Symbol:return"Expected symbol";case H.TupleLength:return`Expected tuple to have ${Q.schema.maxItems||0} elements`;case H.Tuple:return"Expected tuple";case H.Uint8ArrayMaxByteLength:return`Expected byte length less or equal to ${Q.schema.maxByteLength}`;case H.Uint8ArrayMinByteLength:return`Expected byte length greater or equal to ${Q.schema.minByteLength}`;case H.Uint8Array:return"Expected Uint8Array";case H.Undefined:return"Expected undefined";case H.Union:return"Expected union value";case H.Void:return"Expected void";case H.Kind:return`Expected kind '${Q.schema[j]}'`;default:return"Unknown error type"}}var wX=jX;function c0(){return wX}class u0 extends T{constructor(Q){super(`Unable to dereference schema with $id '${Q.$ref}'`);this.schema=Q}}function DX(Q,Y){let X=Y.find((Z)=>Z.$id===Q.$ref);if(X===void 0)throw new u0(Q);return i(X,Y)}function w1(Q,Y){if(!f(Q.$id)||Y.some((X)=>X.$id===Q.$id))return Y;return Y.push(Q),Y}function i(Q,Y){return Q[j]==="This"||Q[j]==="Ref"?DX(Q,Y):Q}class l0 extends T{constructor(Q){super("Unable to hash value");this.value=Q}}var e;(function(Q){Q[Q.Undefined=0]="Undefined",Q[Q.Null=1]="Null",Q[Q.Boolean=2]="Boolean",Q[Q.Number=3]="Number",Q[Q.String=4]="String",Q[Q.Object=5]="Object",Q[Q.Array=6]="Array",Q[Q.Date=7]="Date",Q[Q.Uint8Array=8]="Uint8Array",Q[Q.Symbol=9]="Symbol",Q[Q.BigInt=10]="BigInt"})(e||(e={}));var T1=BigInt("14695981039346656037"),[NX,PX]=[BigInt("1099511628211"),BigInt("18446744073709551616")],bX=Array.from({length:256}).map((Q,Y)=>BigInt(Y)),s0=new Float64Array(1),r0=new DataView(s0.buffer),a0=new Uint8Array(s0.buffer);function*SX(Q){let Y=Q===0?1:Math.ceil(Math.floor(Math.log2(Q)+1)/8);for(let X=0;X<Y;X++)yield Q>>8*(Y-1-X)&255}function CX(Q){h(e.Array);for(let Y of Q)I1(Y)}function OX(Q){h(e.Boolean),h(Q?1:0)}function xX(Q){h(e.BigInt),r0.setBigInt64(0,Q);for(let Y of a0)h(Y)}function FX(Q){h(e.Date),I1(Q.getTime())}function KX(Q){h(e.Null)}function gX(Q){h(e.Number),r0.setFloat64(0,Q);for(let Y of a0)h(Y)}function _X(Q){h(e.Object);for(let Y of globalThis.Object.getOwnPropertyNames(Q).sort())I1(Y),I1(Q[Y])}function kX(Q){h(e.String);for(let Y=0;Y<Q.length;Y++)for(let X of SX(Q.charCodeAt(Y)))h(X)}function EX(Q){h(e.Symbol),I1(Q.description)}function VX(Q){h(e.Uint8Array);for(let Y=0;Y<Q.length;Y++)h(Q[Y])}function TX(Q){return h(e.Undefined)}function I1(Q){if(V(Q))return CX(Q);if(N1(Q))return OX(Q);if(a(Q))return xX(Q);if(F1(Q))return FX(Q);if(D1(Q))return KX(Q);if(N(Q))return gX(Q);if(s(Q))return _X(Q);if(f(Q))return kX(Q);if(P1(Q))return EX(Q);if(K1(Q))return VX(Q);if(v(Q))return TX(Q);throw new l0(Q)}function h(Q){T1=T1^bX[Q],T1=T1*NX%PX}function d1(Q){return T1=BigInt("14695981039346656037"),I1(Q),T1}var IX=["Argument","Any","Array","AsyncIterator","BigInt","Boolean","Computed","Constructor","Date","Enum","Function","Integer","Intersect","Iterator","Literal","MappedKey","MappedResult","Not","Null","Number","Object","Promise","Record","Ref","RegExp","String","Symbol","TemplateLiteral","This","Tuple","Undefined","Union","Uint8Array","Unknown","Void"];function e0(Q){try{return new RegExp(Q),!0}catch{return!1}}function w0(Q){if(!n(Q))return!1;for(let Y=0;Y<Q.length;Y++){let X=Q.charCodeAt(Y);if(X>=7&&X<=13||X===27||X===127)return!1}return!0}function Q8(Q){return D0(Q)||k(Q)}function t1(Q){return $1(Q)||k0(Q)}function K(Q){return $1(Q)||A1(Q)}function D0(Q){return $1(Q)||X0(Q)}function O(Q){return $1(Q)||n(Q)}function dX(Q){return $1(Q)||n(Q)&&w0(Q)&&e0(Q)}function fX(Q){return $1(Q)||n(Q)&&w0(Q)}function X8(Q){return $1(Q)||k(Q)}function iX(Q){return C(Q,"Any")&&O(Q.$id)}function yX(Q){return C(Q,"Argument")&&A1(Q.index)}function pX(Q){return C(Q,"Array")&&Q.type==="array"&&O(Q.$id)&&k(Q.items)&&K(Q.minItems)&&K(Q.maxItems)&&D0(Q.uniqueItems)&&X8(Q.contains)&&K(Q.minContains)&&K(Q.maxContains)}function oX(Q){return C(Q,"AsyncIterator")&&Q.type==="AsyncIterator"&&O(Q.$id)&&k(Q.items)}function nX(Q){return C(Q,"BigInt")&&Q.type==="bigint"&&O(Q.$id)&&t1(Q.exclusiveMaximum)&&t1(Q.exclusiveMinimum)&&t1(Q.maximum)&&t1(Q.minimum)&&t1(Q.multipleOf)}function mX(Q){return C(Q,"Boolean")&&Q.type==="boolean"&&O(Q.$id)}function tX(Q){return C(Q,"Computed")&&n(Q.target)&&X1(Q.parameters)&&Q.parameters.every((Y)=>k(Y))}function hX(Q){return C(Q,"Constructor")&&Q.type==="Constructor"&&O(Q.$id)&&X1(Q.parameters)&&Q.parameters.every((Y)=>k(Y))&&k(Q.returns)}function vX(Q){return C(Q,"Date")&&Q.type==="Date"&&O(Q.$id)&&K(Q.exclusiveMaximumTimestamp)&&K(Q.exclusiveMinimumTimestamp)&&K(Q.maximumTimestamp)&&K(Q.minimumTimestamp)&&K(Q.multipleOfTimestamp)}function cX(Q){return C(Q,"Function")&&Q.type==="Function"&&O(Q.$id)&&X1(Q.parameters)&&Q.parameters.every((Y)=>k(Y))&&k(Q.returns)}function uX(Q){return C(Q,"Integer")&&Q.type==="integer"&&O(Q.$id)&&K(Q.exclusiveMaximum)&&K(Q.exclusiveMinimum)&&K(Q.maximum)&&K(Q.minimum)&&K(Q.multipleOf)}function Y8(Q){return I(Q)&&Object.entries(Q).every(([Y,X])=>w0(Y)&&k(X))}function lX(Q){return C(Q,"Intersect")&&(n(Q.type)&&Q.type!=="object"?!1:!0)&&X1(Q.allOf)&&Q.allOf.every((Y)=>k(Y)&&!RY(Y))&&O(Q.type)&&(D0(Q.unevaluatedProperties)||X8(Q.unevaluatedProperties))&&O(Q.$id)}function sX(Q){return C(Q,"Iterator")&&Q.type==="Iterator"&&O(Q.$id)&&k(Q.items)}function C(Q,Y){return I(Q)&&j in Q&&Q[j]===Y}function rX(Q){return C(Q,"Literal")&&O(Q.$id)&&aX(Q.const)}function aX(Q){return X0(Q)||A1(Q)||n(Q)}function eX(Q){return C(Q,"MappedKey")&&X1(Q.keys)&&Q.keys.every((Y)=>A1(Y)||n(Y))}function QY(Q){return C(Q,"MappedResult")&&Y8(Q.properties)}function XY(Q){return C(Q,"Never")&&I(Q.not)&&Object.getOwnPropertyNames(Q.not).length===0}function YY(Q){return C(Q,"Not")&&k(Q.not)}function ZY(Q){return C(Q,"Null")&&Q.type==="null"&&O(Q.$id)}function GY(Q){return C(Q,"Number")&&Q.type==="number"&&O(Q.$id)&&K(Q.exclusiveMaximum)&&K(Q.exclusiveMinimum)&&K(Q.maximum)&&K(Q.minimum)&&K(Q.multipleOf)}function WY(Q){return C(Q,"Object")&&Q.type==="object"&&O(Q.$id)&&Y8(Q.properties)&&Q8(Q.additionalProperties)&&K(Q.minProperties)&&K(Q.maxProperties)}function zY(Q){return C(Q,"Promise")&&Q.type==="Promise"&&O(Q.$id)&&k(Q.item)}function $Y(Q){return C(Q,"Record")&&Q.type==="object"&&O(Q.$id)&&Q8(Q.additionalProperties)&&I(Q.patternProperties)&&((Y)=>{let X=Object.getOwnPropertyNames(Y.patternProperties);return X.length===1&&e0(X[0])&&I(Y.patternProperties)&&k(Y.patternProperties[X[0]])})(Q)}function JY(Q){return C(Q,"Ref")&&O(Q.$id)&&n(Q.$ref)}function HY(Q){return C(Q,"RegExp")&&O(Q.$id)&&n(Q.source)&&n(Q.flags)&&K(Q.maxLength)&&K(Q.minLength)}function qY(Q){return C(Q,"String")&&Q.type==="string"&&O(Q.$id)&&K(Q.minLength)&&K(Q.maxLength)&&dX(Q.pattern)&&fX(Q.format)}function LY(Q){return C(Q,"Symbol")&&Q.type==="symbol"&&O(Q.$id)}function MY(Q){return C(Q,"TemplateLiteral")&&Q.type==="string"&&n(Q.pattern)&&Q.pattern[0]==="^"&&Q.pattern[Q.pattern.length-1]==="$"}function UY(Q){return C(Q,"This")&&O(Q.$id)&&n(Q.$ref)}function RY(Q){return I(Q)&&B1 in Q}function AY(Q){return C(Q,"Tuple")&&Q.type==="array"&&O(Q.$id)&&A1(Q.minItems)&&A1(Q.maxItems)&&Q.minItems===Q.maxItems&&($1(Q.items)&&$1(Q.additionalItems)&&Q.minItems===0||X1(Q.items)&&Q.items.every((Y)=>k(Y)))}function BY(Q){return C(Q,"Undefined")&&Q.type==="undefined"&&O(Q.$id)}function jY(Q){return C(Q,"Union")&&O(Q.$id)&&I(Q)&&X1(Q.anyOf)&&Q.anyOf.every((Y)=>k(Y))}function wY(Q){return C(Q,"Uint8Array")&&Q.type==="Uint8Array"&&O(Q.$id)&&K(Q.minByteLength)&&K(Q.maxByteLength)}function DY(Q){return C(Q,"Unknown")&&O(Q.$id)}function NY(Q){return C(Q,"Unsafe")}function PY(Q){return C(Q,"Void")&&Q.type==="void"&&O(Q.$id)}function bY(Q){return I(Q)&&j in Q&&n(Q[j])&&!IX.includes(Q[j])}function k(Q){return I(Q)&&(iX(Q)||yX(Q)||pX(Q)||mX(Q)||nX(Q)||oX(Q)||tX(Q)||hX(Q)||vX(Q)||cX(Q)||uX(Q)||lX(Q)||sX(Q)||rX(Q)||eX(Q)||QY(Q)||XY(Q)||YY(Q)||ZY(Q)||GY(Q)||WY(Q)||zY(Q)||$Y(Q)||JY(Q)||HY(Q)||qY(Q)||LY(Q)||MY(Q)||UY(Q)||AY(Q)||BY(Q)||jY(Q)||wY(Q)||DY(Q)||NY(Q)||PY(Q)||bY(Q))}class Z8 extends T{constructor(Q){super("Unknown type");this.schema=Q}}function SY(Q){return Q[j]==="Any"||Q[j]==="Unknown"}function P(Q){return Q!==void 0}function CY(Q,Y,X){return!0}function OY(Q,Y,X){return!0}function xY(Q,Y,X){if(!V(X))return!1;if(P(Q.minItems)&&!(X.length>=Q.minItems))return!1;if(P(Q.maxItems)&&!(X.length<=Q.maxItems))return!1;if(!X.every((W)=>y(Q.items,Y,W)))return!1;if(Q.uniqueItems===!0&&!function(){let W=new Set;for(let J of X){let q=d1(J);if(W.has(q))return!1;else W.add(q)}return!0}())return!1;if(!(P(Q.contains)||N(Q.minContains)||N(Q.maxContains)))return!0;let Z=P(Q.contains)?Q.contains:c(),G=X.reduce((W,J)=>y(Z,Y,J)?W+1:W,0);if(G===0)return!1;if(N(Q.minContains)&&G<Q.minContains)return!1;if(N(Q.maxContains)&&G>Q.maxContains)return!1;return!0}function FY(Q,Y,X){return u1(X)}function KY(Q,Y,X){if(!a(X))return!1;if(P(Q.exclusiveMaximum)&&!(X<Q.exclusiveMaximum))return!1;if(P(Q.exclusiveMinimum)&&!(X>Q.exclusiveMinimum))return!1;if(P(Q.maximum)&&!(X<=Q.maximum))return!1;if(P(Q.minimum)&&!(X>=Q.minimum))return!1;if(P(Q.multipleOf)&&X%Q.multipleOf!==BigInt(0))return!1;return!0}function gY(Q,Y,X){return N1(X)}function _Y(Q,Y,X){return y(Q.returns,Y,X.prototype)}function kY(Q,Y,X){if(!F1(X))return!1;if(P(Q.exclusiveMaximumTimestamp)&&!(X.getTime()<Q.exclusiveMaximumTimestamp))return!1;if(P(Q.exclusiveMinimumTimestamp)&&!(X.getTime()>Q.exclusiveMinimumTimestamp))return!1;if(P(Q.maximumTimestamp)&&!(X.getTime()<=Q.maximumTimestamp))return!1;if(P(Q.minimumTimestamp)&&!(X.getTime()>=Q.minimumTimestamp))return!1;if(P(Q.multipleOfTimestamp)&&X.getTime()%Q.multipleOfTimestamp!==0)return!1;return!0}function EY(Q,Y,X){return e1(X)}function VY(Q,Y,X){let Z=globalThis.Object.values(Q.$defs),G=Q.$defs[Q.$ref];return y(G,[...Y,...Z],X)}function TY(Q,Y,X){if(!a1(X))return!1;if(P(Q.exclusiveMaximum)&&!(X<Q.exclusiveMaximum))return!1;if(P(Q.exclusiveMinimum)&&!(X>Q.exclusiveMinimum))return!1;if(P(Q.maximum)&&!(X<=Q.maximum))return!1;if(P(Q.minimum)&&!(X>=Q.minimum))return!1;if(P(Q.multipleOf)&&X%Q.multipleOf!==0)return!1;return!0}function IY(Q,Y,X){let Z=Q.allOf.every((G)=>y(G,Y,X));if(Q.unevaluatedProperties===!1){let G=new RegExp(q1(Q)),W=Object.getOwnPropertyNames(X).every((J)=>G.test(J));return Z&&W}else if(u(Q.unevaluatedProperties)){let G=new RegExp(q1(Q)),W=Object.getOwnPropertyNames(X).every((J)=>G.test(J)||y(Q.unevaluatedProperties,Y,X[J]));return Z&&W}else return Z}function dY(Q,Y,X){return l1(X)}function fY(Q,Y,X){return X===Q.const}function iY(Q,Y,X){return!1}function yY(Q,Y,X){return!y(Q.not,Y,X)}function pY(Q,Y,X){return D1(X)}function oY(Q,Y,X){if(!_.IsNumberLike(X))return!1;if(P(Q.exclusiveMaximum)&&!(X<Q.exclusiveMaximum))return!1;if(P(Q.exclusiveMinimum)&&!(X>Q.exclusiveMinimum))return!1;if(P(Q.minimum)&&!(X>=Q.minimum))return!1;if(P(Q.maximum)&&!(X<=Q.maximum))return!1;if(P(Q.multipleOf)&&X%Q.multipleOf!==0)return!1;return!0}function nY(Q,Y,X){if(!_.IsObjectLike(X))return!1;if(P(Q.minProperties)&&!(Object.getOwnPropertyNames(X).length>=Q.minProperties))return!1;if(P(Q.maxProperties)&&!(Object.getOwnPropertyNames(X).length<=Q.maxProperties))return!1;let Z=Object.getOwnPropertyNames(Q.properties);for(let G of Z){let W=Q.properties[G];if(Q.required&&Q.required.includes(G)){if(!y(W,Y,X[G]))return!1;if((L1(W)||SY(W))&&!(G in X))return!1}else if(_.IsExactOptionalProperty(X,G)&&!y(W,Y,X[G]))return!1}if(Q.additionalProperties===!1){let G=Object.getOwnPropertyNames(X);if(Q.required&&Q.required.length===Z.length&&G.length===Z.length)return!0;else return G.every((W)=>Z.includes(W))}else if(typeof Q.additionalProperties==="object")return Object.getOwnPropertyNames(X).every((W)=>Z.includes(W)||y(Q.additionalProperties,Y,X[W]));else return!0}function mY(Q,Y,X){return s1(X)}function tY(Q,Y,X){if(!_.IsRecordLike(X))return!1;if(P(Q.minProperties)&&!(Object.getOwnPropertyNames(X).length>=Q.minProperties))return!1;if(P(Q.maxProperties)&&!(Object.getOwnPropertyNames(X).length<=Q.maxProperties))return!1;let[Z,G]=Object.entries(Q.patternProperties)[0],W=new RegExp(Z),J=Object.entries(X).every(([w,B])=>{return W.test(w)?y(G,Y,B):!0}),q=typeof Q.additionalProperties==="object"?Object.entries(X).every(([w,B])=>{return!W.test(w)?y(Q.additionalProperties,Y,B):!0}):!0,A=Q.additionalProperties===!1?Object.getOwnPropertyNames(X).every((w)=>{return W.test(w)}):!0;return J&&q&&A}function hY(Q,Y,X){return y(i(Q,Y),Y,X)}function vY(Q,Y,X){let Z=new RegExp(Q.source,Q.flags);if(P(Q.minLength)){if(!(X.length>=Q.minLength))return!1}if(P(Q.maxLength)){if(!(X.length<=Q.maxLength))return!1}return Z.test(X)}function cY(Q,Y,X){if(!f(X))return!1;if(P(Q.minLength)){if(!(X.length>=Q.minLength))return!1}if(P(Q.maxLength)){if(!(X.length<=Q.maxLength))return!1}if(P(Q.pattern)){if(!new RegExp(Q.pattern).test(X))return!1}if(P(Q.format)){if(!Q1.Has(Q.format))return!1;return Q1.Get(Q.format)(X)}return!0}function uY(Q,Y,X){return P1(X)}function lY(Q,Y,X){return f(X)&&new RegExp(Q.pattern).test(X)}function sY(Q,Y,X){return y(i(Q,Y),Y,X)}function rY(Q,Y,X){if(!V(X))return!1;if(Q.items===void 0&&X.length!==0)return!1;if(X.length!==Q.maxItems)return!1;if(!Q.items)return!0;for(let Z=0;Z<Q.items.length;Z++)if(!y(Q.items[Z],Y,X[Z]))return!1;return!0}function aY(Q,Y,X){return v(X)}function eY(Q,Y,X){return Q.anyOf.some((Z)=>y(Z,Y,X))}function Q4(Q,Y,X){if(!K1(X))return!1;if(P(Q.maxByteLength)&&!(X.length<=Q.maxByteLength))return!1;if(P(Q.minByteLength)&&!(X.length>=Q.minByteLength))return!1;return!0}function X4(Q,Y,X){return!0}function Y4(Q,Y,X){return _.IsVoidLike(X)}function Z4(Q,Y,X){if(!r.Has(Q[j]))return!1;return r.Get(Q[j])(Q,X)}function y(Q,Y,X){let Z=P(Q.$id)?w1(Q,Y):Y,G=Q;switch(G[j]){case"Any":return CY(G,Z,X);case"Argument":return OY(G,Z,X);case"Array":return xY(G,Z,X);case"AsyncIterator":return FY(G,Z,X);case"BigInt":return KY(G,Z,X);case"Boolean":return gY(G,Z,X);case"Constructor":return _Y(G,Z,X);case"Date":return kY(G,Z,X);case"Function":return EY(G,Z,X);case"Import":return VY(G,Z,X);case"Integer":return TY(G,Z,X);case"Intersect":return IY(G,Z,X);case"Iterator":return dY(G,Z,X);case"Literal":return fY(G,Z,X);case"Never":return iY(G,Z,X);case"Not":return yY(G,Z,X);case"Null":return pY(G,Z,X);case"Number":return oY(G,Z,X);case"Object":return nY(G,Z,X);case"Promise":return mY(G,Z,X);case"Record":return tY(G,Z,X);case"Ref":return hY(G,Z,X);case"RegExp":return vY(G,Z,X);case"String":return cY(G,Z,X);case"Symbol":return uY(G,Z,X);case"TemplateLiteral":return lY(G,Z,X);case"This":return sY(G,Z,X);case"Tuple":return rY(G,Z,X);case"Undefined":return aY(G,Z,X);case"Union":return eY(G,Z,X);case"Uint8Array":return Q4(G,Z,X);case"Unknown":return X4(G,Z,X);case"Void":return Y4(G,Z,X);default:if(!r.Has(G[j]))throw new Z8(G);return Z4(G,Z,X)}}function S1(...Q){return Q.length===3?y(Q[0],Q[1],Q[2]):y(Q[0],[],Q[1])}var H;(function(Q){Q[Q.ArrayContains=0]="ArrayContains",Q[Q.ArrayMaxContains=1]="ArrayMaxContains",Q[Q.ArrayMaxItems=2]="ArrayMaxItems",Q[Q.ArrayMinContains=3]="ArrayMinContains",Q[Q.ArrayMinItems=4]="ArrayMinItems",Q[Q.ArrayUniqueItems=5]="ArrayUniqueItems",Q[Q.Array=6]="Array",Q[Q.AsyncIterator=7]="AsyncIterator",Q[Q.BigIntExclusiveMaximum=8]="BigIntExclusiveMaximum",Q[Q.BigIntExclusiveMinimum=9]="BigIntExclusiveMinimum",Q[Q.BigIntMaximum=10]="BigIntMaximum",Q[Q.BigIntMinimum=11]="BigIntMinimum",Q[Q.BigIntMultipleOf=12]="BigIntMultipleOf",Q[Q.BigInt=13]="BigInt",Q[Q.Boolean=14]="Boolean",Q[Q.DateExclusiveMaximumTimestamp=15]="DateExclusiveMaximumTimestamp",Q[Q.DateExclusiveMinimumTimestamp=16]="DateExclusiveMinimumTimestamp",Q[Q.DateMaximumTimestamp=17]="DateMaximumTimestamp",Q[Q.DateMinimumTimestamp=18]="DateMinimumTimestamp",Q[Q.DateMultipleOfTimestamp=19]="DateMultipleOfTimestamp",Q[Q.Date=20]="Date",Q[Q.Function=21]="Function",Q[Q.IntegerExclusiveMaximum=22]="IntegerExclusiveMaximum",Q[Q.IntegerExclusiveMinimum=23]="IntegerExclusiveMinimum",Q[Q.IntegerMaximum=24]="IntegerMaximum",Q[Q.IntegerMinimum=25]="IntegerMinimum",Q[Q.IntegerMultipleOf=26]="IntegerMultipleOf",Q[Q.Integer=27]="Integer",Q[Q.IntersectUnevaluatedProperties=28]="IntersectUnevaluatedProperties",Q[Q.Intersect=29]="Intersect",Q[Q.Iterator=30]="Iterator",Q[Q.Kind=31]="Kind",Q[Q.Literal=32]="Literal",Q[Q.Never=33]="Never",Q[Q.Not=34]="Not",Q[Q.Null=35]="Null",Q[Q.NumberExclusiveMaximum=36]="NumberExclusiveMaximum",Q[Q.NumberExclusiveMinimum=37]="NumberExclusiveMinimum",Q[Q.NumberMaximum=38]="NumberMaximum",Q[Q.NumberMinimum=39]="NumberMinimum",Q[Q.NumberMultipleOf=40]="NumberMultipleOf",Q[Q.Number=41]="Number",Q[Q.ObjectAdditionalProperties=42]="ObjectAdditionalProperties",Q[Q.ObjectMaxProperties=43]="ObjectMaxProperties",Q[Q.ObjectMinProperties=44]="ObjectMinProperties",Q[Q.ObjectRequiredProperty=45]="ObjectRequiredProperty",Q[Q.Object=46]="Object",Q[Q.Promise=47]="Promise",Q[Q.RegExp=48]="RegExp",Q[Q.StringFormatUnknown=49]="StringFormatUnknown",Q[Q.StringFormat=50]="StringFormat",Q[Q.StringMaxLength=51]="StringMaxLength",Q[Q.StringMinLength=52]="StringMinLength",Q[Q.StringPattern=53]="StringPattern",Q[Q.String=54]="String",Q[Q.Symbol=55]="Symbol",Q[Q.TupleLength=56]="TupleLength",Q[Q.Tuple=57]="Tuple",Q[Q.Uint8ArrayMaxByteLength=58]="Uint8ArrayMaxByteLength",Q[Q.Uint8ArrayMinByteLength=59]="Uint8ArrayMinByteLength",Q[Q.Uint8Array=60]="Uint8Array",Q[Q.Undefined=61]="Undefined",Q[Q.Union=62]="Union",Q[Q.Void=63]="Void"})(H||(H={}));class G8 extends T{constructor(Q){super("Unknown type");this.schema=Q}}function M1(Q){return Q.replace(/~/g,"~0").replace(/\//g,"~1")}function b(Q){return Q!==void 0}class N0{constructor(Q){this.iterator=Q}[Symbol.iterator](){return this.iterator}First(){let Q=this.iterator.next();return Q.done?void 0:Q.value}}function L(Q,Y,X,Z,G=[]){return{type:Q,schema:Y,path:X,value:Z,message:c0()({errorType:Q,path:X,schema:Y,value:Z,errors:G}),errors:G}}function*G4(Q,Y,X,Z){}function*W4(Q,Y,X,Z){}function*z4(Q,Y,X,Z){if(!V(Z))return yield L(H.Array,Q,X,Z);if(b(Q.minItems)&&!(Z.length>=Q.minItems))yield L(H.ArrayMinItems,Q,X,Z);if(b(Q.maxItems)&&!(Z.length<=Q.maxItems))yield L(H.ArrayMaxItems,Q,X,Z);for(let J=0;J<Z.length;J++)yield*p(Q.items,Y,`${X}/${J}`,Z[J]);if(Q.uniqueItems===!0&&!function(){let J=new Set;for(let q of Z){let A=d1(q);if(J.has(A))return!1;else J.add(A)}return!0}())yield L(H.ArrayUniqueItems,Q,X,Z);if(!(b(Q.contains)||b(Q.minContains)||b(Q.maxContains)))return;let G=b(Q.contains)?Q.contains:c(),W=Z.reduce((J,q,A)=>p(G,Y,`${X}${A}`,q).next().done===!0?J+1:J,0);if(W===0)yield L(H.ArrayContains,Q,X,Z);if(N(Q.minContains)&&W<Q.minContains)yield L(H.ArrayMinContains,Q,X,Z);if(N(Q.maxContains)&&W>Q.maxContains)yield L(H.ArrayMaxContains,Q,X,Z)}function*$4(Q,Y,X,Z){if(!u1(Z))yield L(H.AsyncIterator,Q,X,Z)}function*J4(Q,Y,X,Z){if(!a(Z))return yield L(H.BigInt,Q,X,Z);if(b(Q.exclusiveMaximum)&&!(Z<Q.exclusiveMaximum))yield L(H.BigIntExclusiveMaximum,Q,X,Z);if(b(Q.exclusiveMinimum)&&!(Z>Q.exclusiveMinimum))yield L(H.BigIntExclusiveMinimum,Q,X,Z);if(b(Q.maximum)&&!(Z<=Q.maximum))yield L(H.BigIntMaximum,Q,X,Z);if(b(Q.minimum)&&!(Z>=Q.minimum))yield L(H.BigIntMinimum,Q,X,Z);if(b(Q.multipleOf)&&Z%Q.multipleOf!==BigInt(0))yield L(H.BigIntMultipleOf,Q,X,Z)}function*H4(Q,Y,X,Z){if(!N1(Z))yield L(H.Boolean,Q,X,Z)}function*q4(Q,Y,X,Z){yield*p(Q.returns,Y,X,Z.prototype)}function*L4(Q,Y,X,Z){if(!F1(Z))return yield L(H.Date,Q,X,Z);if(b(Q.exclusiveMaximumTimestamp)&&!(Z.getTime()<Q.exclusiveMaximumTimestamp))yield L(H.DateExclusiveMaximumTimestamp,Q,X,Z);if(b(Q.exclusiveMinimumTimestamp)&&!(Z.getTime()>Q.exclusiveMinimumTimestamp))yield L(H.DateExclusiveMinimumTimestamp,Q,X,Z);if(b(Q.maximumTimestamp)&&!(Z.getTime()<=Q.maximumTimestamp))yield L(H.DateMaximumTimestamp,Q,X,Z);if(b(Q.minimumTimestamp)&&!(Z.getTime()>=Q.minimumTimestamp))yield L(H.DateMinimumTimestamp,Q,X,Z);if(b(Q.multipleOfTimestamp)&&Z.getTime()%Q.multipleOfTimestamp!==0)yield L(H.DateMultipleOfTimestamp,Q,X,Z)}function*M4(Q,Y,X,Z){if(!e1(Z))yield L(H.Function,Q,X,Z)}function*U4(Q,Y,X,Z){let G=globalThis.Object.values(Q.$defs),W=Q.$defs[Q.$ref];yield*p(W,[...Y,...G],X,Z)}function*R4(Q,Y,X,Z){if(!a1(Z))return yield L(H.Integer,Q,X,Z);if(b(Q.exclusiveMaximum)&&!(Z<Q.exclusiveMaximum))yield L(H.IntegerExclusiveMaximum,Q,X,Z);if(b(Q.exclusiveMinimum)&&!(Z>Q.exclusiveMinimum))yield L(H.IntegerExclusiveMinimum,Q,X,Z);if(b(Q.maximum)&&!(Z<=Q.maximum))yield L(H.IntegerMaximum,Q,X,Z);if(b(Q.minimum)&&!(Z>=Q.minimum))yield L(H.IntegerMinimum,Q,X,Z);if(b(Q.multipleOf)&&Z%Q.multipleOf!==0)yield L(H.IntegerMultipleOf,Q,X,Z)}function*A4(Q,Y,X,Z){let G=!1;for(let W of Q.allOf)for(let J of p(W,Y,X,Z))G=!0,yield J;if(G)return yield L(H.Intersect,Q,X,Z);if(Q.unevaluatedProperties===!1){let W=new RegExp(q1(Q));for(let J of Object.getOwnPropertyNames(Z))if(!W.test(J))yield L(H.IntersectUnevaluatedProperties,Q,`${X}/${J}`,Z)}if(typeof Q.unevaluatedProperties==="object"){let W=new RegExp(q1(Q));for(let J of Object.getOwnPropertyNames(Z))if(!W.test(J)){let q=p(Q.unevaluatedProperties,Y,`${X}/${J}`,Z[J]).next();if(!q.done)yield q.value}}}function*B4(Q,Y,X,Z){if(!l1(Z))yield L(H.Iterator,Q,X,Z)}function*j4(Q,Y,X,Z){if(Z!==Q.const)yield L(H.Literal,Q,X,Z)}function*w4(Q,Y,X,Z){yield L(H.Never,Q,X,Z)}function*D4(Q,Y,X,Z){if(p(Q.not,Y,X,Z).next().done===!0)yield L(H.Not,Q,X,Z)}function*N4(Q,Y,X,Z){if(!D1(Z))yield L(H.Null,Q,X,Z)}function*P4(Q,Y,X,Z){if(!_.IsNumberLike(Z))return yield L(H.Number,Q,X,Z);if(b(Q.exclusiveMaximum)&&!(Z<Q.exclusiveMaximum))yield L(H.NumberExclusiveMaximum,Q,X,Z);if(b(Q.exclusiveMinimum)&&!(Z>Q.exclusiveMinimum))yield L(H.NumberExclusiveMinimum,Q,X,Z);if(b(Q.maximum)&&!(Z<=Q.maximum))yield L(H.NumberMaximum,Q,X,Z);if(b(Q.minimum)&&!(Z>=Q.minimum))yield L(H.NumberMinimum,Q,X,Z);if(b(Q.multipleOf)&&Z%Q.multipleOf!==0)yield L(H.NumberMultipleOf,Q,X,Z)}function*b4(Q,Y,X,Z){if(!_.IsObjectLike(Z))return yield L(H.Object,Q,X,Z);if(b(Q.minProperties)&&!(Object.getOwnPropertyNames(Z).length>=Q.minProperties))yield L(H.ObjectMinProperties,Q,X,Z);if(b(Q.maxProperties)&&!(Object.getOwnPropertyNames(Z).length<=Q.maxProperties))yield L(H.ObjectMaxProperties,Q,X,Z);let G=Array.isArray(Q.required)?Q.required:[],W=Object.getOwnPropertyNames(Q.properties),J=Object.getOwnPropertyNames(Z);for(let q of G){if(J.includes(q))continue;yield L(H.ObjectRequiredProperty,Q.properties[q],`${X}/${M1(q)}`,void 0)}if(Q.additionalProperties===!1){for(let q of J)if(!W.includes(q))yield L(H.ObjectAdditionalProperties,Q,`${X}/${M1(q)}`,Z[q])}if(typeof Q.additionalProperties==="object")for(let q of J){if(W.includes(q))continue;yield*p(Q.additionalProperties,Y,`${X}/${M1(q)}`,Z[q])}for(let q of W){let A=Q.properties[q];if(Q.required&&Q.required.includes(q)){if(yield*p(A,Y,`${X}/${M1(q)}`,Z[q]),L1(Q)&&!(q in Z))yield L(H.ObjectRequiredProperty,A,`${X}/${M1(q)}`,void 0)}else if(_.IsExactOptionalProperty(Z,q))yield*p(A,Y,`${X}/${M1(q)}`,Z[q])}}function*S4(Q,Y,X,Z){if(!s1(Z))yield L(H.Promise,Q,X,Z)}function*C4(Q,Y,X,Z){if(!_.IsRecordLike(Z))return yield L(H.Object,Q,X,Z);if(b(Q.minProperties)&&!(Object.getOwnPropertyNames(Z).length>=Q.minProperties))yield L(H.ObjectMinProperties,Q,X,Z);if(b(Q.maxProperties)&&!(Object.getOwnPropertyNames(Z).length<=Q.maxProperties))yield L(H.ObjectMaxProperties,Q,X,Z);let[G,W]=Object.entries(Q.patternProperties)[0],J=new RegExp(G);for(let[q,A]of Object.entries(Z))if(J.test(q))yield*p(W,Y,`${X}/${M1(q)}`,A);if(typeof Q.additionalProperties==="object"){for(let[q,A]of Object.entries(Z))if(!J.test(q))yield*p(Q.additionalProperties,Y,`${X}/${M1(q)}`,A)}if(Q.additionalProperties===!1)for(let[q,A]of Object.entries(Z)){if(J.test(q))continue;return yield L(H.ObjectAdditionalProperties,Q,`${X}/${M1(q)}`,A)}}function*O4(Q,Y,X,Z){yield*p(i(Q,Y),Y,X,Z)}function*x4(Q,Y,X,Z){if(!f(Z))return yield L(H.String,Q,X,Z);if(b(Q.minLength)&&!(Z.length>=Q.minLength))yield L(H.StringMinLength,Q,X,Z);if(b(Q.maxLength)&&!(Z.length<=Q.maxLength))yield L(H.StringMaxLength,Q,X,Z);if(!new RegExp(Q.source,Q.flags).test(Z))return yield L(H.RegExp,Q,X,Z)}function*F4(Q,Y,X,Z){if(!f(Z))return yield L(H.String,Q,X,Z);if(b(Q.minLength)&&!(Z.length>=Q.minLength))yield L(H.StringMinLength,Q,X,Z);if(b(Q.maxLength)&&!(Z.length<=Q.maxLength))yield L(H.StringMaxLength,Q,X,Z);if(f(Q.pattern)){if(!new RegExp(Q.pattern).test(Z))yield L(H.StringPattern,Q,X,Z)}if(f(Q.format)){if(!Q1.Has(Q.format))yield L(H.StringFormatUnknown,Q,X,Z);else if(!Q1.Get(Q.format)(Z))yield L(H.StringFormat,Q,X,Z)}}function*K4(Q,Y,X,Z){if(!P1(Z))yield L(H.Symbol,Q,X,Z)}function*g4(Q,Y,X,Z){if(!f(Z))return yield L(H.String,Q,X,Z);if(!new RegExp(Q.pattern).test(Z))yield L(H.StringPattern,Q,X,Z)}function*_4(Q,Y,X,Z){yield*p(i(Q,Y),Y,X,Z)}function*k4(Q,Y,X,Z){if(!V(Z))return yield L(H.Tuple,Q,X,Z);if(Q.items===void 0&&Z.length!==0)return yield L(H.TupleLength,Q,X,Z);if(Z.length!==Q.maxItems)return yield L(H.TupleLength,Q,X,Z);if(!Q.items)return;for(let G=0;G<Q.items.length;G++)yield*p(Q.items[G],Y,`${X}/${G}`,Z[G])}function*E4(Q,Y,X,Z){if(!v(Z))yield L(H.Undefined,Q,X,Z)}function*V4(Q,Y,X,Z){if(S1(Q,Y,Z))return;let G=Q.anyOf.map((W)=>new N0(p(W,Y,X,Z)));yield L(H.Union,Q,X,Z,G)}function*T4(Q,Y,X,Z){if(!K1(Z))return yield L(H.Uint8Array,Q,X,Z);if(b(Q.maxByteLength)&&!(Z.length<=Q.maxByteLength))yield L(H.Uint8ArrayMaxByteLength,Q,X,Z);if(b(Q.minByteLength)&&!(Z.length>=Q.minByteLength))yield L(H.Uint8ArrayMinByteLength,Q,X,Z)}function*I4(Q,Y,X,Z){}function*d4(Q,Y,X,Z){if(!_.IsVoidLike(Z))yield L(H.Void,Q,X,Z)}function*f4(Q,Y,X,Z){if(!r.Get(Q[j])(Q,Z))yield L(H.Kind,Q,X,Z)}function*p(Q,Y,X,Z){let G=b(Q.$id)?[...Y,Q]:Y,W=Q;switch(W[j]){case"Any":return yield*G4(W,G,X,Z);case"Argument":return yield*W4(W,G,X,Z);case"Array":return yield*z4(W,G,X,Z);case"AsyncIterator":return yield*$4(W,G,X,Z);case"BigInt":return yield*J4(W,G,X,Z);case"Boolean":return yield*H4(W,G,X,Z);case"Constructor":return yield*q4(W,G,X,Z);case"Date":return yield*L4(W,G,X,Z);case"Function":return yield*M4(W,G,X,Z);case"Import":return yield*U4(W,G,X,Z);case"Integer":return yield*R4(W,G,X,Z);case"Intersect":return yield*A4(W,G,X,Z);case"Iterator":return yield*B4(W,G,X,Z);case"Literal":return yield*j4(W,G,X,Z);case"Never":return yield*w4(W,G,X,Z);case"Not":return yield*D4(W,G,X,Z);case"Null":return yield*N4(W,G,X,Z);case"Number":return yield*P4(W,G,X,Z);case"Object":return yield*b4(W,G,X,Z);case"Promise":return yield*S4(W,G,X,Z);case"Record":return yield*C4(W,G,X,Z);case"Ref":return yield*O4(W,G,X,Z);case"RegExp":return yield*x4(W,G,X,Z);case"String":return yield*F4(W,G,X,Z);case"Symbol":return yield*K4(W,G,X,Z);case"TemplateLiteral":return yield*g4(W,G,X,Z);case"This":return yield*_4(W,G,X,Z);case"Tuple":return yield*k4(W,G,X,Z);case"Undefined":return yield*E4(W,G,X,Z);case"Union":return yield*V4(W,G,X,Z);case"Uint8Array":return yield*T4(W,G,X,Z);case"Unknown":return yield*I4(W,G,X,Z);case"Void":return yield*d4(W,G,X,Z);default:if(!r.Has(W[j]))throw new G8(Q);return yield*f4(W,G,X,Z)}}function W8(...Q){let Y=Q.length===3?p(Q[0],Q[1],"",Q[2]):p(Q[0],[],"",Q[1]);return new N0(Y)}class P0 extends T{constructor(Q,Y,X){super("Unable to decode value as it does not match the expected schema");this.schema=Q,this.value=Y,this.error=X}}class z8 extends T{constructor(Q,Y,X,Z){super(Z instanceof Error?Z.message:"Unknown error");this.schema=Q,this.path=Y,this.value=X,this.error=Z}}function E(Q,Y,X){try{return F(Q)?Q[B1].Decode(X):X}catch(Z){throw new z8(Q,Y,X,Z)}}function i4(Q,Y,X,Z){return V(Z)?E(Q,X,Z.map((G,W)=>G1(Q.items,Y,`${X}/${W}`,G))):E(Q,X,Z)}function y4(Q,Y,X,Z){if(!s(Z)||Q0(Z))return E(Q,X,Z);let G=H0(Q),W=G.map((B)=>B[0]),J={...Z};for(let[B,x]of G)if(B in J)J[B]=G1(x,Y,`${X}/${B}`,J[B]);if(!F(Q.unevaluatedProperties))return E(Q,X,J);let q=Object.getOwnPropertyNames(J),A=Q.unevaluatedProperties,w={...J};for(let B of q)if(!W.includes(B))w[B]=E(A,`${X}/${B}`,w[B]);return E(Q,X,w)}function p4(Q,Y,X,Z){let G=globalThis.Object.values(Q.$defs),W=Q.$defs[Q.$ref],J=G1(W,[...Y,...G],X,Z);return E(Q,X,J)}function o4(Q,Y,X,Z){return E(Q,X,G1(Q.not,Y,X,Z))}function n4(Q,Y,X,Z){if(!s(Z))return E(Q,X,Z);let G=j1(Q),W={...Z};for(let w of G){if(!r1(W,w))continue;if(v(W[w])&&(!n1(Q.properties[w])||_.IsExactOptionalProperty(W,w)))continue;W[w]=G1(Q.properties[w],Y,`${X}/${w}`,W[w])}if(!u(Q.additionalProperties))return E(Q,X,W);let J=Object.getOwnPropertyNames(W),q=Q.additionalProperties,A={...W};for(let w of J)if(!G.includes(w))A[w]=E(q,`${X}/${w}`,A[w]);return E(Q,X,A)}function m4(Q,Y,X,Z){if(!s(Z))return E(Q,X,Z);let G=Object.getOwnPropertyNames(Q.patternProperties)[0],W=new RegExp(G),J={...Z};for(let B of Object.getOwnPropertyNames(Z))if(W.test(B))J[B]=G1(Q.patternProperties[G],Y,`${X}/${B}`,J[B]);if(!u(Q.additionalProperties))return E(Q,X,J);let q=Object.getOwnPropertyNames(J),A=Q.additionalProperties,w={...J};for(let B of q)if(!W.test(B))w[B]=E(A,`${X}/${B}`,w[B]);return E(Q,X,w)}function t4(Q,Y,X,Z){let G=i(Q,Y);return E(Q,X,G1(G,Y,X,Z))}function h4(Q,Y,X,Z){let G=i(Q,Y);return E(Q,X,G1(G,Y,X,Z))}function v4(Q,Y,X,Z){return V(Z)&&V(Q.items)?E(Q,X,Q.items.map((G,W)=>G1(G,Y,`${X}/${W}`,Z[W]))):E(Q,X,Z)}function c4(Q,Y,X,Z){for(let G of Q.anyOf){if(!S1(G,Y,Z))continue;let W=G1(G,Y,X,Z);return E(Q,X,W)}return E(Q,X,Z)}function G1(Q,Y,X,Z){let G=w1(Q,Y),W=Q;switch(Q[j]){case"Array":return i4(W,G,X,Z);case"Import":return p4(W,G,X,Z);case"Intersect":return y4(W,G,X,Z);case"Not":return o4(W,G,X,Z);case"Object":return n4(W,G,X,Z);case"Record":return m4(W,G,X,Z);case"Ref":return t4(W,G,X,Z);case"Symbol":return E(W,X,Z);case"This":return h4(W,G,X,Z);case"Tuple":return v4(W,G,X,Z);case"Union":return c4(W,G,X,Z);default:return E(W,X,Z)}}function $8(Q,Y,X){return G1(Q,Y,"",X)}class b0 extends T{constructor(Q,Y,X){super("The encoded value does not match the expected schema");this.schema=Q,this.value=Y,this.error=X}}class J8 extends T{constructor(Q,Y,X,Z){super(`${Z instanceof Error?Z.message:"Unknown error"}`);this.schema=Q,this.path=Y,this.value=X,this.error=Z}}function t(Q,Y,X){try{return F(Q)?Q[B1].Encode(X):X}catch(Z){throw new J8(Q,Y,X,Z)}}function u4(Q,Y,X,Z){let G=t(Q,X,Z);return V(G)?G.map((W,J)=>W1(Q.items,Y,`${X}/${J}`,W)):G}function l4(Q,Y,X,Z){let G=globalThis.Object.values(Q.$defs),W=Q.$defs[Q.$ref],J=t(Q,X,Z);return W1(W,[...Y,...G],X,J)}function s4(Q,Y,X,Z){let G=t(Q,X,Z);if(!s(Z)||Q0(Z))return G;let W=H0(Q),J=W.map((x)=>x[0]),q={...G};for(let[x,R1]of W)if(x in q)q[x]=W1(R1,Y,`${X}/${x}`,q[x]);if(!F(Q.unevaluatedProperties))return q;let A=Object.getOwnPropertyNames(q),w=Q.unevaluatedProperties,B={...q};for(let x of A)if(!J.includes(x))B[x]=t(w,`${X}/${x}`,B[x]);return B}function r4(Q,Y,X,Z){return t(Q.not,X,t(Q,X,Z))}function a4(Q,Y,X,Z){let G=t(Q,X,Z);if(!s(G))return G;let W=j1(Q),J={...G};for(let B of W){if(!r1(J,B))continue;if(v(J[B])&&(!n1(Q.properties[B])||_.IsExactOptionalProperty(J,B)))continue;J[B]=W1(Q.properties[B],Y,`${X}/${B}`,J[B])}if(!u(Q.additionalProperties))return J;let q=Object.getOwnPropertyNames(J),A=Q.additionalProperties,w={...J};for(let B of q)if(!W.includes(B))w[B]=t(A,`${X}/${B}`,w[B]);return w}function e4(Q,Y,X,Z){let G=t(Q,X,Z);if(!s(Z))return G;let W=Object.getOwnPropertyNames(Q.patternProperties)[0],J=new RegExp(W),q={...G};for(let x of Object.getOwnPropertyNames(Z))if(J.test(x))q[x]=W1(Q.patternProperties[W],Y,`${X}/${x}`,q[x]);if(!u(Q.additionalProperties))return q;let A=Object.getOwnPropertyNames(q),w=Q.additionalProperties,B={...q};for(let x of A)if(!J.test(x))B[x]=t(w,`${X}/${x}`,B[x]);return B}function QZ(Q,Y,X,Z){let G=i(Q,Y),W=W1(G,Y,X,Z);return t(Q,X,W)}function XZ(Q,Y,X,Z){let G=i(Q,Y),W=W1(G,Y,X,Z);return t(Q,X,W)}function YZ(Q,Y,X,Z){let G=t(Q,X,Z);return V(Q.items)?Q.items.map((W,J)=>W1(W,Y,`${X}/${J}`,G[J])):[]}function ZZ(Q,Y,X,Z){for(let G of Q.anyOf){if(!S1(G,Y,Z))continue;let W=W1(G,Y,X,Z);return t(Q,X,W)}for(let G of Q.anyOf){let W=W1(G,Y,X,Z);if(!S1(Q,Y,W))continue;return t(Q,X,W)}return t(Q,X,Z)}function W1(Q,Y,X,Z){let G=w1(Q,Y),W=Q;switch(Q[j]){case"Array":return u4(W,G,X,Z);case"Import":return l4(W,G,X,Z);case"Intersect":return s4(W,G,X,Z);case"Not":return r4(W,G,X,Z);case"Object":return a4(W,G,X,Z);case"Record":return e4(W,G,X,Z);case"Ref":return QZ(W,G,X,Z);case"This":return XZ(W,G,X,Z);case"Tuple":return YZ(W,G,X,Z);case"Union":return ZZ(W,G,X,Z);default:return t(W,X,Z)}}function H8(Q,Y,X){return W1(Q,Y,"",X)}function GZ(Q,Y){return F(Q)||d(Q.items,Y)}function WZ(Q,Y){return F(Q)||d(Q.items,Y)}function zZ(Q,Y){return F(Q)||d(Q.returns,Y)||Q.parameters.some((X)=>d(X,Y))}function $Z(Q,Y){return F(Q)||d(Q.returns,Y)||Q.parameters.some((X)=>d(X,Y))}function JZ(Q,Y){return F(Q)||F(Q.unevaluatedProperties)||Q.allOf.some((X)=>d(X,Y))}function HZ(Q,Y){let X=globalThis.Object.getOwnPropertyNames(Q.$defs).reduce((G,W)=>[...G,Q.$defs[W]],[]),Z=Q.$defs[Q.$ref];return F(Q)||d(Z,[...X,...Y])}function qZ(Q,Y){return F(Q)||d(Q.items,Y)}function LZ(Q,Y){return F(Q)||d(Q.not,Y)}function MZ(Q,Y){return F(Q)||Object.values(Q.properties).some((X)=>d(X,Y))||u(Q.additionalProperties)&&d(Q.additionalProperties,Y)}function UZ(Q,Y){return F(Q)||d(Q.item,Y)}function RZ(Q,Y){let X=Object.getOwnPropertyNames(Q.patternProperties)[0],Z=Q.patternProperties[X];return F(Q)||d(Z,Y)||u(Q.additionalProperties)&&F(Q.additionalProperties)}function AZ(Q,Y){if(F(Q))return!0;return d(i(Q,Y),Y)}function BZ(Q,Y){if(F(Q))return!0;return d(i(Q,Y),Y)}function jZ(Q,Y){return F(Q)||!v(Q.items)&&Q.items.some((X)=>d(X,Y))}function wZ(Q,Y){return F(Q)||Q.anyOf.some((X)=>d(X,Y))}function d(Q,Y){let X=w1(Q,Y),Z=Q;if(Q.$id&&S0.has(Q.$id))return!1;if(Q.$id)S0.add(Q.$id);switch(Q[j]){case"Array":return GZ(Z,X);case"AsyncIterator":return WZ(Z,X);case"Constructor":return zZ(Z,X);case"Function":return $Z(Z,X);case"Import":return HZ(Z,X);case"Intersect":return JZ(Z,X);case"Iterator":return qZ(Z,X);case"Not":return LZ(Z,X);case"Object":return MZ(Z,X);case"Promise":return UZ(Z,X);case"Record":return RZ(Z,X);case"Ref":return AZ(Z,X);case"This":return BZ(Z,X);case"Tuple":return jZ(Z,X);case"Union":return wZ(Z,X);default:return F(Q)}}var S0=new Set;function q8(Q,Y){return S0.clear(),d(Q,Y)}class L8{constructor(Q,Y,X,Z){this.schema=Q,this.references=Y,this.checkFunc=X,this.code=Z,this.hasTransform=q8(Q,Y)}Code(){return this.code}Schema(){return this.schema}References(){return this.references}Errors(Q){return W8(this.schema,this.references,Q)}Check(Q){return this.checkFunc(Q)}Decode(Q){if(!this.checkFunc(Q))throw new P0(this.schema,Q,this.Errors(Q).First());return this.hasTransform?$8(this.schema,this.references,Q):Q}Encode(Q){let Y=this.hasTransform?H8(this.schema,this.references,Q):Q;if(!this.checkFunc(Y))throw new b0(this.schema,Q,this.Errors(Q).First());return Y}}var U1;(function(Q){function Y(W){return W===36}Q.DollarSign=Y;function X(W){return W===95}Q.IsUnderscore=X;function Z(W){return W>=65&&W<=90||W>=97&&W<=122}Q.IsAlpha=Z;function G(W){return W>=48&&W<=57}Q.IsNumeric=G})(U1||(U1={}));var q0;(function(Q){function Y(W){if(W.length===0)return!1;return U1.IsNumeric(W.charCodeAt(0))}function X(W){if(Y(W))return!1;for(let J=0;J<W.length;J++){let q=W.charCodeAt(J);if(!(U1.IsAlpha(q)||U1.IsNumeric(q)||U1.DollarSign(q)||U1.IsUnderscore(q)))return!1}return!0}function Z(W){return W.replace(/'/g,"\\'")}function G(W,J){return X(J)?`${W}.${J}`:`${W}['${Z(J)}']`}Q.Encode=G})(q0||(q0={}));var C0;(function(Q){function Y(X){let Z=[];for(let G=0;G<X.length;G++){let W=X.charCodeAt(G);if(U1.IsNumeric(W)||U1.IsAlpha(W))Z.push(X.charAt(G));else Z.push(`_${W}_`)}return Z.join("").replace(/__/g,"_")}Q.Encode=Y})(C0||(C0={}));var O0;(function(Q){function Y(X){return X.replace(/'/g,"\\'")}Q.Escape=Y})(O0||(O0={}));class M8 extends T{constructor(Q){super("Unknown type");this.schema=Q}}class x0 extends T{constructor(Q){super("Preflight validation check failed to guard for the given schema");this.schema=Q}}var C1;(function(Q){function Y(J,q,A){return _.ExactOptionalPropertyTypes?`('${q}' in ${J} ? ${A} : true)`:`(${q0.Encode(J,q)} !== undefined ? ${A} : true)`}Q.IsExactOptionalProperty=Y;function X(J){return!_.AllowArrayObject?`(typeof ${J} === 'object' && ${J} !== null && !Array.isArray(${J}))`:`(typeof ${J} === 'object' && ${J} !== null)`}Q.IsObjectLike=X;function Z(J){return!_.AllowArrayObject?`(typeof ${J} === 'object' && ${J} !== null && !Array.isArray(${J}) && !(${J} instanceof Date) && !(${J} instanceof Uint8Array))`:`(typeof ${J} === 'object' && ${J} !== null && !(${J} instanceof Date) && !(${J} instanceof Uint8Array))`}Q.IsRecordLike=Z;function G(J){return _.AllowNaN?`typeof ${J} === 'number'`:`Number.isFinite(${J})`}Q.IsNumberLike=G;function W(J){return _.AllowNullVoid?`(${J} === undefined || ${J} === null)`:`${J} === undefined`}Q.IsVoidLike=W})(C1||(C1={}));var L0;(function(Q){function Y(z){return z[j]==="Any"||z[j]==="Unknown"}function*X(z,M,$){yield"true"}function*Z(z,M,$){yield"true"}function*G(z,M,$){yield`Array.isArray(${$})`;let[D,U]=[v1("value","any"),v1("acc","number")];if(N(z.maxItems))yield`${$}.length <= ${z.maxItems}`;if(N(z.minItems))yield`${$}.length >= ${z.minItems}`;let R=Y1(z.items,M,"value");if(yield`${$}.every((${D}) => ${R})`,k(z.contains)||N(z.minContains)||N(z.maxContains)){let g=k(z.contains)?z.contains:c(),l=Y1(g,M,"value"),H1=N(z.minContains)?[`(count >= ${z.minContains})`]:[],Z1=N(z.maxContains)?[`(count <= ${z.maxContains})`]:[],z1=`const count = value.reduce((${U}, ${D}) => ${l} ? acc + 1 : acc, 0)`,c1=["(count > 0)",...H1,...Z1].join(" && ");yield`((${D}) => { ${z1}; return ${c1}})(${$})`}if(z.uniqueItems===!0)yield`((${D}) => { const set = new Set(); for(const element of value) { const hashed = hash(element); if(set.has(hashed)) { return false } else { set.add(hashed) } } return true } )(${$})`}function*W(z,M,$){yield`(typeof value === 'object' && Symbol.asyncIterator in ${$})`}function*J(z,M,$){if(yield`(typeof ${$} === 'bigint')`,a(z.exclusiveMaximum))yield`${$} < BigInt(${z.exclusiveMaximum})`;if(a(z.exclusiveMinimum))yield`${$} > BigInt(${z.exclusiveMinimum})`;if(a(z.maximum))yield`${$} <= BigInt(${z.maximum})`;if(a(z.minimum))yield`${$} >= BigInt(${z.minimum})`;if(a(z.multipleOf))yield`(${$} % BigInt(${z.multipleOf})) === 0`}function*q(z,M,$){yield`(typeof ${$} === 'boolean')`}function*A(z,M,$){yield*O1(z.returns,M,`${$}.prototype`)}function*w(z,M,$){if(yield`(${$} instanceof Date) && Number.isFinite(${$}.getTime())`,N(z.exclusiveMaximumTimestamp))yield`${$}.getTime() < ${z.exclusiveMaximumTimestamp}`;if(N(z.exclusiveMinimumTimestamp))yield`${$}.getTime() > ${z.exclusiveMinimumTimestamp}`;if(N(z.maximumTimestamp))yield`${$}.getTime() <= ${z.maximumTimestamp}`;if(N(z.minimumTimestamp))yield`${$}.getTime() >= ${z.minimumTimestamp}`;if(N(z.multipleOfTimestamp))yield`(${$}.getTime() % ${z.multipleOfTimestamp}) === 0`}function*B(z,M,$){yield`(typeof ${$} === 'function')`}function*x(z,M,$){let D=globalThis.Object.getOwnPropertyNames(z.$defs).reduce((U,R)=>{return[...U,z.$defs[R]]},[]);yield*O1(h0(z.$ref),[...M,...D],$)}function*R1(z,M,$){if(yield`Number.isInteger(${$})`,N(z.exclusiveMaximum))yield`${$} < ${z.exclusiveMaximum}`;if(N(z.exclusiveMinimum))yield`${$} > ${z.exclusiveMinimum}`;if(N(z.maximum))yield`${$} <= ${z.maximum}`;if(N(z.minimum))yield`${$} >= ${z.minimum}`;if(N(z.multipleOf))yield`(${$} % ${z.multipleOf}) === 0`}function*j8(z,M,$){let D=z.allOf.map((U)=>Y1(U,M,$)).join(" && ");if(z.unevaluatedProperties===!1){let U=x1(`${new RegExp(q1(z))};`),R=`Object.getOwnPropertyNames(${$}).every(key => ${U}.test(key))`;yield`(${D} && ${R})`}else if(k(z.unevaluatedProperties)){let U=x1(`${new RegExp(q1(z))};`),R=`Object.getOwnPropertyNames(${$}).every(key => ${U}.test(key) || ${Y1(z.unevaluatedProperties,M,`${$}[key]`)})`;yield`(${D} && ${R})`}else yield`(${D})`}function*w8(z,M,$){yield`(typeof value === 'object' && Symbol.iterator in ${$})`}function*D8(z,M,$){if(typeof z.const==="number"||typeof z.const==="boolean")yield`(${$} === ${z.const})`;else yield`(${$} === '${O0.Escape(z.const)}')`}function*N8(z,M,$){yield"false"}function*P8(z,M,$){yield`(!${Y1(z.not,M,$)})`}function*b8(z,M,$){yield`(${$} === null)`}function*S8(z,M,$){if(yield C1.IsNumberLike($),N(z.exclusiveMaximum))yield`${$} < ${z.exclusiveMaximum}`;if(N(z.exclusiveMinimum))yield`${$} > ${z.exclusiveMinimum}`;if(N(z.maximum))yield`${$} <= ${z.maximum}`;if(N(z.minimum))yield`${$} >= ${z.minimum}`;if(N(z.multipleOf))yield`(${$} % ${z.multipleOf}) === 0`}function*C8(z,M,$){if(yield C1.IsObjectLike($),N(z.minProperties))yield`Object.getOwnPropertyNames(${$}).length >= ${z.minProperties}`;if(N(z.maxProperties))yield`Object.getOwnPropertyNames(${$}).length <= ${z.maxProperties}`;let D=Object.getOwnPropertyNames(z.properties);for(let U of D){let R=q0.Encode($,U),g=z.properties[U];if(z.required&&z.required.includes(U)){if(yield*O1(g,M,R),L1(g)||Y(g))yield`('${U}' in ${$})`}else{let l=Y1(g,M,R);yield C1.IsExactOptionalProperty($,U,l)}}if(z.additionalProperties===!1)if(z.required&&z.required.length===D.length)yield`Object.getOwnPropertyNames(${$}).length === ${D.length}`;else{let U=`[${D.map((R)=>`'${R}'`).join(", ")}]`;yield`Object.getOwnPropertyNames(${$}).every(key => ${U}.includes(key))`}if(typeof z.additionalProperties==="object"){let U=Y1(z.additionalProperties,M,`${$}[key]`),R=`[${D.map((g)=>`'${g}'`).join(", ")}]`;yield`(Object.getOwnPropertyNames(${$}).every(key => ${R}.includes(key) || ${U}))`}}function*O8(z,M,$){yield`${$} instanceof Promise`}function*x8(z,M,$){if(yield C1.IsRecordLike($),N(z.minProperties))yield`Object.getOwnPropertyNames(${$}).length >= ${z.minProperties}`;if(N(z.maxProperties))yield`Object.getOwnPropertyNames(${$}).length <= ${z.maxProperties}`;let[D,U]=Object.entries(z.patternProperties)[0],R=x1(`${new RegExp(D)}`),g=Y1(U,M,"value"),l=k(z.additionalProperties)?Y1(z.additionalProperties,M,$):z.additionalProperties===!1?"false":"true",H1=`(${R}.test(key) ? ${g} : ${l})`;yield`(Object.entries(${$}).every(([key, value]) => ${H1}))`}function*F8(z,M,$){let D=i(z,M);if(o.functions.has(z.$ref))return yield`${h1(z.$ref)}(${$})`;yield*O1(D,M,$)}function*K8(z,M,$){let D=x1(`${new RegExp(z.source,z.flags)};`);if(yield`(typeof ${$} === 'string')`,N(z.maxLength))yield`${$}.length <= ${z.maxLength}`;if(N(z.minLength))yield`${$}.length >= ${z.minLength}`;yield`${D}.test(${$})`}function*g8(z,M,$){if(yield`(typeof ${$} === 'string')`,N(z.maxLength))yield`${$}.length <= ${z.maxLength}`;if(N(z.minLength))yield`${$}.length >= ${z.minLength}`;if(z.pattern!==void 0)yield`${x1(`${new RegExp(z.pattern)};`)}.test(${$})`;if(z.format!==void 0)yield`format('${z.format}', ${$})`}function*_8(z,M,$){yield`(typeof ${$} === 'symbol')`}function*k8(z,M,$){yield`(typeof ${$} === 'string')`,yield`${x1(`${new RegExp(z.pattern)};`)}.test(${$})`}function*E8(z,M,$){yield`${h1(z.$ref)}(${$})`}function*V8(z,M,$){if(yield`Array.isArray(${$})`,z.items===void 0)return yield`${$}.length === 0`;yield`(${$}.length === ${z.maxItems})`;for(let D=0;D<z.items.length;D++)yield`${Y1(z.items[D],M,`${$}[${D}]`)}`}function*T8(z,M,$){yield`${$} === undefined`}function*I8(z,M,$){yield`(${z.anyOf.map((U)=>Y1(U,M,$)).join(" || ")})`}function*d8(z,M,$){if(yield`${$} instanceof Uint8Array`,N(z.maxByteLength))yield`(${$}.length <= ${z.maxByteLength})`;if(N(z.minByteLength))yield`(${$}.length >= ${z.minByteLength})`}function*f8(z,M,$){yield"true"}function*i8(z,M,$){yield C1.IsVoidLike($)}function*y8(z,M,$){let D=o.instances.size;o.instances.set(D,z),yield`kind('${z[j]}', ${D}, ${$})`}function*O1(z,M,$,D=!0){let U=f(z.$id)?[...M,z]:M,R=z;if(D&&f(z.$id)){let g=h1(z.$id);if(o.functions.has(g))return yield`${g}(${$})`;else{o.functions.set(g,"<deferred>");let l=F0(g,z,M,"value",!1);return o.functions.set(g,l),yield`${g}(${$})`}}switch(R[j]){case"Any":return yield*X(R,U,$);case"Argument":return yield*Z(R,U,$);case"Array":return yield*G(R,U,$);case"AsyncIterator":return yield*W(R,U,$);case"BigInt":return yield*J(R,U,$);case"Boolean":return yield*q(R,U,$);case"Constructor":return yield*A(R,U,$);case"Date":return yield*w(R,U,$);case"Function":return yield*B(R,U,$);case"Import":return yield*x(R,U,$);case"Integer":return yield*R1(R,U,$);case"Intersect":return yield*j8(R,U,$);case"Iterator":return yield*w8(R,U,$);case"Literal":return yield*D8(R,U,$);case"Never":return yield*N8(R,U,$);case"Not":return yield*P8(R,U,$);case"Null":return yield*b8(R,U,$);case"Number":return yield*S8(R,U,$);case"Object":return yield*C8(R,U,$);case"Promise":return yield*O8(R,U,$);case"Record":return yield*x8(R,U,$);case"Ref":return yield*F8(R,U,$);case"RegExp":return yield*K8(R,U,$);case"String":return yield*g8(R,U,$);case"Symbol":return yield*_8(R,U,$);case"TemplateLiteral":return yield*k8(R,U,$);case"This":return yield*E8(R,U,$);case"Tuple":return yield*V8(R,U,$);case"Undefined":return yield*T8(R,U,$);case"Union":return yield*I8(R,U,$);case"Uint8Array":return yield*d8(R,U,$);case"Unknown":return yield*f8(R,U,$);case"Void":return yield*i8(R,U,$);default:if(!r.Has(R[j]))throw new M8(z);return yield*y8(R,U,$)}}let o={language:"javascript",functions:new Map,variables:new Map,instances:new Map};function Y1(z,M,$,D=!0){return`(${[...O1(z,M,$,D)].join(" && ")})`}function h1(z){return`check_${C0.Encode(z)}`}function x1(z){let M=`local_${o.variables.size}`;return o.variables.set(M,`const ${M} = ${z}`),M}function F0(z,M,$,D,U=!0){let[R,g]=[`
|
|
3
|
+
`,(z1)=>"".padStart(z1," ")],l=v1("value","any"),H1=K0("boolean"),Z1=[...O1(M,$,D,U)].map((z1)=>`${g(4)}${z1}`).join(` &&${R}`);return`function ${z}(${l})${H1} {${R}${g(2)}return (${R}${Z1}${R}${g(2)})
|
|
4
|
+
}`}function v1(z,M){let $=o.language==="typescript"?`: ${M}`:"";return`${z}${$}`}function K0(z){return o.language==="typescript"?`: ${z}`:""}function p8(z,M,$){let D=F0("check",z,M,"value"),U=v1("value","any"),R=K0("boolean"),g=[...o.functions.values()],l=[...o.variables.values()],H1=f(z.$id)?`return function check(${U})${R} {
|
|
5
5
|
return ${h1(z.$id)}(value)
|
|
6
6
|
}`:`return ${D}`;return[...l,...g,H1].join(`
|
|
7
|
-
`)}function
|
|
7
|
+
`)}function g0(...z){let M={language:"javascript"},[$,D,U]=z.length===2&&V(z[1])?[z[0],z[1],M]:z.length===2&&!V(z[1])?[z[0],[],z[1]]:z.length===3?[z[0],z[1],z[2]]:z.length===1?[z[0],[],M]:[null,[],M];if(o.language=U.language,o.variables.clear(),o.functions.clear(),o.instances.clear(),!k($))throw new x0($);for(let R of D)if(!k(R))throw new x0(R);return p8($,D,U)}Q.Code=g0;function o8(z,M=[]){let $=g0(z,M,{language:"javascript"}),D=globalThis.Function("kind","format","hash",$),U=new Map(o.instances);function R(Z1,z1,c1){if(!r.Has(Z1)||!U.has(z1))return!1;let n8=r.Get(Z1),m8=U.get(z1);return n8(m8,c1)}function g(Z1,z1){if(!Q1.Has(Z1))return!1;return Q1.Get(Z1)(z1)}function l(Z1){return d1(Z1)}let H1=D(R,g,l);return new L8(z,M,H1,$)}Q.Compile=o8})(L0||(L0={}));var f1=(Q,Y=400)=>new Response(JSON.stringify(Q),{status:Y,headers:{"Content-Type":"application/json"}}),DZ=(Q)=>{let Y=L0.Compile(Q);return async(Z,G,W)=>{try{let J=await Z.json();if(!Y.Check(J)){let q=Y.Errors(J).First();return f1({status:"error",code:"VALIDATION_FAILED",message:q?.message||"Invalid input",path:q?.path||"body"})}return Z.parsedBody=J,W()}catch{return f1({status:"error",message:"Invalid JSON payload"})}}},NZ=(Q)=>{let Y=Q.properties||{},X=Object.keys(Y),Z=X.length;return async(W,J,q)=>{try{let A=await W.json();for(let w=0;w<Z;w++){let B=X[w];if(typeof A[B]!==Y[B]?.type)return f1({status:"error",code:"TYPE_MISMATCH",message:`Field '${B}' must be of type ${Y[B]?.type}`,field:B})}return W.parsedBody=A,q()}catch{return f1({status:"error",message:"Invalid JSON payload"})}}},PZ=(Q)=>{return async(X,Z,G)=>{try{let W=await X.json(),J=Q.safeParse(W);if(!J.success)return f1({status:"error",code:"ZOD_ERROR",errors:J.error.format()});return X.parsedBody=J.data,G()}catch{return f1({status:"error",message:"Invalid JSON payload"})}}};class U8{routes=[];globalMiddlewares=[];_server=null;_reusePort=!0;get server(){return this._server}set server(Q){this._server=Q}wsHandler=null;router={GET:{},POST:{},PUT:{},PATCH:{},DELETE:{}};dynamicRoutes=[];poolIdx=0;pool=Array.from({length:1024},()=>new M0);use(Q){if(Q&&typeof Q==="object"&&"install"in Q)Q.install(this);else this.globalMiddlewares.push(Q);return this}compileHandler(Q,Y){return(X)=>{let Z=-1,G=async(W)=>{if(W<=Z)throw Error("next() called multiple times");Z=W;let J=W===Y.length?Q:Y[W];if(!J)return;return J.length>2?J(X.req,X.params,()=>G(W+1)):J(X,()=>G(W+1))};return G(0).then((W)=>{if(W&&W.constructor===Object)return Response.json(W,{status:X._status});return W})}}get=(Q,...Y)=>{return this.routes.push({method:"GET",path:Q,handlers:Y}),this};post=(Q,...Y)=>{return this.routes.push({method:"POST",path:Q,handlers:Y}),this};put=(Q,...Y)=>{return this.routes.push({method:"PUT",path:Q,handlers:Y}),this};patch=(Q,...Y)=>{return this.routes.push({method:"PATCH",path:Q,handlers:Y}),this};delete=(Q,...Y)=>{return this.routes.push({method:"DELETE",path:Q,handlers:Y}),this};ws=(Q,Y)=>{return this.wsHandler={path:Q,handlers:Y},this};fetch=(Q,Y)=>{let X=Q.url,Z=X.indexOf("/",8),G=Z===-1?"/":X.slice(Z),W=Q.method,J=this.router[W]?.[G];if(J)return J(this.pool[this.poolIdx++&1023].reset(Q,{}));for(let q=0;q<this.dynamicRoutes.length;q++){let A=this.dynamicRoutes[q];if(A.m===W&&A.r.test(G)){let w=A.r.exec(G),B=Object.create(null);for(let R1=0;R1<A.p.length;R1++)B[A.p[R1]]=w[R1+1];let x=this.pool[this.poolIdx++&1023].reset(Q,B);return A.c(x)}}return new Response("404 Not Found",{status:404})};compile(){for(let Q of this.routes){let Y=[...this.globalMiddlewares,...Q.handlers],X=Y.length,Z=(G)=>{if(G===X)return()=>new Response(null,{status:404});let W=Y[G],J=Z(G+1);return(q)=>{let A=W.length>2?W(q.req,q.params,()=>J(q)):W(q,()=>J(q));if(A&&A.constructor===Object)return Response.json(A,{status:q._status});return A}};if(Q.path.includes(":")){let G=[],W=Q.path.replace(/:([^/]+)/g,(J,q)=>{return G.push(q),"([^/]+)"});this.dynamicRoutes.push({m:Q.method,r:new RegExp(`^${W}$`),p:G,c:Z(0)})}else this.router[Q.method][Q.path]=Z(0)}}async listen(Q,Y){this.compile();let X=3000,Z="0.0.0.0";if(typeof Q==="number"){if(X=Q,typeof Y==="string")Z=Y}else if(typeof Q==="string"){if(!isNaN(Number(Q)))X=Number(Q);else Z=Q;if(typeof Y==="number")X=Y}let G={hostname:Z,port:X,reusePort:this._reusePort,fetch:this.fetch};if(this.wsHandler)G.websocket={open:(J)=>this.wsHandler?.handlers.open?.(J),message:(J,q)=>this.wsHandler?.handlers.message?.(J,q),close:(J,q,A)=>this.wsHandler?.handlers.close?.(J,q,A),drain:(J)=>this.wsHandler?.handlers.drain?.(J)};this.server=Bun.serve(G),console.log(`[BAREJS] \uD83D\uDE80 Server started at http://${Z}:${X}`);let W=()=>{if(this.server)this.server.stop(),process.exit(0)};return process.on("SIGINT",W),process.on("SIGTERM",W),this.server}}var bZ=async(Q,Y,X)=>{let Z=performance.now(),G=new URL(Q.url).pathname,W=await X(),J=(performance.now()-Z).toFixed(2),q=W instanceof Response?W.status:200,A=q>=500?"\x1B[31m":q>=400?"\x1B[33m":"\x1B[32m";return console.log(` \x1B[90m${new Date().toLocaleTimeString()}\x1B[0m \x1B[1m\x1B[38;5;117m${Q.method.padEnd(7)}\x1B[0m \x1B[38;5;250m${G}\x1B[0m ${A}${q}\x1B[0m \x1B[90m(${J}ms)\x1B[0m`),W};var SZ=(Q={})=>{let Y=Q.origin||"*",X=Q.methods||"GET,POST,PUT,PATCH,DELETE,OPTIONS";return async(G,W,J)=>{if(G.method==="OPTIONS")return new Response(null,{status:204,headers:{"Access-Control-Allow-Origin":Y,"Access-Control-Allow-Methods":X,"Access-Control-Allow-Headers":"Content-Type, Authorization"}});let q=await J();if(q instanceof Response)q.headers.set("Access-Control-Allow-Origin",Y),q.headers.set("Access-Control-Allow-Methods",X);return q}};import{join as R8,normalize as CZ,sep as OZ}from"path";var xZ=(Q="public",Y={index:"index.html"})=>{return async(X,Z)=>{if(X.req.method!=="GET"&&X.req.method!=="HEAD")return Z();let G=new URL(X.req.url),W=decodeURIComponent(G.pathname),J=CZ(W).replace(/^(\.\.(\/|\\|$))+/,""),q=R8(process.cwd(),Q,J);if(q.endsWith(OZ)||await Bun.file(q).exists()===!1){let w=R8(q,Y.index);if(await Bun.file(w).exists())q=w;else return Z()}let A=Bun.file(q);if(await A.exists())return new Response(A);return Z()}};var A8=new TextEncoder,B8=async(Q,Y)=>{let X=Bun.crypto.hmac("sha256",Y,Q);return Buffer.from(X).toString("hex")},FZ=async(Q,Y,X)=>{let Z=await B8(Q,X);return Bun.crypto.timingSafeEqual(A8.encode(Y),A8.encode(Z))},KZ=(Q)=>{return async(Y,X)=>{let Z=Y.req.headers.get("Authorization");if(!Z?.startsWith("Bearer "))return Y.status(401).json({status:"error",message:"Bearer token required"});let G=Z.split(" ")[1];if(!G)return Y.status(401).json({status:"error",message:"Invalid token format"});let W=G.split(".");if(W.length!==2)return Y.status(401).json({status:"error",message:"Malformed token"});let[J,q]=W;try{let A=Buffer.from(J,"base64").toString();if(!await FZ(A,q,Q))return Y.status(401).json({status:"error",message:"Invalid signature"});return Y.set("user",JSON.parse(A)),X()}catch(A){return Y.status(401).json({status:"error",message:"Token verification failed"})}}};var gZ={hash:(Q)=>Bun.password.hash(Q,{algorithm:"argon2id"}),verify:(Q,Y)=>Bun.password.verify(Q,Y)},_Z=async(Q,Y)=>{let X=JSON.stringify(Q),Z=Buffer.from(X).toString("base64"),G=await B8(X,Y);return`${Z}.${G}`};export{PZ as zod,DZ as typebox,xZ as staticFile,NZ as native,bZ as logger,_Z as createToken,SZ as cors,KZ as bareAuth,gZ as Password,U8 as BareJS};
|
package/dist/types/bare.d.ts
CHANGED
|
@@ -1,32 +1,33 @@
|
|
|
1
|
+
import { type Middleware, type WSHandlers } from './context';
|
|
1
2
|
export * from './context';
|
|
2
3
|
export * from './validators';
|
|
3
|
-
import type { Middleware, WSHandlers } from './context';
|
|
4
4
|
import type { Server } from "bun";
|
|
5
5
|
export interface BarePlugin {
|
|
6
|
-
name: string;
|
|
7
|
-
version: string;
|
|
8
6
|
install: (app: BareJS) => void;
|
|
9
7
|
}
|
|
10
8
|
export declare class BareJS {
|
|
11
9
|
private routes;
|
|
12
10
|
private globalMiddlewares;
|
|
13
|
-
private compiledFetch?;
|
|
14
|
-
private _reusePort;
|
|
15
11
|
private _server;
|
|
16
|
-
private
|
|
17
|
-
private dynamicRoutes;
|
|
18
|
-
private wsHandler;
|
|
12
|
+
private _reusePort;
|
|
19
13
|
get server(): Server<any> | null;
|
|
20
14
|
set server(value: Server<any> | null);
|
|
15
|
+
private wsHandler;
|
|
16
|
+
private router;
|
|
17
|
+
private dynamicRoutes;
|
|
18
|
+
private poolIdx;
|
|
19
|
+
private pool;
|
|
20
|
+
use(arg: Middleware | {
|
|
21
|
+
install: (app: BareJS) => void;
|
|
22
|
+
}): this;
|
|
23
|
+
private compileHandler;
|
|
21
24
|
get: (path: string, ...h: any[]) => this;
|
|
22
25
|
post: (path: string, ...h: any[]) => this;
|
|
23
26
|
put: (path: string, ...h: any[]) => this;
|
|
24
27
|
patch: (path: string, ...h: any[]) => this;
|
|
25
28
|
delete: (path: string, ...h: any[]) => this;
|
|
26
29
|
ws: (path: string, handlers: WSHandlers) => this;
|
|
27
|
-
reusePort: (enabled: boolean) => this;
|
|
28
|
-
use: (arg: Middleware | BarePlugin) => this;
|
|
29
|
-
private compile;
|
|
30
30
|
fetch: (req: Request, server?: Server<any>) => any;
|
|
31
|
+
compile(): void;
|
|
31
32
|
listen(arg1?: number | string, arg2?: number | string): Promise<Server<any>>;
|
|
32
33
|
}
|
package/dist/types/context.d.ts
CHANGED
|
@@ -1,23 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* High-performance Middleware signature
|
|
3
|
-
* Arguments are passed directly to avoid object allocation overhead.
|
|
4
|
-
*/
|
|
5
|
-
export type Middleware = (req: Request, params: Record<string, string>, next: Next) => any;
|
|
6
1
|
export type Next = () => any;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* Extends the native Request with params and high-speed state
|
|
10
|
-
*/
|
|
11
|
-
export type Context = Request & {
|
|
2
|
+
export declare class Context {
|
|
3
|
+
req: Request;
|
|
12
4
|
params: Record<string, string>;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
5
|
+
_status: number;
|
|
6
|
+
store: any;
|
|
7
|
+
body: any;
|
|
8
|
+
reset(req: Request, params: Record<string, string>): this;
|
|
9
|
+
status(code: number): this;
|
|
10
|
+
json(data: any): any;
|
|
11
|
+
set(k: string, v: any): void;
|
|
12
|
+
get(k: string): any;
|
|
13
|
+
}
|
|
20
14
|
export type Handler = (c: Context, next: Next) => any;
|
|
15
|
+
export type Middleware = ((ctx: Context, next: Next) => any) | ((req: Request, params: Record<string, string>, next: Next) => any);
|
|
21
16
|
export interface WSHandlers {
|
|
22
17
|
open?: (ws: any) => void;
|
|
23
18
|
message?: (ws: any, message: string | Buffer) => void;
|
package/dist/types/cors.d.ts
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { BareJS } from './bare';
|
|
2
|
-
export
|
|
2
|
+
export interface BarePlugin {
|
|
3
|
+
install: (app: any) => void;
|
|
4
|
+
}
|
|
3
5
|
export type { Middleware, Handler, Next, WSHandlers, Context } from './context';
|
|
4
6
|
export { typebox, native, zod } from './validators';
|
|
5
7
|
export { logger } from './logger';
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import type { Middleware } from './context';
|
|
2
1
|
/**
|
|
3
2
|
* TypeBox Validator (JIT Compiled)
|
|
4
3
|
*/
|
|
5
|
-
export declare const typebox: (schema: any) =>
|
|
4
|
+
export declare const typebox: (schema: any) => (req: Request, params: Record<string, string>, next: import("./context").Next) => any;
|
|
6
5
|
/**
|
|
7
6
|
* Native Schema Validator
|
|
8
7
|
*/
|
|
9
|
-
export declare const native: (schema: any) =>
|
|
8
|
+
export declare const native: (schema: any) => (req: Request, params: Record<string, string>, next: import("./context").Next) => any;
|
|
10
9
|
/**
|
|
11
10
|
* Zod Validator
|
|
12
11
|
*/
|
|
13
|
-
export declare const zod: (schema: any) =>
|
|
12
|
+
export declare const zod: (schema: any) => (req: Request, params: Record<string, string>, next: import("./context").Next) => any;
|
package/package.json
CHANGED
package/src/bare.ts
CHANGED
|
@@ -1,140 +1,139 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
|
+
import { Context, type Middleware, type Handler, type WSHandlers } from './context';
|
|
2
3
|
export * from './context';
|
|
3
4
|
export * from './validators';
|
|
4
|
-
|
|
5
|
-
import type { Middleware, WSHandlers } from './context';
|
|
6
5
|
import type { Server, ServerWebSocket } from "bun";
|
|
7
|
-
|
|
8
6
|
export interface BarePlugin {
|
|
9
|
-
name: string;
|
|
10
|
-
version: string;
|
|
11
7
|
install: (app: BareJS) => void;
|
|
12
8
|
}
|
|
13
|
-
|
|
14
9
|
export class BareJS {
|
|
15
|
-
private routes: Array<{ method: string; path: string; handlers:
|
|
10
|
+
private routes: Array<{ method: string; path: string; handlers: any[] }> = [];
|
|
16
11
|
private globalMiddlewares: Array<Middleware> = [];
|
|
17
|
-
private
|
|
12
|
+
private _server: Server<any> | null = null;
|
|
18
13
|
|
|
19
14
|
private _reusePort: boolean = true;
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
public get server(): Server<any> | null { return this._server; }
|
|
16
|
+
public set server(value: Server<any> | null) { this._server = value; }
|
|
17
|
+
private wsHandler: { path: string; handlers: WSHandlers } | null = null;
|
|
22
18
|
|
|
23
|
-
private
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
r: RegExp;
|
|
27
|
-
p: string[];
|
|
28
|
-
c: Function;
|
|
29
|
-
}> = [];
|
|
19
|
+
private router: Record<string, Record<string, Function>> = {
|
|
20
|
+
GET: {}, POST: {}, PUT: {}, PATCH: {}, DELETE: {}
|
|
21
|
+
};
|
|
30
22
|
|
|
31
|
-
private
|
|
23
|
+
private dynamicRoutes: Array<{ m: string, r: RegExp, p: string[], c: Function }> = [];
|
|
24
|
+
private poolIdx = 0;
|
|
25
|
+
private pool: Context[] = Array.from({ length: 1024 }, () => new Context());
|
|
32
26
|
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
|
|
28
|
+
public use(arg: Middleware | { install: (app: BareJS) => void }) {
|
|
29
|
+
if (arg && typeof arg === 'object' && 'install' in arg) {
|
|
30
|
+
arg.install(this);
|
|
31
|
+
} else {
|
|
32
|
+
this.globalMiddlewares.push(arg as Middleware);
|
|
33
|
+
}
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private compileHandler(handler: Handler, middlewares: Middleware[]) {
|
|
38
|
+
// This is the core JIT function. It wraps everything into one fast call.
|
|
39
|
+
return (ctx: Context) => {
|
|
40
|
+
let index = -1;
|
|
41
|
+
const runner = async (idx: number): Promise<any> => {
|
|
42
|
+
if (idx <= index) throw new Error('next() called multiple times');
|
|
43
|
+
index = idx;
|
|
44
|
+
|
|
45
|
+
const fn = idx === middlewares.length ? handler : middlewares[idx];
|
|
46
|
+
|
|
47
|
+
if (!fn) return;
|
|
48
|
+
|
|
49
|
+
// Support both (ctx, next) and (req, params, next)
|
|
50
|
+
return (fn as any).length > 2
|
|
51
|
+
? (fn as any)(ctx.req, ctx.params, () => runner(idx + 1))
|
|
52
|
+
: (fn as any)(ctx, () => runner(idx + 1));
|
|
53
|
+
};
|
|
35
54
|
|
|
55
|
+
return runner(0).then((result) => {
|
|
56
|
+
// If the handler returned a raw object, wrap it with the status from Context
|
|
57
|
+
if (result && result.constructor === Object) {
|
|
58
|
+
return Response.json(result, { status: ctx._status });
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
});
|
|
62
|
+
};
|
|
63
|
+
}
|
|
36
64
|
public get = (path: string, ...h: any[]) => { this.routes.push({ method: "GET", path, handlers: h }); return this; };
|
|
37
65
|
public post = (path: string, ...h: any[]) => { this.routes.push({ method: "POST", path, handlers: h }); return this; };
|
|
38
66
|
public put = (path: string, ...h: any[]) => { this.routes.push({ method: "PUT", path, handlers: h }); return this; };
|
|
39
67
|
public patch = (path: string, ...h: any[]) => { this.routes.push({ method: "PATCH", path, handlers: h }); return this; };
|
|
40
68
|
public delete = (path: string, ...h: any[]) => { this.routes.push({ method: "DELETE", path, handlers: h }); return this; };
|
|
41
|
-
|
|
42
69
|
public ws = (path: string, handlers: WSHandlers) => {
|
|
43
70
|
this.wsHandler = { path, handlers };
|
|
44
71
|
return this;
|
|
45
|
-
}
|
|
72
|
+
}
|
|
46
73
|
|
|
47
|
-
public
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
74
|
+
public fetch = (req: Request, server?: Server<any>): any => {
|
|
75
|
+
const url = req.url;
|
|
76
|
+
const pathStart = url.indexOf('/', 8);
|
|
77
|
+
const path = pathStart === -1 ? '/' : url.slice(pathStart);
|
|
78
|
+
const method = req.method;
|
|
51
79
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
this.globalMiddlewares.push(arg as Middleware);
|
|
80
|
+
// 1. Static Lookup (FASTEST)
|
|
81
|
+
const handler = this.router[method]?.[path];
|
|
82
|
+
if (handler) {
|
|
83
|
+
return handler(this.pool[this.poolIdx++ & 1023]!.reset(req, {}));
|
|
57
84
|
}
|
|
58
|
-
return this;
|
|
59
|
-
};
|
|
60
85
|
|
|
61
|
-
|
|
62
|
-
this.
|
|
63
|
-
|
|
86
|
+
// 2. Dynamic Lookup (Fixing this part)
|
|
87
|
+
for (let i = 0; i < this.dynamicRoutes.length; i++) {
|
|
88
|
+
const d = this.dynamicRoutes[i]!;
|
|
89
|
+
if (d.m === method && d.r.test(path)) {
|
|
90
|
+
const match = d.r.exec(path)!;
|
|
91
|
+
const params = Object.create(null);
|
|
64
92
|
|
|
65
|
-
|
|
66
|
-
|
|
93
|
+
// Extract params
|
|
94
|
+
for (let k = 0; k < d.p.length; k++) {
|
|
95
|
+
params[d.p[k]!] = match[k + 1];
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
const ctx = this.pool[this.poolIdx++ & 1023]!.reset(req, params);
|
|
100
|
+
return d.c(ctx);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return new Response('404 Not Found', { status: 404 });
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
public compile() {
|
|
108
|
+
for (const route of this.routes) {
|
|
67
109
|
const pipeline = [...this.globalMiddlewares, ...route.handlers];
|
|
68
110
|
const pLen = pipeline.length;
|
|
69
111
|
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
const
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return new Response(null, { status: 404 });
|
|
112
|
+
const build = (idx: number): any => {
|
|
113
|
+
if (idx === pLen) return () => new Response(null, { status: 404 });
|
|
114
|
+
const h = pipeline[idx];
|
|
115
|
+
const next = build(idx + 1);
|
|
116
|
+
|
|
117
|
+
return (ctx: Context) => {
|
|
118
|
+
const res = h.length > 2
|
|
119
|
+
? h(ctx.req, ctx.params, () => next(ctx))
|
|
120
|
+
: h(ctx, () => next(ctx));
|
|
121
|
+
|
|
122
|
+
if (res && res.constructor === Object) return Response.json(res, { status: ctx._status });
|
|
123
|
+
return res;
|
|
83
124
|
};
|
|
84
|
-
return next();
|
|
85
125
|
};
|
|
86
126
|
|
|
87
|
-
if (route.path.
|
|
127
|
+
if (route.path.includes(':')) {
|
|
88
128
|
const pNames: string[] = [];
|
|
89
129
|
const regexPath = route.path.replace(/:([^/]+)/g, (_, n) => { pNames.push(n); return "([^/]+)"; });
|
|
90
|
-
this.dynamicRoutes.push({ m: route.method, r: new RegExp(`^${regexPath}$`), p: pNames, c:
|
|
130
|
+
this.dynamicRoutes.push({ m: route.method, r: new RegExp(`^${regexPath}$`), p: pNames, c: build(0) });
|
|
91
131
|
} else {
|
|
92
|
-
this.
|
|
132
|
+
this.router[route.method]![route.path] = build(0);
|
|
93
133
|
}
|
|
94
134
|
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* ✅ Added <any> to Server type in the fetch signature
|
|
98
|
-
*/
|
|
99
|
-
this.compiledFetch = (req: Request, server?: Server<any>): any => {
|
|
100
|
-
if (this.wsHandler && req.headers.get("upgrade") === "websocket") {
|
|
101
|
-
const s = req.url.indexOf('/', 8);
|
|
102
|
-
const path = s === -1 ? '/' : req.url.substring(s);
|
|
103
|
-
if (path === this.wsHandler.path) {
|
|
104
|
-
if (server?.upgrade(req)) return;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
const url = req.url;
|
|
109
|
-
const s = url.indexOf('/', 8);
|
|
110
|
-
const path = s === -1 ? '/' : url.substring(s);
|
|
111
|
-
const method = req.method;
|
|
112
|
-
|
|
113
|
-
const runner = this.staticMap.get(method + path);
|
|
114
|
-
if (runner) return runner(req, {});
|
|
115
|
-
|
|
116
|
-
const dRoutes = this.dynamicRoutes;
|
|
117
|
-
for (let j = 0; j < dRoutes.length; j++) {
|
|
118
|
-
const d = dRoutes[j]!;
|
|
119
|
-
if (d.m === method) {
|
|
120
|
-
const m = d.r.exec(path);
|
|
121
|
-
if (m) {
|
|
122
|
-
const params: Record<string, string> = {};
|
|
123
|
-
for (let k = 0; k < d.p.length; k++) params[d.p[k]!] = m[k + 1]!;
|
|
124
|
-
return d.c(req, params);
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return new Response('404 Not Found', { status: 404 });
|
|
129
|
-
};
|
|
130
135
|
}
|
|
131
136
|
|
|
132
|
-
// ✅ Maintain consistency in the public fetch method
|
|
133
|
-
public fetch = (req: Request, server?: Server<any>) => {
|
|
134
|
-
if (!this.compiledFetch) this.compile();
|
|
135
|
-
return this.compiledFetch!(req, server);
|
|
136
|
-
};
|
|
137
|
-
|
|
138
137
|
public async listen(arg1?: number | string, arg2?: number | string) {
|
|
139
138
|
this.compile();
|
|
140
139
|
let port = 3000, host = '0.0.0.0';
|
|
@@ -153,7 +152,8 @@ export class BareJS {
|
|
|
153
152
|
hostname: host,
|
|
154
153
|
port: port,
|
|
155
154
|
reusePort: this._reusePort,
|
|
156
|
-
fetch: (req: Request, server: Server<any>) => this.fetch(req, server),
|
|
155
|
+
// fetch: (req: Request, server: Server<any>) => this.fetch(req, server),
|
|
156
|
+
fetch: this.fetch,
|
|
157
157
|
};
|
|
158
158
|
|
|
159
159
|
if (this.wsHandler) {
|
package/src/context.ts
CHANGED
|
@@ -1,32 +1,42 @@
|
|
|
1
|
+
export type Next = () => any;
|
|
1
2
|
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
) => any;
|
|
3
|
+
export class Context {
|
|
4
|
+
public req!: Request;
|
|
5
|
+
public params!: Record<string, string>;
|
|
6
|
+
public _status: number = 200;
|
|
7
|
+
public store: any = Object.create(null);
|
|
8
|
+
|
|
9
|
+
// ✅ Added 'body' for TypeBox/Validation support
|
|
10
|
+
public body: any = null;
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
public reset(req: Request, params: Record<string, string>) {
|
|
13
|
+
this.req = req;
|
|
14
|
+
this.params = params;
|
|
15
|
+
this._status = 200;
|
|
16
|
+
this.store = Object.create(null);
|
|
17
|
+
this.body = null; // Clean up for the next use in pool
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
public status(code: number) {
|
|
22
|
+
this._status = code;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// ✅ Added 'json' helper (Zero-cost: just returns the object)
|
|
27
|
+
public json(data: any) {
|
|
28
|
+
return data;
|
|
29
|
+
}
|
|
13
30
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
*/
|
|
18
|
-
export type Context = Request & {
|
|
19
|
-
params: Record<string, string>;
|
|
20
|
-
set: (key: string, value: any) => void;
|
|
21
|
-
get: <T>(key: string) => T;
|
|
22
|
-
// Metadata for internal use
|
|
23
|
-
store: Map<string, any>;
|
|
24
|
-
};
|
|
31
|
+
public set(k: string, v: any) { this.store[k] = v; }
|
|
32
|
+
public get(k: string) { return this.store[k]; }
|
|
33
|
+
}
|
|
25
34
|
|
|
26
|
-
|
|
27
|
-
* Unified Handler type for auto-inference
|
|
28
|
-
*/
|
|
35
|
+
// ✅ Improved Middleware type to support both (ctx) and (req, params) styles
|
|
29
36
|
export type Handler = (c: Context, next: Next) => any;
|
|
37
|
+
export type Middleware =
|
|
38
|
+
| ((ctx: Context, next: Next) => any)
|
|
39
|
+
| ((req: Request, params: Record<string, string>, next: Next) => any);
|
|
30
40
|
|
|
31
41
|
export interface WSHandlers {
|
|
32
42
|
open?: (ws: any) => void;
|
package/src/index.ts
CHANGED
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
// Core Class & Plugin Interface
|
|
4
4
|
export { BareJS } from './bare';
|
|
5
|
-
export type { BarePlugin } from './bare';
|
|
5
|
+
// export type { BarePlugin } from './bare';
|
|
6
|
+
export interface BarePlugin {
|
|
7
|
+
install: (app: any) => void;
|
|
8
|
+
}
|
|
6
9
|
|
|
7
10
|
// Context, Types & WebSocket
|
|
8
11
|
export type {
|