@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.
Files changed (278) hide show
  1. package/README.md +25 -2006
  2. package/dist/cli.js +283 -59
  3. package/dist/config/define-config.d.ts +8 -0
  4. package/dist/config/define-config.d.ts.map +1 -1
  5. package/dist/config/define-config.js.map +1 -1
  6. package/dist/config/validate.d.ts +12 -0
  7. package/dist/config/validate.d.ts.map +1 -0
  8. package/dist/config/validate.js +86 -0
  9. package/dist/config/validate.js.map +1 -0
  10. package/dist/conformance/effects.d.ts +9 -0
  11. package/dist/conformance/effects.d.ts.map +1 -0
  12. package/dist/conformance/effects.js +276 -0
  13. package/dist/conformance/effects.js.map +1 -0
  14. package/dist/conformance/expected-failures.d.ts +18 -0
  15. package/dist/conformance/expected-failures.d.ts.map +1 -0
  16. package/dist/conformance/expected-failures.js +48 -0
  17. package/dist/conformance/expected-failures.js.map +1 -0
  18. package/dist/conformance/feature-gate.d.ts +7 -0
  19. package/dist/conformance/feature-gate.d.ts.map +1 -0
  20. package/dist/conformance/feature-gate.js +428 -0
  21. package/dist/conformance/feature-gate.js.map +1 -0
  22. package/dist/conformance/fuzz.d.ts +108 -0
  23. package/dist/conformance/fuzz.d.ts.map +1 -0
  24. package/dist/conformance/fuzz.js +246 -0
  25. package/dist/conformance/fuzz.js.map +1 -0
  26. package/dist/conformance/leaks.d.ts +10 -0
  27. package/dist/conformance/leaks.d.ts.map +1 -0
  28. package/dist/conformance/leaks.js +23 -0
  29. package/dist/conformance/leaks.js.map +1 -0
  30. package/dist/conformance/pool.d.ts +49 -0
  31. package/dist/conformance/pool.d.ts.map +1 -0
  32. package/dist/conformance/pool.js +75 -0
  33. package/dist/conformance/pool.js.map +1 -0
  34. package/dist/conformance/rate-limit.d.ts +7 -0
  35. package/dist/conformance/rate-limit.d.ts.map +1 -0
  36. package/dist/conformance/rate-limit.js +372 -0
  37. package/dist/conformance/rate-limit.js.map +1 -0
  38. package/dist/conformance/scope.d.ts +15 -0
  39. package/dist/conformance/scope.d.ts.map +1 -0
  40. package/dist/conformance/scope.js +78 -0
  41. package/dist/conformance/scope.js.map +1 -0
  42. package/dist/conformance/seed-contract.d.ts +11 -0
  43. package/dist/conformance/seed-contract.d.ts.map +1 -0
  44. package/dist/conformance/seed-contract.js +680 -0
  45. package/dist/conformance/seed-contract.js.map +1 -0
  46. package/dist/conformance/shapes.d.ts +35 -0
  47. package/dist/conformance/shapes.d.ts.map +1 -0
  48. package/dist/conformance/shapes.js +162 -0
  49. package/dist/conformance/shapes.js.map +1 -0
  50. package/dist/conformance/specs.d.ts +21 -0
  51. package/dist/conformance/specs.d.ts.map +1 -0
  52. package/dist/conformance/specs.js +306 -0
  53. package/dist/conformance/specs.js.map +1 -0
  54. package/dist/conformance/suite.d.ts +209 -0
  55. package/dist/conformance/suite.d.ts.map +1 -0
  56. package/dist/conformance/suite.js +1538 -0
  57. package/dist/conformance/suite.js.map +1 -0
  58. package/dist/conformance/unique.d.ts +7 -0
  59. package/dist/conformance/unique.d.ts.map +1 -0
  60. package/dist/conformance/unique.js +586 -0
  61. package/dist/conformance/unique.js.map +1 -0
  62. package/dist/conformance/worker.d.ts +3 -0
  63. package/dist/conformance/worker.d.ts.map +1 -0
  64. package/dist/conformance/worker.js +27 -0
  65. package/dist/conformance/worker.js.map +1 -0
  66. package/dist/index.d.ts +8 -3
  67. package/dist/index.js +5 -2
  68. package/dist/reference/defects.d.ts +71 -1
  69. package/dist/reference/defects.d.ts.map +1 -1
  70. package/dist/reference/defects.js +74 -8
  71. package/dist/reference/defects.js.map +1 -1
  72. package/dist/reference/dialect.d.ts +6 -4
  73. package/dist/reference/dialect.d.ts.map +1 -1
  74. package/dist/reference/dialect.js +1 -0
  75. package/dist/reference/dialect.js.map +1 -1
  76. package/dist/reference/http.d.ts +17 -25
  77. package/dist/reference/http.d.ts.map +1 -1
  78. package/dist/reference/http.js +574 -224
  79. package/dist/reference/http.js.map +1 -1
  80. package/dist/reference/listing.d.ts +51 -0
  81. package/dist/reference/listing.d.ts.map +1 -0
  82. package/dist/reference/listing.js +256 -0
  83. package/dist/reference/listing.js.map +1 -0
  84. package/dist/reference/model.d.ts +35 -1
  85. package/dist/reference/model.d.ts.map +1 -1
  86. package/dist/reference/model.js +42 -0
  87. package/dist/reference/model.js.map +1 -1
  88. package/dist/reference/query.d.ts +132 -43
  89. package/dist/reference/query.d.ts.map +1 -1
  90. package/dist/reference/query.js +397 -315
  91. package/dist/reference/query.js.map +1 -1
  92. package/dist/reference/shapes.d.ts +60 -0
  93. package/dist/reference/shapes.d.ts.map +1 -0
  94. package/dist/reference/shapes.js +142 -0
  95. package/dist/reference/shapes.js.map +1 -0
  96. package/dist/reference/spec.d.ts +9 -2
  97. package/dist/reference/spec.d.ts.map +1 -1
  98. package/dist/reference/spec.js +291 -71
  99. package/dist/reference/spec.js.map +1 -1
  100. package/dist/reference/store-api.d.ts +14 -43
  101. package/dist/reference/store-api.d.ts.map +1 -1
  102. package/dist/reference/store-api.js +8 -58
  103. package/dist/reference/store-api.js.map +1 -1
  104. package/dist/reference/stores/memory.d.ts +12 -15
  105. package/dist/reference/stores/memory.d.ts.map +1 -1
  106. package/dist/reference/stores/memory.js +22 -70
  107. package/dist/reference/stores/memory.js.map +1 -1
  108. package/dist/reference/stores/postgres.d.ts +11 -23
  109. package/dist/reference/stores/postgres.d.ts.map +1 -1
  110. package/dist/reference/stores/postgres.js +53 -334
  111. package/dist/reference/stores/postgres.js.map +1 -1
  112. package/dist/reference/stores/sql-compile.d.ts +36 -0
  113. package/dist/reference/stores/sql-compile.d.ts.map +1 -0
  114. package/dist/reference/stores/sql-compile.js +95 -0
  115. package/dist/reference/stores/sql-compile.js.map +1 -0
  116. package/dist/reference/stores/sqlite.d.ts +12 -27
  117. package/dist/reference/stores/sqlite.d.ts.map +1 -1
  118. package/dist/reference/stores/sqlite.js +54 -355
  119. package/dist/reference/stores/sqlite.js.map +1 -1
  120. package/dist/report/console.d.ts.map +1 -1
  121. package/dist/report/console.js +23 -9
  122. package/dist/report/console.js.map +1 -1
  123. package/dist/report/matrix.d.ts +2 -0
  124. package/dist/report/matrix.d.ts.map +1 -1
  125. package/dist/report/matrix.js +63 -10
  126. package/dist/report/matrix.js.map +1 -1
  127. package/dist/report/render.d.ts +10 -1
  128. package/dist/report/render.d.ts.map +1 -1
  129. package/dist/report/render.js +75 -13
  130. package/dist/report/render.js.map +1 -1
  131. package/dist/runtime/async.d.ts +16 -3
  132. package/dist/runtime/async.d.ts.map +1 -1
  133. package/dist/runtime/async.js +24 -19
  134. package/dist/runtime/async.js.map +1 -1
  135. package/dist/runtime/auth.d.ts +2 -9
  136. package/dist/runtime/auth.d.ts.map +1 -1
  137. package/dist/runtime/auth.js +38 -62
  138. package/dist/runtime/auth.js.map +1 -1
  139. package/dist/runtime/body.d.ts +15 -3
  140. package/dist/runtime/body.d.ts.map +1 -1
  141. package/dist/runtime/body.js +61 -12
  142. package/dist/runtime/body.js.map +1 -1
  143. package/dist/runtime/check-costs.d.ts +15 -0
  144. package/dist/runtime/check-costs.d.ts.map +1 -0
  145. package/dist/runtime/check-costs.js +114 -0
  146. package/dist/runtime/check-costs.js.map +1 -0
  147. package/dist/runtime/check-ids.d.ts +15 -0
  148. package/dist/runtime/check-ids.d.ts.map +1 -0
  149. package/dist/runtime/check-ids.js +140 -0
  150. package/dist/runtime/check-ids.js.map +1 -0
  151. package/dist/runtime/checks.d.ts +83 -20
  152. package/dist/runtime/checks.d.ts.map +1 -1
  153. package/dist/runtime/checks.js +3285 -1947
  154. package/dist/runtime/checks.js.map +1 -1
  155. package/dist/runtime/client.d.ts +112 -0
  156. package/dist/runtime/client.d.ts.map +1 -1
  157. package/dist/runtime/client.js +271 -39
  158. package/dist/runtime/client.js.map +1 -1
  159. package/dist/runtime/cookies.d.ts +16 -2
  160. package/dist/runtime/cookies.d.ts.map +1 -1
  161. package/dist/runtime/cookies.js +83 -22
  162. package/dist/runtime/cookies.js.map +1 -1
  163. package/dist/runtime/exchanges.d.ts +4 -5
  164. package/dist/runtime/exchanges.d.ts.map +1 -1
  165. package/dist/runtime/exchanges.js +33 -55
  166. package/dist/runtime/exchanges.js.map +1 -1
  167. package/dist/runtime/exit.d.ts +40 -0
  168. package/dist/runtime/exit.d.ts.map +1 -0
  169. package/dist/runtime/exit.js +48 -0
  170. package/dist/runtime/exit.js.map +1 -0
  171. package/dist/runtime/feature-gate.d.ts +0 -9
  172. package/dist/runtime/feature-gate.d.ts.map +1 -1
  173. package/dist/runtime/feature-gate.js +0 -21
  174. package/dist/runtime/feature-gate.js.map +1 -1
  175. package/dist/runtime/finding.d.ts +49 -8
  176. package/dist/runtime/finding.d.ts.map +1 -1
  177. package/dist/runtime/finding.js +51 -8
  178. package/dist/runtime/finding.js.map +1 -1
  179. package/dist/runtime/fixture.d.ts +35 -28
  180. package/dist/runtime/fixture.d.ts.map +1 -1
  181. package/dist/runtime/fixture.js +92 -731
  182. package/dist/runtime/fixture.js.map +1 -1
  183. package/dist/runtime/generate.d.ts +63 -0
  184. package/dist/runtime/generate.d.ts.map +1 -0
  185. package/dist/runtime/generate.js +635 -0
  186. package/dist/runtime/generate.js.map +1 -0
  187. package/dist/runtime/headers.d.ts +6 -0
  188. package/dist/runtime/headers.d.ts.map +1 -0
  189. package/dist/runtime/headers.js +16 -0
  190. package/dist/runtime/headers.js.map +1 -0
  191. package/dist/runtime/path.d.ts +7 -0
  192. package/dist/runtime/path.d.ts.map +1 -0
  193. package/dist/runtime/path.js +44 -0
  194. package/dist/runtime/path.js.map +1 -0
  195. package/dist/runtime/payloads.d.ts +2 -0
  196. package/dist/runtime/payloads.d.ts.map +1 -1
  197. package/dist/runtime/payloads.js +2 -1
  198. package/dist/runtime/payloads.js.map +1 -1
  199. package/dist/runtime/rate-limit.d.ts +6 -4
  200. package/dist/runtime/rate-limit.d.ts.map +1 -1
  201. package/dist/runtime/rate-limit.js +22 -33
  202. package/dist/runtime/rate-limit.js.map +1 -1
  203. package/dist/runtime/redact.d.ts +24 -0
  204. package/dist/runtime/redact.d.ts.map +1 -0
  205. package/dist/runtime/redact.js +98 -0
  206. package/dist/runtime/redact.js.map +1 -0
  207. package/dist/runtime/run.d.ts +34 -2
  208. package/dist/runtime/run.d.ts.map +1 -1
  209. package/dist/runtime/run.js +346 -138
  210. package/dist/runtime/run.js.map +1 -1
  211. package/dist/runtime/runs.d.ts +5 -0
  212. package/dist/runtime/runs.d.ts.map +1 -1
  213. package/dist/runtime/runs.js +7 -1
  214. package/dist/runtime/runs.js.map +1 -1
  215. package/dist/runtime/teardown.d.ts +17 -4
  216. package/dist/runtime/teardown.d.ts.map +1 -1
  217. package/dist/runtime/teardown.js +49 -16
  218. package/dist/runtime/teardown.js.map +1 -1
  219. package/dist/runtime/transcript.d.ts +34 -2
  220. package/dist/runtime/transcript.d.ts.map +1 -1
  221. package/dist/runtime/transcript.js +119 -24
  222. package/dist/runtime/transcript.js.map +1 -1
  223. package/dist/runtime/unique.d.ts +2 -11
  224. package/dist/runtime/unique.d.ts.map +1 -1
  225. package/dist/runtime/unique.js +27 -53
  226. package/dist/runtime/unique.js.map +1 -1
  227. package/dist/runtime/validate.d.ts +13 -2
  228. package/dist/runtime/validate.d.ts.map +1 -1
  229. package/dist/runtime/validate.js +51 -31
  230. package/dist/runtime/validate.js.map +1 -1
  231. package/dist/runtime/wait.d.ts +2 -1
  232. package/dist/runtime/wait.d.ts.map +1 -1
  233. package/dist/runtime/wait.js +2 -36
  234. package/dist/runtime/wait.js.map +1 -1
  235. package/dist/runtime/world.d.ts +24 -1
  236. package/dist/runtime/world.d.ts.map +1 -1
  237. package/dist/runtime/world.js +101 -26
  238. package/dist/runtime/world.js.map +1 -1
  239. package/dist/spec/collection.d.ts +8 -2
  240. package/dist/spec/collection.d.ts.map +1 -1
  241. package/dist/spec/collection.js +47 -7
  242. package/dist/spec/collection.js.map +1 -1
  243. package/dist/spec/extensions.d.ts +5 -1
  244. package/dist/spec/extensions.d.ts.map +1 -1
  245. package/dist/spec/extensions.js +9 -2
  246. package/dist/spec/extensions.js.map +1 -1
  247. package/dist/spec/graph.d.ts +46 -0
  248. package/dist/spec/graph.d.ts.map +1 -1
  249. package/dist/spec/graph.js +175 -11
  250. package/dist/spec/graph.js.map +1 -1
  251. package/dist/spec/load.d.ts +25 -5
  252. package/dist/spec/load.d.ts.map +1 -1
  253. package/dist/spec/load.js +160 -59
  254. package/dist/spec/load.js.map +1 -1
  255. package/dist/spec/query-capabilities.d.ts +4 -0
  256. package/dist/spec/query-capabilities.d.ts.map +1 -1
  257. package/dist/spec/query-capabilities.js +6 -0
  258. package/dist/spec/query-capabilities.js.map +1 -1
  259. package/dist/spec/schema.d.ts +20 -0
  260. package/dist/spec/schema.d.ts.map +1 -0
  261. package/dist/spec/schema.js +118 -0
  262. package/dist/spec/schema.js.map +1 -0
  263. package/dist/spec/tag-schema.d.ts +12 -0
  264. package/dist/spec/tag-schema.d.ts.map +1 -0
  265. package/dist/spec/tag-schema.js +143 -0
  266. package/dist/spec/tag-schema.js.map +1 -0
  267. package/dist/spec/types.js +17 -1
  268. package/dist/spec/types.js.map +1 -1
  269. package/docs/api.md +59 -0
  270. package/docs/assumptions.md +99 -0
  271. package/docs/checks.md +183 -0
  272. package/docs/commands.md +214 -0
  273. package/docs/configuration.md +650 -0
  274. package/docs/model.md +184 -0
  275. package/docs/reference-defects.md +94 -0
  276. package/docs/reports.md +211 -0
  277. package/docs/tags.md +400 -0
  278. package/package.json +3 -1
