kinetex 1.3.0 → 1.5.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 (123) hide show
  1. package/README.md +413 -52
  2. package/dist/browser/kinetex.esm.js +38 -22
  3. package/dist/browser/kinetex.js +3134 -787
  4. package/dist/browser/kinetex.min.js +38 -22
  5. package/dist/cjs/aws-sigv4.js +140 -33
  6. package/dist/cjs/cache.js +58 -7
  7. package/dist/cjs/circuit-breaker.js +53 -4
  8. package/dist/cjs/client.js +726 -188
  9. package/dist/cjs/cookie-parser.js +131 -6
  10. package/dist/cjs/cookie-store.js +125 -28
  11. package/dist/cjs/core.js +691 -70
  12. package/dist/cjs/dedup.js +142 -21
  13. package/dist/cjs/digest.js +195 -38
  14. package/dist/cjs/graphql.js +166 -35
  15. package/dist/cjs/headers.js +327 -46
  16. package/dist/cjs/interceptors.js +227 -24
  17. package/dist/cjs/lifecycle.js +92 -59
  18. package/dist/cjs/logging.js +160 -24
  19. package/dist/cjs/mod.js +3 -2
  20. package/dist/cjs/pagination.js +247 -22
  21. package/dist/cjs/progress.js +178 -30
  22. package/dist/cjs/proxy.js +429 -0
  23. package/dist/cjs/response.js +506 -110
  24. package/dist/cjs/socks5.js +136 -15
  25. package/dist/cjs/sse.js +173 -43
  26. package/dist/cjs/url.js +191 -45
  27. package/dist/cjs/utils.js +335 -73
  28. package/dist/cjs/ws.js +62 -12
  29. package/dist/esm/aws-sigv4.js +140 -33
  30. package/dist/esm/aws-sigv4.js.map +1 -1
  31. package/dist/esm/cache.js +58 -7
  32. package/dist/esm/cache.js.map +1 -1
  33. package/dist/esm/circuit-breaker.js +53 -4
  34. package/dist/esm/circuit-breaker.js.map +1 -1
  35. package/dist/esm/client.js +726 -188
  36. package/dist/esm/client.js.map +1 -1
  37. package/dist/esm/cookie-parser.js +131 -6
  38. package/dist/esm/cookie-parser.js.map +1 -1
  39. package/dist/esm/cookie-store.js +125 -28
  40. package/dist/esm/cookie-store.js.map +1 -1
  41. package/dist/esm/core.js +691 -70
  42. package/dist/esm/core.js.map +1 -1
  43. package/dist/esm/dedup.js +142 -21
  44. package/dist/esm/dedup.js.map +1 -1
  45. package/dist/esm/digest.js +195 -38
  46. package/dist/esm/digest.js.map +1 -1
  47. package/dist/esm/graphql.js +166 -35
  48. package/dist/esm/graphql.js.map +1 -1
  49. package/dist/esm/headers.js +327 -46
  50. package/dist/esm/headers.js.map +1 -1
  51. package/dist/esm/interceptors.js +227 -24
  52. package/dist/esm/interceptors.js.map +1 -1
  53. package/dist/esm/lifecycle.js +92 -59
  54. package/dist/esm/lifecycle.js.map +1 -1
  55. package/dist/esm/logging.js +160 -24
  56. package/dist/esm/logging.js.map +1 -1
  57. package/dist/esm/mod.js +3 -2
  58. package/dist/esm/mod.js.map +1 -1
  59. package/dist/esm/pagination.js +247 -22
  60. package/dist/esm/pagination.js.map +1 -1
  61. package/dist/esm/progress.js +178 -30
  62. package/dist/esm/progress.js.map +1 -1
  63. package/dist/esm/proxy.js +430 -0
  64. package/dist/esm/proxy.js.map +1 -0
  65. package/dist/esm/response.js +506 -110
  66. package/dist/esm/response.js.map +1 -1
  67. package/dist/esm/socks5.js +136 -15
  68. package/dist/esm/socks5.js.map +1 -1
  69. package/dist/esm/sse.js +173 -43
  70. package/dist/esm/sse.js.map +1 -1
  71. package/dist/esm/types.js.map +1 -1
  72. package/dist/esm/url.js +191 -45
  73. package/dist/esm/url.js.map +1 -1
  74. package/dist/esm/utils.js +335 -73
  75. package/dist/esm/utils.js.map +1 -1
  76. package/dist/esm/ws.js +62 -12
  77. package/dist/esm/ws.js.map +1 -1
  78. package/dist/types/aws-sigv4.d.ts.map +1 -1
  79. package/dist/types/cache.d.ts +19 -1
  80. package/dist/types/cache.d.ts.map +1 -1
  81. package/dist/types/circuit-breaker.d.ts +15 -2
  82. package/dist/types/circuit-breaker.d.ts.map +1 -1
  83. package/dist/types/client.d.ts +69 -11
  84. package/dist/types/client.d.ts.map +1 -1
  85. package/dist/types/cookie-parser.d.ts +0 -17
  86. package/dist/types/cookie-parser.d.ts.map +1 -1
  87. package/dist/types/cookie-store.d.ts.map +1 -1
  88. package/dist/types/core.d.ts +216 -25
  89. package/dist/types/core.d.ts.map +1 -1
  90. package/dist/types/dedup.d.ts +38 -3
  91. package/dist/types/dedup.d.ts.map +1 -1
  92. package/dist/types/digest.d.ts +17 -37
  93. package/dist/types/digest.d.ts.map +1 -1
  94. package/dist/types/graphql.d.ts.map +1 -1
  95. package/dist/types/headers.d.ts +68 -31
  96. package/dist/types/headers.d.ts.map +1 -1
  97. package/dist/types/interceptors.d.ts +126 -38
  98. package/dist/types/interceptors.d.ts.map +1 -1
  99. package/dist/types/lifecycle.d.ts +19 -2
  100. package/dist/types/lifecycle.d.ts.map +1 -1
  101. package/dist/types/logging.d.ts +22 -3
  102. package/dist/types/logging.d.ts.map +1 -1
  103. package/dist/types/mod.d.ts +5 -3
  104. package/dist/types/mod.d.ts.map +1 -1
  105. package/dist/types/pagination.d.ts +0 -25
  106. package/dist/types/pagination.d.ts.map +1 -1
  107. package/dist/types/progress.d.ts +1 -1
  108. package/dist/types/progress.d.ts.map +1 -1
  109. package/dist/types/proxy.d.ts +50 -0
  110. package/dist/types/proxy.d.ts.map +1 -0
  111. package/dist/types/response.d.ts +49 -2
  112. package/dist/types/response.d.ts.map +1 -1
  113. package/dist/types/socks5.d.ts.map +1 -1
  114. package/dist/types/sse.d.ts.map +1 -1
  115. package/dist/types/types.d.ts +219 -26
  116. package/dist/types/types.d.ts.map +1 -1
  117. package/dist/types/url.d.ts +0 -25
  118. package/dist/types/url.d.ts.map +1 -1
  119. package/dist/types/utils.d.ts +69 -1
  120. package/dist/types/utils.d.ts.map +1 -1
  121. package/dist/types/ws.d.ts +0 -1
  122. package/dist/types/ws.d.ts.map +1 -1
  123. package/package.json +10 -4
