kinetex 1.2.0 → 1.4.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 (126) hide show
  1. package/README.md +1164 -453
  2. package/dist/browser/kinetex.esm.js +38 -22
  3. package/dist/browser/kinetex.js +3127 -715
  4. package/dist/browser/kinetex.min.js +38 -22
  5. package/dist/cjs/aws-sigv4.js +137 -20
  6. package/dist/cjs/cache.js +101 -21
  7. package/dist/cjs/circuit-breaker.js +69 -7
  8. package/dist/cjs/client.js +838 -191
  9. package/dist/cjs/cookie-parser.js +110 -9
  10. package/dist/cjs/cookie-store.js +141 -36
  11. package/dist/cjs/core.js +501 -63
  12. package/dist/cjs/dedup.js +58 -18
  13. package/dist/cjs/digest.js +185 -23
  14. package/dist/cjs/graphql.js +164 -24
  15. package/dist/cjs/headers.js +362 -48
  16. package/dist/cjs/interceptors.js +285 -29
  17. package/dist/cjs/lifecycle.js +89 -40
  18. package/dist/cjs/logging.js +169 -16
  19. package/dist/cjs/mod.js +3 -2
  20. package/dist/cjs/pagination.js +261 -28
  21. package/dist/cjs/progress.js +282 -52
  22. package/dist/cjs/proxy.js +412 -0
  23. package/dist/cjs/response.js +316 -47
  24. package/dist/cjs/socks5.js +167 -36
  25. package/dist/cjs/sse.js +201 -34
  26. package/dist/cjs/url.js +191 -45
  27. package/dist/cjs/utils.js +222 -48
  28. package/dist/cjs/worker.js +6 -6
  29. package/dist/cjs/ws.js +32 -16
  30. package/dist/esm/aws-sigv4.js +137 -20
  31. package/dist/esm/aws-sigv4.js.map +1 -1
  32. package/dist/esm/cache.js +101 -21
  33. package/dist/esm/cache.js.map +1 -1
  34. package/dist/esm/circuit-breaker.js +69 -7
  35. package/dist/esm/circuit-breaker.js.map +1 -1
  36. package/dist/esm/client.js +838 -191
  37. package/dist/esm/client.js.map +1 -1
  38. package/dist/esm/cookie-parser.js +110 -9
  39. package/dist/esm/cookie-parser.js.map +1 -1
  40. package/dist/esm/cookie-store.js +141 -36
  41. package/dist/esm/cookie-store.js.map +1 -1
  42. package/dist/esm/core.js +501 -63
  43. package/dist/esm/core.js.map +1 -1
  44. package/dist/esm/dedup.js +58 -18
  45. package/dist/esm/dedup.js.map +1 -1
  46. package/dist/esm/digest.js +185 -23
  47. package/dist/esm/digest.js.map +1 -1
  48. package/dist/esm/graphql.js +164 -24
  49. package/dist/esm/graphql.js.map +1 -1
  50. package/dist/esm/headers.js +362 -48
  51. package/dist/esm/headers.js.map +1 -1
  52. package/dist/esm/interceptors.js +285 -29
  53. package/dist/esm/interceptors.js.map +1 -1
  54. package/dist/esm/lifecycle.js +89 -40
  55. package/dist/esm/lifecycle.js.map +1 -1
  56. package/dist/esm/logging.js +169 -16
  57. package/dist/esm/logging.js.map +1 -1
  58. package/dist/esm/mod.js +3 -2
  59. package/dist/esm/mod.js.map +1 -1
  60. package/dist/esm/pagination.js +261 -28
  61. package/dist/esm/pagination.js.map +1 -1
  62. package/dist/esm/progress.js +282 -52
  63. package/dist/esm/progress.js.map +1 -1
  64. package/dist/esm/proxy.js +413 -0
  65. package/dist/esm/proxy.js.map +1 -0
  66. package/dist/esm/response.js +316 -47
  67. package/dist/esm/response.js.map +1 -1
  68. package/dist/esm/socks5.js +167 -36
  69. package/dist/esm/socks5.js.map +1 -1
  70. package/dist/esm/sse.js +201 -34
  71. package/dist/esm/sse.js.map +1 -1
  72. package/dist/esm/types.js.map +1 -1
  73. package/dist/esm/url.js +191 -45
  74. package/dist/esm/url.js.map +1 -1
  75. package/dist/esm/utils.js +222 -48
  76. package/dist/esm/utils.js.map +1 -1
  77. package/dist/esm/worker.js +6 -6
  78. package/dist/esm/worker.js.map +1 -1
  79. package/dist/esm/ws.js +32 -16
  80. package/dist/esm/ws.js.map +1 -1
  81. package/dist/types/aws-sigv4.d.ts.map +1 -1
  82. package/dist/types/cache.d.ts +27 -2
  83. package/dist/types/cache.d.ts.map +1 -1
  84. package/dist/types/circuit-breaker.d.ts +14 -1
  85. package/dist/types/circuit-breaker.d.ts.map +1 -1
  86. package/dist/types/client.d.ts +98 -23
  87. package/dist/types/client.d.ts.map +1 -1
  88. package/dist/types/cookie-parser.d.ts +0 -17
  89. package/dist/types/cookie-parser.d.ts.map +1 -1
  90. package/dist/types/cookie-store.d.ts.map +1 -1
  91. package/dist/types/core.d.ts +109 -25
  92. package/dist/types/core.d.ts.map +1 -1
  93. package/dist/types/dedup.d.ts +0 -7
  94. package/dist/types/dedup.d.ts.map +1 -1
  95. package/dist/types/digest.d.ts +31 -37
  96. package/dist/types/digest.d.ts.map +1 -1
  97. package/dist/types/graphql.d.ts.map +1 -1
  98. package/dist/types/headers.d.ts +62 -29
  99. package/dist/types/headers.d.ts.map +1 -1
  100. package/dist/types/interceptors.d.ts +102 -0
  101. package/dist/types/interceptors.d.ts.map +1 -1
  102. package/dist/types/lifecycle.d.ts +19 -2
  103. package/dist/types/lifecycle.d.ts.map +1 -1
  104. package/dist/types/logging.d.ts +23 -4
  105. package/dist/types/logging.d.ts.map +1 -1
  106. package/dist/types/mod.d.ts +5 -3
  107. package/dist/types/mod.d.ts.map +1 -1
  108. package/dist/types/pagination.d.ts +0 -25
  109. package/dist/types/pagination.d.ts.map +1 -1
  110. package/dist/types/progress.d.ts +1 -1
  111. package/dist/types/progress.d.ts.map +1 -1
  112. package/dist/types/proxy.d.ts +50 -0
  113. package/dist/types/proxy.d.ts.map +1 -0
  114. package/dist/types/response.d.ts +7 -1
  115. package/dist/types/response.d.ts.map +1 -1
  116. package/dist/types/socks5.d.ts.map +1 -1
  117. package/dist/types/sse.d.ts.map +1 -1
  118. package/dist/types/types.d.ts +139 -5
  119. package/dist/types/types.d.ts.map +1 -1
  120. package/dist/types/url.d.ts +0 -14
  121. package/dist/types/url.d.ts.map +1 -1
  122. package/dist/types/utils.d.ts.map +1 -1
  123. package/dist/types/worker.d.ts +6 -6
  124. package/dist/types/worker.d.ts.map +1 -1
  125. package/dist/types/ws.d.ts.map +1 -1
  126. package/package.json +2 -2
