@schmock/faker 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -35,6 +35,27 @@ mock.pipe(
35
35
  mock("GET /users", undefined);
36
36
  ```
37
37
 
38
+ ## Limits
39
+
40
+ Every limit is checked when the plugin is created, and again on the generated
41
+ value where the schema alone cannot decide. A breach throws `ResourceLimitError`
42
+ with the `resource` below.
43
+
44
+ | `resource` | Constant | Bound |
45
+ |------------|----------|-------|
46
+ | `array_size`, `array_max_items` | `MAX_ARRAY_SIZE` | 10,000 items |
47
+ | `schema_nesting_depth` | `MAX_NESTING_DEPTH` | 15 levels |
48
+ | `schema_nodes` | `MAX_SCHEMA_NODES` | 50,000 distinct schema nodes |
49
+ | `generated_nodes` | `MAX_GENERATED_NODES` | 1,000,000 generated JSON nodes |
50
+ | `object_properties` | `MAX_OBJECT_PROPERTIES` | 10,000 properties per object |
51
+ | `string_length` | `MAX_STRING_LENGTH` | 65,536 UTF-16 code units per string |
52
+ | `generated_chars` | not exported | 16,777,216 UTF-16 code units per response |
53
+ | `schema_composition_depth` | not exported | 200 composition frames |
54
+
55
+ The constants are exported from `@schmock/faker`. See
56
+ [Generation limits](https://github.com/khalic-lab/schmock/blob/main/docs/api.md#generation-limits)
57
+ for faker-argument limits and what counts toward each bound.
58
+
38
59
  ## Documentation
39
60
 
40
61
  - [Getting started](https://github.com/khalic-lab/schmock/blob/main/docs/getting-started.md)
@@ -1,7 +1,5 @@
1
1
  export declare const MAX_ARRAY_SIZE = 10000;
2
2
  export declare const DEFAULT_ARRAY_COUNT = 3;
3
- export declare const DEEP_NESTING_THRESHOLD = 3;
4
- export declare const LARGE_ARRAY_THRESHOLD = 100;
5
3
  /**
6
4
  * How deep a schema may nest before generation is refused.
7
5
  *
@@ -76,6 +74,18 @@ export declare const MAX_OBJECT_PROPERTIES = 10000;
76
74
  * lengths large enough for one field to become an accidental bulk payload.
77
75
  */
78
76
  export declare const MAX_STRING_LENGTH = 65536;
77
+ /**
78
+ * Maximum number of UTF-16 code units one generated response may carry across
79
+ * all of its strings and object keys.
80
+ *
81
+ * The per-value limits alone multiply: 10,000 items of a 64 KiB string pass
82
+ * every one of them and still add up to 655M characters. 256 maximal strings
83
+ * (16M code units, about 32 MB in memory) is far past any realistic mock body
84
+ * and far short of what exhausts a process. Validation charges each string's
85
+ * `minLength` against it, so a schema that can only overshoot is refused when
86
+ * the plugin is created; the generated value is checked against it too.
87
+ */
88
+ export declare const MAX_GENERATED_CHARS: number;
79
89
  /**
80
90
  * Reference date used when generation must be reproducible.
81
91
  * Faker's `date.*` methods default their reference date to `Date.now()`, so a
@@ -85,4 +95,3 @@ export declare const MAX_STRING_LENGTH = 65536;
85
95
  */
86
96
  export declare const DETERMINISTIC_REF_DATE = "2024-01-01T00:00:00.000Z";
87
97
  export declare const NULLABLE_NULL_PROBABILITY = 0.05;
88
- //# sourceMappingURL=constants.d.ts.map
@@ -8,4 +8,3 @@ export interface FieldMapping {
8
8
  fakerArgs?: Record<string, unknown>;
9
9
  }
10
10
  export declare const ALL_FIELD_MAPPINGS: FieldMapping[];
11
- //# sourceMappingURL=field-mappings.d.ts.map
@@ -25,6 +25,8 @@ export declare const GENERATABLE_FORMATS: Set<string>;
25
25
  * "created_at" → ["created", "at"]
26
26
  * "HTMLParser" → ["html", "parser"]
27
27
  * "is_active" → ["is", "active"]
28
+ *
29
+ * Runs in time linear in the name's length.
28
30
  */
29
31
  export declare function tokenizeFieldName(name: string): string[];
30
32
  /**
@@ -33,10 +35,25 @@ export declare function tokenizeFieldName(name: string): string[];
33
35
  * 1.0 — exact full match (joined tokens equal joined keywords)
34
36
  * 0.9 — all keyword tokens found in field tokens with high coverage (>50%)
35
37
  * 0.8 — field ends with keyword tokens
36
- * 0.7 — substring match (keyword appears in joined field name)
38
+ * 0.7 — substring match: the keyword lines up with token edges ("urls"
39
+ * counts for "url"), or is at least 5 characters long ("myemailfield")
37
40
  * 0.65 — all keyword tokens found but low coverage (<=50%)
41
+ *
42
+ * A field ending in a qualifier (type, status, format, code, kind) that the
43
+ * keyword does not end with only scores on the 1.0 and 0.8 tiers.
38
44
  */
39
45
  export declare function scoreMatch(fieldTokens: string[], keywords: string[]): number;
46
+ /**
47
+ * The single rule every heuristic in this package obeys: a schema that states
48
+ * its own value source is never re-routed by the field name.
49
+ *
50
+ * `default` (which the OpenAPI normalizer also derives from `example`),
51
+ * `const`, `enum` and `pattern` fix or constrain the value itself; `faker`
52
+ * and `$ref` delegate it explicitly. `format` is handled by the caller, since
53
+ * `format: "uuid"` agrees with a name mapping and an unknown format defers to
54
+ * it.
55
+ */
56
+ export declare function declaresExplicitValue(schema: JSONSchema7): boolean;
40
57
  interface MatchResult {
41
58
  mapping: FieldMapping;
42
59
  score: number;
@@ -47,4 +64,3 @@ interface MatchResult {
47
64
  */
48
65
  export declare function findBestMapping(fieldName: string, schema: JSONSchema7, mappings?: FieldMapping[]): MatchResult | undefined;
49
66
  export {};
50
- //# sourceMappingURL=field-name-matcher.d.ts.map
package/dist/index.d.ts CHANGED
@@ -1,8 +1,19 @@
1
1
  import type * as Schmock from "@schmock/core";
2
- import { MAX_OBJECT_PROPERTIES, MAX_STRING_LENGTH } from "./constants.js";
2
+ import { MAX_ARRAY_SIZE, MAX_GENERATED_NODES, MAX_NESTING_DEPTH, MAX_OBJECT_PROPERTIES, MAX_SCHEMA_NODES, MAX_STRING_LENGTH } from "./constants.js";
3
3
  export type SchemaGenerationContext = Schmock.SchemaGenerationContext;
4
4
  export type FakerPluginOptions = Schmock.FakerPluginOptions;
5
- export { MAX_OBJECT_PROPERTIES, MAX_STRING_LENGTH };
5
+ /**
6
+ * Every generation ceiling, so callers can pre-check their input. A breach is
7
+ * reported as a `ResourceLimitError` naming the exceeded `resource`.
8
+ */
9
+ export { MAX_ARRAY_SIZE, MAX_GENERATED_NODES, MAX_NESTING_DEPTH, MAX_OBJECT_PROPERTIES, MAX_SCHEMA_NODES, MAX_STRING_LENGTH, };
6
10
  export declare function fakerPlugin(options: FakerPluginOptions): Schmock.Plugin;
11
+ /**
12
+ * Generate a value from a JSON Schema.
13
+ *
14
+ * The schema is validated on every call: the caller owns it and may change it
15
+ * between calls (an OpenAPI `onSchema` hook can edit a schema in place), so a
16
+ * cached verdict could be stale. `fakerPlugin` validates its private snapshot
17
+ * once instead.
18
+ */
7
19
  export declare function generateFromSchema(options: SchemaGenerationContext): Promise<unknown>;
8
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import{ResourceLimitError as X4,SchemaGenerationError as e7,SchemaValidationError as E0}from"@schmock/core";var X0="2.4.0";var E=1e4,i=3,n=3,c=100,C0=15,f0=20,Y0=50000,m=1e6,o=1e4,Z=65536,M0="2024-01-01T00:00:00.000Z",Z0=0.05;import{base as t6,en as s6,Faker as $6}from"@faker-js/faker";function u4(j){let q=j|0;return()=>{q=q+1831565813|0;let b=Math.imul(q^q>>>15,1|q);return b=b+Math.imul(b^b>>>7,61|b)^b,((b^b>>>14)>>>0)/4294967296}}function c0(j){let q=u4(j),b=0,K={next(){return b++,q()},int(P,V){return P+Math.floor(K.next()*(V-P+1))},bool(P=0.5){return K.next()<P},pick(P){return P[K.int(0,P.length-1)]},shuffle(P){let V=[...P];for(let B=V.length-1;B>0;B--){let U=K.int(0,B);[V[B],V[U]]=[V[U],V[B]]}return V},fork(){let P=Math.floor(K.next()*4294967296);return c0(P)}};return K}function l4(j){return null}function d4(j){return j.random.bool()}function t0(j,q,b=!1){let K=-1000,P=1000,V=!1,B=!1;if(j.minimum!==void 0)K=j.minimum;if(j.maximum!==void 0)P=j.maximum;if(j.exclusiveMinimum!==void 0)K=j.exclusiveMinimum,V=!0;if(j.exclusiveMaximum!==void 0)P=j.exclusiveMaximum,B=!0;if(j.multipleOf!==void 0)return h4(j.multipleOf,K,P,V,B,q);if(b){let w=V?Math.floor(K)+1:Math.ceil(K),L=B?Math.ceil(P)-1:Math.floor(P);return q.random.int(w,L)}let U=V?K+Number.EPSILON:K,W=B?P-Number.EPSILON:P;return U+q.random.next()*(W-U)}function h4(j,q,b,K,P,V){let B=Math.ceil(q/j),U=Math.floor(b/j);if(K&&B*j===q)B++;if(P&&U*j===b)U--;if(B>U)return B*j;return V.random.int(B,U)*j}function o4(j,q){if(j.autoIncrement){let b=j.initialOffset??1,K=r4(q.path),P=q.autoIncrementCounters??new Map,V=(P.get(K)??b-1)+1;if(P.set(K,V),q.autoIncrementCounters)q.autoIncrementCounters.set(K,V);return V}return t0(j,q,!0)}function r4(j){return j.split("/").filter((q)=>q!==""&&!/^\d+$/.test(q)).join("/")}function v0(j,q){let b=s0(j,0);return s(b.node,q)}function s(j,q){switch(j.type){case"literal":return j.value;case"dot":return q.pick([..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#%&*()-_=+[]{}|;:',.<>/? "]);case"anchor":return"";case"charClass":return i4(j,q);case"sequence":return j.nodes.map((b)=>s(b,q)).join("");case"alternation":return s(q.pick(j.branches),q);case"quantifier":{let b=q.int(j.min,Math.min(j.max,j.min+5));return Array.from({length:b},()=>s(j.node,q)).join("")}case"group":return s(j.node,q)}}function i4(j,q){if(!j.negated)return q.pick(j.chars);let b=new Set(j.chars),K=[..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#%&*()-_=+[]{}|;:',.<>/? "].filter((P)=>!b.has(P));return K.length>0?q.pick(K):"a"}function s0(j,q){let b=[],K=[];while(q<j.length){let P=j[q];if(P===")")break;if(P==="|"){b.push(p0(K)),K=[],q++;continue}if(P==="("){let U=q+1;if(j[U]==="?")if(j[U+1]===":")U+=2;else if(j[U+1]==="="||j[U+1]==="!"){let I=1,C=U;while(C<j.length&&I>0){if(C++,j[C]==="(")I++;if(j[C]===")")I--}q=C+1;continue}else{U+=2;while(U<j.length&&j[U]!==">")U++;U++}let W=s0(j,U),w={type:"group",node:W.node};q=W.pos+1;let L=t(j,q,w);K.push(L.node),q=L.pos;continue}if(P==="["){let U=G4(j,q),W=t(j,U.pos,U.node);K.push(W.node),q=W.pos;continue}if(P==="."){let U={type:"dot"};q++;let W=t(j,q,U);K.push(W.node),q=W.pos;continue}if(P==="^"||P==="$"){K.push({type:"anchor"}),q++;continue}if(P==="\\"){q++;let U=m4(j,q);q=U.pos;let W=t(j,q,U.node);K.push(W.node),q=W.pos;continue}let V={type:"literal",value:P};q++;let B=t(j,q,V);K.push(B.node),q=B.pos}return b.push(p0(K)),{node:b.length===1?b[0]:{type:"alternation",branches:b},pos:q}}function p0(j){if(j.length===0)return{type:"literal",value:""};if(j.length===1)return j[0];return{type:"sequence",nodes:j}}function m4(j,q){let b=j[q];switch(q++,b){case"d":return{node:{type:"charClass",chars:[..."0123456789"],negated:!1},pos:q};case"D":return{node:{type:"charClass",chars:[..."0123456789"],negated:!0},pos:q};case"w":return{node:{type:"charClass",chars:[..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"],negated:!1},pos:q};case"W":return{node:{type:"charClass",chars:[..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"],negated:!0},pos:q};case"s":return{node:{type:"charClass",chars:[...`
2
- `],negated:!1},pos:q};case"S":return{node:{type:"charClass",chars:[...`
3
- `],negated:!0},pos:q};case"b":case"B":return{node:{type:"anchor"},pos:q};default:return{node:{type:"literal",value:b},pos:q}}}function G4(j,q){q++;let b=!1;if(j[q]==="^")b=!0,q++;let K=[];while(q<j.length&&j[q]!=="]"){if(j[q]==="\\"&&q+1<j.length){q++;let P=j[q];switch(P){case"d":K.push(..."0123456789");break;case"w":K.push(..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_");break;case"s":K.push(...`
4
- `);break;default:K.push(P)}q++;continue}if(q+2<j.length&&j[q+1]==="-"&&j[q+2]!=="]"){let P=j.charCodeAt(q),V=j.charCodeAt(q+2);for(let B=P;B<=V;B++)K.push(String.fromCharCode(B));q+=3;continue}K.push(j[q]),q++}return q++,{node:{type:"charClass",chars:K,negated:b},pos:q}}function t(j,q,b){if(q>=j.length)return{node:b,pos:q};let K=j[q],P,V;switch(K){case"*":P=0,V=5,q++;break;case"+":P=1,V=5,q++;break;case"?":P=0,V=1,q++;break;case"{":{let B=n4(j,q);if(B)P=B.min,V=B.max,q=B.pos;else return{node:b,pos:q};break}default:return{node:b,pos:q}}if(q<j.length&&(j[q]==="?"||j[q]==="+"))q++;return{node:{type:"quantifier",node:b,min:P,max:V},pos:q}}function n4(j,q){let b=j.slice(q).match(/^\{(\d+)(?:,(\d*))?\}/);if(!b)return null;let K=parseInt(b[1],10),P;if(b[2]===void 0)P=K;else if(b[2]==="")P=K+5;else P=parseInt(b[2],10);return{min:K,max:P,pos:q+b[0].length}}function X(j){return j<10?`0${j}`:`${j}`}function c4(j,q){return new Date(j,q,0).getDate()}var $0="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";function t4(j){if(j==="^"||j==="$"||j==="^$")return!1;return!0}function s4(j,q){if(j.format){if(j.format==="date-time"&&(q.minDateTime!==void 0||q.maxDateTime!==void 0))return $4(q);let B=q.formatRegistry.get(j.format);if(B){let U=B(q.random),W=q.minLength??j.minLength,w=q.maxLength??j.maxLength;if(W!==void 0&&U.length<W)return D0(U,W,q);if(w!==void 0&&U.length>w)return U.slice(0,w);return U}}if(j.pattern){let B=q.minLength??j.minLength,U=q.maxLength??j.maxLength,W=50;for(let I=0;I<50;I++){let C=v0(j.pattern,q.random);if(B!==void 0&&C.length<B)continue;if(U!==void 0&&C.length>U)continue;return C}let w=v0(j.pattern,q.random),L=t4(j.pattern);if(B!==void 0&&w.length<B){if(L)return D0(w,B,q)}if(U!==void 0&&w.length>U)return w.slice(0,U);return w}let b=j.minLength??0,K=j.maxLength??Math.max(b+10,10),P=q.random.int(b,K),V="";for(let B=0;B<P;B++)V+=q.random.pick([...$0]);if(q.maxLength!==void 0&&V.length>q.maxLength)V=V.slice(0,q.maxLength);if(q.minLength!==void 0&&V.length<q.minLength)V=D0(V,q.minLength,q);return V}function D0(j,q,b){while(j.length<q)j+=b.random.pick([...$0]);return j}function $4(j){let q=j.minDateTime?new Date(j.minDateTime):new Date("1970-01-01"),b=j.maxDateTime?new Date(j.maxDateTime):new Date,K=q.getTime(),P=b.getTime(),V=K+j.random.next()*(P-K),B=new Date(V),U=B.getFullYear(),W=X(B.getMonth()+1),w=X(B.getDate());return`${U}-${W}-${w}T01:01:01.0Z`}function u0(j,q){if(j.const!==void 0)return structuredClone(j.const);if(j.enum!==void 0&&j.enum.length>0){let b=j.enum;if(j.minimum!==void 0||j.maximum!==void 0||j.exclusiveMinimum!==void 0||j.exclusiveMaximum!==void 0||j.multipleOf!==void 0){let P=j.exclusiveMinimum??j.minimum??-1/0,V=j.exclusiveMaximum??j.maximum??1/0,B=j.exclusiveMinimum!==void 0,U=j.exclusiveMaximum!==void 0;b=b.filter((W)=>{if(typeof W!=="number")return!0;let w=B?W>P:W>=P,L=U?W<V:W<=V;if(!w||!L)return!1;if(j.multipleOf!==void 0){let I=j.multipleOf,C=I.toString().includes(".")?I.toString().split(".")[1].length:0,k=Math.pow(10,C),T=Math.round(W*k),S=Math.round(I*k);if(T%S!==0)return!1}return!0})}if(j.minLength!==void 0||j.maxLength!==void 0){let P=j.minLength??0,V=j.maxLength??1/0;b=b.filter((B)=>{if(typeof B!=="string")return!0;return B.length>=P&&B.length<=V})}if(j.minItems!==void 0||j.maxItems!==void 0){let P=j.minItems??0,V=j.maxItems??1/0;b=b.filter((B)=>{if(!Array.isArray(B))return!0;return B.length>=P&&B.length<=V})}if(j.minProperties!==void 0||j.maxProperties!==void 0){let P=j.minProperties??0,V=j.maxProperties??1/0;b=b.filter((B)=>{if(typeof B!=="object"||B===null||Array.isArray(B))return!0;return Object.keys(B).length>=P&&Object.keys(B).length<=V})}if(b.length===0){let P=[];if(j.minLength!==void 0)P.push(`minLength: ${j.minLength}`);if(j.maxLength!==void 0)P.push(`maxLength: ${j.maxLength}`);if(j.minItems!==void 0)P.push(`minItems: ${j.minItems}`);if(j.maxItems!==void 0)P.push(`maxItems: ${j.maxItems}`);if(j.minProperties!==void 0)P.push(`minProperties: ${j.minProperties}`);if(j.maxProperties!==void 0)P.push(`maxProperties: ${j.maxProperties}`);if(j.minimum!==void 0)P.push(`minimum: ${j.minimum}`);if(j.maximum!==void 0)P.push(`maximum: ${j.maximum}`);if(j.exclusiveMinimum!==void 0)P.push(`exclusiveMinimum: ${j.exclusiveMinimum}`);if(j.exclusiveMaximum!==void 0)P.push(`exclusiveMaximum: ${j.exclusiveMaximum}`);if(j.multipleOf!==void 0)P.push(`multipleOf: ${j.multipleOf}`);throw Error(`enum values conflict with constraints [${P.join(", ")}] at ${q.path}`)}let K=q.random.pick(b);return typeof K==="object"&&K!==null?structuredClone(K):K}throw Error(`generateEnumConst called without enum or const at ${q.path}`)}function v(j){let q={};for(let b of j){if(typeof b==="boolean"){if(!b)return{not:{}};continue}e0(q,b)}return q}function a0(j,q){if(typeof j==="boolean"||typeof q==="boolean")return{};if(typeof j!=="object"||j===null)return typeof q==="object"&&q!==null?q:{};if(typeof q!=="object"||q===null)return j;let b={...j};return e0(b,q),b}function e0(j,q){if(q.type!==void 0)if(j.type===void 0)j.type=q.type;else j.type=a4(j.type,q.type);if(q.minimum!==void 0)j.minimum=j.minimum!==void 0?Math.max(j.minimum,q.minimum):q.minimum;if(q.maximum!==void 0)j.maximum=j.maximum!==void 0?Math.min(j.maximum,q.maximum):q.maximum;if(q.exclusiveMinimum!==void 0)j.exclusiveMinimum=j.exclusiveMinimum!==void 0?Math.max(j.exclusiveMinimum,q.exclusiveMinimum):q.exclusiveMinimum;if(q.exclusiveMaximum!==void 0)j.exclusiveMaximum=j.exclusiveMaximum!==void 0?Math.min(j.exclusiveMaximum,q.exclusiveMaximum):q.exclusiveMaximum;if(q.multipleOf!==void 0)j.multipleOf=q.multipleOf;if(q.minLength!==void 0)j.minLength=j.minLength!==void 0?Math.max(j.minLength,q.minLength):q.minLength;if(q.maxLength!==void 0)j.maxLength=j.maxLength!==void 0?Math.min(j.maxLength,q.maxLength):q.maxLength;if(q.pattern!==void 0)j.pattern=q.pattern;if(q.format!==void 0)j.format=q.format;if(q.minItems!==void 0)j.minItems=j.minItems!==void 0?Math.max(j.minItems,q.minItems):q.minItems;if(q.maxItems!==void 0)j.maxItems=j.maxItems!==void 0?Math.min(j.maxItems,q.maxItems):q.maxItems;if(q.uniqueItems)j.uniqueItems=!0;if(q.items!==void 0)j.items=q.items;if(q.prefixItems!==void 0)if(j.prefixItems===void 0)j.prefixItems=q.prefixItems;else{let b=[],K=Math.max(j.prefixItems.length,q.prefixItems.length);for(let P=0;P<K;P++){let V=j.prefixItems[P],B=q.prefixItems[P];if(V!==void 0&&B!==void 0)b.push(a0(V,B));else if(V!==void 0)b.push(V);else if(B!==void 0)b.push(B)}j.prefixItems=b}if(q.contains!==void 0)if(j.containsAll!==void 0)j.containsAll=[...j.containsAll,q.contains];else if(j.contains!==void 0)j.containsAll=[j.contains,q.contains],delete j.contains;else j.contains=q.contains;if(q.properties)j.properties=e4(j.properties??{},q.properties);if(q.required)j.required=[...new Set([...j.required??[],...q.required])];if(q.additionalProperties!==void 0)j.additionalProperties=q.additionalProperties;if(q.patternProperties)j.patternProperties={...j.patternProperties??{},...q.patternProperties};if(q.minProperties!==void 0)j.minProperties=j.minProperties!==void 0?Math.max(j.minProperties,q.minProperties):q.minProperties;if(q.maxProperties!==void 0)j.maxProperties=j.maxProperties!==void 0?Math.min(j.maxProperties,q.maxProperties):q.maxProperties;if(q.const!==void 0)j.const=q.const;if(q.enum!==void 0)if(j.enum!==void 0){let b=new Set(q.enum.map((K)=>JSON.stringify(K)));j.enum=j.enum.filter((K)=>b.has(JSON.stringify(K)))}else j.enum=q.enum;if(q.$ref)j.$ref=q.$ref;if(q.$defs)j.$defs={...j.$defs??{},...q.$defs};if(q.allOf)j.allOf=[...j.allOf??[],...q.allOf];if(q.anyOf)j.anyOf=q.anyOf;if(q.oneOf)j.oneOf=q.oneOf}function a4(j,q){let b=Array.isArray(j)?j:[j],K=Array.isArray(q)?q:[q],P=b.filter((V)=>K.includes(V));if(P.length===0)return b[0];if(P.length===1)return P[0];return P}function e4(j,q){let b={...j};for(let[K,P]of Object.entries(q)){let V=j[K];if(V===void 0)b[K]=P;else if(typeof V==="object"&&typeof P==="object")b[K]=a0(V,P);else b[K]=P}return b}var V0=new Set(["$schema","$id","$ref","$defs","$anchor","$dynamicRef","$dynamicAnchor","$vocabulary","$comment","type","enum","const","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","contentEncoding","contentMediaType","contentSchema","items","prefixItems","contains","minItems","maxItems","uniqueItems","minContains","maxContains","properties","required","additionalProperties","patternProperties","minProperties","maxProperties","propertyNames","dependentRequired","dependentSchemas","allOf","anyOf","oneOf","not","if","then","else","faker","chance","jsonPath","template","default","examples","description","title","readOnly","writeOnly","deprecated"]);function j4(j){if(typeof j!=="object"||j===null)return!1;return Object.keys(j).some((q)=>V0.has(q))}function l0(j,q){if(typeof q!=="object"||q===null)return!1;let b=q;if(b.const!==void 0)return j===b.const;if(b.enum!==void 0)return b.enum.some((K)=>K===j);return!1}function j6(j){if(typeof j==="boolean")return!j;if(typeof j!=="object"||j===null)return!1;if(j.not===!0||typeof j.not==="object"&&j.not!==null&&Object.keys(j.not).length===0)return!0;return!1}function q6(j){if(j.properties)return j.properties;if(j.type==="object"||j.type===void 0){let q={},b=!1;for(let[K,P]of Object.entries(j)){if(V0.has(K))continue;if(j4(P))q[K]=P,b=!0;else q[K]={const:P},b=!0}if(b)return q}return{}}function b6(j,q){if(j.required)return j.required;if(j.properties===void 0&&Object.keys(q).length>0)return Object.keys(q);return[]}async function K6(j,q){let b=q6(j),K=b6(j,b);if(q.depth>=q.maxDepth){if(K.length===0)return{};let F={};for(let Y of K){let z=b[Y];if(z&&typeof z==="object"&&z!==null){let M=z;if(M.const!==void 0)F[Y]=M.const;else if(M.default!==void 0)F[Y]=M.default;else if(M.enum!==void 0&&M.enum.length>0)F[Y]=M.enum[0];else F[Y]=U6(M.type)}else F[Y]=null}return F}if(j.additionalProperties===!1){let F=Object.keys(b).length>0,Y=j.patternProperties&&Object.keys(j.patternProperties).length>0,z=new Set(Object.keys(b)),M=[...new Set(K)].filter((D)=>!z.has(D));if((j.minProperties??0)>0&&!F&&!Y)throw Error(`missing properties for ${j.minProperties} in ${q.path}: additionalProperties is false but no properties or patternProperties defined`);if(M.length>0&&!Y&&!F)throw Error(`missing properties for ${M.join(", ")} in ${q.path}: additionalProperties is false but required properties not defined in properties`)}let P=q.path==="/"?"/properties":`${q.path}/properties`,V={...q,depth:q.depth+1,path:P},B={},U=new Set,W=new Set(K),w=q.alwaysFakeOptionals??!1,L=q.fillProperties??!0,I=q.fixedProbabilities??!1,C=q.optionalsProbability??0.5,k=Object.keys(b).filter((F)=>!W.has(F)),T;if(I&&!w&&k.length>0){let F=Math.round(k.length*C);T=new Set(k.slice(0,F))}let S=(F)=>{if(w)return!0;if(T)return T.has(F);return q.random.bool(C)};if(Object.keys(b).length>0)for(let[F,Y]of Object.entries(b)){if(j6(Y))continue;U.add(F);let z=d(V,F),M=W.has(F),D=typeof Y==="object"&&Y!==null&&Y.type==="object",O=Y;if(j.patternProperties&&typeof Y==="object"&&Y!==null){let x=[];for(let[g,J]of Object.entries(j.patternProperties))try{if(new RegExp(g).test(F))x.push(J)}catch{}if(x.length>0)O=v([Y,...x])}if(M){let x=await Q(O,z);if(x!==void 0)B[F]=x}else if(S(F)){let x=await Q(O,z);if(x!==void 0)B[F]=x}else if(D&&!L){let x=Y.required??[];if(x.length>0){let g={};for(let J of x){let Z4=(Y.properties??{})[J]??{},v4=d(z,J),S0=await Q(Z4,v4);if(S0!==void 0)g[J]=S0}B[F]=g}}}for(let F of W){if(B[F]!==void 0||U.has(F))continue;if(j.patternProperties){let Y=[];for(let[z,M]of Object.entries(j.patternProperties))if(new RegExp(z).test(F))Y.push(M);if(Y.length>0){let z=Y.length===1?Y[0]:v(Y),M=d(V,F),D=await Q(z,M);if(D!==void 0)B[F]=D;U.add(F)}}if(!U.has(F)){let Y=j.additionalProperties??!0;if(Y!==!1){let z=d(V,F),M=await Q(Y===!0?{}:Y,z);if(M!==void 0)B[F]=M;U.add(F)}}}if(j.dependencies)for(let[F,Y]of Object.entries(j.dependencies)){if(typeof Y!=="object"||Y===null||Array.isArray(Y))continue;if(B[F]!==void 0&&!U.has(F+"_dep")){U.add(F+"_dep");let z=Y.oneOf??Y.anyOf??Y.allOf??[Y],M=null;for(let D of z){if(typeof D!=="object"||D===null)continue;let{properties:O,not:x}=D;if(O&&O[F]){let g=O[F],J=B[F];if(l0(J,g)){M=D;break}}if(x?.properties){let g=x.properties[F];if(g){let J=B[F];if(!l0(J,g)){M=D;break}}}}if(!M&&z.length>0&&typeof z[0]==="object")M=z[0];if(M?.not){let D=M.not;if(D.required&&Array.isArray(D.required))for(let O of D.required)delete B[O]}if(M?.required)for(let D of M.required){if(D===F)continue;if(B[D]!==void 0)continue;let O=M.properties?.[D]??{type:"object"},x=d(V,D),g=await Q(O,x);if(g!==void 0)B[D]=g}if(M&&M.properties)for(let[D,O]of Object.entries(M.properties)){if(D===F)continue;let x=d(V,D),g=await Q(O,x);if(g!==void 0)B[D]=g}}}let R=j.minProperties??0,y=j.maxProperties;if(Object.keys(B).length<R){if(j.patternProperties&&Object.keys(j.patternProperties).length>0){let F=Object.entries(j.patternProperties),Y=0,z=1000;while(Object.keys(B).length<R&&Y<z){Y++;let[M,D]=q.random.pick(F),O=B6(M,q);if(O&&!B[O]){let x=d(V,O),g=await Q(D,x);if(g!==void 0)B[O]=g;U.add(O)}}}if(Object.keys(B).length<R){let F=j.additionalProperties,Y=F===void 0||F===!0?{type:"string"}:F;if(Y!==!1){let z=0,M=1000;while(Object.keys(B).length<R&&z<M){z++;let D=`prop${q.random.int(0,99999)}`;if(!B[D]){let O=d(V,D),x=await Q(Y,O);if(x!==void 0)B[D]=x;U.add(D)}}}}if(Object.keys(B).length<R){let F=Object.keys(b).join(", ");throw Error(`properties '${F}' were not found while additionalProperties is false in ${q.path}`)}}if(y!==void 0&&Object.keys(B).length>y){let F=Object.keys(B).filter((Y)=>!W.has(Y));q.random.shuffle(F);while(Object.keys(B).length>y&&F.length>0){let Y=F.pop();delete B[Y]}}if(q.pruneProperties&&q.pruneProperties.length>0)z0(B,q.pruneProperties);return V6(B,b),B}function d(j,q){let b=P6(q),K=j.outputPath==="/"?`/${b}`:`${j.outputPath}/${b}`;return{...j,path:`${j.path}/${q}`,outputPath:K}}function P6(j){return j.replace(/~/g,"~0").replace(/\//g,"~1")}function V6(j,q){for(let[b,K]of Object.entries(q)){if(typeof K!=="object"||K===null)continue;let P=K;if(P.template===void 0)continue;let V=P.template;if(typeof V!=="string")continue;let B=V.replace(/#\{(\w+)\}/g,(U,W)=>{let w=j[W];return w!==void 0?String(w):""});j[b]=B}}function B6(j,q){let b=j.match(/^\^([a-zA-Z]+)(\.\*|\(\?\:.*\))?/);if(b){let W=b[1],w=b[2];if(w===".*"||w?.includes("?:")){let L=q.random.int(0,10),I="abcdefghijklmnopqrstuvwxyz",C="";for(let k=0;k<L;k++)C+=q.random.pick("abcdefghijklmnopqrstuvwxyz".split(""));return W+C}return W}let K=j.match(/(.*\*)?([a-zA-Z]+)\$$/);if(K){let W=K[2],w=q.random.int(1,10),L="abcdefghijklmnopqrstuvwxyz",I="";for(let C=0;C<w;C++)I+=q.random.pick("abcdefghijklmnopqrstuvwxyz".split(""));return I+W}let P=j.match(/^\^([a-zA-Z]+)\$$/);if(P)return P[1];let V=q.random.int(3,10),B="abcdefghijklmnopqrstuvwxyz",U="";for(let W=0;W<V;W++)U+=q.random.pick(B.split(""));try{if(new RegExp(j).test(U))return U}catch{}return null}function z0(j,q){if(typeof j!=="object"||j===null)return;if(Array.isArray(j)){for(let K of j)z0(K,q);return}let b=j;for(let K of Object.keys(b))if(q.includes(K))delete b[K];else z0(b[K],q)}function U6(j){switch(Array.isArray(j)?j[0]:j){case"string":return"";case"number":case"integer":return 0;case"boolean":return!1;case"null":return null;case"array":return[];case"object":return{};default:return null}}async function W6(j,q){if(q.depth>=q.maxDepth){let F=j.minItems??0;return F>0?Array.from({length:F},()=>null):[]}if(q.refDepthReached){let F=j.minItems??0;return F>0?Array.from({length:F},()=>null):[]}if(j.items===!1&&(j.minItems??0)>0){let F=j.prefixItems?.length??0;if((j.minItems??0)>F)throw Error(`missing items for ${j.minItems} in ${q.path}: items is false but minItems (${j.minItems}) exceeds prefixItems count (${F})`)}let b=q.path==="/"?"/items":`${q.path}/items`,K={...q,depth:q.depth+1,path:b},P=[],V=q.refDepthMax,B=q.minItems??j.minItems??0,U=q.maxItems??j.maxItems??Math.max(B,q.maxDefaultItems);if(j.maxItems!==void 0&&U>j.maxItems)U=j.maxItems;if(j.minItems!==void 0&&B<j.minItems)B=j.minItems;if(U<B)if(j.maxItems!==void 0)B=U;else U=B;if(q.alwaysFakeOptionals)U=Math.max(B,U);let W=j.uniqueItems?new Set:null,w=async(F,Y)=>{let z=await Q(F,Y);if(z===void 0)return"omitted";if(W){let M=JSON.stringify(z);if(W.has(M)){for(let D=0;D<50;D++){if(z=await Q(F,h(K,P.length)),z===void 0)continue;let O=JSON.stringify(z);if(!W.has(O))return W.add(O),P.push(z),"added"}return"failed"}W.add(M)}return P.push(z),"added"};if(j.prefixItems)for(let F=0;F<j.prefixItems.length&&P.length<U;F++){let Y=h(K,F);if(await w(j.prefixItems[F],Y)==="failed")break}let L;if(V!==void 0&&q.refDepth>=V-1){let F=j.minItems??0;return F>0?Array.from({length:F},()=>null):[]}let I=q.alwaysFakeOptionals??!1,C=q.fixedProbabilities??!1,k=q.optionalsProbability??0.5;if(I)L=U;else if(C){let F=U-Math.max(B,P.length),Y=Math.round(F*k);L=Math.max(B,P.length)+Y}else L=q.random.int(Math.max(B,P.length),U);let T=j.items!==void 0,S=j.prefixItems!==void 0,R=j.additionalItems!==void 0,y;if(S){if(R)y=j.additionalItems;else if(j.items!==void 0)y=j.items}else y=j.items;if(y!==!1&&y!==void 0){let F=y??{},Y=0,z=Math.max(L*20,50);while(P.length<L){let M=await w(F,h(K,P.length));if(M==="added"){Y=0;continue}if(Y++,M==="failed"||Y>=z)break}}if(j.contains){let F=j.minContains??1,Y=j.maxContains??Math.max(F,1),z=q.random.int(F,Y);for(let M=0;M<z;M++){let D=await Q(j.contains,h(K,P.length));if(D===void 0)continue;if(W){let O=JSON.stringify(D);if(W.has(O)){let x=!1;for(let g=0;g<50;g++){if(D=await Q(j.contains,h(K,P.length)),D===void 0)continue;let J=JSON.stringify(D);if(!W.has(J)){W.add(J),x=!0;break}}if(!x)continue}else W.add(O)}if(P.length<U){let O=q.random.int(0,P.length);P.splice(O,0,D)}else if(P.length>0){let O=q.random.int(0,P.length-1);P[O]=D}}while(P.length>U)P.pop()}if(j.containsAll){let F=new Set;for(let Y of j.containsAll){let z=await Q(Y,h(K,P.length));if(z===void 0)continue;if(W){let M=JSON.stringify(z);if(W.has(M)){let D=!1;for(let O=0;O<50;O++){if(z=await Q(Y,h(K,P.length)),z===void 0)continue;let x=JSON.stringify(z);if(!W.has(x)){W.add(x),D=!0;break}}if(!D)continue}else W.add(M)}if(P.length<U){let M=q.random.int(0,P.length);P.splice(M,0,z);let D=new Set;for(let O of F)D.add(O>=M?O+1:O);F.clear();for(let O of D)F.add(O);F.add(M)}else if(P.length>0){let M=Array.from({length:P.length},(D,O)=>O).filter((D)=>!F.has(D));if(M.length>0){let D=M[q.random.int(0,M.length-1)];P[D]=z,F.add(D)}else P.push(z),F.add(P.length-1)}}while(P.length>U)P.pop()}if(j.uniqueItems&&P.length>0)return w6(P,j,K,B,U,W);return P}async function w6(j,q,b,K,P,V){let B=q.items??{},U=0,W=100;while(j.length<K&&U<W){U++;let w=await Q(B,h(b,j.length));if(w===void 0)continue;let L=JSON.stringify(w);if(!V.has(L))V.add(L),j.push(w)}while(j.length>P)j.pop();return j}function h(j,q){let b=j.outputPath==="/"?`/${q}`:`${j.outputPath}/${q}`;return{...j,path:`${j.path}/${q}`,outputPath:b}}function d0(j,q){if(!q||q==="")return j;if(typeof j!=="object"||j===null)throw Error(`Cannot resolve fragment "${q}" in non-object schema`);if(q.startsWith("/"))return I6(j,q);throw Error(`Unsupported fragment type: ${q}. Only JSON pointers (starting with /) are supported.`)}function I6(j,q){if(q===""||q==="/")return j;let b=q.slice(1).split("/"),K=j;for(let P of b){let V=P.replace(/~1/g,"/").replace(/~0/g,"~");if(typeof K!=="object"||K===null)throw Error(`Cannot resolve JSON pointer "${q}": not an object at "${V}"`);if(Array.isArray(K)){let B=parseInt(V,10);if(isNaN(B)||B<0||B>=K.length)throw Error(`Cannot resolve JSON pointer "${q}": invalid array index "${V}"`);K=K[B]}else{if(!(V in K))throw Error(`Cannot resolve JSON pointer "${q}": property "${V}" not found`);K=K[V]}}return K}function F6(j){let q=new Map;if(typeof j==="boolean")return q;if(j.$id&&typeof j==="object"){let b=j,K=b.$id,{$id:P,...V}=b;q.set(K,V)}if(j.$defs)for(let[b,K]of Object.entries(j.$defs))q.set(`#/$defs/${b}`,K);return q}async function P0(j,q){let b=j.$ref;if(!b)return{schema:j,ctx:q};let K=q.refDepth+1;if(q.refDepthMax!==void 0&&K>=q.refDepthMax)return{schema:{},ctx:{...q,refDepthReached:!0}};if(q.refStack.has(b)){if(q.refDepthMax!==void 0){if(q.refDepth>=q.refDepthMax)return{schema:{},ctx:{...q,refDepthReached:!0}}}else if(q.depth>=q.maxDepth)return{schema:{type:"null"},ctx:q}}let P,V;if(b.startsWith("#/")){if(P=q.refRegistry.get(b),P===void 0&&b.length>2){let I=q.refRegistry.get("#");if(I!==void 0&&typeof I==="object")try{P=d0(I,b.slice(1))}catch{}}if(P===void 0&&q.refResolver){if(P=await q.refResolver(b),P!==void 0)q.refRegistry.set(b,P)}}else if(b==="#")P=q.refRegistry.get("#")??{};else if(P=q.refRegistry.get(b),P===void 0&&q.refResolver){V=await q.refResolver(b);let I=b.indexOf("#");if(I!==-1){let C=b.slice(I+1);if(C)P=d0(V,C);else P=V}else P=V;if(V&&typeof V==="object"&&V!==null){let C=V;if(C.$defs)for(let[k,T]of Object.entries(C.$defs))q.refRegistry.set(`#/$defs/${k}`,T)}}if(P===void 0)throw Error(`Unresolved $ref: ${b}`);let B=new Set(["description","title","$comment","readOnly","writeOnly","deprecated"]),{$ref:U,...W}=j,w=Object.fromEntries(Object.entries(W).filter(([I])=>!B.has(I)));if(Object.keys(w).length>0&&typeof P==="object"&&P!==null)P={...P,...w};let L={...q,refStack:new Set([...q.refStack,b]),refDepth:q.refDepth+1};return{schema:P,ctx:L}}function L6(j,q){if(typeof j==="boolean")return;q.set("#",j),O0(j,"#",q)}function O0(j,q,b){if(j.$id){let{$id:K,...P}=j;b.set(K,P)}if(j.$defs)for(let[K,P]of Object.entries(j.$defs)){let V=`${q}/$defs/${K}`;if(b.set(V,P),typeof P==="object"&&P!==null)O0(P,V,b)}if(j.properties){for(let[K,P]of Object.entries(j.properties))if(typeof P==="object"&&P!==null)O0(P,`${q}/properties/${K}`,b)}}async function C6(j,q){if(!j.$ref)return j;return(await P0(j,q)).schema}async function Y6(j,q){let b=[];for(let K of j)if(typeof K==="object"&&K!==null&&"$ref"in K){let P=await C6(K,q);b.push(P)}else if(typeof K==="object"&&K!==null)b.push(K);return b}async function M6(j,q){let{allOf:b,anyOf:K,oneOf:P,not:V,if:B,then:U,else:W,...w}=j;if(b){let L=await Y6(b,q),I=v([w,...L]);return Q(I,q)}if(P){let L=q.random.shuffle([...P]),I=w.required??[];for(let Y of L){let z=typeof Y==="object"&&Y!==null?Y:{};if(z.$ref)z=(await P0(z,q)).schema;let M=z.required??[],D=[...new Set([...I,...M])],O={...w,required:D},x=v([O,z]),g={...q,optionalsProbability:0,alwaysFakeOptionals:!1};try{return await Q(x,g)}catch{}}let C=P[0],k=typeof C==="object"&&C!==null?C:{};if(k.$ref)k=(await P0(k,q)).schema;let T=k.required??[],S=[...new Set([...I,...T])],R={...w,required:S},y=v([R,k]),F={...q,optionalsProbability:0,alwaysFakeOptionals:!1};return Q(y,F)}if(K){let L=q.random.shuffle([...K]);for(let k of L){let T=v([w,k]);try{return await Q(T,q)}catch{}}let I=K[0],C=v([w,I]);return Q(C,q)}if(B!==void 0)return D6(w,B,U,W,q);if(V)return z6(w,V,q);return Q(w,q)}async function D6(j,q,b,K,P){if(b!==void 0){let V=v([j,q,b]);try{return await Q(V,P)}catch{}}if(K!==void 0){let V=v([j,K]);try{return await Q(V,P)}catch{}}return Q(j,P)}async function z6(j,q,b){if(typeof q==="boolean"){if(q===!0)throw Error(`Cannot generate value for 'not: true' at ${b.path}`);return Q(j,b)}if(q.type&&!q.enum&&!q.const){let K=Array.isArray(q.type)?q.type:[q.type],P=["string","number","integer","boolean","null","object","array"].filter((V)=>!K.includes(V));if(P.length>0){let V=b.random.pick(P),B=v([j,{type:V}]);return Q(B,b)}}if(q.const!==void 0||q.enum!==void 0){let K=q.enum??[q.const],P=new Set(K.map((V)=>JSON.stringify(V)));for(let V=0;V<20;V++){let B=await Q(j,b);if(!P.has(JSON.stringify(B)))return B}}return Q(j,b)}class q4{extensions=new Map;define(j,q){this.extensions.set(j,{callback:q,context:{}})}has(j){return this.extensions.has(j)}reset(j){if(j){let q=this.extensions.get(j);if(q)q.context={},this.extensions.delete(j)}else this.extensions.clear()}keys(){return this.extensions.keys()}generate(j,q){let b=Object.keys(j);for(let K=b.length-1;K>=0;K--){let P=b[K],V=P.startsWith("x-")?P.slice(2):P,B=this.extensions.get(V);if(B){let U=j[P],W=B.callback.call(B.context,U,j,q);if(W!==void 0)return W}}return}getContext(j){return this.extensions.get(j)?.context}}var O6=new q4;function k6(j,q){return O6.generate(j,q)}var x6=["string","number","integer","boolean","null","object","array"];function h0(j,q,b){if(j.faker!==void 0&&j.chance!==void 0)throw Error(`ambiguous generator: both faker and chance are defined in ${q.path}`);if(j.faker!==void 0)try{let K=Q6(j.faker,q),P=r0(K,b??j.type,q.path);if(typeof P==="string"&&j.format)return o0(P,j.format,q);return P}catch{}if(j.chance!==void 0)try{let K=g6(j.chance,q),P=r0(K,b??j.type,q.path);if(typeof P==="string"&&j.format)return o0(P,j.format,q);return P}catch{}return}function o0(j,q,b){if(q==="date"){let K=typeof j==="string"?new Date(j):j;if(K instanceof Date&&!isNaN(K.getTime())){let P=K.getFullYear(),V=X(K.getMonth()+1),B=X(K.getDate());return`${P}-${V}-${B}`}if(typeof j==="string"){let P=Date.parse(j);if(!isNaN(P)){let V=new Date(P),B=V.getFullYear(),U=X(V.getMonth()+1),W=X(V.getDate());return`${B}-${U}-${W}`}}}if(q==="date-time"){let K=typeof j==="string"?new Date(j):j;if(K instanceof Date&&!isNaN(K.getTime()))return K.toISOString();if(typeof j==="string"&&Date.parse(j))return new Date(j).toISOString()}return j}function r0(j,q,b){if(q===void 0)return j;let K=Array.isArray(q)?q[0]:q;switch(K){case"string":return j===null?"null":j===void 0?"undefined":String(j);case"number":case"integer":let P=Number(j);return K==="integer"?Math.floor(P):P;case"boolean":return Boolean(j);case"null":return null;default:return j}}function Q6(j,q){if(!q.extensions?.faker){let B=typeof j==="string"?j:JSON.stringify(j);throw Error(`cannot resolve faker-generator for ${B} in ${q.path}`)}let b,K;if(typeof j==="object"&&j!==null){let B=j,U=Object.keys(B);if(U.length>0)b=U[0],K=B[b];else throw Error(`cannot resolve faker-generator for ${JSON.stringify(j)} in ${q.path}`)}else b=j;let P=b.split("."),V=q.extensions.faker;for(let B of P)try{V=V[B]}catch{throw Error(`failed to resolve .${B} (${b})`)}if(typeof V==="function")return K?V(...K):V();else throw Error(`cannot resolve faker-generator for ${b} in ${q.path}`)}function g6(j,q){if(!q.extensions?.chance){let b=typeof j==="string"?j:Object.keys(j)[0];throw Error(`cannot resolve chance-generator for ${b} in ${q.path}`)}if(typeof j==="string"){let b=q.extensions.chance[j];if(typeof b==="function")return b.call(q.extensions.chance);throw Error(`cannot resolve chance-generator for ${j} in ${q.path}`)}if(typeof j==="object"&&j!==null){let b=j,K=Object.keys(b)[0],P=b[K],V=q.extensions.chance[K];if(typeof V==="function")return P?V.call(q.extensions.chance,P):V.call(q.extensions.chance)}throw Error(`cannot resolve chance-generator in ${q.path}`)}function N6(j,q){let b=j.path==="/"?`/${q}`:`${j.path}/${q}`;return{...j,depth:j.depth+1,path:b,refDepthReached:j.refDepthReached}}async function _(j,q,b){if(!b.outputTransform)return j;return b.outputTransform(j,q,b.outputPath)}async function Q(j,q){if(j===!0)return Q({},q);if(j===!1)throw Error(`Cannot generate value for 'false' schema at ${q.path}`);if(q.propAliases&&typeof j==="object"&&j!==null){let V=j,B=null;for(let[U,W]of Object.entries(q.propAliases))if(U in V&&!(W in V)){if(!B)B={...V};B[W]=B[U],delete B[U]}if(B)j=B}let b;if(Array.isArray(j.type)){let V=j.type;b=q.random.pick(V);let B={...q,resolvedType:b},U=h0(j,B,b);if(U!==void 0){if(typeof U==="string"&&B.maxLength!==void 0&&U.length>B.maxLength)return _(U.slice(0,B.maxLength),j,B);return _(U,j,B)}}else{let V=h0(j,q,b);if(V!==void 0){if(typeof V==="string"&&q.maxLength!==void 0&&V.length>q.maxLength)return _(V.slice(0,q.maxLength),j,q);return _(V,j,q)}}let K=k6(j,q);if(K!==void 0)return _(K,j,q);if(j.$ref){let V=await P0(j,q);return Q(V.schema,N6(V.ctx,"$ref"))}if(j.allOf||j.anyOf||j.oneOf||j.not||j.if)return M6(j,q);if(j.const!==void 0)return _(u0(j,q),j,q);if(q.useDefaultValue&&j.default!==void 0)return _(j.default,j,q);if(j.enum!==void 0)return _(u0(j,q),j,q);if(q.useExamplesValue){if(Array.isArray(j.examples)&&j.examples.length>0)return _(q.random.pick(j.examples),j,q);if(j.example!==void 0)return _(j.example,j,q)}let P=R6(j,q);if(P===null){if(q.failOnInvalidTypes===!1){if(q.defaultInvalidTypeProduct!==void 0){let V=q.defaultInvalidTypeProduct;if(typeof V==="string")return T6(V,q);return V}return null}throw Error(`unknown primitive ${j.type} in ${q.path}/type`)}switch(P){case"null":return _(l4(q),j,q);case"boolean":return _(d4(q),j,q);case"number":return _(t0(j,q),j,q);case"integer":return _(o4(j,q),j,q);case"string":return _(s4(j,q),j,q);case"object":return _(await K6(j,q),j,q);case"array":return _(await W6(j,q),j,q);default:throw Error(`Unknown type: ${P} at ${q.path}`)}}function R6(j,q){if(q.resolvedType!==void 0)return q.resolvedType;if(typeof j.type==="string"){if(!["string","number","integer","boolean","null","object","array"].includes(j.type))return null;return j.type}if(Array.isArray(j.type))return q.random.pick(j.type);if(j.properties||j.required||j.additionalProperties!==void 0||j.patternProperties||j.minProperties!==void 0||j.maxProperties!==void 0)return"object";if(A6(j))return"object";if(j.items||j.prefixItems||j.contains||j.minItems!==void 0||j.maxItems!==void 0||j.uniqueItems)return"array";if(j.minimum!==void 0||j.maximum!==void 0||j.exclusiveMinimum!==void 0||j.exclusiveMaximum!==void 0||j.multipleOf!==void 0)return"number";if(j.minLength!==void 0||j.maxLength!==void 0||j.pattern||j.format||j.faker!==void 0||j.chance!==void 0)return"string";return q.random.pick(x6)}function A6(j){if(j.properties||j.type==="object"||j.type==="array")return!1;for(let q of Object.keys(j)){if(V0.has(q))continue;let b=j[q];if(typeof b==="object"&&b!==null&&!Array.isArray(b))return!0}return!1}function T6(j,q){switch(j){case"string":return"";case"number":case"integer":return 0;case"boolean":return!1;case"null":return null;case"object":return{};case"array":return[];default:return null}}function _6(j){let q=b4(j),b=K4(j);return`${q}T${b}`}function b4(j){let q=j.int(2000,2030),b=j.int(1,12),K=c4(q,b),P=j.int(1,K);return`${q}-${X(b)}-${X(P)}`}function K4(j){let q=j.int(0,23),b=j.int(0,59),K=j.int(0,59);return`${X(q)}:${X(b)}:${X(K)}Z`}var y6=["alice","bob","charlie","dave","eve","frank","grace","heidi"],H6=["example.com","test.org","demo.net","sample.io"];function i0(j){let q=j.pick(y6),b=j.int(1,999),K=j.pick(H6);return`${q}${b}@${K}`}var J6=["https"],E6=["example.com","test.org","demo.net"],S6=["api","v1","users","items","data","resource"];function K0(j){let q=j.pick(J6),b=j.pick(E6),K=j.int(1,3),P=[];for(let V=0;V<K;V++)P.push(j.pick(S6));return`${q}://${b}/${P.join("/")}`}var X6=["alpha","beta","gamma","delta","echo","fox","golf","hotel"],f6=["com","org","net","io","dev"];function m0(j){let q=j.int(1,3),b=[];for(let K=0;K<q;K++)b.push(j.pick(X6));return b.push(j.pick(f6)),b.join(".")}function Z6(j){return`${j.int(1,254)}.${j.int(0,255)}.${j.int(0,255)}.${j.int(1,254)}`}function v6(j){let q=[];for(let b=0;b<8;b++)q.push(j.int(0,65535).toString(16));return q.join(":")}function p6(j){let q=(b)=>{let K="";for(let P=0;P<b;P++)K+=j.int(0,15).toString(16);return K};return`${q(8)}-${q(4)}-4${q(3)}-${["8","9","a","b"][j.int(0,3)]}${q(3)}-${q(12)}`}var u6=["foo","bar","baz","items","0","1","2","name","value"];function G0(j){let q=j.int(1,4),b=[];for(let K=0;K<q;K++)b.push(j.pick(u6));return"/"+b.join("/")}function l6(j){let q=["P"],b=j.bool(),K=j.bool();if(b){if(j.bool())q.push(`${j.int(0,100)}Y`);if(j.bool())q.push(`${j.int(0,12)}M`);if(j.bool())q.push(`${j.int(0,30)}D`)}if(K){if(q.push("T"),j.bool())q.push(`${j.int(0,23)}H`);if(j.bool())q.push(`${j.int(0,59)}M`);if(j.bool())q.push(`${j.int(0,59)}S`)}if(q.length===1||q.length===2&&q[1]==="T")q.push("0D");return q.join("")}var d6=new Map([["date-time",_6],["date",b4],["time",K4],["duration",l6],["email",i0],["idn-email",i0],["uri",K0],["uri-reference",K0],["iri",K0],["iri-reference",K0],["hostname",m0],["idn-hostname",m0],["ipv4",Z6],["ipv6",v6],["uuid",p6],["json-pointer",G0],["relative-json-pointer",(j)=>`${j.int(0,5)}${G0(j)}`]]);function P4(j){let q=new Map(d6);if(j)for(let[b,K]of Object.entries(j))q.set(b,K);return q}function h6(j,q){if(!j.startsWith("$"))throw Error(`Invalid JSONPath: ${j} (must start with $)`);let b=j.slice(1).split(/\.|\[(\d+|\*)\]/).filter(Boolean),K=[q];for(let P of b){if(P==="")continue;let V=[];for(let B of K){if(B===null||B===void 0)continue;if(P==="*"){if(Array.isArray(B))V.push(...B)}else if(/^\d+$/.test(P)){let U=parseInt(P,10);if(Array.isArray(B)&&U<B.length)V.push(B[U])}else if(P==="")k0(B,V);else if(typeof B==="object"&&B!==null&&P in B)V.push(B[P])}K=V}return K}function k0(j,q){if(j===null||j===void 0)return;if(Array.isArray(j))for(let b of j)q.push(b),k0(b,q);else if(typeof j==="object")for(let b of Object.values(j))q.push(b),k0(b,q)}function o6(j){if(j.properties)return j.properties;if(j.type==="object"||j.type===void 0){let q={},b=!1;for(let[K,P]of Object.entries(j)){if(V0.has(K))continue;if(j4(P))q[K]=P,b=!0;else q[K]={const:P},b=!0}if(b)return q}return{}}async function x0(j,q,b,K){if(!b.resolveJsonPath)return j;let P=K??j;if(q===!0||q===!1)return j;if(q.$ref)return j;let V=q;if(V.allOf||V.anyOf||V.oneOf)return j;if(typeof j==="object"&&j!==null&&!Array.isArray(j)){let B={...j},U=o6(V);for(let[W,w]of Object.entries(U))if(W in B){let L=B[W];if(typeof w==="object"&&w!==null&&"jsonPath"in w&&typeof w.jsonPath==="string"){let I=h6(w.jsonPath,P);if(I.length>0)B[W]=b.random.pick(I)}else{let I=await x0(L,w,b,P);B[W]=I}}return B}if(Array.isArray(j)&&V.items){let B=[];for(let U of j){let W=await x0(U,V.items,b,P);B.push(W)}return B}return j}var r6=P4(),n0=new Set(["https://json-schema.org/draft/2020-12/schema","https://json-schema.org/draft/2019-09/schema"]);async function V4(j,q){if(q?.validateSchemaVersion===!0&&!q?.propAliases){if(typeof j==="object"&&j!==null&&"$schema"in j){let I=j.$schema;if(typeof I==="string"&&!n0.has(I))throw Error(`Unsupported JSON Schema version: ${I}. Supported versions: ${[...n0].join(", ")}`)}}let b=m6(q),K=c0(q?.seed??1),P=b.propAliases?i6(j,b.propAliases):j,V=F6(P);L6(P,V);let B=b.formats?P4(b.formats):new Map(r6),U=b.refDepthMin??b.refDepth,W=b.refDepthMax??b.refDepth;if(U!==void 0&&W!==void 0&&U>W)throw Error(`refDepthMin (${U}) cannot be greater than refDepthMax (${W})`);let w={random:K,maxDepth:b.maxDepth??(W?W+20:5),maxDefaultItems:b.maxDefaultItems??3,optionalsProbability:b.optionalsProbability??0.5,depth:0,refRegistry:V,refStack:new Set,formatRegistry:B,refResolver:b.refResolver,minItems:b.minItems,maxItems:b.maxItems,minLength:b.minLength,maxLength:b.maxLength,useDefaultValue:b.useDefaultValue,path:"/",outputPath:"/",alwaysFakeOptionals:b.alwaysFakeOptionals,fixedProbabilities:b.fixedProbabilities,fillProperties:b.fillProperties,extensions:b.extensions,resolveJsonPath:b.resolveJsonPath,autoIncrementCounters:new Map,refDepth:0,refDepthMin:U,refDepthMax:W,useExamplesValue:b.useExamplesValue,pruneProperties:b.pruneProperties,failOnInvalidTypes:b.failOnInvalidTypes,defaultInvalidTypeProduct:b.defaultInvalidTypeProduct,minDateTime:b.minDateTime,maxDateTime:b.maxDateTime,propAliases:b.propAliases,outputTransform:b.outputTransform},L=await Q(P,w);if(b.resolveJsonPath)return x0(L,j,w,L);return L}function i6(j,q){if(typeof j!=="object"||j===null)return j;let b=j,K=null;for(let[P,V]of Object.entries(q))if(P in b&&!(V in b)){if(!K)K={...b};K[V]=K[P],delete K[P]}return K??j}function m6(j){if(!j)return{};let q=j,b={...j};if(q.requiredOnly===!0&&b.optionalsProbability===void 0)b={...b,optionalsProbability:0,alwaysFakeOptionals:!1};if(q.ignoreProperties&&q.ignoreProperties.length>0)b={...b,outputTransform:G6(b.outputTransform,n6(q.ignoreProperties))};return b}function G6(j,q){if(!j)return q;if(!q)return j;return async(b,K,P)=>{let V=await j(b,K,P);return q(V,K,P)}}function n6(j){return(q,b,K)=>{if(K==="/")return q;let P=c6(K.slice(K.lastIndexOf("/")+1));return j.some((V)=>{if(typeof V==="string")return V===P;if(V instanceof RegExp)return V.test(P);return V(b)})?void 0:q}}function c6(j){return j.replace(/~1/g,"/").replace(/~0/g,"~")}import{ResourceLimitError as B0}from"@schmock/core";function $(j){let q=[{value:j,exiting:!1}],b=new Set,K=0;while(q.length>0){let P=q.pop();if(!P)break;let V=P.value;if(P.exiting){if(typeof V==="object"&&V!==null)b.delete(V);continue}if(K+=1,K>m)throw new B0("generated_nodes",m,K);if(typeof V==="string"){if(V.length>Z)throw new B0("string_length",Z,V.length);continue}if(typeof V!=="object"||V===null||b.has(V))continue;if(b.add(V),q.push({value:V,exiting:!0}),Array.isArray(V)){if(V.length>E)throw new B0("array_size",E,V.length);for(let U=0;U<V.length;U+=1)q.push({value:V[U],exiting:!1});continue}let B=Object.entries(V);if(B.length>o)throw new B0("object_properties",o,B.length);for(let[,U]of B)q.push({value:U,exiting:!1})}}var a6=2147483647,e6=new Set(["$schema","$id","$ref","$defs","$anchor","$dynamicRef","$dynamicAnchor","$vocabulary","$comment","definitions","type","enum","const","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","autoIncrement","initialOffset","minLength","maxLength","pattern","format","contentEncoding","contentMediaType","contentSchema","items","prefixItems","additionalItems","contains","containsAll","minItems","maxItems","uniqueItems","minContains","maxContains","properties","required","additionalProperties","patternProperties","minProperties","maxProperties","propertyNames","dependencies","dependentRequired","dependentSchemas","allOf","anyOf","oneOf","not","if","then","else","default","examples","description","title","readOnly","writeOnly","deprecated","faker","chance","jsonPath","template","example"]);function g0(j,q){let b=new $6({locale:[s6,t6]});if(j!==void 0)b.seed(j);if(q!==void 0)b.setDefaultRefDate(q);return b}function Q0(j,q){if(j===null||typeof j!=="object")return j;if(q.has(j))return j;if(j instanceof Date)return new Date(j.getTime());let b=Object.getPrototypeOf(j),K=b===Object.prototype||b===null;if(!Array.isArray(j)&&!K)try{return structuredClone(j)}catch{return j}q.add(j);try{if(Array.isArray(j))return j.map((V)=>Q0(V,q));let P={};for(let[V,B]of Object.entries(j))Object.defineProperty(P,V,{value:Q0(B,q),writable:!0,enumerable:!0,configurable:!0});return P}finally{q.delete(j)}}function a(j){return Q0(j,new Set)}function G(j,q){if(j===null||typeof j!=="object")return j;let b=q.get(j);if(b!==void 0)return b;if(j instanceof Date){let V=new Date(j.getTime());return q.set(j,V),V}if(j instanceof RegExp){let V=new RegExp(j.source,j.flags);return V.lastIndex=j.lastIndex,q.set(j,V),V}if(j instanceof Map){let V=new Map;q.set(j,V);for(let[B,U]of j)V.set(G(B,q),G(U,q));return V}if(j instanceof Set){let V=new Set;q.set(j,V);for(let B of j)V.add(G(B,q));return V}if(j instanceof ArrayBuffer){let V=j.slice(0);return q.set(j,V),V}if(ArrayBuffer.isView(j)){let V=structuredClone(j);return q.set(j,V),V}if(j instanceof URL){let V=new URL(j.href);return q.set(j,V),V}if(Array.isArray(j)){let V=Array(j.length);q.set(j,V);for(let B=0;B<j.length;B+=1)if(Object.hasOwn(j,B))V[B]=G(j[B],q);return V}let K=Object.getPrototypeOf(j);if(K!==Object.prototype&&K!==null)return j;let P=Object.create(K);q.set(j,P);for(let[V,B]of Object.entries(j))Object.defineProperty(P,V,{value:G(B,q),writable:!0,enumerable:!0,configurable:!0});return P}function B4(j){let q=new Map;return j.map((b)=>G(b,q))}function U4(j){return j??Math.floor(Math.random()*a6)}function W4(j){let q=j;return()=>{q+=1831565813;let b=q;return b=Math.imul(b^b>>>15,b|1),b^=b+Math.imul(b^b>>>7,b|61),((b^b>>>14)>>>0)/4294967296}}function l(j,q){return typeof j==="boolean"?j:N0(j,q)}function U0(j,q){if(typeof j==="boolean")return j;return j7(j)?N0(j,q):void 0}function j7(j){return j!==null&&typeof j==="object"&&!Array.isArray(j)}function W0(j,q){return Object.fromEntries(Object.entries(j).map(([b,K])=>[b,l(K,q)]))}function q7(j){return N0(j,new Map)}function N0(j,q){let b=q.get(j);if(b)return b;let K={};q.set(j,K);for(let[W,w]of Object.entries(j))if(e6.has(W))K[W]=w;if(j.properties)K.properties=W0(j.properties,q);if(j.definitions)K.definitions=W0(j.definitions,q);if(j.$defs)K.$defs=W0(j.$defs,q);if(j.patternProperties)K.patternProperties=W0(j.patternProperties,q);if(Array.isArray(j.items))K.prefixItems=j.items.map((W)=>l(W,q)),K.items=j.additionalItems===void 0?!0:l(j.additionalItems,q),delete K.additionalItems;else if(j.items!==void 0){if(K.items=l(j.items,q),j.additionalItems!==void 0)K.additionalItems=l(j.additionalItems,q)}let P=Reflect.get(j,"prefixItems");if(!Array.isArray(j.items)&&Array.isArray(P))K.prefixItems=P.flatMap((W)=>{let w=U0(W,q);return w===void 0?[]:[w]});for(let W of["allOf","anyOf","oneOf"]){let w=j[W];if(w)K[W]=w.map((L)=>l(L,q))}if(j.additionalProperties!==void 0)K.additionalProperties=l(j.additionalProperties,q);for(let W of["contains","not","if","then","else","propertyNames"]){let w=j[W];if(w!==void 0)K[W]=l(w,q)}if(j.dependencies)K.dependencies=Object.fromEntries(Object.entries(j.dependencies).map(([W,w])=>[W,Array.isArray(w)?[...w]:l(w,q)]));let V=U0(Reflect.get(j,"contentSchema"),q);if(V!==void 0)K.contentSchema=V;let B=Reflect.get(j,"dependentSchemas");if(B!==null&&typeof B==="object"&&!Array.isArray(B))K.dependentSchemas=Object.fromEntries(Object.entries(B).flatMap(([W,w])=>{let L=U0(w,q);return L===void 0?[]:[[W,L]]}));let U=Reflect.get(j,"containsAll");if(Array.isArray(U))K.containsAll=U.flatMap((W)=>{let w=U0(W,q);return w===void 0?[]:[w]});return K}async function w4(j,q,b){let K={seed:q,maxDepth:f0,optionalsProbability:1,alwaysFakeOptionals:!0,useDefaultValue:!0,failOnInvalidTypes:!1,formats:{},extensions:{faker:g0(q,b)}},P=await V4(q7(j),K);return $(P),a(P)}var R0=new Set(["__proto__","constructor","prototype"]);function e(j){return typeof j==="object"&&j!==null&&!Array.isArray(j)}function F4(j,q,b=Math.random){if(q!==void 0&&!Number.isNaN(q)){if(q<0)return 0;return Math.floor(q)}if(j.minItems!==void 0&&j.maxItems!==void 0){let K=j.minItems,P=Math.max(K,j.maxItems);return Math.floor(b()*(P-K+1))+K}if(j.minItems!==void 0)return Math.max(j.minItems,i);if(j.maxItems!==void 0)return Math.min(j.maxItems,i);if(Array.isArray(j.items))return j.items.length;return i}function j0(j,q,b,K,P){if(!q)return j;if(!e(j))return j;let V=structuredClone(j);for(let[B,U]of Object.entries(q)){if(R0.has(B))continue;if(B.includes("."))b7(V,B,U,{params:b,state:K,query:P});else if(e(U))if(e(V[B]))V[B]=j0(V[B],U,b,K,P);else V[B]=j0({},U,b,K,P);else if(typeof U==="string"&&U.includes("{{"))V[B]=L4(U,{params:b,state:K,query:P});else V[B]=a(U)}return V}function b7(j,q,b,K){let P=q.split("."),V=j;for(let U=0;U<P.length-1;U++){let W=P[U];if(R0.has(W))return;let w=V[W];if(e(w))V=w;else{let L={};V[W]=L,V=L}}let B=P[P.length-1];if(R0.has(B))return;if(typeof b==="string"&&b.includes("{{"))V[B]=L4(b,K);else V[B]=a(b)}function I4(j,q){let b=q.trim().split("."),K=j;for(let P of b)if(e(K))K=K[P];else return;return K}function L4(j,q){let b=j.match(/^\{\{\s*([^}]+)\s*\}\}$/);if(b){let K=I4(q,b[1]);return K!==void 0?a(K):j}return j.replace(/\{\{\s*([^}]+)\s*\}\}/g,(K,P)=>{let V=I4(q,P);return V!==void 0?String(V):K})}var K7=[{keywords:["email"],fakerMethod:"internet.email",schemaType:"string",minScore:0.6,format:"email"},{keywords:["username","user_name","login","handle"],fakerMethod:"internet.username",schemaType:"string",minScore:0.6},{keywords:["password","passwd","secret"],fakerMethod:"internet.password",schemaType:"string",minScore:0.6},{keywords:["token","api_key","apikey","access_token","refresh_token"],fakerMethod:"string.alphanumeric",schemaType:"string",minScore:0.8}],P7=[{keywords:["first_name","firstname","given_name","forename"],fakerMethod:"person.firstName",schemaType:"string",minScore:0.6},{keywords:["last_name","lastname","surname","family_name"],fakerMethod:"person.lastName",schemaType:"string",minScore:0.6},{keywords:["full_name","fullname","display_name","displayname","full_name"],fakerMethod:"person.fullName",schemaType:"string",minScore:0.6},{keywords:["name"],fakerMethod:"person.fullName",schemaType:"string",minScore:0.6},{keywords:["middle_name","middlename"],fakerMethod:"person.middleName",schemaType:"string",minScore:0.8},{keywords:["prefix","honorific","salutation"],fakerMethod:"person.prefix",schemaType:"string",minScore:0.8},{keywords:["suffix"],fakerMethod:"person.suffix",schemaType:"string",minScore:0.9},{keywords:["gender","sex"],fakerMethod:"person.sex",schemaType:"string",minScore:0.8},{keywords:["bio","biography"],fakerMethod:"lorem.paragraph",schemaType:"string",minScore:0.8},{keywords:["job_title","jobtitle","position","occupation","job","role"],fakerMethod:"person.jobTitle",schemaType:"string",minScore:0.6},{keywords:["job_area","department","division","team"],fakerMethod:"person.jobArea",schemaType:"string",minScore:0.8},{keywords:["zodiac","zodiac_sign"],fakerMethod:"person.zodiacSign",schemaType:"string",minScore:0.9}],V7=[{keywords:["phone","mobile","cell","tel","telephone","cellphone","fax"],fakerMethod:"phone.number",schemaType:"string",minScore:0.6},{keywords:["imei"],fakerMethod:"phone.imei",schemaType:"string",minScore:0.9}],B7=[{keywords:["street","street_address"],fakerMethod:"location.streetAddress",schemaType:"string",minScore:0.6},{keywords:["address","mailing_address","postal_address"],fakerMethod:"location.streetAddress",schemaType:"string",minScore:0.6},{keywords:["city","town"],fakerMethod:"location.city",schemaType:"string",minScore:0.6},{keywords:["state","province","region"],fakerMethod:"location.state",schemaType:"string",minScore:0.8},{keywords:["country"],fakerMethod:"location.country",schemaType:"string",minScore:0.8},{keywords:["country_code","countrycode"],fakerMethod:"location.countryCode",schemaType:"string",minScore:0.8},{keywords:["county"],fakerMethod:"location.county",schemaType:"string",minScore:0.9},{keywords:["continent"],fakerMethod:"location.continent",schemaType:"string",minScore:0.9},{keywords:["zip","zipcode","zip_code","postal","postal_code"],fakerMethod:"location.zipCode",schemaType:"string",minScore:0.6},{keywords:["latitude","lat"],fakerMethod:"location.latitude",schemaType:"number",minScore:0.6},{keywords:["longitude","lng","lon","long"],fakerMethod:"location.longitude",schemaType:"number",minScore:0.6},{keywords:["timezone","time_zone","tz"],fakerMethod:"location.timeZone",schemaType:"string",minScore:0.8},{keywords:["building_number"],fakerMethod:"location.buildingNumber",schemaType:"string",minScore:0.9}],U7=[{keywords:["url","website","link","href","homepage","webpage"],fakerMethod:"internet.url",schemaType:"string",minScore:0.6},{keywords:["avatar","photo_url","profile_image","image_url","picture","thumbnail","icon"],fakerMethod:"image.avatar",schemaType:"string",minScore:0.6},{keywords:["domain","hostname","domain_name"],fakerMethod:"internet.domainName",schemaType:"string",minScore:0.8},{keywords:["ip","ip_address","ipaddress","ipv4"],fakerMethod:"internet.ipv4",schemaType:"string",minScore:0.8},{keywords:["ipv6"],fakerMethod:"internet.ipv6",schemaType:"string",minScore:0.9},{keywords:["mac","mac_address"],fakerMethod:"internet.mac",schemaType:"string",minScore:0.9},{keywords:["user_agent","useragent"],fakerMethod:"internet.userAgent",schemaType:"string",minScore:0.9},{keywords:["port"],fakerMethod:"internet.port",schemaType:"number",minScore:0.9},{keywords:["protocol"],fakerMethod:"internet.protocol",schemaType:"string",minScore:0.9}],W7=[{keywords:["uuid","guid"],fakerMethod:"string.uuid",schemaType:"string",minScore:0.6},{keywords:["sku"],fakerMethod:"string.alphanumeric",schemaType:"string",minScore:0.9},{keywords:["slug"],fakerMethod:"lorem.slug",schemaType:"string",minScore:0.8},{keywords:["isbn"],fakerMethod:"commerce.isbn",schemaType:"string",minScore:0.9},{keywords:["vin"],fakerMethod:"vehicle.vin",schemaType:"string",minScore:0.9},{keywords:["iban"],fakerMethod:"finance.iban",schemaType:"string",minScore:0.9},{keywords:["bic","swift"],fakerMethod:"finance.bic",schemaType:"string",minScore:0.9},{keywords:["ssn","social_security"],fakerMethod:"string.numeric",schemaType:"string",minScore:0.9}],w7=[{keywords:["description","desc","summary","overview","about","excerpt"],fakerMethod:"lorem.paragraph",schemaType:"string",minScore:0.6},{keywords:["content","body","text","message"],fakerMethod:"lorem.paragraphs",schemaType:"string",minScore:0.6},{keywords:["title","heading","subject","headline"],fakerMethod:"lorem.sentence",schemaType:"string",minScore:0.6},{keywords:["tag","label","category","keyword"],fakerMethod:"lorem.word",schemaType:"string",minScore:0.8},{keywords:["comment","note","remark","feedback","review"],fakerMethod:"lorem.sentence",schemaType:"string",minScore:0.8},{keywords:["sentence"],fakerMethod:"lorem.sentence",schemaType:"string",minScore:0.9},{keywords:["paragraph"],fakerMethod:"lorem.paragraph",schemaType:"string",minScore:0.9},{keywords:["word"],fakerMethod:"lorem.word",schemaType:"string",minScore:0.9}],I7=[{keywords:["company","organization","org","employer","brand","operator"],fakerMethod:"company.name",schemaType:"string",minScore:0.6},{keywords:["product","product_name","item_name"],fakerMethod:"commerce.productName",schemaType:"string",minScore:0.8},{keywords:["price","amount","cost","fee","salary","wage","total","subtotal","balance","revenue","income"],fakerMethod:"commerce.price",minScore:0.6},{keywords:["currency","currency_code"],fakerMethod:"finance.currencyCode",schemaType:"string",minScore:0.8},{keywords:["currency_name"],fakerMethod:"finance.currencyName",schemaType:"string",minScore:0.8},{keywords:["currency_symbol"],fakerMethod:"finance.currencySymbol",schemaType:"string",minScore:0.8},{keywords:["account_number","account_no"],fakerMethod:"finance.accountNumber",schemaType:"string",minScore:0.8},{keywords:["credit_card","card_number"],fakerMethod:"finance.creditCardNumber",schemaType:"string",minScore:0.8},{keywords:["cvv"],fakerMethod:"finance.creditCardCVV",schemaType:"string",minScore:0.9},{keywords:["transaction_type"],fakerMethod:"finance.transactionType",schemaType:"string",minScore:0.9}],F7=[{keywords:["created_at","createdat","creation_date","date_created","createddate"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["updated_at","updatedat","modified_at","modifiedat","date_updated","last_modified","date_modified"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["deleted_at","deletedat"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["published_at","publishedat","publish_date"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["expires_at","expiresat","expiration","expiry"],fakerMethod:"date.future",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["birthday","date_of_birth","dob","birthdate","born"],fakerMethod:"date.birthdate",schemaType:"string",minScore:0.8},{keywords:["start_date","begin_date"],fakerMethod:"date.past",schemaType:"string",minScore:0.8},{keywords:["end_date","due_date","deadline"],fakerMethod:"date.future",schemaType:"string",minScore:0.8},{keywords:["timestamp","ts"],fakerMethod:"date.recent",schemaType:"string",minScore:0.8}],L7=[{keywords:["color","colour"],fakerMethod:"color.human",schemaType:"string",minScore:0.8},{keywords:["hex_color","hexcolor"],fakerMethod:"color.rgb",schemaType:"string",minScore:0.9}],C7=[{keywords:["age"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:18,max:80}},{keywords:["rating","score","stars"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:5}},{keywords:["count","quantity","qty"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:100}},{keywords:["percentage","percent"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:0,max:100}},{keywords:["weight"],fakerMethod:"number.float",schemaType:"number",minScore:0.8,fakerArgs:{min:0.1,max:200}},{keywords:["height"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:100,max:220}},{keywords:["width","length","depth"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:1000}},{keywords:["priority","order","rank","level"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:10}},{keywords:["version"],fakerMethod:"system.semver",schemaType:"string",minScore:0.8}],Y7=[{keywords:["is_active","isactive","active","enabled","is_enabled"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.9},{keywords:["is_deleted","isdeleted","deleted"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.05},{keywords:["is_archived","isarchived","archived"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.1},{keywords:["is_verified","isverified","verified","confirmed","is_confirmed"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.8},{keywords:["is_admin","isadmin","admin"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.1},{keywords:["is_public","ispublic","public","visible","is_visible"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.7},{keywords:["is_read","isread","read","seen","is_seen"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.6},{keywords:["is_default","isdefault"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.8,trueProbability:0.1},{keywords:["is_required","isrequired","required","mandatory"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.5},{keywords:["is_featured","isfeatured","featured","promoted"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.8,trueProbability:0.15},{keywords:["available","in_stock"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.8,trueProbability:0.85}],M7=[{keywords:["filename","file_name"],fakerMethod:"system.fileName",schemaType:"string",minScore:0.8},{keywords:["file_type","filetype","mime_type","mimetype","content_type"],fakerMethod:"system.mimeType",schemaType:"string",minScore:0.8},{keywords:["file_ext","extension"],fakerMethod:"system.fileExt",schemaType:"string",minScore:0.9},{keywords:["file_path","filepath","path"],fakerMethod:"system.filePath",schemaType:"string",minScore:0.9},{keywords:["cron","cron_expression"],fakerMethod:"system.cron",schemaType:"string",minScore:0.9},{keywords:["semver"],fakerMethod:"system.semver",schemaType:"string",minScore:0.9}],D7=[{keywords:["aircraft_type","airplane","aircraft"],fakerMethod:"airline.aircraftType",schemaType:"string",minScore:0.9},{keywords:["flight_number","flight"],fakerMethod:"airline.flightNumber",schemaType:"string",minScore:0.9},{keywords:["record_locator","booking_ref","pnr"],fakerMethod:"airline.recordLocator",schemaType:"string",minScore:0.9},{keywords:["seat","seat_number"],fakerMethod:"airline.seat",schemaType:"string",minScore:0.9}],z7=[{keywords:["animal","animal_type","species"],fakerMethod:"animal.type",schemaType:"string",minScore:0.9},{keywords:["pet_name"],fakerMethod:"animal.petName",schemaType:"string",minScore:0.9},{keywords:["breed"],fakerMethod:"animal.dog",schemaType:"string",minScore:0.9},{keywords:["bird"],fakerMethod:"animal.bird",schemaType:"string",minScore:0.9},{keywords:["fish"],fakerMethod:"animal.fish",schemaType:"string",minScore:0.9},{keywords:["horse"],fakerMethod:"animal.horse",schemaType:"string",minScore:0.9},{keywords:["insect"],fakerMethod:"animal.insect",schemaType:"string",minScore:0.9}],O7=[{keywords:["book_title"],fakerMethod:"book.title",schemaType:"string",minScore:0.9},{keywords:["author","book_author","writer"],fakerMethod:"book.author",schemaType:"string",minScore:0.9},{keywords:["genre","book_genre"],fakerMethod:"book.genre",schemaType:"string",minScore:0.9},{keywords:["publisher","publishing_house"],fakerMethod:"book.publisher",schemaType:"string",minScore:0.9},{keywords:["book_series","series_name"],fakerMethod:"book.series",schemaType:"string",minScore:0.9}],k7=[{keywords:["dish","meal","recipe_name"],fakerMethod:"food.dish",schemaType:"string",minScore:0.9},{keywords:["ingredient"],fakerMethod:"food.ingredient",schemaType:"string",minScore:0.9},{keywords:["spice"],fakerMethod:"food.spice",schemaType:"string",minScore:0.9},{keywords:["fruit"],fakerMethod:"food.fruit",schemaType:"string",minScore:0.9},{keywords:["vegetable"],fakerMethod:"food.vegetable",schemaType:"string",minScore:0.9},{keywords:["meat"],fakerMethod:"food.meat",schemaType:"string",minScore:0.9},{keywords:["food_description"],fakerMethod:"food.description",schemaType:"string",minScore:0.9},{keywords:["ethnic_category","cuisine"],fakerMethod:"food.ethnicCategory",schemaType:"string",minScore:0.9}],x7=[{keywords:["song","song_name","track","track_name"],fakerMethod:"music.songName",schemaType:"string",minScore:0.9},{keywords:["album","album_name"],fakerMethod:"music.album",schemaType:"string",minScore:0.9},{keywords:["artist","musician","band"],fakerMethod:"music.artist",schemaType:"string",minScore:0.9},{keywords:["music_genre"],fakerMethod:"music.genre",schemaType:"string",minScore:0.9}],Q7=[],g7=[{keywords:["vehicle","vehicle_name"],fakerMethod:"vehicle.vehicle",schemaType:"string",minScore:0.9},{keywords:["vehicle_type"],fakerMethod:"vehicle.type",schemaType:"string",minScore:0.9},{keywords:["vehicle_manufacturer","car_make"],fakerMethod:"vehicle.manufacturer",schemaType:"string",minScore:0.9},{keywords:["vehicle_model","car_model"],fakerMethod:"vehicle.model",schemaType:"string",minScore:0.9},{keywords:["fuel","fuel_type"],fakerMethod:"vehicle.fuel",schemaType:"string",minScore:0.9},{keywords:["bicycle"],fakerMethod:"vehicle.bicycle",schemaType:"string",minScore:0.9},{keywords:["vehicle_color","car_color"],fakerMethod:"vehicle.color",schemaType:"string",minScore:0.9}],N7=[{keywords:["branch","branch_name","git_branch"],fakerMethod:"git.branch",schemaType:"string",minScore:0.9},{keywords:["commit_sha","commit_hash","sha"],fakerMethod:"git.commitSha",schemaType:"string",minScore:0.9},{keywords:["commit_message"],fakerMethod:"git.commitMessage",schemaType:"string",minScore:0.9}],R7=[{keywords:["db_column","column_name"],fakerMethod:"database.column",schemaType:"string",minScore:0.9},{keywords:["db_type","column_type"],fakerMethod:"database.type",schemaType:"string",minScore:0.9},{keywords:["db_engine","database_engine"],fakerMethod:"database.engine",schemaType:"string",minScore:0.9},{keywords:["collation"],fakerMethod:"database.collation",schemaType:"string",minScore:0.9},{keywords:["mongodb_id","object_id"],fakerMethod:"database.mongodbObjectId",schemaType:"string",minScore:0.9}],A7=[{keywords:["abbreviation","tech_abbreviation"],fakerMethod:"hacker.abbreviation",schemaType:"string",minScore:0.9},{keywords:["hacker_phrase","tech_phrase"],fakerMethod:"hacker.phrase",schemaType:"string",minScore:0.9}],T7=[{keywords:["adjective"],fakerMethod:"word.adjective",schemaType:"string",minScore:0.8},{keywords:["adverb"],fakerMethod:"word.adverb",schemaType:"string",minScore:0.8},{keywords:["noun"],fakerMethod:"word.noun",schemaType:"string",minScore:0.8},{keywords:["verb"],fakerMethod:"word.verb",schemaType:"string",minScore:0.8}],C4=[...K7,...P7,...V7,...B7,...U7,...W7,...w7,...I7,...F7,...L7,...C7,...Y7,...M7,...D7,...z7,...O7,...k7,...x7,...Q7,...g7,...N7,...R7,...A7,...T7];var _7=new Set(["date-time","date","time","duration","email","idn-email","hostname","idn-hostname","ipv4","ipv6","uri","uri-reference","iri","iri-reference","json-pointer","relative-json-pointer","uuid"]);function y7(j){return typeof j==="string"&&_7.has(j)}function M4(j){let q=j.split(/[_-]/),b=[];for(let K of q){if(!K)continue;let P=K.replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z0-9])([A-Z])/g,"$1_$2").split("_");for(let V of P)if(V)b.push(V.toLowerCase())}return b}function H7(j){let q=M4(j);return{tokens:q,joined:q.join("")}}var Y4=new WeakMap;function J7(j){let q=Y4.get(j);if(!q)q=j.keywords.map(H7),Y4.set(j,q);return q}function E7(j,q,b){let K=0;for(let{tokens:P,joined:V}of b){if(q===V)return 1;if(P.length>0&&P.every((B)=>j.includes(B))){let U=P.length/j.length>0.5?0.9:0.65;K=Math.max(K,U)}if(P.length>0&&P.length<=j.length){if(j.slice(-P.length).every((U,W)=>U===P[W]))K=Math.max(K,0.8)}if(V.length>=3&&q.includes(V))K=Math.max(K,0.7)}return K}function D4(j,q,b=C4){let K=typeof q.type==="string"?q.type:void 0;if(K==="string"&&q.format==="uuid")return{mapping:{keywords:["uuid"],fakerMethod:"string.uuid",schemaType:"string",minScore:0.5},score:1};if(q.pattern||q.enum||"faker"in q&&q.faker||q.$ref||y7(q.format)||K==="string"&&(q.minLength!==void 0||q.maxLength!==void 0))return;let P=q.minimum!==void 0||q.maximum!==void 0||q.exclusiveMinimum!==void 0||q.exclusiveMaximum!==void 0||q.multipleOf!==void 0,V=K==="number"||K==="integer",B=M4(j),U=B.join(""),W;for(let w of b){if(P&&(V||w.schemaType==="number"||w.schemaType==="integer"))continue;if(K==="object"||K==="array")continue;if(w.schemaType&&K&&w.schemaType!==K){if(!(w.schemaType==="number"&&K==="integer"||w.schemaType==="integer"&&K==="number"))continue}let L=E7(B,U,J7(w));if(L>=w.minScore&&(!W||L>W.score))W={mapping:w,score:L}}if(K==="string"){if(B[B.length-1]==="id"&&B.length>1){if(!W||W.score<0.8)W={mapping:{keywords:["id"],fakerMethod:"string.uuid",schemaType:"string",minScore:0.5},score:0.8}}}return W}import{ResourceLimitError as r,SchemaValidationError as H}from"@schmock/core";function S7(j){return typeof j==="object"&&j!==null&&!Array.isArray(j)}function z4(j){return typeof j==="object"&&j!==null&&!Array.isArray(j)}function O4(j,q){let b=[],K=(W,w,L,I,C=!1)=>{if(S7(W))b.push({schema:W,path:w,depthCost:L,frameCost:I,typedContinuation:C})},P=(W)=>j.type===W||Array.isArray(j.type)&&j.type.includes(W);if(Array.isArray(j.items))j.items.forEach((W,w)=>{K(W,`${q}.items[${w}]`,1,0,P("array"))});else K(j.items,`${q}.items`,1,0,P("array"));let V=Reflect.get(j,"prefixItems");if(Array.isArray(V))V.forEach((W,w)=>{K(W,`${q}.prefixItems[${w}]`,1,0,P("array"))});K(j.additionalItems,`${q}.additionalItems`,1,0),K(j.contains,`${q}.contains`,1,0);let B=Reflect.get(j,"containsAll");if(Array.isArray(B))B.forEach((W,w)=>{K(W,`${q}.containsAll[${w}]`,1,0)});for(let[W,w]of[["properties",j.properties],["patternProperties",j.patternProperties]]){if(!w)continue;for(let[L,I]of Object.entries(w))K(I,`${q}.${W}.${L}`,1,0,W==="properties"&&P("object"))}K(j.additionalProperties,`${q}.additionalProperties`,1,0),K(j.propertyNames,`${q}.propertyNames`,1,0);for(let W of["allOf","anyOf","oneOf"])j[W]?.forEach((w,L)=>{K(w,`${q}.${W}[${L}]`,0,1)});for(let W of["not","if","then","else"])K(j[W],`${q}.${W}`,0,1);for(let W of["definitions","$defs"]){let w=Reflect.get(j,W);if(!z4(w))continue;for(let[L,I]of Object.entries(w))K(I,`${q}.${W}.${L}`,0,1)}if(j.dependencies){for(let[W,w]of Object.entries(j.dependencies))if(!Array.isArray(w))K(w,`${q}.dependencies.${W}`,0,1)}let U=Reflect.get(j,"dependentSchemas");if(z4(U))for(let[W,w]of Object.entries(U))K(w,`${q}.dependentSchemas.${W}`,0,1);return K(Reflect.get(j,"contentSchema"),`${q}.contentSchema`,0,1),b}var A0,k4=200;function A(j){return typeof j==="object"&&j!==null&&!Array.isArray(j)}function b0(j,q){return j.type===q||Array.isArray(j.type)&&j.type.includes(q)}var q0={height:0,nodes:1};function H0(j,q="$",b){if(!j||typeof j!=="object")throw new H(q,"Schema must be a valid JSON Schema object");let K={visited:0,circular:!1,edges:new Map,postOrder:[],resolveRef:Z7(j)};if(X7(j,q,K),K.circular)throw new H(q,"Schema contains circular references which are not supported");let P=m7(b),V=l7(j,K,P),B=V.get(j)??q0,{maxDepth:U,maxFrames:W}=h7(j,K,P);if(U>C0)throw new r("schema_nesting_depth",C0,U);if(W>k4)K.composition??={resource:"schema_composition_depth",limit:k4,actual:W};for(let[w,L]of V)$7(w,L.height,K,w===j?P:void 0);for(let w of[K.composition,K.deepArray,K.arraySize,K.objectSize,K.stringLength,K.memory])if(w)throw new r(w.resource,w.limit,w.actual);if(P!==void 0&&F0(j)&&P>E)throw new r("array_size",E,P);if(B.nodes>m)throw new r("generated_nodes",m,B.nodes)}function X7(j,q,b){let K=new Set,P=new Set,V=[{schema:j,path:q,typedChain:!0,exiting:!1}];while(V.length>0){let B=V.pop();if(!B)break;if(B.exiting){K.delete(B.schema),P.add(B.schema),b.postOrder.push(B.schema);continue}if(P.has(B.schema)){if(B.typedChain)g4(B.schema,B.path,!0);continue}if(K.has(B.schema)){b.circular=!0;continue}if(b.visited+=1,b.visited>Y0)throw new r("schema_nodes",Y0,b.visited);g4(B.schema,B.path,B.typedChain),G7(B.schema,b),n7(B.schema,b),c7(B.schema,b);let U=f7(B.schema,B.path,b.resolveRef);b.edges.set(B.schema,U),K.add(B.schema),V.push({...B,exiting:!0});for(let W=U.length-1;W>=0;W-=1){let w=U[W];if(K.has(w.schema))b.circular=!0;else if(!P.has(w.schema))V.push({schema:w.schema,path:w.path,typedChain:B.typedChain&&w.typedContinuation,exiting:!1})}}}function f7(j,q,b){let K=A4(j,q);for(let P of["$ref","$dynamicRef"]){let V=Reflect.get(j,P);if(typeof V!=="string")continue;let B=b(j,V);if(A(B))K.unshift({schema:B,path:`${q}.${P}`,depthCost:0,frameCost:1,typedContinuation:!1})}return K}function A4(j,q){return O4(j,q)}var x4="schmock://local/root.json";function Z7(j){let q=v7(j),b=new Map;return(K,P)=>{let V=b.get(K);if(!V)V=new Map,b.set(K,V);let B=V.get(P);if(B!==void 0)return B===null?void 0:B;let U=q.scopes.get(K)??q.rootScope,W=u7(P,U,q.resources);return V.set(P,W??null),W}}function v7(j){let q=new Map,b=new Map,K={baseUri:x4,resourceRoot:j};q.set(x4,j);let P=[{schema:j,inheritedScope:K,path:"$"}];while(P.length>0){let V=P.pop();if(!V||b.has(V.schema))continue;let B=p7(V.schema,V.inheritedScope,q,V.path);b.set(V.schema,B);for(let U of A4(V.schema,V.path))P.push({schema:U.schema,inheritedScope:B,path:U.path})}return{resources:q,scopes:b,rootScope:b.get(j)??K}}function p7(j,q,b,K){let P=q;if(typeof j.$id==="string"){let V=T4(j.$id,q.baseUri);if(V)if(T0(b,V,j,K),_4(V)===""){let B=y0(V);T0(b,B,j,K),P={baseUri:B,resourceRoot:j}}else P={...q,baseUri:V}}for(let V of["$anchor","$dynamicAnchor"]){let B=Reflect.get(j,V);if(typeof B==="string"&&B.length>0)T0(b,`${y0(P.baseUri)}#${B}`,j,`${K}.${V}`)}return P}function T0(j,q,b,K){let P=j.get(q);if(P!==void 0&&P!==b)throw new H(K,`Duplicate canonical schema identifier: "${q}"`,"Give each embedded resource and anchor a unique canonical identifier");j.set(q,b)}function u7(j,q,b){if(j==="#")return q.resourceRoot;if(j.startsWith("#/"))return Q4(q.resourceRoot,j.slice(1));let K=T4(j,q.baseUri);if(!K)return;let P=b.get(K);if(P!==void 0)return P;let V=b.get(y0(K));if(V===void 0)return;let B=_4(K);if(B==="")return V;return B.startsWith("/")?Q4(V,B):void 0}function T4(j,q){try{return new URL(j,q).href}catch{return}}function y0(j){let q=new URL(j);return q.hash="",q.href}function _4(j){return new URL(j).hash.slice(1)}function Q4(j,q){let b;try{b=decodeURIComponent(q)}catch{return}if(b==="")return j;if(!b.startsWith("/"))return;let K=j;for(let P of b.slice(1).split("/")){let V=P.replace(/~1/g,"/").replace(/~0/g,"~");if(typeof K!=="object"||K===null||!Object.hasOwn(K,V))return;K=Reflect.get(K,V)}return typeof K==="boolean"||A(K)?K:void 0}function l7(j,q,b){let K=new Map;for(let P of q.postOrder)K.set(P,d7(P,K,q.resolveRef,P===j?b:void 0));return K}function d7(j,q,b,K){let P=typeof j.$ref==="string"?j.$ref:Reflect.get(j,"$dynamicRef");if(typeof P==="string")return _0(b(j,P),q);let V=0,B=1,U=(I)=>{let C=_0(I,q);return V=Math.max(V,C.height+1),C},W=(I)=>{let C=_0(I,q);return V=Math.max(V,C.height),C};if(F0(j)){let I=K??J0(j),C=0;if(Array.isArray(j.items)){j.items.forEach((T,S)=>{let R=U(T);if(S<I)C=p(C+R.nodes)});let k=j.additionalItems===void 0?q0:U(j.additionalItems);C=p(C+Math.max(0,I-j.items.length)*k.nodes)}else if(j.items!==void 0)C=p(I*U(j.items).nodes);else C=I;if(j.contains!==void 0)U(j.contains);B=p(B+C)}if(H4(j)){let I=new Set(Object.keys(j.properties??{}));for(let R of Object.values(j.properties??{}))B=p(B+U(R).nodes);let C=q0;for(let R of Object.values(j.patternProperties??{})){let y=U(R);if(B=p(B+y.nodes),y.nodes>C.nodes)C=y}if(j.additionalProperties!==void 0){let R=U(j.additionalProperties);if(R.nodes>C.nodes)C=R}if(j.propertyNames!==void 0)U(j.propertyNames);let k=new Set((j.required??[]).filter((R)=>!I.has(R))).size,T=Math.max(0,(j.minProperties??0)-I.size),S=Math.max(k,T);B=p(B+S*C.nodes)}if(j.allOf)for(let I of j.allOf)B=p(B+Math.max(0,W(I).nodes-1));let w=0;for(let I of["anyOf","oneOf"])for(let C of j[I]??[])w=Math.max(w,W(C).nodes-1);if(B=p(B+Math.max(0,w)),j.if!==void 0)W(j.if);let L=0;for(let I of["then","else"])if(j[I]!==void 0)L=Math.max(L,W(j[I]).nodes-1);if(B=p(B+Math.max(0,L)),j.not!==void 0)W(j.not);return{height:V,nodes:B}}function _0(j,q){return A(j)?q.get(j)??q0:q0}function h7(j,q,b){let K=new Map([[j,0]]),P=new Map([[j,0]]),V=0,B=0;for(let U=q.postOrder.length-1;U>=0;U-=1){let W=q.postOrder[U],w=K.get(W),L=P.get(W);if(w===void 0||L===void 0)continue;V=Math.max(V,w),B=Math.max(B,L);let I=W===j&&b!==void 0?b:J0(W);if(F0(W)&&w>=n&&I>=c)q.deepArray??={resource:"deep_nesting_memory_risk",limit:n*c,actual:w*I};for(let C of q.edges.get(W)??[]){let k=w+C.depthCost,T=L+C.frameCost;if(k>(K.get(C.schema)??-1))K.set(C.schema,k);if(T>(P.get(C.schema)??-1))P.set(C.schema,T)}}return{maxDepth:V,maxFrames:B}}function g4(j,q,b){if(b&&Object.keys(j).length===0)throw new H(q,"Schema cannot be empty");let K=["object","array","string","number","integer","boolean","null"];if(j.type&&typeof j.type==="string"&&!K.includes(j.type))throw new H(q,`Invalid schema type: "${j.type}"`,"Supported types are: object, array, string, number, integer, boolean, null");if(j.properties!==void 0&&(typeof j.properties!=="object"||Array.isArray(j.properties)))throw new H(`${q}.properties`,"Properties must be an object mapping property names to schemas",'Use { "propertyName": { "type": "string" } } format');if(j.type==="array"){if(j.items===null||j.items===void 0)throw new H(`${q}.items`,"Array schema must have valid items definition","Define items as a schema object or array of schemas");if(Array.isArray(j.items)&&j.items.length===0)throw new H(`${q}.items`,"Array items cannot be empty array","Provide at least one item schema")}if("faker"in j&&j.faker!==void 0)try{o7(j.faker)}catch(P){if(P instanceof H){let V=P.context,B="Invalid faker method",U;if(V&&typeof V==="object"){if("issue"in V&&typeof V.issue==="string")B=V.issue;if("suggestion"in V&&typeof V.suggestion==="string")U=V.suggestion}throw new H(`${q}.faker`,B,U)}if(P instanceof Error)throw P;throw Error(String(P))}}function o7(j){if(typeof j==="string"){I0(j);return}if(typeof j!=="object"||j===null||Array.isArray(j))throw new H("$.faker","Faker must be a method string or an object with exactly one own method key",'Use "person.fullName" or { "number.int": [{ "min": 1, "max": 2 }] }');let q=Reflect.ownKeys(j),b=Object.keys(j);if(q.length!==1||b.length!==1||typeof q[0]!=="string"||q[0]!==b[0])throw new H("$.faker","Object-form faker must contain exactly one own method key",'Use { "number.int": [{ "min": 1, "max": 2 }] }');let K=b[0],P=Object.getOwnPropertyDescriptor(j,K);if(!P||!("value"in P)||!Array.isArray(P.value))throw new H("$.faker",`Arguments for faker method "${K}" must be an array`,'Wrap options in an array, for example [{ "min": 1, "max": 2 }]');I0(K),i7(K,P.value)}var N={resource:"string_length",limit:Z},w0={resource:"array_size",limit:E},r7={"string.fromCharacters":[{argumentIndex:1,direct:!0,...N}],"string.alpha":[{argumentIndex:0,direct:!0,property:"length",...N}],"string.alphanumeric":[{argumentIndex:0,direct:!0,property:"length",...N}],"string.binary":[{argumentIndex:0,direct:!1,property:"length",...N}],"string.octal":[{argumentIndex:0,direct:!1,property:"length",...N}],"string.hexadecimal":[{argumentIndex:0,direct:!1,property:"length",...N}],"string.numeric":[{argumentIndex:0,direct:!0,property:"length",...N}],"string.sample":[{argumentIndex:0,direct:!0,...N}],"string.nanoid":[{argumentIndex:0,direct:!0,...N}],"string.symbol":[{argumentIndex:0,direct:!0,...N}],"word.sample":[{argumentIndex:0,direct:!0,property:"length",...N}],"word.words":[{argumentIndex:0,direct:!0,property:"count",...N}],"lorem.word":[{argumentIndex:0,direct:!0,property:"length",...N}],"lorem.words":[{argumentIndex:0,direct:!0,...N}],"lorem.sentence":[{argumentIndex:0,direct:!0,...N}],"lorem.sentences":[{argumentIndex:0,direct:!0,...N}],"lorem.slug":[{argumentIndex:0,direct:!0,...N}],"lorem.lines":[{argumentIndex:0,direct:!0,...N}],"lorem.paragraph":[{argumentIndex:0,direct:!0,...N}],"lorem.paragraphs":[{argumentIndex:0,direct:!0,...N}],"lorem.text":[{argumentIndex:0,direct:!0,...N}],"internet.password":[{argumentIndex:0,direct:!1,property:"length",...N}],"helpers.uniqueArray":[{argumentIndex:1,direct:!0,...w0}],"helpers.arrayElements":[{argumentIndex:1,direct:!0,...w0}],"helpers.multiple":[{argumentIndex:1,direct:!1,property:"count",...w0}],"date.betweens":[{argumentIndex:0,direct:!1,property:"count",...w0}]};function i7(j,q){for(let P of r7[j]??[]){let V=q[P.argumentIndex],B=P.direct?N4(V):0;if(P.property&&y4(V))B=Math.max(B,N4(Reflect.get(V,P.property)));if(B>P.limit)throw new r(P.resource,P.limit,B)}let b=[...q],K=new Set;while(b.length>0){let P=b.pop();if(typeof P==="string"&&P.length>Z)throw new r("string_length",Z,P.length);if(typeof P!=="object"||P===null||K.has(P))continue;if(K.add(P),Array.isArray(P)){for(let V of P)b.push(V);continue}for(let V of Object.values(P))b.push(V)}}function y4(j){return typeof j==="object"&&j!==null&&!Array.isArray(j)}function N4(j){if(typeof j==="number")return j;if(!y4(j))return 0;let q=0;for(let b of["min","max"]){let K=Reflect.get(j,b);if(typeof K==="number")q=Math.max(q,K)}return q}function F0(j){return b0(j,"array")||j.items!==void 0||j.minItems!==void 0||j.maxItems!==void 0}function J0(j){let{minItems:q,maxItems:b}=j;if(q!==void 0&&b!==void 0)return Math.max(q,b);if(b!==void 0)return b;if(q!==void 0)return q;return i}function m7(j){if(j===void 0||Number.isNaN(j))return;return Math.floor(Math.max(0,j))}function G7(j,q){let b=Math.max(j.minItems??0,j.maxItems??0);if(b>E)q.arraySize??={resource:"array_max_items",limit:E,actual:b}}function n7(j,q){if(!H4(j))return;let b=new Set(Object.keys(j.properties??{})),K=new Set((j.required??[]).filter((V)=>!b.has(V))).size,P=Math.max(j.minProperties??0,b.size+K);if(P>o)q.objectSize??={resource:"object_properties",limit:o,actual:P}}function c7(j,q){if(t7(j)){for(let b of[j.minLength,j.maxLength])if(b!==void 0)R4(b,q)}for(let b of[j.const,j.default,j.enum,Reflect.get(j,"template")])R4(s7(b),q)}function t7(j){if(j.type!==void 0)return b0(j,"string");if(j.const!==void 0)return typeof j.const==="string";if(j.enum!==void 0)return j.enum.some((q)=>typeof q==="string");if(j.default!==void 0)return typeof j.default==="string";return!0}function R4(j,q){if(j>Z&&(!q.stringLength||j>q.stringLength.actual))q.stringLength={resource:"string_length",limit:Z,actual:j}}function s7(j){let q=[j],b=new Set,K=0;while(q.length>0){let P=q.pop();if(typeof P==="string"){K=Math.max(K,P.length);continue}if(typeof P!=="object"||P===null||b.has(P))continue;b.add(P),q.push(...Object.values(P))}return K}function H4(j){if(j.type!==void 0)return b0(j,"object");return j.properties!==void 0||j.required!==void 0||j.additionalProperties!==void 0||j.patternProperties!==void 0||j.minProperties!==void 0||j.maxProperties!==void 0}function $7(j,q,b,K){if(!F0(j))return;let P=K??J0(j);if(q>n&&P>c)b.memory??={resource:"memory_estimation",limit:n*c,actual:q*P}}function p(j){return Math.min(j,Number.MAX_SAFE_INTEGER)}function I0(j){let q=j.split(".");if(q.length<2)throw new H("$.faker",`Invalid faker method format: "${j}"`,"Use format like 'person.firstName' or 'internet.email'");if(!A0)A0=g0();let K=A0;for(let P of q)if(K&&typeof K==="object"&&P in K)K=Reflect.get(K,P);else throw new H("$.faker",`Invalid faker method: "${j}"`,"Check faker.js documentation for valid methods");if(typeof K!=="function")throw new H("$.faker",`Invalid faker method: "${j}" is not a function`,"Check faker.js documentation for valid methods")}function J4(j){return j.type==="string"&&j.faker===void 0&&j.format===void 0&&j.pattern===void 0&&j.enum===void 0&&j.const===void 0&&j.$ref===void 0&&j.minLength===void 0&&j.maxLength===void 0}function a7(j){if(j.schmockNullable!==!0)return j;if(Array.isArray(j.anyOf)&&j.anyOf.length===2){let[q,b]=j.anyOf;if(A(q)&&q.type==="null"&&Object.keys(q).length===1&&A(b)){let{anyOf:K,...P}=j;return{...b,...P,schmockNullable:!0}}}if(Array.isArray(j.type)){let q=j.type.filter((b)=>b!=="null");if(q.length===1)j.type=q[0];else if(q.length>0)j.type=q}if(Array.isArray(j.enum)){let q=j.enum.filter((b)=>b!==null);if(q.length>0)j.enum=q}return j}var f=Symbol("root-schema");function E4(j){return typeof j==="object"&&j!==null&&!Array.isArray(j)}function S4(j){if(!j||typeof j!=="object")return j;return u(j,{cache:new Map},f)}function u(j,q,b){let K=q.cache.get(j);if(!K)K=new Map,q.cache.set(j,K);let P=K.get(b);if(P)return P;let V=a7({...j});if(K.set(b,V),b!==f&&V.faker){if(typeof V.faker==="string")I0(V.faker);return V}if(V.properties){let w={...V.properties};for(let[L,I]of Object.entries(w))if(A(I))w[L]=u(I,q,L);V.properties=w}for(let w of["definitions","$defs","patternProperties"]){let L=Reflect.get(V,w);if(!E4(L))continue;let I={...L};for(let[C,k]of Object.entries(I))if(A(k))I[C]=u(k,q,f);Reflect.set(V,w,I)}if(V.dependencies){let w={...V.dependencies};for(let[L,I]of Object.entries(w))if(!Array.isArray(I)&&A(I))w[L]=u(I,q,f);V.dependencies=w}let B=Reflect.get(V,"dependentSchemas");if(E4(B)){let w={...B};for(let[L,I]of Object.entries(w))if(A(I))w[L]=u(I,q,f);Reflect.set(V,"dependentSchemas",w)}if(Array.isArray(V.items))V.items=V.items.map((w)=>A(w)?u(w,q,f):w);else if(A(V.items))V.items=u(V.items,q,f);for(let w of["allOf","anyOf","oneOf"]){let L=V[w];if(L)V[w]=L.map((I)=>A(I)?u(I,q,f):I)}for(let w of["prefixItems","containsAll"]){let L=Reflect.get(V,w);if(Array.isArray(L))Reflect.set(V,w,L.map((I)=>A(I)?u(I,q,f):I))}for(let w of["additionalItems","contains","additionalProperties","propertyNames","not","if","then","else","contentSchema"]){let L=Reflect.get(V,w);if(A(L))Reflect.set(V,w,u(L,q,f))}if(b===f){if(J4(V))V.faker="lorem.word";return V}if(V.allOf||V.anyOf||V.oneOf||V.const!==void 0||V.enum)return V;let W=D4(b,V);if(W){let{fakerMethod:w,format:L,trueProbability:I,fakerArgs:C}=W.mapping;if(V.faker=C?{[w]:[C]}:w,L&&V.format===void 0)V.format=L;if(I!==void 0)V.schmockTrueProbability=I}else if(J4(V))V.faker="lorem.word";return V}function f4(j){return typeof j==="object"&&j!==null&&!Array.isArray(j)}function Z5(j){let[q,b]=B4([j.schema,j.overrides]);if(!A(q))throw new E0("$","Schema must be a valid JSON Schema object");if(b!==void 0&&!f4(b))throw new E0("$.overrides","Overrides must be an object mapping paths to values");let K=q,P=b,V=j.count,B=j.seed;return H0(K,"$",V),{name:"faker",version:X0,async process(U,W){if(W!==void 0&&W!==null)return{context:U,response:W};try{let w=await j5({schema:K,count:V,overrides:P,params:U.params,state:U.routeState,query:U.query,seed:B});return{context:U,response:w}}catch(w){if(w instanceof E0||w instanceof X4)throw w;throw new e7(U.path,w instanceof Error?w:Error(String(w)),K)}}}}async function j5(j){let{schema:q,count:b,overrides:K,params:P,state:V,query:B,seed:U}=j;H0(q,"$",b);let W=U4(U),w=W4(W),L=S4(q);if(b0(q,"array")&&q.items){let C=F4(q,b,w);if(C>E)throw new X4("array_size",E,C);L={...L,minItems:C,maxItems:C}}let I=await w4(L,W,U!==void 0?M0:void 0);if(I=L0(I,L,w),Array.isArray(I)){let C=I.map((k)=>j0(k,K,P,V,B));return $(C),C}return I=j0(I,K,P,V,B),$(I),I}function L0(j,q,b){if(j===null||j===void 0||!q||typeof q!=="object")return j;if("schmockNullable"in q&&q.schmockNullable===!0){if(b()<Z0)return null}if(q.type==="boolean"&&"schmockTrueProbability"in q&&typeof q.schmockTrueProbability==="number")return b()<q.schmockTrueProbability;if(f4(j)&&q.properties){for(let[K,P]of Object.entries(q.properties))if(K in j&&A(P))j[K]=L0(j[K],P,b)}if(Array.isArray(j)&&Array.isArray(q.items))for(let K=0;K<j.length;K++){let P=q.items[K];if(P&&A(P))j[K]=L0(j[K],P,b)}else if(Array.isArray(j)&&q.items&&A(q.items))for(let K=0;K<j.length;K++)j[K]=L0(j[K],q.items,b);return j}export{j5 as generateFromSchema,Z5 as fakerPlugin,Z as MAX_STRING_LENGTH,o as MAX_OBJECT_PROPERTIES};
1
+ import{ResourceLimitError as S4,SchemaGenerationError as c7,SchemaValidationError as s0}from"@schmock/core";var a0="2.5.0";var E=1e4,r=3,P0=15,e0=20,B0=50000,i=1e6,o=1e4,g=65536,c=16777216,T0="2024-01-01T00:00:00.000Z",q6=0.05;import{base as t9,en as a9,Faker as e9}from"@faker-js/faker";function v4(q){let j=q|0;return()=>{j=j+1831565813|0;let K=Math.imul(j^j>>>15,1|j);return K=K+Math.imul(K^K>>>7,61|K)^K,((K^K>>>14)>>>0)/4294967296}}function I6(q){let j=v4(q),K=0,z={next(){return K++,j()},int(b,P){return b+Math.floor(z.next()*(P-b+1))},bool(b=0.5){return z.next()<b},pick(b){return b[z.int(0,b.length-1)]},shuffle(b){let P=[...b];for(let B=P.length-1;B>0;B--){let F=z.int(0,B);[P[B],P[F]]=[P[F],P[B]]}return P},fork(){let b=Math.floor(z.next()*4294967296);return I6(b)}};return z}function f4(q){return null}function E4(q){return q.random.bool()}function C6(q,j,K=!1){let z=-1000,b=1000,P=!1,B=!1;if(q.minimum!==void 0)z=q.minimum;if(q.maximum!==void 0)b=q.maximum;if(q.exclusiveMinimum!==void 0)z=q.exclusiveMinimum,P=!0;if(q.exclusiveMaximum!==void 0)b=q.exclusiveMaximum,B=!0;if(q.multipleOf!==void 0)return x4(q.multipleOf,z,b,P,B,j);if(K){let W=P?Math.floor(z)+1:Math.ceil(z),V=B?Math.ceil(b)-1:Math.floor(b);return j.random.int(W,V)}let F=P?z+Number.EPSILON:z,G=B?b-Number.EPSILON:b;return F+j.random.next()*(G-F)}function x4(q,j,K,z,b,P){let B=Math.ceil(j/q),F=Math.floor(K/q);if(z&&B*q===j)B++;if(b&&F*q===K)F--;if(B>F)return B*q;return P.random.int(B,F)*q}function X4(q,j){if(q.autoIncrement){let K=q.initialOffset??1,z=u4(j.path),b=j.autoIncrementCounters??new Map,P=(b.get(z)??K-1)+1;if(b.set(z,P),j.autoIncrementCounters)j.autoIncrementCounters.set(z,P);return P}return C6(q,j,!0)}function u4(q){let j=new Set(["items","prefixItems","contains","additionalItems"]),K=q.split("/").filter((z)=>z!=="");return K.filter((z,b)=>{let P=K[b-1];return!(/^\d+$/.test(z)&&P!==void 0&&j.has(P))}).join("/")}function j6(q,j){let K=O6(q,0);return q0(K.node,j)}function q0(q,j){switch(q.type){case"literal":return q.value;case"dot":return j.pick([..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#%&*()-_=+[]{}|;:',.<>/? "]);case"anchor":return"";case"charClass":return p4(q,j);case"sequence":return q.nodes.map((K)=>q0(K,j)).join("");case"alternation":return q0(j.pick(q.branches),j);case"quantifier":{let K=j.int(q.min,Math.min(q.max,q.min+5));return Array.from({length:K},()=>q0(q.node,j)).join("")}case"group":return q0(q.node,j)}}function p4(q,j){if(!q.negated)return j.pick(q.chars);let K=new Set(q.chars),z=[..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#%&*()-_=+[]{}|;:',.<>/? "].filter((b)=>!K.has(b));return z.length>0?j.pick(z):"a"}function O6(q,j){let K=[],z=[];while(j<q.length){let b=q[j];if(b===")")break;if(b==="|"){K.push(K6(z)),z=[],j++;continue}if(b==="("){let F=j+1;if(q[F]==="?")if(q[F+1]===":")F+=2;else if(q[F+1]==="="||q[F+1]==="!"){let L=1,O=F;while(O<q.length&&L>0){if(O++,q[O]==="(")L++;if(q[O]===")")L--}j=O+1;continue}else{F+=2;while(F<q.length&&q[F]!==">")F++;F++}let G=O6(q,F),W={type:"group",node:G.node};j=G.pos+1;let V=e(q,j,W);z.push(V.node),j=V.pos;continue}if(b==="["){let F=d4(q,j),G=e(q,F.pos,F.node);z.push(G.node),j=G.pos;continue}if(b==="."){let F={type:"dot"};j++;let G=e(q,j,F);z.push(G.node),j=G.pos;continue}if(b==="^"||b==="$"){z.push({type:"anchor"}),j++;continue}if(b==="\\"){j++;let F=l4(q,j);j=F.pos;let G=e(q,j,F.node);z.push(G.node),j=G.pos;continue}let P={type:"literal",value:b};j++;let B=e(q,j,P);z.push(B.node),j=B.pos}return K.push(K6(z)),{node:K.length===1?K[0]:{type:"alternation",branches:K},pos:j}}function K6(q){if(q.length===0)return{type:"literal",value:""};if(q.length===1)return q[0];return{type:"sequence",nodes:q}}function l4(q,j){let K=q[j];switch(j++,K){case"d":return{node:{type:"charClass",chars:[..."0123456789"],negated:!1},pos:j};case"D":return{node:{type:"charClass",chars:[..."0123456789"],negated:!0},pos:j};case"w":return{node:{type:"charClass",chars:[..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"],negated:!1},pos:j};case"W":return{node:{type:"charClass",chars:[..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_"],negated:!0},pos:j};case"s":return{node:{type:"charClass",chars:[...`
2
+ `],negated:!1},pos:j};case"S":return{node:{type:"charClass",chars:[...`
3
+ `],negated:!0},pos:j};case"b":case"B":return{node:{type:"anchor"},pos:j};default:return{node:{type:"literal",value:K},pos:j}}}function d4(q,j){j++;let K=!1;if(q[j]==="^")K=!0,j++;let z=[];while(j<q.length&&q[j]!=="]"){if(q[j]==="\\"&&j+1<q.length){j++;let b=q[j];switch(b){case"d":z.push(..."0123456789");break;case"w":z.push(..."abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_");break;case"s":z.push(...`
4
+ `);break;default:z.push(b)}j++;continue}if(j+2<q.length&&q[j+1]==="-"&&q[j+2]!=="]"){let b=q.charCodeAt(j),P=q.charCodeAt(j+2);for(let B=b;B<=P;B++)z.push(String.fromCharCode(B));j+=3;continue}z.push(q[j]),j++}return j++,{node:{type:"charClass",chars:z,negated:K},pos:j}}function e(q,j,K){if(j>=q.length)return{node:K,pos:j};let z=q[j],b,P;switch(z){case"*":b=0,P=5,j++;break;case"+":b=1,P=5,j++;break;case"?":b=0,P=1,j++;break;case"{":{let B=Z4(q,j);if(B)b=B.min,P=B.max,j=B.pos;else return{node:K,pos:j};break}default:return{node:K,pos:j}}if(j<q.length&&(q[j]==="?"||q[j]==="+"))j++;return{node:{type:"quantifier",node:K,min:b,max:P},pos:j}}function Z4(q,j){let K=q.slice(j).match(/^\{(\d+)(?:,(\d*))?\}/);if(!K)return null;let z=parseInt(K[1],10),b;if(K[2]===void 0)b=z;else if(K[2]==="")b=z+5;else b=parseInt(K[2],10);return{min:z,max:b,pos:j+K[0].length}}function l(q){return q<10?`0${q}`:`${q}`}function h4(q,j){return new Date(q,j,0).getDate()}var L6="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";function m4(q){if(q==="^"||q==="$"||q==="^$")return!1;return!0}function i4(q,j){if(q.format){if(q.format==="date-time"&&(j.minDateTime!==void 0||j.maxDateTime!==void 0))return o4(j);let B=j.formatRegistry.get(q.format);if(B){let F=B(j.random),G=j.minLength??q.minLength,W=j.maxLength??q.maxLength;if(G!==void 0&&F.length<G)return Y0(F,G,j);if(W!==void 0&&F.length>W)return F.slice(0,W);return F}}if(q.pattern){let B=j.minLength??q.minLength,F=j.maxLength??q.maxLength,G=50;for(let L=0;L<50;L++){let O=j6(q.pattern,j.random);if(B!==void 0&&O.length<B)continue;if(F!==void 0&&O.length>F)continue;return O}let W=j6(q.pattern,j.random),V=m4(q.pattern);if(B!==void 0&&W.length<B){if(V)return Y0(W,B,j)}if(F!==void 0&&W.length>F)return W.slice(0,F);return W}let K=q.minLength??0,z=q.maxLength??Math.max(K+10,10),b=j.random.int(K,z),P="";for(let B=0;B<b;B++)P+=j.random.pick([...L6]);if(j.maxLength!==void 0&&P.length>j.maxLength)P=P.slice(0,j.maxLength);if(j.minLength!==void 0&&P.length<j.minLength)P=Y0(P,j.minLength,j);return P}function Y0(q,j,K){while(q.length<j)q+=K.random.pick([...L6]);return q}function o4(q){let j=q.minDateTime?new Date(q.minDateTime):new Date("1970-01-01"),K=q.maxDateTime?new Date(q.maxDateTime):new Date,z=j.getTime(),b=K.getTime(),P=z+q.random.next()*(b-z),B=new Date(P),F=B.getFullYear(),G=l(B.getMonth()+1),W=l(B.getDate());return`${F}-${G}-${W}T01:01:01.0Z`}function z6(q,j){if(q.const!==void 0)return structuredClone(q.const);if(q.enum!==void 0&&q.enum.length>0){let K=q.enum;if(q.minimum!==void 0||q.maximum!==void 0||q.exclusiveMinimum!==void 0||q.exclusiveMaximum!==void 0||q.multipleOf!==void 0){let b=q.exclusiveMinimum??q.minimum??-1/0,P=q.exclusiveMaximum??q.maximum??1/0,B=q.exclusiveMinimum!==void 0,F=q.exclusiveMaximum!==void 0;K=K.filter((G)=>{if(typeof G!=="number")return!0;let W=B?G>b:G>=b,V=F?G<P:G<=P;if(!W||!V)return!1;if(q.multipleOf!==void 0){let L=q.multipleOf,O=L.toString().includes(".")?L.toString().split(".")[1].length:0,J=Math.pow(10,O),A=Math.round(G*J),w=Math.round(L*J);if(A%w!==0)return!1}return!0})}if(q.minLength!==void 0||q.maxLength!==void 0){let b=q.minLength??0,P=q.maxLength??1/0;K=K.filter((B)=>{if(typeof B!=="string")return!0;return B.length>=b&&B.length<=P})}if(q.minItems!==void 0||q.maxItems!==void 0){let b=q.minItems??0,P=q.maxItems??1/0;K=K.filter((B)=>{if(!Array.isArray(B))return!0;return B.length>=b&&B.length<=P})}if(q.minProperties!==void 0||q.maxProperties!==void 0){let b=q.minProperties??0,P=q.maxProperties??1/0;K=K.filter((B)=>{if(typeof B!=="object"||B===null||Array.isArray(B))return!0;return Object.keys(B).length>=b&&Object.keys(B).length<=P})}if(K.length===0){let b=[];if(q.minLength!==void 0)b.push(`minLength: ${q.minLength}`);if(q.maxLength!==void 0)b.push(`maxLength: ${q.maxLength}`);if(q.minItems!==void 0)b.push(`minItems: ${q.minItems}`);if(q.maxItems!==void 0)b.push(`maxItems: ${q.maxItems}`);if(q.minProperties!==void 0)b.push(`minProperties: ${q.minProperties}`);if(q.maxProperties!==void 0)b.push(`maxProperties: ${q.maxProperties}`);if(q.minimum!==void 0)b.push(`minimum: ${q.minimum}`);if(q.maximum!==void 0)b.push(`maximum: ${q.maximum}`);if(q.exclusiveMinimum!==void 0)b.push(`exclusiveMinimum: ${q.exclusiveMinimum}`);if(q.exclusiveMaximum!==void 0)b.push(`exclusiveMaximum: ${q.exclusiveMaximum}`);if(q.multipleOf!==void 0)b.push(`multipleOf: ${q.multipleOf}`);throw Error(`enum values conflict with constraints [${b.join(", ")}] at ${j.path}`)}let z=j.random.pick(K);return typeof z==="object"&&z!==null?structuredClone(z):z}throw Error(`generateEnumConst called without enum or const at ${j.path}`)}function w0(q){return typeof q==="object"&&q!==null&&"then"in q&&typeof q.then==="function"}var R6=Symbol("walkCall");function T(q,j){return{[R6]:!0,schema:q,ctx:j}}function k6(q){return typeof q==="object"&&q!==null&&R6 in q}function G0(q,j){q.push({gen:j,sent:void 0,hasThrown:!1,threw:void 0})}function J6(q){let j=q[q.length-1],K;try{K=j.hasThrown?j.gen.throw(j.threw):j.gen.next(j.sent)}catch(z){if(q.pop(),q.length===0)throw z;let b=q[q.length-1];b.hasThrown=!0,b.threw=z;return}return j.hasThrown=!1,K}async function $4(q,j){let K=[];G0(K,q);for(;;){let z=J6(K);if(z===void 0)continue;if(z.done){if(K.pop(),K.length===0)return z.value;K[K.length-1].sent=z.value;continue}if(k6(z.value)){G0(K,j(z.value.schema,z.value.ctx));continue}let b=K[K.length-1];try{b.sent=await z.value}catch(P){b.hasThrown=!0,b.threw=P}}}function n4(q,j){let K=[];G0(K,q);for(;;){let z=J6(K);if(z===void 0)continue;if(z.done){if(K.pop(),K.length===0)return z.value;K[K.length-1].sent=z.value;continue}if(k6(z.value)){G0(K,j(z.value.schema,z.value.ctx));continue}if(w0(z.value))throw Error("generateSync() encountered an unexpected asynchronous operation.");K[K.length-1].sent=z.value}}function p(q){let j={};for(let K of q){if(typeof K==="boolean"){if(!K)return{not:{}};continue}T6(j,K)}return j}function M6(q,j){if(typeof q==="boolean"||typeof j==="boolean")return{};if(typeof q!=="object"||q===null)return typeof j==="object"&&j!==null?j:{};if(typeof j!=="object"||j===null)return q;let K={...q};return T6(K,j),K}function T6(q,j){if(j.type!==void 0)if(q.type===void 0)q.type=j.type;else q.type=r4(q.type,j.type);if(j.minimum!==void 0)q.minimum=q.minimum!==void 0?Math.max(q.minimum,j.minimum):j.minimum;if(j.maximum!==void 0)q.maximum=q.maximum!==void 0?Math.min(q.maximum,j.maximum):j.maximum;if(j.exclusiveMinimum!==void 0)q.exclusiveMinimum=q.exclusiveMinimum!==void 0?Math.max(q.exclusiveMinimum,j.exclusiveMinimum):j.exclusiveMinimum;if(j.exclusiveMaximum!==void 0)q.exclusiveMaximum=q.exclusiveMaximum!==void 0?Math.min(q.exclusiveMaximum,j.exclusiveMaximum):j.exclusiveMaximum;if(j.multipleOf!==void 0)q.multipleOf=j.multipleOf;if(j.minLength!==void 0)q.minLength=q.minLength!==void 0?Math.max(q.minLength,j.minLength):j.minLength;if(j.maxLength!==void 0)q.maxLength=q.maxLength!==void 0?Math.min(q.maxLength,j.maxLength):j.maxLength;if(j.pattern!==void 0)q.pattern=j.pattern;if(j.format!==void 0)q.format=j.format;if(j.minItems!==void 0)q.minItems=q.minItems!==void 0?Math.max(q.minItems,j.minItems):j.minItems;if(j.maxItems!==void 0)q.maxItems=q.maxItems!==void 0?Math.min(q.maxItems,j.maxItems):j.maxItems;if(j.uniqueItems)q.uniqueItems=!0;if(j.items!==void 0)q.items=j.items;if(j.prefixItems!==void 0)if(q.prefixItems===void 0)q.prefixItems=j.prefixItems;else{let K=[],z=Math.max(q.prefixItems.length,j.prefixItems.length);for(let b=0;b<z;b++){let P=q.prefixItems[b],B=j.prefixItems[b];if(P!==void 0&&B!==void 0)K.push(M6(P,B));else if(P!==void 0)K.push(P);else if(B!==void 0)K.push(B)}q.prefixItems=K}if(j.contains!==void 0)if(q.containsAll!==void 0)q.containsAll=[...q.containsAll,j.contains];else if(q.contains!==void 0)q.containsAll=[q.contains,j.contains],delete q.contains;else q.contains=j.contains;if(j.properties)q.properties=c4(q.properties??{},j.properties);if(j.required)q.required=[...new Set([...q.required??[],...j.required])];if(j.additionalProperties!==void 0)q.additionalProperties=j.additionalProperties;if(j.patternProperties)q.patternProperties={...q.patternProperties??{},...j.patternProperties};if(j.minProperties!==void 0)q.minProperties=q.minProperties!==void 0?Math.max(q.minProperties,j.minProperties):j.minProperties;if(j.maxProperties!==void 0)q.maxProperties=q.maxProperties!==void 0?Math.min(q.maxProperties,j.maxProperties):j.maxProperties;if(j.const!==void 0)q.const=j.const;if(j.enum!==void 0)if(q.enum!==void 0){let K=new Set(j.enum.map((z)=>JSON.stringify(z)));q.enum=q.enum.filter((z)=>K.has(JSON.stringify(z)))}else q.enum=j.enum;if(j.$ref)q.$ref=j.$ref;if(j.$defs)q.$defs={...q.$defs??{},...j.$defs};if(j.allOf)q.allOf=[...q.allOf??[],...j.allOf];if(j.anyOf)q.anyOf=j.anyOf;if(j.oneOf)q.oneOf=j.oneOf}function r4(q,j){let K=Array.isArray(q)?q:[q],z=Array.isArray(j)?j:[j],b=K.filter((P)=>z.includes(P));if(b.length===0)return K[0];if(b.length===1)return b[0];return b}function c4(q,j){let K={...q};for(let[z,b]of Object.entries(j)){let P=q[z];if(P===void 0)K[z]=b;else if(typeof P==="object"&&typeof b==="object")K[z]=M6(P,b);else K[z]=b}return K}var D0=new Set(["$schema","$id","$ref","$defs","$anchor","$dynamicRef","$dynamicAnchor","$vocabulary","$comment","type","enum","const","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","minLength","maxLength","pattern","format","contentEncoding","contentMediaType","contentSchema","items","prefixItems","contains","minItems","maxItems","uniqueItems","minContains","maxContains","properties","required","additionalProperties","patternProperties","minProperties","maxProperties","propertyNames","dependentRequired","dependentSchemas","allOf","anyOf","oneOf","not","if","then","else","faker","chance","jsonPath","template","default","examples","description","title","readOnly","writeOnly","deprecated"]);function Y6(q){if(typeof q!=="object"||q===null)return!1;return Object.keys(q).some((j)=>D0.has(j))}function N0(q){if(q.properties)return q.properties;if(q.type==="object"||q.type===void 0){let j={},K=!1;for(let[z,b]of Object.entries(q)){if(D0.has(z))continue;if(Y6(b))j[z]=b,K=!0;else j[z]={const:b},K=!0}if(K)return j}return{}}function y6(q,j){if(q.required)return q.required;if(q.properties===void 0&&Object.keys(j).length>0)return Object.keys(j);return[]}function A6(q,j){let K=q.alwaysFakeOptionals??!1,z=q.fixedProbabilities??!1,b=q.optionalsProbability??0.5,P;if(z&&!K&&j.length>0){let B=Math.round(j.length*b);P=new Set(j.slice(0,B))}return(B)=>{if(K)return!0;if(P)return P.has(B);return q.random.bool(b)}}function N6(q){return typeof q==="object"&&q!==null&&!Array.isArray(q)}function s4(q){return q.replace(/~/g,"~0").replace(/\//g,"~1")}function d(q,j){let K=s4(j),z=q.outputPath==="/"?`/${K}`:`${q.outputPath}/${K}`,b=q.path==="/"?`/${K}`:`${q.path}/${K}`;return{...q,path:b,outputPath:z}}function t4(q){let j=N0(q);if(Object.keys(j).length>0)return j;if(Array.isArray(q.allOf)){let K={};for(let z of q.allOf){if(typeof z!=="object"||z===null)continue;let b=N0(z);Object.assign(K,b)}return K}return{}}function a4(q,j){let K=y6(q,j);if(K.length>0)return K;if(Array.isArray(q.allOf)){let z=[];for(let b of q.allOf){if(typeof b!=="object"||b===null)continue;let P=b;if(Array.isArray(P.required))z.push(...P.required)}if(z.length>0)return[...new Set(z)]}return[]}function e4(q,j,K){if(!N6(q)||typeof j!=="object"||j===null)return q;return Q6(q,j,K)}function Q6(q,j,K){if(K.alwaysFakeOptionals===!0)return q;let z=t4(j);if(Object.keys(z).length===0)return q;let b=a4(j,z),P=new Set(b),B=new Set(Object.keys(z)),F=[...B].filter((J)=>!P.has(J)),G=A6(K,F),W=new Set([...B,...Object.keys(q)]),V=K.path==="/"?"/properties":`${K.path}/properties`,L={...K,depth:K.depth+1,path:V},O={};for(let J of W){if(!(J in q))continue;let A=d(L,J),w=z[J]??!0;if(!(B.has(J)&&!P.has(J))||G(J))O[J]=e4(q[J],w,A)}return O}function y0(q,j,K){if(!K.filterExampleDefaults||!N6(q))return q;return Q6(q,j,K)}function b6(q,j){if(typeof j!=="object"||j===null)return!1;let K=j;if(K.const!==void 0)return q===K.const;if(K.enum!==void 0)return K.enum.some((z)=>z===q);return!1}function S6(q){if(typeof q==="boolean")return!q;if(typeof q!=="object"||q===null)return!1;if(q.not===!0||typeof q.not==="object"&&q.not!==null&&Object.keys(q.not).length===0)return!0;return!1}function A0(q){let j=[];if(q.dependentRequired){for(let[K,z]of Object.entries(q.dependentRequired))if(Array.isArray(z))j.push([K,z.filter((b)=>typeof b==="string")])}if(q.dependencies){for(let[K,z]of Object.entries(q.dependencies))if(Array.isArray(z))j.push([K,z.filter((b)=>typeof b==="string")])}return j}function q9(q){let j=[];if(q.dependencies){for(let[K,z]of Object.entries(q.dependencies))if(!Array.isArray(z))j.push([K,z])}if(q.dependentSchemas)for(let[K,z]of Object.entries(q.dependentSchemas))j.push([K,z]);return j}function*j9(q,j,K,z,b,P,B={type:"string"}){if(K[P]!==void 0)return;let F=j[P];if(F===void 0&&q.patternProperties){let V=[];for(let[L,O]of Object.entries(q.patternProperties))try{if(new RegExp(L).test(P))V.push(O)}catch{}if(V.length>0)F=V.length===1?V[0]:p(V)}if(F===void 0){if(q.additionalProperties===!1)return;F=q.additionalProperties!==void 0&&q.additionalProperties!==!0?q.additionalProperties:B}if(S6(F))return;let G=d(b,P),W=yield T(F,G);if(W!==void 0)K[P]=W,z.add(P)}function*K9(q,j){let K=N0(q),z=y6(q,K);if(j.depth>=j.maxDepth){let w=new Set(z);for(let[D,R]of A0(q))if(w.has(D))for(let k of R)w.add(k);if(w.size===0)return{};let U={};for(let D of w){let R=K[D];if(R&&typeof R==="object"&&R!==null){let k=R;if(k.const!==void 0)U[D]=k.const;else if(k.default!==void 0)U[D]=k.default;else if(k.enum!==void 0&&k.enum.length>0)U[D]=k.enum[0];else U[D]=P9(k.type)}else U[D]=null}return U}if(q.additionalProperties===!1){let w=Object.keys(K).length>0,U=q.patternProperties&&Object.keys(q.patternProperties).length>0,D=new Set(Object.keys(K)),R=[...new Set(z)].filter((k)=>!D.has(k));if((q.minProperties??0)>0&&!w&&!U)throw Error(`missing properties for ${q.minProperties} in ${j.path}: additionalProperties is false but no properties or patternProperties defined`);if(R.length>0&&!U&&!w)throw Error(`missing properties for ${R.join(", ")} in ${j.path}: additionalProperties is false but required properties not defined in properties`)}let b=j.path==="/"?"/properties":`${j.path}/properties`,P={...j,depth:j.depth+1,path:b},B={},F=new Set,G=new Set(z);for(let[w,U]of A0(q))if(G.has(w))for(let D of U)G.add(D);let W=j.fillProperties??!0,V=Object.keys(K).filter((w)=>!G.has(w)),L=A6(j,V);if(Object.keys(K).length>0)for(let[w,U]of Object.entries(K)){if(S6(U))continue;F.add(w);let D=d(P,w),R=G.has(w),k=typeof U==="object"&&U!==null&&U.type==="object",I=U;if(q.patternProperties&&typeof U==="object"&&U!==null){let C=[];for(let[M,Y]of Object.entries(q.patternProperties))try{if(new RegExp(M).test(w))C.push(Y)}catch{}if(C.length>0)I=p([U,...C])}if(R){let C=yield T(I,D);if(C!==void 0)B[w]=C}else if(L(w)){let C=yield T(I,D);if(C!==void 0)B[w]=C}else if(k&&!W){let C=U.required??[];if(C.length>0){let M={};for(let Y of C){let f=(U.properties??{})[Y]??{},H=d(D,Y),m=yield T(f,H);if(m!==void 0)M[Y]=m}B[w]=M}}}for(let w of G){if(B[w]!==void 0||F.has(w))continue;if(q.patternProperties){let U=[];for(let[D,R]of Object.entries(q.patternProperties))if(new RegExp(D).test(w))U.push(R);if(U.length>0){let D=U.length===1?U[0]:p(U),R=d(P,w),k=yield T(D,R);if(k!==void 0)B[w]=k;F.add(w)}}if(!F.has(w)){let U=q.additionalProperties??!0;if(U!==!1){let D=d(P,w),R=yield T(U===!0?{}:U,D);if(R!==void 0)B[w]=R;F.add(w)}}}let O=!0;while(O){O=!1;for(let[w,U]of A0(q)){if(B[w]===void 0)continue;for(let D of U){let R=B[D];if(yield*j9(q,K,B,F,P,D),R===void 0&&B[D]!==void 0)O=!0;if(B[D]!==void 0)G.add(D)}}}for(let[w,U]of q9(q))if(B[w]!==void 0&&!F.has(w+"_dep")){if(F.add(w+"_dep"),typeof U==="boolean")continue;let D=U.oneOf??U.anyOf??U.allOf??[U],R=null;for(let I of D){if(typeof I!=="object"||I===null)continue;let{properties:C,not:M}=I;if(C&&C[w]){let Y=C[w],f=B[w];if(b6(f,Y)){R=I;break}}if(M?.properties){let Y=M.properties[w];if(Y){let f=B[w];if(!b6(f,Y)){R=I;break}}}}if(!R&&D.length>0&&typeof D[0]==="object")R=D[0];if(R?.not){let I=R.not;if(I.required&&Array.isArray(I.required))for(let C of I.required)delete B[C]}let k=new Set;if(R?.required)for(let I of R.required){if(I===w)continue;if(B[I]!==void 0)continue;k.add(I);let C=R.properties?.[I]??K[I]??{type:"object"},M=d(P,I),Y=yield T(C,M);if(Y!==void 0)B[I]=Y}if(R&&R.properties)for(let[I,C]of Object.entries(R.properties)){if(I===w)continue;if(k.has(I))continue;let M=d(P,I),Y=yield T(C,M);if(Y!==void 0)B[I]=Y}}let J=q.minProperties??0,A=q.maxProperties;if(Object.keys(B).length<J){if(q.patternProperties&&Object.keys(q.patternProperties).length>0){let w=Object.entries(q.patternProperties),U=0,D=1000;while(Object.keys(B).length<J&&U<D){U++;let[R,k]=j.random.pick(w),I=b9(R,j);if(I&&!B[I]){let C=d(P,I),M=yield T(k,C);if(M!==void 0)B[I]=M;F.add(I)}}}if(Object.keys(B).length<J){let w=q.additionalProperties,U=w===void 0||w===!0?{type:"string"}:w;if(U!==!1){let D=0,R=1000;while(Object.keys(B).length<J&&D<R){D++;let k=`prop${j.random.int(0,99999)}`;if(!B[k]){let I=d(P,k),C=yield T(U,I);if(C!==void 0)B[k]=C;F.add(k)}}}}if(Object.keys(B).length<J){let w=Object.keys(K).join(", ");throw Error(`properties '${w}' were not found while additionalProperties is false in ${j.path}`)}}if(A!==void 0&&Object.keys(B).length>A){let w=Object.keys(B).filter((U)=>!G.has(U));j.random.shuffle(w);while(Object.keys(B).length>A&&w.length>0){let U=w.pop();delete B[U]}}if(j.pruneProperties&&j.pruneProperties.length>0)Q0(B,j.pruneProperties);return z9(B,K),B}function z9(q,j){for(let[K,z]of Object.entries(j)){if(typeof z!=="object"||z===null)continue;let b=z;if(b.template===void 0)continue;let P=b.template;if(typeof P!=="string")continue;let B=P.replace(/#\{(\w+)\}/g,(F,G)=>{let W=q[G];return W!==void 0?String(W):""});q[K]=B}}function b9(q,j){let K=q.match(/^\^([a-zA-Z]+)(\.\*|\(\?\:.*\))?/);if(K){let G=K[1],W=K[2];if(W===".*"||W?.includes("?:")){let V=j.random.int(0,10),L="abcdefghijklmnopqrstuvwxyz",O="";for(let J=0;J<V;J++)O+=j.random.pick("abcdefghijklmnopqrstuvwxyz".split(""));return G+O}return G}let z=q.match(/(.*\*)?([a-zA-Z]+)\$$/);if(z){let G=z[2],W=j.random.int(1,10),V="abcdefghijklmnopqrstuvwxyz",L="";for(let O=0;O<W;O++)L+=j.random.pick("abcdefghijklmnopqrstuvwxyz".split(""));return L+G}let b=q.match(/^\^([a-zA-Z]+)\$$/);if(b)return b[1];let P=j.random.int(3,10),B="abcdefghijklmnopqrstuvwxyz",F="";for(let G=0;G<P;G++)F+=j.random.pick(B.split(""));try{if(new RegExp(q).test(F))return F}catch{}return null}function Q0(q,j){if(typeof q!=="object"||q===null)return;if(Array.isArray(q)){for(let z of q)Q0(z,j);return}let K=q;for(let z of Object.keys(K))if(j.includes(z))delete K[z];else Q0(K[z],j)}function P9(q){switch(Array.isArray(q)?q[0]:q){case"string":return"";case"number":case"integer":return 0;case"boolean":return!1;case"null":return null;case"array":return[];case"object":return{};default:return null}}function*B9(q,j){if(j.depth>=j.maxDepth){let D=q.minItems??0;return D>0?Array.from({length:D},()=>null):[]}if(j.refDepthReached){let D=q.minItems??0;return D>0?Array.from({length:D},()=>null):[]}if(q.items===!1&&(q.minItems??0)>0){let D=q.prefixItems?.length??0;if((q.minItems??0)>D)throw Error(`missing items for ${q.minItems} in ${j.path}: items is false but minItems (${q.minItems}) exceeds prefixItems count (${D})`)}let K=j.path==="/"?"/items":`${j.path}/items`,z={...j,depth:j.depth+1,path:K},b=[],P=j.refDepthMax,B=j.minItems??q.minItems??0,F=j.maxItems??q.maxItems??Math.max(B,j.maxDefaultItems);if(q.maxItems!==void 0&&F>q.maxItems)F=q.maxItems;if(q.minItems!==void 0&&B<q.minItems)B=q.minItems;if(F<B)if(q.maxItems!==void 0)B=F;else F=B;if(j.alwaysFakeOptionals)F=Math.max(B,F);let G=q.uniqueItems?new Set:null;function*W(D,R){let k=yield T(D,R);if(k===void 0)return"omitted";if(G){let I=JSON.stringify(k);if(G.has(I)){for(let C=0;C<50;C++){if(k=yield T(D,h(z,b.length)),k===void 0)continue;let M=JSON.stringify(k);if(!G.has(M))return G.add(M),b.push(k),"added"}return"failed"}G.add(I)}return b.push(k),"added"}if(q.prefixItems)for(let D=0;D<q.prefixItems.length&&b.length<F;D++){let R=h(z,D);if((yield*W(q.prefixItems[D],R))==="failed")break}let V;if(P!==void 0&&j.refDepth>=P-1){let D=q.minItems??0;return D>0?Array.from({length:D},()=>null):[]}let L=j.alwaysFakeOptionals??!1,O=j.fixedProbabilities??!1,J=j.optionalsProbability??0.5;if(L)V=F;else if(O){let D=F-Math.max(B,b.length),R=Math.round(D*J);V=Math.max(B,b.length)+R}else V=j.random.int(Math.max(B,b.length),F);let A=q.prefixItems!==void 0,w=q.additionalItems!==void 0,U;if(A){if(w)U=q.additionalItems;else if(q.items!==void 0)U=q.items}else U=q.items;if(U!==!1&&U!==void 0){let D=U??{},R=0,k=Math.max(V*20,50);while(b.length<V){let I=yield*W(D,h(z,b.length));if(I==="added"){R=0;continue}if(R++,I==="failed"||R>=k)break}}if(q.contains){let D=q.minContains??1,R=q.maxContains??Math.max(D,1),k=j.random.int(D,R);for(let I=0;I<k;I++){let C=yield T(q.contains,h(z,b.length));if(C===void 0)continue;if(G){let M=JSON.stringify(C);if(G.has(M)){let Y=!1;for(let f=0;f<50;f++){if(C=yield T(q.contains,h(z,b.length)),C===void 0)continue;let H=JSON.stringify(C);if(!G.has(H)){G.add(H),Y=!0;break}}if(!Y)continue}else G.add(M)}if(b.length<F){let M=j.random.int(0,b.length);b.splice(M,0,C)}else if(b.length>0){let M=j.random.int(0,b.length-1);b[M]=C}}while(b.length>F)b.pop()}if(q.containsAll){let D=new Set;for(let R of q.containsAll){let k=yield T(R,h(z,b.length));if(k===void 0)continue;if(G){let I=JSON.stringify(k);if(G.has(I)){let C=!1;for(let M=0;M<50;M++){if(k=yield T(R,h(z,b.length)),k===void 0)continue;let Y=JSON.stringify(k);if(!G.has(Y)){G.add(Y),C=!0;break}}if(!C)continue}else G.add(I)}if(b.length<F){let I=j.random.int(0,b.length);b.splice(I,0,k);let C=new Set;for(let M of D)C.add(M>=I?M+1:M);D.clear();for(let M of C)D.add(M);D.add(I)}else if(b.length>0){let I=Array.from({length:b.length},(C,M)=>M).filter((C)=>!D.has(C));if(I.length>0){let C=I[j.random.int(0,I.length-1)];b[C]=k,D.add(C)}else b.push(k),D.add(b.length-1)}}while(b.length>F)b.pop()}if(q.uniqueItems&&b.length>0)return yield*F9(b,q,z,B,F,G);return b}function*F9(q,j,K,z,b,P){let B=j.items??{},F=0,G=100;while(q.length<z&&F<G){F++;let W=yield T(B,h(K,q.length));if(W===void 0)continue;let V=JSON.stringify(W);if(!P.has(V))P.add(V),q.push(W)}while(q.length>b)q.pop();return q}function h(q,j){let K=q.outputPath==="/"?`/${j}`:`${q.outputPath}/${j}`;return{...q,path:`${q.path}/${j}`,outputPath:K}}function P6(q,j){if(!j||j==="")return q;if(typeof q!=="object"||q===null)throw Error(`Cannot resolve fragment "${j}" in non-object schema`);if(j.startsWith("/"))return G9(q,j);throw Error(`Unsupported fragment type: ${j}. Only JSON pointers (starting with /) are supported.`)}function G9(q,j){if(j===""||j==="/")return q;let K=j.slice(1).split("/"),z=q;for(let b of K){let P=b.replace(/~1/g,"/").replace(/~0/g,"~");if(typeof z!=="object"||z===null)throw Error(`Cannot resolve JSON pointer "${j}": not an object at "${P}"`);if(Array.isArray(z)){let B=parseInt(P,10);if(isNaN(B)||B<0||B>=z.length)throw Error(`Cannot resolve JSON pointer "${j}": invalid array index "${P}"`);z=z[B]}else{if(!(P in z))throw Error(`Cannot resolve JSON pointer "${j}": property "${P}" not found`);z=z[P]}}return z}function*B6(q,j){let K=j.refResolver(q);if(j.__sync&&w0(K))throw Promise.resolve(K).catch(()=>{}),Error(`Cannot use async refResolver in generateSync(): resolving '${q}' returned a Promise`);return yield K}function W9(q){let j=new Map;if(typeof q==="boolean")return j;if(q.$id&&typeof q==="object"){let K=q,z=K.$id,{$id:b,...P}=K;j.set(z,P)}if(q.$defs)for(let[K,z]of Object.entries(q.$defs))j.set(`#/$defs/${K}`,z);return j}function*W0(q,j){let K=q.$ref;if(!K)return{schema:q,ctx:j};let z=j.refDepth+1;if(j.refDepthMax!==void 0&&z>=j.refDepthMax)return{schema:{},ctx:{...j,refDepthReached:!0}};if(j.refStack.has(K)){if(j.refDepthMax!==void 0){if(j.refDepth>=j.refDepthMax)return{schema:{},ctx:{...j,refDepthReached:!0}}}else if(j.depth>=j.maxDepth)return{schema:{type:"null"},ctx:j}}let b,P;if(K.startsWith("#/")){if(b=j.refRegistry.get(K),b===void 0&&K.length>2){let L=j.refRegistry.get("#");if(L!==void 0&&typeof L==="object")try{b=P6(L,K.slice(1))}catch{}}if(b===void 0&&j.refResolver){if(b=yield*B6(K,j),b!==void 0)j.refRegistry.set(K,b)}}else if(K==="#")b=j.refRegistry.get("#")??{};else if(b=j.refRegistry.get(K),b===void 0&&j.refResolver){P=yield*B6(K,j);let L=K.indexOf("#");if(L!==-1){let O=K.slice(L+1);if(O)b=P6(P,O);else b=P}else b=P;if(P&&typeof P==="object"&&P!==null){let O=P;if(O.$defs)for(let[J,A]of Object.entries(O.$defs))j.refRegistry.set(`#/$defs/${J}`,A)}}else if(b===void 0&&j.__sync)throw Error(`Remote $ref '${K}' cannot be resolved in generateSync(); pre-resolve refs or use generate()`);if(b===void 0)throw Error(`Unresolved $ref: ${K}`);let B=new Set(["description","title","$comment","readOnly","writeOnly","deprecated"]),{$ref:F,...G}=q,W=Object.fromEntries(Object.entries(G).filter(([L])=>!B.has(L)));if(Object.keys(W).length>0&&typeof b==="object"&&b!==null)b={...b,...W};let V={...j,refStack:new Set([...j.refStack,K]),refDepth:j.refDepth+1};return{schema:b,ctx:V}}function V9(q,j){if(typeof q==="boolean")return;j.set("#",q),S0(q,"#",j)}function S0(q,j,K){if(q.$id){let{$id:z,...b}=q;K.set(z,b)}if(q.$defs)for(let[z,b]of Object.entries(q.$defs)){let P=`${j}/$defs/${z}`;if(K.set(P,b),typeof b==="object"&&b!==null)S0(b,P,K)}if(q.properties){for(let[z,b]of Object.entries(q.properties))if(typeof b==="object"&&b!==null)S0(b,`${j}/properties/${z}`,K)}}function*w9(q,j){if(!q.$ref)return q;return(yield*W0(q,j)).schema}function*D9(q,j){let K=[];for(let z of q)if(typeof z==="object"&&z!==null&&"$ref"in z){let b=yield*w9(z,j);K.push(b)}else if(typeof z==="object"&&z!==null)K.push(z);return K}function*U9(q,j){let{allOf:K,anyOf:z,oneOf:b,not:P,if:B,then:F,else:G,...W}=q;if(K){let V=yield*D9(K,j),L=p([W,...V]);return yield T(L,j)}if(b){let V=j.random.shuffle([...b]),L=W.required??[];for(let k of V){let I=typeof k==="object"&&k!==null?k:{};if(I.$ref)I=(yield*W0(I,j)).schema;let C=I.required??[],M=[...new Set([...L,...C])],Y={...W,required:M},f=p([Y,I]),H={...j,optionalsProbability:0,alwaysFakeOptionals:!1};try{return yield T(f,H)}catch{}}let O=b[0],J=typeof O==="object"&&O!==null?O:{};if(J.$ref)J=(yield*W0(J,j)).schema;let A=J.required??[],w=[...new Set([...L,...A])],U={...W,required:w},D=p([U,J]),R={...j,optionalsProbability:0,alwaysFakeOptionals:!1};return yield T(D,R)}if(z){let V=j.random.shuffle([...z]);for(let J of V){let A=p([W,J]);try{return yield T(A,j)}catch{}}let L=z[0],O=p([W,L]);return yield T(O,j)}if(B!==void 0)return yield*I9(W,B,F,G,j);if(P)return yield*C9(W,P,j);return yield T(W,j)}function*I9(q,j,K,z,b){if(K!==void 0){let P=p([q,j,K]);try{return yield T(P,b)}catch{}}if(z!==void 0){let P=p([q,z]);try{return yield T(P,b)}catch{}}return yield T(q,b)}function*C9(q,j,K){if(typeof j==="boolean"){if(j===!0)throw Error(`Cannot generate value for 'not: true' at ${K.path}`);return yield T(q,K)}if(j.type&&!j.enum&&!j.const){let z=Array.isArray(j.type)?j.type:[j.type],b=["string","number","integer","boolean","null","object","array"].filter((P)=>!z.includes(P));if(b.length>0){let P=K.random.pick(b),B=p([q,{type:P}]);return yield T(B,K)}}if(j.const!==void 0||j.enum!==void 0){let z=j.enum??[j.const],b=new Set(z.map((P)=>JSON.stringify(P)));for(let P=0;P<20;P++){let B=yield T(q,K);if(!b.has(JSON.stringify(B)))return B}}return yield T(q,K)}class _6{extensions=new Map;define(q,j){this.extensions.set(q,{callback:j,context:{}})}has(q){return this.extensions.has(q)}reset(q){if(q){let j=this.extensions.get(q);if(j)j.context={},this.extensions.delete(q)}else this.extensions.clear()}keys(){return this.extensions.keys()}*generateGen(q,j){let K=Object.keys(q);for(let z=K.length-1;z>=0;z--){let b=K[z],P=b.startsWith("x-")?b.slice(2):b,B=this.extensions.get(P);if(B){let F=q[b],G=B.callback.call(B.context,F,q,j);if(j.__sync&&w0(G))throw Promise.resolve(G).catch(()=>{}),Error(`Cannot use async extension '${P}' in generateSync()`);let W=yield G;if(W!==void 0)return W}}return}getContext(q){return this.extensions.get(q)?.context}}var O9=new _6;function*L9(q,j){return yield*O9.generateGen(q,j)}var R9=["string","number","integer","boolean","null","object","array"];function F6(q,j,K){if(q.faker!==void 0&&q.chance!==void 0)throw Error(`ambiguous generator: both faker and chance are defined in ${j.path}`);if(q.faker!==void 0)try{let z=k9(q.faker,j),b=W6(z,K??q.type,j.path);if(typeof b==="string"&&q.format)return G6(b,q.format,j);return b}catch{}if(q.chance!==void 0)try{let z=J9(q.chance,j),b=W6(z,K??q.type,j.path);if(typeof b==="string"&&q.format)return G6(b,q.format,j);return b}catch{}return}function G6(q,j,K){if(j==="date"){let z=typeof q==="string"?new Date(q):q;if(z instanceof Date&&!isNaN(z.getTime())){let b=z.getFullYear(),P=l(z.getMonth()+1),B=l(z.getDate());return`${b}-${P}-${B}`}if(typeof q==="string"){let b=Date.parse(q);if(!isNaN(b)){let P=new Date(b),B=P.getFullYear(),F=l(P.getMonth()+1),G=l(P.getDate());return`${B}-${F}-${G}`}}}if(j==="date-time"){let z=typeof q==="string"?new Date(q):q;if(z instanceof Date&&!isNaN(z.getTime()))return z.toISOString();if(typeof q==="string"&&Date.parse(q))return new Date(q).toISOString()}return q}function W6(q,j,K){if(j===void 0)return q;let z=Array.isArray(j)?j[0]:j;switch(z){case"string":return q===null?"null":q===void 0?"undefined":String(q);case"number":case"integer":let b=Number(q);return z==="integer"?Math.floor(b):b;case"boolean":return Boolean(q);case"null":return null;default:return q}}function k9(q,j){if(!j.extensions?.faker){let B=typeof q==="string"?q:JSON.stringify(q);throw Error(`cannot resolve faker-generator for ${B} in ${j.path}`)}let K,z;if(typeof q==="object"&&q!==null){let B=q,F=Object.keys(B);if(F.length>0)K=F[0],z=B[K];else throw Error(`cannot resolve faker-generator for ${JSON.stringify(q)} in ${j.path}`)}else K=q;let b=K.split("."),P=j.extensions.faker;for(let B of b)try{P=P[B]}catch{throw Error(`failed to resolve .${B} (${K})`)}if(typeof P==="function")return z?P(...z):P();else throw Error(`cannot resolve faker-generator for ${K} in ${j.path}`)}function J9(q,j){if(!j.extensions?.chance){let K=typeof q==="string"?q:Object.keys(q)[0];throw Error(`cannot resolve chance-generator for ${K} in ${j.path}`)}if(typeof q==="string"){let K=j.extensions.chance[q];if(typeof K==="function")return K.call(j.extensions.chance);throw Error(`cannot resolve chance-generator for ${q} in ${j.path}`)}if(typeof q==="object"&&q!==null){let K=q,z=Object.keys(K)[0],b=K[z],P=j.extensions.chance[z];if(typeof P==="function")return b?P.call(j.extensions.chance,b):P.call(j.extensions.chance)}throw Error(`cannot resolve chance-generator in ${j.path}`)}function M9(q,j){let K=q.path==="/"?`/${j}`:`${q.path}/${j}`;return{...q,depth:q.depth+1,path:K,refDepthReached:q.refDepthReached}}function*_(q,j,K){if(!K.outputTransform)return q;let z=K.outputTransform(q,j,K.outputPath);if(K.__sync&&w0(z))throw Promise.resolve(z).catch(()=>{}),Error("Cannot use async outputTransform in generateSync()");return yield z}function*j0(q,j){if(q===!0)return yield*j0({},j);if(q===!1)throw Error(`Cannot generate value for 'false' schema at ${j.path}`);let K=null;if(typeof q==="object"&&q!==null&&q.$defs){K=[];for(let[z,b]of Object.entries(q.$defs)){let P=`#/$defs/${z}`;K.push([P,j.refRegistry.has(P)?j.refRegistry.get(P):void 0]),j.refRegistry.set(P,b)}}try{return yield*T9(q,j)}finally{if(K)for(let[z,b]of K)if(b===void 0)j.refRegistry.delete(z);else j.refRegistry.set(z,b)}}function*T9(q,j){if(j.propAliases){let B=null;for(let[F,G]of Object.entries(j.propAliases))if(F in q&&!(G in q)){if(!B)B={...q};B[G]=B[F],delete B[F]}if(B)q=B}let K;if(Array.isArray(q.type)){let B=q.type;K=j.random.pick(B);let F={...j,resolvedType:K},G=F6(q,F,K);if(G!==void 0){if(typeof G==="string"&&F.maxLength!==void 0&&G.length>F.maxLength)return yield*_(G.slice(0,F.maxLength),q,F);return yield*_(G,q,F)}}else{let B=F6(q,j,K);if(B!==void 0){if(typeof B==="string"&&j.maxLength!==void 0&&B.length>j.maxLength)return yield*_(B.slice(0,j.maxLength),q,j);return yield*_(B,q,j)}}let z={...j,proceed:(B,F)=>(j.__sync?g6:H6)(B,{...j,...F})},b=yield*L9(q,z);if(b!==void 0)return yield*_(b,q,z);if(q.$ref){let B=yield*W0(q,j);return yield T(B.schema,M9(B.ctx,"$ref"))}if(q.allOf||q.anyOf||q.oneOf||q.not||q.if)return yield*U9(q,j);if(q.const!==void 0)return yield*_(z6(q,j),q,j);if(j.useDefaultValue&&q.default!==void 0)return yield*_(y0(q.default,q,j),q,j);if(q.enum!==void 0)return yield*_(z6(q,j),q,j);if(j.useExamplesValue){if(Array.isArray(q.examples)&&q.examples.length>0){let B=j.random.pick(q.examples);return yield*_(y0(B,q,j),q,j)}if(q.example!==void 0)return yield*_(y0(q.example,q,j),q,j)}let P=Y9(q,j);if(P===null){if(j.failOnInvalidTypes===!1){if(j.defaultInvalidTypeProduct!==void 0){let B=j.defaultInvalidTypeProduct;if(typeof B==="string")return A9(B);return B}return null}throw Error(`unknown primitive ${q.type} in ${j.path}/type`)}switch(P){case"null":return yield*_(f4(j),q,j);case"boolean":return yield*_(E4(j),q,j);case"number":return yield*_(C6(q,j),q,j);case"integer":return yield*_(X4(q,j),q,j);case"string":return yield*_(i4(q,j),q,j);case"object":return yield*_(yield*K9(q,j),q,j);case"array":return yield*_(yield*B9(q,j),q,j);default:throw Error(`Unknown type: ${P} at ${j.path}`)}}function Y9(q,j){if(j.resolvedType!==void 0)return j.resolvedType;if(typeof q.type==="string"){if(!["string","number","integer","boolean","null","object","array"].includes(q.type))return null;return q.type}if(Array.isArray(q.type))return j.random.pick(q.type);if(q.properties||q.required||q.additionalProperties!==void 0||q.patternProperties||q.minProperties!==void 0||q.maxProperties!==void 0)return"object";if(y9(q))return"object";if(q.items||q.prefixItems||q.contains||q.minItems!==void 0||q.maxItems!==void 0||q.uniqueItems)return"array";if(q.minimum!==void 0||q.maximum!==void 0||q.exclusiveMinimum!==void 0||q.exclusiveMaximum!==void 0||q.multipleOf!==void 0)return"number";if(q.minLength!==void 0||q.maxLength!==void 0||q.pattern||q.format||q.faker!==void 0||q.chance!==void 0)return"string";return j.random.pick(R9)}function y9(q){if(q.properties||q.type==="object"||q.type==="array")return!1;for(let j of Object.keys(q)){if(D0.has(j))continue;let K=q[j];if(typeof K==="object"&&K!==null&&!Array.isArray(K))return!0}return!1}function A9(q){switch(q){case"string":return"";case"number":case"integer":return 0;case"boolean":return!1;case"null":return null;case"object":return{};case"array":return[];default:return null}}function H6(q,j){return $4(j0(q,j),j0)}function g6(q,j){return n4(j0(q,j),j0)}function N9(q){let j=v6(q),K=f6(q);return`${j}T${K}`}function v6(q){let j=q.int(2000,2030),K=q.int(1,12),z=h4(j,K),b=q.int(1,z);return`${j}-${l(K)}-${l(b)}`}function f6(q){let j=q.int(0,23),K=q.int(0,59),z=q.int(0,59);return`${l(j)}:${l(K)}:${l(z)}Z`}var Q9=["alice","bob","charlie","dave","eve","frank","grace","heidi"],S9=["example.com","test.org","demo.net","sample.io"];function V6(q){let j=q.pick(Q9),K=q.int(1,999),z=q.pick(S9);return`${j}${K}@${z}`}var _9=["https"],H9=["example.com","test.org","demo.net"],g9=["api","v1","users","items","data","resource"];function F0(q){let j=q.pick(_9),K=q.pick(H9),z=q.int(1,3),b=[];for(let P=0;P<z;P++)b.push(q.pick(g9));return`${j}://${K}/${b.join("/")}`}var v9=["alpha","beta","gamma","delta","echo","fox","golf","hotel"],f9=["com","org","net","io","dev"];function w6(q){let j=q.int(1,3),K=[];for(let z=0;z<j;z++)K.push(q.pick(v9));return K.push(q.pick(f9)),K.join(".")}function E9(q){return`${q.int(1,254)}.${q.int(0,255)}.${q.int(0,255)}.${q.int(1,254)}`}function x9(q){let j=[];for(let K=0;K<8;K++)j.push(q.int(0,65535).toString(16));return j.join(":")}function X9(q){let j=(K)=>{let z="";for(let b=0;b<K;b++)z+=q.int(0,15).toString(16);return z};return`${j(8)}-${j(4)}-4${j(3)}-${["8","9","a","b"][q.int(0,3)]}${j(3)}-${j(12)}`}var u9=["foo","bar","baz","items","0","1","2","name","value"];function D6(q){let j=q.int(1,4),K=[];for(let z=0;z<j;z++)K.push(q.pick(u9));return"/"+K.join("/")}function p9(q){let j=["P"],K=q.bool(),z=q.bool();if(K){if(q.bool())j.push(`${q.int(0,100)}Y`);if(q.bool())j.push(`${q.int(0,12)}M`);if(q.bool())j.push(`${q.int(0,30)}D`)}if(z){if(j.push("T"),q.bool())j.push(`${q.int(0,23)}H`);if(q.bool())j.push(`${q.int(0,59)}M`);if(q.bool())j.push(`${q.int(0,59)}S`)}if(j.length===1||j.length===2&&j[1]==="T")j.push("0D");return j.join("")}var l9=new Map([["date-time",N9],["date",v6],["time",f6],["duration",p9],["email",V6],["idn-email",V6],["uri",F0],["uri-reference",F0],["iri",F0],["iri-reference",F0],["hostname",w6],["idn-hostname",w6],["ipv4",E9],["ipv6",x9],["uuid",X9],["json-pointer",D6],["relative-json-pointer",(q)=>`${q.int(0,5)}${D6(q)}`]]);function E6(q){let j=new Map(l9);if(q)for(let[K,z]of Object.entries(q))j.set(K,z);return j}function d9(q,j){if(!q.startsWith("$"))throw Error(`Invalid JSONPath: ${q} (must start with $)`);let K=Z9(q),z=[j];for(let b of K){let P=[];if(b===""){for(let B of z)_0(B,P);P.push(...z),z=P;continue}for(let B of z){if(B===null||B===void 0)continue;if(b.startsWith("q:")){let F=b.slice(2);if(typeof B==="object"&&B!==null&&F in B)P.push(B[F])}else if(b==="*"){if(Array.isArray(B))P.push(...B)}else if(/^\d+$/.test(b)){let F=parseInt(b,10);if(Array.isArray(B)&&F<B.length)P.push(B[F])}else if(typeof B==="object"&&B!==null&&b in B)P.push(B[b])}z=P}return z}function _0(q,j){if(q===null||q===void 0)return;if(Array.isArray(q))for(let K of q)j.push(K),_0(K,j);else if(typeof q==="object")for(let K of Object.values(q))j.push(K),_0(K,j)}function Z9(q){if(!q.startsWith("$"))throw Error(`Invalid JSONPath: ${q}`);let j=[],K=q.slice(1);while(K.length>0)if(K.startsWith(".")){if(K=K.slice(1),K.startsWith("."))K=K.slice(1),j.push("");let z=K.match(/^([a-zA-Z_][a-zA-Z0-9_]*)/);if(z)j.push(z[1]),K=K.slice(z[1].length);else break}else if(K.startsWith("[")){let z=K.indexOf("]");if(z===-1)break;let b=K.slice(1,z),P=h9(b),B=b[0]==='"'||b[0]==="'";j.push(B?`q:${P}`:P),K=K.slice(z+1)}else break;return j}function h9(q){let j=q[0];if((j==='"'||j==="'")&&q[q.length-1]===j)return q.slice(1,-1).replace(/\\(["'\\])/g,"$1");return q}function m9(q){if(q.properties)return q.properties;if(q.type==="object"||q.type===void 0){let j={},K=!1;for(let[z,b]of Object.entries(q)){if(D0.has(z))continue;if(Y6(b))j[z]=b,K=!0;else j[z]={const:b},K=!0}if(K)return j}return{}}function V0(q,j,K,z){if(!K.resolveJsonPath)return q;let b=z??q;if(j===!0||j===!1)return q;if(j.$ref)return q;let P=j;if(P.allOf||P.anyOf||P.oneOf)return q;if(typeof q==="object"&&q!==null&&!Array.isArray(q)){let B={...q},F=m9(P);for(let[G,W]of Object.entries(F))if(G in B){let V=B[G];if(typeof W==="object"&&W!==null&&"jsonPath"in W&&typeof W.jsonPath==="string"){let L=d9(W.jsonPath,b);if(L.length>0)B[G]=K.random.pick(L)}else B[G]=V0(V,W,K,b)}return B}if(Array.isArray(q)&&P.items)return q.map((B)=>V0(B,P.items,K,b));return q}var i9=E6(),U6=new Set(["https://json-schema.org/draft/2020-12/schema","https://json-schema.org/draft/2019-09/schema"]);function x6(q,j){if(j?.validateSchemaVersion===!0&&!j?.propAliases){if(typeof q==="object"&&q!==null&&"$schema"in q){let V=q.$schema;if(typeof V==="string"&&!U6.has(V))throw Error(`Unsupported JSON Schema version: ${V}. Supported versions: ${[...U6].join(", ")}`)}}let K=$9(j),z=I6(j?.seed??1),b=K.propAliases?o9(q,K.propAliases):q,P=W9(b);V9(b,P);let B=K.formats?E6(K.formats):new Map(i9),F=K.refDepthMin??K.refDepth,G=K.refDepthMax??K.refDepth;if(F!==void 0&&G!==void 0&&F>G)throw Error(`refDepthMin (${F}) cannot be greater than refDepthMax (${G})`);let W={random:z,maxDepth:K.maxDepth??(G?G+20:5),maxDefaultItems:K.maxDefaultItems??3,optionalsProbability:K.optionalsProbability??0.5,depth:0,refRegistry:P,refStack:new Set,formatRegistry:B,minItems:K.minItems,maxItems:K.maxItems,minLength:K.minLength,maxLength:K.maxLength,useDefaultValue:K.useDefaultValue,path:"/",outputPath:"/",alwaysFakeOptionals:K.alwaysFakeOptionals,fixedProbabilities:K.fixedProbabilities,fillProperties:K.fillProperties,extensions:K.extensions,resolveJsonPath:K.resolveJsonPath,autoIncrementCounters:new Map,refDepth:0,refDepthMin:F,refDepthMax:G,useExamplesValue:K.useExamplesValue,filterExampleDefaults:K.filterExampleDefaults??!1,pruneProperties:K.pruneProperties,failOnInvalidTypes:K.failOnInvalidTypes,defaultInvalidTypeProduct:K.defaultInvalidTypeProduct,minDateTime:K.minDateTime,maxDateTime:K.maxDateTime,propAliases:K.propAliases,outputTransform:K.outputTransform};return{schema_:b,normalizedOptions:K,ctx:W}}async function X6(q,j){let{schema_:K,normalizedOptions:z,ctx:b}=x6(q,j);b.refResolver=z.refResolver;let P=await H6(K,b);if(z.resolveJsonPath)return V0(P,q,b,P);return P}function u6(q,j){let{schema_:K,normalizedOptions:z,ctx:b}=x6(q,j);b.__sync=!0,b.refResolver=z.refResolver;let P=g6(K,b);if(z.resolveJsonPath)return V0(P,q,b,P);return P}function o9(q,j){if(typeof q!=="object"||q===null)return q;let K=q,z=null;for(let[b,P]of Object.entries(j))if(b in K&&!(P in K)){if(!z)z={...K};z[P]=z[b],delete z[b]}return z??q}function $9(q){if(!q)return{};let j=q,K={...q};if(j.requiredOnly===!0&&K.optionalsProbability===void 0)K={...K,optionalsProbability:0,alwaysFakeOptionals:!1};if(j.ignoreProperties&&j.ignoreProperties.length>0)K={...K,outputTransform:n9(K.outputTransform,r9(j.ignoreProperties))};return K}function n9(q,j){if(!q)return j;if(!j)return q;return(K,z,b)=>{let P=q(K,z,b);if(P&&typeof P==="object"&&"then"in P&&typeof P.then==="function")return P.then((B)=>j(B,z,b));return j(P,z,b)}}function r9(q){return(j,K,z)=>{if(z==="/")return j;let b=c9(z.slice(z.lastIndexOf("/")+1));return q.some((P)=>{if(typeof P==="string")return P===b;if(P instanceof RegExp)return P.test(b);return P(K)})?void 0:j}}function c9(q){return q.replace(/~1/g,"/").replace(/~0/g,"~")}import{ResourceLimitError as K0}from"@schmock/core";function z0(q){let j=[{value:q,exiting:!1}],K=new Set,z=0,b=0,P=(B)=>{if(b+=B,b>c)throw new K0("generated_chars",c,b)};while(j.length>0){let B=j.pop();if(!B)break;let F=B.value;if(B.exiting){if(typeof F==="object"&&F!==null)K.delete(F);continue}if(z+=1,z>i)throw new K0("generated_nodes",i,z);if(typeof F==="string"){if(F.length>g)throw new K0("string_length",g,F.length);P(F.length);continue}if(typeof F!=="object"||F===null||K.has(F))continue;if(K.add(F),j.push({value:F,exiting:!0}),Array.isArray(F)){if(F.length>E)throw new K0("array_size",E,F.length);for(let W=0;W<F.length;W+=1)j.push({value:F[W],exiting:!1});continue}let G=Object.entries(F);if(G.length>o)throw new K0("object_properties",o,G.length);for(let[W,V]of G)P(W.length),j.push({value:V,exiting:!1})}}function Q(q){return typeof q==="object"&&q!==null&&!Array.isArray(q)}function y(q){return Q(q)}function s(q){for(let j of["u",""])try{return new RegExp(q,j)}catch{}return}var Z={depthCost:1,frameCost:0},x={depthCost:0,frameCost:1},p6=[{keyword:"properties",shape:"map",generates:!0,costs:Z,typedAs:"object"},{keyword:"definitions",shape:"map",generates:!1,costs:x},{keyword:"$defs",shape:"map",generates:!1,costs:x},{keyword:"patternProperties",shape:"map",generates:!0,costs:Z},{keyword:"items",shape:"single",generates:!0,costs:Z,typedAs:"array",tupleForm:!0},{keyword:"additionalItems",shape:"single",generates:!0,costs:Z},{keyword:"prefixItems",shape:"array",generates:!0,costs:Z,typedAs:"array"},{keyword:"allOf",shape:"array",generates:!0,costs:x},{keyword:"anyOf",shape:"array",generates:!0,costs:x},{keyword:"oneOf",shape:"array",generates:!0,costs:x},{keyword:"additionalProperties",shape:"single",generates:!0,costs:Z},{keyword:"contains",shape:"single",generates:!0,costs:Z},{keyword:"not",shape:"single",generates:!1,costs:x},{keyword:"if",shape:"single",generates:!1,generatesWith:"then",costs:x},{keyword:"then",shape:"single",generates:!0,costs:x},{keyword:"else",shape:"single",generates:!0,costs:x},{keyword:"propertyNames",shape:"single",generates:!0,costs:Z},{keyword:"dependencies",shape:"map",generates:!0,costs:x},{keyword:"contentSchema",shape:"single",generates:!0,costs:x},{keyword:"dependentSchemas",shape:"map",generates:!0,costs:x},{keyword:"containsAll",shape:"array",generates:!0,costs:Z}];function l6(q,j){let K=Reflect.get(q,j.keyword);if(K===void 0)return;if(j.shape==="array"||j.tupleForm===!0&&Array.isArray(K)){if(!Array.isArray(K))return;return{descriptor:j,form:"array",entries:K.map((b,P)=>({value:b,location:{form:"array",index:P}}))}}if(j.shape==="map"){if(typeof K!=="object"||K===null)return;return{descriptor:j,form:"map",entries:Object.entries(K).map(([b,P])=>({value:P,location:{form:"map",name:b}}))}}return{descriptor:j,form:"single",entries:[{value:K,location:{form:"single"}}]}}function d6(q){for(let j of p6)if(Reflect.get(q,j.keyword)!==void 0&&l6(q,j)===void 0)return j.keyword;return}function*Z6(q){for(let j of p6){let K=l6(q,j);if(K)yield K}}function s9(q){switch(q.form){case"single":return"";case"array":return`[${q.index}]`;case"map":return`.${q.name}`}}function h6(q,j){let K=(b)=>q.type===b||Array.isArray(q.type)&&q.type.includes(b),z=[];for(let{descriptor:b,entries:P}of Z6(q)){let B=b.typedAs!==void 0&&K(b.typedAs),F=b.generates||b.generatesWith!==void 0&&Reflect.get(q,b.generatesWith)!==void 0;for(let{value:G,location:W}of P){if(!y(G))continue;z.push({schema:G,keyword:b.keyword,path:`${j}.${b.keyword}${s9(W)}`,depthCost:b.costs.depthCost,frameCost:b.costs.frameCost,typedContinuation:B,generates:F})}}return z}function*U0(q,j){for(let{descriptor:K,form:z,entries:b}of Z6(q)){let{keyword:P}=K;if(z==="single"){let[{value:B,location:F}]=b,G=j(B,{keyword:P,location:F});if(G!==void 0)yield{keyword:P,form:z,value:G}}else if(z==="array"){let B=[];for(let{value:F,location:G}of b){let W=j(F,{keyword:P,location:G});if(W!==void 0)B.push(W)}yield{keyword:P,form:z,value:B}}else{let B={};for(let{value:F,location:G}of b){let W=j(F,{keyword:P,location:G});if(W===void 0||G.form!=="map")continue;Object.defineProperty(B,G.name,{value:W,writable:!0,enumerable:!0,configurable:!0})}yield{keyword:P,form:z,value:B}}}}var i6=2147483647,I0=1000,C0="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function q5(q){let j=Array.from({length:q.int(1,48)},()=>q.int(0,255)),K="";for(let z=0;z<j.length;z+=3){let b=j.length-z,P=j[z]<<16|(b>1?j[z+1]:0)<<8|(b>2?j[z+2]:0);K+=C0[P>>18&63],K+=C0[P>>12&63],K+=b>1?C0[P>>6&63]:"=",K+=b>2?C0[P&63]:"="}return K}var j5={byte:q5},K5=new Set(["$schema","$id","$ref","$defs","$anchor","$dynamicRef","$dynamicAnchor","$vocabulary","$comment","definitions","type","enum","const","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","autoIncrement","initialOffset","minLength","maxLength","pattern","format","contentEncoding","contentMediaType","contentSchema","items","prefixItems","additionalItems","contains","containsAll","minItems","maxItems","uniqueItems","minContains","maxContains","properties","required","additionalProperties","patternProperties","minProperties","maxProperties","propertyNames","dependencies","dependentRequired","dependentSchemas","allOf","anyOf","oneOf","not","if","then","else","default","examples","description","title","readOnly","writeOnly","deprecated","faker","chance","jsonPath","template","example"]);function g0(q,j){let K=new e9({locale:[a9,t9]});if(q!==void 0)K.seed(q);if(j!==void 0)K.setDefaultRefDate(j);return K}function H0(q,j){if(q===null||typeof q!=="object")return q;if(j.has(q))return q;if(q instanceof Date)return new Date(q.getTime());let K=Object.getPrototypeOf(q),z=K===Object.prototype||K===null;if(!Array.isArray(q)&&!z)try{return structuredClone(q)}catch{return q}j.add(q);try{if(Array.isArray(q))return q.map((P)=>H0(P,j));let b={};for(let[P,B]of Object.entries(q))Object.defineProperty(b,P,{value:H0(B,j),writable:!0,enumerable:!0,configurable:!0});return b}finally{j.delete(q)}}function O0(q){return H0(q,new Set)}function t(q,j){if(q===null||typeof q!=="object")return q;let K=j.get(q);if(K!==void 0)return K;if(q instanceof Date){let P=new Date(q.getTime());return j.set(q,P),P}if(q instanceof RegExp){let P=new RegExp(q.source,q.flags);return P.lastIndex=q.lastIndex,j.set(q,P),P}if(q instanceof Map){let P=new Map;j.set(q,P);for(let[B,F]of q)P.set(t(B,j),t(F,j));return P}if(q instanceof Set){let P=new Set;j.set(q,P);for(let B of q)P.add(t(B,j));return P}if(q instanceof ArrayBuffer){let P=q.slice(0);return j.set(q,P),P}if(ArrayBuffer.isView(q)){let P=structuredClone(q);return j.set(q,P),P}if(q instanceof URL){let P=new URL(q.href);return j.set(q,P),P}if(Array.isArray(q)){let P=Array(q.length);j.set(q,P);for(let B=0;B<q.length;B+=1)if(Object.hasOwn(q,B))P[B]=t(q[B],j);return P}let z=Object.getPrototypeOf(q);if(z!==Object.prototype&&z!==null)return q;let b=Object.create(z);j.set(q,b);for(let[P,B]of Object.entries(q))Object.defineProperty(b,P,{value:t(B,j),writable:!0,enumerable:!0,configurable:!0});return b}function o6(q){let j=new Map;return q.map((K)=>t(K,j))}function $6(q){return q??Math.floor(Math.random()*i6)}function n6(q){let j=q;return()=>{j+=1831565813;let K=j;return K=Math.imul(K^K>>>15,K|1),K^=K+Math.imul(K^K>>>7,K|61),((K^K>>>14)>>>0)/4294967296}}var z5=new Set(["items","prefixItems"]);function b5(q,j,K){if(typeof q==="boolean")return q;if(y(q))return r6(q,K);if(j.keyword==="dependencies"&&Array.isArray(q))return[...q];if(j.location.form==="array"&&z5.has(j.keyword))return!0;return}function P5(q){if(Array.isArray(q.items)){if(Reflect.get(q,"prefixItems")===void 0)return q;let j={...q};return Reflect.deleteProperty(j,"prefixItems"),j}if(q.items===void 0&&q.additionalItems!==void 0){let j={...q};return Reflect.deleteProperty(j,"additionalItems"),j}return q}var B5={items:"prefixItems",additionalItems:"items"};function F5(q,j={}){return r6(q,{normalizedSchemas:new Map,patternKeySeed:j.patternKeySeed,patternKeyCount:0})}function r6(q,j){let K=j.normalizedSchemas.get(q);if(K)return K;let z={};j.normalizedSchemas.set(q,z);for(let[B,F]of Object.entries(q))if(K5.has(B))z[B]=F;G5(q,z);let b=Array.isArray(q.items);if(b)z.items=!0,delete z.additionalItems;let P=U0(P5(q),(B,F)=>b5(B,F,j));for(let{keyword:B,value:F}of P)if(z[b?B5[B]??B:B]=F,B==="patternProperties"&&z.patternProperties)w5({schema:q,normalized:z,patternProperties:z.patternProperties,context:j});return z}function m6(q,j,K){let z=[q,j].filter((b)=>typeof b==="number");if(z.length===0)return;return z.reduce(K)}function G5(q,j){if(q.multipleOf!==void 0)return;let K=m6(q.minimum,q.exclusiveMinimum,Math.max),z=m6(q.maximum,q.exclusiveMaximum,Math.min);if(K!==void 0&&z===void 0&&K>=I0)j.maximum=K+I0;else if(z!==void 0&&K===void 0&&z<=-I0)j.minimum=z-I0}var W5=8;function V5(q,j){try{let K=u6({type:"string",pattern:q},{seed:j});return typeof K==="string"?K:void 0}catch{return}}function w5(q){let{schema:j,normalized:K,patternProperties:z,context:b}=q,P=b.patternKeySeed;if(P===void 0)return;let B=Object.keys(z).flatMap((J)=>{let A=s(J);return A?[{source:J,regex:A}]:[]});if(B.length===0)return;let F={...y(K.properties)?K.properties:{}},G=Object.keys(F).length,W=Math.max(1,(j.minProperties??0)-G),V=j.maxProperties===void 0?W:Math.max(0,j.maxProperties-G),L=Math.min(W,V),O=[];for(let J=0;J<L;J+=1){let{source:A}=B[J%B.length];for(let w=0;w<W5;w+=1){b.patternKeyCount+=1;let U=V5(A,(P+b.patternKeyCount*7919)%i6);if(U===void 0)break;let D=w===0?U:`${U}${w}`,R=B.filter((k)=>k.regex.test(D));if(Object.hasOwn(F,D)||R.length!==1||R[0].source!==A)continue;Object.defineProperty(F,D,{value:z[A],writable:!0,enumerable:!0,configurable:!0}),O.push(D);break}}if(O.length===0)return;K.properties=F,K.required=[...Array.isArray(K.required)?K.required:[],...O]}async function c6(q,j,K){let z={seed:j,maxDepth:e0,optionalsProbability:1,alwaysFakeOptionals:!0,useDefaultValue:!0,failOnInvalidTypes:!1,formats:{...j5},extensions:{faker:g0(j,K)}},b=await X6(F5(q,{patternKeySeed:j}),z);return z0(b),O0(b)}var t6=new Set(["__proto__","constructor","prototype"]);function a6(q,j,K=Math.random){if(j!==void 0&&!Number.isNaN(j)){if(j<0)return 0;return Math.floor(j)}if(q.minItems!==void 0&&q.maxItems!==void 0){let z=q.minItems,b=Math.max(z,q.maxItems);return Math.floor(K()*(b-z+1))+z}if(q.minItems!==void 0)return Math.max(q.minItems,r);if(q.maxItems!==void 0)return Math.min(q.maxItems,r);if(Array.isArray(q.items))return q.items.length;return r}function E0(q,j,K,z,b){if(!j)return q;if(!Q(q))return q;let P=structuredClone(q);return v0(P,j,{params:K,state:z,query:b}),P}function v0(q,j,K){for(let[z,b]of Object.entries(j)){if(t6.has(z))continue;if(z.includes("."))I5(q,z,b,K);else U5(q,z,b,K)}}function D5(q,j){if(!/^(0|[1-9]\d*)$/.test(j))return;let K=Number(j);return K<q.length?K:void 0}function f0(q,j){if(t6.has(j))return;if(Array.isArray(q)){let K=D5(q,j);if(K===void 0)return;return{read:()=>q[K],write:(z)=>{q[K]=z}}}return{read:()=>q[j],write:(K)=>{q[j]=K}}}function e6(q,j){if(typeof q==="string"&&q.includes("{{"))return C5(q,j);return O0(q)}function U5(q,j,K,z){let b=f0(q,j);if(!b)return;if(!Q(K)){b.write(e6(K,z));return}let P=b.read();if(Q(P)||Array.isArray(P))v0(P,K,z);else if(P===void 0||P===null){let B={};v0(B,K,z),b.write(B)}}function I5(q,j,K,z){let b=j.split("."),P=q;for(let F=0;F<b.length-1;F++){let G=f0(P,b[F]);if(!G)return;let W=G.read();if(Q(W)||Array.isArray(W))P=W;else if(W===void 0||W===null){let V={};G.write(V),P=V}else return}let B=f0(P,b[b.length-1]);if(B)B.write(e6(K,z))}function s6(q,j){let K=j.trim().split("."),z=q;for(let b of K)if(Q(z))z=z[b];else return;return z}function C5(q,j){let K=q.match(/^\{\{\s*([^}]+)\s*\}\}$/);if(K){let z=s6(j,K[1]);return z!==void 0?O0(z):q}return q.replace(/\{\{\s*([^}]+)\s*\}\}/g,(z,b)=>{let P=s6(j,b);return P!==void 0?String(P):z})}function j4(q,j,K){return x0(q,[j],{root:j,random:K,patterns:new Map})}var O5=4;function x0(q,j,K){if(q===null||q===void 0)return q;let z=[],b=new Set;for(let B of j)K4({schema:B,data:q,context:K,seen:b,found:z},!1);if(z.length===0)return q;if(R5(z)){if(K.random()<q6)return null}let P=z.map((B)=>B.schema);if(Q(q))for(let B of Object.keys(q)){let F=P.flatMap((G)=>b4(G,B,K).schemas);if(F.length>0)q[B]=x0(q[B],F,K)}else if(Array.isArray(q))for(let B=0;B<q.length;B++){let F=P.flatMap((G)=>J5(G,B));if(F.length>0)q[B]=x0(q[B],F,K)}return q}function X0(q){return Reflect.get(q,"schmockNullable")===!0}function L5(q){if(X0(q))return!0;if(q.const!==void 0&&q.const!==null)return!1;if(Array.isArray(q.enum)&&!q.enum.includes(null))return!1;if(q.type===void 0)return!0;return Array.isArray(q.type)?q.type.includes("null"):q.type==="null"}function R5(q){if(!q.some((j)=>X0(j.schema)))return!1;return q.every((j)=>!j.vetoes||L5(j.schema))}function K4(q,j){let{schema:K,data:z,context:b,seen:P,found:B}=q;if(P.has(K))return;P.add(K),B.push({schema:K,vetoes:!j});let F=j||X0(K),G=(V)=>K4({...q,schema:V},F),W=z4(K,b.root);if(W)G(W);for(let V of K.allOf??[])if(y(V))G(V);for(let V of["anyOf","oneOf"]){let O=(K[V]??[]).filter(y).filter((J)=>L0(z,J,b,O5));if(O.length===1)G(O[0])}}function z4(q,j){let K=q.$ref;if(typeof K!=="string"||!K.startsWith("#"))return;if(K==="#")return j;if(!K.startsWith("#/"))return;let z=j;for(let b of K.slice(2).split("/")){let P;try{P=decodeURIComponent(b)}catch{return}if(P=P.replace(/~1/g,"/").replace(/~0/g,"~"),Array.isArray(z))z=/^(0|[1-9]\d*)$/.test(P)?z[Number(P)]:void 0;else if(Q(z)&&Object.hasOwn(z,P))z=z[P];else return}return y(z)?z:void 0}function k5(q,j){if(!j.patterns.has(q))j.patterns.set(q,s(q));return j.patterns.get(q)}function b4(q,j,K){let z=[],b=q.properties!==void 0&&Object.hasOwn(q.properties,j);if(b){let F=q.properties?.[j];if(y(F))z.push(F)}let P=!1;for(let[F,G]of Object.entries(q.patternProperties??{}))if(k5(F,K)?.test(j)){if(P=!0,y(G))z.push(G)}let B=b||P;if(!B&&y(q.additionalProperties))z.push(q.additionalProperties);return{schemas:z,covered:B}}function J5(q,j){let K=Reflect.get(q,"prefixItems"),z=Array.isArray(q.items)?q.items:Array.isArray(K)?K:void 0;if(z){let b=j<z.length?z[j]:Array.isArray(q.items)?q.additionalItems:q.items;return y(b)?[b]:[]}return y(q.items)?[q.items]:[]}function M5(q,j){switch(j){case"null":return q===null;case"boolean":return typeof q==="boolean";case"string":return typeof q==="string";case"integer":return Number.isInteger(q);case"number":return typeof q==="number";case"array":return Array.isArray(q);case"object":return Q(q);default:return!0}}function q4(q,j){if(q===j)return!0;if(typeof q!=="object"||typeof j!=="object")return!1;return JSON.stringify(q)===JSON.stringify(j)}function L0(q,j,K,z){if(z<=0)return!0;let b=z4(j,K.root);if(b&&!L0(q,b,K,z-1))return!1;if(j.type!==void 0){if(!(Array.isArray(j.type)?j.type:[j.type]).some((B)=>M5(q,B)))return!1}if(j.const!==void 0&&!q4(j.const,q))return!1;if(Array.isArray(j.enum)&&!j.enum.some((P)=>q4(P,q)))return!1;if(Q(q)){for(let P of j.required??[])if(!Object.hasOwn(q,P))return!1;for(let[P,B]of Object.entries(q)){let{schemas:F,covered:G}=b4(j,P,K);if(!G&&j.additionalProperties===!1)return!1;for(let W of F)if(B!==null&&!L0(B,W,K,z-1))return!1}}for(let P of j.allOf??[])if(y(P)&&!L0(q,P,K,z-1))return!1;return!0}var T5=[{keywords:["email"],fakerMethod:"internet.email",schemaType:"string",minScore:0.6,format:"email"},{keywords:["username","user_name","login","handle","nickname"],fakerMethod:"internet.username",schemaType:"string",minScore:0.6},{keywords:["password","passwd","secret"],fakerMethod:"internet.password",schemaType:"string",minScore:0.6},{keywords:["token","api_key","apikey","access_token","refresh_token"],fakerMethod:"string.alphanumeric",schemaType:"string",minScore:0.8}],Y5=[{keywords:["first_name","firstname","given_name","forename"],fakerMethod:"person.firstName",schemaType:"string",minScore:0.6},{keywords:["last_name","lastname","surname","family_name"],fakerMethod:"person.lastName",schemaType:"string",minScore:0.6},{keywords:["full_name","fullname","display_name","displayname","full_name"],fakerMethod:"person.fullName",schemaType:"string",minScore:0.6},{keywords:["name"],fakerMethod:"person.fullName",schemaType:"string",minScore:0.6},{keywords:["middle_name","middlename"],fakerMethod:"person.middleName",schemaType:"string",minScore:0.8},{keywords:["prefix","honorific","salutation"],fakerMethod:"person.prefix",schemaType:"string",minScore:0.8},{keywords:["suffix"],fakerMethod:"person.suffix",schemaType:"string",minScore:0.9},{keywords:["gender","sex"],fakerMethod:"person.sex",schemaType:"string",minScore:0.8},{keywords:["bio","biography"],fakerMethod:"lorem.paragraph",schemaType:"string",minScore:0.8},{keywords:["job_title","jobtitle","position","occupation","job","role"],fakerMethod:"person.jobTitle",schemaType:"string",minScore:0.6},{keywords:["job_area","department","division","team"],fakerMethod:"person.jobArea",schemaType:"string",minScore:0.8},{keywords:["zodiac","zodiac_sign"],fakerMethod:"person.zodiacSign",schemaType:"string",minScore:0.9}],y5=[{keywords:["phone","mobile","cell","tel","telephone","cellphone","fax"],fakerMethod:"phone.number",schemaType:"string",minScore:0.6},{keywords:["imei"],fakerMethod:"phone.imei",schemaType:"string",minScore:0.9}],A5=[{keywords:["street","street_address"],fakerMethod:"location.streetAddress",schemaType:"string",minScore:0.6},{keywords:["address","mailing_address","postal_address"],fakerMethod:"location.streetAddress",schemaType:"string",minScore:0.6},{keywords:["city","town"],fakerMethod:"location.city",schemaType:"string",minScore:0.6},{keywords:["state","province","region"],fakerMethod:"location.state",schemaType:"string",minScore:0.8},{keywords:["country"],fakerMethod:"location.country",schemaType:"string",minScore:0.8},{keywords:["country_code","countrycode"],fakerMethod:"location.countryCode",schemaType:"string",minScore:0.8},{keywords:["county"],fakerMethod:"location.county",schemaType:"string",minScore:0.9},{keywords:["continent"],fakerMethod:"location.continent",schemaType:"string",minScore:0.9},{keywords:["zip","zipcode","zip_code","postal","postal_code"],fakerMethod:"location.zipCode",schemaType:"string",minScore:0.6},{keywords:["latitude","lat"],fakerMethod:"location.latitude",schemaType:"number",minScore:0.6},{keywords:["longitude","lng","lon","long"],fakerMethod:"location.longitude",schemaType:"number",minScore:0.6},{keywords:["timezone","time_zone","tz"],fakerMethod:"location.timeZone",schemaType:"string",minScore:0.8},{keywords:["building_number"],fakerMethod:"location.buildingNumber",schemaType:"string",minScore:0.9}],N5=[{keywords:["url","website","link","href","homepage","webpage"],fakerMethod:"internet.url",schemaType:"string",minScore:0.6},{keywords:["avatar","photo_url","profile_image","image_url","picture","thumbnail","icon"],fakerMethod:"image.avatar",schemaType:"string",minScore:0.6},{keywords:["domain","hostname","domain_name"],fakerMethod:"internet.domainName",schemaType:"string",minScore:0.8},{keywords:["ip","ip_address","ipaddress","ipv4"],fakerMethod:"internet.ipv4",schemaType:"string",minScore:0.8},{keywords:["ipv6"],fakerMethod:"internet.ipv6",schemaType:"string",minScore:0.9},{keywords:["mac","mac_address"],fakerMethod:"internet.mac",schemaType:"string",minScore:0.9},{keywords:["user_agent","useragent"],fakerMethod:"internet.userAgent",schemaType:"string",minScore:0.9},{keywords:["port"],fakerMethod:"internet.port",schemaType:"number",minScore:0.9},{keywords:["protocol"],fakerMethod:"internet.protocol",schemaType:"string",minScore:0.9}],Q5=[{keywords:["uuid","guid"],fakerMethod:"string.uuid",schemaType:"string",minScore:0.6},{keywords:["sku"],fakerMethod:"string.alphanumeric",schemaType:"string",minScore:0.9},{keywords:["slug"],fakerMethod:"lorem.slug",schemaType:"string",minScore:0.8},{keywords:["isbn"],fakerMethod:"commerce.isbn",schemaType:"string",minScore:0.9},{keywords:["vin"],fakerMethod:"vehicle.vin",schemaType:"string",minScore:0.9},{keywords:["iban"],fakerMethod:"finance.iban",schemaType:"string",minScore:0.9},{keywords:["bic","swift"],fakerMethod:"finance.bic",schemaType:"string",minScore:0.9},{keywords:["ssn","social_security"],fakerMethod:"string.numeric",schemaType:"string",minScore:0.9}],S5=[{keywords:["description","desc","summary","overview","about","excerpt"],fakerMethod:"lorem.paragraph",schemaType:"string",minScore:0.6},{keywords:["content","body","text","message"],fakerMethod:"lorem.paragraphs",schemaType:"string",minScore:0.6},{keywords:["title","heading","subject","headline"],fakerMethod:"lorem.sentence",schemaType:"string",minScore:0.6},{keywords:["tag","label","category","keyword"],fakerMethod:"lorem.word",schemaType:"string",minScore:0.8},{keywords:["comment","note","remark","feedback","review"],fakerMethod:"lorem.sentence",schemaType:"string",minScore:0.8},{keywords:["sentence"],fakerMethod:"lorem.sentence",schemaType:"string",minScore:0.9},{keywords:["paragraph"],fakerMethod:"lorem.paragraph",schemaType:"string",minScore:0.9},{keywords:["word"],fakerMethod:"lorem.word",schemaType:"string",minScore:0.9}],_5=[{keywords:["company","organization","org","employer","brand","operator"],fakerMethod:"company.name",schemaType:"string",minScore:0.6},{keywords:["product","product_name","item_name"],fakerMethod:"commerce.productName",schemaType:"string",minScore:0.8},{keywords:["price","amount","cost","fee","salary","wage","total","subtotal","balance","revenue","income"],fakerMethod:"commerce.price",minScore:0.6},{keywords:["currency","currency_code"],fakerMethod:"finance.currencyCode",schemaType:"string",minScore:0.8},{keywords:["currency_name"],fakerMethod:"finance.currencyName",schemaType:"string",minScore:0.8},{keywords:["currency_symbol"],fakerMethod:"finance.currencySymbol",schemaType:"string",minScore:0.8},{keywords:["account_number","account_no"],fakerMethod:"finance.accountNumber",schemaType:"string",minScore:0.8},{keywords:["credit_card","card_number"],fakerMethod:"finance.creditCardNumber",schemaType:"string",minScore:0.8},{keywords:["cvv"],fakerMethod:"finance.creditCardCVV",schemaType:"string",minScore:0.9},{keywords:["transaction_type"],fakerMethod:"finance.transactionType",schemaType:"string",minScore:0.9}],H5=[{keywords:["created_at","createdat","creation_date","date_created","createddate"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["updated_at","updatedat","modified_at","modifiedat","date_updated","last_modified","date_modified"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["deleted_at","deletedat"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["published_at","publishedat","publish_date"],fakerMethod:"date.recent",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["expires_at","expiresat","expiration","expiry"],fakerMethod:"date.future",schemaType:"string",minScore:0.6,format:"date-time"},{keywords:["birthday","date_of_birth","dob","birthdate","born"],fakerMethod:"date.birthdate",schemaType:"string",minScore:0.8,format:"date-time"},{keywords:["start_date","begin_date"],fakerMethod:"date.past",schemaType:"string",minScore:0.8,format:"date-time"},{keywords:["end_date","due_date","deadline"],fakerMethod:"date.future",schemaType:"string",minScore:0.8,format:"date-time"},{keywords:["timestamp","ts"],fakerMethod:"date.recent",schemaType:"string",minScore:0.8,format:"date-time"}],g5=[{keywords:["color","colour"],fakerMethod:"color.human",schemaType:"string",minScore:0.8},{keywords:["hex_color","hexcolor"],fakerMethod:"color.rgb",schemaType:"string",minScore:0.9}],v5=[{keywords:["age"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:18,max:80}},{keywords:["rating","score","stars"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:5}},{keywords:["count","quantity","qty"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:100}},{keywords:["percentage","percent"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:0,max:100}},{keywords:["weight"],fakerMethod:"number.float",schemaType:"number",minScore:0.8,fakerArgs:{min:0.1,max:200}},{keywords:["height"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:100,max:220}},{keywords:["width","length","depth"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:1000}},{keywords:["priority","order","rank","level"],fakerMethod:"number.int",schemaType:"number",minScore:0.8,fakerArgs:{min:1,max:10}},{keywords:["version"],fakerMethod:"system.semver",schemaType:"string",minScore:0.8}],f5=[{keywords:["is_active","isactive","active","enabled","is_enabled"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.9},{keywords:["is_deleted","isdeleted","deleted"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.05},{keywords:["is_archived","isarchived","archived"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.1},{keywords:["is_verified","isverified","verified","confirmed","is_confirmed"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.8},{keywords:["is_admin","isadmin","admin"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.1},{keywords:["is_public","ispublic","public","visible","is_visible"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.7},{keywords:["is_read","isread","read","seen","is_seen"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.6},{keywords:["is_default","isdefault"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.8,trueProbability:0.1},{keywords:["is_required","isrequired","required","mandatory"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.6,trueProbability:0.5},{keywords:["is_featured","isfeatured","featured","promoted"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.8,trueProbability:0.15},{keywords:["available","in_stock"],fakerMethod:"datatype.boolean",schemaType:"boolean",minScore:0.8,trueProbability:0.85}],E5=[{keywords:["filename","file_name"],fakerMethod:"system.fileName",schemaType:"string",minScore:0.8},{keywords:["file_type","filetype","mime_type","mimetype","content_type"],fakerMethod:"system.mimeType",schemaType:"string",minScore:0.8},{keywords:["file_ext","extension"],fakerMethod:"system.fileExt",schemaType:"string",minScore:0.9},{keywords:["file_path","filepath","path"],fakerMethod:"system.filePath",schemaType:"string",minScore:0.9},{keywords:["cron","cron_expression"],fakerMethod:"system.cron",schemaType:"string",minScore:0.9},{keywords:["semver"],fakerMethod:"system.semver",schemaType:"string",minScore:0.9}],x5=[{keywords:["aircraft_type","airplane","aircraft"],fakerMethod:"airline.aircraftType",schemaType:"string",minScore:0.9},{keywords:["flight_number","flight"],fakerMethod:"airline.flightNumber",schemaType:"string",minScore:0.9},{keywords:["record_locator","booking_ref","pnr"],fakerMethod:"airline.recordLocator",schemaType:"string",minScore:0.9},{keywords:["seat","seat_number"],fakerMethod:"airline.seat",schemaType:"string",minScore:0.9}],X5=[{keywords:["animal","animal_type","species"],fakerMethod:"animal.type",schemaType:"string",minScore:0.9},{keywords:["pet_name"],fakerMethod:"animal.petName",schemaType:"string",minScore:0.9},{keywords:["breed"],fakerMethod:"animal.dog",schemaType:"string",minScore:0.9},{keywords:["bird"],fakerMethod:"animal.bird",schemaType:"string",minScore:0.9},{keywords:["fish"],fakerMethod:"animal.fish",schemaType:"string",minScore:0.9},{keywords:["horse"],fakerMethod:"animal.horse",schemaType:"string",minScore:0.9},{keywords:["insect"],fakerMethod:"animal.insect",schemaType:"string",minScore:0.9}],u5=[{keywords:["book_title"],fakerMethod:"book.title",schemaType:"string",minScore:0.9},{keywords:["author","book_author","writer"],fakerMethod:"book.author",schemaType:"string",minScore:0.9},{keywords:["genre","book_genre"],fakerMethod:"book.genre",schemaType:"string",minScore:0.9},{keywords:["publisher","publishing_house"],fakerMethod:"book.publisher",schemaType:"string",minScore:0.9},{keywords:["book_series","series_name"],fakerMethod:"book.series",schemaType:"string",minScore:0.9}],p5=[{keywords:["dish","meal","recipe_name"],fakerMethod:"food.dish",schemaType:"string",minScore:0.9},{keywords:["ingredient"],fakerMethod:"food.ingredient",schemaType:"string",minScore:0.9},{keywords:["spice"],fakerMethod:"food.spice",schemaType:"string",minScore:0.9},{keywords:["fruit"],fakerMethod:"food.fruit",schemaType:"string",minScore:0.9},{keywords:["vegetable"],fakerMethod:"food.vegetable",schemaType:"string",minScore:0.9},{keywords:["meat"],fakerMethod:"food.meat",schemaType:"string",minScore:0.9},{keywords:["food_description"],fakerMethod:"food.description",schemaType:"string",minScore:0.9},{keywords:["ethnic_category","cuisine"],fakerMethod:"food.ethnicCategory",schemaType:"string",minScore:0.9}],l5=[{keywords:["song","song_name","track","track_name"],fakerMethod:"music.songName",schemaType:"string",minScore:0.9},{keywords:["album","album_name"],fakerMethod:"music.album",schemaType:"string",minScore:0.9},{keywords:["artist","musician","band"],fakerMethod:"music.artist",schemaType:"string",minScore:0.9},{keywords:["music_genre"],fakerMethod:"music.genre",schemaType:"string",minScore:0.9}],d5=[],Z5=[{keywords:["vehicle","vehicle_name"],fakerMethod:"vehicle.vehicle",schemaType:"string",minScore:0.9},{keywords:["vehicle_type"],fakerMethod:"vehicle.type",schemaType:"string",minScore:0.9},{keywords:["vehicle_manufacturer","car_make"],fakerMethod:"vehicle.manufacturer",schemaType:"string",minScore:0.9},{keywords:["vehicle_model","car_model"],fakerMethod:"vehicle.model",schemaType:"string",minScore:0.9},{keywords:["fuel","fuel_type"],fakerMethod:"vehicle.fuel",schemaType:"string",minScore:0.9},{keywords:["bicycle"],fakerMethod:"vehicle.bicycle",schemaType:"string",minScore:0.9},{keywords:["vehicle_color","car_color"],fakerMethod:"vehicle.color",schemaType:"string",minScore:0.9}],h5=[{keywords:["branch","branch_name","git_branch"],fakerMethod:"git.branch",schemaType:"string",minScore:0.9},{keywords:["commit_sha","commit_hash","sha"],fakerMethod:"git.commitSha",schemaType:"string",minScore:0.9},{keywords:["commit_message"],fakerMethod:"git.commitMessage",schemaType:"string",minScore:0.9}],m5=[{keywords:["db_column","column_name"],fakerMethod:"database.column",schemaType:"string",minScore:0.9},{keywords:["db_type","column_type"],fakerMethod:"database.type",schemaType:"string",minScore:0.9},{keywords:["db_engine","database_engine"],fakerMethod:"database.engine",schemaType:"string",minScore:0.9},{keywords:["collation"],fakerMethod:"database.collation",schemaType:"string",minScore:0.9},{keywords:["mongodb_id","object_id"],fakerMethod:"database.mongodbObjectId",schemaType:"string",minScore:0.9}],i5=[{keywords:["abbreviation","tech_abbreviation"],fakerMethod:"hacker.abbreviation",schemaType:"string",minScore:0.9},{keywords:["hacker_phrase","tech_phrase"],fakerMethod:"hacker.phrase",schemaType:"string",minScore:0.9}],o5=[{keywords:["adjective"],fakerMethod:"word.adjective",schemaType:"string",minScore:0.8},{keywords:["adverb"],fakerMethod:"word.adverb",schemaType:"string",minScore:0.8},{keywords:["noun"],fakerMethod:"word.noun",schemaType:"string",minScore:0.8},{keywords:["verb"],fakerMethod:"word.verb",schemaType:"string",minScore:0.8}],P4=[...T5,...Y5,...y5,...A5,...N5,...Q5,...S5,..._5,...H5,...g5,...v5,...f5,...E5,...x5,...X5,...u5,...p5,...l5,...d5,...Z5,...h5,...m5,...i5,...o5];var u0=new Set(["date-time","date","time","duration","email","idn-email","hostname","idn-hostname","ipv4","ipv6","uri","uri-reference","iri","iri-reference","json-pointer","relative-json-pointer","uuid","byte"]);function $5(q){return typeof q==="string"&&u0.has(q)}function B4(q){return q>=65&&q<=90}function F4(q){return q>=97&&q<=122}function n5(q){return q>=48&&q<=57}function r5(q,j){let K=0;for(let z=1;z<q.length;z++){let b=q.charCodeAt(z);if(!B4(b))continue;let P=q.charCodeAt(z-1);if(F4(P)||n5(P)||B4(P)&&z+1<q.length&&F4(q.charCodeAt(z+1)))j.push(q.slice(K,z).toLowerCase()),K=z}j.push(q.slice(K).toLowerCase())}function W4(q){let j=[];for(let K of q.split(/[_-]/))if(K)r5(K,j);return j}function c5(q){let j=W4(q);return{tokens:j,joined:j.join("")}}var G4=new WeakMap;function s5(q){let j=G4.get(q);if(!j)j=q.keywords.map(c5),G4.set(q,j);return j}var t5=new Set(["type","status","format","code","kind"]),a5=5;function e5(q){let j=new Set,K=new Set,z=0;for(let P of q)j.add(z),z+=P.length,K.add(z);let b=q[q.length-1];return{tokens:q,joined:q.join(""),starts:j,ends:K,qualifier:q.length>1&&b!==void 0&&t5.has(b)?b:void 0}}function q7(q,j,K){if(!q.starts.has(j))return!1;if(q.ends.has(K))return!0;let z=q.joined.slice(K,K+2);return q.ends.has(K+1)&&z.startsWith("s")||q.ends.has(K+2)&&z==="es"}function j7(q,j){if(j.length<3)return!1;let K=q.joined.indexOf(j);while(K!==-1){if(j.length>=a5||q7(q,K,K+j.length))return!0;K=q.joined.indexOf(j,K+1)}return!1}function K7(q,j){let{tokens:K,joined:z}=q,b=0;for(let{tokens:P,joined:B}of j){if(z===B)return 1;if(P.length>0&&P.length<=K.length){if(K.slice(-P.length).every((G,W)=>G===P[W]))b=Math.max(b,0.8)}if(q.qualifier!==void 0&&P[P.length-1]!==q.qualifier)continue;if(P.length>0&&P.every((F)=>K.includes(F))){let G=P.length/K.length>0.5?0.9:0.65;b=Math.max(b,G)}if(j7(q,B))b=Math.max(b,0.7)}return b}function R0(q){return q.default!==void 0||q.const!==void 0||q.enum!==void 0||q.pattern!==void 0||q.$ref!==void 0||"faker"in q&&Boolean(q.faker)}function z7(q){if(!Array.isArray(q.type))return{mappable:!0,type:q.type};let j=q.type.filter((K)=>K!=="null");if(j.length===1)return{mappable:!0,type:j[0]};return{mappable:!1}}function p0(q,j,K=P4){if(R0(j))return;let z=z7(j);if(!z.mappable)return;let b=z.type;if(b==="string"&&j.format==="uuid")return{mapping:{keywords:["uuid"],fakerMethod:"string.uuid",schemaType:"string",minScore:0.5},score:1};if($5(j.format)||b==="string"&&(j.minLength!==void 0||j.maxLength!==void 0))return;let P=j.minimum!==void 0||j.maximum!==void 0||j.exclusiveMinimum!==void 0||j.exclusiveMaximum!==void 0||j.multipleOf!==void 0,B=b==="number"||b==="integer",F=W4(q),G=e5(F),W;for(let V of K){if(P&&(B||V.schemaType==="number"||V.schemaType==="integer"))continue;if(b==="object"||b==="array")continue;if(V.schemaType&&b&&V.schemaType!==b){if(!(V.schemaType==="number"&&b==="integer"||V.schemaType==="integer"&&b==="number"))continue}let L=K7(G,s5(V));if(L>=V.minScore&&(!W||L>W.score))W={mapping:V,score:L}}if(b==="string"){if(F[F.length-1]==="id"&&F.length>1){if(!W||W.score<0.8)W={mapping:{keywords:["id"],fakerMethod:"string.uuid",schemaType:"string",minScore:0.5},score:0.8}}}return W}import{ResourceLimitError as u,SchemaValidationError as S}from"@schmock/core";var l0,V4=200;function $(q,j){return q.type===j||Array.isArray(q.type)&&q.type.includes(j)}var a={height:0,nodes:1,chars:0};function n0(q,j="$",K){if(!q||typeof q!=="object")throw new S(j,"Schema must be a valid JSON Schema object");let z={visited:0,circular:!1,edges:new Map,postOrder:[],resolveRef:G7(q)};if(b7(q,j,z),z.circular)throw new S(j,"Schema contains circular references which are not supported");B7(q,j,z);let b=v7(K),B=D7(q,z,b).get(q)??a,{maxDepth:F,maxFrames:G}=R7(q,z);if(F>P0)throw new u("schema_nesting_depth",P0,F);if(G>V4)z.composition??={resource:"schema_composition_depth",limit:V4,actual:G,path:j};for(let W of[z.composition,z.arraySize,z.objectSize,z.stringLength])if(W)throw new u(W.resource,W.limit,W.actual,W.path);if(b!==void 0&&T4(q)&&b>E)throw new u("array_size",E,b);if(B.nodes>i)throw new u("generated_nodes",i,B.nodes);if(B.chars>c)throw new u("generated_chars",c,B.chars)}function b7(q,j,K){let z=new Set,b=new Set,P=[{schema:q,path:j,typedChain:!0,exiting:!1}];while(P.length>0){let B=P.pop();if(!B)break;if(B.exiting){z.delete(B.schema),b.add(B.schema),K.postOrder.push(B.schema);continue}if(b.has(B.schema)){if(B.typedChain)U4(B.schema,B.path,!0);continue}if(z.has(B.schema)){K.circular=!0;continue}if(K.visited+=1,K.visited>B0)throw new u("schema_nodes",B0,K.visited);U4(B.schema,B.path,B.typedChain);let F=F7(B.schema,B.path,K.resolveRef);K.edges.set(B.schema,F),z.add(B.schema),P.push({...B,exiting:!0});for(let G=F.length-1;G>=0;G-=1){let W=F[G];if(z.has(W.schema))K.circular=!0;else if(!b.has(W.schema))P.push({schema:W.schema,path:W.path,typedChain:B.typedChain&&W.typedContinuation,exiting:!1})}}}var d0={};function P7(...q){let j={};for(let K of q){if(!y(K))continue;for(let z of["maxItems","maxLength","maxProperties"]){let b=K[z];if(typeof b!=="number")continue;j[z]=Math.min(j[z]??b,b)}}return j}function r0(q,j){return j===void 0?q:Math.min(q,j)}function B7(q,j,K){let z=new Set,b=[{schema:q,path:j,caps:d0}];while(b.length>0){let P=b.pop();if(!P||z.has(P.schema))continue;if(P.caps===d0)z.add(P.schema);f7(P.schema,P.path,K,P.caps),E7(P.schema,P.path,K,P.caps),x7(P.schema,P.path,K,P.caps);let B=K.edges.get(P.schema)??[];for(let F=B.length-1;F>=0;F-=1){let G=B[F];if(G.generates&&!z.has(G.schema))b.push({schema:G.schema,path:G.path,caps:G.keyword==="if"?P7(P.schema,P.schema.then):d0})}}}function F7(q,j,K){let z=L4(q,j);for(let b of["$ref","$dynamicRef"]){let P=Reflect.get(q,b);if(typeof P!=="string")continue;let B=K(q,P);if(y(B))z.unshift({schema:B,keyword:b,path:`${j}.${b}`,depthCost:0,frameCost:1,typedContinuation:!1,generates:!0})}return z}function L4(q,j){return h6(q,j)}var w4="schmock://local/root.json";function G7(q){let j=W7(q),K=new Map;return(z,b)=>{let P=K.get(z);if(!P)P=new Map,K.set(z,P);let B=P.get(b);if(B!==void 0)return B===null?void 0:B;let F=j.scopes.get(z)??j.rootScope,G=w7(b,F,j.resources);return P.set(b,G??null),G}}function W7(q){let j=new Map,K=new Map,z={baseUri:w4,resourceRoot:q};j.set(w4,q);let b=[{schema:q,inheritedScope:z,path:"$"}];while(b.length>0){let P=b.pop();if(!P||K.has(P.schema))continue;let B=V7(P.schema,P.inheritedScope,j,P.path);K.set(P.schema,B);for(let F of L4(P.schema,P.path))b.push({schema:F.schema,inheritedScope:B,path:F.path})}return{resources:j,scopes:K,rootScope:K.get(q)??z}}function V7(q,j,K,z){let b=j;if(typeof q.$id==="string"){let P=R4(q.$id,j.baseUri);if(P)if(Z0(K,P,q,z),k4(P)===""){let B=$0(P);Z0(K,B,q,z),b={baseUri:B,resourceRoot:q}}else b={...j,baseUri:P}}for(let P of["$anchor","$dynamicAnchor"]){let B=Reflect.get(q,P);if(typeof B==="string"&&B.length>0)Z0(K,`${$0(b.baseUri)}#${B}`,q,`${z}.${P}`)}return b}function Z0(q,j,K,z){let b=q.get(j);if(b!==void 0&&b!==K)throw new S(z,`Duplicate canonical schema identifier: "${j}"`,"Give each embedded resource and anchor a unique canonical identifier");q.set(j,K)}function w7(q,j,K){if(q==="#")return j.resourceRoot;if(q.startsWith("#/"))return D4(j.resourceRoot,q.slice(1));let z=R4(q,j.baseUri);if(!z)return;let b=K.get(z);if(b!==void 0)return b;let P=K.get($0(z));if(P===void 0)return;let B=k4(z);if(B==="")return P;return B.startsWith("/")?D4(P,B):void 0}function R4(q,j){try{return new URL(q,j).href}catch{return}}function $0(q){let j=new URL(q);return j.hash="",j.href}function k4(q){return new URL(q).hash.slice(1)}function D4(q,j){let K;try{K=decodeURIComponent(j)}catch{return}if(K==="")return q;if(!K.startsWith("/"))return;let z=q;for(let b of K.slice(1).split("/")){let P=b.replace(/~1/g,"/").replace(/~0/g,"~");if(typeof z!=="object"||z===null||!Object.hasOwn(z,P))return;z=Reflect.get(z,P)}return typeof z==="boolean"||y(z)?z:void 0}function D7(q,j,K){let z=new Map;for(let b of j.postOrder)z.set(b,L7(b,z,j,b===q?{explicitCount:K}:void 0));return z}var U7=["contentSchema","propertyNames"],I7=["items","additionalItems","prefixItems","contains","containsAll"],C7=["properties","patternProperties","additionalProperties"],O7=["allOf","anyOf","oneOf","if","then","else"];function L7(q,j,K,z){let b=typeof q.$ref==="string"?q.$ref:Reflect.get(q,"$dynamicRef");if(typeof b==="string")return h0(K.resolveRef(q,b),j);let P=0,B=1,F=q.type==="string"&&typeof q.minLength==="number"?Math.max(0,q.minLength):0,G=new Set([...U7,...O7]),W=(w)=>{let U=h0(w,j);return P=Math.max(P,U.height+1),U},V=(w)=>{let U=h0(w,j);return P=Math.max(P,U.height),U};if(T4(q)){for(let H of I7)G.add(H);let w=z?.explicitCount??g7(q),U=z?z.explicitCount??q.minItems??0:w,D=Reflect.get(q,"prefixItems"),R=Array.isArray(q.items),k=Array.isArray(q.items)?q.items:Array.isArray(D)?D:[],I=0,C=0;k.forEach((H,m)=>{let t0=W(H);if(m<w)I=N(I+t0.nodes);if(m<U)C=N(C+t0.chars)});let M=R?q.additionalItems:q.items,Y=M===void 0?a:W(M);if(I=N(I+Math.max(0,w-k.length)*Y.nodes),C=N(C+Math.max(0,U-k.length)*Y.chars),q.contains!==void 0){let H=Reflect.get(q,"minContains"),m=Math.max(1,Math.min(typeof H==="number"?H:1,w));I=N(I+m*W(q.contains).nodes)}let f=Reflect.get(q,"containsAll");if(Array.isArray(f))for(let H of f)I=N(I+W(H).nodes);B=N(B+I),F=N(F+C)}if(Y4(q)){for(let I of C7)G.add(I);let w=new Set(Object.keys(q.properties??{}));for(let I of Object.values(q.properties??{})){let C=W(I);B=N(B+C.nodes),F=N(F+C.chars)}let U=a;for(let I of Object.values(q.patternProperties??{})){let C=W(I);if(B=N(B+C.nodes),C.nodes>U.nodes)U=C}if(q.additionalProperties!==void 0){let I=W(q.additionalProperties);if(I.nodes>U.nodes)U=I}if(q.propertyNames!==void 0)W(q.propertyNames);let D=new Set((q.required??[]).filter((I)=>!w.has(I))).size,R=Math.max(0,(q.minProperties??0)-w.size),k=Math.max(D,R);B=N(B+k*U.nodes)}for(let w of q.allOf??[]){let U=V(w);B=N(B+Math.max(0,U.nodes-1)),F=Math.max(F,U.chars)}let L=0;for(let w of["anyOf","oneOf"])for(let U of q[w]??[])L=Math.max(L,V(U).nodes-1);B=N(B+Math.max(0,L));let O=q.if===void 0?a:V(q.if),J=0;if(q.then!==void 0)J=V(q.then).nodes-1+(O.nodes-1);if(q.else!==void 0)J=Math.max(J,V(q.else).nodes-1);if(B=N(B+Math.max(0,J)),q.not!==void 0)V(q.not);for(let w of K.edges.get(q)??[]){if(!w.generates||G.has(w.keyword))continue;let U=w.depthCost===1,D=U?W(w.schema):V(w.schema);B=N(B+D.nodes-(U?0:1))}let A=$(q,"null")||Reflect.get(q,"schmockNullable")===!0;return{height:P,nodes:B,chars:A?0:F}}function h0(q,j){return y(q)?j.get(q)??a:a}function R7(q,j){let K=new Map([[q,0]]),z=new Map([[q,0]]),b=0,P=0;for(let B=j.postOrder.length-1;B>=0;B-=1){let F=j.postOrder[B],G=K.get(F),W=z.get(F);if(G===void 0||W===void 0)continue;b=Math.max(b,G),P=Math.max(P,W);for(let V of j.edges.get(F)??[]){let L=G+V.depthCost,O=W+V.frameCost;if(L>(K.get(V.schema)??-1))K.set(V.schema,L);if(O>(z.get(V.schema)??-1))z.set(V.schema,O)}}return{maxDepth:b,maxFrames:P}}function U4(q,j,K){if(K&&Object.keys(q).length===0)throw new S(j,"Schema cannot be empty");let z=["object","array","string","number","integer","boolean","null"],b=Array.isArray(q.type)?q.type:q.type?[q.type]:[];for(let B of b)if(!z.includes(B))throw new S(j,`Invalid schema type: ${JSON.stringify(B)}`,"Supported types are: object, array, string, number, integer, boolean, null");if(Reflect.get(q,"chance")!==void 0)throw new S(`${j}.chance`,"chance generators are not supported",'Use the faker keyword instead, for example "faker": "lorem.paragraph"');if(q.properties!==void 0&&(typeof q.properties!=="object"||Array.isArray(q.properties)))throw new S(`${j}.properties`,"Properties must be an object mapping property names to schemas",'Use { "propertyName": { "type": "string" } } format');let P=d6(q);if(P!==void 0)throw new S(`${j}.${P}`,`"${P}" has the wrong shape`,"Composition and positional keywords take a list of schemas; property maps take an object");for(let B of["items","prefixItems"]){let F=Reflect.get(q,B);if(!Array.isArray(F))continue;F.forEach((G,W)=>{if(typeof G!=="boolean"&&!y(G))throw new S(`${j}.${B}[${W}]`,"Positional item schemas must be schema objects or booleans",'Use a schema such as { "type": "string" }, or true to allow anything')})}if($(q,"array")){if(q.items===null||q.items===void 0)throw new S(`${j}.items`,"Array schema must have valid items definition","Define items as a schema object or array of schemas");if(Array.isArray(q.items)&&q.items.length===0)throw new S(`${j}.items`,"Array items cannot be empty array","Provide at least one item schema")}if("faker"in q&&q.faker!==void 0)try{k7(q.faker)}catch(B){if(B instanceof S){let F=B.context,G="Invalid faker method",W;if(F&&typeof F==="object"){if("issue"in F&&typeof F.issue==="string")G=F.issue;if("suggestion"in F&&typeof F.suggestion==="string")W=F.suggestion}throw new S(`${j}.faker`,G,W)}if(B instanceof u)throw H7(B,`${j}.faker`);if(B instanceof Error)throw B;throw Error(String(B))}}function k7(q){if(typeof q==="string"){M0(q);return}if(typeof q!=="object"||q===null||Array.isArray(q))throw new S("$.faker","Faker must be a method string or an object with exactly one own method key",'Use "person.fullName" or { "number.int": [{ "min": 1, "max": 2 }] }');let j=Reflect.ownKeys(q),K=Object.keys(q);if(j.length!==1||K.length!==1||typeof j[0]!=="string"||j[0]!==K[0])throw new S("$.faker","Object-form faker must contain exactly one own method key",'Use { "number.int": [{ "min": 1, "max": 2 }] }');let z=K[0],b=Object.getOwnPropertyDescriptor(q,z);if(!b||!("value"in b)||!Array.isArray(b.value))throw new S("$.faker",`Arguments for faker method "${z}" must be an array`,'Wrap options in an array, for example [{ "min": 1, "max": 2 }]');M0(z),J4(z,b.value)}var v={resource:"string_length",limit:g},k0={resource:"array_size",limit:E};function c0(q){return{resource:"string_length",limit:Math.floor(g/q)}}var J0=c0(2),m0=c0(7),J7=c0(21),M7={"string.fromCharacters":[{argumentIndex:1,direct:!0,...v}],"string.alpha":[{argumentIndex:0,direct:!0,property:"length",...v}],"string.alphanumeric":[{argumentIndex:0,direct:!0,property:"length",...v}],"string.binary":[{argumentIndex:0,direct:!1,property:"length",...v}],"string.octal":[{argumentIndex:0,direct:!1,property:"length",...v}],"string.hexadecimal":[{argumentIndex:0,direct:!1,property:"length",...v}],"string.numeric":[{argumentIndex:0,direct:!0,property:"length",...v}],"string.sample":[{argumentIndex:0,direct:!0,...v}],"string.nanoid":[{argumentIndex:0,direct:!0,...v}],"string.symbol":[{argumentIndex:0,direct:!0,...v}],"word.sample":[{argumentIndex:0,direct:!0,property:"length",...v}],"word.words":[{argumentIndex:0,direct:!0,property:"count",...J0}],"lorem.word":[{argumentIndex:0,direct:!0,property:"length",...v}],"lorem.words":[{argumentIndex:0,direct:!0,...J0}],"lorem.sentence":[{argumentIndex:0,direct:!0,...J0}],"lorem.sentences":[{argumentIndex:0,direct:!0,...m0}],"lorem.slug":[{argumentIndex:0,direct:!0,...J0}],"lorem.lines":[{argumentIndex:0,direct:!0,...m0}],"lorem.paragraph":[{argumentIndex:0,direct:!0,...m0}],"lorem.paragraphs":[{argumentIndex:0,direct:!0,...J7}],"lorem.text":[{argumentIndex:0,direct:!0,...v}],"internet.password":[{argumentIndex:0,direct:!1,property:"length",...v}],"helpers.uniqueArray":[{argumentIndex:1,direct:!0,...k0}],"helpers.arrayElements":[{argumentIndex:1,direct:!0,...k0}],"helpers.multiple":[{argumentIndex:1,direct:!1,property:"count",...k0}],"date.betweens":[{argumentIndex:0,direct:!1,property:"count",...k0}]};function J4(q,j){for(let b of M7[q]??[]){let P=j[b.argumentIndex],B=b.direct?I4(P):0;if(b.property&&Q(P))B=Math.max(B,I4(Reflect.get(P,b.property)));if(B>b.limit)throw new u(b.resource,b.limit,B)}T7(q,j);let K=[...j],z=new Set;while(K.length>0){let b=K.pop();if(typeof b==="string"&&b.length>g)throw new u("string_length",g,b.length);if(typeof b!=="object"||b===null||z.has(b))continue;if(z.add(b),Array.isArray(b)){for(let P of b)K.push(P);continue}for(let P of Object.values(b))K.push(P)}}function I4(q){if(typeof q==="number")return q;if(!Q(q))return 0;let j=0;for(let K of["min","max"]){let z=Reflect.get(q,K);if(typeof z==="number")j=Math.max(j,z)}return j}function T7(q,j){switch(q){case"helpers.fake":Y7(j[0]);return;case"helpers.mustache":A7(j[0],j[1]);return;case"helpers.fromRegExp":if(typeof j[0]==="string"){let{max:K}=M4(j[0]);if(K>g)throw new u("string_length",g,K)}return;default:return}}function Y7(q){let j=Array.isArray(q)?q:[q];for(let K of j){if(typeof K!=="string")continue;for(let z of K.matchAll(/\{\{(.+?)\}\}/g)){let b=z[1],P=b.indexOf("("),B=b.lastIndexOf(")");if(P===-1||B<P)continue;J4(b.slice(0,P).trim(),y7(b.slice(P+1,B)))}}}function y7(q){try{let j=JSON.parse(`[${q}]`);if(Array.isArray(j))return j}catch{}return[q]}function A7(q,j){if(typeof q!=="string"||!Q(j))return;let K=q.length;for(let[z,b]of Object.entries(j)){let P=`{{${z}}}`,B=q.split(P).length-1;if(B===0)continue;let F=typeof b==="string"?b.length:String(b).length;K=N(K+B*(F-P.length))}if(K>g)throw new u("string_length",g,K)}var b0={min:0,max:0},X={min:1,max:1};function M4(q){let j=[C4(!1)],K=0;while(K<q.length){let z=q[K],b=j[j.length-1];if(z==="|"){b.alternatives.push({min:b.min,max:b.max}),b.min=0,b.max=0,K+=1;continue}if(z==="("){let G=N7(q,K);j.push(C4(G.zeroWidth)),K+=G.length;continue}let P;if(z===")"){let G=j.length>1?j.pop():void 0;P=G?i0(G):X,K+=1}else if(z==="[")K=Q7(q,K),P=X;else if(z==="\\"){let G=S7(q,K);K=G.next,P=G.width}else if(z==="^"||z==="$")K+=1,P=b0;else K+=1,P=X;let B=_7(q,K);if(B)K=B.next,P={min:O4(P.min,B.min),max:O4(P.max,B.max)};let F=j[j.length-1];F.min=N(F.min+P.min),F.max=N(F.max+P.max)}while(j.length>1){let z=j.pop();if(!z)break;let b=i0(z),P=j[j.length-1];P.min=N(P.min+b.min),P.max=N(P.max+b.max)}return i0(j[0])}function C4(q){return{min:0,max:0,alternatives:[],zeroWidth:q}}function i0(q){if(q.zeroWidth)return b0;let{min:j,max:K}=q;for(let z of q.alternatives)j=Math.min(j,z.min),K=Math.max(K,z.max);return{min:j,max:K}}function N7(q,j){for(let K of["(?<=","(?<!","(?=","(?!"])if(q.startsWith(K,j))return{length:K.length,zeroWidth:!0};if(q.startsWith("(?<",j)){let K=q.indexOf(">",j);return{length:K===-1?3:K-j+1,zeroWidth:!1}}if(q.startsWith("(?:",j))return{length:3,zeroWidth:!1};return{length:1,zeroWidth:!1}}function Q7(q,j){let K=j+1;while(K<q.length)if(q[K]==="\\")K+=2;else if(q[K]==="]")return K+1;else K+=1;return q.length}function S7(q,j){let K=q[j+1],z=(b,P)=>{let B=q.indexOf(b,j+2);return B===-1?P:B+1};switch(K){case void 0:return{next:j+1,width:X};case"b":case"B":return{next:j+2,width:b0};case"k":return q[j+2]==="<"?{next:z(">",j+2),width:b0}:{next:j+2,width:X};case"u":return q[j+2]==="{"?{next:z("}",j+2),width:X}:{next:j+6,width:X};case"x":return{next:j+4,width:X};case"c":return{next:j+3,width:X};case"p":case"P":return q[j+2]==="{"?{next:z("}",j+2),width:X}:{next:j+2,width:X};default:if(K>="1"&&K<="9"){let b=j+2;while(b<q.length&&/\d/.test(q[b]))b+=1;return{next:b,width:b0}}return{next:j+2,width:X}}}function _7(q,j){let K=q[j],z;if(K==="*")z={min:0,max:0,next:j+1};else if(K==="+")z={min:1,max:1,next:j+1};else if(K==="?")z={min:0,max:1,next:j+1};else if(K==="{"){let b=/\{(\d+)(,(\d*))?\}/y;b.lastIndex=j;let P=b.exec(q);if(P){let B=Number(P[1]),F=P[2]===void 0||P[3]===""?B:Number(P[3]);z={min:B,max:Math.max(B,F),next:j+P[0].length}}}if(z&&q[z.next]==="?")z.next+=1;return z}function O4(q,j){return q===0||j===0?0:N(q*j)}function H7(q,j){let K=q.context;if(!Q(K))return q;let{resource:z,limit:b,actual:P}=K;if(typeof z!=="string"||typeof b!=="number")return q;return new u(z,b,typeof P==="number"?P:void 0,j)}function T4(q){return $(q,"array")||q.items!==void 0||q.minItems!==void 0||q.maxItems!==void 0}function g7(q){let{minItems:j,maxItems:K}=q;if(j!==void 0&&K!==void 0)return Math.max(j,K);if(K!==void 0)return K;if(j!==void 0)return j;return r}function v7(q){if(q===void 0||Number.isNaN(q))return;return Math.floor(Math.max(0,q))}function f7(q,j,K,z){let b=r0(Math.max(q.minItems??0,q.maxItems??0),z.maxItems);if(b>E)K.arraySize??={resource:"array_max_items",limit:E,actual:b,path:j}}function E7(q,j,K,z){if(!Y4(q))return;let b=new Set(Object.keys(q.properties??{})),P=new Set((q.required??[]).filter((F)=>!b.has(F))).size,B=Math.max(r0(q.minProperties??0,z.maxProperties),b.size+P);if(B>o)K.objectSize??={resource:"object_properties",limit:o,actual:B,path:j}}function x7(q,j,K,z){if(X7(q)){for(let b of[q.minLength,q.maxLength])if(b!==void 0)o0(r0(b,z.maxLength),j,K);if(typeof q.pattern==="string"&&s(q.pattern)!==void 0)o0(M4(q.pattern).min,j,K)}for(let b of[q.const,q.default,q.enum,Reflect.get(q,"template")])o0(u7(b),j,K)}function X7(q){if(q.type!==void 0)return $(q,"string");if(q.const!==void 0)return typeof q.const==="string";if(q.enum!==void 0)return q.enum.some((j)=>typeof j==="string");if(q.default!==void 0)return typeof q.default==="string";return!0}function o0(q,j,K){if(q>g&&(!K.stringLength||q>K.stringLength.actual))K.stringLength={resource:"string_length",limit:g,actual:q,path:j}}function u7(q){let j=[q],K=new Set,z=0;while(j.length>0){let b=j.pop();if(typeof b==="string"){z=Math.max(z,b.length);continue}if(typeof b!=="object"||b===null||K.has(b))continue;K.add(b),j.push(...Object.values(b))}return z}function Y4(q){if(q.type!==void 0)return $(q,"object");return q.properties!==void 0||q.required!==void 0||q.additionalProperties!==void 0||q.patternProperties!==void 0||q.minProperties!==void 0||q.maxProperties!==void 0}function N(q){return Math.min(q,Number.MAX_SAFE_INTEGER)}function M0(q){let j=q.split(".");if(j.length<2)throw new S("$.faker",`Invalid faker method format: "${q}"`,"Use format like 'person.firstName' or 'internet.email'");if(!l0)l0=g0();let z=l0;for(let b of j){let P=Object.hasOwn(Object.prototype,b)||b.startsWith("_");if(z&&typeof z==="object"&&!P&&b in z)z=Reflect.get(z,b);else throw new S("$.faker",`Invalid faker method: "${q}"`,"Check faker.js documentation for valid methods")}if(typeof z!=="function")throw new S("$.faker",`Invalid faker method: "${q}" is not a function`,"Check faker.js documentation for valid methods")}function y4(q){return q.type==="string"&&q.faker===void 0&&q.format===void 0&&q.minLength===void 0&&q.maxLength===void 0&&!R0(q)}function A4(q){return y(q)&&q.type==="null"&&Object.keys(q).length===1}function p7(q,j){for(let K of["anyOf","oneOf"]){let z=q[K];if(!Array.isArray(z)||z.length!==2)continue;let[b,P]=z,B=A4(b)?P:A4(P)?b:void 0;if(!y(B))continue;let{[K]:F,...G}=q;if(j&&Object.keys(G).some((W)=>Object.hasOwn(B,W)))return;return{...B,...G,schmockNullable:!0}}return}function l7(q){if(q.schmockNullable===!1)return q;let j=q.schmockNullable===!0,K=p7(q,!j);if(K)return K;if(!j&&!d7(q))return q;if(q.schmockNullable=!0,Array.isArray(q.type)){let z=q.type.filter((b)=>b!=="null");if(z.length===1)q.type=z[0];else if(z.length>0)q.type=z}if(Array.isArray(q.enum)){let z=q.enum.filter((b)=>b!==null);if(z.length>0)q.enum=z}return q}function d7(q){if(!Array.isArray(q.type)||!q.type.includes("null"))return!1;if(!q.type.some((j)=>j!=="null"))return!1;if(q.const===null)return!1;if(Array.isArray(q.enum)&&q.enum.every((j)=>j===null))return!1;return!0}var n=Symbol("root-schema"),Z7=new Set(["string","number","integer","boolean"]);function h7(q){let j=Array.isArray(q.type)?q.type.filter((K)=>K!=="null"):[q.type];return j.length===1&&Z7.has(String(j[0]))}function m7(q){let j=[];if(/ies$/i.test(q))j.push(`${q.slice(0,-3)}y`);if(/[^s]s$/i.test(q))j.push(q.slice(0,-1));if(/(ses|xes|zes|ches|shes)$/i.test(q))j.push(q.slice(0,-2));return j}function i7(q,j){if(q===n||!h7(j))return n;for(let K of m7(q))if(p0(K,j))return K;return n}function N4(q){if(!q||typeof q!=="object")return q;return Q4(q,{cache:new Map},n)}function Q4(q,j,K){let z=j.cache.get(q);if(!z)z=new Map,j.cache.set(q,z);let b=z.get(K);if(b)return b;let P=l7({...q});if(z.set(K,P),K!==n&&P.faker){if(typeof P.faker==="string")M0(P.faker)}else o7(P,j,K),n7(P,K);return r7(P),P}function o7(q,j,K){let z=U0(q,(b,P)=>y(b)?Q4(b,j,$7({context:K,child:b,slot:P})):b);for(let{keyword:b,value:P}of z)Reflect.set(q,b,P)}function $7(q){let{context:j,child:K,slot:z}=q;if(z.keyword==="properties"&&z.location.form==="map")return z.location.name;if(z.keyword==="items"&&z.location.form==="single")return i7(j,K);return n}function n7(q,j){if(j===n){if(y4(q))q.faker="lorem.word";return}if(q.allOf||q.anyOf||q.oneOf||R0(q))return;let z=p0(j,q);if(z){let{fakerMethod:b,format:P,trueProbability:B,fakerArgs:F}=z.mapping;if(q.faker=F?{[b]:[F]}:b,P&&(typeof q.format!=="string"||!u0.has(q.format)))q.format=P;if(B!==void 0&&q.schmockTrueProbability===void 0)q.schmockTrueProbability=B}else if(y4(q))q.faker="lorem.word"}function r7(q){let j=q.schmockTrueProbability;if(q.type!=="boolean"||typeof j!=="number"||!Number.isFinite(j)||q.const!==void 0||q.enum!==void 0)return;q.faker={"datatype.boolean":[{probability:j}]}}function _4(q){return{schema:q,enhanced:N4(q)}}function s7(q,j){return n0(q,"$",j),_4(q)}function i3(q){let[j,K]=o6([q.schema,q.overrides]);if(!y(j))throw new s0("$","Schema must be a valid JSON Schema object");if(K!==void 0&&!Q(K))throw new s0("$.overrides","Overrides must be an object mapping paths to values");let z=j,b=K,P=q.count,B=q.seed;n0(z,"$",P);let F;return{name:"faker",version:a0,async process(G,W){if(W!==void 0&&W!==null)return{context:G,response:W};try{F??=_4(z);let V=await H4(F,{schema:z,count:P,overrides:b,params:G.params,state:G.routeState,query:G.query,seed:B});return{context:G,response:V}}catch(V){if(V instanceof s0||V instanceof S4)throw V;throw new c7(G.path,V instanceof Error?V:Error(String(V)),z)}}}}async function o3(q){return H4(s7(q.schema,q.count),q)}async function H4(q,j){let{count:K,overrides:z,params:b,state:P,query:B,seed:F}=j,{schema:G}=q,W=$6(F),V=n6(W),L=q.enhanced;if($(G,"array")&&G.items){let J=a6(G,K,V);if(J>E)throw new S4("array_size",E,J);L={...L,minItems:J,maxItems:J}}let O=await c6(L,W,F!==void 0?T0:void 0);if(O=j4(O,L,V),Array.isArray(O)){let J=O.map((A)=>E0(A,z,b,P,B));return z0(J),J}return O=E0(O,z,b,P,B),z0(O),O}export{o3 as generateFromSchema,i3 as fakerPlugin,g as MAX_STRING_LENGTH,B0 as MAX_SCHEMA_NODES,o as MAX_OBJECT_PROPERTIES,P0 as MAX_NESTING_DEPTH,i as MAX_GENERATED_NODES,E as MAX_ARRAY_SIZE};
@@ -4,6 +4,10 @@ import { type JsonSchema } from "json-schema-faker-private";
4
4
  import { DETERMINISTIC_REF_DATE } from "./constants.js";
5
5
  export { DETERMINISTIC_REF_DATE };
6
6
  type JsfObjectSchema = Exclude<JsonSchema, boolean>;
7
+ export interface NormalizeSchemaOptions {
8
+ /** Seed for the keys generated to satisfy `patternProperties`. */
9
+ patternKeySeed?: number;
10
+ }
7
11
  /**
8
12
  * Create isolated faker instance to avoid race conditions.
9
13
  * Each generation gets its own faker instance to ensure thread-safety.
@@ -29,10 +33,9 @@ export declare function createSeededRandom(seed: number): () => number;
29
33
  * json-schema-faker consumes tuple schemas through the 2020-12 `prefixItems`
30
34
  * keyword. Convert Draft 7 tuple `items` recursively at the library boundary.
31
35
  */
32
- export declare function normalizeSchemaForJsf(schema: JSONSchema7): JsfObjectSchema;
36
+ export declare function normalizeSchemaForJsf(schema: JSONSchema7, options?: NormalizeSchemaOptions): JsfObjectSchema;
33
37
  /**
34
38
  * Generate data from a JSON schema using json-schema-faker 0.6.0 async API.
35
39
  * Stateless — each call is self-contained with its own faker instance and options.
36
40
  */
37
41
  export declare function generateWithJsf(schema: JSONSchema7, seed: number, refDate?: string): Promise<unknown>;
38
- //# sourceMappingURL=jsf-config.d.ts.map
@@ -1,3 +1,2 @@
1
1
  /** Enforce limits against the value that will actually leave the plugin. */
2
2
  export declare function assertOutputWithinLimits(value: unknown): void;
3
- //# sourceMappingURL=output-limits.d.ts.map
@@ -19,4 +19,3 @@ export declare function determineArrayCount(schema: JSONSchema7, explicitCount?:
19
19
  * @returns Data with overrides applied
20
20
  */
21
21
  export declare function applyOverrides(data: unknown, overrides?: Record<string, unknown>, params?: Record<string, string>, state?: Record<string, unknown>, query?: Record<string, string>): unknown;
22
- //# sourceMappingURL=overrides.d.ts.map
@@ -0,0 +1,21 @@
1
+ import type { JSONSchema7 } from "json-schema";
2
+ /**
3
+ * Reintroduce null at ~5% on nodes the enhancer marked `schmockNullable`.
4
+ *
5
+ * json-schema-faker generates the non-null shape (the enhancer collapsed the
6
+ * union), so this walks the generated value alongside the ENHANCED schema.
7
+ * Every schema that describes a value applies to it: `$ref` targets, every
8
+ * `allOf` branch, the one `anyOf`/`oneOf` branch the value structurally
9
+ * matches, and `properties`, `patternProperties` or `additionalProperties`
10
+ * for each key of an object. The walk is driven by the value, so it is finite
11
+ * even over a recursive schema.
12
+ *
13
+ * A node is rolled at most once, and only when null satisfies every schema
14
+ * that constrains it — an `allOf` sibling that declares a non-null type keeps
15
+ * the value.
16
+ *
17
+ * Boolean weighting (`schmockTrueProbability`) is not applied here: the
18
+ * enhancer compiles it into the faker call, so it reaches every node JSF
19
+ * generates.
20
+ */
21
+ export declare function applyNullableRolls(data: unknown, root: JSONSchema7, random: () => number): unknown;
@@ -1,14 +1,120 @@
1
1
  import type { JSONSchema7 } from "json-schema";
2
2
  export interface SchemaChild {
3
3
  schema: JSONSchema7;
4
+ /** The `SCHEMA_KEYWORDS` keyword the child sits under. */
5
+ keyword: string;
4
6
  path: string;
5
7
  depthCost: 0 | 1;
6
8
  frameCost: 0 | 1;
7
9
  typedContinuation: boolean;
10
+ /**
11
+ * False for keywords whose subschema never produces a value of its own:
12
+ * `not` only tests the value, `if` tests it unless a sibling `then` is
13
+ * present (json-schema-faker then merges `if` into what it generates), and
14
+ * `definitions`/`$defs` are reached for generation only through a `$ref`.
15
+ * Resource limits are charged along generating edges only.
16
+ */
17
+ generates: boolean;
18
+ }
19
+ interface ChildCost {
20
+ depthCost: 0 | 1;
21
+ frameCost: 0 | 1;
22
+ }
23
+ /**
24
+ * How a keyword holds its subschemas: one schema (`not`), a list of schemas
25
+ * (`allOf`), or a name-to-schema map (`properties`).
26
+ */
27
+ type SchemaKeywordShape = "single" | "array" | "map";
28
+ interface SchemaKeyword {
29
+ keyword: string;
30
+ shape: SchemaKeywordShape;
31
+ /** False when the subschema only tests or defines, never generating itself. */
32
+ generates: boolean;
33
+ /**
34
+ * A sibling keyword that makes a non-generating subschema generate: when the
35
+ * parent also holds it, json-schema-faker merges this subschema into what it
36
+ * generates (`if` is merged with `then`).
37
+ */
38
+ generatesWith?: string;
39
+ costs: ChildCost;
40
+ /** The declared type under which a child continues the typed chain. */
41
+ typedAs?: "array" | "object";
42
+ /** Draft-7 `items`: a single schema, or a list in the tuple form. */
43
+ tupleForm?: true;
8
44
  }
9
45
  /**
10
- * Enumerate every schema-bearing keyword forwarded to json-schema-faker.
11
- * Validation, reference indexing, and path analysis all consume this one list.
46
+ * Every schema-bearing keyword Schmock forwards to json-schema-faker. The
47
+ * validating walker (`collectSchemaChildren`) and the two rewriting walkers
48
+ * (smart mapping in `schema-enhancement.ts`, JSF normalization in
49
+ * `jsf-config.ts`) all read this one table, so a keyword added here is
50
+ * validated, enhanced and normalized alike.
51
+ *
52
+ * Order is load-bearing: children are visited in table order, and JSF
53
+ * normalization draws a seed for every `patternProperties` key it invents in
54
+ * visiting order. Reordering entries changes seeded output.
55
+ *
56
+ * Known gap: `unevaluatedProperties` and `unevaluatedItems` are not listed.
57
+ * No walker descends into them, and JSF normalization strips them (they are
58
+ * not in `JSF_SCHEMA_KEYWORDS`), so they are neither validated nor generated.
59
+ * Adding them here would also require forwarding them to json-schema-faker.
60
+ */
61
+ export declare const SCHEMA_KEYWORDS: readonly SchemaKeyword[];
62
+ /** Where an entry sits inside its keyword. */
63
+ type ChildLocation = {
64
+ form: "single";
65
+ } | {
66
+ form: "array";
67
+ index: number;
68
+ } | {
69
+ form: "map";
70
+ name: string;
71
+ };
72
+ /** The keyword and position a mapped entry comes from. */
73
+ export interface SchemaChildSlot {
74
+ keyword: string;
75
+ location: ChildLocation;
76
+ }
77
+ /**
78
+ * The first list or map keyword whose value has the wrong shape (an `allOf`
79
+ * object, a `patternProperties` string). Every walker skips such a keyword,
80
+ * so validation rejects it rather than let it pass unchecked.
81
+ */
82
+ export declare function misshapenKeyword(schema: JSONSchema7): string | undefined;
83
+ /**
84
+ * Enumerate every schema-bearing keyword forwarded to json-schema-faker, in
85
+ * `SCHEMA_KEYWORDS` order. Validation consumes this list; the rewriting
86
+ * walkers use `mapSchemaChildren` over the same table.
12
87
  */
13
88
  export declare function collectSchemaChildren(schema: JSONSchema7, path: string): SchemaChild[];
14
- //# sourceMappingURL=schema-children.d.ts.map
89
+ /**
90
+ * Maps one entry of a schema-bearing keyword. It sees every entry (schema
91
+ * objects, boolean schemas and malformed values alike) and returns the
92
+ * replacement, or `undefined` to drop the entry. For a single-schema keyword,
93
+ * `undefined` yields nothing for that keyword, so the caller keeps whatever it
94
+ * already holds there.
95
+ */
96
+ type SchemaChildMapper<T> = (child: unknown, slot: SchemaChildSlot) => T | undefined;
97
+ type MappedKeyword<T> = {
98
+ keyword: string;
99
+ form: "single";
100
+ value: T;
101
+ } | {
102
+ keyword: string;
103
+ form: "array";
104
+ value: T[];
105
+ } | {
106
+ keyword: string;
107
+ form: "map";
108
+ value: Record<string, T>;
109
+ };
110
+ /**
111
+ * Rewrite the children of every schema-bearing keyword of `schema`, keyword by
112
+ * keyword in `SCHEMA_KEYWORDS` order. The result is a new container per
113
+ * keyword (a fresh array or map, entry order kept); `schema` is not modified.
114
+ *
115
+ * Lazy on purpose: a keyword's children are mapped only when iteration reaches
116
+ * it, so a caller can act between keywords (JSF normalization invents
117
+ * `patternProperties` keys before it descends into `items`).
118
+ */
119
+ export declare function mapSchemaChildren<T>(schema: JSONSchema7, fn: SchemaChildMapper<T>): Generator<MappedKeyword<T>>;
120
+ export {};
@@ -1,4 +1,3 @@
1
1
  import type { JSONSchema7 } from "json-schema";
2
2
  /** Enhance each distinct schema/context pair once and preserve shared edges. */
3
3
  export declare function enhanceSchemaWithSmartMapping(schema: JSONSchema7): JSONSchema7;
4
- //# sourceMappingURL=schema-enhancement.d.ts.map
@@ -0,0 +1,16 @@
1
+ import type { JSONSchema7 } from "json-schema";
2
+ /** A plain key/value object: not null and not an array. */
3
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
4
+ /**
5
+ * A schema object, as opposed to a boolean schema or a malformed entry. The
6
+ * test is structural only; `validateSchema` checks what the object holds.
7
+ */
8
+ export declare function isJSONSchema7(value: unknown): value is JSONSchema7;
9
+ /**
10
+ * Compile a JSON Schema `pattern` the one way every faker step reads it: with
11
+ * the `u` flag first, then without it for patterns only the legacy grammar
12
+ * accepts (`^x\-[a-z]+$` has an identity escape that `u` forbids). Key
13
+ * invention, key matching and pattern validation all go through here, so they
14
+ * agree on which patterns exist. Undefined when neither form compiles.
15
+ */
16
+ export declare function compilePattern(source: string): RegExp | undefined;
@@ -1,5 +1,4 @@
1
1
  import type { JSONSchema7 } from "json-schema";
2
- export declare function isJSONSchema7(value: unknown): value is JSONSchema7;
3
2
  /**
4
3
  * Type-aware check that tolerates the union form the OpenAPI normalizer emits
5
4
  * for nullable schemas (`type: ["array", "null"]`).
@@ -10,11 +9,9 @@ export declare function hasType(schema: {
10
9
  /**
11
10
  * Validate JSON Schema structure and enforce resource limits.
12
11
  *
13
- * Walks every distinct schema node and edge exactly once — `properties`,
14
- * `patternProperties`, `additionalProperties`, `propertyNames`, `items` (object
15
- * and tuple forms), `additionalItems`, `contains`, `allOf`/`anyOf`/`oneOf`,
16
- * `not`, `if`/`then`/`else`, `definitions`, `$defs` and the schema form of
17
- * `dependencies` — checking structure, faker methods, cycles, nesting depth,
12
+ * Walks every distinct schema node and edge exactly once, through every
13
+ * keyword in `SCHEMA_KEYWORDS` (schema-children.ts, in that table's order),
14
+ * checking structure, faker methods, cycles, nesting depth,
18
15
  * array sizes and generation budgets. Local JSON Pointer and embedded `$id`
19
16
  * references become graph edges: active-path re-entry is a cycle, while a
20
17
  * completed target is a shared DAG node whose memoized estimate is charged at
@@ -36,4 +33,3 @@ export declare function validateSchema(schema: JSONSchema7, path?: string, expli
36
33
  * @throws {SchemaValidationError} When faker method format or namespace is invalid
37
34
  */
38
35
  export declare function validateFakerMethod(fakerMethod: string): void;
39
- //# sourceMappingURL=validation.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@schmock/faker",
3
3
  "description": "Faker-powered automatic data generation for Schmock",
4
- "version": "2.4.0",
4
+ "version": "2.5.0",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
@@ -37,23 +37,23 @@
37
37
  "test": "vitest run",
38
38
  "test:watch": "vitest --watch",
39
39
  "test:bdd": "vitest run --config vitest.config.bdd.ts",
40
- "lint": "biome check src/*.ts",
41
- "lint:fix": "biome check --write --unsafe src/*.ts",
40
+ "lint": "biome check src/",
41
+ "lint:fix": "biome check --write --unsafe src/",
42
42
  "check:publish": "publint && attw --pack --ignore-rules cjs-resolves-to-esm"
43
43
  },
44
44
  "license": "MIT",
45
45
  "dependencies": {
46
46
  "@types/json-schema": "^7.0.15",
47
- "@faker-js/faker": "^10.5.0",
48
- "json-schema-faker": "^0.6.2",
49
- "json-schema-faker-private": "https://registry.npmjs.org/json-schema-faker/-/json-schema-faker-0.6.2.tgz"
47
+ "@faker-js/faker": "^10.5.0"
50
48
  },
51
49
  "peerDependencies": {
52
- "@schmock/core": "^2.4.0"
50
+ "@schmock/core": "^2.5.0"
53
51
  },
54
52
  "devDependencies": {
55
53
  "@amiceli/vitest-cucumber": "^7.0.0",
56
54
  "@types/node": "^26.1.0",
55
+ "json-schema-faker": "0.6.2",
56
+ "json-schema-faker-private": "npm:json-schema-faker@0.6.3",
57
57
  "vitest": "^4.1.9"
58
58
  }
59
59
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,cAAc,QAAQ,CAAC;AACpC,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,aAAa,QAAwB,CAAC;AAEnD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,gBAAgB,QAAS,CAAC;AACvC,eAAO,MAAM,mBAAmB,UAAY,CAAC;AAE7C,+EAA+E;AAC/E,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,QAAS,CAAC;AAExC;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAGjE,eAAO,MAAM,yBAAyB,OAAO,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-mappings.d.ts","sourceRoot":"","sources":["../src/field-mappings.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AA0lCD,eAAO,MAAM,kBAAkB,EAAE,YAAY,EAyB5C,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-name-matcher.d.ts","sourceRoot":"","sources":["../src/field-name-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGxD;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,mBAAmB,aAkB9B,CAAC;AAOH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBxD;AA0ED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAM5E;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,YAAY,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,WAAW,EACnB,QAAQ,GAAE,YAAY,EAAuB,GAC5C,WAAW,GAAG,SAAS,CAsHzB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,eAAe,CAAC;AAQ9C,OAAO,EAEL,qBAAqB,EACrB,iBAAiB,EAElB,MAAM,gBAAgB,CAAC;AAaxB,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,uBAAuB,CAAC;AAEtE,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;AAMpD,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAoEvE;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,OAAO,CAAC,CA+ClB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsf-config.d.ts","sourceRoot":"","sources":["../src/jsf-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAyB,MAAM,aAAa,CAAC;AACtE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,sBAAsB,EAAiB,MAAM,gBAAgB,CAAC;AAKvE,OAAO,EAAE,sBAAsB,EAAE,CAAC;AAGlC,KAAK,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AA8EpD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,SASlE;AAwDD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAElD;AAsFD,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,CAGpE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,MAAM,CAS7D;AAqCD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAE1E;AA8JD;;;GAGG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CA4BlB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"output-limits.d.ts","sourceRoot":"","sources":["../src/output-limits.ts"],"names":[],"mappings":"AAQA,4EAA4E;AAC5E,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAyE7D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../src/overrides.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU/C;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,aAAa,CAAC,EAAE,MAAM,EACtB,MAAM,GAAE,MAAM,MAAoB,GACjC,MAAM,CA6BR;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,OAAO,EACb,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAoCT"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-children.d.ts","sourceRoot":"","sources":["../src/schema-children.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAUD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,GACX,WAAW,EAAE,CAmGf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-enhancement.d.ts","sourceRoot":"","sources":["../src/schema-enhancement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA4F/C,gFAAgF;AAChF,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,WAAW,GAClB,WAAW,CAGb"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAyB,MAAM,aAAa,CAAC;AA2BtE,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAElE;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzE;AAyCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,IAAI,SAAM,EACV,aAAa,CAAC,EAAE,MAAM,GACrB,IAAI,CA2FN;AAs9BD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAmC7D"}