@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.d.ts
CHANGED
|
@@ -30,6 +30,16 @@ export interface Exchange {
|
|
|
30
30
|
rateLimitSource?: "tag" | "config" | "implicit";
|
|
31
31
|
/** Whether the bucket had a token without waiting — oat believes it was under its own pace. */
|
|
32
32
|
rateLimitHadRoom?: boolean;
|
|
33
|
+
/** Size and hash of a large request body as sent; what a stored reference names. */
|
|
34
|
+
requestDigest?: {
|
|
35
|
+
bytes: number;
|
|
36
|
+
sha256: string;
|
|
37
|
+
};
|
|
38
|
+
/** Size and hash of a large response body as received; what a stored reference names. */
|
|
39
|
+
responseDigest?: {
|
|
40
|
+
bytes: number;
|
|
41
|
+
sha256: string;
|
|
42
|
+
};
|
|
33
43
|
/** Named operation, when the caller passed one. */
|
|
34
44
|
operationId?: string;
|
|
35
45
|
/** `uploads.each` filename, when this request is one cell of that matrix. */
|
|
@@ -49,7 +59,47 @@ export interface Exchange {
|
|
|
49
59
|
finalUrl?: string;
|
|
50
60
|
/** Cookie jar after this hop (this response + followed hops). */
|
|
51
61
|
cookies?: Record<string, string>;
|
|
62
|
+
/** The documented path template this request resolved to, e.g. `/v1/tables/{table_id}`. */
|
|
63
|
+
template?: string;
|
|
64
|
+
/** The principal whose credential the request carried, when one did. */
|
|
65
|
+
principal?: string;
|
|
66
|
+
/** Why oat sent it — see `Purpose`. */
|
|
67
|
+
purpose?: Purpose;
|
|
68
|
+
/** The check that issued it, when a check did. */
|
|
69
|
+
check?: string;
|
|
70
|
+
/** The entity under test when it was issued. */
|
|
71
|
+
subject?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Set when this response was answered again: a 401 refreshed and retried, or a 429 waited out.
|
|
74
|
+
* Only the final answer is the backend's verdict on the request.
|
|
75
|
+
*/
|
|
76
|
+
superseded?: true;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Why an exchange happened. Normal traffic — seeding, a check's assertions, auth, teardown — is
|
|
80
|
+
* what the document has to describe. A deliberate negative probe is oat sending something it
|
|
81
|
+
* expects to be refused, and what a backend answers it with is judged separately.
|
|
82
|
+
*/
|
|
83
|
+
export type Purpose = "seed" | "assertion" | "probe" | "auth" | "teardown";
|
|
84
|
+
/** Who is asking, and why: carried onto every exchange a view sends. */
|
|
85
|
+
/** Methods that cannot change server state. */
|
|
86
|
+
export type SafeMethod = "GET" | "HEAD" | "OPTIONS";
|
|
87
|
+
/** A client that can only read: what a check that does not mutate receives. */
|
|
88
|
+
export interface ReadClient extends Omit<Client, "request" | "view"> {
|
|
89
|
+
request(method: SafeMethod, path: string, options?: RequestOptions): Promise<Exchange>;
|
|
90
|
+
view(context: ExchangeContext): ReadClient;
|
|
91
|
+
}
|
|
92
|
+
export interface ExchangeContext {
|
|
93
|
+
check?: string;
|
|
94
|
+
subject?: string;
|
|
95
|
+
purpose?: Purpose;
|
|
52
96
|
}
|
|
97
|
+
/** Maps a request to the documented operation it is an instance of. */
|
|
98
|
+
export type OperationResolver = (method: string, relativePath: string) => {
|
|
99
|
+
operationId: string;
|
|
100
|
+
template: string;
|
|
101
|
+
entity?: string | null;
|
|
102
|
+
} | null;
|
|
53
103
|
/** A principal bound so every dispatch can refresh and retry a 401 without call-site ceremony. */
|
|
54
104
|
export interface BoundAuth {
|
|
55
105
|
matches: (headers: Record<string, string>) => boolean;
|
|
@@ -85,6 +135,8 @@ export interface RequestOptions {
|
|
|
85
135
|
refreshIfStale?: (force?: boolean) => Promise<void>;
|
|
86
136
|
/** Auth acquire / refresh hops must set this so they cannot recurse into refresh. */
|
|
87
137
|
skipAuthRefresh?: boolean;
|
|
138
|
+
/** Who is asking and why. A view fills this in; a caller may narrow `purpose` per request. */
|
|
139
|
+
context?: ExchangeContext;
|
|
88
140
|
/** Named operation, when the caller knows it — `resolveHeaders` uses this to attach captcha. */
|
|
89
141
|
operationId?: string;
|
|
90
142
|
/** `uploads.each` filename, recorded on the exchange for the journal. */
|
|
@@ -95,10 +147,20 @@ export interface RequestOptions {
|
|
|
95
147
|
*/
|
|
96
148
|
redirect?: "follow" | "manual";
|
|
97
149
|
}
|
|
150
|
+
/** Refreshing a principal's credential failed; `principal` names it when known. */
|
|
151
|
+
export declare class AuthRefreshError extends Error {
|
|
152
|
+
readonly principal: string | undefined;
|
|
153
|
+
readonly reason: unknown;
|
|
154
|
+
constructor(principal: string | undefined, reason: unknown);
|
|
155
|
+
}
|
|
156
|
+
/** How long one request may take across every attempt and wait, unless configured. */
|
|
157
|
+
export declare const DEFAULT_DEADLINE_MS: number;
|
|
98
158
|
/** Optional retry / wait-for-link policy. Unset keeps today's "throw and hope". */
|
|
99
159
|
export interface NetworkClientOptions {
|
|
100
160
|
retries?: number;
|
|
101
161
|
requestTimeoutMs?: number;
|
|
162
|
+
/** Total time one request may take across every attempt and wait. */
|
|
163
|
+
deadlineMs?: number;
|
|
102
164
|
awaitRecovery?: (error: NetworkError) => Promise<boolean>;
|
|
103
165
|
}
|
|
104
166
|
export declare class Client {
|
|
@@ -118,7 +180,16 @@ export declare class Client {
|
|
|
118
180
|
/** Observes each dispatch. `start` runs just before `fetch`; `end` always follows. */
|
|
119
181
|
private readonly httpHooks?;
|
|
120
182
|
private readonly network?;
|
|
183
|
+
/**
|
|
184
|
+
* Every exchange, with bodies compacted for memory. The exchange a request returns to its
|
|
185
|
+
* caller is never compacted: it holds the real body, however large.
|
|
186
|
+
*/
|
|
121
187
|
readonly transcript: Exchange[];
|
|
188
|
+
private readonly byOperationId;
|
|
189
|
+
private readonly byEntity;
|
|
190
|
+
private readonly entityOf;
|
|
191
|
+
private operationResolver;
|
|
192
|
+
private principalResolver;
|
|
122
193
|
private seq;
|
|
123
194
|
private inFlight;
|
|
124
195
|
private readonly waiting;
|
|
@@ -139,6 +210,23 @@ export declare class Client {
|
|
|
139
210
|
private resolveHeaders;
|
|
140
211
|
/** Per-request headers, merged after `globalHeaders` and before the principal's credential. */
|
|
141
212
|
setResolveHeaders(fn: (request: HeaderRequest) => Promise<Record<string, string> | null>): void;
|
|
213
|
+
/** Resolves each request to its documented operation, so nothing downstream parses URLs. */
|
|
214
|
+
setOperationResolver(resolve: OperationResolver): void;
|
|
215
|
+
/** Names the principal a set of request headers belongs to. */
|
|
216
|
+
setPrincipalResolver(resolve: (headers: Record<string, string>) => string | undefined): void;
|
|
217
|
+
/** The path below the base URL — what a documented path template describes. */
|
|
218
|
+
relativePath(url: URL | string): string;
|
|
219
|
+
/** Exchanges that resolved to an operation of `entity`, in order. */
|
|
220
|
+
exchangesForEntity(entity: string): readonly Exchange[];
|
|
221
|
+
/** Exchanges that resolved to `operationId`, in order. */
|
|
222
|
+
exchangesFor(operationId: string): readonly Exchange[];
|
|
223
|
+
/**
|
|
224
|
+
* A client that stamps every request it sends with `context`. Checks each get their own, so
|
|
225
|
+
* an exchange names the check that issued it even while checks run concurrently.
|
|
226
|
+
*/
|
|
227
|
+
view(context: ExchangeContext, readOnly?: boolean): Client;
|
|
228
|
+
/** A view that refuses any request that could change server state. */
|
|
229
|
+
readOnlyView(context: ExchangeContext): ReadClient;
|
|
142
230
|
/** Register a principal so every request that carries its credential refreshes and 401-retries. */
|
|
143
231
|
bindAuth(auth: BoundAuth): void;
|
|
144
232
|
/** Admission control. Held for the duration of one request, released in a finally. */
|
|
@@ -146,6 +234,25 @@ export declare class Client {
|
|
|
146
234
|
private release;
|
|
147
235
|
request(method: string, path: string, options?: RequestOptions): Promise<Exchange>;
|
|
148
236
|
get(path: string, options?: RequestOptions): Promise<Exchange>;
|
|
237
|
+
/**
|
|
238
|
+
* Keeps a compacted copy in the transcript. The caller's exchange is left whole: a check
|
|
239
|
+
* reading a 300 KiB page must see the page, not a hash of it.
|
|
240
|
+
*/
|
|
241
|
+
private record;
|
|
242
|
+
private readonly stored;
|
|
243
|
+
private readonly spool;
|
|
244
|
+
/**
|
|
245
|
+
* The exchange with its bodies, wherever they are kept. The transcript holds the most recent
|
|
246
|
+
* bodies in memory and moves older ones to disk once they pass a budget; a reader that judges
|
|
247
|
+
* bodies from the transcript — rather than from the exchange a request returned — asks here.
|
|
248
|
+
*/
|
|
249
|
+
hydrate(exchange: Exchange): Promise<Exchange>;
|
|
250
|
+
/** Removes the bodies moved to disk. The client is not used after this. */
|
|
251
|
+
dispose(): Promise<void>;
|
|
252
|
+
/** Writes sent so far. A cached read taken before the latest write is stale. */
|
|
253
|
+
writes: number;
|
|
254
|
+
/** Marks an answer that was asked again: only the final answer is the backend's verdict. */
|
|
255
|
+
private supersede;
|
|
149
256
|
}
|
|
150
257
|
export interface CurlOptions {
|
|
151
258
|
/** Header names whose values are replaced by a shell variable reference. */
|
|
@@ -160,6 +267,11 @@ export interface CurlOptions {
|
|
|
160
267
|
* silently runs against a literal `$BASE` with a literal `$TOKEN`. Everything else is
|
|
161
268
|
* single-quoted so JSON bodies and query strings survive untouched.
|
|
162
269
|
*/
|
|
270
|
+
/**
|
|
271
|
+
* What follows `base` in `target`, when `target` lies under it: `/api` holds `/api/x` and `/api?q`,
|
|
272
|
+
* not `/apiv2/x`. `undefined` otherwise.
|
|
273
|
+
*/
|
|
274
|
+
export declare function belowBase(target: string, base: string): string | undefined;
|
|
163
275
|
export declare function toCurl(exchange: Exchange, options?: CurlOptions): string;
|
|
164
276
|
/** Response header first, then the request. Empty when neither side sent one of the known names. */
|
|
165
277
|
/** Plain snapshot of a request body for reports — FormData is not JSON. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"AAAA,mGAAmG;AAEnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/runtime/client.ts"],"names":[],"mappings":"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"}
|