@@ -30,7 +30,6 @@
30
30
  * Use when you just need pub/sub notification.
31
31
  */
32
32
  export class HookEmitter {
33
- // deno-lint-ignore ban-types
34
33
  listeners = new Map();
35
34
  /** Register a persistent event listener. */
36
35
  on(event, listener) {
@@ -59,9 +58,19 @@ export class HookEmitter {
59
58
  const list = this.listeners.get(event);
60
59
  if (!list || list.length === 0)
61
60
  return;
62
- const toRemove = new Set();
63
- for (let i = 0; i < list.length; i++) {
64
- const listener = list[i];
61
+ // Iterate a snapshot, and remove `once` listeners by identity rather than
62
+ // by index into the live array. Two things went wrong without that. A
63
+ // listener that registered another listener mid-emit had the new one
64
+ // called by the *same* emit, because the loop walks the live array and
65
+ // re-checks its length. And a listener that called `off()` mid-emit had
66
+ // its removal undone: the trailing write-back rebuilt the list from the
67
+ // snapshot taken before the emit, re-adding whatever it had just removed.
68
+ const snapshot = [...list];
69
+ // The same element type as `list`, inferred rather than restated: the
70
+ // bare `Function` type this used to name provides no type safety at all,
71
+ // since it is every function and every class.
72
+ const invokedOnce = new Set();
73
+ for (const listener of snapshot) {
65
74
  try {
66
75
  await listener.fn(data);
67
76
  }
@@ -69,11 +78,11 @@ export class HookEmitter {
69
78
  /* isolate listener errors */
70
79
  }
71
80
  if (listener.once)
72
- toRemove.add(i);
81
+ invokedOnce.add(listener);
73
82
  }
74
- if (toRemove.size > 0) {
75
- const remaining = list.filter((_, i) => !toRemove.has(i));
76
- this.listeners.set(event, remaining);
83
+ if (invokedOnce.size > 0) {
84
+ const current = this.listeners.get(event) ?? [];
85
+ this.listeners.set(event, current.filter((l) => !invokedOnce.has(l)));
77
86
  }
78
87
  }
79
88
  /** Remove all listeners for an event (or all events if omitted). */
@@ -324,17 +333,25 @@ export class HookRegistry {
324
333
  * If any hook returns a HookResponse, it is treated as recovery and returned.
325
334
  */
326
335
  async runOnError(err, ctx) {
336
+ let recovered = null;
327
337
  for (const hook of sortHooks(this.onError)) {
328
338
  if (!this._shouldRun(hook, ctx))
329
339
  continue;
330
340
  const result = await this._safeRun(hook, () => hook.fn(err, ctx));
331
341
  this._maybeEject(hook, this.onError);
342
+ // First recovery wins; later hooks are not consulted.
332
343
  if (result && typeof result === "object" && "status" in result) {
333
- return result;
344
+ recovered = result;
345
+ break;
334
346
  }
335
347
  }
348
+ // The emitter is the notification channel, not the recovery channel, so it
349
+ // fires on every error. This line used to sit after the loop behind a plain
350
+ // `return`, so a recovered error — the one an operator most wants to hear
351
+ // about, since the caller never sees it — was the only kind an
352
+ // `emitter.on("error", ...)` subscriber was never told about.
336
353
  await this.emitter.emit("error", err);
337
- return null;
354
+ return recovered;
338
355
  }
339
356
  /** Execute all on-retry hooks. */
340
357
  async runOnRetry(evt, ctx) {
@@ -370,12 +387,7 @@ export class HookRegistry {
370
387
  for (const hook of sortHooks(this.onUploadProgress)) {
371
388
  if (!this._shouldRun(hook, ctx))
372
389
  continue;
373
- try {
374
- hook.fn(evt, ctx);
375
- }
376
- catch {
377
- /* isolate */
378
- }
390
+ this._safeRunSync(hook, () => hook.fn(evt, ctx));
379
391
  this._maybeEject(hook, this.onUploadProgress);
380
392
  }
381
393
  this.emitter.emit("upload:progress", evt);
@@ -385,12 +397,7 @@ export class HookRegistry {
385
397
  for (const hook of sortHooks(this.onDownloadProgress)) {
386
398
  if (!this._shouldRun(hook, ctx))
387
399
  continue;
388
- try {
389
- hook.fn(evt, ctx);
390
- }
391
- catch {
392
- /* isolate */
393
- }
400
+ this._safeRunSync(hook, () => hook.fn(evt, ctx));
394
401
  this._maybeEject(hook, this.onDownloadProgress);
395
402
  }
396
403
  this.emitter.emit("download:progress", evt);
@@ -398,25 +405,26 @@ export class HookRegistry {
398
405
  /** Execute all on-cancel hooks. */
399
406
  runOnCancel(evt, ctx) {
400
407
  for (const hook of sortHooks(this.onCancel)) {
401
- try {
402
- hook.fn(evt, ctx);
403
- }
404
- catch {
405
- /* isolate */
406
- }
408
+ if (!this._shouldRun(hook, ctx))
409
+ continue;
410
+ this._safeRunSync(hook, () => hook.fn(evt, ctx));
407
411
  this._maybeEject(hook, this.onCancel);
408
412
  }
409
413
  this.emitter.emit("cancel", evt);
410
414
  }
411
- /** Execute all on-connection hooks. */
412
- runOnConnection(evt) {
415
+ /**
416
+ * Execute all on-connection hooks.
417
+ *
418
+ * `ctx` is required rather than optional: a hook registered with a
419
+ * `condition` can only be evaluated against a context, and making the
420
+ * parameter optional left the condition silently unevaluated for every caller
421
+ * that omitted it — which is a wrong answer rather than a compile error.
422
+ */
423
+ runOnConnection(evt, ctx) {
413
424
  for (const hook of sortHooks(this.onConnection)) {
414
- try {
415
- hook.fn(evt);
416
- }
417
- catch {
418
- /* isolate */
419
- }
425
+ if (!this._shouldRun(hook, ctx))
426
+ continue;
427
+ this._safeRunSync(hook, () => hook.fn(evt));
420
428
  this._maybeEject(hook, this.onConnection);
421
429
  }
422
430
  this.emitter.emit("connection", evt);
@@ -433,8 +441,19 @@ export class HookRegistry {
433
441
  fn = () => {
434
442
  if (!this._shouldRun(hook, ctx))
435
443
  return next();
436
- const result = hook.fn(ctx, next);
444
+ // `safe` is honoured here too. It used to be ignored, and ignored in
445
+ // the *other* direction: a `safe: true` around hook that threw took the
446
+ // whole request down. On failure the dispatch is still run, because an
447
+ // around hook that throws before calling `next` has no response to
448
+ // return and the pipeline cannot continue without one.
449
+ let failed = false;
450
+ const result = this._safeRunSync(hook, () => {
451
+ failed = true;
452
+ return hook.fn(ctx, next);
453
+ });
437
454
  this._maybeEject(hook, this.aroundHooks);
455
+ if (failed)
456
+ return next();
438
457
  return result;
439
458
  };
440
459
  }
@@ -468,6 +487,26 @@ export class HookRegistry {
468
487
  return undefined;
469
488
  }
470
489
  }
490
+ /**
491
+ * Synchronous counterpart of {@link _safeRun}, used by the phases whose hook
492
+ * signature is synchronous (progress, cancel, connection) and by around hooks.
493
+ *
494
+ * These phases used a bare `try {} catch {}`, which ignored `safe` in both
495
+ * directions: `safe: false` — the documented default, "critical hooks that
496
+ * must propagate errors" — was swallowed, and `safe: true` was the only thing
497
+ * that produced the log line the other phases write.
498
+ */
499
+ _safeRunSync(hook, fn) {
500
+ try {
501
+ return fn();
502
+ }
503
+ catch (err) {
504
+ if (!hook.safe)
505
+ throw err;
506
+ console.error(`[lifecycle] Hook "${hook.id}" threw:`, err);
507
+ return undefined;
508
+ }
509
+ }
471
510
  _maybeEject(hook, list) {
472
511
  if (!hook.once)
473
512
  return;
@@ -597,8 +636,14 @@ export function withBaseURL(base) {
597
636
  return (req) => {
598
637
  if (/^https?:\/\//i.test(req.url))
599
638
  return;
600
- const slash = base.endsWith("/") || req.url.startsWith("/") ? "" : "/";
601
- return { ...req, url: `${base}${slash}${req.url}` };
639
+ // Join with exactly one slash. The old test asked "does either side already
640
+ // carry a slash, in which case add none" — which is wrong precisely when
641
+ // *both* do: `baseURL: "https://api.test/"` (the most common spelling) with
642
+ // the path `"/users"` produced "https://api.test//users". Trimming both sides
643
+ // and adding one slash is the only rule that is right in all four cases.
644
+ const baseTrimmed = base.replace(/\/+$/, "");
645
+ const pathTrimmed = req.url.replace(/^\/+/, "");
646
+ return { ...req, url: `${baseTrimmed}/${pathTrimmed}` };
602
647
  };
603
648
  }
604
649
  /**
@@ -761,7 +806,11 @@ export function composeAround(...hooks) {
761
806
  */
762
807
  export function createLoggingHooks(options = {}) {
763
808
  const log = options.logger ?? ((msg, data) => console.log(msg, JSON.stringify(data)));
764
- const redact = new Set((options.redactHeaders ?? ["authorization", "cookie"]).map((h) => h.toLowerCase()));
809
+ // The default list was `authorization` and `cookie` only, while
810
+ // `afterResponse` logs *response* headers — so `Set-Cookie` was written in
811
+ // cleartext by default, on a hook whose entire purpose is to log. The
812
+ // interceptors' own logging defaults already redact all four.
813
+ const redact = new Set((options.redactHeaders ?? ["authorization", "cookie", "set-cookie", "proxy-authorization"]).map((h) => h.toLowerCase()));
765
814
  function safeHeaders(h) {
766
815
  const out = {};
767
816
  for (const [k, v] of Object.entries(h))
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA2PH;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACtB,6BAA6B;IACrB,SAAS,GAAG,IAAI,GAAG,EAAkD,CAAC;IAE9E,4CAA4C;IAC5C,EAAE,CAA0B,KAAQ,EAAE,QAA8B;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAA0B,KAAQ,EAAE,QAA8B;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,gDAAgD;IAChD,GAAG,CAA0B,KAAQ,EAAE,QAA8B;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,GAAG,CAChB,KAAK,EACL,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,QAAQ,CAAC,CACtC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qFAAqF;IACrF,KAAK,CAAC,IAAI,CAA0B,KAAQ,EAAE,IAAqB;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEvC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAO,QAAQ,CAAC,EAAmD,CAAC,IAAI,CAAC,CAAC;YAC5E,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;YACD,IAAI,QAAQ,CAAC,IAAI;gBAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,oEAAoE;IACpE,kBAAkB,CAAC,KAAqB;QACtC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,IAAI,UAAU,GAAG,CAAC,CAAC;AACnB,SAAS,UAAU;IACjB,OAAO,QAAQ,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AACD,SAAS,SAAS,CAAI,KAAqB;IACzC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,YAAY;IACf,aAAa,GAAmC,EAAE,CAAC;IACnD,YAAY,GAAkC,EAAE,CAAC;IACjD,cAAc,GAAoC,EAAE,CAAC;IACrD,aAAa,GAAmC,EAAE,CAAC;IACnD,OAAO,GAA6B,EAAE,CAAC;IACvC,OAAO,GAA6B,EAAE,CAAC;IACvC,UAAU,GAAgC,EAAE,CAAC;IAC7C,gBAAgB,GAAsC,EAAE,CAAC;IACzD,kBAAkB,GAAwC,EAAE,CAAC;IAC7D,QAAQ,GAA8B,EAAE,CAAC;IACzC,YAAY,GAAkC,EAAE,CAAC;IACjD,WAAW,GAA4B,EAAE,CAAC;IAElD,8DAA8D;IACrD,OAAO,GAAgB,IAAI,WAAW,EAAE,CAAC;IAElD,6EAA6E;IAE7E,wEAAwE;IACxE,gBAAgB,CAAC,EAAqB,EAAE,OAAoB,EAAE;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,wEAAwE;IACxE,eAAe,CAAC,EAAoB,EAAE,OAAoB,EAAE;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,yEAAyE;IACzE,iBAAiB,CAAC,EAAsB,EAAE,OAAoB,EAAE;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,yEAAyE;IACzE,gBAAgB,CAAC,EAAqB,EAAE,OAAoB,EAAE;QAC5D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,mEAAmE;IACnE,UAAU,CAAC,EAAe,EAAE,OAAoB,EAAE;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,mEAAmE;IACnE,UAAU,CAAC,EAAe,EAAE,OAAoB,EAAE;QAChD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,sEAAsE;IACtE,aAAa,CAAC,EAAkB,EAAE,OAAoB,EAAE;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,0EAA0E;IAC1E,mBAAmB,CAAC,EAAwB,EAAE,OAAoB,EAAE;QAClE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAED,2EAA2E;IAC3E,qBAAqB,CAAC,EAA0B,EAAE,OAAoB,EAAE;QACtE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,gEAAgE;IAChE,WAAW,CAAC,EAAgB,EAAE,OAAoB,EAAE;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,oEAAoE;IACpE,eAAe,CAAC,EAAoB,EAAE,OAAoB,EAAE;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,iEAAiE;IACjE,SAAS,CAAC,EAAc,EAAE,OAAoB,EAAE;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC;IAED,6EAA6E;IAE7E,iFAAiF;IACjF,MAAM,CAAC,EAAU;QACf,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,WAAW;SACS,CAAC;QAE5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAC3B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;gBACpB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wCAAwC;IACxC,SAAS;QACP,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,qDAAqD;IACrD,GAAG,CAAC,EAAU;QACZ,MAAM,KAAK,GAAG;YACZ,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,aAAa;YAClB,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,gBAAgB;YACrB,IAAI,CAAC,kBAAkB;YACvB,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,WAAW;SACS,CAAC;QAC5B,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,6EAA6E;IAE7E,kFAAkF;IAClF,KAAK,CAAC,gBAAgB,CAAC,GAAgB,EAAE,GAAgB;QACvD,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACtE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5D,OAAO,GAAG,MAAqB,CAAC;YAClC,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,uCAAuC;IACvC,KAAK,CAAC,eAAe,CAAC,GAAgB,EAAE,GAAgB;QACtD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,iBAAiB,CAAC,GAAiB,EAAE,GAAgB;QACzD,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YACtE,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC/D,OAAO,GAAG,MAAsB,CAAC;YACnC,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,gBAAgB,CAAC,GAAiB,EAAE,GAAgB;QACxD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAC;IACjD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU,CAAC,GAAc,EAAE,GAAgB;QAC/C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC/D,OAAO,MAAsB,CAAC;YAChC,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,UAAU,CAAC,GAAe,EAAE,GAAgB;QAChD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,GAAkB,EAAE,GAAgB;QACtD,IAAI,KAAK,GAAG,IAAI,CAAC;QACjB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,KAAK,GAAG,KAAK,CAAC;gBACd,MAAM;YACR,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,yCAAyC;IACzC,mBAAmB,CAAC,GAAkB,EAAE,GAAgB;QACtD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,2CAA2C;IAC3C,qBAAqB,CAAC,GAAkB,EAAE,GAAgB;QACxD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;gBAAE,SAAS;YAC1C,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,mCAAmC;IACnC,WAAW,CAAC,GAAgB,EAAE,GAAgB;QAC5C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,uCAAuC;IACvC,eAAe,CAAC,GAAoB;QAClC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;YACf,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;YACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,cAAc,CACZ,GAAgB,EAChB,QAAqC;QAErC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,kBAAkB;QAExE,IAAI,EAAE,GAAG,QAAQ,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,EAAE,CAAC;YAChB,EAAE,GAAG,GAAG,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;oBAAE,OAAO,IAAI,EAAE,CAAC;gBAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACzC,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,6EAA6E;IAErE,IAAI,CAAI,IAAoB,EAAE,EAAK,EAAE,IAAiB;QAC5D,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC;YACR,EAAE;YACF,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;YAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;YACjC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK;YACxB,EAAE;SACH,CAAC,CAAC;QACH,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,UAAU,CAAI,IAAkB,EAAE,GAAgB;QACxD,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,IAAkB,EAClB,EAAwB;QAExB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,MAAM,GAAG,CAAC;YAC1B,6BAA6B;YAC7B,OAAO,CAAC,KAAK,CAAC,qBAAqB,IAAI,CAAC,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC3D,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,WAAW,CAAI,IAAkB,EAAE,IAAoB;QAC7D,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtC,CAAC;CACF;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,GAAG,CAAC,CAAC;IACX,KAAK,CAAgB;IACrB,OAAO,CAAS;IAChB,MAAM,CAAS;IACf,UAAU,GAAG,CAAC,CAAC;IAEvB,YAAY,QAAuB,IAAI;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IAED,+EAA+E;IAC/E,MAAM,CAAC,KAAa;QAClB,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;QACrB,MAAM,OAAO,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC;QACnC,MAAM,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEjF,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;QAE9B,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5E,IAAI;YACJ,OAAO;SACR,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,8BAA8B;IACvD,CAAC;CACF;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAe;IAGG;IAFrB,KAAK,GAAG,CAAC,CAAC;IAElB,YAA6B,eAAe,EAAE;QAAjB,iBAAY,GAAZ,YAAY,CAAK;IAAG,CAAC;IAElD,gFAAgF;IAChF,MAAM,CAAC,IAAY,EAAE,EAAU,EAAE,MAAc,EAAE,OAAoB;QACnE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IAC1D,CAAC;IAED,2CAA2C;IAC3C,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,kCAAkC;IAClC,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;IACjB,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAK5B;IAEA;IANlB,uDAAuD;IAC9C,IAAI,GAAG,mBAAmB,CAAC;IACpC;IACE,oCAAoC;IACpB,KAAa;IAC7B,gDAAgD;IAChC,GAAW;QAE3B,KAAK,CAAC,uBAAuB,KAAK,QAAQ,GAAG,EAAE,CAAC,CAAC;QAJjC,UAAK,GAAL,KAAK,CAAQ;QAEb,QAAG,GAAH,GAAG,CAAQ;QAG3B,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,+EAA+E;AAC/E,oDAAoD;AACpD,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,GAAG,CAAI,EAAsC;IAC3D,OAAO,KAAK,EAAE,KAAQ,EAAE,EAAE;QACxB,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,OAEoE;IAEpE,OAAO,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACrB,GAAG,GAAG;QACN,OAAO,EAAE;YACP,GAAG,GAAG,CAAC,OAAO;YACd,GAAG,CAAC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SAC/D;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QACvE,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC;IACtD,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,UAAuC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG;IAEtD,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAkD;IAElD,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;QAC5B,MAAM,OAAO,GACX,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,sCAAsC,GAAG,CAAC,MAAM,GAAG,CAAC;QAC5F,MAAM,IAAI,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK;IAKhB;IAEA;IAEA;IARlB,oDAAoD;IAC3C,IAAI,GAAG,YAAY,CAAC;IAC7B;IACE,yCAAyC;IACzB,MAAc;IAC9B,4CAA4C;IAC5B,UAAkB;IAClC,6CAA6C;IAC7B,QAAsB;QAEtC,KAAK,CAAC,QAAQ,MAAM,KAAK,UAAU,EAAE,CAAC,CAAC;QANvB,WAAM,GAAN,MAAM,CAAQ;QAEd,eAAU,GAAV,UAAU,CAAQ;QAElB,aAAQ,GAAR,QAAQ,CAAc;QAGtC,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAM9B;IALlB,yDAAyD;IAChD,IAAI,GAAG,aAAa,CAAC;IAC9B,YACE,OAAe;IACf,2CAA2C;IAC3B,QAAsB;QAEtC,KAAK,CAAC,OAAO,CAAC,CAAC;QAFC,aAAQ,GAAR,QAAQ,CAAc;QAGtC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAG,KAA0B;IAChE,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC5D,OAAO,GAAG,MAAqB,CAAC;YAClC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAG,KAA2B;IAClE,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,OAAO,GAAG,GAAG,CAAC;QAClB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACxC,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;gBAC/D,OAAO,GAAG,MAAsB,CAAC;YACnC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,UAAU,aAAa,CAAC,GAAG,KAAmB;IAClD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAChC,CAAC,CAA8B,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAC5D,IAAI,CACL,CAAC;QACF,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAII,EAAE;IASN,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CACnF,CAAC;IAEF,SAAS,WAAW,CAAC,CAAyB;QAC5C,MAAM,GAAG,GAA2B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACzF,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO;QACL,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;YACrB,GAAG,CAAC,WAAW,EAAE;gBACf,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QACD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE;YACrB,GAAG,CAAC,YAAY,EAAE;gBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;gBACpB,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACf,GAAG,CAAC,SAAS,EAAE;gBACb,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG;gBACpB,KAAK,EAAE,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;gBACzE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,MAAM,IAAI,IAAI;aACrC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB;IAM9B,MAAM,UAAU,GAAG,oBAAoB,CAAC;IAExC,OAAO;QACL,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,EAAE,CAAC;QACnC,CAAC;QACD,aAAa,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;YAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,UAAU,CAAuB,CAAC;YACzD,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC/D,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBACrB,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;YAChC,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAmB,OAAO;IACpE,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,GAAG,CAAC,IAAI,YAAY,UAAU,EAAE,CAAC;YACnC,OAAO;gBACL,GAAG,GAAG;gBACN,IAAI,EAAE,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;aACjD,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,eAAe;IAM7B,OAAO;QACL,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC1B,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBACxB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACxB,MAAM,gBAAgB,CAAC,gCAAgC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE;YAChB,OAAO,CAAC,KAAK,CAAC,kCAAkC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QACjF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,uFAAuF;AACvF,SAAS,gBAAgB,CAAC,OAAe;IACvC,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;QACxC,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;IACxB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,OAAO;IACd,OAAO,OAAO,WAAW,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAoB,EACpB,YAAkC,EAAE;IAEpC,OAAO;QACL,OAAO;QACP,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,OAAO,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,IAAI,EAAE,EAAE;QACR,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -120,6 +120,17 @@ const DEFAULT_REDACT_PARAMS = [
120
120
  * Requests/responses with other content-types will have their body replaced
121
121
  * with a short indicator (e.g. "[binary]") instead of being logged verbatim.
122
122
  */
123
+ /**
124
+ * Is this a JSON media type?
125
+ *
126
+ * `application/json` and every `+json` structured suffix, case-insensitively
127
+ * and ignoring parameters, because RFC 9110 makes media types
128
+ * case-insensitive and `application/JSON; charset=utf-8` is the same type.
129
+ */
130
+ function isJSONContentType(contentType) {
131
+ const type = contentType.split(";", 1)[0].trim().toLowerCase();
132
+ return type === "application/json" || type === "text/json" || type.endsWith("+json");
133
+ }
123
134
  const DEFAULT_ALLOWED_BODY_TYPES = [
124
135
  "application/json",
125
136
  "application/x-www-form-urlencoded",
@@ -137,12 +148,14 @@ export class ConsoleTransport {
137
148
  /**
138
149
  * @param opts - Console transport options
139
150
  */
140
- constructor(opts = {
141
- pretty: false,
142
- onWrite: (output) => console.log(output),
143
- }) {
151
+ constructor(opts = {}) {
152
+ // `pretty` resolves the same way whether the caller passed nothing, `{}`, or
153
+ // a full options object. The old default parameter hard-coded `pretty: false`
154
+ // for the no-argument form only, so `new ConsoleTransport()` emitted JSON
155
+ // while `new ConsoleTransport({ onWrite })` emitted pretty output outside
156
+ // production — the opposite of the documented default.
144
157
  this.pretty = opts.pretty ?? getNodeEnv() !== "production";
145
- this.onWrite = opts.onWrite;
158
+ this.onWrite = opts.onWrite ?? ((output) => console.log(output));
146
159
  // useColors reserved for future ANSI colorization
147
160
  void opts.useColors;
148
161
  }
@@ -254,6 +267,16 @@ export class BatchingTransport {
254
267
  }
255
268
  /** Internal flush — sends all buffered entries to inner transport. */
256
269
  _flush() {
270
+ // A size-triggered flush has to disarm the pending timer as well. Leaving
271
+ // it armed meant `write()`'s `if (!this.timer)` guard stayed false for the
272
+ // next entry, so nothing scheduled a fresh interval: entries written after
273
+ // a full batch waited out the remainder of the previous batch's timer, and a
274
+ // process that hit `maxBatch` and then went quiet held the interval for the
275
+ // whole `flushMs` with an empty buffer.
276
+ if (this.timer !== null) {
277
+ clearTimeout(this.timer);
278
+ this.timer = null;
279
+ }
257
280
  if (this.buffer.length === 0)
258
281
  return;
259
282
  const batch = this.buffer.splice(0);
@@ -302,6 +325,12 @@ export class RemoteTransport {
302
325
  }
303
326
  /** Fire-and-forget flush with error handling. */
304
327
  _flush() {
328
+ // Same disarming as BatchingTransport: a size-triggered flush must not
329
+ // leave the next entry without a timer of its own.
330
+ if (this.timer !== null) {
331
+ clearTimeout(this.timer);
332
+ this.timer = null;
333
+ }
305
334
  this._flushAsync().catch(this.options.onError ?? ((err) => console.error("[logging] Flush error:", err)));
306
335
  }
307
336
  /** Async flush implementation — sends batch via HTTP POST. */
@@ -439,7 +468,16 @@ export class Redactor {
439
468
  }
440
469
  return out;
441
470
  }
442
- /** Redact sensitive query parameters from a URL. */
471
+ /**
472
+ * Redact sensitive query parameters from a URL.
473
+ *
474
+ * Absolute URLs go through `URL`, which also normalises the result. A URL the
475
+ * `URL` constructor rejects — every relative form, and relative forms are what
476
+ * `HTTPLogger.child`'s own example logs — used to be returned untouched, so
477
+ * `logRequest(id, "GET", "/users?token=abc", ...)` wrote the token in clear
478
+ * while the absolute spelling of the same request redacted it. Those fall back
479
+ * to a textual scan of the query string below.
480
+ */
443
481
  redactURL(url) {
444
482
  try {
445
483
  const u = new URL(url);
@@ -451,9 +489,39 @@ export class Redactor {
451
489
  return u.toString();
452
490
  }
453
491
  catch {
454
- return url;
492
+ return this._redactRelativeQuery(url);
455
493
  }
456
494
  }
495
+ /** Redact the query string of a URL the `URL` constructor cannot parse. */
496
+ _redactRelativeQuery(url) {
497
+ const q = url.indexOf("?");
498
+ if (q === -1)
499
+ return url;
500
+ const base = url.slice(0, q);
501
+ const rest = url.slice(q + 1);
502
+ const hash = rest.indexOf("#");
503
+ const fragment = hash === -1 ? "" : rest.slice(hash);
504
+ const query = hash === -1 ? rest : rest.slice(0, hash);
505
+ const params = query.split("&").map((pair) => {
506
+ if (pair === "")
507
+ return pair;
508
+ const eq = pair.indexOf("=");
509
+ const name = eq === -1 ? pair : pair.slice(0, eq);
510
+ let decoded = name;
511
+ try {
512
+ decoded = decodeURIComponent(name);
513
+ }
514
+ catch {
515
+ /* keep the raw name if it is not valid percent-encoding */
516
+ }
517
+ if (!this.paramSet.has(decoded.toLowerCase()))
518
+ return pair;
519
+ // A valueless parameter (`?token`) is redacted to `token=***` so the
520
+ // redaction is visible rather than leaving the bare name behind.
521
+ return eq === -1 ? `${name}=***` : `${name}=***`;
522
+ });
523
+ return `${base}?${params.join("&")}${fragment}`;
524
+ }
457
525
  /**
458
526
  * Redact and optionally truncate a request or response body.
459
527
  *
@@ -470,6 +538,12 @@ export class Redactor {
470
538
  if (!allowed) {
471
539
  return { body: `[${ct || "binary"}]`, size: body ? bodySize(body) : null };
472
540
  }
541
+ // The size of the body *as received*, measured before any lossy decoding.
542
+ // Two invalid UTF-8 bytes decode to two U+FFFD characters that re-encode to
543
+ // 6 bytes, and reporting 6 for a 2-byte body is a size of nothing the caller
544
+ // sent. `maxBodyLength` is applied to the re-encoded form below, which is
545
+ // what actually gets written out.
546
+ const size = bodySize(body);
473
547
  let str;
474
548
  if (body instanceof Uint8Array) {
475
549
  try {
@@ -482,9 +556,14 @@ export class Redactor {
482
556
  else {
483
557
  str = body;
484
558
  }
485
- const size = str.length;
486
- // Redact body fields (JSON)
487
- if (ct.includes("application/json") && this.bodyFields.length > 0) {
559
+ // Redact body fields (JSON). The test has to be at least as wide as the
560
+ // `allowedBodyTypes` gate above: that one uses `startsWith` on a
561
+ // caller-configured list, so a config of `["application/"]` lets a
562
+ // `application/vnd.api+json` body through — and this narrower
563
+ // `includes("application/json")` then logged its `password` field in the
564
+ // clear. `+json` is the registered suffix form (RFC 6839) and this library
565
+ // already parses it as JSON elsewhere, so the redactor has to agree.
566
+ if (isJSONContentType(ct) && this.bodyFields.length > 0) {
488
567
  try {
489
568
  // FIX (H6): log bodies are untrusted — sanitize before mutation so a
490
569
  // crafted payload cannot smuggle __proto__ paths into redaction writes.
@@ -501,9 +580,12 @@ export class Redactor {
501
580
  for (const pattern of this.patterns) {
502
581
  str = str.replace(pattern, "***");
503
582
  }
504
- // Truncate
505
- if (str.length > this.maxBody) {
506
- str = str.slice(0, this.maxBody) + `... [truncated ${str.length - this.maxBody} bytes]`;
583
+ // Truncate by UTF-8 bytes, which is the unit `maxBodyLength` is documented
584
+ // in, and never split a multi-byte character in half.
585
+ const afterRedaction = bodySize(str);
586
+ if (afterRedaction > this.maxBody) {
587
+ const cut = truncateToBytes(str, this.maxBody);
588
+ str = `${cut.text}... [truncated ${cut.removed} bytes]`;
507
589
  }
508
590
  return { body: str, size };
509
591
  }
@@ -512,6 +594,15 @@ export class Redactor {
512
594
  function redactObjectPath(obj, path) {
513
595
  if (!obj || typeof obj !== "object" || path.length === 0)
514
596
  return;
597
+ // A JSON array was skipped outright: `bodyFields: ["password"]` only ever
598
+ // matched a top-level key, so a bulk payload — `[{"password":"…"}]`, the
599
+ // shape of most collection endpoints — logged its secrets in clear while
600
+ // the identical object form was redacted. Apply the path to every element.
601
+ if (Array.isArray(obj)) {
602
+ for (const item of obj)
603
+ redactObjectPath(item, path);
604
+ return;
605
+ }
515
606
  const [head, ...rest] = path;
516
607
  if (head === undefined)
517
608
  return;
@@ -642,6 +733,13 @@ export class HTTPLogger {
642
733
  const dur = active ? perfNow() - active.startMs : 0;
643
734
  const method = active?.method ?? "GET";
644
735
  const url = active?.url ?? "";
736
+ // The active ID is released before the filter runs, not after. A response
737
+ // dropped by `statuses` / `level` / `excludeURLs` / sampling returned early
738
+ // and left its entry in `activeIds` forever: the only cleanup is a
739
+ // size-triggered sweep inside `logRequest`, so a service logging with a
740
+ // narrow status filter accumulated one dead entry per request until it
741
+ // reached 10000 and started evicting live ones.
742
+ this.activeIds.delete(requestId);
645
743
  if (!this._shouldLog("INFO", method, url, status))
646
744
  return;
647
745
  const ct = headers["content-type"] ?? headers["Content-Type"] ?? null;
@@ -665,7 +763,6 @@ export class HTTPLogger {
665
763
  cached,
666
764
  meta: { ...this.cfg.context, ...meta },
667
765
  };
668
- this.activeIds.delete(requestId);
669
766
  this._write(entry);
670
767
  }
671
768
  /**
@@ -682,6 +779,8 @@ export class HTTPLogger {
682
779
  const dur = active ? perfNow() - active.startMs : 0;
683
780
  const method = active?.method ?? "GET";
684
781
  const url = active?.url ?? "";
782
+ // Released before the filter, for the same reason as `logResponse`.
783
+ this.activeIds.delete(requestId);
685
784
  if (!this._shouldLog("ERROR", method, url))
686
785
  return;
687
786
  const entry = {
@@ -698,7 +797,6 @@ export class HTTPLogger {
698
797
  attempt,
699
798
  meta: { ...this.cfg.context, ...meta },
700
799
  };
701
- this.activeIds.delete(requestId);
702
800
  this._write(entry);
703
801
  }
704
802
  // ── §7.2 ID management ────────────────────────────────────────────────────
@@ -723,7 +821,7 @@ export class HTTPLogger {
723
821
  * ```ts
724
822
  * const logger = createProductionLogger();
725
823
  * const child = logger.child({ requestId: "req-123", userId: "user-456" });
726
- * child.logRequest(...); // Logs will include both requestId and userId
824
+ * child.logRequest("req-123", "GET", "/users", {}, null, 1); // Logs include both requestId and userId
727
825
  * ```
728
826
  */
729
827
  child(context) {
@@ -838,8 +936,63 @@ function serializeError(err) {
838
936
  ...(errStack !== undefined ? { stack: errStack } : {}),
839
937
  };
840
938
  }
939
+ // Anything else was `String(err)`, which for a rejected object — the shape a
940
+ // custom fetch, a GraphQL client or a worker produces — is literally
941
+ // "[object Object]". The entry recorded no message and no `code`, so the log
942
+ // said only that something had failed. An error-shaped object keeps its
943
+ // `name`, `message`, `code` and `stack`; anything else is stringified
944
+ // structurally.
945
+ if (err !== null && typeof err === "object") {
946
+ const o = err;
947
+ const out = {
948
+ name: typeof o.name === "string" && o.name !== "" ? o.name : "Error",
949
+ message: typeof o.message === "string" ? o.message : safeStringify(err),
950
+ };
951
+ if (typeof o.code === "string" || typeof o.code === "number")
952
+ out.code = String(o.code);
953
+ if (typeof o.stack === "string")
954
+ out.stack = o.stack;
955
+ return out;
956
+ }
841
957
  return { name: "Error", message: String(err) };
842
958
  }
959
+ /** `JSON.stringify` that never throws — falls back for circular values. */
960
+ function safeStringify(value) {
961
+ try {
962
+ const seen = new WeakSet();
963
+ return (JSON.stringify(value, (_k, v) => {
964
+ if (v !== null && typeof v === "object") {
965
+ if (seen.has(v))
966
+ return "[circular]";
967
+ seen.add(v);
968
+ }
969
+ return v;
970
+ }) ?? String(value));
971
+ }
972
+ catch {
973
+ return String(value);
974
+ }
975
+ }
976
+ /**
977
+ * Truncate a string to at most `maxBytes` UTF-8 bytes, never splitting a
978
+ * character, and report how many bytes were actually removed.
979
+ */
980
+ function truncateToBytes(str, maxBytes) {
981
+ const enc = new TextEncoder();
982
+ const total = enc.encode(str).byteLength;
983
+ if (total <= maxBytes)
984
+ return { text: str, removed: 0 };
985
+ let used = 0;
986
+ let end = 0;
987
+ for (const ch of str) {
988
+ const width = enc.encode(ch).byteLength;
989
+ if (used + width > maxBytes)
990
+ break;
991
+ used += width;
992
+ end += ch.length;
993
+ }
994
+ return { text: str.slice(0, end), removed: total - used };
995
+ }
843
996
  /** Cross-runtime high-resolution timer. Falls back to Date.now() when performance.now() is unavailable. */
844
997
  function perfNow() {
845
998
  return typeof performance !== "undefined" ? performance.now() : Date.now();