@@ -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 { isBodyRef, isFormSnapshot, readResponsePayload, releaseTranscriptBodies } from "./transcript.js";
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
- const tagged = this.rateLimiter?.resolve(verb, url.pathname);
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
- if (next.url.hostname !== hopUrl.hostname)
152
- omitHeader(hopHeaders, "authorization");
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
- ...(options.operationId === undefined ? {} : { operationId: options.operationId }),
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 releaseTranscriptBodies(failed);
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
- ...(options.operationId === undefined ? {} : { operationId: options.operationId }),
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 releaseTranscriptBodies(exchange);
248
- return exchange;
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(networkRetryWaitMs(attempt));
411
+ await sleep(wait);
263
412
  }
264
413
  }
265
- if (last !== undefined && this.network?.awaitRecovery !== undefined && (await this.network.awaitRecovery(last))) {
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 refresh(false);
424
+ await refreshing(false);
272
425
  let exchange = await resilient();
273
426
  if (exchange.status === 401 && refresh !== undefined) {
274
- await refresh(true);
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.pathname, waitMs);
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
- await refresh(true);
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 ?? ["authorization", "cookie", "x-api-key"];
305
- const url = options.origin !== undefined && exchange.url.startsWith(options.origin)
306
- ? `"$BASE${shellEscapeDouble(exchange.url.slice(options.origin.length))}"`
307
- : `'${exchange.url}'`;
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 '${key}: ${value}'`);
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 '${name}=${value.replace(/'/g, `'\\''`)}'`);
561
+ flags.push(` -F ${shellQuote(`${name}=${value}`)}`);
333
562
  }
334
563
  else {
335
- flags.push(` -F '${name}=@${value.name};type=${value.type || "application/octet-stream"}'`);
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 '${part.field}=${part.value.replace(/'/g, `'\\''`)}'`);
571
+ flags.push(` -F ${shellQuote(`${part.field}=${part.value}`)}`);
343
572
  }
344
573
  else {
345
- flags.push(` -F '${part.field}=@${part.filename};type=${part.mediaType}'`);
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
- return [` --data-urlencode '${body.toString().replace(/'/g, `'\\''`)}'`];
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 '${body.replace(/'/g, `'\\''`)}'`];
585
+ return [` -d ${shellQuote(body)}`];
355
586
  }
356
587
  if (isRawBytes(body) || isBodyRef(body)) {
357
588
  return [` --data-binary @-`];
358
589
  }
359
- return [` -d '${JSON.stringify(body).replace(/'/g, `'\\''`)}'`];
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
- return text === undefined || text === "" ? 0 : new TextEncoder().encode(text).byteLength;
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 = new TextEncoder().encode(text).byteLength;
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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"}