@nifrajs/testing 2.2.0 → 2.4.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 +30 -4
- package/dist/adversarial.d.ts +11 -1
- package/dist/adversarial.d.ts.map +1 -1
- package/dist/adversarial.js +33 -3
- package/dist/adversarial.js.map +1 -1
- package/dist/cookies.d.ts +2 -2
- package/dist/cookies.js +2 -2
- package/dist/incident.d.ts +5 -5
- package/dist/incident.js +5 -5
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/session.d.ts +4 -4
- package/dist/session.js +1 -1
- package/dist/zod.d.ts +26 -0
- package/dist/zod.d.ts.map +1 -0
- package/dist/zod.js +27 -0
- package/dist/zod.js.map +1 -0
- package/package.json +17 -4
- package/src/adversarial.ts +52 -3
- package/src/cookies.ts +2 -2
- package/src/incident.ts +5 -5
- package/src/index.ts +1 -1
- package/src/session.ts +4 -4
- package/src/zod.ts +40 -0
package/README.md
CHANGED
|
@@ -65,9 +65,35 @@ const report = await assertAdversarialContract(app, {
|
|
|
65
65
|
|
|
66
66
|
`runAdversarialContract` returns the same structured report without throwing. Every failure includes
|
|
67
67
|
`replay: { seed, caseId, runtime }`; rerun one case with `only: caseId`. Contract runs execute one valid
|
|
68
|
-
request for each declared response schema, so use an isolated test app/database
|
|
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
|
|
|
@@ -149,7 +175,7 @@ await client.auth.logout.post() // a Max-Age=0 Set-Cookie cle
|
|
|
149
175
|
expect(cookies.get("sid")).toBeUndefined()
|
|
150
176
|
```
|
|
151
177
|
|
|
152
|
-
Same in-process client as `testClient`
|
|
178
|
+
Same in-process client as `testClient` - the app's own `fetch`, no server/port/network, the full real
|
|
153
179
|
lifecycle (validation, middleware, contracts, auth) and end-to-end types from `App`. The only addition is
|
|
154
180
|
that every call carries and captures cookies via a shared jar.
|
|
155
181
|
|
|
@@ -162,14 +188,14 @@ that every call carries and captures cookies via a shared jar.
|
|
|
162
188
|
- `certifyAdapter({ profile, adapterId, createAdapter })` → capability matrix + SHA-256 evidence.
|
|
163
189
|
- `verifyAdapterCertification(report)` → recompute and verify portable certification evidence.
|
|
164
190
|
- `testSession<App>(app, { origin?, cookies? })` → `{ client: Treaty<App>, cookies: CookieJar }`.
|
|
165
|
-
- `cookieJar()` → `CookieJar`
|
|
191
|
+
- `cookieJar()` → `CookieJar` - `header()` · `applyTo(headers)` · `store(response)` · `set` · `get` · `clear` · `size`.
|
|
166
192
|
Honours removal (`Max-Age=0` / past `Expires`); other cookie attributes are ignored (in-process, same-origin).
|
|
167
193
|
|
|
168
194
|
For a **stateless** request (no cookies), use `testClient` from `@nifrajs/client` directly.
|
|
169
195
|
|
|
170
196
|
## For AI agents
|
|
171
197
|
|
|
172
|
-
Start with [`LLM.md`](./LLM.md)
|
|
198
|
+
Start with [`LLM.md`](./LLM.md) - this package's contract card (the exports you call + its footguns),
|
|
173
199
|
one cheap read instead of the whole corpus. For the wider framework: the repo's
|
|
174
200
|
[`AGENTS.md`](../../AGENTS.md) is the copy-paste quick reference, and
|
|
175
201
|
[`llms-full.txt`](../../llms-full.txt) is the full machine-readable corpus. Run `nifra check` as the
|
package/dist/adversarial.d.ts
CHANGED
|
@@ -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,14 @@ 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
|
+
readonly reflectJsonSchema?: (schema: unknown) => JsonSchema | undefined;
|
|
74
82
|
}
|
|
75
83
|
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
84
|
export interface ContractCoverageGap {
|
|
@@ -107,6 +115,8 @@ export interface AdversarialContractReport {
|
|
|
107
115
|
readonly results: readonly AdversarialContractResult[];
|
|
108
116
|
readonly failures: readonly AdversarialContractResult[];
|
|
109
117
|
readonly gaps: readonly ContractCoverageGap[];
|
|
118
|
+
/** Non-fatal notes about coverage that is legitimately absent (does not affect `ok`). */
|
|
119
|
+
readonly advisories: readonly string[];
|
|
110
120
|
readonly counts: {
|
|
111
121
|
readonly passed: number;
|
|
112
122
|
readonly failed: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"adversarial.d.ts","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
|
package/dist/adversarial.js
CHANGED
|
@@ -20,7 +20,7 @@ export class AdversarialContractError extends Error {
|
|
|
20
20
|
const details = [
|
|
21
21
|
...report.failures
|
|
22
22
|
.slice(0, 5)
|
|
23
|
-
.map((failure) => `${failure.runtime}: ${failure.id}
|
|
23
|
+
.map((failure) => `${failure.runtime}: ${failure.id} - ${failure.message} (replay seed ${report.seed})`),
|
|
24
24
|
...report.gaps
|
|
25
25
|
.slice(0, 5)
|
|
26
26
|
.map((gap) => `${gap.route ?? "contract"}${gap.target ? ` ${gap.target}` : ""}: ${gap.message}`),
|
|
@@ -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), 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), 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,
|
package/dist/adversarial.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAEjD,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;AAwIrE,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,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,KAAK,CAAC,MAAM,CAAC,IAAI,EACjB,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,KAAK,CAAC,MAAM,CAAC,KAAK,EAClB,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,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,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"}
|
|
1
|
+
{"version":3,"file":"adversarial.js","sourceRoot":"","sources":["../src/adversarial.ts"],"names":[],"mappings":"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"}
|
package/dist/cookies.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A tiny cookie jar for in-process tests
|
|
2
|
+
* A tiny cookie jar for in-process tests - parses `Set-Cookie` off responses and emits a `Cookie`
|
|
3
3
|
* request header, so a login → authenticated-request flow works without threading headers by hand. It
|
|
4
4
|
* honours removal (`Max-Age=0` / a past `Expires`) so logout clears the cookie; other attributes
|
|
5
|
-
* (Domain/Path/Secure/SameSite) are ignored
|
|
5
|
+
* (Domain/Path/Secure/SameSite) are ignored - everything is same-origin in-process.
|
|
6
6
|
*/
|
|
7
7
|
export interface CookieJar {
|
|
8
8
|
/** The current `Cookie` request-header value (`"a=1; b=2"`, or `""` when empty). */
|
package/dist/cookies.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A tiny cookie jar for in-process tests
|
|
2
|
+
* A tiny cookie jar for in-process tests - parses `Set-Cookie` off responses and emits a `Cookie`
|
|
3
3
|
* request header, so a login → authenticated-request flow works without threading headers by hand. It
|
|
4
4
|
* honours removal (`Max-Age=0` / a past `Expires`) so logout clears the cookie; other attributes
|
|
5
|
-
* (Domain/Path/Secure/SameSite) are ignored
|
|
5
|
+
* (Domain/Path/Secure/SameSite) are ignored - everything is same-origin in-process.
|
|
6
6
|
*/
|
|
7
7
|
/** Read `Set-Cookie` values portably: `getSetCookie()` (Bun/Node/edge) with a single-header fallback. */
|
|
8
8
|
function setCookies(headers) {
|
package/dist/incident.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Turn a failed request into a committed regression test
|
|
2
|
+
* Turn a failed request into a committed regression test - the one thing a generic error tracker
|
|
3
3
|
* (Sentry, PostHog) can't do, because it needs the framework's contract + in-process replay. Capture
|
|
4
4
|
* the request + observed response, replay it against the CURRENT app, and assert the response contract
|
|
5
5
|
* (status, optionally shape) still reproduces. This does NOT replace error tracking or store incidents
|
|
6
|
-
*
|
|
6
|
+
* - it converts one into a permanent test.
|
|
7
7
|
*
|
|
8
8
|
* Two surfaces, deliberately separate on the PII axis:
|
|
9
|
-
* - `replayIncident` / `assertIncidentReplays` run in memory against the REAL captured inputs
|
|
9
|
+
* - `replayIncident` / `assertIncidentReplays` run in memory against the REAL captured inputs - nothing
|
|
10
10
|
* is written, so reproduction is exact and there is no leak surface.
|
|
11
11
|
* - `generateRegressionTest` emits a file you commit, so it redacts request values BY DEFAULT and
|
|
12
12
|
* bannered a sanitize step: a committed fixture must never carry raw PII/secrets.
|
|
@@ -74,7 +74,7 @@ export declare class IncidentReplayError extends Error {
|
|
|
74
74
|
export declare function assertIncidentReplays(app: AppLike, capsule: IncidentCapsule, options?: ReplayIncidentOptions): Promise<void>;
|
|
75
75
|
/**
|
|
76
76
|
* Redact leaf string values by default (unless the dotted key path is allow-listed). Non-strings are
|
|
77
|
-
* kept
|
|
77
|
+
* kept - they carry the structure that makes the fixture reproduce - so review the emitted file. This
|
|
78
78
|
* is intentionally aggressive: a committed fixture must not leak PII/secrets.
|
|
79
79
|
*/
|
|
80
80
|
export declare function redactForEmission(value: unknown, allow: ReadonlySet<string>, path?: string): unknown;
|
|
@@ -90,7 +90,7 @@ export interface GenerateRegressionTestOptions {
|
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
92
|
* Emit a committable regression test from a capsule. Request string values are redacted BY DEFAULT with
|
|
93
|
-
* a sanitize banner
|
|
93
|
+
* a sanitize banner - replace the `<redacted>` placeholders with safe, reproducing values before you
|
|
94
94
|
* commit. The test asserts the response contract via {@link assertIncidentReplays}.
|
|
95
95
|
*/
|
|
96
96
|
export declare function generateRegressionTest(capsule: IncidentCapsule, options?: GenerateRegressionTestOptions): string;
|
package/dist/incident.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Turn a failed request into a committed regression test
|
|
2
|
+
* Turn a failed request into a committed regression test - the one thing a generic error tracker
|
|
3
3
|
* (Sentry, PostHog) can't do, because it needs the framework's contract + in-process replay. Capture
|
|
4
4
|
* the request + observed response, replay it against the CURRENT app, and assert the response contract
|
|
5
5
|
* (status, optionally shape) still reproduces. This does NOT replace error tracking or store incidents
|
|
6
|
-
*
|
|
6
|
+
* - it converts one into a permanent test.
|
|
7
7
|
*
|
|
8
8
|
* Two surfaces, deliberately separate on the PII axis:
|
|
9
|
-
* - `replayIncident` / `assertIncidentReplays` run in memory against the REAL captured inputs
|
|
9
|
+
* - `replayIncident` / `assertIncidentReplays` run in memory against the REAL captured inputs - nothing
|
|
10
10
|
* is written, so reproduction is exact and there is no leak surface.
|
|
11
11
|
* - `generateRegressionTest` emits a file you commit, so it redacts request values BY DEFAULT and
|
|
12
12
|
* bannered a sanitize step: a committed fixture must never carry raw PII/secrets.
|
|
@@ -162,7 +162,7 @@ export async function assertIncidentReplays(app, capsule, options = {}) {
|
|
|
162
162
|
const REDACTED = "<redacted>";
|
|
163
163
|
/**
|
|
164
164
|
* Redact leaf string values by default (unless the dotted key path is allow-listed). Non-strings are
|
|
165
|
-
* kept
|
|
165
|
+
* kept - they carry the structure that makes the fixture reproduce - so review the emitted file. This
|
|
166
166
|
* is intentionally aggressive: a committed fixture must not leak PII/secrets.
|
|
167
167
|
*/
|
|
168
168
|
export function redactForEmission(value, allow, path = "") {
|
|
@@ -181,7 +181,7 @@ export function redactForEmission(value, allow, path = "") {
|
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
183
183
|
* Emit a committable regression test from a capsule. Request string values are redacted BY DEFAULT with
|
|
184
|
-
* a sanitize banner
|
|
184
|
+
* a sanitize banner - replace the `<redacted>` placeholders with safe, reproducing values before you
|
|
185
185
|
* commit. The test asserts the response contract via {@link assertIncidentReplays}.
|
|
186
186
|
*/
|
|
187
187
|
export function generateRegressionTest(capsule, options = {}) {
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @nifrajs/testing
|
|
2
|
+
* @nifrajs/testing - helpers for testing nifra apps in-process. `@nifrajs/client`'s `testClient` is the
|
|
3
3
|
* typed, no-network request client (the supertest/inject equivalent); this adds what it doesn't: a
|
|
4
4
|
* {@link cookieJar} and a cookie-persisting {@link testSession}, so stateful auth/session flows are as
|
|
5
5
|
* easy to test as a single request.
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @nifrajs/testing
|
|
2
|
+
* @nifrajs/testing - helpers for testing nifra apps in-process. `@nifrajs/client`'s `testClient` is the
|
|
3
3
|
* typed, no-network request client (the supertest/inject equivalent); this adds what it doesn't: a
|
|
4
4
|
* {@link cookieJar} and a cookie-persisting {@link testSession}, so stateful auth/session flows are as
|
|
5
5
|
* easy to test as a single request.
|
package/dist/session.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A stateful, cookie-aware in-process test client. `@nifrajs/client`'s `testClient` already drives an
|
|
3
|
-
* app's `fetch` with end-to-end types (no server/port/network)
|
|
3
|
+
* app's `fetch` with end-to-end types (no server/port/network) - this wraps it with a {@link CookieJar}
|
|
4
4
|
* that carries `Set-Cookie` across calls, so a login → authenticated-request flow just works.
|
|
5
5
|
*
|
|
6
6
|
* import { testSession } from "@nifrajs/testing"
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { type ClientOptions, type Treaty } from "@nifrajs/client";
|
|
15
15
|
import { type CookieJar } from "./cookies.js";
|
|
16
|
-
/** The minimal shape a nifra `server()` app satisfies
|
|
16
|
+
/** The minimal shape a nifra `server()` app satisfies - its own `fetch`. */
|
|
17
17
|
export interface AppLike {
|
|
18
18
|
fetch(request: Request): Response | Promise<Response>;
|
|
19
19
|
}
|
|
@@ -24,9 +24,9 @@ export interface TestSessionOptions extends Omit<ClientOptions, "fetch"> {
|
|
|
24
24
|
readonly cookies?: CookieJar;
|
|
25
25
|
}
|
|
26
26
|
export interface TestSession<App> {
|
|
27
|
-
/** The end-to-end-typed in-process client
|
|
27
|
+
/** The end-to-end-typed in-process client - every call carries + captures cookies. */
|
|
28
28
|
readonly client: Treaty<App>;
|
|
29
|
-
/** The jar backing this session
|
|
29
|
+
/** The jar backing this session - inspect (`cookies.get("sid")`), seed, or `clear()` it. */
|
|
30
30
|
readonly cookies: CookieJar;
|
|
31
31
|
}
|
|
32
32
|
/** Create a cookie-persisting in-process test client for `app`. */
|
package/dist/session.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A stateful, cookie-aware in-process test client. `@nifrajs/client`'s `testClient` already drives an
|
|
3
|
-
* app's `fetch` with end-to-end types (no server/port/network)
|
|
3
|
+
* app's `fetch` with end-to-end types (no server/port/network) - this wraps it with a {@link CookieJar}
|
|
4
4
|
* that carries `Set-Cookie` across calls, so a login → authenticated-request flow just works.
|
|
5
5
|
*
|
|
6
6
|
* import { testSession } from "@nifrajs/testing"
|
package/dist/zod.d.ts
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
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 this the laboratory reports NO_WITNESS for every zod route and emits
|
|
5
|
+
* only generic type-confusion mutations, and the mock server returns `{}` for zod responses. Wire it in:
|
|
6
|
+
*
|
|
7
|
+
* import { zodJsonSchema } from "@nifrajs/testing/zod"
|
|
8
|
+
* await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
|
|
9
|
+
* // and/or: createMockServer(app, { reflectJsonSchema: zodJsonSchema })
|
|
10
|
+
*
|
|
11
|
+
* zod is an OPTIONAL peer: this module is only reachable through the `./zod` subpath, so a non-zod project
|
|
12
|
+
* never loads zod. Requires the `z.toJSONSchema` era (zod 4; verified against 4.4.3).
|
|
13
|
+
*/
|
|
14
|
+
import type { JsonSchema } from "@nifrajs/core/reflection";
|
|
15
|
+
/**
|
|
16
|
+
* Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
|
|
17
|
+
* value is not a convertible zod schema. Options chosen for this consumer:
|
|
18
|
+
* - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
|
|
19
|
+
* - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
|
|
20
|
+
* - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
|
|
21
|
+
*
|
|
22
|
+
* Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
|
|
23
|
+
* (NO_WITNESS / `{}`), exactly as before this bridge existed.
|
|
24
|
+
*/
|
|
25
|
+
export declare function zodJsonSchema(schema: unknown): JsonSchema | undefined;
|
|
26
|
+
//# sourceMappingURL=zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;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
|
package/dist/zod.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../src/zod.ts"],"names":[],"mappings":"AAcA,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
|
+
"version": "2.4.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.
|
|
41
|
-
"@nifrajs/core": "2.
|
|
42
|
-
"@nifrajs/mock": "2.
|
|
45
|
+
"@nifrajs/client": "2.4.0",
|
|
46
|
+
"@nifrajs/core": "2.4.0",
|
|
47
|
+
"@nifrajs/mock": "2.4.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"
|
package/src/adversarial.ts
CHANGED
|
@@ -98,6 +98,14 @@ 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
|
+
readonly reflectJsonSchema?: (schema: unknown) => JsonSchema | undefined
|
|
101
109
|
}
|
|
102
110
|
|
|
103
111
|
export type ContractCoverageGapCode =
|
|
@@ -149,6 +157,8 @@ export interface AdversarialContractReport {
|
|
|
149
157
|
readonly results: readonly AdversarialContractResult[]
|
|
150
158
|
readonly failures: readonly AdversarialContractResult[]
|
|
151
159
|
readonly gaps: readonly ContractCoverageGap[]
|
|
160
|
+
/** Non-fatal notes about coverage that is legitimately absent (does not affect `ok`). */
|
|
161
|
+
readonly advisories: readonly string[]
|
|
152
162
|
readonly counts: {
|
|
153
163
|
readonly passed: number
|
|
154
164
|
readonly failed: number
|
|
@@ -163,7 +173,7 @@ export class AdversarialContractError extends Error {
|
|
|
163
173
|
.slice(0, 5)
|
|
164
174
|
.map(
|
|
165
175
|
(failure) =>
|
|
166
|
-
`${failure.runtime}: ${failure.id}
|
|
176
|
+
`${failure.runtime}: ${failure.id} - ${failure.message} (replay seed ${report.seed})`,
|
|
167
177
|
),
|
|
168
178
|
...report.gaps
|
|
169
179
|
.slice(0, 5)
|
|
@@ -491,6 +501,29 @@ const queryInput = (value: unknown): unknown | undefined => {
|
|
|
491
501
|
return result
|
|
492
502
|
}
|
|
493
503
|
|
|
504
|
+
/** Return a reflection with `jsonSchema` backfilled from `reflect(standard)` when it is otherwise absent.
|
|
505
|
+
* No-op when the reflection already has a JSON Schema, has no validator, or no hook is supplied. A hook
|
|
506
|
+
* that throws is swallowed - the schema stays opaque, exactly as before the hook existed. This is what
|
|
507
|
+
* lets an opaque validator (zod/valibot) get witness synthesis + constraint-driven mutations. */
|
|
508
|
+
const withReflectedJsonSchema = (
|
|
509
|
+
reflection: SchemaReflection,
|
|
510
|
+
reflect: AdversarialContractOptions["reflectJsonSchema"],
|
|
511
|
+
): SchemaReflection => {
|
|
512
|
+
if (
|
|
513
|
+
reflect === undefined ||
|
|
514
|
+
reflection.jsonSchema !== undefined ||
|
|
515
|
+
reflection.standard === undefined
|
|
516
|
+
) {
|
|
517
|
+
return reflection
|
|
518
|
+
}
|
|
519
|
+
try {
|
|
520
|
+
const jsonSchema = reflect(reflection.standard)
|
|
521
|
+
return jsonSchema === undefined ? reflection : { ...reflection, jsonSchema }
|
|
522
|
+
} catch {
|
|
523
|
+
return reflection
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
|
|
494
527
|
async function resolveInput(
|
|
495
528
|
routeKey: string,
|
|
496
529
|
target: InputTarget,
|
|
@@ -802,7 +835,7 @@ async function buildLaboratories(
|
|
|
802
835
|
const resolved = await resolveInput(
|
|
803
836
|
routeKey,
|
|
804
837
|
"body",
|
|
805
|
-
route.schema.body,
|
|
838
|
+
withReflectedJsonSchema(route.schema.body, options.reflectJsonSchema),
|
|
806
839
|
witness,
|
|
807
840
|
seed,
|
|
808
841
|
maxWitnessBytes,
|
|
@@ -816,7 +849,7 @@ async function buildLaboratories(
|
|
|
816
849
|
const resolved = await resolveInput(
|
|
817
850
|
routeKey,
|
|
818
851
|
"query",
|
|
819
|
-
route.schema.query,
|
|
852
|
+
withReflectedJsonSchema(route.schema.query, options.reflectJsonSchema),
|
|
820
853
|
witness,
|
|
821
854
|
seed,
|
|
822
855
|
maxWitnessBytes,
|
|
@@ -1102,6 +1135,21 @@ export async function runAdversarialContract(
|
|
|
1102
1135
|
(gap) =>
|
|
1103
1136
|
gap.code === "NO_RUNTIME" || gap.code === "INVALID_RUNTIME" || gap.code === "CASE_NOT_FOUND",
|
|
1104
1137
|
)
|
|
1138
|
+
// Non-fatal: surface the silent-zero-coverage trap. Response conformance needs a DECLARED `response`
|
|
1139
|
+
// schema; a response type inferred from the handler return is a client-side contract the laboratory
|
|
1140
|
+
// cannot see. Left as an advisory (not a gap) so an inference-only app's suite stays green.
|
|
1141
|
+
const advisories: string[] = []
|
|
1142
|
+
if (
|
|
1143
|
+
options.validateResponses !== false &&
|
|
1144
|
+
routes.length > 0 &&
|
|
1145
|
+
!laboratories.some((laboratory) => laboratory.route.schema?.response !== undefined)
|
|
1146
|
+
) {
|
|
1147
|
+
advisories.push(
|
|
1148
|
+
"validateResponses is on, but no selected route declares a `response` schema, so response " +
|
|
1149
|
+
"conformance checked 0 targets. Response types inferred from a handler's return are a client-side " +
|
|
1150
|
+
"contract only - declare `response:` on the routes you want the laboratory to verify.",
|
|
1151
|
+
)
|
|
1152
|
+
}
|
|
1105
1153
|
return {
|
|
1106
1154
|
ok: failures.length === 0 && !fatalGap && (!coverageRequired || gaps.length === 0),
|
|
1107
1155
|
seed,
|
|
@@ -1111,6 +1159,7 @@ export async function runAdversarialContract(
|
|
|
1111
1159
|
results,
|
|
1112
1160
|
failures,
|
|
1113
1161
|
gaps,
|
|
1162
|
+
advisories,
|
|
1114
1163
|
counts: {
|
|
1115
1164
|
passed: results.length - failures.length,
|
|
1116
1165
|
failed: failures.length,
|
package/src/cookies.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* A tiny cookie jar for in-process tests
|
|
2
|
+
* A tiny cookie jar for in-process tests - parses `Set-Cookie` off responses and emits a `Cookie`
|
|
3
3
|
* request header, so a login → authenticated-request flow works without threading headers by hand. It
|
|
4
4
|
* honours removal (`Max-Age=0` / a past `Expires`) so logout clears the cookie; other attributes
|
|
5
|
-
* (Domain/Path/Secure/SameSite) are ignored
|
|
5
|
+
* (Domain/Path/Secure/SameSite) are ignored - everything is same-origin in-process.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
export interface CookieJar {
|
package/src/incident.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Turn a failed request into a committed regression test
|
|
2
|
+
* Turn a failed request into a committed regression test - the one thing a generic error tracker
|
|
3
3
|
* (Sentry, PostHog) can't do, because it needs the framework's contract + in-process replay. Capture
|
|
4
4
|
* the request + observed response, replay it against the CURRENT app, and assert the response contract
|
|
5
5
|
* (status, optionally shape) still reproduces. This does NOT replace error tracking or store incidents
|
|
6
|
-
*
|
|
6
|
+
* - it converts one into a permanent test.
|
|
7
7
|
*
|
|
8
8
|
* Two surfaces, deliberately separate on the PII axis:
|
|
9
|
-
* - `replayIncident` / `assertIncidentReplays` run in memory against the REAL captured inputs
|
|
9
|
+
* - `replayIncident` / `assertIncidentReplays` run in memory against the REAL captured inputs - nothing
|
|
10
10
|
* is written, so reproduction is exact and there is no leak surface.
|
|
11
11
|
* - `generateRegressionTest` emits a file you commit, so it redacts request values BY DEFAULT and
|
|
12
12
|
* bannered a sanitize step: a committed fixture must never carry raw PII/secrets.
|
|
@@ -234,7 +234,7 @@ const REDACTED = "<redacted>"
|
|
|
234
234
|
|
|
235
235
|
/**
|
|
236
236
|
* Redact leaf string values by default (unless the dotted key path is allow-listed). Non-strings are
|
|
237
|
-
* kept
|
|
237
|
+
* kept - they carry the structure that makes the fixture reproduce - so review the emitted file. This
|
|
238
238
|
* is intentionally aggressive: a committed fixture must not leak PII/secrets.
|
|
239
239
|
*/
|
|
240
240
|
export function redactForEmission(value: unknown, allow: ReadonlySet<string>, path = ""): unknown {
|
|
@@ -264,7 +264,7 @@ export interface GenerateRegressionTestOptions {
|
|
|
264
264
|
|
|
265
265
|
/**
|
|
266
266
|
* Emit a committable regression test from a capsule. Request string values are redacted BY DEFAULT with
|
|
267
|
-
* a sanitize banner
|
|
267
|
+
* a sanitize banner - replace the `<redacted>` placeholders with safe, reproducing values before you
|
|
268
268
|
* commit. The test asserts the response contract via {@link assertIncidentReplays}.
|
|
269
269
|
*/
|
|
270
270
|
export function generateRegressionTest(
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @nifrajs/testing
|
|
2
|
+
* @nifrajs/testing - helpers for testing nifra apps in-process. `@nifrajs/client`'s `testClient` is the
|
|
3
3
|
* typed, no-network request client (the supertest/inject equivalent); this adds what it doesn't: a
|
|
4
4
|
* {@link cookieJar} and a cookie-persisting {@link testSession}, so stateful auth/session flows are as
|
|
5
5
|
* easy to test as a single request.
|
package/src/session.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* A stateful, cookie-aware in-process test client. `@nifrajs/client`'s `testClient` already drives an
|
|
3
|
-
* app's `fetch` with end-to-end types (no server/port/network)
|
|
3
|
+
* app's `fetch` with end-to-end types (no server/port/network) - this wraps it with a {@link CookieJar}
|
|
4
4
|
* that carries `Set-Cookie` across calls, so a login → authenticated-request flow just works.
|
|
5
5
|
*
|
|
6
6
|
* import { testSession } from "@nifrajs/testing"
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import { type ClientOptions, client, type FetchFn, type Treaty } from "@nifrajs/client"
|
|
15
15
|
import { type CookieJar, cookieJar } from "./cookies.ts"
|
|
16
16
|
|
|
17
|
-
/** The minimal shape a nifra `server()` app satisfies
|
|
17
|
+
/** The minimal shape a nifra `server()` app satisfies - its own `fetch`. */
|
|
18
18
|
export interface AppLike {
|
|
19
19
|
fetch(request: Request): Response | Promise<Response>
|
|
20
20
|
}
|
|
@@ -27,9 +27,9 @@ export interface TestSessionOptions extends Omit<ClientOptions, "fetch"> {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export interface TestSession<App> {
|
|
30
|
-
/** The end-to-end-typed in-process client
|
|
30
|
+
/** The end-to-end-typed in-process client - every call carries + captures cookies. */
|
|
31
31
|
readonly client: Treaty<App>
|
|
32
|
-
/** The jar backing this session
|
|
32
|
+
/** The jar backing this session - inspect (`cookies.get("sid")`), seed, or `clear()` it. */
|
|
33
33
|
readonly cookies: CookieJar
|
|
34
34
|
}
|
|
35
35
|
|
package/src/zod.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
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 this the laboratory reports NO_WITNESS for every zod route and emits
|
|
5
|
+
* only generic type-confusion mutations, and the mock server returns `{}` for zod responses. Wire it in:
|
|
6
|
+
*
|
|
7
|
+
* import { zodJsonSchema } from "@nifrajs/testing/zod"
|
|
8
|
+
* await assertAdversarialContract(app, { reflectJsonSchema: zodJsonSchema })
|
|
9
|
+
* // and/or: createMockServer(app, { reflectJsonSchema: zodJsonSchema })
|
|
10
|
+
*
|
|
11
|
+
* zod is an OPTIONAL peer: this module is only reachable through the `./zod` subpath, so a non-zod project
|
|
12
|
+
* never loads zod. Requires the `z.toJSONSchema` era (zod 4; verified against 4.4.3).
|
|
13
|
+
*/
|
|
14
|
+
import type { JsonSchema } from "@nifrajs/core/reflection"
|
|
15
|
+
import * as z from "zod"
|
|
16
|
+
|
|
17
|
+
// Accessed defensively so a zod build without `toJSONSchema` degrades to today's behavior rather than
|
|
18
|
+
// crashing at import. Present since zod 4.
|
|
19
|
+
const toJSONSchema = (z as { toJSONSchema?: (schema: unknown, options?: unknown) => unknown })
|
|
20
|
+
.toJSONSchema
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Convert a zod schema to a JSON Schema the mock/mutation generators understand, or `undefined` when the
|
|
24
|
+
* value is not a convertible zod schema. Options chosen for this consumer:
|
|
25
|
+
* - target "draft-7" → the keyword set `@nifrajs/mock` + the laboratory's `candidateMutations` read
|
|
26
|
+
* - io "input" → the request-side constraints a hostile payload must violate (pre-transform)
|
|
27
|
+
* - reused "inline" → no `$ref`/`$defs`; the mock generator fails closed on `$ref`
|
|
28
|
+
*
|
|
29
|
+
* Fail-safe: a non-zod value, or an unconvertible schema, returns `undefined` → the schema stays opaque
|
|
30
|
+
* (NO_WITNESS / `{}`), exactly as before this bridge existed.
|
|
31
|
+
*/
|
|
32
|
+
export function zodJsonSchema(schema: unknown): JsonSchema | undefined {
|
|
33
|
+
if (typeof toJSONSchema !== "function") return undefined
|
|
34
|
+
try {
|
|
35
|
+
const json = toJSONSchema(schema, { target: "draft-7", io: "input", reused: "inline" })
|
|
36
|
+
return json === null || json === undefined ? undefined : (json as JsonSchema)
|
|
37
|
+
} catch {
|
|
38
|
+
return undefined
|
|
39
|
+
}
|
|
40
|
+
}
|