@lovrozagar/oat 0.10.0 → 0.12.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 +8 -9
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +60 -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 +88 -20
- package/dist/runtime/checks.d.ts.map +1 -1
- package/dist/runtime/checks.js +3288 -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 +374 -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 +11 -1
- package/dist/spec/extensions.d.ts.map +1 -1
- package/dist/spec/extensions.js +10 -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 +144 -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 +403 -0
- package/package.json +3 -1
package/dist/cli.js
CHANGED
|
@@ -1,61 +1,106 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { EXIT, exitCode } from "./runtime/exit.js";
|
|
2
3
|
import { createWriteStream, writeFileSync } from "node:fs";
|
|
3
4
|
import { mkdir, writeFile } from "node:fs/promises";
|
|
4
5
|
import { dirname, resolve } from "node:path";
|
|
5
6
|
import { pathToFileURL } from "node:url";
|
|
6
7
|
import { interpolate, loadConfig } from "./config/load.js";
|
|
8
|
+
import { configProblems } from "./config/validate.js";
|
|
7
9
|
import { report } from "./report/console.js";
|
|
8
10
|
import { renderMatrixGraph, renderMatrixHtml } from "./report/matrix.js";
|
|
9
11
|
import { ISSUE_REPRO_DIR, renderConsole, renderJson, renderMarkdown, renderRepros } from "./report/render.js";
|
|
10
12
|
import { createProgressPump, createStderrProgress, formatProgressJsonl, formatProgressLine, formatProgressTsv, PROGRESS_GLOSSARY, PROGRESS_TSV_HEADER, } from "./runtime/progress.js";
|
|
11
13
|
import { resolveSaveExchanges } from "./runtime/exchanges.js";
|
|
12
|
-
import { allocateRunDir, DEFAULT_RUNS_ROOT } from "./runtime/runs.js";
|
|
14
|
+
import { allocateRunDir, DEFAULT_RUNS_ROOT, publishLatest } from "./runtime/runs.js";
|
|
13
15
|
import { authStepOperationIds, planScope, resolveTargetScope, ScopeError } from "./runtime/scope.js";
|
|
14
16
|
import { renderTeardown } from "./runtime/teardown.js";
|
|
15
17
|
import { buildModel } from "./spec/graph.js";
|
|
16
18
|
import { dereference, loadSpec } from "./spec/load.js";
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"seed",
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
|
|
19
|
+
/** Every flag, once: whether it takes a value, and what kind. Parsing and help both read this. */
|
|
20
|
+
export const FLAGS = {
|
|
21
|
+
backend: { kind: "value" },
|
|
22
|
+
"base-url": { kind: "value" },
|
|
23
|
+
config: { kind: "value" },
|
|
24
|
+
defects: { kind: "value" },
|
|
25
|
+
dialect: { kind: "value" },
|
|
26
|
+
fuzz: { kind: "optional-value", number: "positive" },
|
|
27
|
+
"fuzz-seed": { kind: "value", number: "positive" },
|
|
28
|
+
help: { kind: "boolean" },
|
|
29
|
+
jobs: { kind: "value", number: "positive" },
|
|
30
|
+
json: { kind: "boolean" },
|
|
31
|
+
"keep-fixtures": { kind: "boolean" },
|
|
32
|
+
"max-defects": { kind: "value", number: "positive" },
|
|
33
|
+
"max-in-flight": { kind: "value", number: "positive" },
|
|
34
|
+
"no-save-exchanges": { kind: "boolean" },
|
|
35
|
+
only: { kind: "value" },
|
|
36
|
+
ops: { kind: "value" },
|
|
37
|
+
out: { kind: "value" },
|
|
38
|
+
parser: { kind: "boolean" },
|
|
39
|
+
precision: { kind: "optional-value", number: "positive" },
|
|
40
|
+
profile: { kind: "value" },
|
|
41
|
+
quiet: { kind: "boolean" },
|
|
42
|
+
"save-exchanges": { kind: "boolean" },
|
|
43
|
+
seed: { kind: "value", number: "integer" },
|
|
44
|
+
"skip-backend": { kind: "value" },
|
|
45
|
+
spec: { kind: "value" },
|
|
46
|
+
untagged: { kind: "boolean" },
|
|
47
|
+
};
|
|
48
|
+
export const KNOWN_FLAGS = new Set(Object.keys(FLAGS));
|
|
49
|
+
/**
|
|
50
|
+
* `oat <command> [--flag value | --flag=value | --switch] …`. A value flag must have its value;
|
|
51
|
+
* a switch takes none; a numeric value must be one. The first problem is returned as `error`
|
|
52
|
+
* rather than guessed around: `--max-in-flight -1` once hung a run, `--seed abc` seeded strings
|
|
53
|
+
* with `NaN`, and a flag followed by another flag silently became `true`.
|
|
54
|
+
*/
|
|
41
55
|
export function parseArgs(argv) {
|
|
42
|
-
const
|
|
56
|
+
const leadingFlag = argv[0]?.startsWith("--") === true;
|
|
57
|
+
const command = leadingFlag ? "help" : (argv[0] ?? "help");
|
|
58
|
+
const rest = leadingFlag ? argv : argv.slice(1);
|
|
43
59
|
const flags = {};
|
|
60
|
+
let error;
|
|
61
|
+
const fail = (message) => {
|
|
62
|
+
error ??= message;
|
|
63
|
+
};
|
|
44
64
|
for (let i = 0; i < rest.length; i++) {
|
|
45
65
|
const token = rest[i];
|
|
46
66
|
if (token === undefined || !token.startsWith("--"))
|
|
47
67
|
continue;
|
|
48
|
-
const
|
|
68
|
+
const equals = token.indexOf("=");
|
|
69
|
+
const key = equals === -1 ? token.slice(2) : token.slice(2, equals);
|
|
70
|
+
const inline = equals === -1 ? undefined : token.slice(equals + 1);
|
|
71
|
+
const spec = FLAGS[key];
|
|
49
72
|
const next = rest[i + 1];
|
|
50
|
-
|
|
51
|
-
|
|
73
|
+
const nextIsValue = next !== undefined && !next.startsWith("--");
|
|
74
|
+
let value;
|
|
75
|
+
if (spec === undefined || spec.kind === "boolean") {
|
|
76
|
+
if (inline !== undefined && spec !== undefined)
|
|
77
|
+
fail(`--${key} takes no value`);
|
|
78
|
+
value = inline ?? true;
|
|
79
|
+
}
|
|
80
|
+
else if (inline !== undefined) {
|
|
81
|
+
value = inline;
|
|
82
|
+
}
|
|
83
|
+
else if (nextIsValue) {
|
|
84
|
+
value = next;
|
|
52
85
|
i++;
|
|
53
86
|
}
|
|
87
|
+
else if (spec.kind === "optional-value") {
|
|
88
|
+
value = true;
|
|
89
|
+
}
|
|
54
90
|
else {
|
|
55
|
-
|
|
91
|
+
fail(`--${key} needs a value`);
|
|
92
|
+
value = true;
|
|
56
93
|
}
|
|
94
|
+
if (spec?.number !== undefined && typeof value === "string") {
|
|
95
|
+
const parsed = Number(value);
|
|
96
|
+
const integer = value.trim() !== "" && Number.isSafeInteger(parsed);
|
|
97
|
+
if (!integer || (spec.number === "positive" && parsed < 1)) {
|
|
98
|
+
fail(`--${key} must be ${spec.number === "positive" ? "a positive" : "an"} integer, got "${value}"`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
flags[key] = value;
|
|
57
102
|
}
|
|
58
|
-
return { command, flags };
|
|
103
|
+
return error === undefined ? { command, flags } : { command, error, flags };
|
|
59
104
|
}
|
|
60
105
|
export function unknownFlag(flags) {
|
|
61
106
|
for (const key of Object.keys(flags)) {
|
|
@@ -94,6 +139,9 @@ Flags
|
|
|
94
139
|
--precision [n] vary cohort data against a correct backend; any finding is a false positive
|
|
95
140
|
--max-defects most defects per combination (default: 4)
|
|
96
141
|
--seed fuzz seed, so a failing combination replays exactly
|
|
142
|
+
--fuzz-seed seed for the combination smoke pass of a full conformance run (default: 1)
|
|
143
|
+
--jobs conformance legs run at once, each on its own thread (default: CPUs − 1, at most 4)
|
|
144
|
+
--skip-backend comma-separated backends a full conformance run may leave out when unreachable
|
|
97
145
|
--json machine-readable output, for plan and doctor
|
|
98
146
|
`;
|
|
99
147
|
function str(flags, key) {
|
|
@@ -107,19 +155,28 @@ function list(flags, key) {
|
|
|
107
155
|
.filter(Boolean);
|
|
108
156
|
}
|
|
109
157
|
/**
|
|
110
|
-
*
|
|
111
|
-
*
|
|
112
|
-
* nothing graded must not read as a pass.
|
|
158
|
+
* A config file, loaded, checked and interpolated — or the first reason it cannot be used. Every
|
|
159
|
+
* one of these is the caller's to fix, so the command exits 2 with nothing sent.
|
|
113
160
|
*/
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return
|
|
121
|
-
|
|
161
|
+
async function readConfig(path, forRun) {
|
|
162
|
+
let loaded;
|
|
163
|
+
try {
|
|
164
|
+
loaded = await loadConfig(path);
|
|
165
|
+
}
|
|
166
|
+
catch (error) {
|
|
167
|
+
return { problem: (error instanceof Error ? error.message : String(error)).replace(/^oat: /, "") };
|
|
168
|
+
}
|
|
169
|
+
const problems = configProblems(loaded, { forRun });
|
|
170
|
+
if (problems.length > 0)
|
|
171
|
+
return { problem: `${path} is not a valid config:\n ${problems.join("\n ")}` };
|
|
172
|
+
try {
|
|
173
|
+
return { config: interpolate(loaded) };
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
return { problem: (error instanceof Error ? error.message : String(error)).replace(/^oat: /, "") };
|
|
177
|
+
}
|
|
122
178
|
}
|
|
179
|
+
export { EXIT, exitCode } from "./runtime/exit.js";
|
|
123
180
|
async function commandRun(flags) {
|
|
124
181
|
const configPath = str(flags, "config");
|
|
125
182
|
if (configPath === undefined) {
|
|
@@ -127,7 +184,12 @@ async function commandRun(flags) {
|
|
|
127
184
|
return 2;
|
|
128
185
|
}
|
|
129
186
|
const { run } = await import("./runtime/run.js");
|
|
130
|
-
const
|
|
187
|
+
const read = await readConfig(configPath, true);
|
|
188
|
+
if ("problem" in read) {
|
|
189
|
+
process.stderr.write(`oat: ${read.problem}\n`);
|
|
190
|
+
return EXIT.usage;
|
|
191
|
+
}
|
|
192
|
+
const config = read.config;
|
|
131
193
|
const baseUrl = str(flags, "base-url") ?? config.baseUrl;
|
|
132
194
|
const seedFlag = str(flags, "seed");
|
|
133
195
|
const only = list(flags, "only") ?? config.only?.filter((name) => name.trim() !== "");
|
|
@@ -176,9 +238,23 @@ async function commandRun(flags) {
|
|
|
176
238
|
stderrProgress?.emit(snap);
|
|
177
239
|
fileProgress.emit(snap);
|
|
178
240
|
};
|
|
241
|
+
/* Ctrl-C stops testing, not the run: what oat created is still removed and the partial report
|
|
242
|
+
* is still written. A second signal means "now", and exits without either. */
|
|
243
|
+
const stop = new AbortController();
|
|
244
|
+
const onSignal = (signal) => {
|
|
245
|
+
if (stop.signal.aborted) {
|
|
246
|
+
process.stderr.write(`\noat: ${signal} again — exiting without teardown\n`);
|
|
247
|
+
process.exit(130);
|
|
248
|
+
}
|
|
249
|
+
process.stderr.write(`\noat: ${signal} — stopping, removing what this run created (again to exit now)\n`);
|
|
250
|
+
stop.abort();
|
|
251
|
+
};
|
|
252
|
+
process.on("SIGINT", onSignal);
|
|
253
|
+
process.on("SIGTERM", onSignal);
|
|
179
254
|
let result;
|
|
180
255
|
try {
|
|
181
256
|
result = await run({
|
|
257
|
+
signal: stop.signal,
|
|
182
258
|
baseUrl,
|
|
183
259
|
principals,
|
|
184
260
|
spec: config.spec,
|
|
@@ -195,6 +271,7 @@ async function commandRun(flags) {
|
|
|
195
271
|
...(config.rateLimits === undefined ? {} : { rateLimits: config.rateLimits }),
|
|
196
272
|
...(config.origins === undefined ? {} : { origins: config.origins }),
|
|
197
273
|
...(config.outOfBand === undefined ? {} : { outOfBand: config.outOfBand }),
|
|
274
|
+
...(config.payloads === undefined ? {} : { payloads: config.payloads }),
|
|
198
275
|
...(config.query === undefined ? {} : { query: config.query }),
|
|
199
276
|
...(config.entities === undefined ? {} : { entities: config.entities }),
|
|
200
277
|
keepFixtures: flags["keep-fixtures"] === true || config.keepFixtures === true,
|
|
@@ -212,6 +289,8 @@ async function commandRun(flags) {
|
|
|
212
289
|
return 2;
|
|
213
290
|
}
|
|
214
291
|
finally {
|
|
292
|
+
process.off("SIGINT", onSignal);
|
|
293
|
+
process.off("SIGTERM", onSignal);
|
|
215
294
|
stderrProgress?.stop();
|
|
216
295
|
fileProgress.stop();
|
|
217
296
|
progressLog.end();
|
|
@@ -221,6 +300,9 @@ async function commandRun(flags) {
|
|
|
221
300
|
const durationMs = performance.now() - began;
|
|
222
301
|
const input = {
|
|
223
302
|
baseUrl,
|
|
303
|
+
checkNotes: result.checkNotes,
|
|
304
|
+
checkTimings: result.checkTimings,
|
|
305
|
+
checksOutOfScope: result.checksOutOfScope,
|
|
224
306
|
checksRun: result.checksRun,
|
|
225
307
|
checksSkipped: result.checksSkipped,
|
|
226
308
|
checksSuppressed: result.checksSuppressed,
|
|
@@ -264,22 +346,53 @@ async function commandRun(flags) {
|
|
|
264
346
|
if (result.network?.incomplete === true) {
|
|
265
347
|
process.stdout.write(` network: ${result.network.kind} — run incomplete\n`);
|
|
266
348
|
}
|
|
349
|
+
await publishLatest(allocated);
|
|
267
350
|
process.stdout.write(` latest: ${allocated.latest}\n\n`);
|
|
268
351
|
return exitCode(result);
|
|
269
352
|
}
|
|
270
353
|
export async function main() {
|
|
271
|
-
const { command, flags } = parseArgs(process.argv.slice(2));
|
|
354
|
+
const { command, error: flagError, flags } = parseArgs(process.argv.slice(2));
|
|
272
355
|
const unknown = unknownFlag(flags);
|
|
273
356
|
if (unknown !== undefined) {
|
|
274
357
|
process.stderr.write(`oat: unknown flag "--${unknown}"\n\n${USAGE}`);
|
|
275
358
|
return 2;
|
|
276
359
|
}
|
|
360
|
+
if (flagError !== undefined) {
|
|
361
|
+
process.stderr.write(`oat: ${flagError}\n\n${USAGE}`);
|
|
362
|
+
return EXIT.usage;
|
|
363
|
+
}
|
|
277
364
|
if (command === "help" || flags.help === true) {
|
|
278
365
|
process.stdout.write(USAGE);
|
|
279
366
|
return 0;
|
|
280
367
|
}
|
|
281
368
|
if (command === "conformance") {
|
|
282
|
-
const { postgresAvailable, renderParserSuite,
|
|
369
|
+
const { defectsFor, passAnswer, postgresAvailable, renderParserSuite, renderUnproven, runExampleSpecSuite, runTagUnlockSuite, runParserSuite, runPayloadCatalogSuite, runCoverageReportSuite, runSeedContractSuite, runEffectsSuite, runTenantScopeSuite, sqliteAvailable, d1Available, } = await import("./conformance/suite.js");
|
|
370
|
+
/* A typo in a selector must stop the run, not widen it: an unknown backend once ran every
|
|
371
|
+
* backend, and an unknown dialect silently filtered out the defects it could not express. */
|
|
372
|
+
const { DIALECTS } = await import("./reference/dialect.js");
|
|
373
|
+
const { isDefectName } = await import("./reference/defects.js");
|
|
374
|
+
const backendFlag = str(flags, "backend");
|
|
375
|
+
const backendNames = ["memory", "sqlite", "postgres", "d1"];
|
|
376
|
+
if (backendFlag !== undefined && !backendNames.includes(backendFlag)) {
|
|
377
|
+
process.stderr.write(`oat: unknown --backend "${backendFlag}" — expected ${backendNames.join(", ")}\n`);
|
|
378
|
+
return 2;
|
|
379
|
+
}
|
|
380
|
+
const dialectFlag = str(flags, "dialect");
|
|
381
|
+
if (dialectFlag !== undefined && !Object.hasOwn(DIALECTS, dialectFlag)) {
|
|
382
|
+
process.stderr.write(`oat: unknown --dialect "${dialectFlag}" — expected ${Object.keys(DIALECTS).join(", ")}\n`);
|
|
383
|
+
return 2;
|
|
384
|
+
}
|
|
385
|
+
const onlyFlag = str(flags, "only")?.split(",").filter(Boolean);
|
|
386
|
+
const unknownDefects = (onlyFlag ?? []).filter((name) => !isDefectName(name));
|
|
387
|
+
if (flags.only === true || (onlyFlag !== undefined && onlyFlag.length === 0)) {
|
|
388
|
+
process.stderr.write("oat: --only needs a comma-separated list of defect names\n");
|
|
389
|
+
return 2;
|
|
390
|
+
}
|
|
391
|
+
if (unknownDefects.length > 0) {
|
|
392
|
+
process.stderr.write(`oat: --only names no defect: ${unknownDefects.join(", ")}\n`);
|
|
393
|
+
return 2;
|
|
394
|
+
}
|
|
395
|
+
const { createPool, defaultJobs } = await import("./conformance/pool.js");
|
|
283
396
|
const { runFeatureGateSuite } = await import("./conformance/feature-gate.js");
|
|
284
397
|
const { runRateLimitSuite } = await import("./conformance/rate-limit.js");
|
|
285
398
|
const { runUniqueSuite } = await import("./conformance/unique.js");
|
|
@@ -291,9 +404,14 @@ export async function main() {
|
|
|
291
404
|
const example = renderParserSuite(await runExampleSpecSuite());
|
|
292
405
|
process.stdout.write(example.text);
|
|
293
406
|
parser.failures += example.failures;
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
parser.
|
|
407
|
+
/* The defect matrix makes the two runs the tag-unlock claims are judged from; only a run
|
|
408
|
+
* that stops before the matrix makes them here. */
|
|
409
|
+
const beforeMatrix = flags.parser === true || flags.precision !== undefined || flags.fuzz !== undefined;
|
|
410
|
+
if (beforeMatrix) {
|
|
411
|
+
const unlocks = renderParserSuite(await runTagUnlockSuite());
|
|
412
|
+
process.stdout.write(unlocks.text);
|
|
413
|
+
parser.failures += unlocks.failures;
|
|
414
|
+
}
|
|
297
415
|
const coverage = renderParserSuite(runCoverageReportSuite());
|
|
298
416
|
process.stdout.write(coverage.text);
|
|
299
417
|
parser.failures += coverage.failures;
|
|
@@ -385,18 +503,110 @@ export async function main() {
|
|
|
385
503
|
]
|
|
386
504
|
: backends.map((backend) => ({ backend, dialect: dialect ?? "postgrest" }));
|
|
387
505
|
let failures = parser.failures;
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
506
|
+
const proven = new Set();
|
|
507
|
+
const jobsFlag = str(flags, "jobs");
|
|
508
|
+
const jobs = jobsFlag === undefined ? defaultJobs() : Number.parseInt(jobsFlag, 10);
|
|
509
|
+
if (!Number.isSafeInteger(jobs) || jobs < 1) {
|
|
510
|
+
process.stderr.write("oat: --jobs must be a positive integer\n");
|
|
511
|
+
return 2;
|
|
512
|
+
}
|
|
513
|
+
/* Every leg is queued at once and printed in order as its turn comes. */
|
|
514
|
+
const pool = createPool(jobs);
|
|
515
|
+
const withShapes = requested === undefined || requested === "memory";
|
|
516
|
+
/* A leg goes out as its baselines and its defects in chunks, so a long leg spreads across
|
|
517
|
+
* the pool; its results come back in order and are rendered here. */
|
|
518
|
+
const LEG_CHUNK = 6;
|
|
519
|
+
const passAnswers = passes.map(async (pass) => {
|
|
520
|
+
const defects = defectsFor(pass.backend, pass.dialect, only);
|
|
521
|
+
const chunks = Array.from({ length: Math.ceil(defects.length / LEG_CHUNK) }, (_, index) => defects.slice(index * LEG_CHUNK, (index + 1) * LEG_CHUNK));
|
|
522
|
+
const answers = await Promise.all([
|
|
523
|
+
pool.run({ backend: pass.backend, dialect: pass.dialect, kind: "baselines" }),
|
|
524
|
+
...chunks.map((chunk) => pool.run({ backend: pass.backend, dialect: pass.dialect, defects: chunk, kind: "defects" })),
|
|
525
|
+
]);
|
|
526
|
+
const results = answers.flatMap((answer) => (answer.kind === "leg" ? answer.results : []));
|
|
527
|
+
return { kind: "pass", ...passAnswer(results, pass.backend, pass.dialect) };
|
|
528
|
+
});
|
|
529
|
+
const shapeAnswer = withShapes ? pool.run({ kind: "shapes" }) : undefined;
|
|
530
|
+
/* `--ops` recall needs each defect's full run, which the default pass has just made; only
|
|
531
|
+
* the targeted half is sent, spread across the pool. */
|
|
532
|
+
const fullRun = only === undefined && requested === undefined && dialect === undefined;
|
|
533
|
+
const defaultPass = passes.findIndex((pass) => pass.backend === "memory" && pass.dialect === "postgrest");
|
|
534
|
+
const scopeAnswers = !fullRun || defaultPass === -1
|
|
535
|
+
? undefined
|
|
536
|
+
: passAnswers[defaultPass]?.then(async (answer) => {
|
|
537
|
+
const { DEFECTS } = await import("./reference/defects.js");
|
|
538
|
+
const names = Object.keys(DEFECTS);
|
|
539
|
+
const known = answer.kind === "pass" ? answer.primaryOps : {};
|
|
540
|
+
const chunks = Array.from({ length: jobs }, (_, lane) => names.filter((_name, index) => index % jobs === lane)).filter((chunk) => chunk.length > 0);
|
|
541
|
+
return Promise.all(chunks.map((defects) => pool.run({ defects, kind: "scope", known })));
|
|
542
|
+
});
|
|
543
|
+
const recallAnswers = shapeAnswer === undefined || only !== undefined
|
|
544
|
+
? undefined
|
|
545
|
+
: shapeAnswer.then((answer) => Promise.all((answer.kind === "cases" ? answer.cases : []).map((shape) => pool.run({ kind: "recall", shapes: [shape] }))));
|
|
546
|
+
try {
|
|
547
|
+
for (const [index, pass] of passes.entries()) {
|
|
548
|
+
process.stdout.write(`\n ── ${pass.backend} · ${pass.dialect} ${"─".repeat(46)}\n`);
|
|
549
|
+
const result = await passAnswers[index];
|
|
550
|
+
if (result?.kind !== "pass")
|
|
551
|
+
continue;
|
|
552
|
+
process.stdout.write(result.text);
|
|
553
|
+
failures += result.failures;
|
|
554
|
+
for (const id of result.proven)
|
|
555
|
+
proven.add(id);
|
|
556
|
+
}
|
|
557
|
+
/* Only a complete run can say a check was never proven; a filtered one never tried. */
|
|
558
|
+
if (fullRun) {
|
|
559
|
+
const unproven = renderUnproven(proven);
|
|
560
|
+
process.stdout.write(unproven.text);
|
|
561
|
+
failures += unproven.failures;
|
|
562
|
+
}
|
|
563
|
+
const defaultAnswer = defaultPass === -1 ? undefined : await passAnswers[defaultPass];
|
|
564
|
+
const unlocks = renderParserSuite(await runTagUnlockSuite(defaultAnswer?.kind === "pass" ? defaultAnswer.baselines : undefined));
|
|
565
|
+
process.stdout.write(unlocks.text);
|
|
566
|
+
failures += unlocks.failures;
|
|
567
|
+
if (scopeAnswers !== undefined) {
|
|
568
|
+
const scopeResults = (await scopeAnswers).flatMap((answer) => (answer.kind === "results" ? answer.results : []));
|
|
569
|
+
const scope = renderParserSuite(scopeResults);
|
|
570
|
+
process.stdout.write(scope.text);
|
|
571
|
+
failures += scope.failures;
|
|
572
|
+
}
|
|
573
|
+
/* The opposite question to the defect matrix: whether oat stays quiet on a correct backend
|
|
574
|
+
* shaped unlike the one it was written against. One engine is enough — a shape varies the
|
|
575
|
+
* API, not the storage. */
|
|
576
|
+
if (shapeAnswer !== undefined) {
|
|
577
|
+
const { renderShapeSuite } = await import("./conformance/shapes.js");
|
|
578
|
+
process.stdout.write(`\n ── shapes · memory ${"─".repeat(46)}\n`);
|
|
579
|
+
const shapeCases = await shapeAnswer;
|
|
580
|
+
const shapes = renderShapeSuite(shapeCases.kind === "cases" ? shapeCases.cases : []);
|
|
581
|
+
process.stdout.write(shapes.text);
|
|
582
|
+
failures += shapes.failures;
|
|
583
|
+
if (recallAnswers !== undefined) {
|
|
584
|
+
process.stdout.write(`\n ── recall behind shapes · memory ${"─".repeat(32)}\n`);
|
|
585
|
+
const recallCases = (await recallAnswers).flatMap((answer) => (answer.kind === "cases" ? answer.cases : []));
|
|
586
|
+
const recall = renderShapeSuite(recallCases, true);
|
|
587
|
+
process.stdout.write(recall.text);
|
|
588
|
+
failures += recall.failures;
|
|
589
|
+
}
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
finally {
|
|
593
|
+
await pool.close();
|
|
393
594
|
}
|
|
394
595
|
if (requested === undefined && skipped.length > 0) {
|
|
596
|
+
/* An engine that is not there is not a pass: the SQL-only defects and every engine
|
|
597
|
+
* difference go untested. Leaving one out has to be asked for by name. */
|
|
598
|
+
const allowed = new Set(str(flags, "skip-backend")?.split(",") ?? []);
|
|
395
599
|
for (const backend of skipped) {
|
|
396
600
|
const why = backend === "sqlite"
|
|
397
601
|
? "node:sqlite unavailable (Node 22 needs --experimental-sqlite)"
|
|
398
602
|
: "no Postgres server reachable on the default connection";
|
|
399
|
-
|
|
603
|
+
if (allowed.has(backend)) {
|
|
604
|
+
process.stdout.write(` note: ${backend} backend skipped as asked — ${why}\n`);
|
|
605
|
+
}
|
|
606
|
+
else {
|
|
607
|
+
failures += 1;
|
|
608
|
+
process.stdout.write(` ✗ ${backend} backend unavailable — ${why}. Start it, or pass --skip-backend ${backend}\n`);
|
|
609
|
+
}
|
|
400
610
|
}
|
|
401
611
|
process.stdout.write("\n");
|
|
402
612
|
}
|
|
@@ -407,7 +617,15 @@ export async function main() {
|
|
|
407
617
|
* probe writing into a constrained field — was invisible to the one-at-a-time matrix. */
|
|
408
618
|
const { renderFuzz, runFuzz } = await import("./conformance/fuzz.js");
|
|
409
619
|
process.stdout.write(`\n ── combinations ${"─".repeat(46)}\n`);
|
|
410
|
-
|
|
620
|
+
/* A fixed seed tests the same 40 combinations forever. CI passes a fresh one per run and
|
|
621
|
+
* the seed is printed, so any failure it finds replays exactly. */
|
|
622
|
+
const fuzzSeed = Number.parseInt(str(flags, "fuzz-seed") ?? "1", 10);
|
|
623
|
+
if (!Number.isSafeInteger(fuzzSeed) || fuzzSeed < 1) {
|
|
624
|
+
process.stderr.write("oat: --fuzz-seed must be a positive integer\n");
|
|
625
|
+
return 2;
|
|
626
|
+
}
|
|
627
|
+
process.stdout.write(` fuzz seed ${fuzzSeed} — replay with --fuzz 40 --max-defects 6 --seed ${fuzzSeed}\n`);
|
|
628
|
+
const smoke = renderFuzz(await runFuzz({ backend: "memory", cases: 40, maxDefects: 6, seed: fuzzSeed }));
|
|
411
629
|
process.stdout.write(smoke.text);
|
|
412
630
|
failures += smoke.failures;
|
|
413
631
|
}
|
|
@@ -460,13 +678,19 @@ export async function main() {
|
|
|
460
678
|
return commandRun(flags);
|
|
461
679
|
const specFlag = str(flags, "spec");
|
|
462
680
|
const configPath = str(flags, "config");
|
|
463
|
-
const
|
|
681
|
+
const read = configPath === undefined ? undefined : await readConfig(configPath, false);
|
|
682
|
+
if (read !== undefined && "problem" in read) {
|
|
683
|
+
process.stderr.write(`oat: ${read.problem}\n`);
|
|
684
|
+
return EXIT.usage;
|
|
685
|
+
}
|
|
686
|
+
const loaded = read?.config;
|
|
464
687
|
const specSource = specFlag ?? loaded?.spec;
|
|
465
688
|
if (specSource === undefined) {
|
|
466
689
|
process.stderr.write("oat: --spec (or --config) is required\n\n" + USAGE);
|
|
467
690
|
return 2;
|
|
468
691
|
}
|
|
469
|
-
|
|
692
|
+
/* A relative spec resolves against the config's base URL, as it does for `run`. */
|
|
693
|
+
const raw = await loadSpec(specSource, str(flags, "base-url") ?? loaded?.baseUrl);
|
|
470
694
|
const { doc, externalRefs } = dereference(raw);
|
|
471
695
|
const model = buildModel(doc);
|
|
472
696
|
try {
|
|
@@ -500,7 +724,7 @@ export async function main() {
|
|
|
500
724
|
return 0;
|
|
501
725
|
}
|
|
502
726
|
case "doctor": {
|
|
503
|
-
const config =
|
|
727
|
+
const config = loaded;
|
|
504
728
|
const output = report.doctor(model, externalRefs, flags.json === true, config === undefined
|
|
505
729
|
? undefined
|
|
506
730
|
: {
|
|
@@ -521,7 +745,7 @@ export function start() {
|
|
|
521
745
|
process.exitCode = code;
|
|
522
746
|
}, (error) => {
|
|
523
747
|
process.stderr.write(`oat: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
524
|
-
process.exitCode =
|
|
748
|
+
process.exitCode = EXIT.failed;
|
|
525
749
|
});
|
|
526
750
|
}
|
|
527
751
|
/* `node dist/cli.js …` is the test/CI entry. `bin/oat.js` calls start() itself because
|
|
@@ -361,6 +361,8 @@ export interface RateLimitSpec {
|
|
|
361
361
|
*/
|
|
362
362
|
category?: string;
|
|
363
363
|
}
|
|
364
|
+
/** How much of the string payload catalog a run sends. */
|
|
365
|
+
export type PayloadPolicy = "full" | "per-write-path";
|
|
364
366
|
export interface OatConfig {
|
|
365
367
|
/** OpenAPI document — an http(s) URL or a filesystem path. JSON or YAML. */
|
|
366
368
|
spec: string;
|
|
@@ -387,6 +389,12 @@ export interface OatConfig {
|
|
|
387
389
|
* Defaults: `{ attempts: 6, initialMs: 200, maxMs: 3000 }` (~9s worst case).
|
|
388
390
|
*/
|
|
389
391
|
outOfBand?: OutOfBandConfig;
|
|
392
|
+
/**
|
|
393
|
+
* How much of the 159-case string payload catalog to send. `"per-write-path"` (the default)
|
|
394
|
+
* sends all of it once per distinct write path — request media type and field type — and a
|
|
395
|
+
* representative family of each kind elsewhere; `"full"` sends all of it to every field.
|
|
396
|
+
*/
|
|
397
|
+
payloads?: PayloadPolicy;
|
|
390
398
|
/** Path parameters oat cannot create. Also declarable in-spec via `x-root`. */
|
|
391
399
|
roots?: Record<string, string>;
|
|
392
400
|
/** Fixture generation derives from this, so a failing run is exactly reproducible. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAEvF,YAAY,EACX,SAAS,EACT,QAAQ,EACR,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,aAAa,GACb,MAAM,+BAA+B,CAAA;AAItC,UAAU,QAAQ;IACjB;;;;;;;;;;OAUG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B;;;;;;OAMG;IACH,cAAc,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;IAChE,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED,2FAA2F;AAC3F,MAAM,WAAW,aAAc,SAAQ,QAAQ;IAC9C,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAA;CACf;AAED,sEAAsE;AACtE,MAAM,WAAW,WAAY,SAAQ,QAAQ;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAA;CAC9B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC7B,SAAS,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;CACxD;AAED,MAAM,MAAM,QAAQ,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAA;AAIlE,sEAAsE;AACtE,MAAM,WAAW,WAAW;IAC3B,uEAAuE;IACvE,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,QAAQ;IACxB,+EAA+E;IAC/E,KAAK,EAAE,CAAC,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAA;IAChC,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAA;IACtB,+FAA+F;IAC/F,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,yCAAyC;IACzC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE/C,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,IAAI,QAAQ,CAEhE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,IAAI,QAAQ,CAEhE;AAED,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,4FAA4F;IAC5F,IAAI,CAAC,EAAE,aAAa,CAAA;IACpB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAID,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,uFAAuF;IACvF,OAAO,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,wBAAwB;IACxC,4EAA4E;IAC5E,UAAU,EAAE,MAAM,CAAA;IAClB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC5B,WAAW,EAAE,MAAM,CAAA;IACnB,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAA;IACjB,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QACT,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,KAAK,EAAE,MAAM,CAAA;QACb,KAAK,EAAE,MAAM,CAAA;KACb,CAAA;CACD;AAED,MAAM,WAAW,UAAU;IAC1B,KAAK,EAAE,UAAU,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;CACjB;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAA;CAAE,GAAG,IAAI,CAAA;AAElG,MAAM,WAAW,OAAO;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAA;IAC/B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACrB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACxE;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,wBAAwB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrF;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IACrE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;IACnF;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IACjE;;;OAGG;IACH,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAA;IAChF;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IACtE;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,CAC1B,OAAO,EAAE,wBAAwB,KAC7B,OAAO,CAAC,eAAe,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC,CAAA;CACnE;AAED,MAAM,WAAW,wBAAwB;IACxC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,GAAG,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC9E;AAED,6FAA6F;AAC7F,MAAM,WAAW,YAAY;IAC5B,KAAK,CAAC,EAAE,iBAAiB,CAAA;CACzB;AAED,wFAAwF;AACxF,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACZ;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC3B,0EAA0E;IAC1E,OAAO,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;IACnC,gEAAgE;IAChE,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,gGAAgG;IAChG,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAID;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;IACX;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CACjB;AAID,MAAM,WAAW,SAAS;IACzB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,UAAU,EAAE,CAAC,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC,CAAA;IACvC,KAAK,CAAC,EAAE,KAAK,CAAA;IACb,gFAAgF;IAChF,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,oHAAoH;IACpH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACtC;;;;OAIG;IACH,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;IACtB;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,CAAA;IAC3B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,sFAAsF;IACtF,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,oFAAoF;IACpF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,0FAA0F;IAC1F,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACtC,2FAA2F;IAC3F,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,EAAE,CAAA;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAA;IACzB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACvC,mEAAmE;IACnE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,mFAAmF;QACnF,MAAM,CAAC,EAAE,MAAM,CAAA;QACf;;;WAGG;QACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;KACzB,CAAA;CACD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,SAAS,CAEzD"}
|
|
1
|
+
{"version":3,"file":"define-config.d.ts","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-config.js","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwIH,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC7C,OAAO,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC7C,OAAO,OAAO,IAAI,IAAI,CAAA;AACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"define-config.js","sourceRoot":"","sources":["../../src/config/define-config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwIH,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC7C,OAAO,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAA;AACrF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC7C,OAAO,OAAO,IAAI,IAAI,CAAA;AACvB,CAAC;AA2WD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC7C,OAAO,MAAM,CAAA;AACd,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The config, checked before anything runs.
|
|
3
|
+
*
|
|
4
|
+
* A misspelled key used to be ignored and a wrong type used to flow into the run — a
|
|
5
|
+
* `maxInFlight` of `"8"` silently became the default, a `cohortSize` of `0` seeded nothing. Each
|
|
6
|
+
* problem names the key path and what it should be, and the CLI exits 2 without sending a request.
|
|
7
|
+
*/
|
|
8
|
+
/** Every problem with `config`, by key path. `run` needs a spec, a base URL and a principal. */
|
|
9
|
+
export declare function configProblems(config: unknown, options?: {
|
|
10
|
+
forRun?: boolean;
|
|
11
|
+
}): string[];
|
|
12
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/config/validate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAwFH,gGAAgG;AAChG,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,MAAM,EAAE,CAO5F"}
|