@lovrozagar/oat 0.10.0 → 0.11.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 +25 -2006
- package/dist/cli.js +283 -59
- package/dist/config/define-config.d.ts +8 -0
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js.map +1 -1
- package/dist/config/validate.d.ts +12 -0
- package/dist/config/validate.d.ts.map +1 -0
- package/dist/config/validate.js +86 -0
- package/dist/config/validate.js.map +1 -0
- package/dist/conformance/effects.d.ts +9 -0
- package/dist/conformance/effects.d.ts.map +1 -0
- package/dist/conformance/effects.js +276 -0
- package/dist/conformance/effects.js.map +1 -0
- package/dist/conformance/expected-failures.d.ts +18 -0
- package/dist/conformance/expected-failures.d.ts.map +1 -0
- package/dist/conformance/expected-failures.js +48 -0
- package/dist/conformance/expected-failures.js.map +1 -0
- package/dist/conformance/feature-gate.d.ts +7 -0
- package/dist/conformance/feature-gate.d.ts.map +1 -0
- package/dist/conformance/feature-gate.js +428 -0
- package/dist/conformance/feature-gate.js.map +1 -0
- package/dist/conformance/fuzz.d.ts +108 -0
- package/dist/conformance/fuzz.d.ts.map +1 -0
- package/dist/conformance/fuzz.js +246 -0
- package/dist/conformance/fuzz.js.map +1 -0
- package/dist/conformance/leaks.d.ts +10 -0
- package/dist/conformance/leaks.d.ts.map +1 -0
- package/dist/conformance/leaks.js +23 -0
- package/dist/conformance/leaks.js.map +1 -0
- package/dist/conformance/pool.d.ts +49 -0
- package/dist/conformance/pool.d.ts.map +1 -0
- package/dist/conformance/pool.js +75 -0
- package/dist/conformance/pool.js.map +1 -0
- package/dist/conformance/rate-limit.d.ts +7 -0
- package/dist/conformance/rate-limit.d.ts.map +1 -0
- package/dist/conformance/rate-limit.js +372 -0
- package/dist/conformance/rate-limit.js.map +1 -0
- package/dist/conformance/scope.d.ts +15 -0
- package/dist/conformance/scope.d.ts.map +1 -0
- package/dist/conformance/scope.js +78 -0
- package/dist/conformance/scope.js.map +1 -0
- package/dist/conformance/seed-contract.d.ts +11 -0
- package/dist/conformance/seed-contract.d.ts.map +1 -0
- package/dist/conformance/seed-contract.js +680 -0
- package/dist/conformance/seed-contract.js.map +1 -0
- package/dist/conformance/shapes.d.ts +35 -0
- package/dist/conformance/shapes.d.ts.map +1 -0
- package/dist/conformance/shapes.js +162 -0
- package/dist/conformance/shapes.js.map +1 -0
- package/dist/conformance/specs.d.ts +21 -0
- package/dist/conformance/specs.d.ts.map +1 -0
- package/dist/conformance/specs.js +306 -0
- package/dist/conformance/specs.js.map +1 -0
- package/dist/conformance/suite.d.ts +209 -0
- package/dist/conformance/suite.d.ts.map +1 -0
- package/dist/conformance/suite.js +1538 -0
- package/dist/conformance/suite.js.map +1 -0
- package/dist/conformance/unique.d.ts +7 -0
- package/dist/conformance/unique.d.ts.map +1 -0
- package/dist/conformance/unique.js +586 -0
- package/dist/conformance/unique.js.map +1 -0
- package/dist/conformance/worker.d.ts +3 -0
- package/dist/conformance/worker.d.ts.map +1 -0
- package/dist/conformance/worker.js +27 -0
- package/dist/conformance/worker.js.map +1 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.js +5 -2
- package/dist/reference/defects.d.ts +71 -1
- package/dist/reference/defects.d.ts.map +1 -1
- package/dist/reference/defects.js +74 -8
- package/dist/reference/defects.js.map +1 -1
- package/dist/reference/dialect.d.ts +6 -4
- package/dist/reference/dialect.d.ts.map +1 -1
- package/dist/reference/dialect.js +1 -0
- package/dist/reference/dialect.js.map +1 -1
- package/dist/reference/http.d.ts +17 -25
- package/dist/reference/http.d.ts.map +1 -1
- package/dist/reference/http.js +574 -224
- package/dist/reference/http.js.map +1 -1
- package/dist/reference/listing.d.ts +51 -0
- package/dist/reference/listing.d.ts.map +1 -0
- package/dist/reference/listing.js +256 -0
- package/dist/reference/listing.js.map +1 -0
- package/dist/reference/model.d.ts +35 -1
- package/dist/reference/model.d.ts.map +1 -1
- package/dist/reference/model.js +42 -0
- package/dist/reference/model.js.map +1 -1
- package/dist/reference/query.d.ts +132 -43
- package/dist/reference/query.d.ts.map +1 -1
- package/dist/reference/query.js +397 -315
- package/dist/reference/query.js.map +1 -1
- package/dist/reference/shapes.d.ts +60 -0
- package/dist/reference/shapes.d.ts.map +1 -0
- package/dist/reference/shapes.js +142 -0
- package/dist/reference/shapes.js.map +1 -0
- package/dist/reference/spec.d.ts +9 -2
- package/dist/reference/spec.d.ts.map +1 -1
- package/dist/reference/spec.js +291 -71
- package/dist/reference/spec.js.map +1 -1
- package/dist/reference/store-api.d.ts +14 -43
- package/dist/reference/store-api.d.ts.map +1 -1
- package/dist/reference/store-api.js +8 -58
- package/dist/reference/store-api.js.map +1 -1
- package/dist/reference/stores/memory.d.ts +12 -15
- package/dist/reference/stores/memory.d.ts.map +1 -1
- package/dist/reference/stores/memory.js +22 -70
- package/dist/reference/stores/memory.js.map +1 -1
- package/dist/reference/stores/postgres.d.ts +11 -23
- package/dist/reference/stores/postgres.d.ts.map +1 -1
- package/dist/reference/stores/postgres.js +53 -334
- package/dist/reference/stores/postgres.js.map +1 -1
- package/dist/reference/stores/sql-compile.d.ts +36 -0
- package/dist/reference/stores/sql-compile.d.ts.map +1 -0
- package/dist/reference/stores/sql-compile.js +95 -0
- package/dist/reference/stores/sql-compile.js.map +1 -0
- package/dist/reference/stores/sqlite.d.ts +12 -27
- package/dist/reference/stores/sqlite.d.ts.map +1 -1
- package/dist/reference/stores/sqlite.js +54 -355
- package/dist/reference/stores/sqlite.js.map +1 -1
- package/dist/report/console.d.ts.map +1 -1
- package/dist/report/console.js +23 -9
- package/dist/report/console.js.map +1 -1
- package/dist/report/matrix.d.ts +2 -0
- package/dist/report/matrix.d.ts.map +1 -1
- package/dist/report/matrix.js +63 -10
- package/dist/report/matrix.js.map +1 -1
- package/dist/report/render.d.ts +10 -1
- package/dist/report/render.d.ts.map +1 -1
- package/dist/report/render.js +75 -13
- package/dist/report/render.js.map +1 -1
- package/dist/runtime/async.d.ts +16 -3
- package/dist/runtime/async.d.ts.map +1 -1
- package/dist/runtime/async.js +24 -19
- package/dist/runtime/async.js.map +1 -1
- package/dist/runtime/auth.d.ts +2 -9
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +38 -62
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/body.d.ts +15 -3
- package/dist/runtime/body.d.ts.map +1 -1
- package/dist/runtime/body.js +61 -12
- package/dist/runtime/body.js.map +1 -1
- package/dist/runtime/check-costs.d.ts +15 -0
- package/dist/runtime/check-costs.d.ts.map +1 -0
- package/dist/runtime/check-costs.js +114 -0
- package/dist/runtime/check-costs.js.map +1 -0
- package/dist/runtime/check-ids.d.ts +15 -0
- package/dist/runtime/check-ids.d.ts.map +1 -0
- package/dist/runtime/check-ids.js +140 -0
- package/dist/runtime/check-ids.js.map +1 -0
- package/dist/runtime/checks.d.ts +83 -20
- package/dist/runtime/checks.d.ts.map +1 -1
- package/dist/runtime/checks.js +3285 -1947
- package/dist/runtime/checks.js.map +1 -1
- package/dist/runtime/client.d.ts +112 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +271 -39
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/cookies.d.ts +16 -2
- package/dist/runtime/cookies.d.ts.map +1 -1
- package/dist/runtime/cookies.js +83 -22
- package/dist/runtime/cookies.js.map +1 -1
- package/dist/runtime/exchanges.d.ts +4 -5
- package/dist/runtime/exchanges.d.ts.map +1 -1
- package/dist/runtime/exchanges.js +33 -55
- package/dist/runtime/exchanges.js.map +1 -1
- package/dist/runtime/exit.d.ts +40 -0
- package/dist/runtime/exit.d.ts.map +1 -0
- package/dist/runtime/exit.js +48 -0
- package/dist/runtime/exit.js.map +1 -0
- package/dist/runtime/feature-gate.d.ts +0 -9
- package/dist/runtime/feature-gate.d.ts.map +1 -1
- package/dist/runtime/feature-gate.js +0 -21
- package/dist/runtime/feature-gate.js.map +1 -1
- package/dist/runtime/finding.d.ts +49 -8
- package/dist/runtime/finding.d.ts.map +1 -1
- package/dist/runtime/finding.js +51 -8
- package/dist/runtime/finding.js.map +1 -1
- package/dist/runtime/fixture.d.ts +35 -28
- package/dist/runtime/fixture.d.ts.map +1 -1
- package/dist/runtime/fixture.js +92 -731
- package/dist/runtime/fixture.js.map +1 -1
- package/dist/runtime/generate.d.ts +63 -0
- package/dist/runtime/generate.d.ts.map +1 -0
- package/dist/runtime/generate.js +635 -0
- package/dist/runtime/generate.js.map +1 -0
- package/dist/runtime/headers.d.ts +6 -0
- package/dist/runtime/headers.d.ts.map +1 -0
- package/dist/runtime/headers.js +16 -0
- package/dist/runtime/headers.js.map +1 -0
- package/dist/runtime/path.d.ts +7 -0
- package/dist/runtime/path.d.ts.map +1 -0
- package/dist/runtime/path.js +44 -0
- package/dist/runtime/path.js.map +1 -0
- package/dist/runtime/payloads.d.ts +2 -0
- package/dist/runtime/payloads.d.ts.map +1 -1
- package/dist/runtime/payloads.js +2 -1
- package/dist/runtime/payloads.js.map +1 -1
- package/dist/runtime/rate-limit.d.ts +6 -4
- package/dist/runtime/rate-limit.d.ts.map +1 -1
- package/dist/runtime/rate-limit.js +22 -33
- package/dist/runtime/rate-limit.js.map +1 -1
- package/dist/runtime/redact.d.ts +24 -0
- package/dist/runtime/redact.d.ts.map +1 -0
- package/dist/runtime/redact.js +98 -0
- package/dist/runtime/redact.js.map +1 -0
- package/dist/runtime/run.d.ts +34 -2
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +346 -138
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runs.d.ts +5 -0
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +7 -1
- package/dist/runtime/runs.js.map +1 -1
- package/dist/runtime/teardown.d.ts +17 -4
- package/dist/runtime/teardown.d.ts.map +1 -1
- package/dist/runtime/teardown.js +49 -16
- package/dist/runtime/teardown.js.map +1 -1
- package/dist/runtime/transcript.d.ts +34 -2
- package/dist/runtime/transcript.d.ts.map +1 -1
- package/dist/runtime/transcript.js +119 -24
- package/dist/runtime/transcript.js.map +1 -1
- package/dist/runtime/unique.d.ts +2 -11
- package/dist/runtime/unique.d.ts.map +1 -1
- package/dist/runtime/unique.js +27 -53
- package/dist/runtime/unique.js.map +1 -1
- package/dist/runtime/validate.d.ts +13 -2
- package/dist/runtime/validate.d.ts.map +1 -1
- package/dist/runtime/validate.js +51 -31
- package/dist/runtime/validate.js.map +1 -1
- package/dist/runtime/wait.d.ts +2 -1
- package/dist/runtime/wait.d.ts.map +1 -1
- package/dist/runtime/wait.js +2 -36
- package/dist/runtime/wait.js.map +1 -1
- package/dist/runtime/world.d.ts +24 -1
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +101 -26
- package/dist/runtime/world.js.map +1 -1
- package/dist/spec/collection.d.ts +8 -2
- package/dist/spec/collection.d.ts.map +1 -1
- package/dist/spec/collection.js +47 -7
- package/dist/spec/collection.js.map +1 -1
- package/dist/spec/extensions.d.ts +5 -1
- package/dist/spec/extensions.d.ts.map +1 -1
- package/dist/spec/extensions.js +9 -2
- package/dist/spec/extensions.js.map +1 -1
- package/dist/spec/graph.d.ts +46 -0
- package/dist/spec/graph.d.ts.map +1 -1
- package/dist/spec/graph.js +175 -11
- package/dist/spec/graph.js.map +1 -1
- package/dist/spec/load.d.ts +25 -5
- package/dist/spec/load.d.ts.map +1 -1
- package/dist/spec/load.js +160 -59
- package/dist/spec/load.js.map +1 -1
- package/dist/spec/query-capabilities.d.ts +4 -0
- package/dist/spec/query-capabilities.d.ts.map +1 -1
- package/dist/spec/query-capabilities.js +6 -0
- package/dist/spec/query-capabilities.js.map +1 -1
- package/dist/spec/schema.d.ts +20 -0
- package/dist/spec/schema.d.ts.map +1 -0
- package/dist/spec/schema.js +118 -0
- package/dist/spec/schema.js.map +1 -0
- package/dist/spec/tag-schema.d.ts +12 -0
- package/dist/spec/tag-schema.d.ts.map +1 -0
- package/dist/spec/tag-schema.js +143 -0
- package/dist/spec/tag-schema.js.map +1 -0
- package/dist/spec/types.js +17 -1
- package/dist/spec/types.js.map +1 -1
- package/docs/api.md +59 -0
- package/docs/assumptions.md +99 -0
- package/docs/checks.md +183 -0
- package/docs/commands.md +214 -0
- package/docs/configuration.md +650 -0
- package/docs/model.md +184 -0
- package/docs/reference-defects.md +94 -0
- package/docs/reports.md +211 -0
- package/docs/tags.md +400 -0
- package/package.json +3 -1
package/dist/runtime/validate.js
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import ajvModule from "ajv/dist/2020.js";
|
|
9
9
|
import formatsModule from "ajv-formats";
|
|
10
|
+
import { DEFS_ID } from "../spec/load.js";
|
|
11
|
+
import { normalizeSchema } from "../spec/schema.js";
|
|
10
12
|
const OK = { errors: [], ok: true };
|
|
11
13
|
/* Both packages ship CJS with an interop default, so the callable lives on `.default` under
|
|
12
14
|
* NodeNext resolution — but only at runtime, hence the cast. */
|
|
@@ -15,7 +17,8 @@ const addFormats = (formatsModule.default ?? formatsModule);
|
|
|
15
17
|
export class SchemaValidator {
|
|
16
18
|
ajv;
|
|
17
19
|
cache = new Map();
|
|
18
|
-
|
|
20
|
+
/** `defs`: the recursive schemas a dereferenced document refers to (see `dereference`). */
|
|
21
|
+
constructor(defs = {}) {
|
|
19
22
|
this.ajv = new Ajv2020({
|
|
20
23
|
allErrors: true,
|
|
21
24
|
/* Specs in the wild carry annotations AJV does not know; refusing to compile over a
|
|
@@ -24,6 +27,12 @@ export class SchemaValidator {
|
|
|
24
27
|
validateFormats: true,
|
|
25
28
|
});
|
|
26
29
|
addFormats(this.ajv);
|
|
30
|
+
/* Recursive schemas are referenced as `oat-defs#/$defs/<name>`, so they are registered
|
|
31
|
+
* once under that id and every compiled schema can reach them. */
|
|
32
|
+
const $defs = {};
|
|
33
|
+
for (const [name, def] of Object.entries(defs))
|
|
34
|
+
$defs[name] = normalizeSchema(def, { direction: "response" });
|
|
35
|
+
this.ajv.addSchema({ $defs, $id: DEFS_ID });
|
|
27
36
|
}
|
|
28
37
|
/** Compiles the schema documented for this operation and status, if there is one. */
|
|
29
38
|
compile(op, key, status) {
|
|
@@ -36,21 +45,24 @@ export class SchemaValidator {
|
|
|
36
45
|
return null;
|
|
37
46
|
}
|
|
38
47
|
try {
|
|
39
|
-
const validate = this.ajv.compile(
|
|
48
|
+
const validate = this.ajv.compile(normalizeSchema(schema, { direction: "response" }));
|
|
40
49
|
this.cache.set(key, validate);
|
|
41
50
|
return validate;
|
|
42
51
|
}
|
|
43
|
-
catch {
|
|
52
|
+
catch (error) {
|
|
44
53
|
/* An uncompilable schema is a spec defect, surfaced by the caller as a gap rather than
|
|
45
|
-
* crashing the run. */
|
|
46
|
-
|
|
47
|
-
|
|
54
|
+
* crashing the run — and never as a pass. */
|
|
55
|
+
const failed = { failed: error instanceof Error ? error.message : String(error) };
|
|
56
|
+
this.cache.set(key, failed);
|
|
57
|
+
return failed;
|
|
48
58
|
}
|
|
49
59
|
}
|
|
50
60
|
validate(operationId, op, status, body) {
|
|
51
61
|
const validate = this.compile(op, `${operationId}:${status}`, status);
|
|
52
62
|
if (validate === null)
|
|
53
63
|
return OK;
|
|
64
|
+
if ("failed" in validate)
|
|
65
|
+
return { errors: [], ok: true, unchecked: validate.failed };
|
|
54
66
|
if (validate(body) === true)
|
|
55
67
|
return OK;
|
|
56
68
|
const errors = (validate.errors ?? []).map((error) => {
|
|
@@ -78,34 +90,42 @@ function schemaFor(op, status) {
|
|
|
78
90
|
}
|
|
79
91
|
return null;
|
|
80
92
|
}
|
|
93
|
+
/* One AJV per set of definitions: each registers them under `oat-defs`, as the document names them. */
|
|
94
|
+
const instanceAjvs = new WeakMap();
|
|
95
|
+
const NO_DEFS = {};
|
|
96
|
+
const instanceCache = new WeakMap();
|
|
97
|
+
function ajvFor(defs) {
|
|
98
|
+
const existing = instanceAjvs.get(defs);
|
|
99
|
+
if (existing !== undefined)
|
|
100
|
+
return existing;
|
|
101
|
+
const ajv = new Ajv2020({ allErrors: true, strict: false, validateFormats: true });
|
|
102
|
+
addFormats(ajv);
|
|
103
|
+
const $defs = {};
|
|
104
|
+
for (const [name, def] of Object.entries(defs))
|
|
105
|
+
$defs[name] = normalizeSchema(def, { direction: "request" });
|
|
106
|
+
ajv.addSchema({ $defs, $id: DEFS_ID });
|
|
107
|
+
instanceAjvs.set(defs, ajv);
|
|
108
|
+
return ajv;
|
|
109
|
+
}
|
|
81
110
|
/**
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
* keys that collide with the `examples` keyword in draft 2020-12.
|
|
111
|
+
* Whether `value` satisfies an already-normalized `schema` — the self-check every generated body
|
|
112
|
+
* passes before it is sent. Returns AJV's complaints, or `[]`.
|
|
85
113
|
*/
|
|
86
|
-
function
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return node;
|
|
92
|
-
const out = {};
|
|
93
|
-
for (const [key, value] of Object.entries(node)) {
|
|
94
|
-
if (key === "nullable")
|
|
95
|
-
continue;
|
|
96
|
-
if (key === "example")
|
|
97
|
-
continue;
|
|
98
|
-
if (key === "discriminator")
|
|
99
|
-
continue;
|
|
100
|
-
out[key] = walk(value);
|
|
114
|
+
export function instanceErrors(schema, value, defs = NO_DEFS) {
|
|
115
|
+
let compiled = instanceCache.get(schema);
|
|
116
|
+
if (compiled === undefined) {
|
|
117
|
+
try {
|
|
118
|
+
compiled = ajvFor(defs).compile(schema);
|
|
101
119
|
}
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
if (original.nullable === true && typeof original.type === "string") {
|
|
105
|
-
out.type = [original.type, "null"];
|
|
120
|
+
catch (error) {
|
|
121
|
+
compiled = { failed: error instanceof Error ? error.message : String(error) };
|
|
106
122
|
}
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
123
|
+
instanceCache.set(schema, compiled);
|
|
124
|
+
}
|
|
125
|
+
if ("failed" in compiled)
|
|
126
|
+
return [`schema cannot be compiled: ${compiled.failed}`];
|
|
127
|
+
if (compiled(value) === true)
|
|
128
|
+
return [];
|
|
129
|
+
return (compiled.errors ?? []).map((error) => `${error.instancePath || "(root)"} ${error.message ?? "is invalid"}`);
|
|
110
130
|
}
|
|
111
131
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/runtime/validate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,SAAS,MAAM,kBAAkB,CAAA;AACxC,OAAO,aAAa,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/runtime/validate.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/wait.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { Hooks } from "../config/define-config.ts";
|
|
|
8
8
|
import type { WaitSpec } from "../spec/extensions.ts";
|
|
9
9
|
import type { OperationModel } from "../spec/graph.ts";
|
|
10
10
|
import type { Client, Exchange } from "./client.ts";
|
|
11
|
-
|
|
11
|
+
import { readPath as readPointer } from "./path.ts";
|
|
12
12
|
/** Present enough to stop polling: not null, not "", not []. */
|
|
13
13
|
export declare function pointerIsOccupied(value: unknown): boolean;
|
|
14
14
|
export interface WaitOutcome {
|
|
@@ -29,4 +29,5 @@ export declare function driveWait(options: {
|
|
|
29
29
|
awaitSideEffect?: Hooks["awaitSideEffect"];
|
|
30
30
|
refreshIfStale?: (force?: boolean) => Promise<void>;
|
|
31
31
|
}): Promise<WaitOutcome>;
|
|
32
|
+
export { readPointer };
|
|
32
33
|
//# sourceMappingURL=wait.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/runtime/wait.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/runtime/wait.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,QAAQ,IAAI,WAAW,EAAE,MAAM,WAAW,CAAA;AAInD,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAIzD;AAED,MAAM,WAAW,WAAW;IAC3B,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,OAAO,CAAA;CAChB;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,cAAc,CAAA;IACtB,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,eAAe,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC1C,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CACnD,GAAG,OAAO,CAAC,WAAW,CAAC,CAuEvB;AAED,OAAO,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/runtime/wait.js
CHANGED
|
@@ -4,44 +4,9 @@
|
|
|
4
4
|
* Queue consumers and webhook inboxes are not the same request. Timeout is a finding, not a
|
|
5
5
|
* coverage gap — the document claimed the side effect would appear.
|
|
6
6
|
*/
|
|
7
|
+
import { readPath as readPointer } from "./path.js";
|
|
7
8
|
import { sleep } from "./poll.js";
|
|
8
9
|
import { fillPath } from "./world.js";
|
|
9
|
-
export function readPointer(body, pointer) {
|
|
10
|
-
if (pointer.startsWith("/"))
|
|
11
|
-
return readJsonPointer(body, pointer);
|
|
12
|
-
let node = body;
|
|
13
|
-
for (const segment of pointer
|
|
14
|
-
.replace(/^\$\.?/, "")
|
|
15
|
-
.split(".")
|
|
16
|
-
.filter(Boolean)) {
|
|
17
|
-
if (node === null || typeof node !== "object")
|
|
18
|
-
return undefined;
|
|
19
|
-
const index = Number.parseInt(segment, 10);
|
|
20
|
-
node = Array.isArray(node)
|
|
21
|
-
? Number.isNaN(index)
|
|
22
|
-
? undefined
|
|
23
|
-
: node[index]
|
|
24
|
-
: node[segment];
|
|
25
|
-
}
|
|
26
|
-
return node;
|
|
27
|
-
}
|
|
28
|
-
function readJsonPointer(body, pointer) {
|
|
29
|
-
if (pointer === "/")
|
|
30
|
-
return body;
|
|
31
|
-
let node = body;
|
|
32
|
-
for (const raw of pointer.slice(1).split("/")) {
|
|
33
|
-
const segment = raw.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
34
|
-
if (node === null || typeof node !== "object")
|
|
35
|
-
return undefined;
|
|
36
|
-
const index = Number.parseInt(segment, 10);
|
|
37
|
-
node = Array.isArray(node)
|
|
38
|
-
? Number.isNaN(index)
|
|
39
|
-
? undefined
|
|
40
|
-
: node[index]
|
|
41
|
-
: node[segment];
|
|
42
|
-
}
|
|
43
|
-
return node;
|
|
44
|
-
}
|
|
45
10
|
/** Present enough to stop polling: not null, not "", not []. */
|
|
46
11
|
export function pointerIsOccupied(value) {
|
|
47
12
|
if (value === undefined || value === null || value === "")
|
|
@@ -122,4 +87,5 @@ export async function driveWait(options) {
|
|
|
122
87
|
timedOut: true,
|
|
123
88
|
};
|
|
124
89
|
}
|
|
90
|
+
export { readPointer };
|
|
125
91
|
//# sourceMappingURL=wait.js.map
|
package/dist/runtime/wait.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/runtime/wait.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/runtime/wait.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/world.d.ts
CHANGED
|
@@ -44,13 +44,27 @@ export declare function isPlanLimitResponse(status: number, body: unknown): bool
|
|
|
44
44
|
/** Pulls the collection out of a list body the same way seed fallback and effect checks do. */
|
|
45
45
|
export declare function recordsFromList(body: unknown, collectionKey: string | null): Record_[];
|
|
46
46
|
/** Same-tenant records the list route already returns. Empty when the route cannot be resolved. */
|
|
47
|
-
export declare function listExisting(listOp: OperationModel, client: Client, headers: Record<string, string> | (() => Record<string, string>), values: Record<string, string>): Promise<Record_[]>;
|
|
47
|
+
export declare function listExisting(listOp: OperationModel, model: SpecModel, client: Client, headers: Record<string, string> | (() => Record<string, string>), values: Record<string, string>): Promise<Record_[]>;
|
|
48
48
|
export interface WorldOptions {
|
|
49
49
|
roots: Record<string, string>;
|
|
50
50
|
seed: number;
|
|
51
|
+
/**
|
|
52
|
+
* Per-run token mixed into every value that must not collide with an earlier run's records —
|
|
53
|
+
* unique columns, above all. A seed alone repeats exactly, which is its job.
|
|
54
|
+
*/
|
|
55
|
+
nonce?: string;
|
|
51
56
|
cohortSize?: number;
|
|
52
57
|
authHeaders: () => Record<string, string>;
|
|
53
58
|
uploads?: UploadContext;
|
|
59
|
+
/**
|
|
60
|
+
* Called the moment a record exists, before anything else can fail. A record learned about
|
|
61
|
+
* only after the step that made it returns is dropped whenever a later step throws.
|
|
62
|
+
*/
|
|
63
|
+
onCreate?: (entity: string, id: string, scope: Record<string, string>) => void;
|
|
64
|
+
/** Who is creating — keys the ancestor cache, since one principal's parent is not another's. */
|
|
65
|
+
principal?: string;
|
|
66
|
+
/** Ancestors already made in this run, by principal, operation and parent path. */
|
|
67
|
+
ancestors?: Map<string, string>;
|
|
54
68
|
}
|
|
55
69
|
/**
|
|
56
70
|
* Resolves every path parameter an operation needs. Roots come from config; everything else is
|
|
@@ -85,6 +99,15 @@ export interface SeededCohort {
|
|
|
85
99
|
uniqueAdopted?: boolean;
|
|
86
100
|
/** Set when extra cohort variants were dropped because unique values could not differ. */
|
|
87
101
|
uniqueGap?: string;
|
|
102
|
+
/**
|
|
103
|
+
* Variants after the first whose create failed. The cohort carries on without them, and the
|
|
104
|
+
* run reports each: a 5xx is the backend's failure, a 4xx a variant the document permits and
|
|
105
|
+
* the backend refused.
|
|
106
|
+
*/
|
|
107
|
+
failedVariants?: Array<{
|
|
108
|
+
variant: string;
|
|
109
|
+
exchange: Exchange;
|
|
110
|
+
}>;
|
|
88
111
|
}
|
|
89
112
|
/** Creates the cohort and returns the server's view of each instance. */
|
|
90
113
|
export declare function seedCohort(createOp: OperationModel, model: SpecModel, client: Client, options: WorldOptions, scope: Scope): Promise<SeededCohort>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAKjE,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,KAAK,YAAY,EAA0E,MAAM,cAAc,CAAA;AAGxH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;AAE7C,MAAM,WAAW,KAAK;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,+FAA+F;IAC/F,OAAO,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5D;AAED,qBAAa,SAAU,SAAQ,KAAK;IAElC,QAAQ,CAAC,MAAM,EAAE,MAAM;IAEvB,kFAAkF;IAClF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACxB,kGAAkG;IAClG,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ;gBANnB,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;IACf,kFAAkF;IACzE,MAAM,CAAC,EAAE,MAAM,YAAA;IACxB,kGAAkG;IACzF,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,QAAQ,CAAC,EAAE,QAAQ,YAAA;CAI7B;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAMjF;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAI1E;AAqBD,+FAA+F;AAC/F,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,EAAE,CAOtF;AAED,mGAAmG;AACnG,wBAAsB,YAAY,CACjC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAChE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/world.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* reported as BLOCKED against that single cause.
|
|
8
8
|
*/
|
|
9
9
|
import { requestContent } from "../spec/collection.js";
|
|
10
|
-
import { owningEntityName } from "../spec/graph.js";
|
|
10
|
+
import { largestPageQuery, owningEntityName } from "../spec/graph.js";
|
|
11
11
|
import { encodeForOperation } from "./body.js";
|
|
12
12
|
import { forEachInvocation } from "./upload-each.js";
|
|
13
13
|
import { buildCohort, ensureDistinctUniqueValues, isOverflowError, overflowFrom } from "./fixture.js";
|
|
@@ -82,13 +82,16 @@ export function recordsFromList(body, collectionKey) {
|
|
|
82
82
|
return [];
|
|
83
83
|
}
|
|
84
84
|
/** Same-tenant records the list route already returns. Empty when the route cannot be resolved. */
|
|
85
|
-
export async function listExisting(listOp, client, headers, values) {
|
|
85
|
+
export async function listExisting(listOp, model, client, headers, values) {
|
|
86
86
|
for (const param of listOp.pathParams) {
|
|
87
87
|
if (values[param] === undefined)
|
|
88
88
|
return [];
|
|
89
89
|
}
|
|
90
90
|
try {
|
|
91
|
-
const exchange = await client.get(fillPath(listOp.path, values), {
|
|
91
|
+
const exchange = await client.get(fillPath(listOp.path, values), {
|
|
92
|
+
headers,
|
|
93
|
+
query: largestPageQuery(model, listOp),
|
|
94
|
+
});
|
|
92
95
|
if (exchange.status >= 300)
|
|
93
96
|
return [];
|
|
94
97
|
return recordsFromList(exchange.responseBody, listOp.collection?.key ?? null);
|
|
@@ -122,27 +125,71 @@ export async function resolvePathScope(op, model, client, options, scope = { cre
|
|
|
122
125
|
if (createOp === undefined)
|
|
123
126
|
throw new SeedError(param, `missing operation ${entity.create}`);
|
|
124
127
|
await resolvePathScope(createOp, model, client, options, scope);
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
/* One ancestor per principal and parent path: a row and its siblings share the table oat
|
|
129
|
+
* made for the first of them, instead of each leaving another table behind. */
|
|
130
|
+
const cacheKey = `${options.principal ?? ""}\u0000${createOp.operationId}\u0000${fillPath(createOp.path, scope.values)}`;
|
|
131
|
+
const cached = options.ancestors?.get(cacheKey);
|
|
132
|
+
if (cached !== undefined) {
|
|
133
|
+
scope.values[param] = cached;
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
/* Entities in parallel lanes can reach the same missing ancestor at once; the second
|
|
137
|
+
* waits for the first's create rather than making a twin. */
|
|
138
|
+
const pending = options.ancestors === undefined ? undefined : inflightAncestors(options.ancestors).get(cacheKey);
|
|
139
|
+
if (pending !== undefined) {
|
|
140
|
+
scope.values[param] = await pending;
|
|
141
|
+
continue;
|
|
142
|
+
}
|
|
143
|
+
const creating = (async () => {
|
|
144
|
+
const { record: created, adopted } = await createOne(createOp, model, client, options, scope);
|
|
145
|
+
const identity = entity.identity ?? "id";
|
|
146
|
+
const id = created[identity];
|
|
147
|
+
if (typeof id !== "string" && typeof id !== "number") {
|
|
148
|
+
throw new SeedError(param, `create for "${owner}" returned no usable "${identity}"`);
|
|
149
|
+
}
|
|
150
|
+
/* Adopted, not created: somebody else's record, never oat's to remove. */
|
|
151
|
+
if (!adopted)
|
|
152
|
+
options.onCreate?.(owner, String(id), { ...scope.values });
|
|
153
|
+
options.ancestors?.set(cacheKey, String(id));
|
|
154
|
+
return String(id);
|
|
155
|
+
})();
|
|
156
|
+
if (options.ancestors !== undefined)
|
|
157
|
+
inflightAncestors(options.ancestors).set(cacheKey, creating);
|
|
158
|
+
try {
|
|
159
|
+
scope.values[param] = await creating;
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
if (options.ancestors !== undefined)
|
|
163
|
+
inflightAncestors(options.ancestors).delete(cacheKey);
|
|
130
164
|
}
|
|
131
|
-
scope.values[param] = String(id);
|
|
132
165
|
scope.created.push({
|
|
133
166
|
entity: owner,
|
|
134
|
-
id:
|
|
167
|
+
id: scope.values[param],
|
|
135
168
|
path: fillPath(createOp.path, scope.values),
|
|
136
169
|
});
|
|
137
170
|
}
|
|
138
171
|
return scope;
|
|
139
172
|
}
|
|
173
|
+
/** Ancestor creates under way, per ancestor cache. */
|
|
174
|
+
const INFLIGHT = new WeakMap();
|
|
175
|
+
function inflightAncestors(cache) {
|
|
176
|
+
let pending = INFLIGHT.get(cache);
|
|
177
|
+
if (pending === undefined) {
|
|
178
|
+
pending = new Map();
|
|
179
|
+
INFLIGHT.set(cache, pending);
|
|
180
|
+
}
|
|
181
|
+
return pending;
|
|
182
|
+
}
|
|
140
183
|
async function createOne(createOp, model, client, options, scope) {
|
|
141
184
|
const schema = requestSchemaOf(createOp, model);
|
|
142
185
|
let member;
|
|
143
186
|
try {
|
|
144
187
|
;
|
|
145
|
-
[member] = buildCohort(schema ?? {}, options.seed, ["baseline"], createOp.operationId
|
|
188
|
+
[member] = buildCohort(schema ?? {}, options.seed, ["baseline"], createOp.operationId, {
|
|
189
|
+
defs: model.defs,
|
|
190
|
+
distinct: new Set((createOp.unique ?? []).flat()),
|
|
191
|
+
...(options.nonce === undefined ? {} : { nonce: options.nonce }),
|
|
192
|
+
});
|
|
146
193
|
}
|
|
147
194
|
catch (error) {
|
|
148
195
|
if (isOverflowError(error))
|
|
@@ -153,7 +200,7 @@ async function createOne(createOp, model, client, options, scope) {
|
|
|
153
200
|
if ((createOp.unique?.length ?? 0) > 0) {
|
|
154
201
|
/* Ancestor creates share the entity seed with the entity's own cohort; unique columns
|
|
155
202
|
* must not collide with a later seed of the same collection. */
|
|
156
|
-
body = uniquifyProbeBody(body, createOp.unique ?? [], schema, `anc${options.seed}`);
|
|
203
|
+
body = uniquifyProbeBody(body, createOp.unique ?? [], schema, `anc${options.seed}-${options.nonce ?? ""}`);
|
|
157
204
|
}
|
|
158
205
|
const encoded = await encodeForOperation(createOp, model, body, uploadContext(options), member?.variant ?? "baseline", 0);
|
|
159
206
|
const exchange = await client.request("POST", fillPath(createOp.path, scope.values), {
|
|
@@ -168,16 +215,16 @@ async function createOne(createOp, model, client, options, scope) {
|
|
|
168
215
|
if (isPlanLimitResponse(exchange.status, exchange.responseBody)) {
|
|
169
216
|
const reused = await adoptExisting(createOp, model, client, options, scope);
|
|
170
217
|
if (reused !== null)
|
|
171
|
-
return reused;
|
|
218
|
+
return { adopted: true, record: reused };
|
|
172
219
|
}
|
|
173
220
|
if (isUniqueConflictResponse(createOp, exchange.status)) {
|
|
174
221
|
const reused = await adoptExisting(createOp, model, client, options, scope);
|
|
175
222
|
if (reused !== null)
|
|
176
|
-
return reused;
|
|
223
|
+
return { adopted: true, record: reused };
|
|
177
224
|
}
|
|
178
225
|
throw new SeedError(createOp.operationId, `${createOp.operationId} returned ${exchange.status}: ${JSON.stringify(exchange.responseBody).slice(0, 300)}`, exchange.status, createOp.operationId, exchange);
|
|
179
226
|
}
|
|
180
|
-
return (exchange.responseBody ?? {});
|
|
227
|
+
return { adopted: false, record: (exchange.responseBody ?? {}) };
|
|
181
228
|
}
|
|
182
229
|
/** First listed record with a usable identity, or null — never synthesises a row. */
|
|
183
230
|
async function adoptExisting(createOp, model, client, options, scope) {
|
|
@@ -190,7 +237,7 @@ async function adoptExisting(createOp, model, client, options, scope) {
|
|
|
190
237
|
const listOp = model.byOperationId.get(entity.list);
|
|
191
238
|
if (listOp === undefined)
|
|
192
239
|
return null;
|
|
193
|
-
const records = await listExisting(listOp, client, options.authHeaders, { ...options.roots, ...scope.values });
|
|
240
|
+
const records = await listExisting(listOp, model, client, options.authHeaders, { ...options.roots, ...scope.values });
|
|
194
241
|
const identity = entity.identity ?? "id";
|
|
195
242
|
return (records.find((record) => {
|
|
196
243
|
const id = record[identity];
|
|
@@ -211,8 +258,16 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
211
258
|
let members;
|
|
212
259
|
let uniqueGap;
|
|
213
260
|
try {
|
|
214
|
-
const generated = buildCohort(schema, options.seed, undefined, createOp.operationId
|
|
215
|
-
|
|
261
|
+
const generated = buildCohort(schema, options.seed, undefined, createOp.operationId, {
|
|
262
|
+
defs: model.defs,
|
|
263
|
+
distinct: new Set((createOp.unique ?? []).flat()),
|
|
264
|
+
...(options.nonce === undefined ? {} : { nonce: options.nonce }),
|
|
265
|
+
}).slice(0, options.cohortSize ?? 7);
|
|
266
|
+
const distinct = ensureDistinctUniqueValues(generated, createOp.unique ?? [], schema, {
|
|
267
|
+
defs: model.defs,
|
|
268
|
+
distinct: new Set((createOp.unique ?? []).flat()),
|
|
269
|
+
...(options.nonce === undefined ? {} : { nonce: options.nonce }),
|
|
270
|
+
});
|
|
216
271
|
members = distinct.members;
|
|
217
272
|
if (distinct.gap !== null)
|
|
218
273
|
uniqueGap = distinct.gap;
|
|
@@ -220,12 +275,12 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
220
275
|
const listOp = entity?.list === undefined ? undefined : model.byOperationId.get(entity.list);
|
|
221
276
|
const existing = listOp === undefined
|
|
222
277
|
? []
|
|
223
|
-
: await listExisting(listOp, client, options.authHeaders, { ...options.roots, ...scope.values });
|
|
278
|
+
: await listExisting(listOp, model, client, options.authHeaders, { ...options.roots, ...scope.values });
|
|
224
279
|
if (existing.length > 0 && (createOp.unique?.length ?? 0) > 0) {
|
|
225
280
|
members = members.map((member, index) => {
|
|
226
281
|
let body = member.body;
|
|
227
282
|
for (let token = 0; token < 8 && uniqueTupleCollides(body, createOp.unique ?? [], existing); token++) {
|
|
228
|
-
body = uniquifyProbeBody(body, createOp.unique ?? [], schema, `ex${index}${token}`);
|
|
283
|
+
body = uniquifyProbeBody(body, createOp.unique ?? [], schema, `ex${index}${token}-${options.nonce ?? ""}`);
|
|
229
284
|
}
|
|
230
285
|
return { ...member, body };
|
|
231
286
|
});
|
|
@@ -240,6 +295,15 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
240
295
|
const path = fillPath(createOp.path, scope.values);
|
|
241
296
|
const uploads = uploadContext(options);
|
|
242
297
|
const seededMembers = [];
|
|
298
|
+
const identity = (createOp.entity === null ? undefined : model.entities.get(createOp.entity))?.identity ?? "id";
|
|
299
|
+
const created = (exchange) => {
|
|
300
|
+
const record = (exchange.responseBody ?? {});
|
|
301
|
+
const id = record[identity];
|
|
302
|
+
if (createOp.entity !== null && (typeof id === "string" || typeof id === "number")) {
|
|
303
|
+
options.onCreate?.(createOp.entity, String(id), { ...scope.values });
|
|
304
|
+
}
|
|
305
|
+
return record;
|
|
306
|
+
};
|
|
243
307
|
const postMember = async (member, nextUploads) => {
|
|
244
308
|
const encoded = await encodeForOperation(createOp, model, member.body, nextUploads, member.variant, records.length);
|
|
245
309
|
return client.request("POST", path, {
|
|
@@ -250,7 +314,12 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
250
314
|
...(nextUploads.fixture === undefined ? {} : { fixture: nextUploads.fixture.filename }),
|
|
251
315
|
});
|
|
252
316
|
};
|
|
253
|
-
const
|
|
317
|
+
const failedVariants = [];
|
|
318
|
+
const withGap = (cohort) => ({
|
|
319
|
+
...cohort,
|
|
320
|
+
...(uniqueGap === undefined ? {} : { uniqueGap }),
|
|
321
|
+
...(failedVariants.length === 0 ? {} : { failedVariants }),
|
|
322
|
+
});
|
|
254
323
|
const failOrAdopt = async (member, exchange) => {
|
|
255
324
|
if (records.length > 0)
|
|
256
325
|
return withGap({ featureGate: null, members: seededMembers, records });
|
|
@@ -296,15 +365,21 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
296
365
|
return null;
|
|
297
366
|
}
|
|
298
367
|
seededMembers.push(member);
|
|
299
|
-
records.push((exchange
|
|
368
|
+
records.push(created(exchange));
|
|
300
369
|
return null;
|
|
301
370
|
}
|
|
302
371
|
for (const member of members) {
|
|
303
372
|
const exchange = await postMember(member, nextUploads);
|
|
304
|
-
if (exchange.status >= 300)
|
|
305
|
-
|
|
373
|
+
if (exchange.status >= 300) {
|
|
374
|
+
/* The first create decides whether there is a cohort at all; a later one failing
|
|
375
|
+
* is a variant lost, reported rather than ending the cohort in silence. */
|
|
376
|
+
if (records.length === 0)
|
|
377
|
+
return failOrAdopt(member, exchange);
|
|
378
|
+
failedVariants.push({ exchange, variant: member.variant });
|
|
379
|
+
continue;
|
|
380
|
+
}
|
|
306
381
|
seededMembers.push(member);
|
|
307
|
-
records.push((exchange
|
|
382
|
+
records.push(created(exchange));
|
|
308
383
|
}
|
|
309
384
|
return null;
|
|
310
385
|
});
|
|
@@ -331,7 +406,7 @@ export function probeCreateFixtures(model) {
|
|
|
331
406
|
continue;
|
|
332
407
|
const schema = requestSchemaOf(op, model) ?? {};
|
|
333
408
|
try {
|
|
334
|
-
buildCohort(schema, 1, ["baseline"], op.operationId);
|
|
409
|
+
buildCohort(schema, 1, ["baseline"], op.operationId, { defs: model.defs });
|
|
335
410
|
}
|
|
336
411
|
catch (error) {
|
|
337
412
|
if (isOverflowError(error)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"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"}
|