@lovrozagar/oat 0.7.7 → 0.8.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 +90 -27
- package/dist/cli.js +4 -0
- package/dist/config/define-config.d.ts +39 -7
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/reference/defects.d.ts +7 -0
- package/dist/reference/defects.d.ts.map +1 -1
- package/dist/reference/defects.js +7 -0
- package/dist/reference/defects.js.map +1 -1
- package/dist/reference/http.d.ts.map +1 -1
- package/dist/reference/http.js +37 -0
- package/dist/reference/http.js.map +1 -1
- package/dist/reference/model.d.ts +2 -0
- package/dist/reference/model.d.ts.map +1 -1
- package/dist/reference/model.js +1 -0
- package/dist/reference/model.js.map +1 -1
- package/dist/reference/spec.d.ts.map +1 -1
- package/dist/reference/spec.js +4 -2
- package/dist/reference/spec.js.map +1 -1
- package/dist/report/console.d.ts.map +1 -1
- package/dist/report/console.js +58 -0
- package/dist/report/console.js.map +1 -1
- package/dist/runtime/auth.d.ts +4 -0
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +43 -12
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/checks.d.ts +8 -0
- package/dist/runtime/checks.d.ts.map +1 -1
- package/dist/runtime/checks.js +220 -13
- package/dist/runtime/checks.js.map +1 -1
- package/dist/runtime/client.d.ts +15 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +55 -6
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/cookies.d.ts +58 -0
- package/dist/runtime/cookies.d.ts.map +1 -0
- package/dist/runtime/cookies.js +191 -0
- package/dist/runtime/cookies.js.map +1 -0
- package/dist/runtime/exchanges.d.ts.map +1 -1
- package/dist/runtime/exchanges.js +14 -0
- package/dist/runtime/exchanges.js.map +1 -1
- package/dist/runtime/fixture.d.ts +10 -0
- package/dist/runtime/fixture.d.ts.map +1 -1
- package/dist/runtime/fixture.js +107 -0
- package/dist/runtime/fixture.js.map +1 -1
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +49 -2
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/unique.d.ts +47 -0
- package/dist/runtime/unique.d.ts.map +1 -0
- package/dist/runtime/unique.js +185 -0
- package/dist/runtime/unique.js.map +1 -0
- package/dist/runtime/world.d.ts +8 -0
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +53 -8
- package/dist/runtime/world.js.map +1 -1
- package/dist/spec/extensions.d.ts +21 -0
- package/dist/spec/extensions.d.ts.map +1 -1
- package/dist/spec/extensions.js +64 -0
- package/dist/spec/extensions.js.map +1 -1
- package/dist/spec/graph.d.ts +8 -0
- package/dist/spec/graph.d.ts.map +1 -1
- package/dist/spec/graph.js +7 -1
- package/dist/spec/graph.js.map +1 -1
- package/labs/annotated-openapi.yaml +25 -0
- package/labs/oob-auth.config.ts +56 -20
- package/package.json +1 -1
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unique-conflict probes: a documented `x-unique` set is 409 on a duplicate, 2xx is BACKEND_BUG.
|
|
3
|
+
*
|
|
4
|
+
* HTTP 409 is the unique-conflict class. Index names and product `error_key` / `vars.type` are
|
|
5
|
+
* not required. Uniqueness is never inferred from a 409 without the tag.
|
|
6
|
+
*/
|
|
7
|
+
import type { OperationModel, SpecModel } from "../spec/graph.ts";
|
|
8
|
+
import type { OperationObject } from "../spec/types.ts";
|
|
9
|
+
import type { Exchange } from "./client.ts";
|
|
10
|
+
import type { FindingCollector } from "./finding.ts";
|
|
11
|
+
import type { SchemaValidator } from "./validate.ts";
|
|
12
|
+
export declare const UNIQUE_CONFLICT_STATUS = 409;
|
|
13
|
+
export declare function isUniqueConflictResponse(op: Pick<OperationModel, "unique">, status: number): boolean;
|
|
14
|
+
/** Header names the document (and oat) treat as an idempotency key. */
|
|
15
|
+
export declare function isIdempotencyHeaderName(name: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Headers for a unique probe: auth only, never the original Idempotency-Key family.
|
|
18
|
+
*
|
|
19
|
+
* Omit the key unless the document requires it, in which case send a fresh one.
|
|
20
|
+
*/
|
|
21
|
+
export declare function uniqueProbeHeaders(auth: Record<string, string>, idempotencyHeader: string | null, required: boolean, freshKey: string): Record<string, string>;
|
|
22
|
+
export declare function idempotencyHeaderRequired(op: OperationModel, model: SpecModel): boolean;
|
|
23
|
+
export declare function bodyPropertyNames(op: OperationModel, model: SpecModel): Set<string>;
|
|
24
|
+
/**
|
|
25
|
+
* A set is probeable when at least one column is on the create/update JSON or form body.
|
|
26
|
+
*
|
|
27
|
+
* Path / tenant / `x-generated` columns may fill set identity from scope, but a set with no
|
|
28
|
+
* body columns is skipped, not failed. Update sets whose columns are all `x-immutable` are
|
|
29
|
+
* skipped.
|
|
30
|
+
*/
|
|
31
|
+
export declare function probeableUniqueSets(op: OperationModel, model: SpecModel, phase: "create" | "update", sets?: string[][]): string[][];
|
|
32
|
+
export declare function uniqueTupleCollides(body: Record<string, unknown>, sets: string[][], existing: Array<Record<string, unknown>>): boolean;
|
|
33
|
+
export declare function uniquifyProbeBody(body: Record<string, unknown>, sets: string[][], schema: Record<string, unknown> | null, token: string): Record<string, unknown>;
|
|
34
|
+
/**
|
|
35
|
+
* Overlays one unique set's values from a known row onto a body that otherwise does not collide.
|
|
36
|
+
*
|
|
37
|
+
* Other unique sets keep the uniquified values so two sets are never collided in one request.
|
|
38
|
+
*/
|
|
39
|
+
export declare function collisionCreateBody(base: Record<string, unknown>, known: Record<string, unknown>, set: string[], scope: Record<string, string>, bodyColumns: ReadonlySet<string>, generated: readonly string[]): Record<string, unknown> | null;
|
|
40
|
+
/** PATCH body that copies one unique set from `source` onto a different row. */
|
|
41
|
+
export declare function collisionUpdatePatch(source: Record<string, unknown>, set: string[], scope: Record<string, string>, bodyColumns: ReadonlySet<string>, immutable: readonly string[], generated: readonly string[]): Record<string, unknown> | null;
|
|
42
|
+
/**
|
|
43
|
+
* A 409 still has to match the documented error schema. Coverage is "this 409 is expected";
|
|
44
|
+
* it is not a free pass for an undeclared body.
|
|
45
|
+
*/
|
|
46
|
+
export declare function reportUniqueSchemaDrift(findings: FindingCollector, validator: SchemaValidator, op: OperationModel, raw: OperationObject | undefined, exchange: Exchange, entity: string): void;
|
|
47
|
+
//# sourceMappingURL=unique.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique.d.ts","sourceRoot":"","sources":["../../src/runtime/unique.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unique-conflict probes: a documented `x-unique` set is 409 on a duplicate, 2xx is BACKEND_BUG.
|
|
3
|
+
*
|
|
4
|
+
* HTTP 409 is the unique-conflict class. Index names and product `error_key` / `vars.type` are
|
|
5
|
+
* not required. Uniqueness is never inferred from a 409 without the tag.
|
|
6
|
+
*/
|
|
7
|
+
import { requestContent } from "../spec/collection.js";
|
|
8
|
+
export const UNIQUE_CONFLICT_STATUS = 409;
|
|
9
|
+
export function isUniqueConflictResponse(op, status) {
|
|
10
|
+
return status === UNIQUE_CONFLICT_STATUS && op.unique !== null && op.unique.length > 0;
|
|
11
|
+
}
|
|
12
|
+
/** Header names the document (and oat) treat as an idempotency key. */
|
|
13
|
+
export function isIdempotencyHeaderName(name) {
|
|
14
|
+
return /^(x-)?idempotenc(y|e)([-_]?key)?$/i.test(name.replace(/\s/g, ""));
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Headers for a unique probe: auth only, never the original Idempotency-Key family.
|
|
18
|
+
*
|
|
19
|
+
* Omit the key unless the document requires it, in which case send a fresh one.
|
|
20
|
+
*/
|
|
21
|
+
export function uniqueProbeHeaders(auth, idempotencyHeader, required, freshKey) {
|
|
22
|
+
const headers = {};
|
|
23
|
+
for (const [name, value] of Object.entries(auth)) {
|
|
24
|
+
if (isIdempotencyHeaderName(name))
|
|
25
|
+
continue;
|
|
26
|
+
headers[name] = value;
|
|
27
|
+
}
|
|
28
|
+
if (required && idempotencyHeader !== null && idempotencyHeader !== "") {
|
|
29
|
+
headers[idempotencyHeader] = freshKey;
|
|
30
|
+
}
|
|
31
|
+
return headers;
|
|
32
|
+
}
|
|
33
|
+
export function idempotencyHeaderRequired(op, model) {
|
|
34
|
+
if (op.idempotencyHeader === null)
|
|
35
|
+
return false;
|
|
36
|
+
const raw = model.rawOperations.get(op.operationId);
|
|
37
|
+
const params = raw?.parameters ?? [];
|
|
38
|
+
const match = params.find((param) => param.in === "header" && param.name === op.idempotencyHeader);
|
|
39
|
+
return match?.required === true;
|
|
40
|
+
}
|
|
41
|
+
export function bodyPropertyNames(op, model) {
|
|
42
|
+
const raw = model.rawOperations.get(op.operationId);
|
|
43
|
+
const schema = raw === undefined ? null : (requestContent(raw)?.schema ?? null);
|
|
44
|
+
if (schema === null || typeof schema !== "object")
|
|
45
|
+
return new Set();
|
|
46
|
+
const props = schema.properties;
|
|
47
|
+
if (props === null || typeof props !== "object")
|
|
48
|
+
return new Set();
|
|
49
|
+
return new Set(Object.keys(props));
|
|
50
|
+
}
|
|
51
|
+
function propertySchema(schema, name) {
|
|
52
|
+
if (schema === null)
|
|
53
|
+
return undefined;
|
|
54
|
+
const props = schema.properties;
|
|
55
|
+
if (props === null || typeof props !== "object")
|
|
56
|
+
return undefined;
|
|
57
|
+
const value = props[name];
|
|
58
|
+
return value !== null && typeof value === "object" ? value : undefined;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* A set is probeable when at least one column is on the create/update JSON or form body.
|
|
62
|
+
*
|
|
63
|
+
* Path / tenant / `x-generated` columns may fill set identity from scope, but a set with no
|
|
64
|
+
* body columns is skipped, not failed. Update sets whose columns are all `x-immutable` are
|
|
65
|
+
* skipped.
|
|
66
|
+
*/
|
|
67
|
+
export function probeableUniqueSets(op, model, phase, sets = op.unique ?? []) {
|
|
68
|
+
if (sets.length === 0)
|
|
69
|
+
return [];
|
|
70
|
+
const body = bodyPropertyNames(op, model);
|
|
71
|
+
const generated = new Set(op.generated);
|
|
72
|
+
const immutable = new Set(op.immutable);
|
|
73
|
+
return sets.filter((set) => {
|
|
74
|
+
if (phase === "update" && set.length > 0 && set.every((col) => immutable.has(col)))
|
|
75
|
+
return false;
|
|
76
|
+
return set.some((col) => body.has(col) && !generated.has(col));
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
export function uniqueTupleCollides(body, sets, existing) {
|
|
80
|
+
return sets.some((set) => {
|
|
81
|
+
const cols = set.filter((col) => Object.hasOwn(body, col));
|
|
82
|
+
if (cols.length === 0)
|
|
83
|
+
return false;
|
|
84
|
+
return existing.some((row) => cols.every((col) => JSON.stringify(row[col]) === JSON.stringify(body[col])));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
export function uniquifyProbeBody(body, sets, schema, token) {
|
|
88
|
+
if (sets.length === 0)
|
|
89
|
+
return { ...body };
|
|
90
|
+
const out = { ...body };
|
|
91
|
+
const columns = new Set(sets.flat());
|
|
92
|
+
for (const col of columns) {
|
|
93
|
+
if (!Object.hasOwn(out, col))
|
|
94
|
+
continue;
|
|
95
|
+
out[col] = distinctUniqueValue(out[col], token, propertySchema(schema, col));
|
|
96
|
+
}
|
|
97
|
+
return out;
|
|
98
|
+
}
|
|
99
|
+
function distinctUniqueValue(value, token, schema) {
|
|
100
|
+
if (typeof value === "number" && Number.isFinite(value)) {
|
|
101
|
+
const n = token.split("").reduce((acc, ch) => acc + ch.charCodeAt(0), 0);
|
|
102
|
+
return value + (n % 97) + 1;
|
|
103
|
+
}
|
|
104
|
+
if (typeof value !== "string")
|
|
105
|
+
return value;
|
|
106
|
+
return suffixUniqueString(value, token, schema);
|
|
107
|
+
}
|
|
108
|
+
function suffixUniqueString(value, token, schema) {
|
|
109
|
+
const max = typeof schema?.maxLength === "number" ? schema.maxLength : undefined;
|
|
110
|
+
const pattern = typeof schema?.pattern === "string" ? schema.pattern : undefined;
|
|
111
|
+
const suffix = `-${token}`;
|
|
112
|
+
let next = `${value}${suffix}`;
|
|
113
|
+
if (max !== undefined && next.length > max) {
|
|
114
|
+
const keep = Math.max(0, max - suffix.length);
|
|
115
|
+
next = `${value.slice(0, keep)}${suffix}`;
|
|
116
|
+
if (next.length > max)
|
|
117
|
+
next = suffix.slice(-max);
|
|
118
|
+
}
|
|
119
|
+
if (pattern !== undefined) {
|
|
120
|
+
try {
|
|
121
|
+
if (!new RegExp(pattern, "u").test(next))
|
|
122
|
+
return value;
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return value;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
return next;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Overlays one unique set's values from a known row onto a body that otherwise does not collide.
|
|
132
|
+
*
|
|
133
|
+
* Other unique sets keep the uniquified values so two sets are never collided in one request.
|
|
134
|
+
*/
|
|
135
|
+
export function collisionCreateBody(base, known, set, scope, bodyColumns, generated) {
|
|
136
|
+
const out = { ...base };
|
|
137
|
+
const skip = new Set(generated);
|
|
138
|
+
let wrote = false;
|
|
139
|
+
for (const col of set) {
|
|
140
|
+
if (!bodyColumns.has(col) || skip.has(col))
|
|
141
|
+
continue;
|
|
142
|
+
const value = known[col] ?? scope[col];
|
|
143
|
+
if (value === undefined)
|
|
144
|
+
return null;
|
|
145
|
+
out[col] = value;
|
|
146
|
+
wrote = true;
|
|
147
|
+
}
|
|
148
|
+
return wrote ? out : null;
|
|
149
|
+
}
|
|
150
|
+
/** PATCH body that copies one unique set from `source` onto a different row. */
|
|
151
|
+
export function collisionUpdatePatch(source, set, scope, bodyColumns, immutable, generated) {
|
|
152
|
+
const skip = new Set([...immutable, ...generated]);
|
|
153
|
+
const patch = {};
|
|
154
|
+
for (const col of set) {
|
|
155
|
+
if (!bodyColumns.has(col) || skip.has(col))
|
|
156
|
+
continue;
|
|
157
|
+
const value = source[col] ?? scope[col];
|
|
158
|
+
if (value === undefined)
|
|
159
|
+
return null;
|
|
160
|
+
patch[col] = value;
|
|
161
|
+
}
|
|
162
|
+
return Object.keys(patch).length > 0 ? patch : null;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* A 409 still has to match the documented error schema. Coverage is "this 409 is expected";
|
|
166
|
+
* it is not a free pass for an undeclared body.
|
|
167
|
+
*/
|
|
168
|
+
export function reportUniqueSchemaDrift(findings, validator, op, raw, exchange, entity) {
|
|
169
|
+
if (raw === undefined)
|
|
170
|
+
return;
|
|
171
|
+
if (!validator.documents(raw, exchange.status))
|
|
172
|
+
return;
|
|
173
|
+
const result = validator.validate(op.operationId, raw, exchange.status, exchange.responseBody);
|
|
174
|
+
if (result.ok)
|
|
175
|
+
return;
|
|
176
|
+
if (findings.findings.some((finding) => finding.check === "schema.error-response-matches-document" &&
|
|
177
|
+
finding.entity === entity &&
|
|
178
|
+
finding.evidence.some((prior) => prior.seq === exchange.seq))) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
findings.spec("schema.error-response-matches-document", entity, `${exchange.status} error body does not match its documented schema`, `${op.operationId} returned ${exchange.status} with a body that fails the schema the ` +
|
|
182
|
+
`document declares for it: ${result.errors.join("; ")}. Clients that parse errors ` +
|
|
183
|
+
"from the spec will not understand this response.", [exchange]);
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=unique.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique.js","sourceRoot":"","sources":["../../src/runtime/unique.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/world.d.ts
CHANGED
|
@@ -72,6 +72,14 @@ export interface SeededCohort {
|
|
|
72
72
|
* earlier effect. Write-path checks must stand down — oat did not submit these bodies.
|
|
73
73
|
*/
|
|
74
74
|
adopted?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* First-variant create returned 409 on an `x-unique` operation and a same-tenant row was
|
|
77
|
+
* adopted. Unique-conflict checks still run; write-path oracles that need oat's submitted
|
|
78
|
+
* seed body stay skipped.
|
|
79
|
+
*/
|
|
80
|
+
uniqueAdopted?: boolean;
|
|
81
|
+
/** Set when extra cohort variants were dropped because unique values could not differ. */
|
|
82
|
+
uniqueGap?: string;
|
|
75
83
|
}
|
|
76
84
|
/** Creates the cohort and returns the server's view of each instance. */
|
|
77
85
|
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,
|
|
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;gBAHf,MAAM,EAAE,MAAM,EACvB,OAAO,EAAE,MAAM;IACf,kFAAkF;IACzE,MAAM,CAAC,EAAE,MAAM,YAAA;CAIzB;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,CAWpB;AAED,MAAM,WAAW,YAAY;IAC5B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACzC,OAAO,CAAC,EAAE,aAAa,CAAA;CACvB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CACjC,EAAE,EAAE,cAAc,EAClB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,GAAE,KAAmC,GACxC,OAAO,CAAC,KAAK,CAAC,CAuChB;AAiFD,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAIpG;AAED,MAAM,WAAW,YAAY;IAC5B,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB;;;;;OAKG;IACH,WAAW,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI,CAAA;IACvE;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,yEAAyE;AACzE,wBAAsB,UAAU,CAC/B,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,KAAK,GACV,OAAO,CAAC,YAAY,CAAC,CA0HvB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,CAe1D"}
|
package/dist/runtime/world.js
CHANGED
|
@@ -10,7 +10,8 @@ import { requestContent } from "../spec/collection.js";
|
|
|
10
10
|
import { owningEntityName } from "../spec/graph.js";
|
|
11
11
|
import { encodeForOperation } from "./body.js";
|
|
12
12
|
import { forEachInvocation } from "./upload-each.js";
|
|
13
|
-
import { buildCohort, isOverflowError, overflowFrom } from "./fixture.js";
|
|
13
|
+
import { buildCohort, ensureDistinctUniqueValues, isOverflowError, overflowFrom } from "./fixture.js";
|
|
14
|
+
import { isUniqueConflictResponse, uniqueTupleCollides, uniquifyProbeBody } from "./unique.js";
|
|
14
15
|
import { describeFeatureGate, isDocumentedFeatureGateDenial } from "./feature-gate.js";
|
|
15
16
|
export class SeedError extends Error {
|
|
16
17
|
cause_;
|
|
@@ -142,7 +143,13 @@ async function createOne(createOp, model, client, options, scope) {
|
|
|
142
143
|
throw overflowFrom(error, createOp.operationId);
|
|
143
144
|
throw error;
|
|
144
145
|
}
|
|
145
|
-
|
|
146
|
+
let body = member?.body ?? {};
|
|
147
|
+
if ((createOp.unique?.length ?? 0) > 0) {
|
|
148
|
+
/* Ancestor creates share the entity seed with the entity's own cohort; unique columns
|
|
149
|
+
* must not collide with a later seed of the same collection. */
|
|
150
|
+
body = uniquifyProbeBody(body, createOp.unique ?? [], schema, `anc${options.seed}`);
|
|
151
|
+
}
|
|
152
|
+
const encoded = await encodeForOperation(createOp, model, body, uploadContext(options), member?.variant ?? "baseline", 0);
|
|
146
153
|
const exchange = await client.request("POST", fillPath(createOp.path, scope.values), {
|
|
147
154
|
body: encoded.body,
|
|
148
155
|
...(encoded.contentType === undefined ? {} : { contentType: encoded.contentType }),
|
|
@@ -157,6 +164,11 @@ async function createOne(createOp, model, client, options, scope) {
|
|
|
157
164
|
if (reused !== null)
|
|
158
165
|
return reused;
|
|
159
166
|
}
|
|
167
|
+
if (isUniqueConflictResponse(createOp, exchange.status)) {
|
|
168
|
+
const reused = await adoptExisting(createOp, model, client, options, scope);
|
|
169
|
+
if (reused !== null)
|
|
170
|
+
return reused;
|
|
171
|
+
}
|
|
160
172
|
throw new SeedError(createOp.operationId, `${createOp.operationId} returned ${exchange.status}: ${JSON.stringify(exchange.responseBody).slice(0, 300)}`, exchange.status);
|
|
161
173
|
}
|
|
162
174
|
return (exchange.responseBody ?? {});
|
|
@@ -191,8 +203,27 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
191
203
|
throw new SeedError(createOp.operationId, `${createOp.operationId} declares no request body`);
|
|
192
204
|
}
|
|
193
205
|
let members;
|
|
206
|
+
let uniqueGap;
|
|
194
207
|
try {
|
|
195
|
-
|
|
208
|
+
const generated = buildCohort(schema, options.seed, undefined, createOp.operationId).slice(0, options.cohortSize ?? 7);
|
|
209
|
+
const distinct = ensureDistinctUniqueValues(generated, createOp.unique ?? [], schema);
|
|
210
|
+
members = distinct.members;
|
|
211
|
+
if (distinct.gap !== null)
|
|
212
|
+
uniqueGap = distinct.gap;
|
|
213
|
+
const entity = createOp.entity === null ? undefined : model.entities.get(createOp.entity);
|
|
214
|
+
const listOp = entity?.list === undefined ? undefined : model.byOperationId.get(entity.list);
|
|
215
|
+
const existing = listOp === undefined
|
|
216
|
+
? []
|
|
217
|
+
: await listExisting(listOp, client, options.authHeaders, { ...options.roots, ...scope.values });
|
|
218
|
+
if (existing.length > 0 && (createOp.unique?.length ?? 0) > 0) {
|
|
219
|
+
members = members.map((member, index) => {
|
|
220
|
+
let body = member.body;
|
|
221
|
+
for (let token = 0; token < 8 && uniqueTupleCollides(body, createOp.unique ?? [], existing); token++) {
|
|
222
|
+
body = uniquifyProbeBody(body, createOp.unique ?? [], schema, `ex${index}${token}`);
|
|
223
|
+
}
|
|
224
|
+
return { ...member, body };
|
|
225
|
+
});
|
|
226
|
+
}
|
|
196
227
|
}
|
|
197
228
|
catch (error) {
|
|
198
229
|
if (isOverflowError(error))
|
|
@@ -212,11 +243,12 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
212
243
|
operationId: createOp.operationId,
|
|
213
244
|
});
|
|
214
245
|
};
|
|
246
|
+
const withGap = (cohort) => (uniqueGap === undefined ? cohort : { ...cohort, uniqueGap });
|
|
215
247
|
const failOrAdopt = async (member, exchange) => {
|
|
216
248
|
if (records.length > 0)
|
|
217
|
-
return { featureGate: null, members: seededMembers, records };
|
|
249
|
+
return withGap({ featureGate: null, members: seededMembers, records });
|
|
218
250
|
if (isDocumentedFeatureGateDenial(createOp, exchange.status, exchange.responseBody)) {
|
|
219
|
-
return {
|
|
251
|
+
return withGap({
|
|
220
252
|
featureGate: {
|
|
221
253
|
detail: describeFeatureGate(createOp, exchange.responseBody),
|
|
222
254
|
exchange,
|
|
@@ -224,12 +256,25 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
224
256
|
},
|
|
225
257
|
members: seededMembers,
|
|
226
258
|
records,
|
|
227
|
-
};
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
if (isUniqueConflictResponse(createOp, exchange.status)) {
|
|
262
|
+
const adopted = await adoptExisting(createOp, model, client, options, scope);
|
|
263
|
+
if (adopted !== null) {
|
|
264
|
+
return withGap({
|
|
265
|
+
featureGate: null,
|
|
266
|
+
members: seededMembers,
|
|
267
|
+
records: [adopted],
|
|
268
|
+
uniqueAdopted: true,
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
throw new SeedError(createOp.operationId, `seeding "${member.variant}" returned ${exchange.status}: ` +
|
|
272
|
+
JSON.stringify(exchange.responseBody).slice(0, 300), exchange.status);
|
|
228
273
|
}
|
|
229
274
|
if (isPlanLimitResponse(exchange.status, exchange.responseBody)) {
|
|
230
275
|
const adopted = await adoptExisting(createOp, model, client, options, scope);
|
|
231
276
|
if (adopted !== null)
|
|
232
|
-
return { adopted: true, featureGate: null, members: seededMembers, records: [adopted] };
|
|
277
|
+
return withGap({ adopted: true, featureGate: null, members: seededMembers, records: [adopted] });
|
|
233
278
|
}
|
|
234
279
|
throw new SeedError(createOp.operationId, `seeding "${member.variant}" returned ${exchange.status}: ` + JSON.stringify(exchange.responseBody).slice(0, 300), exchange.status);
|
|
235
280
|
};
|
|
@@ -264,7 +309,7 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
264
309
|
if (failed !== null)
|
|
265
310
|
return failed;
|
|
266
311
|
}
|
|
267
|
-
return { featureGate: null, members: seededMembers.length > 0 ? seededMembers : members, records };
|
|
312
|
+
return withGap({ featureGate: null, members: seededMembers.length > 0 ? seededMembers : members, records });
|
|
268
313
|
}
|
|
269
314
|
/**
|
|
270
315
|
* Walk each create schema the way seed will. A cycle that still overflows is a named gap on
|
|
@@ -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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"}
|
|
@@ -76,6 +76,11 @@ export interface InviteSpec {
|
|
|
76
76
|
tokenFrom: "response" | "outOfBand";
|
|
77
77
|
/** `resolveOutOfBand` kind when `tokenFrom` is `outOfBand`. Default `${entity}-invite`. */
|
|
78
78
|
tokenKind?: string;
|
|
79
|
+
/**
|
|
80
|
+
* How the invitee consumes the token. Default `token` stuffs it into the documented accept
|
|
81
|
+
* JSON / path. `link` GETs the out-of-band value as an absolute URL (the mailed consume hop).
|
|
82
|
+
*/
|
|
83
|
+
acceptFrom?: "token" | "link";
|
|
79
84
|
}
|
|
80
85
|
export declare function readInvite(op: OperationObject): InviteSpec | null;
|
|
81
86
|
export interface WaitSpec {
|
|
@@ -101,6 +106,22 @@ export declare function readCost(op: OperationObject): "low" | "medium" | "high"
|
|
|
101
106
|
* (or a missing tag) is `null`, same defensive read as `readCost` / `readRateLimit`.
|
|
102
107
|
*/
|
|
103
108
|
export declare function readFeatureGate(op: OperationObject): string | null;
|
|
109
|
+
/**
|
|
110
|
+
* `x-unique` — column sets that must stay unique.
|
|
111
|
+
*
|
|
112
|
+
* Accepted shapes:
|
|
113
|
+
* - a list of column sets (`[["email"], ["workspace_id", "slug"]]`)
|
|
114
|
+
* - `{ columns: [...] }` objects
|
|
115
|
+
* - a single `string[]` meaning one set
|
|
116
|
+
*
|
|
117
|
+
* Each set is a non-empty list of column names; empty sets are dropped. Malformed / non-array
|
|
118
|
+
* → `null` and a recorded gap (the check does not run). `[]` after filtering is explicit none
|
|
119
|
+
* (check does not run). Missing tag → `null`, no gap — unique checks do not run.
|
|
120
|
+
*
|
|
121
|
+
* Uniqueness is never inferred from 409s, unique-looking names, or JSON Schema `uniqueItems`.
|
|
122
|
+
*/
|
|
123
|
+
export declare function readUnique(op: OperationObject, operationId?: string, gaps?: GapCollector): string[][] | null;
|
|
124
|
+
export declare function formatUniqueSets(sets: string[][] | null): string;
|
|
104
125
|
export declare function readFlag(op: OperationObject, key: string): boolean;
|
|
105
126
|
export declare function readCleanup(op: OperationObject): string | null;
|
|
106
127
|
export interface RateLimitTag {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/spec/extensions.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/spec/extensions.ts"],"names":[],"mappings":"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"}
|
package/dist/spec/extensions.js
CHANGED
|
@@ -290,6 +290,8 @@ export function readInvite(op) {
|
|
|
290
290
|
};
|
|
291
291
|
if (typeof tag.tokenKind === "string" && tag.tokenKind !== "")
|
|
292
292
|
spec.tokenKind = tag.tokenKind;
|
|
293
|
+
if (tag.acceptFrom === "link")
|
|
294
|
+
spec.acceptFrom = "link";
|
|
293
295
|
return spec;
|
|
294
296
|
}
|
|
295
297
|
/**
|
|
@@ -345,6 +347,68 @@ export function readFeatureGate(op) {
|
|
|
345
347
|
const value = ext(op, "x-feature-gate");
|
|
346
348
|
return typeof value === "string" && value !== "" ? value : null;
|
|
347
349
|
}
|
|
350
|
+
/**
|
|
351
|
+
* `x-unique` — column sets that must stay unique.
|
|
352
|
+
*
|
|
353
|
+
* Accepted shapes:
|
|
354
|
+
* - a list of column sets (`[["email"], ["workspace_id", "slug"]]`)
|
|
355
|
+
* - `{ columns: [...] }` objects
|
|
356
|
+
* - a single `string[]` meaning one set
|
|
357
|
+
*
|
|
358
|
+
* Each set is a non-empty list of column names; empty sets are dropped. Malformed / non-array
|
|
359
|
+
* → `null` and a recorded gap (the check does not run). `[]` after filtering is explicit none
|
|
360
|
+
* (check does not run). Missing tag → `null`, no gap — unique checks do not run.
|
|
361
|
+
*
|
|
362
|
+
* Uniqueness is never inferred from 409s, unique-looking names, or JSON Schema `uniqueItems`.
|
|
363
|
+
*/
|
|
364
|
+
export function readUnique(op, operationId, gaps) {
|
|
365
|
+
const raw = ext(op, "x-unique");
|
|
366
|
+
if (raw === undefined)
|
|
367
|
+
return null;
|
|
368
|
+
if (!Array.isArray(raw)) {
|
|
369
|
+
gaps?.record(operationId ?? "", "x-unique", "x-unique is not a list of column sets; unique-conflict checks will not run");
|
|
370
|
+
return null;
|
|
371
|
+
}
|
|
372
|
+
if (raw.length === 0)
|
|
373
|
+
return [];
|
|
374
|
+
if (raw.every((item) => typeof item === "string")) {
|
|
375
|
+
const cols = raw.filter((item) => typeof item === "string" && item !== "");
|
|
376
|
+
return cols.length === 0 ? [] : [cols];
|
|
377
|
+
}
|
|
378
|
+
const sets = [];
|
|
379
|
+
for (const item of raw) {
|
|
380
|
+
const parsed = parseUniqueSet(item);
|
|
381
|
+
if (parsed === null) {
|
|
382
|
+
gaps?.record(operationId ?? "", "x-unique", "x-unique is not a list of column sets; unique-conflict checks will not run");
|
|
383
|
+
return null;
|
|
384
|
+
}
|
|
385
|
+
if (parsed.length > 0)
|
|
386
|
+
sets.push(parsed);
|
|
387
|
+
}
|
|
388
|
+
return sets;
|
|
389
|
+
}
|
|
390
|
+
/** `null` means the item is malformed, not an empty set. */
|
|
391
|
+
function parseUniqueSet(item) {
|
|
392
|
+
if (Array.isArray(item)) {
|
|
393
|
+
if (!item.every((col) => typeof col === "string"))
|
|
394
|
+
return null;
|
|
395
|
+
return item.filter((col) => typeof col === "string" && col !== "");
|
|
396
|
+
}
|
|
397
|
+
if (item !== null && typeof item === "object" && Array.isArray(item.columns)) {
|
|
398
|
+
const cols = item.columns;
|
|
399
|
+
if (!cols.every((col) => typeof col === "string"))
|
|
400
|
+
return null;
|
|
401
|
+
return cols.filter((col) => typeof col === "string" && col !== "");
|
|
402
|
+
}
|
|
403
|
+
return null;
|
|
404
|
+
}
|
|
405
|
+
export function formatUniqueSets(sets) {
|
|
406
|
+
if (sets === null)
|
|
407
|
+
return "—";
|
|
408
|
+
if (sets.length === 0)
|
|
409
|
+
return "(none)";
|
|
410
|
+
return sets.map((set) => `[${set.join(", ")}]`).join("; ");
|
|
411
|
+
}
|
|
348
412
|
export function readFlag(op, key) {
|
|
349
413
|
return ext(op, key) === true;
|
|
350
414
|
}
|