@lovrozagar/oat 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +25 -2006
- package/dist/cli.js +283 -59
- package/dist/config/define-config.d.ts +8 -0
- package/dist/config/define-config.d.ts.map +1 -1
- package/dist/config/define-config.js.map +1 -1
- package/dist/config/validate.d.ts +12 -0
- package/dist/config/validate.d.ts.map +1 -0
- package/dist/config/validate.js +86 -0
- package/dist/config/validate.js.map +1 -0
- package/dist/conformance/effects.d.ts +9 -0
- package/dist/conformance/effects.d.ts.map +1 -0
- package/dist/conformance/effects.js +276 -0
- package/dist/conformance/effects.js.map +1 -0
- package/dist/conformance/expected-failures.d.ts +18 -0
- package/dist/conformance/expected-failures.d.ts.map +1 -0
- package/dist/conformance/expected-failures.js +48 -0
- package/dist/conformance/expected-failures.js.map +1 -0
- package/dist/conformance/feature-gate.d.ts +7 -0
- package/dist/conformance/feature-gate.d.ts.map +1 -0
- package/dist/conformance/feature-gate.js +428 -0
- package/dist/conformance/feature-gate.js.map +1 -0
- package/dist/conformance/fuzz.d.ts +108 -0
- package/dist/conformance/fuzz.d.ts.map +1 -0
- package/dist/conformance/fuzz.js +246 -0
- package/dist/conformance/fuzz.js.map +1 -0
- package/dist/conformance/leaks.d.ts +10 -0
- package/dist/conformance/leaks.d.ts.map +1 -0
- package/dist/conformance/leaks.js +23 -0
- package/dist/conformance/leaks.js.map +1 -0
- package/dist/conformance/pool.d.ts +49 -0
- package/dist/conformance/pool.d.ts.map +1 -0
- package/dist/conformance/pool.js +75 -0
- package/dist/conformance/pool.js.map +1 -0
- package/dist/conformance/rate-limit.d.ts +7 -0
- package/dist/conformance/rate-limit.d.ts.map +1 -0
- package/dist/conformance/rate-limit.js +372 -0
- package/dist/conformance/rate-limit.js.map +1 -0
- package/dist/conformance/scope.d.ts +15 -0
- package/dist/conformance/scope.d.ts.map +1 -0
- package/dist/conformance/scope.js +78 -0
- package/dist/conformance/scope.js.map +1 -0
- package/dist/conformance/seed-contract.d.ts +11 -0
- package/dist/conformance/seed-contract.d.ts.map +1 -0
- package/dist/conformance/seed-contract.js +680 -0
- package/dist/conformance/seed-contract.js.map +1 -0
- package/dist/conformance/shapes.d.ts +35 -0
- package/dist/conformance/shapes.d.ts.map +1 -0
- package/dist/conformance/shapes.js +162 -0
- package/dist/conformance/shapes.js.map +1 -0
- package/dist/conformance/specs.d.ts +21 -0
- package/dist/conformance/specs.d.ts.map +1 -0
- package/dist/conformance/specs.js +306 -0
- package/dist/conformance/specs.js.map +1 -0
- package/dist/conformance/suite.d.ts +209 -0
- package/dist/conformance/suite.d.ts.map +1 -0
- package/dist/conformance/suite.js +1538 -0
- package/dist/conformance/suite.js.map +1 -0
- package/dist/conformance/unique.d.ts +7 -0
- package/dist/conformance/unique.d.ts.map +1 -0
- package/dist/conformance/unique.js +586 -0
- package/dist/conformance/unique.js.map +1 -0
- package/dist/conformance/worker.d.ts +3 -0
- package/dist/conformance/worker.d.ts.map +1 -0
- package/dist/conformance/worker.js +27 -0
- package/dist/conformance/worker.js.map +1 -0
- package/dist/index.d.ts +8 -3
- package/dist/index.js +5 -2
- package/dist/reference/defects.d.ts +71 -1
- package/dist/reference/defects.d.ts.map +1 -1
- package/dist/reference/defects.js +74 -8
- package/dist/reference/defects.js.map +1 -1
- package/dist/reference/dialect.d.ts +6 -4
- package/dist/reference/dialect.d.ts.map +1 -1
- package/dist/reference/dialect.js +1 -0
- package/dist/reference/dialect.js.map +1 -1
- package/dist/reference/http.d.ts +17 -25
- package/dist/reference/http.d.ts.map +1 -1
- package/dist/reference/http.js +574 -224
- package/dist/reference/http.js.map +1 -1
- package/dist/reference/listing.d.ts +51 -0
- package/dist/reference/listing.d.ts.map +1 -0
- package/dist/reference/listing.js +256 -0
- package/dist/reference/listing.js.map +1 -0
- package/dist/reference/model.d.ts +35 -1
- package/dist/reference/model.d.ts.map +1 -1
- package/dist/reference/model.js +42 -0
- package/dist/reference/model.js.map +1 -1
- package/dist/reference/query.d.ts +132 -43
- package/dist/reference/query.d.ts.map +1 -1
- package/dist/reference/query.js +397 -315
- package/dist/reference/query.js.map +1 -1
- package/dist/reference/shapes.d.ts +60 -0
- package/dist/reference/shapes.d.ts.map +1 -0
- package/dist/reference/shapes.js +142 -0
- package/dist/reference/shapes.js.map +1 -0
- package/dist/reference/spec.d.ts +9 -2
- package/dist/reference/spec.d.ts.map +1 -1
- package/dist/reference/spec.js +291 -71
- package/dist/reference/spec.js.map +1 -1
- package/dist/reference/store-api.d.ts +14 -43
- package/dist/reference/store-api.d.ts.map +1 -1
- package/dist/reference/store-api.js +8 -58
- package/dist/reference/store-api.js.map +1 -1
- package/dist/reference/stores/memory.d.ts +12 -15
- package/dist/reference/stores/memory.d.ts.map +1 -1
- package/dist/reference/stores/memory.js +22 -70
- package/dist/reference/stores/memory.js.map +1 -1
- package/dist/reference/stores/postgres.d.ts +11 -23
- package/dist/reference/stores/postgres.d.ts.map +1 -1
- package/dist/reference/stores/postgres.js +53 -334
- package/dist/reference/stores/postgres.js.map +1 -1
- package/dist/reference/stores/sql-compile.d.ts +36 -0
- package/dist/reference/stores/sql-compile.d.ts.map +1 -0
- package/dist/reference/stores/sql-compile.js +95 -0
- package/dist/reference/stores/sql-compile.js.map +1 -0
- package/dist/reference/stores/sqlite.d.ts +12 -27
- package/dist/reference/stores/sqlite.d.ts.map +1 -1
- package/dist/reference/stores/sqlite.js +54 -355
- package/dist/reference/stores/sqlite.js.map +1 -1
- package/dist/report/console.d.ts.map +1 -1
- package/dist/report/console.js +23 -9
- package/dist/report/console.js.map +1 -1
- package/dist/report/matrix.d.ts +2 -0
- package/dist/report/matrix.d.ts.map +1 -1
- package/dist/report/matrix.js +63 -10
- package/dist/report/matrix.js.map +1 -1
- package/dist/report/render.d.ts +10 -1
- package/dist/report/render.d.ts.map +1 -1
- package/dist/report/render.js +75 -13
- package/dist/report/render.js.map +1 -1
- package/dist/runtime/async.d.ts +16 -3
- package/dist/runtime/async.d.ts.map +1 -1
- package/dist/runtime/async.js +24 -19
- package/dist/runtime/async.js.map +1 -1
- package/dist/runtime/auth.d.ts +2 -9
- package/dist/runtime/auth.d.ts.map +1 -1
- package/dist/runtime/auth.js +38 -62
- package/dist/runtime/auth.js.map +1 -1
- package/dist/runtime/body.d.ts +15 -3
- package/dist/runtime/body.d.ts.map +1 -1
- package/dist/runtime/body.js +61 -12
- package/dist/runtime/body.js.map +1 -1
- package/dist/runtime/check-costs.d.ts +15 -0
- package/dist/runtime/check-costs.d.ts.map +1 -0
- package/dist/runtime/check-costs.js +114 -0
- package/dist/runtime/check-costs.js.map +1 -0
- package/dist/runtime/check-ids.d.ts +15 -0
- package/dist/runtime/check-ids.d.ts.map +1 -0
- package/dist/runtime/check-ids.js +140 -0
- package/dist/runtime/check-ids.js.map +1 -0
- package/dist/runtime/checks.d.ts +83 -20
- package/dist/runtime/checks.d.ts.map +1 -1
- package/dist/runtime/checks.js +3285 -1947
- package/dist/runtime/checks.js.map +1 -1
- package/dist/runtime/client.d.ts +112 -0
- package/dist/runtime/client.d.ts.map +1 -1
- package/dist/runtime/client.js +271 -39
- package/dist/runtime/client.js.map +1 -1
- package/dist/runtime/cookies.d.ts +16 -2
- package/dist/runtime/cookies.d.ts.map +1 -1
- package/dist/runtime/cookies.js +83 -22
- package/dist/runtime/cookies.js.map +1 -1
- package/dist/runtime/exchanges.d.ts +4 -5
- package/dist/runtime/exchanges.d.ts.map +1 -1
- package/dist/runtime/exchanges.js +33 -55
- package/dist/runtime/exchanges.js.map +1 -1
- package/dist/runtime/exit.d.ts +40 -0
- package/dist/runtime/exit.d.ts.map +1 -0
- package/dist/runtime/exit.js +48 -0
- package/dist/runtime/exit.js.map +1 -0
- package/dist/runtime/feature-gate.d.ts +0 -9
- package/dist/runtime/feature-gate.d.ts.map +1 -1
- package/dist/runtime/feature-gate.js +0 -21
- package/dist/runtime/feature-gate.js.map +1 -1
- package/dist/runtime/finding.d.ts +49 -8
- package/dist/runtime/finding.d.ts.map +1 -1
- package/dist/runtime/finding.js +51 -8
- package/dist/runtime/finding.js.map +1 -1
- package/dist/runtime/fixture.d.ts +35 -28
- package/dist/runtime/fixture.d.ts.map +1 -1
- package/dist/runtime/fixture.js +92 -731
- package/dist/runtime/fixture.js.map +1 -1
- package/dist/runtime/generate.d.ts +63 -0
- package/dist/runtime/generate.d.ts.map +1 -0
- package/dist/runtime/generate.js +635 -0
- package/dist/runtime/generate.js.map +1 -0
- package/dist/runtime/headers.d.ts +6 -0
- package/dist/runtime/headers.d.ts.map +1 -0
- package/dist/runtime/headers.js +16 -0
- package/dist/runtime/headers.js.map +1 -0
- package/dist/runtime/path.d.ts +7 -0
- package/dist/runtime/path.d.ts.map +1 -0
- package/dist/runtime/path.js +44 -0
- package/dist/runtime/path.js.map +1 -0
- package/dist/runtime/payloads.d.ts +2 -0
- package/dist/runtime/payloads.d.ts.map +1 -1
- package/dist/runtime/payloads.js +2 -1
- package/dist/runtime/payloads.js.map +1 -1
- package/dist/runtime/rate-limit.d.ts +6 -4
- package/dist/runtime/rate-limit.d.ts.map +1 -1
- package/dist/runtime/rate-limit.js +22 -33
- package/dist/runtime/rate-limit.js.map +1 -1
- package/dist/runtime/redact.d.ts +24 -0
- package/dist/runtime/redact.d.ts.map +1 -0
- package/dist/runtime/redact.js +98 -0
- package/dist/runtime/redact.js.map +1 -0
- package/dist/runtime/run.d.ts +34 -2
- package/dist/runtime/run.d.ts.map +1 -1
- package/dist/runtime/run.js +346 -138
- package/dist/runtime/run.js.map +1 -1
- package/dist/runtime/runs.d.ts +5 -0
- package/dist/runtime/runs.d.ts.map +1 -1
- package/dist/runtime/runs.js +7 -1
- package/dist/runtime/runs.js.map +1 -1
- package/dist/runtime/teardown.d.ts +17 -4
- package/dist/runtime/teardown.d.ts.map +1 -1
- package/dist/runtime/teardown.js +49 -16
- package/dist/runtime/teardown.js.map +1 -1
- package/dist/runtime/transcript.d.ts +34 -2
- package/dist/runtime/transcript.d.ts.map +1 -1
- package/dist/runtime/transcript.js +119 -24
- package/dist/runtime/transcript.js.map +1 -1
- package/dist/runtime/unique.d.ts +2 -11
- package/dist/runtime/unique.d.ts.map +1 -1
- package/dist/runtime/unique.js +27 -53
- package/dist/runtime/unique.js.map +1 -1
- package/dist/runtime/validate.d.ts +13 -2
- package/dist/runtime/validate.d.ts.map +1 -1
- package/dist/runtime/validate.js +51 -31
- package/dist/runtime/validate.js.map +1 -1
- package/dist/runtime/wait.d.ts +2 -1
- package/dist/runtime/wait.d.ts.map +1 -1
- package/dist/runtime/wait.js +2 -36
- package/dist/runtime/wait.js.map +1 -1
- package/dist/runtime/world.d.ts +24 -1
- package/dist/runtime/world.d.ts.map +1 -1
- package/dist/runtime/world.js +101 -26
- package/dist/runtime/world.js.map +1 -1
- package/dist/spec/collection.d.ts +8 -2
- package/dist/spec/collection.d.ts.map +1 -1
- package/dist/spec/collection.js +47 -7
- package/dist/spec/collection.js.map +1 -1
- package/dist/spec/extensions.d.ts +5 -1
- package/dist/spec/extensions.d.ts.map +1 -1
- package/dist/spec/extensions.js +9 -2
- package/dist/spec/extensions.js.map +1 -1
- package/dist/spec/graph.d.ts +46 -0
- package/dist/spec/graph.d.ts.map +1 -1
- package/dist/spec/graph.js +175 -11
- package/dist/spec/graph.js.map +1 -1
- package/dist/spec/load.d.ts +25 -5
- package/dist/spec/load.d.ts.map +1 -1
- package/dist/spec/load.js +160 -59
- package/dist/spec/load.js.map +1 -1
- package/dist/spec/query-capabilities.d.ts +4 -0
- package/dist/spec/query-capabilities.d.ts.map +1 -1
- package/dist/spec/query-capabilities.js +6 -0
- package/dist/spec/query-capabilities.js.map +1 -1
- package/dist/spec/schema.d.ts +20 -0
- package/dist/spec/schema.d.ts.map +1 -0
- package/dist/spec/schema.js +118 -0
- package/dist/spec/schema.js.map +1 -0
- package/dist/spec/tag-schema.d.ts +12 -0
- package/dist/spec/tag-schema.d.ts.map +1 -0
- package/dist/spec/tag-schema.js +143 -0
- package/dist/spec/tag-schema.js.map +1 -0
- package/dist/spec/types.js +17 -1
- package/dist/spec/types.js.map +1 -1
- package/docs/api.md +59 -0
- package/docs/assumptions.md +99 -0
- package/docs/checks.md +183 -0
- package/docs/commands.md +214 -0
- package/docs/configuration.md +650 -0
- package/docs/model.md +184 -0
- package/docs/reference-defects.md +94 -0
- package/docs/reports.md +211 -0
- package/docs/tags.md +400 -0
- package/package.json +3 -1
package/dist/runtime/client.js
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
1
|
/** HTTP client with a full transcript, so every finding can cite the exchange that produced it. */
|
|
2
|
-
import { CookieJar, MAX_REDIRECTS, applyJarToHeaders, isAbsoluteHttpUrl, isRedirectStatus, omitHeader, recordResponseHeaders, redirectTarget, setCookieHeadersFrom, } from "./cookies.js";
|
|
2
|
+
import { CREDENTIAL_HEADERS, CookieJar, MAX_REDIRECTS, applyJarToHeaders, isAbsoluteHttpUrl, isRedirectStatus, omitHeader, recordResponseHeaders, redirectTarget, setCookieHeadersFrom, } from "./cookies.js";
|
|
3
3
|
import { headerValue, MAX_429_RETRIES, retryWaitMs } from "./rate-limit.js";
|
|
4
4
|
import { DEFAULT_NETWORK_RETRIES, NetworkError, classifyNetworkError, describeNetworkKind, hasUsableInterface, isNetworkError, networkRetryWaitMs, refineNetworkKind, } from "./network.js";
|
|
5
5
|
import { sleep } from "./poll.js";
|
|
6
|
-
import {
|
|
6
|
+
import { REDACTED, isSecretHeaderName, isSecretJsonKey, redactJson, redactText, redactUrl } from "./redact.js";
|
|
7
|
+
import { INLINE_BODY_LIMIT } from "./exchanges.js";
|
|
8
|
+
import { BodySpool, isBodyRef, isFormSnapshot, readResponsePayload, releaseTranscriptBodies, sha256Hex, } from "./transcript.js";
|
|
9
|
+
const SAFE_METHODS = new Set(["GET", "HEAD", "OPTIONS"]);
|
|
10
|
+
/** Refreshing a principal's credential failed; `principal` names it when known. */
|
|
11
|
+
export class AuthRefreshError extends Error {
|
|
12
|
+
principal;
|
|
13
|
+
reason;
|
|
14
|
+
constructor(principal, reason) {
|
|
15
|
+
super(`refreshing the credential${principal === undefined ? "" : ` of "${principal}"`} failed: ` +
|
|
16
|
+
(reason instanceof Error ? reason.message : String(reason)));
|
|
17
|
+
this.principal = principal;
|
|
18
|
+
this.reason = reason;
|
|
19
|
+
this.name = "AuthRefreshError";
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/** Failures that prove the request never reached the server. */
|
|
23
|
+
const NEVER_SENT = new Set(["offline", "dns", "refused", "unreachable"]);
|
|
24
|
+
const IDEMPOTENT = new Set(["GET", "HEAD", "OPTIONS", "PUT", "DELETE"]);
|
|
25
|
+
/** How long one request may take across every attempt and wait, unless configured. */
|
|
26
|
+
export const DEFAULT_DEADLINE_MS = 10 * 60_000;
|
|
7
27
|
export class Client {
|
|
8
28
|
baseUrl;
|
|
9
29
|
globalHeaders;
|
|
@@ -12,7 +32,16 @@ export class Client {
|
|
|
12
32
|
rateLimiter;
|
|
13
33
|
httpHooks;
|
|
14
34
|
network;
|
|
35
|
+
/**
|
|
36
|
+
* Every exchange, with bodies compacted for memory. The exchange a request returns to its
|
|
37
|
+
* caller is never compacted: it holds the real body, however large.
|
|
38
|
+
*/
|
|
15
39
|
transcript = [];
|
|
40
|
+
byOperationId = new Map();
|
|
41
|
+
byEntity = new Map();
|
|
42
|
+
entityOf = new Map();
|
|
43
|
+
operationResolver;
|
|
44
|
+
principalResolver;
|
|
16
45
|
seq = 0;
|
|
17
46
|
inFlight = 0;
|
|
18
47
|
waiting = [];
|
|
@@ -43,6 +72,60 @@ export class Client {
|
|
|
43
72
|
setResolveHeaders(fn) {
|
|
44
73
|
this.resolveHeaders = fn;
|
|
45
74
|
}
|
|
75
|
+
/** Resolves each request to its documented operation, so nothing downstream parses URLs. */
|
|
76
|
+
setOperationResolver(resolve) {
|
|
77
|
+
this.operationResolver = resolve;
|
|
78
|
+
}
|
|
79
|
+
/** Names the principal a set of request headers belongs to. */
|
|
80
|
+
setPrincipalResolver(resolve) {
|
|
81
|
+
this.principalResolver = resolve;
|
|
82
|
+
}
|
|
83
|
+
/** The path below the base URL — what a documented path template describes. */
|
|
84
|
+
relativePath(url) {
|
|
85
|
+
const pathname = typeof url === "string" ? new URL(url).pathname : url.pathname;
|
|
86
|
+
const base = new URL(this.baseUrl).pathname.replace(/\/$/, "");
|
|
87
|
+
const below = base === "" ? undefined : belowBase(pathname, base);
|
|
88
|
+
return below === undefined ? pathname : below || "/";
|
|
89
|
+
}
|
|
90
|
+
/** Exchanges that resolved to an operation of `entity`, in order. */
|
|
91
|
+
exchangesForEntity(entity) {
|
|
92
|
+
return this.byEntity.get(entity) ?? [];
|
|
93
|
+
}
|
|
94
|
+
/** Exchanges that resolved to `operationId`, in order. */
|
|
95
|
+
exchangesFor(operationId) {
|
|
96
|
+
return this.byOperationId.get(operationId) ?? [];
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* A client that stamps every request it sends with `context`. Checks each get their own, so
|
|
100
|
+
* an exchange names the check that issued it even while checks run concurrently.
|
|
101
|
+
*/
|
|
102
|
+
view(context, readOnly = false) {
|
|
103
|
+
const request = (method, path, options = {}) => {
|
|
104
|
+
/* The type already forbids it; this catches a cast or an untyped caller. */
|
|
105
|
+
if (readOnly && !SAFE_METHODS.has(method.toUpperCase())) {
|
|
106
|
+
return Promise.reject(new Error(`check "${context.check ?? "?"}" does not mutate, but sent ${method.toUpperCase()} ${path}`));
|
|
107
|
+
}
|
|
108
|
+
return this.request(method, path, { ...options, context: { ...context, ...options.context } });
|
|
109
|
+
};
|
|
110
|
+
const view = (more) => this.view({ ...context, ...more }, readOnly);
|
|
111
|
+
return new Proxy(this, {
|
|
112
|
+
get(target, property, receiver) {
|
|
113
|
+
if (property === "request")
|
|
114
|
+
return request;
|
|
115
|
+
/* Through the receiver, so a proxy wrapped around this view still sees the request. */
|
|
116
|
+
if (property === "get") {
|
|
117
|
+
return (path, options = {}) => receiver.request("GET", path, options);
|
|
118
|
+
}
|
|
119
|
+
if (property === "view")
|
|
120
|
+
return view;
|
|
121
|
+
return Reflect.get(target, property, receiver);
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
/** A view that refuses any request that could change server state. */
|
|
126
|
+
readOnlyView(context) {
|
|
127
|
+
return this.view(context, true);
|
|
128
|
+
}
|
|
46
129
|
/** Register a principal so every request that carries its credential refreshes and 401-retries. */
|
|
47
130
|
bindAuth(auth) {
|
|
48
131
|
this.boundAuth.push(auth);
|
|
@@ -61,11 +144,32 @@ export class Client {
|
|
|
61
144
|
this.waiting.shift()?.();
|
|
62
145
|
}
|
|
63
146
|
async request(method, path, options = {}) {
|
|
147
|
+
if (method.toUpperCase() !== "GET" && method.toUpperCase() !== "HEAD")
|
|
148
|
+
this.writes += 1;
|
|
64
149
|
const url = new URL(isAbsoluteHttpUrl(path) ? path : `${this.baseUrl}${path}`);
|
|
65
150
|
for (const [key, value] of Object.entries(options.query ?? {})) {
|
|
66
151
|
if (value !== undefined)
|
|
67
152
|
url.searchParams.set(key, String(value));
|
|
68
153
|
}
|
|
154
|
+
let pendingEntity;
|
|
155
|
+
const resolved = isAbsoluteHttpUrl(path)
|
|
156
|
+
? null
|
|
157
|
+
: (this.operationResolver?.(method.toUpperCase(), this.relativePath(url)) ?? null);
|
|
158
|
+
const stamp = (headers) => {
|
|
159
|
+
if (resolved?.entity !== undefined && resolved.entity !== null)
|
|
160
|
+
pendingEntity = resolved.entity;
|
|
161
|
+
const operationId = options.operationId ?? resolved?.operationId;
|
|
162
|
+
const principal = this.principalResolver?.(headers);
|
|
163
|
+
const context = options.context ?? {};
|
|
164
|
+
return {
|
|
165
|
+
...(operationId === undefined ? {} : { operationId }),
|
|
166
|
+
...(resolved === null ? {} : { template: resolved.template }),
|
|
167
|
+
...(principal === undefined ? {} : { principal }),
|
|
168
|
+
...(context.purpose === undefined ? {} : { purpose: context.purpose }),
|
|
169
|
+
...(context.check === undefined ? {} : { check: context.check }),
|
|
170
|
+
...(context.subject === undefined ? {} : { subject: context.subject }),
|
|
171
|
+
};
|
|
172
|
+
};
|
|
69
173
|
const resolveUserHeaders = () => {
|
|
70
174
|
const raw = options.headers;
|
|
71
175
|
return { ...(typeof raw === "function" ? raw() : raw) };
|
|
@@ -88,9 +192,20 @@ export class Client {
|
|
|
88
192
|
userHeaders = { ...userHeaders, ...bound.headers() };
|
|
89
193
|
const headers = { ...this.globalHeaders, ...hookHeaders, ...userHeaders };
|
|
90
194
|
const encoded = encodeBody(options.body, options.contentType);
|
|
195
|
+
/* A body that will be stored by reference is hashed once, from the text that was sent. */
|
|
196
|
+
const requestDigest = encoded.text !== undefined && encoded.bytes > INLINE_BODY_LIMIT
|
|
197
|
+
? { bytes: encoded.bytes, sha256: sha256Hex(Buffer.from(encoded.text)) }
|
|
198
|
+
: undefined;
|
|
91
199
|
if (encoded.contentType !== undefined)
|
|
92
200
|
headers["content-type"] = encoded.contentType;
|
|
93
201
|
const jar = new CookieJar();
|
|
202
|
+
const callerCookie = headerValue(headers, "cookie");
|
|
203
|
+
/* Every header that carries a credential: the known names, and whatever the bound
|
|
204
|
+
* principal injects — an API key under a custom name is still a key. */
|
|
205
|
+
const credentialNames = new Set([
|
|
206
|
+
...CREDENTIAL_HEADERS,
|
|
207
|
+
...Object.keys(bound?.headers() ?? {}).map((name) => name.toLowerCase()),
|
|
208
|
+
]);
|
|
94
209
|
const hops = [];
|
|
95
210
|
let hopUrl = url;
|
|
96
211
|
let hopMethod = method;
|
|
@@ -106,7 +221,8 @@ export class Client {
|
|
|
106
221
|
* slot is acquired first and released in the same finally as before — pacing sits
|
|
107
222
|
* entirely inside that window and never changes what maxInFlight itself guarantees. */
|
|
108
223
|
const verb = method.toUpperCase();
|
|
109
|
-
|
|
224
|
+
/* Rules are written against documented paths, which never include the base path. */
|
|
225
|
+
const tagged = this.rateLimiter?.resolve(verb, this.relativePath(url), options.operationId ?? resolved?.operationId);
|
|
110
226
|
const implicit = tagged === undefined ? this.rateLimiter?.implicitRule(verb) : undefined;
|
|
111
227
|
const rule = tagged ?? implicit;
|
|
112
228
|
await this.acquire();
|
|
@@ -115,6 +231,7 @@ export class Client {
|
|
|
115
231
|
let response;
|
|
116
232
|
let parsed = null;
|
|
117
233
|
let bodyBytes = 0;
|
|
234
|
+
let digest;
|
|
118
235
|
let at = 0;
|
|
119
236
|
try {
|
|
120
237
|
if (tagged !== undefined)
|
|
@@ -134,9 +251,9 @@ export class Client {
|
|
|
134
251
|
const timeoutMs = this.network?.requestTimeoutMs;
|
|
135
252
|
const signal = timeoutMs === undefined ? undefined : AbortSignal.timeout(timeoutMs);
|
|
136
253
|
const once = async (target, hopInit) => fetch(target, signal === undefined ? hopInit : { ...hopInit, signal });
|
|
137
|
-
applyJarToHeaders(hopHeaders, jar, hopUrl);
|
|
254
|
+
applyJarToHeaders(hopHeaders, jar, hopUrl, callerCookie);
|
|
138
255
|
response = await once(hopUrl, { ...init, headers: hopHeaders, method: hopMethod });
|
|
139
|
-
({ parsed, bodyBytes } = await readResponsePayload(response));
|
|
256
|
+
({ parsed, bodyBytes, digest } = await readResponsePayload(response));
|
|
140
257
|
jar.absorb(hopUrl, setCookieHeadersFrom(response.headers));
|
|
141
258
|
if (options.redirect === "follow") {
|
|
142
259
|
while (isRedirectStatus(response.status) && hops.length < MAX_REDIRECTS) {
|
|
@@ -148,8 +265,14 @@ export class Client {
|
|
|
148
265
|
status: response.status,
|
|
149
266
|
url: hopUrl.toString(),
|
|
150
267
|
});
|
|
151
|
-
|
|
152
|
-
|
|
268
|
+
/* Another origin — scheme, host or port — gets no credential of ours. */
|
|
269
|
+
const crossOrigin = next.url.origin !== url.origin;
|
|
270
|
+
if (crossOrigin) {
|
|
271
|
+
for (const name of Object.keys(hopHeaders)) {
|
|
272
|
+
if (credentialNames.has(name.toLowerCase()))
|
|
273
|
+
delete hopHeaders[name];
|
|
274
|
+
}
|
|
275
|
+
}
|
|
153
276
|
hopUrl = next.url;
|
|
154
277
|
hopMethod = next.method;
|
|
155
278
|
if (next.dropBody) {
|
|
@@ -157,7 +280,7 @@ export class Client {
|
|
|
157
280
|
omitHeader(hopHeaders, "content-type");
|
|
158
281
|
omitHeader(hopHeaders, "content-length");
|
|
159
282
|
}
|
|
160
|
-
applyJarToHeaders(hopHeaders, jar, hopUrl);
|
|
283
|
+
applyJarToHeaders(hopHeaders, jar, hopUrl, crossOrigin ? undefined : callerCookie);
|
|
161
284
|
const nextInit = {
|
|
162
285
|
headers: hopHeaders,
|
|
163
286
|
method: hopMethod,
|
|
@@ -166,7 +289,7 @@ export class Client {
|
|
|
166
289
|
if (hopBody !== undefined)
|
|
167
290
|
nextInit.body = hopBody;
|
|
168
291
|
response = await once(hopUrl, nextInit);
|
|
169
|
-
({ parsed, bodyBytes } = await readResponsePayload(response));
|
|
292
|
+
({ parsed, bodyBytes, digest } = await readResponsePayload(response));
|
|
170
293
|
jar.absorb(hopUrl, setCookieHeadersFrom(response.headers));
|
|
171
294
|
}
|
|
172
295
|
}
|
|
@@ -194,12 +317,11 @@ export class Client {
|
|
|
194
317
|
seq: this.seq,
|
|
195
318
|
status: 0,
|
|
196
319
|
url: url.toString(),
|
|
197
|
-
...(
|
|
320
|
+
...stamp(headers),
|
|
198
321
|
...(options.fixture === undefined ? {} : { fixture: options.fixture }),
|
|
199
322
|
};
|
|
200
|
-
this.transcript.push(failed);
|
|
201
323
|
await this.onExchange?.(failed);
|
|
202
|
-
await
|
|
324
|
+
await this.record(failed, pendingEntity);
|
|
203
325
|
throw new NetworkError({
|
|
204
326
|
attempts: attempt + 1,
|
|
205
327
|
cause: error,
|
|
@@ -231,21 +353,43 @@ export class Client {
|
|
|
231
353
|
responseBody: parsed,
|
|
232
354
|
responseBytes: responseMessageBytes(response.status, response.statusText, responseHeaders, bodyBytes),
|
|
233
355
|
responseHeaders,
|
|
356
|
+
...(digest === undefined ? {} : { responseDigest: digest }),
|
|
357
|
+
...(requestDigest === undefined ? {} : { requestDigest }),
|
|
234
358
|
seq: this.seq,
|
|
235
359
|
status: response.status,
|
|
236
360
|
url: url.toString(),
|
|
237
361
|
...(rule === undefined ? {} : { rateLimitCategory: rule.category, rateLimitSource: rule.source }),
|
|
238
362
|
...(rateLimitHadRoom === undefined ? {} : { rateLimitHadRoom }),
|
|
239
|
-
...(
|
|
363
|
+
...stamp(headers),
|
|
240
364
|
...(options.fixture === undefined ? {} : { fixture: options.fixture }),
|
|
241
365
|
...(hops.length === 0 ? {} : { redirects: hops }),
|
|
242
366
|
...(landing === url.toString() ? {} : { finalUrl: landing }),
|
|
243
367
|
...(Object.keys(cookies).length === 0 ? {} : { cookies }),
|
|
244
368
|
};
|
|
245
|
-
this.transcript.push(exchange);
|
|
246
369
|
await this.onExchange?.(exchange);
|
|
247
|
-
await
|
|
248
|
-
|
|
370
|
+
await this.record(exchange, pendingEntity);
|
|
371
|
+
/* What the backend said is evidence: no check may rewrite it after the fact. */
|
|
372
|
+
return Object.freeze(exchange);
|
|
373
|
+
};
|
|
374
|
+
/*
|
|
375
|
+
* A failed request may be sent again only when doing so cannot do something twice: it never
|
|
376
|
+
* left this machine, or the method is idempotent, or it carries an idempotency key. A POST
|
|
377
|
+
* that timed out may well have created its record — resending it creates a second one, and
|
|
378
|
+
* oat would then report the duplicate as the backend's.
|
|
379
|
+
*/
|
|
380
|
+
const repeatable = (error) => NEVER_SENT.has(error.kind) ||
|
|
381
|
+
IDEMPOTENT.has(method.toUpperCase()) ||
|
|
382
|
+
Object.keys(resolveUserHeaders()).some((name) => /idempotency[-_]?key/i.test(name));
|
|
383
|
+
const deadline = performance.now() + (this.network?.deadlineMs ?? DEFAULT_DEADLINE_MS);
|
|
384
|
+
/* A refresh that fails is the backend's failure to keep a session alive, not this request's.
|
|
385
|
+
* It is raised as its own error so the run reports it rather than losing it in a check. */
|
|
386
|
+
const refreshing = async (force) => {
|
|
387
|
+
try {
|
|
388
|
+
await refresh?.(force);
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
throw new AuthRefreshError(this.principalResolver?.(resolveUserHeaders()), error);
|
|
392
|
+
}
|
|
249
393
|
};
|
|
250
394
|
const resilient = async () => {
|
|
251
395
|
const retries = this.network === undefined ? 0 : Math.max(0, this.network.retries ?? DEFAULT_NETWORK_RETRIES);
|
|
@@ -258,32 +402,44 @@ export class Client {
|
|
|
258
402
|
if (!isNetworkError(error))
|
|
259
403
|
throw error;
|
|
260
404
|
last = error;
|
|
405
|
+
if (!repeatable(error))
|
|
406
|
+
throw error;
|
|
407
|
+
const wait = networkRetryWaitMs(attempt);
|
|
408
|
+
if (performance.now() + wait > deadline)
|
|
409
|
+
throw error;
|
|
261
410
|
if (attempt < retries)
|
|
262
|
-
await sleep(
|
|
411
|
+
await sleep(wait);
|
|
263
412
|
}
|
|
264
413
|
}
|
|
265
|
-
if (last !== undefined &&
|
|
414
|
+
if (last !== undefined &&
|
|
415
|
+
repeatable(last) &&
|
|
416
|
+
performance.now() < deadline &&
|
|
417
|
+
this.network?.awaitRecovery !== undefined &&
|
|
418
|
+
(await this.network.awaitRecovery(last))) {
|
|
266
419
|
return dispatch(retries + 1);
|
|
267
420
|
}
|
|
268
421
|
throw last;
|
|
269
422
|
};
|
|
270
423
|
if (refresh !== undefined)
|
|
271
|
-
await
|
|
424
|
+
await refreshing(false);
|
|
272
425
|
let exchange = await resilient();
|
|
273
426
|
if (exchange.status === 401 && refresh !== undefined) {
|
|
274
|
-
|
|
427
|
+
this.supersede(exchange);
|
|
428
|
+
await refreshing(true);
|
|
275
429
|
exchange = await resilient();
|
|
276
430
|
}
|
|
277
431
|
/* 429 is reactive: the first one is never a seed/check failure. Tags pace proactively;
|
|
278
432
|
* this path honours the server even when the op has no x-rate-limit at all. */
|
|
279
433
|
for (let attempt = 0; exchange.status === 429 && attempt < MAX_429_RETRIES; attempt++) {
|
|
280
434
|
const waitMs = retryWaitMs(headerValue(exchange.responseHeaders, "retry-after"), attempt);
|
|
281
|
-
this.rateLimiter?.noteBackoff(method.toUpperCase(), url
|
|
435
|
+
this.rateLimiter?.noteBackoff(method.toUpperCase(), this.relativePath(url), waitMs, options.operationId ?? resolved?.operationId);
|
|
282
436
|
if (waitMs > 0)
|
|
283
437
|
await new Promise((resolve) => setTimeout(resolve, waitMs));
|
|
438
|
+
this.supersede(exchange);
|
|
284
439
|
exchange = await resilient();
|
|
285
440
|
if (exchange.status === 401 && refresh !== undefined) {
|
|
286
|
-
|
|
441
|
+
this.supersede(exchange);
|
|
442
|
+
await refreshing(true);
|
|
287
443
|
exchange = await resilient();
|
|
288
444
|
}
|
|
289
445
|
}
|
|
@@ -292,6 +448,49 @@ export class Client {
|
|
|
292
448
|
get(path, options = {}) {
|
|
293
449
|
return this.request("GET", path, options);
|
|
294
450
|
}
|
|
451
|
+
/**
|
|
452
|
+
* Keeps a compacted copy in the transcript. The caller's exchange is left whole: a check
|
|
453
|
+
* reading a 300 KiB page must see the page, not a hash of it.
|
|
454
|
+
*/
|
|
455
|
+
async record(exchange, entity) {
|
|
456
|
+
const stored = { ...exchange };
|
|
457
|
+
await releaseTranscriptBodies(stored);
|
|
458
|
+
this.transcript.push(stored);
|
|
459
|
+
this.stored.set(exchange.seq, stored);
|
|
460
|
+
await this.spool.keep(stored);
|
|
461
|
+
if (stored.operationId !== undefined) {
|
|
462
|
+
const list = this.byOperationId.get(stored.operationId) ?? [];
|
|
463
|
+
list.push(stored);
|
|
464
|
+
this.byOperationId.set(stored.operationId, list);
|
|
465
|
+
}
|
|
466
|
+
if (entity !== undefined) {
|
|
467
|
+
const list = this.byEntity.get(entity) ?? [];
|
|
468
|
+
list.push(stored);
|
|
469
|
+
this.byEntity.set(entity, list);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
stored = new Map();
|
|
473
|
+
spool = new BodySpool();
|
|
474
|
+
/**
|
|
475
|
+
* The exchange with its bodies, wherever they are kept. The transcript holds the most recent
|
|
476
|
+
* bodies in memory and moves older ones to disk once they pass a budget; a reader that judges
|
|
477
|
+
* bodies from the transcript — rather than from the exchange a request returned — asks here.
|
|
478
|
+
*/
|
|
479
|
+
hydrate(exchange) {
|
|
480
|
+
return this.spool.hydrate(exchange);
|
|
481
|
+
}
|
|
482
|
+
/** Removes the bodies moved to disk. The client is not used after this. */
|
|
483
|
+
async dispose() {
|
|
484
|
+
await this.spool.dispose();
|
|
485
|
+
}
|
|
486
|
+
/** Writes sent so far. A cached read taken before the latest write is stale. */
|
|
487
|
+
writes = 0;
|
|
488
|
+
/** Marks an answer that was asked again: only the final answer is the backend's verdict. */
|
|
489
|
+
supersede(exchange) {
|
|
490
|
+
const stored = this.stored.get(exchange.seq);
|
|
491
|
+
if (stored !== undefined)
|
|
492
|
+
stored.superseded = true;
|
|
493
|
+
}
|
|
295
494
|
}
|
|
296
495
|
/**
|
|
297
496
|
* Reproducible `curl` for an exchange — the artifact backend teams actually use.
|
|
@@ -300,63 +499,95 @@ export class Client {
|
|
|
300
499
|
* silently runs against a literal `$BASE` with a literal `$TOKEN`. Everything else is
|
|
301
500
|
* single-quoted so JSON bodies and query strings survive untouched.
|
|
302
501
|
*/
|
|
502
|
+
/**
|
|
503
|
+
* What follows `base` in `target`, when `target` lies under it: `/api` holds `/api/x` and `/api?q`,
|
|
504
|
+
* not `/apiv2/x`. `undefined` otherwise.
|
|
505
|
+
*/
|
|
506
|
+
export function belowBase(target, base) {
|
|
507
|
+
const prefix = base.replace(/\/$/, "");
|
|
508
|
+
if (!target.startsWith(prefix))
|
|
509
|
+
return undefined;
|
|
510
|
+
const rest = target.slice(prefix.length);
|
|
511
|
+
return rest === "" || /^[/?#]/.test(rest) ? rest : undefined;
|
|
512
|
+
}
|
|
513
|
+
/** One shell word, whatever it holds: single-quoted, with each `'` closed, escaped and reopened. */
|
|
514
|
+
function shellQuote(text) {
|
|
515
|
+
return `'${text.replace(/'/g, `'\\''`)}'`;
|
|
516
|
+
}
|
|
303
517
|
export function toCurl(exchange, options = {}) {
|
|
304
|
-
const redact = options.redact
|
|
305
|
-
const
|
|
306
|
-
|
|
307
|
-
|
|
518
|
+
const redact = options.redact;
|
|
519
|
+
const target = redactUrl(exchange.url);
|
|
520
|
+
const below = options.origin === undefined ? undefined : belowBase(target, options.origin);
|
|
521
|
+
const url = below === undefined ? shellQuote(target) : `"$BASE${shellEscapeDouble(below)}"`;
|
|
308
522
|
const parts = [`curl -i -X ${exchange.method} ${url}`];
|
|
309
523
|
for (const [key, value] of Object.entries(exchange.requestHeaders)) {
|
|
310
|
-
if (redact.includes(key.toLowerCase())) {
|
|
524
|
+
if (redact === undefined ? isSecretHeaderName(key) : redact.includes(key.toLowerCase())) {
|
|
311
525
|
/* Preserve the scheme prefix ("Bearer ", "ApiKey ") so the variable holds only the
|
|
312
526
|
* secret and the script stays copy-pasteable. */
|
|
313
527
|
const scheme = /^(\w+)\s+/.exec(value)?.[1];
|
|
314
528
|
const rendered = scheme === undefined ? "$TOKEN" : `${scheme} $TOKEN`;
|
|
315
|
-
parts.push(` -H "${key}: ${rendered}"`);
|
|
529
|
+
parts.push(` -H "${shellEscapeDouble(key)}: ${rendered}"`);
|
|
316
530
|
continue;
|
|
317
531
|
}
|
|
318
|
-
parts.push(` -H
|
|
532
|
+
parts.push(` -H ${shellQuote(`${key}: ${redactText(value)}`)}`);
|
|
319
533
|
}
|
|
320
534
|
if (exchange.requestBody !== undefined) {
|
|
321
|
-
for (const flag of curlBodyFlags(exchange.requestBody))
|
|
535
|
+
for (const flag of curlBodyFlags(redactBody(exchange.requestBody)))
|
|
322
536
|
parts.push(flag);
|
|
323
537
|
}
|
|
324
538
|
return parts.join(" \\\n");
|
|
325
539
|
}
|
|
540
|
+
/** A request body with secrets removed, keeping the shape `curlBodyFlags` understands. */
|
|
541
|
+
function redactBody(body) {
|
|
542
|
+
if (typeof body === "string")
|
|
543
|
+
return redactText(body);
|
|
544
|
+
if (isURLSearchParams(body)) {
|
|
545
|
+
const out = new URLSearchParams();
|
|
546
|
+
for (const [key, value] of body)
|
|
547
|
+
out.append(key, isSecretJsonKey(key) ? REDACTED : redactText(value));
|
|
548
|
+
return out;
|
|
549
|
+
}
|
|
550
|
+
if (isFormData(body) || isFormSnapshot(body) || isRawBytes(body) || isBodyRef(body)) {
|
|
551
|
+
return body;
|
|
552
|
+
}
|
|
553
|
+
return redactJson(body);
|
|
554
|
+
}
|
|
326
555
|
function curlBodyFlags(body) {
|
|
327
556
|
if (isFormData(body) || isFormSnapshot(body)) {
|
|
328
557
|
const flags = [];
|
|
329
558
|
if (isFormData(body)) {
|
|
330
559
|
for (const [name, value] of body.entries()) {
|
|
331
560
|
if (typeof value === "string") {
|
|
332
|
-
flags.push(` -F
|
|
561
|
+
flags.push(` -F ${shellQuote(`${name}=${value}`)}`);
|
|
333
562
|
}
|
|
334
563
|
else {
|
|
335
|
-
flags.push(` -F
|
|
564
|
+
flags.push(` -F ${shellQuote(`${name}=@${value.name};type=${value.type || "application/octet-stream"}`)}`);
|
|
336
565
|
}
|
|
337
566
|
}
|
|
338
567
|
return flags;
|
|
339
568
|
}
|
|
340
569
|
for (const part of body.parts) {
|
|
341
570
|
if ("value" in part) {
|
|
342
|
-
flags.push(` -F
|
|
571
|
+
flags.push(` -F ${shellQuote(`${part.field}=${part.value}`)}`);
|
|
343
572
|
}
|
|
344
573
|
else {
|
|
345
|
-
flags.push(` -F
|
|
574
|
+
flags.push(` -F ${shellQuote(`${part.field}=@${part.filename};type=${part.mediaType}`)}`);
|
|
346
575
|
}
|
|
347
576
|
}
|
|
348
577
|
return flags;
|
|
349
578
|
}
|
|
350
579
|
if (isURLSearchParams(body)) {
|
|
351
|
-
|
|
580
|
+
/* Field by field: curl encodes each value itself. Handing it the joined string encoded the
|
|
581
|
+
* separators too, so the server received one field holding the whole form. */
|
|
582
|
+
return [...body].map(([key, value]) => ` --data-urlencode ${shellQuote(`${key}=${value}`)}`);
|
|
352
583
|
}
|
|
353
584
|
if (typeof body === "string") {
|
|
354
|
-
return [` -d
|
|
585
|
+
return [` -d ${shellQuote(body)}`];
|
|
355
586
|
}
|
|
356
587
|
if (isRawBytes(body) || isBodyRef(body)) {
|
|
357
588
|
return [` --data-binary @-`];
|
|
358
589
|
}
|
|
359
|
-
return [` -d
|
|
590
|
+
return [` -d ${shellQuote(JSON.stringify(body))}`];
|
|
360
591
|
}
|
|
361
592
|
function encodeBody(body, contentType) {
|
|
362
593
|
if (body === undefined)
|
|
@@ -451,7 +682,8 @@ function formDataBytes(form) {
|
|
|
451
682
|
return total;
|
|
452
683
|
}
|
|
453
684
|
function utf8Bytes(text) {
|
|
454
|
-
|
|
685
|
+
/* Counted, not encoded: a copy of every body just to measure it is the cost to avoid. */
|
|
686
|
+
return text === undefined || text === "" ? 0 : Buffer.byteLength(text, "utf8");
|
|
455
687
|
}
|
|
456
688
|
function hasHeader(headers, name) {
|
|
457
689
|
const want = name.toLowerCase();
|
|
@@ -488,7 +720,7 @@ function httpMessageBytes(startLine, headers, body, bodyBytes = 0) {
|
|
|
488
720
|
text += `\r\n`;
|
|
489
721
|
if (body !== undefined)
|
|
490
722
|
text += body;
|
|
491
|
-
const headerBytes =
|
|
723
|
+
const headerBytes = Buffer.byteLength(text, "utf8");
|
|
492
724
|
return body === undefined ? headerBytes + bodyBytes : headerBytes;
|
|
493
725
|
}
|
|
494
726
|
const REQUEST_ID_HEADERS = ["x-request-id", "request-id", "x-correlation-id", "correlation-id"];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|