@lovrozagar/oat 0.9.0 → 0.10.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 +104 -33
- package/dist/cli.js +56 -14
- package/dist/config/define-config.d.ts +7 -1
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/report/console.d.ts +2 -1
- package/dist/report/console.d.ts.map +1 -1
- package/dist/report/console.js +33 -1
- package/dist/report/console.js.map +1 -1
- package/dist/report/matrix.d.ts +8 -13
- package/dist/report/matrix.d.ts.map +1 -1
- package/dist/report/matrix.js +21 -10
- package/dist/report/matrix.js.map +1 -1
- package/dist/report/render.d.ts +8 -0
- package/dist/report/render.d.ts.map +1 -1
- package/dist/report/render.js +94 -1
- package/dist/report/render.js.map +1 -1
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +2 -1
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/checks.d.ts +42 -1
- package/dist/runtime/checks.d.ts.map +1 -1
- package/dist/runtime/checks.js +190 -24
- package/dist/runtime/checks.js.map +1 -1
- package/dist/runtime/finding.d.ts +14 -1
- package/dist/runtime/finding.d.ts.map +1 -1
- package/dist/runtime/finding.js +25 -6
- package/dist/runtime/finding.js.map +1 -1
- package/dist/runtime/run.d.ts +17 -0
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +126 -66
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/scope.d.ts +163 -0
- package/dist/runtime/scope.d.ts.map +1 -0
- package/dist/runtime/scope.js +423 -0
- package/dist/runtime/scope.js.map +1 -0
- package/dist/runtime/world.d.ts +7 -2
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +12 -6
- package/dist/runtime/world.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,423 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Operation scope: which operations a run grades.
|
|
3
|
+
*
|
|
4
|
+
* A full run grades every operation some check judges. A targeted run (`--ops`, `--only`) grades
|
|
5
|
+
* only the named operations. Everything else oat calls — principal sign-up, parent creates, the
|
|
6
|
+
* cohort create behind a list, teardown deletes — is support: called to reach or observe a
|
|
7
|
+
* target, never graded. Resolution is static over the entity graph so `oat plan --ops` can show
|
|
8
|
+
* the scope with no network, and so a typo fails before the first request.
|
|
9
|
+
*/
|
|
10
|
+
import { isAuthFlow } from "../config/define-config.js";
|
|
11
|
+
import { owningEntityName } from "../spec/graph.js";
|
|
12
|
+
import { pathTemplateMatches } from "../spec/load.js";
|
|
13
|
+
import { CHECKS } from "./checks.js";
|
|
14
|
+
export class ScopeError extends Error {
|
|
15
|
+
name = "ScopeError";
|
|
16
|
+
}
|
|
17
|
+
/** Union of every check's subjects for this entity. */
|
|
18
|
+
export function staticSubjects(entity, model) {
|
|
19
|
+
const ids = new Set();
|
|
20
|
+
for (const check of CHECKS)
|
|
21
|
+
for (const id of check.subjects(entity, model))
|
|
22
|
+
ids.add(id);
|
|
23
|
+
return ids;
|
|
24
|
+
}
|
|
25
|
+
/** operationIds named in any principal `auth.steps` — those creates already ran during login. */
|
|
26
|
+
export function authStepOperationIds(principals) {
|
|
27
|
+
const ids = new Set();
|
|
28
|
+
for (const principal of principals) {
|
|
29
|
+
const auth = principal.auth;
|
|
30
|
+
if (auth === undefined || !isAuthFlow(auth))
|
|
31
|
+
continue;
|
|
32
|
+
for (const step of auth.steps) {
|
|
33
|
+
if ("operationId" in step)
|
|
34
|
+
ids.add(step.operationId);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return ids;
|
|
38
|
+
}
|
|
39
|
+
export function createIsAuthProvisioned(createOp, authCreates) {
|
|
40
|
+
return createOp.freshPrincipal || authCreates.has(createOp.operationId);
|
|
41
|
+
}
|
|
42
|
+
/** Why an entity cannot be seeded and checked, or `null` when it can. */
|
|
43
|
+
export function untestableEntityReason(entity, model, authCreates) {
|
|
44
|
+
const createOp = entity.create === undefined ? undefined : model.byOperationId.get(entity.create);
|
|
45
|
+
const authProvisioned = createOp !== undefined && createIsAuthProvisioned(createOp, authCreates);
|
|
46
|
+
/* Register-as-create with no item route is the auth flow, not a fixture. */
|
|
47
|
+
if (authProvisioned && entity.read === undefined) {
|
|
48
|
+
return `"${entity.name}" is created by the auth flow and has no item route`;
|
|
49
|
+
}
|
|
50
|
+
if (entity.invite !== null && entity.list !== undefined)
|
|
51
|
+
return null;
|
|
52
|
+
const missing = [
|
|
53
|
+
...(entity.list === undefined ? ["a list operation"] : []),
|
|
54
|
+
...(entity.create === undefined ? ["a create operation"] : []),
|
|
55
|
+
...(entity.list !== undefined && entity.create !== undefined && !entity.trackable
|
|
56
|
+
? ["records oat can identify after create"]
|
|
57
|
+
: []),
|
|
58
|
+
];
|
|
59
|
+
return missing.length === 0 ? null : `"${entity.name}" has no ${missing.join(" and no ")}`;
|
|
60
|
+
}
|
|
61
|
+
export function testableEntities(model, authCreates) {
|
|
62
|
+
return [...model.entities.values()]
|
|
63
|
+
.filter((entity) => untestableEntityReason(entity, model, authCreates) === null)
|
|
64
|
+
.sort((a, b) => a.name.localeCompare(b.name));
|
|
65
|
+
}
|
|
66
|
+
function globToRegExp(pattern) {
|
|
67
|
+
const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, "\\$&").replace(/\*/g, ".*");
|
|
68
|
+
return new RegExp(`^${escaped}$`);
|
|
69
|
+
}
|
|
70
|
+
function distance(a, b) {
|
|
71
|
+
const row = Array.from({ length: b.length + 1 }, (_, i) => i);
|
|
72
|
+
for (let i = 1; i <= a.length; i++) {
|
|
73
|
+
let diagonal = row[0];
|
|
74
|
+
row[0] = i;
|
|
75
|
+
for (let j = 1; j <= b.length; j++) {
|
|
76
|
+
const above = row[j];
|
|
77
|
+
row[j] = Math.min(above + 1, row[j - 1] + 1, diagonal + (a[i - 1] === b[j - 1] ? 0 : 1));
|
|
78
|
+
diagonal = above;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return row[b.length];
|
|
82
|
+
}
|
|
83
|
+
function nearest(name, candidates) {
|
|
84
|
+
return [...candidates]
|
|
85
|
+
.map((candidate) => ({ candidate, d: distance(name, candidate) }))
|
|
86
|
+
.filter((item) => item.d <= Math.max(3, Math.floor(name.length / 3)))
|
|
87
|
+
.sort((a, b) => a.d - b.d || a.candidate.localeCompare(b.candidate))
|
|
88
|
+
.slice(0, 3)
|
|
89
|
+
.map((item) => item.candidate);
|
|
90
|
+
}
|
|
91
|
+
function didYouMean(name, candidates) {
|
|
92
|
+
const close = nearest(name, candidates);
|
|
93
|
+
return close.length === 0 ? "" : ` Did you mean: ${close.join(", ")}?`;
|
|
94
|
+
}
|
|
95
|
+
function matchPattern(pattern, model, label) {
|
|
96
|
+
if (!pattern.includes("*")) {
|
|
97
|
+
if (model.byOperationId.has(pattern))
|
|
98
|
+
return { exact: true, ids: [pattern] };
|
|
99
|
+
throw new ScopeError(`oat: --ops "${label}" matches no operation.${didYouMean(pattern, model.byOperationId.keys())}`);
|
|
100
|
+
}
|
|
101
|
+
const re = globToRegExp(pattern);
|
|
102
|
+
const ids = [...model.byOperationId.keys()].filter((id) => re.test(id));
|
|
103
|
+
if (ids.length === 0)
|
|
104
|
+
throw new ScopeError(`oat: --ops "${label}" matches no operation.`);
|
|
105
|
+
return { exact: false, ids };
|
|
106
|
+
}
|
|
107
|
+
function untestableReason(op, model, authCreates) {
|
|
108
|
+
if (op.entity === null) {
|
|
109
|
+
return `unmodeled: no entity owns ${op.method.toUpperCase()} ${op.path}`;
|
|
110
|
+
}
|
|
111
|
+
const entity = model.entities.get(op.entity);
|
|
112
|
+
const why = entity === undefined ? `"${op.entity}" is not modeled` : untestableEntityReason(entity, model, authCreates);
|
|
113
|
+
if (why !== null)
|
|
114
|
+
return `entity-not-testable: ${why}`;
|
|
115
|
+
return `no-applicable-check: no check judges ${op.operationId}`;
|
|
116
|
+
}
|
|
117
|
+
export function resolveTargetScope(model, input) {
|
|
118
|
+
const ops = [...(input.ops ?? [])].map((s) => s.trim()).filter(Boolean);
|
|
119
|
+
const only = [...(input.only ?? [])].map((s) => s.trim()).filter(Boolean);
|
|
120
|
+
const authCreates = input.authCreates ?? new Set();
|
|
121
|
+
const testable = testableEntities(model, authCreates);
|
|
122
|
+
const requested = { only, ops };
|
|
123
|
+
if (ops.length === 0 && only.length === 0) {
|
|
124
|
+
return {
|
|
125
|
+
entities: testable,
|
|
126
|
+
excluded: [],
|
|
127
|
+
inScope: () => true,
|
|
128
|
+
mode: "full",
|
|
129
|
+
origins: new Map(),
|
|
130
|
+
requested,
|
|
131
|
+
targets: new Set(),
|
|
132
|
+
untestable: new Map(),
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
const targets = new Set();
|
|
136
|
+
const originTargets = new Map();
|
|
137
|
+
const excluded = [];
|
|
138
|
+
const admit = (id, exact, opModel, into, label) => {
|
|
139
|
+
const op = opModel.byOperationId.get(id);
|
|
140
|
+
const reason = op === undefined || input.exclusion === undefined ? null : input.exclusion.reason(op);
|
|
141
|
+
if (reason === null) {
|
|
142
|
+
into.add(id);
|
|
143
|
+
return;
|
|
144
|
+
}
|
|
145
|
+
if (exact) {
|
|
146
|
+
throw new ScopeError(`oat: target ${label} is excluded by --profile ${input.exclusion?.profile} (${reason}). ` +
|
|
147
|
+
`Drop it from --ops or run --profile full.`);
|
|
148
|
+
}
|
|
149
|
+
excluded.push({ operationId: label, reason });
|
|
150
|
+
};
|
|
151
|
+
for (const pattern of ops) {
|
|
152
|
+
const colon = pattern.indexOf(":");
|
|
153
|
+
const originId = colon > 0 ? pattern.slice(0, colon) : undefined;
|
|
154
|
+
const originModel = originId === undefined ? undefined : input.origins?.get(originId);
|
|
155
|
+
if (originId !== undefined && originModel !== undefined) {
|
|
156
|
+
const local = pattern.slice(colon + 1);
|
|
157
|
+
const into = originTargets.get(originId) ?? new Set();
|
|
158
|
+
originTargets.set(originId, into);
|
|
159
|
+
const matched = matchPattern(local, originModel, pattern);
|
|
160
|
+
for (const id of matched.ids)
|
|
161
|
+
admit(id, matched.exact, originModel, into, `${originId}:${id}`);
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (originId !== undefined && !model.byOperationId.has(pattern) && input.origins !== undefined) {
|
|
165
|
+
const known = [...input.origins.keys()];
|
|
166
|
+
if (!known.includes(originId)) {
|
|
167
|
+
throw new ScopeError(`oat: --ops "${pattern}" names origin "${originId}", which is not configured.` +
|
|
168
|
+
(known.length === 0 ? "" : ` Known: ${known.join(", ")}.`));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const matched = matchPattern(pattern, model, pattern);
|
|
172
|
+
for (const id of matched.ids)
|
|
173
|
+
admit(id, matched.exact, model, targets, id);
|
|
174
|
+
}
|
|
175
|
+
for (const name of only) {
|
|
176
|
+
let found = false;
|
|
177
|
+
if (model.entities.has(name)) {
|
|
178
|
+
found = true;
|
|
179
|
+
for (const op of model.operations)
|
|
180
|
+
if (op.entity === name)
|
|
181
|
+
admit(op.operationId, false, model, targets, op.operationId);
|
|
182
|
+
}
|
|
183
|
+
for (const [originId, originModel] of input.origins ?? []) {
|
|
184
|
+
if (!originModel.entities.has(name))
|
|
185
|
+
continue;
|
|
186
|
+
found = true;
|
|
187
|
+
const into = originTargets.get(originId) ?? new Set();
|
|
188
|
+
originTargets.set(originId, into);
|
|
189
|
+
for (const op of originModel.operations) {
|
|
190
|
+
if (op.entity === name)
|
|
191
|
+
admit(op.operationId, false, originModel, into, `${originId}:${op.operationId}`);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (!found) {
|
|
195
|
+
const known = [
|
|
196
|
+
...model.entities.keys(),
|
|
197
|
+
...[...(input.origins?.values() ?? [])].flatMap((m) => [...m.entities.keys()]),
|
|
198
|
+
];
|
|
199
|
+
throw new ScopeError(`oat: --only "${name}" names no entity.${didYouMean(name, known)}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const graded = new Set();
|
|
203
|
+
const entities = testable.filter((entity) => {
|
|
204
|
+
const subjects = staticSubjects(entity, model);
|
|
205
|
+
const hit = [...subjects].some((id) => targets.has(id));
|
|
206
|
+
if (hit)
|
|
207
|
+
for (const id of subjects)
|
|
208
|
+
if (targets.has(id))
|
|
209
|
+
graded.add(id);
|
|
210
|
+
return hit;
|
|
211
|
+
});
|
|
212
|
+
const untestable = new Map();
|
|
213
|
+
for (const id of targets) {
|
|
214
|
+
if (graded.has(id))
|
|
215
|
+
continue;
|
|
216
|
+
const op = model.byOperationId.get(id);
|
|
217
|
+
if (op !== undefined)
|
|
218
|
+
untestable.set(id, untestableReason(op, model, authCreates));
|
|
219
|
+
}
|
|
220
|
+
const origins = new Map();
|
|
221
|
+
for (const [originId, ids] of originTargets)
|
|
222
|
+
if (ids.size > 0)
|
|
223
|
+
origins.set(originId, [...ids]);
|
|
224
|
+
return {
|
|
225
|
+
entities,
|
|
226
|
+
excluded,
|
|
227
|
+
inScope: (operationId) => targets.has(operationId),
|
|
228
|
+
mode: "targeted",
|
|
229
|
+
origins,
|
|
230
|
+
requested,
|
|
231
|
+
targets,
|
|
232
|
+
untestable,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/** Which checks graded which operations, filled as checks run. */
|
|
236
|
+
export class GradeLedger {
|
|
237
|
+
ran = new Map();
|
|
238
|
+
suppressed = new Map();
|
|
239
|
+
needs = new Map();
|
|
240
|
+
#add(map, operations, value) {
|
|
241
|
+
for (const op of operations) {
|
|
242
|
+
const set = map.get(op) ?? new Set();
|
|
243
|
+
set.add(value);
|
|
244
|
+
map.set(op, set);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
graded(operations, check) {
|
|
248
|
+
this.#add(this.ran, operations, check);
|
|
249
|
+
}
|
|
250
|
+
suppress(operations, check) {
|
|
251
|
+
this.#add(this.suppressed, operations, check);
|
|
252
|
+
}
|
|
253
|
+
skipped(operations, needs) {
|
|
254
|
+
this.#add(this.needs, operations, needs);
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
const NOT_DEFECTS = new Set(["COVERAGE_GAP", "BLOCKED"]);
|
|
258
|
+
/** The operation an exchange hit, preferring literal segments over parameters on a tie. */
|
|
259
|
+
export function operationFor(model, method, url, baseUrl) {
|
|
260
|
+
let pathname;
|
|
261
|
+
let basePath;
|
|
262
|
+
try {
|
|
263
|
+
pathname = new URL(url).pathname;
|
|
264
|
+
basePath = new URL(baseUrl).pathname.replace(/\/$/, "");
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
return null;
|
|
268
|
+
}
|
|
269
|
+
const local = basePath !== "" && pathname.startsWith(basePath) ? pathname.slice(basePath.length) : pathname;
|
|
270
|
+
let best = null;
|
|
271
|
+
let bestParams = Number.POSITIVE_INFINITY;
|
|
272
|
+
for (const op of model.operations) {
|
|
273
|
+
if (op.method.toUpperCase() !== method.toUpperCase())
|
|
274
|
+
continue;
|
|
275
|
+
if (!pathTemplateMatches(op.path, local) && !pathTemplateMatches(op.path, pathname))
|
|
276
|
+
continue;
|
|
277
|
+
if (op.pathParams.length < bestParams) {
|
|
278
|
+
best = op;
|
|
279
|
+
bestParams = op.pathParams.length;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
return best;
|
|
283
|
+
}
|
|
284
|
+
function statusOf(held, failed, inconclusive, blocked) {
|
|
285
|
+
if (failed > 0)
|
|
286
|
+
return "failed";
|
|
287
|
+
if (held > 0)
|
|
288
|
+
return "held";
|
|
289
|
+
if (inconclusive > 0)
|
|
290
|
+
return "inconclusive";
|
|
291
|
+
return blocked ? "blocked" : "untested";
|
|
292
|
+
}
|
|
293
|
+
export function buildScopeReport(input) {
|
|
294
|
+
const { model, scope, ledger } = input;
|
|
295
|
+
const graded = new Set();
|
|
296
|
+
for (const entity of scope.entities)
|
|
297
|
+
for (const id of staticSubjects(entity, model))
|
|
298
|
+
graded.add(id);
|
|
299
|
+
const ids = scope.mode === "targeted" ? [...scope.targets].sort() : model.operations.map((op) => op.operationId);
|
|
300
|
+
const operations = ids.map((operationId) => {
|
|
301
|
+
const op = model.byOperationId.get(operationId);
|
|
302
|
+
const mine = (attributed) => attributed?.includes(operationId) === true;
|
|
303
|
+
const defects = input.findings.filter((f) => mine(f.operations) && !NOT_DEFECTS.has(f.verdict));
|
|
304
|
+
const blocked = input.findings.filter((f) => mine(f.operations) && f.verdict === "BLOCKED");
|
|
305
|
+
const failed = [...new Set(defects.map((f) => f.check))].sort();
|
|
306
|
+
const inconclusive = [...new Set(input.inconclusive.filter((i) => mine(i.operations)).map((i) => i.check))]
|
|
307
|
+
.filter((check) => !failed.includes(check))
|
|
308
|
+
.sort();
|
|
309
|
+
const ran = ledger.ran.get(operationId) ?? new Set();
|
|
310
|
+
const gapFindings = input.findings.filter((f) => mine(f.operations) && f.verdict === "COVERAGE_GAP" && ran.has(f.check));
|
|
311
|
+
const gaps = [...new Set(gapFindings.map((f) => f.check))].filter((check) => !failed.includes(check)).sort();
|
|
312
|
+
const held = [...ran]
|
|
313
|
+
.filter((check) => !failed.includes(check) && !inconclusive.includes(check) && !gaps.includes(check))
|
|
314
|
+
.sort();
|
|
315
|
+
const suppressed = [...(ledger.suppressed.get(operationId) ?? [])].sort();
|
|
316
|
+
const status = statusOf(held.length, failed.length, inconclusive.length, suppressed.length > 0 || blocked.length > 0);
|
|
317
|
+
let reason = null;
|
|
318
|
+
if (status === "blocked") {
|
|
319
|
+
reason = blocked[0]?.detail ?? `suppressed by an earlier failure (${suppressed.join(", ")})`;
|
|
320
|
+
}
|
|
321
|
+
else if (status === "untested") {
|
|
322
|
+
const statically = scope.untestable.get(operationId) ??
|
|
323
|
+
(op !== undefined && !graded.has(operationId) ? untestableReason(op, model, input.authCreates) : undefined);
|
|
324
|
+
const needs = [...(ledger.needs.get(operationId) ?? [])];
|
|
325
|
+
reason =
|
|
326
|
+
statically ??
|
|
327
|
+
(gapFindings[0] === undefined ? undefined : `coverage gap: ${gapFindings[0].summary}`) ??
|
|
328
|
+
(needs.length > 0 ? `no check applied: needs ${needs.slice(0, 3).join("; ")}` : "no check exercised it");
|
|
329
|
+
}
|
|
330
|
+
return {
|
|
331
|
+
checks: { failed, gaps, held, inconclusive, suppressed },
|
|
332
|
+
entity: op?.entity ?? null,
|
|
333
|
+
findings: defects.length,
|
|
334
|
+
operationId,
|
|
335
|
+
reason,
|
|
336
|
+
status,
|
|
337
|
+
};
|
|
338
|
+
});
|
|
339
|
+
const support = new Map();
|
|
340
|
+
if (scope.mode === "targeted") {
|
|
341
|
+
for (const exchange of input.transcript) {
|
|
342
|
+
const named = exchange.operationId === undefined ? undefined : model.byOperationId.get(exchange.operationId);
|
|
343
|
+
const op = named ?? operationFor(model, exchange.method, exchange.url, input.baseUrl);
|
|
344
|
+
if (op === null || scope.targets.has(op.operationId))
|
|
345
|
+
continue;
|
|
346
|
+
const use = support.get(op.operationId) ?? { calls: 0, non2xx: 0, operationId: op.operationId };
|
|
347
|
+
use.calls++;
|
|
348
|
+
if (exchange.status < 200 || exchange.status >= 300) {
|
|
349
|
+
use.non2xx++;
|
|
350
|
+
use.firstFailure ??= { requestId: exchange.requestId, status: exchange.status };
|
|
351
|
+
}
|
|
352
|
+
support.set(op.operationId, use);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return {
|
|
356
|
+
excluded: scope.excluded,
|
|
357
|
+
mode: scope.mode,
|
|
358
|
+
operations,
|
|
359
|
+
originsSkipped: [],
|
|
360
|
+
requested: scope.requested,
|
|
361
|
+
support: [...support.values()].sort((a, b) => a.operationId.localeCompare(b.operationId)),
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
/** `--ops a,b --only c` as the reader typed it. */
|
|
365
|
+
export function describeRequested(requested) {
|
|
366
|
+
return [
|
|
367
|
+
...(requested.ops.length > 0 ? [`--ops ${requested.ops.join(",")}`] : []),
|
|
368
|
+
...(requested.only.length > 0 ? [`--only ${requested.only.join(",")}`] : []),
|
|
369
|
+
].join(" ");
|
|
370
|
+
}
|
|
371
|
+
/** The scope a run would take, with no network: what `oat plan --ops` prints. */
|
|
372
|
+
export function planScope(model, scope) {
|
|
373
|
+
const checksFor = new Map();
|
|
374
|
+
for (const entity of scope.entities) {
|
|
375
|
+
for (const check of CHECKS) {
|
|
376
|
+
for (const id of check.subjects(entity, model)) {
|
|
377
|
+
if (!scope.inScope(id))
|
|
378
|
+
continue;
|
|
379
|
+
const set = checksFor.get(id) ?? new Set();
|
|
380
|
+
set.add(check.id);
|
|
381
|
+
checksFor.set(id, set);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
const support = new Set();
|
|
386
|
+
const parents = (op, seen) => {
|
|
387
|
+
if (op === undefined || seen.has(op.operationId))
|
|
388
|
+
return;
|
|
389
|
+
seen.add(op.operationId);
|
|
390
|
+
for (const param of op.pathParams) {
|
|
391
|
+
const owner = owningEntityName(op.path, param);
|
|
392
|
+
const create = owner === null ? undefined : model.byOperationId.get(model.entities.get(owner)?.create ?? "");
|
|
393
|
+
if (create === undefined || create.operationId === op.operationId)
|
|
394
|
+
continue;
|
|
395
|
+
support.add(create.operationId);
|
|
396
|
+
parents(create, seen);
|
|
397
|
+
}
|
|
398
|
+
};
|
|
399
|
+
for (const entity of scope.entities) {
|
|
400
|
+
for (const id of [entity.create, entity.list, entity.read, entity.delete])
|
|
401
|
+
if (id !== undefined)
|
|
402
|
+
support.add(id);
|
|
403
|
+
parents(model.byOperationId.get(entity.create ?? ""), new Set());
|
|
404
|
+
}
|
|
405
|
+
const ids = scope.mode === "targeted" ? [...scope.targets].sort() : [...checksFor.keys()].sort();
|
|
406
|
+
return {
|
|
407
|
+
entities: scope.entities.map((entity) => entity.name),
|
|
408
|
+
excluded: scope.excluded,
|
|
409
|
+
mode: scope.mode,
|
|
410
|
+
origins: Object.fromEntries(scope.origins),
|
|
411
|
+
requested: scope.requested,
|
|
412
|
+
support: [...support].filter((id) => scope.mode === "full" || !scope.targets.has(id)).sort(),
|
|
413
|
+
targets: ids
|
|
414
|
+
.filter((id) => !scope.untestable.has(id))
|
|
415
|
+
.map((operationId) => ({
|
|
416
|
+
checks: [...(checksFor.get(operationId) ?? [])].sort(),
|
|
417
|
+
entity: model.byOperationId.get(operationId)?.entity ?? null,
|
|
418
|
+
operationId,
|
|
419
|
+
})),
|
|
420
|
+
untestable: [...scope.untestable].map(([operationId, reason]) => ({ operationId, reason })),
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
//# sourceMappingURL=scope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope.js","sourceRoot":"","sources":["../../src/runtime/scope.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime/world.d.ts
CHANGED
|
@@ -24,9 +24,14 @@ export declare class SeedError extends Error {
|
|
|
24
24
|
readonly cause_: string;
|
|
25
25
|
/** Status the failing request returned, when the failure was an HTTP response. */
|
|
26
26
|
readonly status?: number | undefined;
|
|
27
|
+
/** The create that failed, when the failure was one — a parent's, not always the entity's own. */
|
|
28
|
+
readonly operationId?: string | undefined;
|
|
29
|
+
readonly exchange?: Exchange | undefined;
|
|
27
30
|
constructor(cause_: string, message: string,
|
|
28
31
|
/** Status the failing request returned, when the failure was an HTTP response. */
|
|
29
|
-
status?: number | undefined
|
|
32
|
+
status?: number | undefined,
|
|
33
|
+
/** The create that failed, when the failure was one — a parent's, not always the entity's own. */
|
|
34
|
+
operationId?: string | undefined, exchange?: Exchange | undefined);
|
|
30
35
|
}
|
|
31
36
|
export declare function fillPath(template: string, values: Record<string, string>): string;
|
|
32
37
|
/**
|
|
@@ -51,7 +56,7 @@ export interface WorldOptions {
|
|
|
51
56
|
* Resolves every path parameter an operation needs. Roots come from config; everything else is
|
|
52
57
|
* created through the owning entity's create operation, depth-first.
|
|
53
58
|
*/
|
|
54
|
-
export declare function
|
|
59
|
+
export declare function resolvePathScope(op: OperationModel, model: SpecModel, client: Client, options: WorldOptions, scope?: Scope): Promise<Scope>;
|
|
55
60
|
export declare function requestSchemaOf(op: OperationModel, model: SpecModel): Record<string, unknown> | null;
|
|
56
61
|
export interface SeededCohort {
|
|
57
62
|
members: CohortMember[];
|
|
@@ -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;
|
|
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
|
@@ -16,12 +16,18 @@ import { describeFeatureGate, isDocumentedFeatureGateDenial } from "./feature-ga
|
|
|
16
16
|
export class SeedError extends Error {
|
|
17
17
|
cause_;
|
|
18
18
|
status;
|
|
19
|
+
operationId;
|
|
20
|
+
exchange;
|
|
19
21
|
constructor(cause_, message,
|
|
20
22
|
/** Status the failing request returned, when the failure was an HTTP response. */
|
|
21
|
-
status
|
|
23
|
+
status,
|
|
24
|
+
/** The create that failed, when the failure was one — a parent's, not always the entity's own. */
|
|
25
|
+
operationId, exchange) {
|
|
22
26
|
super(message);
|
|
23
27
|
this.cause_ = cause_;
|
|
24
28
|
this.status = status;
|
|
29
|
+
this.operationId = operationId;
|
|
30
|
+
this.exchange = exchange;
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
33
|
export function fillPath(template, values) {
|
|
@@ -95,7 +101,7 @@ export async function listExisting(listOp, client, headers, values) {
|
|
|
95
101
|
* Resolves every path parameter an operation needs. Roots come from config; everything else is
|
|
96
102
|
* created through the owning entity's create operation, depth-first.
|
|
97
103
|
*/
|
|
98
|
-
export async function
|
|
104
|
+
export async function resolvePathScope(op, model, client, options, scope = { created: [], values: {} }) {
|
|
99
105
|
for (const param of op.pathParams) {
|
|
100
106
|
if (scope.values[param] !== undefined)
|
|
101
107
|
continue;
|
|
@@ -115,7 +121,7 @@ export async function resolveScope(op, model, client, options, scope = { created
|
|
|
115
121
|
const createOp = model.byOperationId.get(entity.create);
|
|
116
122
|
if (createOp === undefined)
|
|
117
123
|
throw new SeedError(param, `missing operation ${entity.create}`);
|
|
118
|
-
await
|
|
124
|
+
await resolvePathScope(createOp, model, client, options, scope);
|
|
119
125
|
const created = await createOne(createOp, model, client, options, scope);
|
|
120
126
|
const identity = entity.identity ?? "id";
|
|
121
127
|
const id = created[identity];
|
|
@@ -169,7 +175,7 @@ async function createOne(createOp, model, client, options, scope) {
|
|
|
169
175
|
if (reused !== null)
|
|
170
176
|
return reused;
|
|
171
177
|
}
|
|
172
|
-
throw new SeedError(createOp.operationId, `${createOp.operationId} returned ${exchange.status}: ${JSON.stringify(exchange.responseBody).slice(0, 300)}`, exchange.status);
|
|
178
|
+
throw new SeedError(createOp.operationId, `${createOp.operationId} returned ${exchange.status}: ${JSON.stringify(exchange.responseBody).slice(0, 300)}`, exchange.status, createOp.operationId, exchange);
|
|
173
179
|
}
|
|
174
180
|
return (exchange.responseBody ?? {});
|
|
175
181
|
}
|
|
@@ -270,14 +276,14 @@ export async function seedCohort(createOp, model, client, options, scope) {
|
|
|
270
276
|
});
|
|
271
277
|
}
|
|
272
278
|
throw new SeedError(createOp.operationId, `seeding "${member.variant}" returned ${exchange.status}: ` +
|
|
273
|
-
JSON.stringify(exchange.responseBody).slice(0, 300), exchange.status);
|
|
279
|
+
JSON.stringify(exchange.responseBody).slice(0, 300), exchange.status, createOp.operationId, exchange);
|
|
274
280
|
}
|
|
275
281
|
if (isPlanLimitResponse(exchange.status, exchange.responseBody)) {
|
|
276
282
|
const adopted = await adoptExisting(createOp, model, client, options, scope);
|
|
277
283
|
if (adopted !== null)
|
|
278
284
|
return withGap({ adopted: true, featureGate: null, members: seededMembers, records: [adopted] });
|
|
279
285
|
}
|
|
280
|
-
throw new SeedError(createOp.operationId, `seeding "${member.variant}" returned ${exchange.status}: ` + JSON.stringify(exchange.responseBody).slice(0, 300), exchange.status);
|
|
286
|
+
throw new SeedError(createOp.operationId, `seeding "${member.variant}" returned ${exchange.status}: ` + JSON.stringify(exchange.responseBody).slice(0, 300), exchange.status, createOp.operationId, exchange);
|
|
281
287
|
};
|
|
282
288
|
let lastFail;
|
|
283
289
|
const outcomes = await forEachInvocation(createOp.operationId, uploads, async (nextUploads, slot) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,EAAqB,WAAW,EAAE,0BAA0B,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACxH,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAC9F,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAA;AAWtF,MAAM,OAAO,SAAU,SAAQ,KAAK;IAEzB;IAGA;IAJV,YACU,MAAc,EACvB,OAAe;IACf,kFAAkF;IACzE,MAAe;QAExB,KAAK,CAAC,OAAO,CAAC,CAAA;QALL,WAAM,GAAN,MAAM,CAAQ;QAGd,WAAM,GAAN,MAAM,CAAS;IAGzB,CAAC;CACD;AAED,MAAM,UAAU,QAAQ,CAAC,QAAgB,EAAE,MAA8B;IACxE,OAAO,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAY,EAAE,EAAE;QAC3D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;QAC1B,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,IAAI,EAAE,gCAAgC,IAAI,GAAG,CAAC,CAAA;QAC3F,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,IAAa;IAChE,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,IAAI,CAAA;IAC/B,IAAI,MAAM,GAAG,GAAG,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,KAAK,CAAA;IACjE,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,CAAA;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,IAAa;IACrC,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAC1D,MAAM,GAAG,GAAG,IAA+B,CAAA;IAC3C,MAAM,UAAU,GAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,CAAA;IACxG,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACrB,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAA+B,CAAA;QAC7C,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;IACtE,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,SAAQ;QAC3C,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QAC1C,IAAI,UAAU,KAAK,kBAAkB,IAAI,UAAU,KAAK,YAAY,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAC3G,OAAO,UAAU,CAAA;QAClB,CAAC;IACF,CAAC;IACD,OAAO,IAAI,CAAA;AACZ,CAAC;AAED,+FAA+F;AAC/F,MAAM,UAAU,eAAe,CAAC,IAAa,EAAE,aAA4B;IAC1E,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,IAAiB,CAAA;IACjD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QACzE,MAAM,KAAK,GAAI,IAAgC,CAAC,aAAa,CAAC,CAAA;QAC9D,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAmB,CAAC,CAAC,CAAC,EAAE,CAAA;IACxD,CAAC;IACD,OAAO,EAAE,CAAA;AACV,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,MAAsB,EACtB,MAAc,EACd,OAAgE,EAChE,MAA8B;IAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,OAAO,EAAE,CAAA;IAC3C,CAAC;IACD,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QACnG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;YAAE,OAAO,EAAE,CAAA;QACrC,OAAO,eAAe,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,IAAI,IAAI,CAAC,CAAA;IAC9E,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAA;IACV,CAAC;AACF,CAAC;AAUD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,EAAkB,EAClB,KAAgB,EAChB,MAAc,EACd,OAAqB,EACrB,QAAe,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAE1C,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;YAAE,SAAQ;QAE/C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QACrC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAA;YAC9B,SAAQ;QACT,CAAC;QAED,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC9C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,mBAAmB,KAAK,kCAAkC,CAAC,CAAA;QACvF,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACxC,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,SAAS,CAClB,KAAK,EACL,IAAI,KAAK,mBAAmB,KAAK,wDAAwD,CACzF,CAAA;QACF,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvD,IAAI,QAAQ,KAAK,SAAS;YAAE,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,qBAAqB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;QAE5F,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QAC3D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;QACxE,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAA;QACxC,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;QAC5B,IAAI,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,SAAS,CAAC,KAAK,EAAE,eAAe,KAAK,yBAAyB,QAAQ,GAAG,CAAC,CAAA;QACrF,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;QAChC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;YAClB,MAAM,EAAE,KAAK;YACb,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC;YACd,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;SAC3C,CAAC,CAAA;IACH,CAAC;IACD,OAAO,KAAK,CAAA;AACb,CAAC;AAED,KAAK,UAAU,SAAS,CACvB,QAAwB,EACxB,KAAgB,EAChB,MAAc,EACd,OAAqB,EACrB,KAAY;IAEZ,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC/C,IAAI,MAAgC,CAAA;IACpC,IAAI,CAAC;QACJ,CAAC;QAAA,CAAC,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;IACxF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,eAAe,CAAC,KAAK,CAAC;YAAE,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QAC3E,MAAM,KAAK,CAAA;IACZ,CAAC;IACD,IAAI,IAAI,GAAG,MAAM,EAAE,IAAI,IAAI,EAAE,CAAA;IAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC;wEACgE;QAChE,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;IACpF,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACvC,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,aAAa,CAAC,OAAO,CAAC,EACtB,MAAM,EAAE,OAAO,IAAI,UAAU,EAC7B,CAAC,CACD,CAAA;IACD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE;QACpF,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;QAClF,OAAO,EAAE,OAAO,CAAC,WAAW;QAC5B,WAAW,EAAE,QAAQ,CAAC,WAAW;KACjC,CAAC,CAAA;IACF,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC5B;iEACyD;QACzD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3E,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAA;QACnC,CAAC;QACD,IAAI,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAC3E,IAAI,MAAM,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAA;QACnC,CAAC;QACD,MAAM,IAAI,SAAS,CAClB,QAAQ,CAAC,WAAW,EACpB,GAAG,QAAQ,CAAC,WAAW,aAAa,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAC7G,QAAQ,CAAC,MAAM,CACf,CAAA;IACF,CAAC;IACD,OAAO,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAY,CAAA;AAChD,CAAC;AAED,qFAAqF;AACrF,KAAK,UAAU,aAAa,CAC3B,QAAwB,EACxB,KAAgB,EAChB,MAAc,EACd,OAAqB,EACrB,KAAY;IAEZ,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC5B,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACvC,IAAI,MAAM,EAAE,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3C,MAAM,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACnD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAA;IACrC,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IAC9G,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAA;IACxC,OAAO,CACN,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;QACvB,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;QAC3B,OAAO,OAAO,EAAE,KAAK,QAAQ,IAAI,OAAO,EAAE,KAAK,QAAQ,CAAA;IACxD,CAAC,CAAC,IAAI,IAAI,CACV,CAAA;AACF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAAkB,EAAE,KAAgB;IACnE,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,CAAC,CAAA;IACnD,MAAM,MAAM,GAAG,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC7D,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAA;AAC9C,CAAC;AA2BD,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC/B,QAAwB,EACxB,KAAgB,EAChB,MAAc,EACd,OAAqB,EACrB,KAAY;IAEZ,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC/C,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACrB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,WAAW,2BAA2B,CAAC,CAAA;IAC9F,CAAC;IACD,IAAI,OAAuB,CAAA;IAC3B,IAAI,SAA6B,CAAA;IACjC,IAAI,CAAC;QACJ,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,KAAK,CACzF,CAAC,EACD,OAAO,CAAC,UAAU,IAAI,CAAC,CACvB,CAAA;QACD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;QACrF,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAA;QAC1B,IAAI,QAAQ,CAAC,GAAG,KAAK,IAAI;YAAE,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAA;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACzF,MAAM,MAAM,GAAG,MAAM,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC5F,MAAM,QAAQ,GACb,MAAM,KAAK,SAAS;YACnB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;QAClG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/D,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACvC,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;gBACtB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,QAAQ,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACtG,IAAI,GAAG,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,KAAK,GAAG,KAAK,EAAE,CAAC,CAAA;gBACpF,CAAC;gBACD,OAAO,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,CAAA;YAC3B,CAAC,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,eAAe,CAAC,KAAK,CAAC;YAAE,MAAM,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;QAC3E,MAAM,KAAK,CAAA;IACZ,CAAC;IACD,MAAM,OAAO,GAAc,EAAE,CAAA;IAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAClD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA;IACtC,MAAM,aAAa,GAAmB,EAAE,CAAA;IAExC,MAAM,UAAU,GAAG,KAAK,EAAE,MAAoB,EAAE,WAA2B,EAAqB,EAAE;QACjG,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;QACnH,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,CAAC,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC;YAClF,OAAO,EAAE,OAAO,CAAC,WAAW;YAC5B,WAAW,EAAE,QAAQ,CAAC,WAAW;YACjC,GAAG,CAAC,WAAW,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SACvF,CAAC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,OAAO,GAAG,CAAC,MAAoB,EAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAA;IAErH,MAAM,WAAW,GAAG,KAAK,EAAE,MAAoB,EAAE,QAAkB,EAAgC,EAAE;QACpG,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAA;QAC9F,IAAI,6BAA6B,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrF,OAAO,OAAO,CAAC;gBACd,WAAW,EAAE;oBACZ,MAAM,EAAE,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC;oBAC5D,QAAQ;oBACR,GAAG,EAAE,QAAQ,CAAC,WAAqB;iBACnC;gBACD,OAAO,EAAE,aAAa;gBACtB,OAAO;aACP,CAAC,CAAA;QACH,CAAC;QACD,IAAI,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAC5E,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,OAAO,CAAC;oBACd,WAAW,EAAE,IAAI;oBACjB,OAAO,EAAE,aAAa;oBACtB,OAAO,EAAE,CAAC,OAAO,CAAC;oBAClB,aAAa,EAAE,IAAI;iBACnB,CAAC,CAAA;YACH,CAAC;YACD,MAAM,IAAI,SAAS,CAClB,QAAQ,CAAC,WAAW,EACpB,YAAY,MAAM,CAAC,OAAO,cAAc,QAAQ,CAAC,MAAM,IAAI;gBAC1D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACpD,QAAQ,CAAC,MAAM,CACf,CAAA;QACF,CAAC;QACD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACjE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAA;YAC5E,IAAI,OAAO,KAAK,IAAI;gBACnB,OAAO,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QAClG,CAAC;QACD,MAAM,IAAI,SAAS,CAClB,QAAQ,CAAC,WAAW,EACpB,YAAY,MAAM,CAAC,OAAO,cAAc,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACjH,QAAQ,CAAC,MAAM,CACf,CAAA;IACF,CAAC,CAAA;IAED,IAAI,QAAkE,CAAA;IACtE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;QACnG,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAA;YAC1B,MAAM,MAAM,GAAG,QAAQ,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,UAAmB,EAAE,CAAA;YACrE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YACtD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;gBAC5B,QAAQ,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;gBAC/B,OAAO,IAAI,CAAA;YACZ,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAY,CAAC,CAAA;YACtD,OAAO,IAAI,CAAA;QACZ,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;YACtD,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG;gBAAE,OAAO,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;YAChE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAY,CAAC,CAAA;QACvD,CAAC;QACD,OAAO,IAAI,CAAA;IACZ,CAAC,CAAC,CAAA;IACF,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;IAC1D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;QACpE,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,MAAM,CAAA;IACnC,CAAC;IACD,OAAO,OAAO,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;AAC5G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IACnD,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9C,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;YAAE,SAAQ;QACzC,MAAM,EAAE,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,EAAE,KAAK,SAAS;YAAE,SAAQ;QAC9B,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;QAC/C,IAAI,CAAC;YACJ,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,CAAA;gBACpD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;YAC/D,CAAC;QACF,CAAC;IACF,CAAC;AACF,CAAC;AAED,SAAS,aAAa,CAAC,OAAqB;IAC3C,OAAO,CACN,OAAO,CAAC,OAAO,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;KAClB,CACD,CAAA;AACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"world.js","sourceRoot":"","sources":["../../src/runtime/world.ts"],"names":[],"mappings":"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"}
|