@nifrajs/testing 2.3.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
@@ -68,6 +68,32 @@ const report = await assertAdversarialContract(app, {
68
68
  request for each declared response schema, so use an isolated test app/database-never point the
69
69
  laboratory at production.
70
70
 
71
+ ### Opaque validators (zod / valibot / arktype)
72
+
73
+ A `t` schema exposes JSON Schema, so witnesses and constraint-driven mutations are synthesized
74
+ automatically. A Standard Schema validator that carries no JSON Schema (zod, valibot, arktype) validates
75
+ requests fine, but the laboratory can't inspect it - those routes report `NO_WITNESS` and get only
76
+ type-confusion mutations. Pass `reflectJsonSchema` to convert such a validator; for zod, use the shipped
77
+ bridge:
78
+
79
+ ```ts
80
+ import { zodJsonSchema } from "@nifrajs/testing/zod"
81
+
82
+ await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
83
+ ```
84
+
85
+ This turns on witness synthesis and constraint-driven mutations (min/max, length, pattern, enum, format)
86
+ for zod routes. `createMockServer` from `@nifrajs/mock` accepts the same hook. `zod` is an optional peer -
87
+ only projects that import `@nifrajs/testing/zod` need it installed.
88
+
89
+ ### Response conformance needs a declared contract
90
+
91
+ Response conformance only runs for routes that declare a `response` schema. A response type inferred from a
92
+ handler's return is a client-side contract the laboratory cannot see, so an app that declares none checks
93
+ zero response targets even with `validateResponses` on - the report surfaces this in `advisories`. Declare
94
+ `response:` on the routes you want verified. (Runtime response validation in the server itself is a
95
+ separate opt-in, installed by the `responseContract()` plugin.)
96
+
71
97
  `nifra levels` L4 uses this same deep engine through the explicitly configured isolated executor;
72
98
  the older core invariant runner remains only as a compatibility export.
73
99
 
@@ -6,7 +6,7 @@
6
6
  * Schema validator, and then drives it through one or more real fetch runtimes. Declared success
7
7
  * responses are validated off the hot path as part of the same laboratory run.
8
8
  */
9
- import { type ReflectedRoute } from "@nifrajs/core/reflection";
9
+ import { type JsonSchema, type ReflectedRoute } from "@nifrajs/core/reflection";
10
10
  type HeaderSource = ConstructorParameters<typeof Headers>[0];
11
11
  export type ContractTarget = "body" | "query" | "response";
12
12
  export type ContractCaseKind = "input-rejection" | "response-conformance";
@@ -71,6 +71,19 @@ export interface AdversarialContractOptions {
71
71
  readonly maxShrinkAttempts?: number;
72
72
  /** Replay only these stable case IDs. Coverage gaps are advisory when this is set. */
73
73
  readonly only?: string | readonly string[];
74
+ /**
75
+ * Derive an inspectable JSON Schema from a validator that carries none (zod/valibot/arktype expose a
76
+ * Standard Schema validator but no `.jsonSchema`). Called for any body/query schema whose `jsonSchema`
77
+ * is undefined; a non-undefined return turns on witness synthesis AND constraint-driven mutation
78
+ * generation for that route. Fail-safe: throwing or returning undefined leaves the schema opaque
79
+ * (NO_WITNESS, as today). Ready-made for zod: `import { zodJsonSchema } from "@nifrajs/testing/zod"`.
80
+ *
81
+ * Defaults to `@nifrajs/mock`'s `autoReflectJsonSchema`, which recognizes zod by its Standard Schema
82
+ * vendor tag and converts via `z.toJSONSchema` when zod is installed - so zod routes get witnesses and
83
+ * constraint-driven mutations with no wiring. Pass a hook to override, or `() => undefined` to force
84
+ * every opaque schema to stay opaque.
85
+ */
86
+ readonly reflectJsonSchema?: (schema: unknown) => JsonSchema | undefined;
74
87
  }
75
88
  export type ContractCoverageGapCode = "NO_CONTRACT_TARGETS" | "NO_VALIDATOR" | "NO_WITNESS" | "INVALID_WITNESS" | "WITNESS_TOO_LARGE" | "UNSUPPORTED_BODY_METHOD" | "NO_REJECTED_MUTATION" | "NO_RUNTIME" | "INVALID_RUNTIME" | "CASE_NOT_FOUND";
76
89
  export interface ContractCoverageGap {
@@ -107,6 +120,8 @@ export interface AdversarialContractReport {
107
120
  readonly results: readonly AdversarialContractResult[];
108
121
  readonly failures: readonly AdversarialContractResult[];
109
122
  readonly gaps: readonly ContractCoverageGap[];
123
+ /** Non-fatal notes about coverage that is legitimately absent (does not affect `ok`). */
124
+ readonly advisories: readonly string[];
110
125
  readonly counts: {
111
126
  readonly passed: number;
112
127
  readonly failed: number;
@@ -1 +1 @@
1
- {"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,KAAK,UAAU,EACf,KAAK,cAAc,EAGpB,MAAM,0BAA0B,CAAA;AASjC,KAAK,YAAY,GAAG,qBAAqB,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AAG5D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,CAAA;AAC1D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,sBAAsB,CAAA;AAEzE,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,MAAM,IAAI,SAAS,OAAO,EAAE,CAAA;IAC5B,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD;AAED,mGAAmG;AACnG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD;AAED,oGAAoG;AACpG,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,YAAY,CAAA;CAChC;AAED,oGAAoG;AACpG,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAA;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,iGAAiG;IACjG,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC,CAAA;IAC9D,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAA;IACrD,+FAA+F;IAC/F,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,eAAe,EAAE,CAAA;IAC9C,4EAA4E;IAC5E,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,CAAA;IACtC,wDAAwD;IACxD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,0EAA0E;IAC1E,QAAQ,CAAC,0BAA0B,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvD;;;OAGG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,CACxB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,mBAAmB,KACzB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,mBAAmB,KACzB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAC/B,4FAA4F;IAC5F,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,kFAAkF;IAClF,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,0FAA0F;IAC1F,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,qDAAqD;IACrD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,sFAAsF;IACtF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;IAC1C;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,UAAU,GAAG,SAAS,CAAA;CACzE;AAED,MAAM,MAAM,uBAAuB,GAC/B,qBAAqB,GACrB,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,mBAAmB,GACnB,yBAAyB,GACzB,sBAAsB,GACtB,YAAY,GACZ,iBAAiB,GACjB,gBAAgB,CAAA;AAEpB,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAA;IAChC,QAAQ,CAAC,IAAI,EAAE,uBAAuB,CAAA;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,iFAAiF;IACjF,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;CAChC;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,SAAS,yBAAyB,EAAE,CAAA;IACtD,QAAQ,CAAC,QAAQ,EAAE,SAAS,yBAAyB,EAAE,CAAA;IACvD,QAAQ,CAAC,IAAI,EAAE,SAAS,mBAAmB,EAAE,CAAA;IAC7C,yFAAyF;IACzF,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAA;IACtC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;QACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KACtB,CAAA;CACF;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACrC,QAAQ,CAAC,MAAM,EAAE,yBAAyB;gBAAjC,MAAM,EAAE,yBAAyB;CAoBvD;AA+sBD;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC,CAkQpC;AAED,0GAA0G;AAC1G,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,eAAe,EACpB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,yBAAyB,CAAC,CAIpC"}
@@ -7,7 +7,7 @@
7
7
  * responses are validated off the hot path as part of the same laboratory run.
8
8
  */
9
9
  import { reflectRoutes, } from "@nifrajs/core/reflection";
10
- import { generateMockValue } from "@nifrajs/mock";
10
+ import { autoReflectJsonSchema, generateMockValue } from "@nifrajs/mock";
11
11
  const DEFAULT_ORIGIN = "http://nifra.contract";
12
12
  const DEFAULT_SEED = 0x4e_49_46_52;
13
13
  const DEFAULT_MAX_MUTATIONS = 32;
@@ -270,6 +270,24 @@ const queryInput = (value) => {
270
270
  }
271
271
  return result;
272
272
  };
273
+ /** Return a reflection with `jsonSchema` backfilled from `reflect(standard)` when it is otherwise absent.
274
+ * No-op when the reflection already has a JSON Schema, has no validator, or no hook is supplied. A hook
275
+ * that throws is swallowed - the schema stays opaque, exactly as before the hook existed. This is what
276
+ * lets an opaque validator (zod/valibot) get witness synthesis + constraint-driven mutations. */
277
+ const withReflectedJsonSchema = (reflection, reflect) => {
278
+ if (reflect === undefined ||
279
+ reflection.jsonSchema !== undefined ||
280
+ reflection.standard === undefined) {
281
+ return reflection;
282
+ }
283
+ try {
284
+ const jsonSchema = reflect(reflection.standard);
285
+ return jsonSchema === undefined ? reflection : { ...reflection, jsonSchema };
286
+ }
287
+ catch {
288
+ return reflection;
289
+ }
290
+ };
273
291
  async function resolveInput(routeKey, target, reflection, witness, seed, maxWitnessBytes) {
274
292
  if (reflection.standard === undefined) {
275
293
  return {
@@ -513,7 +531,7 @@ async function buildLaboratories(routes, options, seed, gaps) {
513
531
  });
514
532
  }
515
533
  else {
516
- const resolved = await resolveInput(routeKey, "body", route.schema.body, witness, seed, maxWitnessBytes);
534
+ const resolved = await resolveInput(routeKey, "body", withReflectedJsonSchema(route.schema.body, options.reflectJsonSchema ?? autoReflectJsonSchema), witness, seed, maxWitnessBytes);
517
535
  if (resolved.ok)
518
536
  body = resolved.input;
519
537
  else
@@ -522,7 +540,7 @@ async function buildLaboratories(routes, options, seed, gaps) {
522
540
  }
523
541
  if (route.schema?.query !== undefined) {
524
542
  targetCount += 1;
525
- const resolved = await resolveInput(routeKey, "query", route.schema.query, witness, seed, maxWitnessBytes);
543
+ const resolved = await resolveInput(routeKey, "query", withReflectedJsonSchema(route.schema.query, options.reflectJsonSchema ?? autoReflectJsonSchema), witness, seed, maxWitnessBytes);
526
544
  if (resolved.ok)
527
545
  query = resolved.input;
528
546
  else
@@ -737,6 +755,17 @@ export async function runAdversarialContract(app, options = {}) {
737
755
  }
738
756
  const coverageRequired = options.requireCoverage ?? options.only === undefined;
739
757
  const fatalGap = gaps.some((gap) => gap.code === "NO_RUNTIME" || gap.code === "INVALID_RUNTIME" || gap.code === "CASE_NOT_FOUND");
758
+ // Non-fatal: surface the silent-zero-coverage trap. Response conformance needs a DECLARED `response`
759
+ // schema; a response type inferred from the handler return is a client-side contract the laboratory
760
+ // cannot see. Left as an advisory (not a gap) so an inference-only app's suite stays green.
761
+ const advisories = [];
762
+ if (options.validateResponses !== false &&
763
+ routes.length > 0 &&
764
+ !laboratories.some((laboratory) => laboratory.route.schema?.response !== undefined)) {
765
+ advisories.push("validateResponses is on, but no selected route declares a `response` schema, so response " +
766
+ "conformance checked 0 targets. Response types inferred from a handler's return are a client-side " +
767
+ "contract only - declare `response:` on the routes you want the laboratory to verify.");
768
+ }
740
769
  return {
741
770
  ok: failures.length === 0 && !fatalGap && (!coverageRequired || gaps.length === 0),
742
771
  seed,
@@ -746,6 +775,7 @@ export async function runAdversarialContract(app, options = {}) {
746
775
  results,
747
776
  failures,
748
777
  gaps,
778
+ advisories,
749
779
  counts: {
750
780
  passed: results.length - failures.length,
751
781
  failed: failures.length,
@@ -1 +1 @@
1
- {"version":3,"file":"adversarial.js","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adversarial.js","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAGL,aAAa,GAEd,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAExE,MAAM,cAAc,GAAG,uBAAuB,CAAA;AAC9C,MAAM,YAAY,GAAG,aAAa,CAAA;AAClC,MAAM,qBAAqB,GAAG,EAAE,CAAA;AAChC,MAAM,2BAA2B,GAAG,EAAE,CAAA;AACtC,MAAM,yBAAyB,GAAG,GAAG,GAAG,IAAI,CAAA;AAC5C,MAAM,eAAe,GAAwB,IAAI,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;AAuJrE,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IAC5B;IAArB,YAAqB,MAAiC;QACpD,MAAM,OAAO,GAAG;YACd,GAAG,MAAM,CAAC,QAAQ;iBACf,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CACV,GAAG,OAAO,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,iBAAiB,MAAM,CAAC,IAAI,GAAG,CACxF;YACH,GAAG,MAAM,CAAC,IAAI;iBACX,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBACX,GAAG,CACF,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,GAAG,CAAC,KAAK,IAAI,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,EAAE,CACpF;SACJ,CAAA;QACD,KAAK,CACH,gCAAgC,MAAM,CAAC,QAAQ,CAAC,MAAM,gBAAgB,MAAM,CAAC,IAAI,CAAC,MAAM,mBAAmB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACjK,CAAA;QAjBkB,WAAM,GAAN,MAAM,CAA2B;QAkBpD,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAA;IACxC,CAAC;CACF;AA2BD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAiD,EAAE,CACjF,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;IAClE,CAAC,CAAE,KAA2C;IAC9C,CAAC,CAAC,SAAS,CAAA;AAEf,MAAM,GAAG,GAAG,CAAC,KAAa,EAAE,GAAgB,EAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;AAEnF,MAAM,UAAU,GAAG,CAAC,KAAqB,EAAU,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,CAAA;AAEnG,MAAM,aAAa,GAAG,CAAC,IAAwB,EAAU,EAAE,CACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA;AAEzE,MAAM,eAAe,GAAG,CAAC,KAAyB,EAAE,QAAgB,EAAU,EAAE,CAC9E,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAK,KAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;AAE1F,MAAM,YAAY,GAAG,CAAC,IAAY,EAAkB,EAAE;IACpD,IAAI,KAAK,GAAG,IAAI,KAAK,CAAC,CAAA;IACtB,OAAO,GAAG,EAAE;QACV,KAAK,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QAC3D,OAAO,KAAK,GAAG,aAAa,CAAA;IAC9B,CAAC,CAAA;AACH,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,KAAa,EAAU,EAAE;IACrC,IAAI,GAAG,GAAG,aAAa,CAAA;IACvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,GAAG,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;QAC9B,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,GAAG,KAAK,CAAC,CAAA;AAClB,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,KAAc,EAAW,EAAE;IAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;IACxC,IAAI,UAAU,KAAK,SAAS;QAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAA;IACnF,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY,CAAA;AAC1C,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAAC,KAAc,EAAU,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAA;AAEpG,MAAM,WAAW,GAAG,CAAC,MAAmB,EAAE,IAAkC,EAAU,EAAE,CACtF,IAAI,CAAC,MAAM,CACT,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC,EAC5F,MAAM,CACP,CAAA;AAEH,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,MAAmB,EAAE,QAAkB,EAAU,EAAE,CACvF,GAAG,QAAQ,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAA;AAE9E,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAU,EAAE,CAAC,GAAG,QAAQ,0BAA0B,CAAA;AAEtF,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAU,EAAE;IAC1C,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAA;IACjC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAA;IACxC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,KAAK,CAAA;AAC5D,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAsB,EAAE;IAC/D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAuB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;IAC/D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,CAAA;AACtE,CAAC,CAAA;AAED,MAAM,SAAS,GAAG,CAChB,KAAc,EACd,IAAkC,EAClC,WAAoB,EACpB,MAAM,GAAG,KAAK,EACL,EAAE;IACX,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,CAAA;IACzC,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,CAAA;QAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAA;QAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM;YAAE,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;;YACjD,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QACpE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IAClE,MAAM,KAAK,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAA4B,CAAA;IACrF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAA;;QAC9C,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;IACpE,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,YAAY,GAAG,CACnB,MAA8B,EACiB,EAAE,CACjD,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AAE1D,SAAS,kBAAkB,CACzB,IAAa,EACb,MAA8B,EAC9B,aAAqB;IAErB,MAAM,UAAU,GAAe,EAAE,CAAA;IACjC,MAAM,GAAG,GAAG,CAAC,IAAkC,EAAE,MAAc,EAAE,KAAc,EAAQ,EAAE;QACvF,IAAI,UAAU,CAAC,MAAM,GAAG,aAAa,GAAG,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IACrF,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,CACZ,OAAgB,EAChB,aAAqC,EACrC,IAAkC,EAClC,KAAa,EACP,EAAE;QACR,IAAI,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa,GAAG,CAAC;YAAE,OAAM;QAC/D,KAAK,MAAM,WAAW,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,EAAE,cAAc,QAAQ,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAA;QACtF,CAAC;QAED,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,CAAA;QACvC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,IAAI,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;gBACtB,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,qBAAqB,CAAC,CAAC,CAAA;YAClE,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAA;YAChE,CAAC;YACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;oBACpF,GAAG,CACD,IAAI,EACJ,iBAAiB,EACjB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAClE,CAAA;gBACH,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,IAAI,GAAG,CAAC,SAAS,IAAI,CAAC,IAAI,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC;oBACpF,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBACpF,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ;oBAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;gBACpF,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;oBACnC,GAAG,CAAC,IAAI,EAAE,UAAU,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,oBAAoB,CAAC,CAAC,CAAA;gBAChF,CAAC;YACH,CAAC;YACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAChC,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;gBACpE,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACpC,GAAG,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAA;gBACpE,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;oBAC7C,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBAC7E,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;oBAC7C,GAAG,CAAC,IAAI,EAAE,mBAAmB,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;gBAC7E,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;oBAAE,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC,CAAA;YAC5F,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC3B,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;oBACzD,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBACxF,CAAC;gBACD,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,GAAG,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;oBAC3D,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,EAAE,CAAA;oBAChC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAA;oBAC/B,OAAO,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC,QAAQ;wBAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;oBAC3D,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAA;gBAC9D,CAAC;gBACD,IAAI,GAAG,CAAC,WAAW,KAAK,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnD,GAAG,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;gBAC9E,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;YAC5C,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;gBAC3C,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC;gBACtE,CAAC,CAAC,EAAE,CAAA;YACN,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,IAAI,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;oBAC5B,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,mBAAmB,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC5F,CAAC;YACH,CAAC;YACD,GAAG,CACD,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,EAC/B,qBAAqB,EACrB,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,oBAAoB,CAAC,EAAE,IAAI,CAAC,CACvD,CAAA;YACD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;oBAC5B,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAA;gBAC3F,CAAC;gBACD,MAAM,cAAc,GAAG,UAAU,EAAE,CAAC,GAAG,CAAC,CAAA;gBACxC,KAAK,CACH,IAAI,EACJ,OAAO,cAAc,KAAK,SAAS,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAK,SAAS;oBAC3E,CAAC,CAAE,cAA6B;oBAChC,CAAC,CAAC,SAAS,EACb,CAAC,GAAG,IAAI,EAAE,GAAG,CAAC,EACd,KAAK,GAAG,CAAC,CACV,CAAA;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,GAAG,CAAC,IAAI,EAAE,oBAAoB,EAAE,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAC5E,MAAM,UAAU,GAAG,GAAG,EAAE,KAAK,CAAA;YAC7B,KAAK,CACH,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,UAAU,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,SAAS;gBACnE,CAAC,CAAE,UAAyB;gBAC5B,CAAC,CAAC,SAAS,EACb,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,EACZ,KAAK,GAAG,CAAC,CACV,CAAA;QACH,CAAC;IACH,CAAC,CAAA;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA;IAC1B,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,KAAK,UAAU,mBAAmB,CAAC,UAA4B,EAAE,KAAc;IAC7E,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAA;IACrC,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACzC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3D,OAAO,MAAM,CAAC,MAAM,KAAK,SAAS,CAAA;AACpC,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,KAAoB,EACpB,MAAmB,EACnB,YAAoB;IAEpB,MAAM,UAAU,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;IAC7F,MAAM,SAAS,GAAe,EAAE,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,UAAkB,CAAA;QACtB,IAAI,KAAc,CAAA;QAClB,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YACrF,IAAI,KAAK,KAAK,SAAS;gBAAE,SAAQ;YACjC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACpC,CAAC;QAAC,MAAM,CAAC;YACP,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;YAAE,SAAQ;QAClC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;QACpB,IAAI,CAAC;YACH,IAAI,MAAM,mBAAmB,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC;gBACpD,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,CAAA;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,4FAA4F;YAC5F,2FAA2F;QAC7F,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,IAAI,YAAY;YAAE,MAAK;IAC7C,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,GAAG,CAAC,KAAc,EAA2C,EAAE;IAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IAC1C,MAAM,KAAK,GAAuB,EAAE,CAAA;IACpC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACjD,IAAI,IAAI,KAAK,SAAS;YAAE,SAAQ;QAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAClD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,OAAO,GACX,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACrF,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAA;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,KAAc,EAAuB,EAAE;IACzD,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAC/B,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,MAAM,GAAsC,MAAM,CAAC,MAAM,CAAC,IAAI,CAGnE,CAAA;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;aAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;;YACjD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED;;;iGAGiG;AACjG,MAAM,uBAAuB,GAAG,CAC9B,UAA4B,EAC5B,OAAwD,EACtC,EAAE;IACpB,IACE,OAAO,KAAK,SAAS;QACrB,UAAU,CAAC,UAAU,KAAK,SAAS;QACnC,UAAU,CAAC,QAAQ,KAAK,SAAS,EACjC,CAAC;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC/C,OAAO,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,CAAA;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,UAAU,CAAA;IACnB,CAAC;AACH,CAAC,CAAA;AAED,KAAK,UAAU,YAAY,CACzB,QAAgB,EAChB,MAAmB,EACnB,UAA4B,EAC5B,OAAwB,EACxB,IAAY,EACZ,eAAuB;IAEvB,IAAI,UAAU,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,GAAG,EAAE;gBACH,KAAK,EAAE,QAAQ;gBACf,MAAM;gBACN,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,GAAG,MAAM,4CAA4C;aAC/D;SACF,CAAA;IACH,CAAC;IAED,IAAI,KAAc,CAAA;IAClB,IAAI,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC;QACzB,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IACzB,CAAC;SAAM,IAAI,UAAU,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC/C,IAAI,CAAC;YACH,KAAK,GAAG,iBAAiB,CACvB,UAAU,CAAC,UAAU,EACrB,MAAM,EACN,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC,CAAC,CACnD,CAAA;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE;oBACH,KAAK,EAAE,QAAQ;oBACf,MAAM;oBACN,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,0BAA0B,MAAM,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;iBAC/G;aACF,CAAA;QACH,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO;YACL,EAAE,EAAE,KAAK;YACT,GAAG,EAAE;gBACH,KAAK,EAAE,QAAQ;gBACf,MAAM;gBACN,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,UAAU,MAAM,2BAA2B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,MAAM,EAAE;aAC1F;SACF,CAAA;IACH,CAAC;IAED,IAAI,CAAC;QACH,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACjE,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,GAAG,MAAM,wCAAwC,CAAC,CAAA;QAC/F,IAAI,SAAS,CAAC,KAAK,CAAC,GAAG,eAAe,EAAE,CAAC;YACvC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE;oBACH,KAAK,EAAE,QAAQ;oBACf,MAAM;oBACN,IAAI,EAAE,mBAAmB;oBACzB,OAAO,EAAE,GAAG,MAAM,qCAAqC,eAAe,GAAG;iBAC1E;aACF,CAAA;QACH,CAAC;QACD,IAAI,MAAM,mBAAmB,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE;oBACH,KAAK,EAAE,QAAQ;oBACf,MAAM;oBACN,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,GAAG,MAAM,uDAAuD;iBAC1E;aACF,CAAA;QACH,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,CAAA;IACnD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,EAAE,EAAE,KAAK;YACT,GAAG,EAAE;gBACH,KAAK,EAAE,QAAQ;gBACf,MAAM;gBACN,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,sBAAsB,MAAM,aAAa,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;aAC3G;SACF,CAAA;IACH,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG,CACtB,IAAY,EACZ,MAAoD,EAC5C,EAAE,CACV,IAAI;KACD,KAAK,CAAC,GAAG,CAAC;KACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;IACf,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,OAAO,kBAAkB,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,OAAO,WAAW,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,MAAM,WAAW,CAAA;QAC5D,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAC;KACD,IAAI,CAAC,GAAG,CAAC,CAAA;AAEd,SAAS,UAAU,CACjB,UAA2B,EAC3B,MAAc,EACd,IAAa,EACb,KAAc;IAEd,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC9E,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACjC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IACvF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IACvD,MAAM,IAAI,GAAgB,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,CAAA;IACtE,IACE,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS;QAC3C,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAC7C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;QACjF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,OAAO,GAAG,CAAC,IAA4C,EAAmC,EAAE,CAChG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAEpF,MAAM,aAAa,GAAG,CAAC,KAAc,EAAsB,EAAE;IAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ;QAC3B,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACzE,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;IACnF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;IACjG,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC9B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACnC,OAAO;YACL,EAAE;YACF,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;gBAC3B,MAAM,KAAK,GAA4B,MAAM,CAAC,MAAM,CAAC,IAAI,CAA4B,CAAA;gBACrF,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO;oBAAE,IAAI,GAAG,KAAK,OAAO;wBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;gBACzE,OAAO,KAAK,CAAA;YACd,CAAC,CAAC;SACH,CAAA;IACH,CAAC;IACD,OAAO,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AAC/D,CAAC,CAAA;AAED,KAAK,UAAU,eAAe,CAC5B,OAAgB,EAChB,OAA4B,EAC5B,OAAqD;IAErD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;AAC1E,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,QAAkB;IAC/C,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,IAAI,QAAQ,CAAC,QAAQ;QAAE,OAAM;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAA;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,yFAAyF;IAC3F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAC7B,OAAwB,EACxB,UAA2B,EAC3B,MAAmB,EACnB,QAAkB,EAClB,EAAU,EACV,OAAmC,EACnC,IAAY,EACZ,MAAc,EACd,QAA6B;IAE7B,MAAM,OAAO,GAAwB;QACnC,IAAI;QACJ,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,UAAU,CAAC,KAAK;QACvB,OAAO,EAAE,OAAO,CAAC,IAAI;QACrB,IAAI,EAAE,iBAAiB;QACvB,MAAM;QACN,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE;KACrE,CAAA;IACD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAA;QACxE,MAAM,KAAK,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAA;QAC3E,MAAM,OAAO,GAAG,MAAM,eAAe,CACnC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,EAC3C,OAAO,EACP,OAAO,CAAC,cAAc,CACvB,CAAA;QACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC7C,MAAM,QAAQ,GACZ,OAAO,CAAC,UAAU,KAAK,SAAS;YAC9B,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QACjD,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;QAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAA;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IAC3F,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,OAAwB,EACxB,UAA2B,EAC3B,MAAmB,EACnB,QAAkB,EAClB,EAAU,EACV,OAAmC,EACnC,IAAY,EACZ,MAAc,EACd,QAA6B,EAC7B,WAAmB;IAEnB,IAAI,OAAO,GAAG,QAAQ,CAAA;IACtB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,QAAQ,GAAG,CAAC,CAAA;IAChB,IAAI,MAA0B,CAAA;IAC9B,OAAO,QAAQ,GAAG,WAAW,EAAE,CAAC;QAC9B,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,QAAQ,IAAI,CAAC,CAAA;YACb,IAAI,QAAQ,GAAG,WAAW;gBAAE,MAAK;YACjC,MAAM,UAAU,GACd,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAA;YAChF,MAAM,WAAW,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;YAC7E,IAAI,WAAW,KAAK,SAAS;gBAAE,SAAQ;YACvC,IAAI,UAAU,KAAK,SAAS;gBAAE,SAAQ;YACtC,IAAI,CAAC;gBACH,IAAI,CAAC,CAAC,MAAM,mBAAmB,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;oBAAE,SAAQ;YACrE,CAAC;YAAC,MAAM,CAAC;gBACP,SAAQ;YACV,CAAC;YACD,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,CAAA;YACpD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CACnC,OAAO,EACP,UAAU,EACV,MAAM,EACN,SAAS,EACT,EAAE,EACF,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,CACT,CAAA;YACD,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YACtB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACnD,OAAO,GAAG,SAAS,CAAA;gBACnB,KAAK,IAAI,CAAC,CAAA;gBACV,QAAQ,GAAG,IAAI,CAAA;gBACf,MAAK;YACP,CAAC;QACH,CAAC;QACD,IAAI,CAAC,QAAQ;YAAE,MAAK;IACtB,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;AAClF,CAAC;AAED,MAAM,gBAAgB,GAAG,CACvB,IAAkE,EAClE,IAAY,EACZ,OAAe,EACY,EAAE,CAAC,CAAC;IAC/B,GAAG,IAAI;IACP,EAAE,EAAE,KAAK;IACT,OAAO;IACP,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;CACzD,CAAC,CAAA;AAEF,KAAK,UAAU,iBAAiB,CAC9B,MAAiC,EACjC,OAAmC,EACnC,IAAY,EACZ,IAA2B;IAE3B,MAAM,YAAY,GAAsB,EAAE,CAAA;IAC1C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAA;IACzF,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,eAAe,EAAE,yBAAyB,CAAC,CAAA;IAC3F,IAAI,WAAW,GAAG,CAAC,CAAA;IAEnB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QACnD,IAAI,IAA+B,CAAA;QACnC,IAAI,KAAgC,CAAA;QAEpC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;YACrC,WAAW,IAAI,CAAC,CAAA;YAChB,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC;oBACR,KAAK,EAAE,QAAQ;oBACf,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,yBAAyB;oBAC/B,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,8BAA8B;iBACvD,CAAC,CAAA;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,QAAQ,EACR,MAAM,EACN,uBAAuB,CACrB,KAAK,CAAC,MAAM,CAAC,IAAI,EACjB,OAAO,CAAC,iBAAiB,IAAI,qBAAqB,CACnD,EACD,OAAO,EACP,IAAI,EACJ,eAAe,CAChB,CAAA;gBACD,IAAI,QAAQ,CAAC,EAAE;oBAAE,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAA;;oBACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,WAAW,IAAI,CAAC,CAAA;YAChB,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,QAAQ,EACR,OAAO,EACP,uBAAuB,CACrB,KAAK,CAAC,MAAM,CAAC,KAAK,EAClB,OAAO,CAAC,iBAAiB,IAAI,qBAAqB,CACnD,EACD,OAAO,EACP,IAAI,EACJ,eAAe,CAChB,CAAA;YACD,IAAI,QAAQ,CAAC,EAAE;gBAAE,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;;gBAClC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC9B,CAAC;QACD,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,QAAQ,KAAK,SAAS;YAC7E,WAAW,IAAI,CAAC,CAAA;QAElB,MAAM,iBAAiB,GACrB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC;YACxD,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,SAAS,CAAC,CAAA;QAC5D,MAAM,aAAa,GACjB,IAAI,KAAK,SAAS,IAAI,iBAAiB;YACrC,CAAC,CAAC,MAAM,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC;YACnD,CAAC,CAAC,EAAE,CAAA;QACR,MAAM,cAAc,GAClB,KAAK,KAAK,SAAS,IAAI,iBAAiB;YACtC,CAAC,CAAC,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,YAAY,CAAC;YACrD,CAAC,CAAC,EAAE,CAAA;QACR,IAAI,IAAI,KAAK,SAAS,IAAI,iBAAiB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1E,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAA;QACJ,CAAC;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,iBAAiB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5E,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,sBAAsB;gBAC5B,OAAO,EAAE,+DAA+D;aACzE,CAAC,CAAA;QACJ,CAAC;QACD,YAAY,CAAC,IAAI,CAAC;YAChB,KAAK;YACL,QAAQ;YACR,OAAO;YACP,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;YACvC,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;YACzC,aAAa;YACb,cAAc;SACf,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,CAAA;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,GAAoB,EACpB,UAAsC,EAAE;IAExC,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,cAAc,CAAA;IAC/C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAA;IACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI;QACnC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;KAC/D,CAAA;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,0BAA0B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACrE,MAAM,IAAI,GAA0B,EAAE,CAAA;IACtC,MAAM,OAAO,GAAgC,EAAE,CAAA;IAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAA;IAE1F,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,2CAA2C,EAAE,CAAC,CAAA;IACzF,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAA;IACtC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;QAChC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC;gBACR,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,CAAC,IAAI;oBACZ,CAAC,CAAC,0CAA0C;oBAC5C,CAAC,CAAC,mCAAmC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;aAC9D,CAAC,CAAA;QACJ,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IACD,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,qBAAqB;YAC3B,OAAO,EAAE,+DAA+D;SACzE,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,MAAM,UAAU,IAAI,YAAY,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,CAAC,MAAM,EAAE,OAAO,CAAU,EAAE,CAAC;YAChD,MAAM,SAAS,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,CAAA;YAC1F,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;gBAC5D,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAQ;gBACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,IAAI,GAAG;wBACX,EAAE;wBACF,KAAK,EAAE,UAAU,CAAC,QAAQ;wBAC1B,OAAO,EAAE,OAAO,CAAC,IAAI;wBACrB,IAAI,EAAE,iBAA0B;wBAChC,MAAM;wBACN,QAAQ,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE;qBACrE,CAAA;oBACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CACpC,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,EACR,EAAE,EACF,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,CACT,CAAA;oBACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;wBACrB,OAAO,CAAC,IAAI,CAAC;4BACX,GAAG,IAAI;4BACP,EAAE,EAAE,IAAI;4BACR,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;4BACnE,OAAO,EAAE,gDAAgD;4BACzD,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;yBACpD,CAAC,CAAA;wBACF,SAAQ;oBACV,CAAC;oBAED,IAAI,WAAW,GAAG,CAAC,CAAA;oBACnB,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAA;oBAC3B,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;wBACpE,MAAM,MAAM,GAAG,MAAM,aAAa,CAChC,OAAO,EACP,UAAU,EACV,MAAM,EACN,QAAQ,EACR,EAAE,EACF,OAAO,EACP,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,eAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CACxE,CAAA;wBACD,WAAW,GAAG,MAAM,CAAC,KAAK,CAAA;wBAC1B,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAA;oBAClC,CAAC;oBACD,OAAO,CAAC,IAAI,CACV,gBAAgB,CACd;wBACE,GAAG,IAAI;wBACP,GAAG,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;wBAC3C,GAAG,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;qBAC9C,EACD,IAAI,EACJ,OAAO,CAAC,KAAK,KAAK,SAAS;wBACzB,CAAC,CAAC,8BAA8B,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,MAAM,IAAI,aAAa,EAAE;wBAC9F,CAAC,CAAC,kBAAkB,OAAO,CAAC,KAAK,EAAE,CACtC,CACF,CAAA;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAA;QACxD,IAAI,OAAO,CAAC,iBAAiB,KAAK,KAAK,IAAI,cAAc,KAAK,SAAS;YAAE,SAAQ;QACjF,MAAM,EAAE,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;QAC1C,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAQ;QACjD,IAAI,cAAc,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC;gBACR,KAAK,EAAE,UAAU,CAAC,QAAQ;gBAC1B,MAAM,EAAE,UAAU;gBAClB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,oDAAoD;aAC9D,CAAC,CAAA;YACF,SAAQ;QACV,CAAC;QACD,MAAM,iBAAiB,GACrB,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,CAAC;YAC9E,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,KAAK,SAAS,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CAAA;QAClF,IAAI,CAAC,iBAAiB;YAAE,SAAQ;QAEhC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAwB;gBACnC,IAAI;gBACJ,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,IAAI,EAAE,sBAAsB;gBAC5B,MAAM,EAAE,UAAU;aACnB,CAAA;YACD,MAAM,IAAI,GAAG;gBACX,EAAE;gBACF,KAAK,EAAE,UAAU,CAAC,QAAQ;gBAC1B,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,IAAI,EAAE,sBAA+B;gBACrC,MAAM,EAAE,UAAmB;aAC5B,CAAA;YACD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,eAAe,CACnC,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,EAC/E,OAAO,EACP,OAAO,CAAC,cAAc,CACvB,CAAA;gBACD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;gBAC9B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;oBAC/B,OAAO,CAAC,IAAI,CACV,gBAAgB,CACd,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EACnB,IAAI,EACJ,6CAA6C,MAAM,EAAE,CACtD,CACF,CAAA;oBACD,SAAQ;gBACV,CAAC;gBACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;gBAClC,IAAI,KAAc,CAAA;gBAClB,IAAI,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAA;gBACvE,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,CAAC,IAAI,CACV,gBAAgB,CACd,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EACnB,IAAI,EACJ,8DAA8D,CAC/D,CACF,CAAA;oBACD,SAAQ;gBACV,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;gBAC7E,IAAI,UAAU,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACpC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;oBAClC,MAAM,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACtC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,IAAI,OAAO;wBACjE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;wBACrB,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CACpB,CAAA;oBACD,OAAO,CAAC,IAAI,CACV,gBAAgB,CACd,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,EACnB,IAAI,EACJ,iCAAiC,EAAE,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CACjI,CACF,CAAA;oBACD,SAAQ;gBACV,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC;oBACX,GAAG,IAAI;oBACP,MAAM;oBACN,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE,qDAAqD;oBAC9D,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;iBACpD,CAAC,CAAA;YACJ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,IAAI,CACV,gBAAgB,CACd,IAAI,EACJ,IAAI,EACJ,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAC3E,CACF,CAAA;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACvD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBAChD,IAAI,CAAC,IAAI,CAAC;oBACR,IAAI,EAAE,gBAAgB;oBACtB,OAAO,EAAE,eAAe,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,8CAA8C;iBACzF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,MAAM,gBAAgB,GAAG,OAAO,CAAC,eAAe,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,CAAA;IAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAC/F,CAAA;IACD,qGAAqG;IACrG,oGAAoG;IACpG,4FAA4F;IAC5F,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,IACE,OAAO,CAAC,iBAAiB,KAAK,KAAK;QACnC,MAAM,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC,EACnF,CAAC;QACD,UAAU,CAAC,IAAI,CACb,2FAA2F;YACzF,mGAAmG;YACnG,sFAAsF,CACzF,CAAA;IACH,CAAC;IACD,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC;QAClF,IAAI;QACJ,UAAU,EAAE,MAAM,CAAC,MAAM;QACzB,WAAW;QACX,YAAY,EAAE,QAAQ,CAAC,MAAM;QAC7B,OAAO;QACP,QAAQ;QACR,IAAI;QACJ,UAAU;QACV,MAAM,EAAE;YACN,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM;YACxC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,IAAI,EAAE,IAAI,CAAC,MAAM;SAClB;KACF,CAAA;AACH,CAAC;AAED,0GAA0G;AAC1G,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,GAAoB,EACpB,UAAsC,EAAE;IAExC,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACzD,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAA;IAC1D,OAAO,MAAM,CAAA;AACf,CAAC"}
package/dist/zod.d.ts ADDED
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `@nifrajs/testing/zod` - bridge a zod schema to the inspectable JSON Schema the adversarial laboratory
3
+ * and `@nifrajs/mock` generate from. zod implements Standard Schema (nifra already VALIDATES with it) but
4
+ * carries no `.jsonSchema`, so without a bridge the laboratory reports NO_WITNESS for every zod route and
5
+ * emits only generic type-confusion mutations, and the mock server returns `{}` for zod responses.
6
+ *
7
+ * Since the vendor-sniffing default (`@nifrajs/mock`'s `autoReflectJsonSchema`), the laboratory and the
8
+ * mock server apply this bridge AUTOMATICALLY when zod is installed - no wiring. This module remains the
9
+ * EXPLICIT form: pass it when you want the conversion pinned regardless of the default's behavior, or as
10
+ * the base of a custom hook that handles more vendors:
11
+ *
12
+ * import { zodJsonSchema } from "@nifrajs/testing/zod"
13
+ * await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
14
+ * // and/or: createMockServer(app, { reflectJsonSchema: zodJsonSchema })
15
+ *
16
+ * zod is an OPTIONAL peer: this module is only reachable through the `./zod` subpath, so a non-zod project
17
+ * never loads zod. Requires the `z.toJSONSchema` era (zod 4; verified against 4.4.3).
18
+ */
19
+ import type { JsonSchema } from "@nifrajs/core/reflection";
20
+ /**
21
+ * Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
22
+ * value is not a convertible zod schema. Options chosen for this consumer:
23
+ * - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
24
+ * - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
25
+ * - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
26
+ *
27
+ * Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
28
+ * (NO_WITNESS / `{}`), exactly as before this bridge existed.
29
+ */
30
+ export declare function zodJsonSchema(schema: unknown): JsonSchema | undefined;
31
+ //# sourceMappingURL=zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAQ1D;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAQrE"}
package/dist/zod.js ADDED
@@ -0,0 +1,27 @@
1
+ import * as z from "zod";
2
+ // Accessed defensively so a zod build without `toJSONSchema` degrades to today's behavior rather than
3
+ // crashing at import. Present since zod 4.
4
+ const toJSONSchema = z
5
+ .toJSONSchema;
6
+ /**
7
+ * Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
8
+ * value is not a convertible zod schema. Options chosen for this consumer:
9
+ * - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
10
+ * - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
11
+ * - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
12
+ *
13
+ * Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
14
+ * (NO_WITNESS / `{}`), exactly as before this bridge existed.
15
+ */
16
+ export function zodJsonSchema(schema) {
17
+ if (typeof toJSONSchema !== "function")
18
+ return undefined;
19
+ try {
20
+ const json = toJSONSchema(schema, { target: "draft-7", io: "input", reused: "inline" });
21
+ return json === null || json === undefined ? undefined : json;
22
+ }
23
+ catch {
24
+ return undefined;
25
+ }
26
+ }
27
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AAExB,sGAAsG;AACtG,2CAA2C;AAC3C,MAAM,YAAY,GAAI,CAAwE;KAC3F,YAAY,CAAA;AAEf;;;;;;;;;GASG;AACH,MAAM,UAAU,aAAa,CAAC,MAAe;IAC3C,IAAI,OAAO,YAAY,KAAK,UAAU;QAAE,OAAO,SAAS,CAAA;IACxD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;QACvF,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAmB,CAAA;IAC/E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA;IAClB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nifrajs/testing",
3
- "version": "2.3.0",
3
+ "version": "2.5.0",
4
4
  "description": "Contract-derived adversarial tests, runtime-matrix response conformance, and cookie-aware in-process sessions for Nifra apps.",
5
5
  "keywords": [
6
6
  "bun",
@@ -25,6 +25,11 @@
25
25
  "bun": "./src/certification.ts",
26
26
  "types": "./dist/certification.d.ts",
27
27
  "default": "./dist/certification.js"
28
+ },
29
+ "./zod": {
30
+ "bun": "./src/zod.ts",
31
+ "types": "./dist/zod.d.ts",
32
+ "default": "./dist/zod.js"
28
33
  }
29
34
  },
30
35
  "files": [
@@ -37,9 +42,17 @@
37
42
  },
38
43
  "license": "MIT",
39
44
  "dependencies": {
40
- "@nifrajs/client": "2.3.0",
41
- "@nifrajs/core": "2.3.0",
42
- "@nifrajs/mock": "2.3.0"
45
+ "@nifrajs/client": "2.5.0",
46
+ "@nifrajs/core": "2.5.0",
47
+ "@nifrajs/mock": "2.5.0"
48
+ },
49
+ "peerDependencies": {
50
+ "zod": ">=4.0.0"
51
+ },
52
+ "peerDependenciesMeta": {
53
+ "zod": {
54
+ "optional": true
55
+ }
43
56
  },
44
57
  "publishConfig": {
45
58
  "access": "public"
@@ -13,7 +13,7 @@ import {
13
13
  reflectRoutes,
14
14
  type SchemaReflection,
15
15
  } from "@nifrajs/core/reflection"
16
- import { generateMockValue } from "@nifrajs/mock"
16
+ import { autoReflectJsonSchema, generateMockValue } from "@nifrajs/mock"
17
17
 
18
18
  const DEFAULT_ORIGIN = "http://nifra.contract"
19
19
  const DEFAULT_SEED = 0x4e_49_46_52
@@ -98,6 +98,19 @@ export interface AdversarialContractOptions {
98
98
  readonly maxShrinkAttempts?: number
99
99
  /** Replay only these stable case IDs. Coverage gaps are advisory when this is set. */
100
100
  readonly only?: string | readonly string[]
101
+ /**
102
+ * Derive an inspectable JSON Schema from a validator that carries none (zod/valibot/arktype expose a
103
+ * Standard Schema validator but no `.jsonSchema`). Called for any body/query schema whose `jsonSchema`
104
+ * is undefined; a non-undefined return turns on witness synthesis AND constraint-driven mutation
105
+ * generation for that route. Fail-safe: throwing or returning undefined leaves the schema opaque
106
+ * (NO_WITNESS, as today). Ready-made for zod: `import { zodJsonSchema } from "@nifrajs/testing/zod"`.
107
+ *
108
+ * Defaults to `@nifrajs/mock`'s `autoReflectJsonSchema`, which recognizes zod by its Standard Schema
109
+ * vendor tag and converts via `z.toJSONSchema` when zod is installed - so zod routes get witnesses and
110
+ * constraint-driven mutations with no wiring. Pass a hook to override, or `() => undefined` to force
111
+ * every opaque schema to stay opaque.
112
+ */
113
+ readonly reflectJsonSchema?: (schema: unknown) => JsonSchema | undefined
101
114
  }
102
115
 
103
116
  export type ContractCoverageGapCode =
@@ -149,6 +162,8 @@ export interface AdversarialContractReport {
149
162
  readonly results: readonly AdversarialContractResult[]
150
163
  readonly failures: readonly AdversarialContractResult[]
151
164
  readonly gaps: readonly ContractCoverageGap[]
165
+ /** Non-fatal notes about coverage that is legitimately absent (does not affect `ok`). */
166
+ readonly advisories: readonly string[]
152
167
  readonly counts: {
153
168
  readonly passed: number
154
169
  readonly failed: number
@@ -491,6 +506,29 @@ const queryInput = (value: unknown): unknown | undefined => {
491
506
  return result
492
507
  }
493
508
 
509
+ /** Return a reflection with `jsonSchema` backfilled from `reflect(standard)` when it is otherwise absent.
510
+ * No-op when the reflection already has a JSON Schema, has no validator, or no hook is supplied. A hook
511
+ * that throws is swallowed - the schema stays opaque, exactly as before the hook existed. This is what
512
+ * lets an opaque validator (zod/valibot) get witness synthesis + constraint-driven mutations. */
513
+ const withReflectedJsonSchema = (
514
+ reflection: SchemaReflection,
515
+ reflect: AdversarialContractOptions["reflectJsonSchema"],
516
+ ): SchemaReflection => {
517
+ if (
518
+ reflect === undefined ||
519
+ reflection.jsonSchema !== undefined ||
520
+ reflection.standard === undefined
521
+ ) {
522
+ return reflection
523
+ }
524
+ try {
525
+ const jsonSchema = reflect(reflection.standard)
526
+ return jsonSchema === undefined ? reflection : { ...reflection, jsonSchema }
527
+ } catch {
528
+ return reflection
529
+ }
530
+ }
531
+
494
532
  async function resolveInput(
495
533
  routeKey: string,
496
534
  target: InputTarget,
@@ -802,7 +840,10 @@ async function buildLaboratories(
802
840
  const resolved = await resolveInput(
803
841
  routeKey,
804
842
  "body",
805
- route.schema.body,
843
+ withReflectedJsonSchema(
844
+ route.schema.body,
845
+ options.reflectJsonSchema ?? autoReflectJsonSchema,
846
+ ),
806
847
  witness,
807
848
  seed,
808
849
  maxWitnessBytes,
@@ -816,7 +857,10 @@ async function buildLaboratories(
816
857
  const resolved = await resolveInput(
817
858
  routeKey,
818
859
  "query",
819
- route.schema.query,
860
+ withReflectedJsonSchema(
861
+ route.schema.query,
862
+ options.reflectJsonSchema ?? autoReflectJsonSchema,
863
+ ),
820
864
  witness,
821
865
  seed,
822
866
  maxWitnessBytes,
@@ -1102,6 +1146,21 @@ export async function runAdversarialContract(
1102
1146
  (gap) =>
1103
1147
  gap.code === "NO_RUNTIME" || gap.code === "INVALID_RUNTIME" || gap.code === "CASE_NOT_FOUND",
1104
1148
  )
1149
+ // Non-fatal: surface the silent-zero-coverage trap. Response conformance needs a DECLARED `response`
1150
+ // schema; a response type inferred from the handler return is a client-side contract the laboratory
1151
+ // cannot see. Left as an advisory (not a gap) so an inference-only app's suite stays green.
1152
+ const advisories: string[] = []
1153
+ if (
1154
+ options.validateResponses !== false &&
1155
+ routes.length > 0 &&
1156
+ !laboratories.some((laboratory) => laboratory.route.schema?.response !== undefined)
1157
+ ) {
1158
+ advisories.push(
1159
+ "validateResponses is on, but no selected route declares a `response` schema, so response " +
1160
+ "conformance checked 0 targets. Response types inferred from a handler's return are a client-side " +
1161
+ "contract only - declare `response:` on the routes you want the laboratory to verify.",
1162
+ )
1163
+ }
1105
1164
  return {
1106
1165
  ok: failures.length === 0 && !fatalGap && (!coverageRequired || gaps.length === 0),
1107
1166
  seed,
@@ -1111,6 +1170,7 @@ export async function runAdversarialContract(
1111
1170
  results,
1112
1171
  failures,
1113
1172
  gaps,
1173
+ advisories,
1114
1174
  counts: {
1115
1175
  passed: results.length - failures.length,
1116
1176
  failed: failures.length,
package/src/zod.ts ADDED
@@ -0,0 +1,45 @@
1
+ /**
2
+ * `@nifrajs/testing/zod` - bridge a zod schema to the inspectable JSON Schema the adversarial laboratory
3
+ * and `@nifrajs/mock` generate from. zod implements Standard Schema (nifra already VALIDATES with it) but
4
+ * carries no `.jsonSchema`, so without a bridge the laboratory reports NO_WITNESS for every zod route and
5
+ * emits only generic type-confusion mutations, and the mock server returns `{}` for zod responses.
6
+ *
7
+ * Since the vendor-sniffing default (`@nifrajs/mock`'s `autoReflectJsonSchema`), the laboratory and the
8
+ * mock server apply this bridge AUTOMATICALLY when zod is installed - no wiring. This module remains the
9
+ * EXPLICIT form: pass it when you want the conversion pinned regardless of the default's behavior, or as
10
+ * the base of a custom hook that handles more vendors:
11
+ *
12
+ * import { zodJsonSchema } from "@nifrajs/testing/zod"
13
+ * await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
14
+ * // and/or: createMockServer(app, { reflectJsonSchema: zodJsonSchema })
15
+ *
16
+ * zod is an OPTIONAL peer: this module is only reachable through the `./zod` subpath, so a non-zod project
17
+ * never loads zod. Requires the `z.toJSONSchema` era (zod 4; verified against 4.4.3).
18
+ */
19
+ import type { JsonSchema } from "@nifrajs/core/reflection"
20
+ import * as z from "zod"
21
+
22
+ // Accessed defensively so a zod build without `toJSONSchema` degrades to today's behavior rather than
23
+ // crashing at import. Present since zod 4.
24
+ const toJSONSchema = (z as { toJSONSchema?: (schema: unknown, options?: unknown) => unknown })
25
+ .toJSONSchema
26
+
27
+ /**
28
+ * Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
29
+ * value is not a convertible zod schema. Options chosen for this consumer:
30
+ * - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
31
+ * - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
32
+ * - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
33
+ *
34
+ * Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
35
+ * (NO_WITNESS / `{}`), exactly as before this bridge existed.
36
+ */
37
+ export function zodJsonSchema(schema: unknown): JsonSchema | undefined {
38
+ if (typeof toJSONSchema !== "function") return undefined
39
+ try {
40
+ const json = toJSONSchema(schema, { target: "draft-7", io: "input", reused: "inline" })
41
+ return json === null || json === undefined ? undefined : (json as JsonSchema)
42
+ } catch {
43
+ return undefined
44
+ }
45
+ }