package/dist/cjs/ws.js CHANGED
@@ -19,11 +19,40 @@
19
19
  */
20
20
  // FIX (H6): remote WS payloads are untrusted — parsed JSON dispatched to
21
21
  // listeners is stripped of prototype-pollution keys (see sanitizeParsedJSON).
22
- import { sanitizeParsedJSON } from "./utils.js";
22
+ import { sanitizeParsedJSON, isValidHeaderName, isValidHeaderValue } from "./utils.js";
23
23
  // ============================================================================
24
24
  // §2 ERRORS
25
25
  // ============================================================================
26
26
  /** WebSocket connection or protocol error. */
27
+ /**
28
+ * Reject a handshake header that cannot be represented as one.
29
+ *
30
+ * `client.ws()` builds an `authorization` header straight from the configured
31
+ * bearer token or API key and hands it to a `WSClient`, and `WSClient` applies
32
+ * it through the runtime's `setHeader` — with no validation anywhere on that
33
+ * path. The HTTP pipeline does validate: `mergeHeaders` runs
34
+ * `isValidHeaderName` / `isValidHeaderValue` and refuses control characters. A
35
+ * WebSocket configured through `client.ws()` therefore skipped the one check
36
+ * that stops a token containing `\r\n` from splitting into a second header on
37
+ * the handshake.
38
+ *
39
+ * Checked in the constructor rather than at connect time so the error names the
40
+ * configuration that is wrong, and so it cannot be reached by adding a header
41
+ * later — `_headers` is assigned once and never mutated.
42
+ */
43
+ function validateHandshakeHeaders(headers) {
44
+ if (!headers)
45
+ return;
46
+ for (const [name, value] of Object.entries(headers)) {
47
+ if (!isValidHeaderName(name)) {
48
+ throw new WSError(`Invalid WebSocket handshake header name: ${JSON.stringify(name)}`);
49
+ }
50
+ if (!isValidHeaderValue(value)) {
51
+ throw new WSError(`Invalid value for WebSocket handshake header ${JSON.stringify(name)}: ` +
52
+ "must be a string of printable characters with no control characters");
53
+ }
54
+ }
55
+ }
27
56
  export class WSError extends Error {
28
57
  /** Machine-readable error code for WebSocket errors. */
29
58
  code = "EWSCONNECT";
@@ -191,6 +220,7 @@ export class WSClient {
191
220
  this._url = cfg.url;
192
221
  this._protocols = cfg.protocols;
193
222
  this._headers = cfg.headers;
223
+ validateHandshakeHeaders(cfg.headers);
194
224
  this._maxReconnects = cfg.maxReconnects ?? 10;
195
225
  this._reconnectBaseMs = cfg.reconnectBaseMs ?? 1_000;
196
226
  this._reconnectMaxMs = cfg.reconnectMaxMs ?? 30_000;
@@ -273,15 +303,15 @@ export class WSClient {
273
303
  if (this._state === "OPEN")
274
304
  return Promise.resolve();
275
305
  return new Promise((resolve, reject) => {
276
- const tid = timeoutMs > 0
277
- ? setTimeout(() => {
278
- const i = this._openWaiters.findIndex((w) => w.resolve === resolve);
279
- if (i !== -1)
280
- this._openWaiters.splice(i, 1);
281
- reject(new WSConnectTimeoutError(this._url, timeoutMs));
282
- }, timeoutMs)
283
- : null;
284
- this._openWaiters.push({
306
+ // The waiter is built first so the timeout can remove *this* entry by
307
+ // identity. It used to search for `w.resolve === resolve`, but the
308
+ // resolver stored on the queue is the wrapper below, not the promise's
309
+ // own `resolve` — so the search never matched, the timed-out waiter was
310
+ // never spliced out, and it stayed in `_openWaiters` for the lifetime
311
+ // of the client. A client whose `waitForOpen` timed out repeatedly grew
312
+ // that array without bound, and every later `open()`/`close()` walked
313
+ // the dead entries.
314
+ const waiter = {
285
315
  resolve: () => {
286
316
  if (tid)
287
317
  clearTimeout(tid);
@@ -292,7 +322,16 @@ export class WSClient {
292
322
  clearTimeout(tid);
293
323
  reject(e);
294
324
  },
295
- });
325
+ };
326
+ const tid = timeoutMs > 0
327
+ ? setTimeout(() => {
328
+ const i = this._openWaiters.indexOf(waiter);
329
+ if (i !== -1)
330
+ this._openWaiters.splice(i, 1);
331
+ reject(new WSConnectTimeoutError(this._url, timeoutMs));
332
+ }, timeoutMs)
333
+ : null;
334
+ this._openWaiters.push(waiter);
296
335
  });
297
336
  }
298
337
  /**
@@ -981,7 +1020,18 @@ export class WSClient {
981
1020
  }
982
1021
  /** Buffer an outgoing message and track bytes for backpressure. */
983
1022
  _bufferMessage(data, byteLen) {
984
- if (this._bufferMessages && !this._aborted) {
1023
+ if (!this._bufferMessages) {
1024
+ // With buffering switched off, a send made while the socket is not OPEN
1025
+ // had nowhere to go: the buffer branch was skipped and nothing was sent.
1026
+ // `send()` returns void, so there was no return value to inspect either
1027
+ // — the message vanished with no error and no callback, which is data
1028
+ // loss the application cannot distinguish from a delivered message.
1029
+ if (!this._aborted) {
1030
+ this._cbError?.(new WSError(`WebSocket message dropped: the socket is not open and bufferMessages is disabled (${byteLen} bytes). Reconnect, or enable bufferMessages to queue sends made while reconnecting.`));
1031
+ }
1032
+ return;
1033
+ }
1034
+ if (!this._aborted) {
985
1035
  const evicted = this._buffer.length >= this._maxBufferSize ? this._buffer.shift() : undefined;
986
1036
  if (evicted !== undefined) {
987
1037
  this._bufferedBytes -=
@@ -22,6 +22,13 @@
22
22
  */
23
23
  // Node.js globals accessed via globalThis for cross-runtime compatibility
24
24
  import { TimeoutError, NetworkError } from "./types.js";
25
+ import { sha256Hex } from "./utils.js";
26
+ /** Convert a Uint8Array to a lowercase hex string. */
27
+ function toHex(bytes) {
28
+ return Array.from(bytes)
29
+ .map((b) => b.toString(16).padStart(2, "0"))
30
+ .join("");
31
+ }
25
32
  /**
26
33
  * Static credential provider — wraps a fixed set of credentials.
27
34
  */
@@ -162,12 +169,61 @@ export function imdsCredentials(options = {}) {
162
169
  const credsRes = await fetchWithTimeout(`${endpoint}/latest/meta-data/iam/security-credentials/${encodeURIComponent(role)}`, { headers: { "x-aws-ec2-metadata-token": token } }, timeout);
163
170
  if (!credsRes.ok)
164
171
  throw new NetworkError(`IMDS credentials fetch failed: ${credsRes.status}`);
165
- const data = (await credsRes.json());
172
+ // Two failures used to escape this function unlabelled, and both of them
173
+ // turned into a silently broken signature rather than an error:
174
+ //
175
+ // - `Response.json()` throws a bare `SyntaxError` on a non-JSON body, so
176
+ // a proxy's HTML 502 page arrived with no `code` — a caller branching
177
+ // on `err.code === "ENETWORK"` never saw it, and the message said
178
+ // nothing about IMDS. Every other failure here is a `NetworkError`.
179
+ // - A well-formed but shapeless body parsed fine and produced a
180
+ // "successful" result: `{}` yielded `accessKeyId: undefined`, and
181
+ // `{"AccessKeyId": null, …}` yielded nulls. Both then went on to
182
+ // produce a SigV4 signature AWS rejects with an opaque
183
+ // `SignatureDoesNotMatch`, pointing at the caller rather than at the
184
+ // metadata endpoint that had actually answered with nonsense.
185
+ let data;
186
+ try {
187
+ data = (await credsRes.json());
188
+ }
189
+ catch (err) {
190
+ throw new NetworkError(`IMDS credentials response was not JSON: ${err instanceof Error ? err.message : String(err)}`);
191
+ }
192
+ if (data === null || typeof data !== "object") {
193
+ throw new NetworkError(`IMDS credentials response was not an object: ${typeof data}`);
194
+ }
195
+ const { AccessKeyId, SecretAccessKey, Token, Expiration } = data;
196
+ const missing = [];
197
+ if (typeof AccessKeyId !== "string" || AccessKeyId.length === 0)
198
+ missing.push("AccessKeyId");
199
+ if (typeof SecretAccessKey !== "string" || SecretAccessKey.length === 0)
200
+ missing.push("SecretAccessKey");
201
+ if (typeof Token !== "string" || Token.length === 0)
202
+ missing.push("Token");
203
+ if (missing.length > 0) {
204
+ throw new NetworkError(`IMDS credentials response is missing ${missing.join(", ")} — ` +
205
+ "the metadata endpoint returned a body this client cannot sign with");
206
+ }
207
+ // Re-read through a narrowing helper: the checks above report every missing
208
+ // field at once, which is the right message but does not let the compiler
209
+ // carry the narrowing into this scope.
210
+ const requireString = (value, name) => {
211
+ if (typeof value !== "string" || value.length === 0) {
212
+ throw new NetworkError(`IMDS credentials response is missing ${name}`);
213
+ }
214
+ return value;
215
+ };
216
+ const accessKeyId = requireString(AccessKeyId, "AccessKeyId");
217
+ const secretAccessKey = requireString(SecretAccessKey, "SecretAccessKey");
218
+ const sessionToken = requireString(Token, "Token");
166
219
  return {
167
- accessKeyId: data.AccessKeyId,
168
- secretAccessKey: data.SecretAccessKey,
169
- sessionToken: data.Token,
170
- expiration: data.Expiration,
220
+ accessKeyId,
221
+ secretAccessKey,
222
+ sessionToken,
223
+ // Optional: a role without an expiry is legal, and the signer treats a
224
+ // missing expiration as "do not cache". Omitted rather than set to
225
+ // `undefined` — the project uses exactOptionalPropertyTypes.
226
+ ...(typeof Expiration === "string" ? { expiration: Expiration } : {}),
171
227
  };
172
228
  });
173
229
  }
@@ -228,20 +284,6 @@ async function hmacSHA256(key, data) {
228
284
  /**
229
285
  * SHA-256 hash of a string or bytes. Returns lowercase hex.
230
286
  */
231
- async function sha256Hex(data) {
232
- const enc = new TextEncoder();
233
- const raw = typeof data === "string" ? enc.encode(data) : data;
234
- // Cast to ArrayBuffer for WebCrypto digest overload
235
- const buf = raw.buffer.slice(raw.byteOffset, raw.byteOffset + raw.byteLength);
236
- const hashBuf = await crypto.subtle.digest("SHA-256", buf);
237
- return toHex(new Uint8Array(hashBuf));
238
- }
239
- /** Convert a Uint8Array to a lowercase hex string. */
240
- function toHex(bytes) {
241
- return Array.from(bytes)
242
- .map((b) => b.toString(16).padStart(2, "0"))
243
- .join("");
244
- }
245
287
  // ============================================================================
246
288
  // #5 CANONICAL REQUEST
247
289
  // ============================================================================
@@ -339,6 +381,12 @@ function buildCanonicalHeaders(headers, unsignedExtra) {
339
381
  const entries = [];
340
382
  for (const [name, value] of Object.entries(headers)) {
341
383
  const lower = name.toLowerCase();
384
+ // An empty header name is not a valid HTTP field-name (RFC 9110 §5.1) and
385
+ // used to reach the canonical request verbatim, producing a `:value` line
386
+ // and a leading `;` in SignedHeaders. AWS answers that with an opaque
387
+ // SignatureDoesNotMatch rather than saying the header name was empty.
388
+ if (lower === "")
389
+ continue;
342
390
  if (unsigned.has(lower) && !ALWAYS_SIGNED_HEADERS.has(lower))
343
391
  continue;
344
392
  // Trim + collapse internal whitespace
@@ -446,10 +494,19 @@ export async function signRequest(request, config) {
446
494
  const amzDate = formatAmzDate(signingDate);
447
495
  const dateStamp = formatDateStamp(signingDate);
448
496
  const parsedUrl = new URL(request.url);
449
- // Build the headers to sign — start from request headers
497
+ // Build the headers to sign — start from request headers.
498
+ //
499
+ // An explicitly-supplied `host` (in any casing) must WIN. Setting it is how
500
+ // you sign for a virtual-hosted-style bucket, a custom endpoint or a proxy.
501
+ // The URL host used to be injected unconditionally, which left both keys in
502
+ // the map whenever the caller used a different casing; `buildCanonicalHeaders`
503
+ // lowercased them and its dedupe step joined them, so the request was signed
504
+ // as `host:override.example,s3.amazonaws.com` — a host that can never
505
+ // validate, and one the library reported no error about.
506
+ const hasExplicitHost = Object.keys(request.headers).some((k) => k.toLowerCase() === "host");
450
507
  const headers = {
451
508
  ...request.headers,
452
- host: parsedUrl.host,
509
+ ...(hasExplicitHost ? {} : { host: parsedUrl.host }),
453
510
  "x-amz-date": amzDate,
454
511
  };
455
512
  if (config.unsignedPayload) {
@@ -498,11 +555,22 @@ export async function presignRequest(request, config, options = {}) {
498
555
  const signingDate = resolveSigningDate(config);
499
556
  const amzDate = formatAmzDate(signingDate);
500
557
  const dateStamp = formatDateStamp(signingDate);
501
- const expiresIn = options.expiresIn ?? 3600;
502
- // Validate expiresIn range - different services have different limits
558
+ // Validate and CLAMP expiresIn. AWS enforces a hard maximum per service and
559
+ // rejects an out-of-range or fractional value with an opaque
560
+ // AuthorizationQueryParametersError at use time, long after the URL was
561
+ // handed out. The old code logged a warning and then wrote the caller's
562
+ // number straight into the query string, so `expiresIn: 0` produced
563
+ // `X-Amz-Expires=0`, `expiresIn: -1` produced `=-1`, and `expiresIn: 1e9`
564
+ // produced a link valid for ~31 years — every one of them permanently
565
+ // unusable, with a console warning as the only signal. Clamping can only
566
+ // shorten a link, never lengthen one, so it is the safe direction.
503
567
  const maxExpires = config.service === "s3" ? 604800 : 3600;
504
- if (expiresIn < 1 || expiresIn > maxExpires) {
505
- console.warn(`[aws-sigv4] presignRequest: expiresIn should be 1-${maxExpires} seconds for ${config.service}, got ${expiresIn}`);
568
+ const requested = options.expiresIn ?? 3600;
569
+ const expiresIn = Number.isFinite(requested)
570
+ ? Math.min(Math.max(Math.floor(requested), 1), maxExpires)
571
+ : maxExpires;
572
+ if (expiresIn !== requested) {
573
+ console.warn(`[aws-sigv4] presignRequest: expiresIn must be an integer in 1-${maxExpires} for ${config.service}, got ${requested} — clamped to ${expiresIn}`);
506
574
  }
507
575
  const parsedUrl = new URL(request.url);
508
576
  const credentialScope = `${dateStamp}/${config.region}/${config.service}/aws4_request`;
@@ -520,10 +588,14 @@ export async function presignRequest(request, config, options = {}) {
520
588
  parsedUrl.searchParams.set(k, v);
521
589
  }
522
590
  }
523
- // Determine signed headers (only "host" for presigned URLs typically)
591
+ // Determine signed headers (only "host" for presigned URLs typically).
592
+ // An explicit `host` wins here for the same reason it does in sign() — a
593
+ // differently-cased caller header used to be merged with the URL host into
594
+ // `host:override.example,s3.amazonaws.com`, which can never validate.
595
+ const presignHasExplicitHost = Object.keys(request.headers).some((k) => k.toLowerCase() === "host");
524
596
  const headers = {
525
597
  ...request.headers,
526
- host: parsedUrl.host,
598
+ ...(presignHasExplicitHost ? {} : { host: parsedUrl.host }),
527
599
  };
528
600
  const unsignedHdrs = config.unsignedHeaders ?? [];
529
601
  // For presigned URLs, payload hash is always UNSIGNED-PAYLOAD
@@ -666,14 +738,49 @@ export async function signS3PostPolicy(policy, config) {
666
738
  * Returns 0 if the header is absent or unparseable.
667
739
  */
668
740
  export function detectClockSkew(responseHeaders) {
669
- const dateHeader = responseHeaders["date"] ?? responseHeaders["Date"];
670
- if (!dateHeader)
671
- return 0;
672
- const serverTime = new Date(dateHeader).getTime();
673
- if (isNaN(serverTime))
674
- return 0;
741
+ // `x-amz-date` is AWS's own signed timestamp and is the one present on the
742
+ // clock-skew error itself. `Date` is generated by whatever proxy fronts the
743
+ // endpoint and is frequently absent. Reading only `Date` meant a skew was
744
+ // silently undetectable on exactly the responses that carry it.
745
+ const amzDate = responseHeaders["x-amz-date"] ?? responseHeaders["X-Amz-Date"];
746
+ let serverTime;
747
+ if (amzDate !== undefined) {
748
+ serverTime = parseAmzDate(amzDate);
749
+ if (isNaN(serverTime))
750
+ return 0;
751
+ }
752
+ else {
753
+ const dateHeader = responseHeaders["date"] ?? responseHeaders["Date"];
754
+ if (!dateHeader)
755
+ return 0;
756
+ serverTime = new Date(dateHeader).getTime();
757
+ if (isNaN(serverTime))
758
+ return 0;
759
+ }
675
760
  return Math.round((serverTime - Date.now()) / 1000);
676
761
  }
762
+ /**
763
+ * Parse AWS's basic ISO 8601 timestamp (`20300101T120000Z`), which is not a
764
+ * form `Date` can parse.
765
+ *
766
+ * @param value - Candidate `x-amz-date` value
767
+ * @returns Epoch milliseconds, or `NaN` when the value is not in that form
768
+ */
769
+ function parseAmzDate(value) {
770
+ const m = /^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/.exec(value.trim());
771
+ if (!m)
772
+ return NaN;
773
+ const [, y, mo, d, h, mi, sec] = m;
774
+ // Reject values that roll over silently (e.g. month 13) instead of
775
+ // producing a date in the following month.
776
+ const t = Date.UTC(Number(y), Number(mo) - 1, Number(d), Number(h), Number(mi), Number(sec));
777
+ const dt = new Date(t);
778
+ if (dt.getUTCFullYear() !== Number(y) || dt.getUTCMonth() + 1 !== Number(mo))
779
+ return NaN;
780
+ if (dt.getUTCDate() !== Number(d))
781
+ return NaN;
782
+ return t;
783
+ }
677
784
  /**
678
785
  * Determine if an error response is a clock skew error.
679
786
  */
@@ -1 +1 @@
1
- {"version":3,"file":"aws-sigv4.js","sourceRoot":"","sources":["../../src/aws-sigv4.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aws-sigv4.js","sourceRoot":"","sources":["../../src/aws-sigv4.ts"],"names":[],"mappings":"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"}
package/dist/esm/cache.js CHANGED
@@ -425,6 +425,12 @@ async function defaultCacheKey(req) {
425
425
  * Compute cache TTL, SWR window, and stale-on-error window
426
426
  * from Cache-Control headers, Expires header, or Last-Modified heuristic.
427
427
  */
428
+ /** True when the response may be stored but must be revalidated before reuse. */
429
+ function computeMustRevalidate(response) {
430
+ const cc = response.headers["cache-control"] ?? response.headers["Cache-Control"] ?? "";
431
+ const d = parseCacheControl(cc);
432
+ return d.noCache || d.mustRevalidate;
433
+ }
428
434
  function computeTTL(response, defaultTtl, honor) {
429
435
  const cc = response.headers["cache-control"] ?? response.headers["Cache-Control"] ?? "";
430
436
  const d = parseCacheControl(cc);
@@ -432,6 +438,15 @@ function computeTTL(response, defaultTtl, honor) {
432
438
  if (honor && d.noStore) {
433
439
  return { ttlMs: 0, swrMs: 0, staleOnError: 0, shouldCache: false };
434
440
  }
441
+ // `private` marks a response as belonging to a single user. A browser's cache
442
+ // *is* per-user, so storing it there is correct — but this cache is a Map in
443
+ // the calling process, shared by every request that process makes. Honouring
444
+ // the directive is the difference between one user's `private` response and
445
+ // another user's. `d.private` was parsed and then never read, so a response
446
+ // that explicitly asked not to be shared was stored and replayed anyway.
447
+ if (honor && d.private) {
448
+ return { ttlMs: 0, swrMs: 0, staleOnError: 0, shouldCache: false };
449
+ }
435
450
  // s-maxage takes priority (for shared/proxy caches)
436
451
  const maxAgeSecs = d.sMaxAge ?? d.maxAge;
437
452
  let ttlMs;
@@ -453,7 +468,15 @@ function computeTTL(response, defaultTtl, honor) {
453
468
  if (lm) {
454
469
  const lmTime = Date.parse(lm);
455
470
  if (!isNaN(lmTime)) {
456
- ttlMs = Math.min((Date.now() - lmTime) * 0.1, defaultTtl);
471
+ // RFC 9111 §4.2.2: the heuristic lifetime is 10% of the interval
472
+ // between Last-Modified and the response's Date. That interval is
473
+ // negative whenever Last-Modified is in the future — routine, since
474
+ // the origin and the client rarely share a clock — and there was no
475
+ // lower clamp, so the entry was given a negative freshness lifetime
476
+ // and a staleUntil *before* its creation time. The clamp to 0 is the
477
+ // RFC's "already stale"; the stale windows then apply normally,
478
+ // instead of landing in the past and being unreachable.
479
+ ttlMs = Math.min(Math.max((Date.now() - lmTime) * 0.1, 0), defaultTtl);
457
480
  }
458
481
  else {
459
482
  ttlMs = defaultTtl;
@@ -474,7 +497,11 @@ function computeTTL(response, defaultTtl, honor) {
474
497
  ttlMs,
475
498
  swrMs,
476
499
  staleOnError,
477
- shouldCache: ttlMs > 0 || swrMs > 0,
500
+ // Storable if it is fresh now, or already stale but covered by a
501
+ // stale-while-revalidate / stale-if-error window. The two windows were
502
+ // missing from this decision, so `max-age=0, stale-if-error=60` — the
503
+ // point of the directive — was reported as uncacheable.
504
+ shouldCache: ttlMs > 0 || swrMs > 0 || staleOnError > 0,
478
505
  };
479
506
  }
480
507
  // ============================================================================
@@ -674,7 +701,12 @@ export class HTTPCache {
674
701
  this.stats.hits++;
675
702
  this.lru.touch(key);
676
703
  this._updateHitRate();
677
- return { entry: cloneEntry(entry), stale: false };
704
+ // RFC 9111 §5.2.2.4: a `no-cache` response may be stored but must not be
705
+ // reused without revalidating. It used to be reported as a plain fresh
706
+ // hit, so an origin that sent `Cache-Control: no-cache` had its response
707
+ // served indefinitely from cache. Reporting it as stale routes it into the
708
+ // existing serve-stale-and-revalidate path instead.
709
+ return { entry: cloneEntry(entry), stale: entry.mustRevalidate === true };
678
710
  }
679
711
  // Stale-While-Revalidate window
680
712
  if (entry.staleUntil > now) {
@@ -722,7 +754,14 @@ export class HTTPCache {
722
754
  // 9.10 — cap TTL to maxAbsoluteAgeMs so stored entries can never outlive the limit
723
755
  const absoluteCap = this.cfg.maxAbsoluteAgeMs;
724
756
  const cappedTtlMs = Math.min(ttlMs === Infinity ? absoluteCap : ttlMs, absoluteCap);
725
- if (cappedTtlMs <= 0 && !options.force)
757
+ // A zero (or negative) freshness lifetime does not by itself mean
758
+ // "unstoreable": RFC 9111 §4.2 still permits storing a response that is
759
+ // already stale, provided a stale-while-revalidate or stale-if-error
760
+ // window covers it — and `computeTTL` has just told us exactly that via
761
+ // `shouldCache`. This guard used to discard that decision, so the canonical
762
+ // CDN recipe `Cache-Control: max-age=0, stale-while-revalidate=60` was
763
+ // never cached at all, defeating the one directive it exists to enable.
764
+ if (cappedTtlMs <= 0 && swrMs <= 0 && staleOnError <= 0 && !options.force)
726
765
  return false;
727
766
  const varyHeader = res.headers["vary"] ?? res.headers["Vary"] ?? null;
728
767
  const varyKey = varyHeader ? buildVaryKey(varyHeader, req.headers) : "";
@@ -739,6 +778,7 @@ export class HTTPCache {
739
778
  etag: res.headers["etag"] ?? res.headers["ETag"] ?? null,
740
779
  lastModified: res.headers["last-modified"] ?? res.headers["Last-Modified"] ?? null,
741
780
  varyKey,
781
+ mustRevalidate: computeMustRevalidate(res),
742
782
  tags,
743
783
  size: bodySize + 256,
744
784
  };
@@ -909,16 +949,27 @@ export class HTTPCache {
909
949
  getStats() {
910
950
  return { ...this.stats };
911
951
  }
912
- /** Reset all cache statistics to zero. */
952
+ /**
953
+ * Reset the cache's counters to zero.
954
+ *
955
+ * `totalEntries` and `totalSizeBytes` are deliberately NOT reset: they are
956
+ * gauges of what is actually stored, not counters of events, and
957
+ * `_ensureCapacity()` reads them as the authoritative figures for the
958
+ * `maxEntries` / `maxSizeBytes` caps. Zeroing them while the entries are
959
+ * still in storage made eviction compare against a fiction — a cache with
960
+ * `maxSizeBytes: 600` was measured holding 1028 bytes across 4 entries
961
+ * after a reset — and made `getStats().totalEntries` report 0 for entries
962
+ * that were still there and still being served. Call `clear()` to empty the
963
+ * cache; use this to zero the hit/miss/eviction counters.
964
+ */
913
965
  resetStats() {
914
966
  this.stats = {
967
+ ...this.stats,
915
968
  hits: 0,
916
969
  misses: 0,
917
970
  staleHits: 0,
918
971
  errors: 0,
919
972
  evictions: 0,
920
- totalEntries: 0,
921
- totalSizeBytes: 0,
922
973
  hitRate: 0,
923
974
  };
924
975
  }