@cyanheads/mcp-ts-core 0.13.12 → 0.13.13

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 (93) hide show
  1. package/AGENTS.md +7 -6
  2. package/CLAUDE.md +7 -6
  3. package/README.md +1 -1
  4. package/changelog/0.13.x/0.13.13.md +93 -0
  5. package/dist/core/context.d.ts +12 -0
  6. package/dist/core/context.d.ts.map +1 -1
  7. package/dist/core/context.js +59 -14
  8. package/dist/core/context.js.map +1 -1
  9. package/dist/core/worker.d.ts.map +1 -1
  10. package/dist/core/worker.js +21 -8
  11. package/dist/core/worker.js.map +1 -1
  12. package/dist/mcp-server/inputRequired.d.ts +18 -9
  13. package/dist/mcp-server/inputRequired.d.ts.map +1 -1
  14. package/dist/mcp-server/inputRequired.js +29 -15
  15. package/dist/mcp-server/inputRequired.js.map +1 -1
  16. package/dist/mcp-server/prompts/prompt-registration.d.ts.map +1 -1
  17. package/dist/mcp-server/prompts/prompt-registration.js +10 -7
  18. package/dist/mcp-server/prompts/prompt-registration.js.map +1 -1
  19. package/dist/mcp-server/resources/utils/resourceHandlerFactory.d.ts.map +1 -1
  20. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js +22 -9
  21. package/dist/mcp-server/resources/utils/resourceHandlerFactory.js.map +1 -1
  22. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts +7 -1
  23. package/dist/mcp-server/tools/utils/toolHandlerFactory.d.ts.map +1 -1
  24. package/dist/mcp-server/tools/utils/toolHandlerFactory.js +34 -19
  25. package/dist/mcp-server/tools/utils/toolHandlerFactory.js.map +1 -1
  26. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts +3 -1
  27. package/dist/mcp-server/transports/auth/lib/authUtils.d.ts.map +1 -1
  28. package/dist/mcp-server/transports/auth/lib/authUtils.js +4 -2
  29. package/dist/mcp-server/transports/auth/lib/authUtils.js.map +1 -1
  30. package/dist/storage/providers/fileSystem/fileSystemProvider.d.ts.map +1 -1
  31. package/dist/storage/providers/fileSystem/fileSystemProvider.js +48 -21
  32. package/dist/storage/providers/fileSystem/fileSystemProvider.js.map +1 -1
  33. package/dist/types-global/errors.d.ts.map +1 -1
  34. package/dist/types-global/errors.js +31 -16
  35. package/dist/types-global/errors.js.map +1 -1
  36. package/dist/utils/internal/error-handler/errorHandler.d.ts +29 -12
  37. package/dist/utils/internal/error-handler/errorHandler.d.ts.map +1 -1
  38. package/dist/utils/internal/error-handler/errorHandler.js +198 -100
  39. package/dist/utils/internal/error-handler/errorHandler.js.map +1 -1
  40. package/dist/utils/internal/error-handler/helpers.d.ts +75 -4
  41. package/dist/utils/internal/error-handler/helpers.d.ts.map +1 -1
  42. package/dist/utils/internal/error-handler/helpers.js +232 -33
  43. package/dist/utils/internal/error-handler/helpers.js.map +1 -1
  44. package/dist/utils/internal/error-handler/types.d.ts +17 -7
  45. package/dist/utils/internal/error-handler/types.d.ts.map +1 -1
  46. package/dist/utils/internal/logValue.d.ts +33 -0
  47. package/dist/utils/internal/logValue.d.ts.map +1 -0
  48. package/dist/utils/internal/logValue.js +539 -0
  49. package/dist/utils/internal/logValue.js.map +1 -0
  50. package/dist/utils/internal/logger.d.ts +38 -9
  51. package/dist/utils/internal/logger.d.ts.map +1 -1
  52. package/dist/utils/internal/logger.js +228 -118
  53. package/dist/utils/internal/logger.js.map +1 -1
  54. package/dist/utils/internal/performance.d.ts.map +1 -1
  55. package/dist/utils/internal/performance.js +9 -11
  56. package/dist/utils/internal/performance.js.map +1 -1
  57. package/dist/utils/internal/requestContext.d.ts +3 -3
  58. package/dist/utils/internal/requestContext.js +1 -1
  59. package/dist/utils/network/fetchWithTimeout.d.ts +18 -10
  60. package/dist/utils/network/fetchWithTimeout.d.ts.map +1 -1
  61. package/dist/utils/network/fetchWithTimeout.js +48 -20
  62. package/dist/utils/network/fetchWithTimeout.js.map +1 -1
  63. package/dist/utils/network/httpError.d.ts +8 -6
  64. package/dist/utils/network/httpError.d.ts.map +1 -1
  65. package/dist/utils/network/httpError.js +23 -7
  66. package/dist/utils/network/httpError.js.map +1 -1
  67. package/dist/utils/network/retry.d.ts +7 -4
  68. package/dist/utils/network/retry.d.ts.map +1 -1
  69. package/dist/utils/network/retry.js +24 -10
  70. package/dist/utils/network/retry.js.map +1 -1
  71. package/dist/utils/security/sanitization.d.ts +24 -28
  72. package/dist/utils/security/sanitization.d.ts.map +1 -1
  73. package/dist/utils/security/sanitization.js +25 -84
  74. package/dist/utils/security/sanitization.js.map +1 -1
  75. package/dist/utils/security/sensitiveFields.d.ts +32 -4
  76. package/dist/utils/security/sensitiveFields.d.ts.map +1 -1
  77. package/dist/utils/security/sensitiveFields.js +85 -4
  78. package/dist/utils/security/sensitiveFields.js.map +1 -1
  79. package/dist/utils/telemetry/trace.d.ts +3 -1
  80. package/dist/utils/telemetry/trace.d.ts.map +1 -1
  81. package/dist/utils/telemetry/trace.js +6 -6
  82. package/dist/utils/telemetry/trace.js.map +1 -1
  83. package/framework-skills/api-config/SKILL.md +2 -1
  84. package/framework-skills/api-context/SKILL.md +3 -3
  85. package/framework-skills/api-errors/SKILL.md +17 -15
  86. package/framework-skills/api-linter/SKILL.md +11 -10
  87. package/framework-skills/api-telemetry/SKILL.md +6 -4
  88. package/framework-skills/api-utils/SKILL.md +6 -6
  89. package/framework-skills/api-utils/references/security.md +4 -2
  90. package/package.json +6 -5
  91. package/scripts/check-framework-antipatterns.ts +3 -2
  92. package/templates/.env.example +2 -0
  93. package/templates/tests/tools/echo.tool.test.ts +19 -1
@@ -5,7 +5,7 @@
5
5
  * @module src/utils/network/retry
6
6
  */
7
7
  import { JsonRpcErrorCode, McpError, timeout } from '../../types-global/errors.js';
8
- import { extractErrorCauseChain } from '../internal/error-handler/helpers.js';
8
+ import { errorText, extractErrorCauseChain, getErrorMessage, isInstance, readField, UNREADABLE, } from '../internal/error-handler/helpers.js';
9
9
  import { logger } from '../internal/logger.js';
10
10
  import { withExtra } from '../internal/requestContext.js';
11
11
  /**
@@ -78,16 +78,21 @@ export function parseRetryAfterMs(error) {
78
78
  * per node, the error itself first — or `undefined` when the error has neither
79
79
  * a cause nor a string `code`, so its record stays exactly as it was.
80
80
  *
81
- * Projections only: pino writes an `Error` under any key but `err` as its
82
- * enumerable properties, and a Bun fetch rejection's `path` holds the full
83
- * request URL. Stacks and `McpError.data` stay out for the same reason.
81
+ * Projections only, `{ name, message, code? }` per node: a compact chain for
82
+ * triage, since a retry writes a record per attempt. The error in full — its
83
+ * stack, an `McpError`'s `data` — is the failure record's to write
84
+ * (`ErrorHandler.handleError`'s, once the error reaches a handler).
84
85
  * Module-level, not public: `fetchWithTimeout`'s network-error record carries
85
- * the same field.
86
+ * the same field. Every read is guarded, as `extractErrorCauseChain`'s are: a
87
+ * `cause` that cannot be read ends the chain as an `'[Unreadable]'` node, and
88
+ * a `code` that cannot be read counts as none.
86
89
  */
87
90
  export function causeChainForLog(error) {
88
91
  if (!(error instanceof Error))
89
92
  return;
90
- if (!error.cause && !('code' in error && typeof error.code === 'string'))
93
+ const code = readField(error, 'code');
94
+ const hasCode = typeof code === 'string' && code !== UNREADABLE;
95
+ if (!readField(error, 'cause') && !hasCode)
91
96
  return;
92
97
  return extractErrorCauseChain(error).map(({ name, message, code }) => ({
93
98
  name,
@@ -198,11 +203,14 @@ function createDeadlineClock(deadlineMs, operation) {
198
203
  /**
199
204
  * Enriches an error with retry exhaustion context.
200
205
  * Appends attempt count to the message and to `data` for programmatic access.
206
+ * The error's `message` and `name` are read as text (`errorText`), so one that
207
+ * throws on read or is not a string never replaces the exhausted error.
201
208
  */
202
209
  function enrichExhaustedError(error, totalAttempts, operation) {
203
210
  if (error instanceof McpError) {
204
211
  const suffix = `(failed after ${totalAttempts} attempt${totalAttempts > 1 ? 's' : ''})`;
205
- const enrichedMessage = error.message ? `${error.message} ${suffix}` : suffix;
212
+ const message = errorText(readField(error, 'message'));
213
+ const enrichedMessage = message ? `${message} ${suffix}` : suffix;
206
214
  const enrichedData = {
207
215
  ...error.data,
208
216
  retryAttempts: totalAttempts,
@@ -212,8 +220,10 @@ function enrichExhaustedError(error, totalAttempts, operation) {
212
220
  }
213
221
  if (error instanceof Error) {
214
222
  const suffix = `(failed after ${totalAttempts} attempt${totalAttempts > 1 ? 's' : ''})`;
215
- const wrapped = new Error(`${error.message} ${suffix}`, { cause: error });
216
- wrapped.name = error.name;
223
+ const wrapped = new Error(`${errorText(readField(error, 'message'))} ${suffix}`, {
224
+ cause: error,
225
+ });
226
+ wrapped.name = errorText(readField(error, 'name'));
217
227
  return wrapped;
218
228
  }
219
229
  return error;
@@ -353,7 +363,11 @@ export async function withRetry(fn, options = {}) {
353
363
  }
354
364
  throw clock.exceeded(error, attempt + 1);
355
365
  }
356
- const errorMessage = error instanceof Error ? error.message : String(error);
366
+ // As text, guarded: a `message` that throws on read or is not a string never fails the retry (#697),
367
+ // and any other thrown value is described as `getErrorMessage` describes it.
368
+ const errorMessage = isInstance(error, Error)
369
+ ? errorText(readField(error, 'message'))
370
+ : getErrorMessage(error);
357
371
  const delaySource = retryAfterMs === undefined ? '' : ' (Retry-After)';
358
372
  // The transport code (`ECONNRESET`, `ConnectionRefused`) rides the
359
373
  // cause chain, not the message — the only trace of why a retry that
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/utils/network/retry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAuB,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAEpF;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAmB;IAChD,gBAAgB,CAAC,kBAAkB;IACnC,gBAAgB,CAAC,OAAO;IACxB,gBAAgB,CAAC,WAAW;CAC7B,CAAC,CAAC;AAyHH;;;;;;;;GAQG;AACH,SAAS,YAAY,CACnB,OAAe,EACf,WAAmB,EACnB,UAAkB,EAClB,MAAc;IAEd,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,CAAC,IAAI,OAAO,EAAE,UAAU,CAAC,CAAC;IACrE,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,WAAW,CAAC;IACpC,MAAM,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IACzC,OAAO,WAAW,GAAG,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,GAAG,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;QAAE,OAAO;IACzC,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;IAEnC,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO;IAEpC,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO;IAE3B,6EAA6E;IAC7E,wDAAwD;IACxD,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAEzD,6DAA6D;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAAE,OAAO;IACjC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;AAC1C,CAAC;AASD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC;QAAE,OAAO;IACtC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,OAAO;IACjF,OAAO,sBAAsB,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QACrE,IAAI;QACJ,OAAO;QACP,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;KACpC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,wDAAwD;QACxD,IAAI,KAAK,CAAC,IAAI,EAAE,SAAS,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAClD;;;;;;WAMG;QACH,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY;YAAE,OAAO,KAAK,CAAC;QACtD;;;;;WAKG;QACH,IAAI,KAAK,CAAC,IAAI,EAAE,WAAW,KAAK,oBAAoB;YAAE,OAAO,KAAK,CAAC;QACnE,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,0EAA0E;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAgBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,mBAAmB,CAAC,UAAkB,EAAE,SAAkB;IACjE,MAAM,KAAK,GAAG,SAAS,IAAI,WAAW,CAAC;IACvC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,YAAY,CAC7B,GAAG,KAAK,iBAAiB,UAAU,oBAAoB,EACvD,cAAc,CACf,CAAC;IACF,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IAErE,OAAO;QACL,MAAM,EAAE,UAAU,CAAC,MAAM;QACzB,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM;QAClD,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QACrE,IAAI,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;QAC/B,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CACjC,OAAO,CACL,GAAG,KAAK,iBAAiB,UAAU,2BAA2B,aAAa,WAAW,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EACrH;YACE,MAAM,EAAE,yBAAyB;YACjC,UAAU;YACV,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACjC,aAAa;SACd,EACD,EAAE,KAAK,EAAE,CACV;KACJ,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,oBAAoB,CAAC,KAAc,EAAE,aAAqB,EAAE,SAAkB;IACrF,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,iBAAiB,aAAa,WAAW,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QACxF,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAC9E,MAAM,YAAY,GAA4B;YAC5C,GAAG,KAAK,CAAC,IAAI;YACb,aAAa,EAAE,aAAa;YAC5B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACpC,CAAC;QACF,OAAO,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,iBAAiB,aAAa,WAAW,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;QACxF,MAAM,OAAO,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,EAAyC,EACzC,OAAO,GAAiB,EAAE;IAE1B,MAAM,EACJ,UAAU,GAAG,CAAC,EACd,WAAW,GAAG,IAAI,EAClB,UAAU,GAAG,MAAM,EACnB,MAAM,GAAG,IAAI,EACb,SAAS,EACT,OAAO,EACP,MAAM,EACN,UAAU,EACV,WAAW,GAAG,kBAAkB,GACjC,GAAG,OAAO,CAAC;IAEZ,MAAM,aAAa,GAAG,UAAU,GAAG,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAEhG,MAAM,aAAa,GACjB,KAAK,IAAI,MAAM;QACb,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;IAEhE,IAAI,CAAC;QACH,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,aAAa,EAAE,OAAO,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,CAAC;oBACd,MAAM,EAAE,aAAa;oBACrB,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,MAAM,CAAC,iBAAiB;iBAC9D,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,iEAAiE;gBACjE,oEAAoE;gBACpE,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;oBACpB,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,uEAAuE;gBACvE,uEAAuE;gBACvE,sCAAsC;gBACtC,IAAI,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC;oBACrB,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBAED,MAAM,aAAa,GAAG,OAAO,IAAI,UAAU,CAAC;gBAE5C,wCAAwC;gBACxC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;oBACxB,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,qEAAqE;gBACrE,MAAM,YAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;gBAE9C,6EAA6E;gBAC7E,0EAA0E;gBAC1E,2BAA2B;gBAC3B,IAAI,YAAY,KAAK,SAAS,IAAI,YAAY,GAAG,UAAU,EAAE,CAAC;oBAC5D,MAAM,CAAC,KAAK,CACV,eAAe,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,yBAAyB,UAAU,UAAU,SAAS,IAAI,WAAW,iBAAiB,EAC7H,OAAO,CACR,CAAC;oBACF,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;gBAC9D,CAAC;gBAED,6EAA6E;gBAC7E,MAAM,KAAK,GAAG,YAAY,IAAI,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;gBAErF;;;;;;;;;;;;mBAYG;gBACH,IAAI,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACzC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;wBAC/B,MAAM,CAAC,KAAK,CACV,eAAe,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,mBAAmB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,kBAAkB,UAAU,mBAAmB,SAAS,IAAI,WAAW,iBAAiB,EACjL,OAAO,CACR,CAAC;wBACF,MAAM,KAAK,CAAC;oBACd,CAAC;oBACD,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;gBAC3C,CAAC;gBAED,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC5E,MAAM,WAAW,GAAG,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBACvE,mEAAmE;gBACnE,oEAAoE;gBACpE,6BAA6B;gBAC7B,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAE3C,MAAM,CAAC,KAAK,CACV,SAAS,OAAO,GAAG,CAAC,IAAI,UAAU,QAAQ,SAAS,IAAI,WAAW,KAAK,YAAY,cAAc,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,WAAW,EAAE,EACpI,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,IAAK,EAAqB,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CACpF,CAAC;gBAEF,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;gBACpC,CAAC;gBAAC,OAAO,UAAmB,EAAE,CAAC;oBAC7B,uEAAuE;oBACvE,oDAAoD;oBACpD,IAAI,MAAM,EAAE,OAAO;wBAAE,MAAM,UAAU,CAAC;oBACtC,IAAI,KAAK,EAAE,OAAO,EAAE;wBAAE,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;oBAC/D,MAAM,UAAU,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;YAAS,CAAC;QACT,KAAK,EAAE,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,kDAAkD;IAClD,MAAM,IAAI,QAAQ,CAAC,gBAAgB,CAAC,aAAa,EAAE,iCAAiC,CAAC,CAAC;AACxF,CAAC;AAED,yEAAyE;AACzE,SAAS,KAAK,CAAC,EAAU,EAAE,MAAoB;IAC7C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,sFAAsF;QACtF,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QAE3F,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,OAAO,EAAE,CAAC;QACZ,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,QAAQ,CAAC,gBAAgB,CACvB,OAAO,EACP,GAAG,EAAE;YACH,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,sEAAsE;YACtE,0EAA0E;YAC1E,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../src/utils/network/retry.ts"],"names":[],"mappings":"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"}
@@ -13,19 +13,6 @@
13
13
  * @module src/utils/security/sanitization
14
14
  */
15
15
  import type sanitizeHtml from 'sanitize-html';
16
- /**
17
- * Copies `fields` with the value of every sensitive field replaced by
18
- * `'[REDACTED]'`, at any depth, matching keys as `sanitizeForLogging` does —
19
- * fields added with `setSensitiveFields` included. The copy is what
20
- * `JSON.stringify` reads from the input (an object's `toJSON()` result, else its
21
- * own enumerable properties), so it serializes as the input would, minus the
22
- * masked values. Nothing passes through `structuredClone`, which rejects a `URL`
23
- * or a function. A reference back to an enclosing object becomes `'[Circular]'`.
24
- * The input is never modified.
25
- *
26
- * @internal Masks the `ctx.log` mirror to the client. Not part of the public API.
27
- */
28
- export declare function maskSensitiveFields(fields: Record<string, unknown>): Record<string, unknown>;
29
16
  /**
30
17
  * Options controlling how `sanitizePath` processes and validates file paths.
31
18
  */
@@ -146,16 +133,20 @@ export declare class Sanitization {
146
133
  */
147
134
  static getInstance(): Sanitization;
148
135
  /**
149
- * Extends the list of sensitive field names used by `sanitizeForLogging` and by the
150
- * masking of every `ctx.log` record mirrored to the client.
136
+ * Extends the list of sensitive field names used by `sanitizeForLogging` and by every
137
+ * log sink: the process log, `interactions.log`, the OTLP export, and the `ctx.log`
138
+ * mirror to the client.
151
139
  * New names are merged with the existing list (deduplication applied, case-insensitive).
152
- * Changes take effect immediately on subsequent calls.
140
+ * Changes take effect immediately on subsequent calls. The correlation fields a record's
141
+ * context supplies at its root (`requestId`, `sessionId`, `tenantId`, `traceId`, `spanId`,
142
+ * `timestamp`, `operation`) are never redacted in the logs; a name matching one of them
143
+ * still redacts a caller's own key of that name.
153
144
  *
154
- * @param fields - Field names to add to the sensitive list (e.g., `['myApiKey', 'session_id']`).
145
+ * @param fields - Field names to add to the sensitive list (e.g., `['myApiKey', 'accountNumber']`).
155
146
  * @returns `void`
156
147
  * @example
157
148
  * ```ts
158
- * sanitization.setSensitiveFields(['myApiKey', 'session_id']);
149
+ * sanitization.setSensitiveFields(['myApiKey', 'accountNumber']);
159
150
  * sanitization.sanitizeForLogging({ myApiKey: 'abc123' });
160
151
  * // => { myApiKey: '[REDACTED]' }
161
152
  * ```
@@ -182,7 +173,11 @@ export declare class Sanitization {
182
173
  * - `'*.token'` — matches `{ auth: { token: '...' } }`
183
174
  * - `'*.*.token'` — matches `{ context: { auth: { token: '...' } } }`
184
175
  *
185
- * Pass the result directly to pino's `redact.paths` option.
176
+ * Pass the result to pino's `redact.paths` option for a pino instance of your own; the
177
+ * framework's loggers redact with the key matcher instead. These paths are narrower: whole
178
+ * names only, matched case-sensitively, at three depths. A name added through
179
+ * `setSensitiveFields` is stored lowercased, so its path matches only a lowercase key
180
+ * (`myapikey`, not `myApiKey`).
186
181
  *
187
182
  * @returns Array of fast-redact-compatible path strings for use in pino's `redact.paths`.
188
183
  * @example
@@ -366,15 +361,16 @@ export declare class Sanitization {
366
361
  /**
367
362
  * Produces a log-safe deep clone of `input` with sensitive field values replaced by `'[REDACTED]'`.
368
363
  *
369
- * This method is **synchronous**. It uses `structuredClone` for deep cloning. Sensitive field
370
- * detection combines two strategies:
371
- * - **Exact match**: the normalized key (lowercased, non-alphanumeric stripped) matches a
372
- * sensitive field name.
373
- * - **Word match**: splitting the key by camelCase/snake_case/kebab-case tokens and checking
374
- * each token against the sensitive word set.
364
+ * This method is **synchronous**. It uses `structuredClone` for deep cloning. A key is
365
+ * sensitive when some run of its adjacent words, joined, equals a sensitive field name with
366
+ * case and separators ignored. Words are split at every character other than a letter or
367
+ * digit, at a lowercase letter followed by a capital, at the end of a run of capitals, and
368
+ * around each run of digits: `apiKey`, `API_KEY`, `APIKey`, `x-api-key`, `accessToken`,
369
+ * `upstream_private_key`, and `apiKey2` are all sensitive, while `max_tokens`, `MAX_TOKENS`,
370
+ * and `tokenizer` are not. Every log sink matches keys the same way.
375
371
  *
376
372
  * Non-object/non-array inputs (primitives, `null`) are returned as-is without cloning.
377
- * If `structuredClone` itself throws (e.g., circular reference, uncloneable type), the method
373
+ * If `structuredClone` itself throws (e.g., a function, a symbol, or a getter that throws), the method
378
374
  * returns the string `'[Log Sanitization Failed]'` and emits an error log rather than throwing.
379
375
  *
380
376
  * @param input - The value to sanitize. Non-objects are returned unchanged.
@@ -400,8 +396,8 @@ export declare class Sanitization {
400
396
  * the result is always well-formed. It is a prefix of the whole serialization,
401
397
  * so a truncated payload is no longer valid JSON; `truncated` says so.
402
398
  *
403
- * Returned as a string rather than an object because the logger drops values
404
- * nested past its sanitize depth, which would silently strip the deep parts of
399
+ * Returned as a string rather than an object because the logger writes an
400
+ * object 16 levels below the record root as `'[MaxDepth]'`, which would cut the deep parts of
405
401
  * a payload. A value `JSON.stringify` rejects (a `bigint`) yields
406
402
  * `'[Log Serialization Failed]'` rather than throwing into the caller's path.
407
403
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sanitization.d.ts","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sanitization.d.ts","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { configurationError, JsonRpcErrorCode, McpError, validationError, } from
2
2
  import { logger } from '../internal/logger.js';
3
3
  import { requestContextService } from '../internal/requestContext.js';
4
4
  import { runtimeCaps } from '../internal/runtime.js';
5
- import { DEFAULT_SENSITIVE_FIELDS, toPinoRedactPaths } from './sensitiveFields.js';
5
+ import { DEFAULT_SENSITIVE_FIELDS, isSensitiveKey, setSensitiveNames, toPinoRedactPaths, } from './sensitiveFields.js';
6
6
  import { isRecord } from '../types/guards.js';
7
7
  let _sanitizeHtmlFn;
8
8
  async function loadSanitizeHtml() {
@@ -57,74 +57,6 @@ const PATH_REJECTION_HINTS = {
57
57
  path_traversal: 'Provide a relative path that stays inside the permitted directory, with no `..` segments climbing out of it.',
58
58
  absolute_path_disallowed: 'Provide a relative path instead of an absolute one.',
59
59
  };
60
- /**
61
- * Each sensitive field lowercased with non-alphanumerics stripped, matched
62
- * against a whole key. Module state: the singleton `Sanitization` and
63
- * {@link maskSensitiveFields} read one list, which `setSensitiveFields` rebuilds.
64
- */
65
- let sensitiveNames = new Set();
66
- /** Each sensitive field lowercased, matched against each word of a key. */
67
- let sensitiveWords = new Set();
68
- /** Lowercases a field name and strips every non-alphanumeric character. */
69
- function normalizeName(name) {
70
- return name.toLowerCase().replace(/[^a-z0-9]/g, '');
71
- }
72
- function setSensitiveNames(fields) {
73
- sensitiveNames = new Set(fields.map(normalizeName).filter(Boolean));
74
- sensitiveWords = new Set(fields.map((field) => field.toLowerCase()).filter(Boolean));
75
- }
76
- setSensitiveNames(DEFAULT_SENSITIVE_FIELDS);
77
- /**
78
- * Whether `key` names a sensitive field: its normalized form equals one
79
- * (`API_KEY` matches `apiKey`), or one of its camelCase, snake_case, or
80
- * kebab-case words does (`accessToken` matches `token`).
81
- */
82
- function isSensitiveKey(key) {
83
- if (sensitiveNames.has(normalizeName(key)))
84
- return true;
85
- return key
86
- .replace(/([A-Z])/g, ' $1')
87
- .toLowerCase()
88
- .split(/[\s_-]+/)
89
- .some((word) => sensitiveWords.has(word));
90
- }
91
- /**
92
- * Copies `fields` with the value of every sensitive field replaced by
93
- * `'[REDACTED]'`, at any depth, matching keys as `sanitizeForLogging` does —
94
- * fields added with `setSensitiveFields` included. The copy is what
95
- * `JSON.stringify` reads from the input (an object's `toJSON()` result, else its
96
- * own enumerable properties), so it serializes as the input would, minus the
97
- * masked values. Nothing passes through `structuredClone`, which rejects a `URL`
98
- * or a function. A reference back to an enclosing object becomes `'[Circular]'`.
99
- * The input is never modified.
100
- *
101
- * @internal Masks the `ctx.log` mirror to the client. Not part of the public API.
102
- */
103
- export function maskSensitiveFields(fields) {
104
- return maskEntries(fields, new Set([fields]));
105
- }
106
- /** Masks an object's own enumerable entries; `ancestors` holds every object enclosing them. */
107
- function maskEntries(object, ancestors) {
108
- const masked = {};
109
- for (const [key, value] of Object.entries(object)) {
110
- masked[key] = isSensitiveKey(key) ? '[REDACTED]' : maskValue(value, ancestors);
111
- }
112
- return masked;
113
- }
114
- function maskValue(value, ancestors) {
115
- const toJSON = isRecord(value) ? value.toJSON : undefined;
116
- const json = typeof toJSON === 'function' ? toJSON.call(value) : value;
117
- if (json === null || typeof json !== 'object')
118
- return json;
119
- if (ancestors.has(json))
120
- return '[Circular]';
121
- ancestors.add(json);
122
- const masked = Array.isArray(json)
123
- ? json.map((item) => maskValue(item, ancestors))
124
- : maskEntries(json, ancestors);
125
- ancestors.delete(json);
126
- return masked;
127
- }
128
60
  // Dynamically import 'path' only in Node.js environments.
129
61
  // Top-level await ensures the module is loaded before any sanitizePath call.
130
62
  let pathModule;
@@ -242,16 +174,20 @@ export class Sanitization {
242
174
  return Sanitization.instance;
243
175
  }
244
176
  /**
245
- * Extends the list of sensitive field names used by `sanitizeForLogging` and by the
246
- * masking of every `ctx.log` record mirrored to the client.
177
+ * Extends the list of sensitive field names used by `sanitizeForLogging` and by every
178
+ * log sink: the process log, `interactions.log`, the OTLP export, and the `ctx.log`
179
+ * mirror to the client.
247
180
  * New names are merged with the existing list (deduplication applied, case-insensitive).
248
- * Changes take effect immediately on subsequent calls.
181
+ * Changes take effect immediately on subsequent calls. The correlation fields a record's
182
+ * context supplies at its root (`requestId`, `sessionId`, `tenantId`, `traceId`, `spanId`,
183
+ * `timestamp`, `operation`) are never redacted in the logs; a name matching one of them
184
+ * still redacts a caller's own key of that name.
249
185
  *
250
- * @param fields - Field names to add to the sensitive list (e.g., `['myApiKey', 'session_id']`).
186
+ * @param fields - Field names to add to the sensitive list (e.g., `['myApiKey', 'accountNumber']`).
251
187
  * @returns `void`
252
188
  * @example
253
189
  * ```ts
254
- * sanitization.setSensitiveFields(['myApiKey', 'session_id']);
190
+ * sanitization.setSensitiveFields(['myApiKey', 'accountNumber']);
255
191
  * sanitization.sanitizeForLogging({ myApiKey: 'abc123' });
256
192
  * // => { myApiKey: '[REDACTED]' }
257
193
  * ```
@@ -292,7 +228,11 @@ export class Sanitization {
292
228
  * - `'*.token'` — matches `{ auth: { token: '...' } }`
293
229
  * - `'*.*.token'` — matches `{ context: { auth: { token: '...' } } }`
294
230
  *
295
- * Pass the result directly to pino's `redact.paths` option.
231
+ * Pass the result to pino's `redact.paths` option for a pino instance of your own; the
232
+ * framework's loggers redact with the key matcher instead. These paths are narrower: whole
233
+ * names only, matched case-sensitively, at three depths. A name added through
234
+ * `setSensitiveFields` is stored lowercased, so its path matches only a lowercase key
235
+ * (`myapikey`, not `myApiKey`).
296
236
  *
297
237
  * @returns Array of fast-redact-compatible path strings for use in pino's `redact.paths`.
298
238
  * @example
@@ -735,15 +675,16 @@ export class Sanitization {
735
675
  /**
736
676
  * Produces a log-safe deep clone of `input` with sensitive field values replaced by `'[REDACTED]'`.
737
677
  *
738
- * This method is **synchronous**. It uses `structuredClone` for deep cloning. Sensitive field
739
- * detection combines two strategies:
740
- * - **Exact match**: the normalized key (lowercased, non-alphanumeric stripped) matches a
741
- * sensitive field name.
742
- * - **Word match**: splitting the key by camelCase/snake_case/kebab-case tokens and checking
743
- * each token against the sensitive word set.
678
+ * This method is **synchronous**. It uses `structuredClone` for deep cloning. A key is
679
+ * sensitive when some run of its adjacent words, joined, equals a sensitive field name with
680
+ * case and separators ignored. Words are split at every character other than a letter or
681
+ * digit, at a lowercase letter followed by a capital, at the end of a run of capitals, and
682
+ * around each run of digits: `apiKey`, `API_KEY`, `APIKey`, `x-api-key`, `accessToken`,
683
+ * `upstream_private_key`, and `apiKey2` are all sensitive, while `max_tokens`, `MAX_TOKENS`,
684
+ * and `tokenizer` are not. Every log sink matches keys the same way.
744
685
  *
745
686
  * Non-object/non-array inputs (primitives, `null`) are returned as-is without cloning.
746
- * If `structuredClone` itself throws (e.g., circular reference, uncloneable type), the method
687
+ * If `structuredClone` itself throws (e.g., a function, a symbol, or a getter that throws), the method
747
688
  * returns the string `'[Log Sanitization Failed]'` and emits an error log rather than throwing.
748
689
  *
749
690
  * @param input - The value to sanitize. Non-objects are returned unchanged.
@@ -786,8 +727,8 @@ export class Sanitization {
786
727
  * the result is always well-formed. It is a prefix of the whole serialization,
787
728
  * so a truncated payload is no longer valid JSON; `truncated` says so.
788
729
  *
789
- * Returned as a string rather than an object because the logger drops values
790
- * nested past its sanitize depth, which would silently strip the deep parts of
730
+ * Returned as a string rather than an object because the logger writes an
731
+ * object 16 levels below the record root as `'[MaxDepth]'`, which would cut the deep parts of
791
732
  * a payload. A value `JSON.stringify` rejects (a `bigint`) yields
792
733
  * `'[Log Serialization Failed]'` rather than throwing into the caller's path.
793
734
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,IAAI,eAAgD,CAAC;AACrD,KAAK,UAAU,gBAAgB;IAC7B,eAAe,KAAK,CAClB,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE;QACvC,MAAM,kBAAkB,CACtB,yEAAyE,CAC1E,CAAC;IACJ,CAAC,CAAC,CACH,CAAC,OAAO,CAAC;IACV,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,CAAC;AAC5B,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AACrC,MAAM,aAAa,GAAG,wCAAwC,CAAC;AAC/D,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA,0DAA0D,CAAC;AAC5F,MAAM,QAAQ,GAAG,IAAI,MAAM,CACzB,MAAM,CAAC,GAAG,CAAA,OAAO,cAAc,QAAQ,cAAc,yBAAyB,EAC9E,IAAI,CACL,CAAC;AACF,MAAM,SAAS,GAAG,sBAAsB,CAAC;AAEzC;;;;;;;;GAQG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,SAA4B;IAC/D,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,cAAc,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7F,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,WAAW,EAAE,GAAG,KAAK,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAClF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,yFAAyF;IACzF,0DAA0D;IAC1D,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC,EAAE,QAAQ,KAAK,GAAG,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IACnF,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,CAAC;AAChE,CAAC;AAED,oFAAoF;AACpF,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAElD,2EAA2E;AAC3E,MAAM,cAAc,GAAG;IACrB,MAAM,EAAE,gBAAgB;IACxB,QAAQ,EAAE;QACR,IAAI,EAAE,mGAAmG;KAC1G;CACO,CAAC;AAKX,MAAM,oBAAoB,GAAwC;IAChE,YAAY,EAAE,8DAA8D;IAC5E,cAAc,EACZ,8GAA8G;IAChH,wBAAwB,EAAE,qDAAqD;CAChF,CAAC;AAEF;;;;GAIG;AACH,IAAI,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;AACpD,2EAA2E;AAC3E,IAAI,cAAc,GAAwB,IAAI,GAAG,EAAE,CAAC;AAEpD,2EAA2E;AAC3E,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAAyB;IAClD,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACpE,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AACvF,CAAC;AAED,iBAAiB,CAAC,wBAAwB,CAAC,CAAC;AAE5C;;;;GAIG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACxD,OAAO,GAAG;SACP,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC;SAC1B,WAAW,EAAE;SACb,KAAK,CAAC,SAAS,CAAC;SAChB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAA+B;IACjE,OAAO,WAAW,CAAC,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,+FAA+F;AAC/F,SAAS,WAAW,CAAC,MAAc,EAAE,SAAsB;IACzD,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,KAAc,EAAE,SAAsB;IACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1D,MAAM,IAAI,GAAY,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAChF,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC;QAAE,OAAO,YAAY,CAAC;IAC7C,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACzD,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,0DAA0D;AAC1D,6EAA6E;AAC7E,IAAI,UAAkD,CAAC;AACvD,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,UAAU,GAAG,CAAC,MAAM,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC;IACnD,CAAC;IAAC,MAAM,CAAC;QACP,+EAA+E;IACjF,CAAC;AACH,CAAC;AAuFD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,YAAY;IACvB,eAAe;IACP,MAAM,CAAC,QAAQ,CAAe;IAE9B,eAAe,GAAa,CAAC,GAAG,wBAAwB,CAAC,CAAC;IAElE;;;OAGG;IACK,yBAAyB,GAAuB;QACtD,WAAW,EAAE;YACX,iCAAiC;YACjC,KAAK;YACL,MAAM;YACN,GAAG;YACH,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,QAAQ;YACR,KAAK;YACL,SAAS;YACT,SAAS;YACT,OAAO;YACP,kCAAkC;YAClC,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,QAAQ;YACR,IAAI;YACJ,GAAG;YACH,GAAG;YACH,QAAQ;YACR,YAAY;YACZ,eAAe;YACf,MAAM;YACN,KAAK;YACL,gBAAgB;YAChB,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,iBAAiB;YACjB,OAAO;YACP,OAAO;YACP,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,wBAAwB;YACxB,GAAG;YACH,KAAK;YACL,QAAQ;YACR,YAAY;SACb;QACD,iBAAiB,EAAE;YACjB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC;YAC7C,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC;YAC1D,oDAAoD;YACpD,4EAA4E;YAC5E,+EAA+E;YAC/E,0EAA0E;YAC1E,oEAAoE;YACpE,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC;YAC9B,4BAA4B;YAC5B,EAAE,EAAE,CAAC,OAAO,CAAC;YACb,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;SAC3B;QACD,gBAAgB,EAAE,IAAI;QACtB,yEAAyE;KAC1E,CAAC;IAEF,eAAe;IACf,gBAAuB,CAAC;IAExB;;;;;;;;;OASG;IACI,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,YAAY,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7C,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC;IAC/B,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACI,kBAAkB,CAAC,MAAgB;QACxC,IAAI,CAAC,eAAe,GAAG;YACrB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;SAC7E,CAAC;QACF,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,qBAAqB,CAAC,oBAAoB,CAAC;YAC5D,SAAS,EAAE,iCAAiC;YAC5C,iBAAiB,EAAE;gBACjB,sBAAsB,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM;aACpD;SACF,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,oDAAoD,EAAE,UAAU,CAAC,CAAC;IACjF,CAAC;IAED;;;;;;;;;;OAUG;IACI,kBAAkB;QACvB,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,sBAAsB;QAC3B,OAAO,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACI,KAAK,CAAC,YAAY,CAAC,KAAa,EAAE,MAA2B;QAClE,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QACtB,MAAM,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAEhD,gEAAgE;QAChE,MAAM,oBAAoB,GAAG,MAAM,EAAE,aAAa;YAChD,IAAI,CAAC,yBAAyB,CAAC,aAAa,IAAI;YAC9C,CAAC,EAAE,cAAc,CAAC,eAAe,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC;SACvE,CAAC;QAEJ,MAAM,eAAe,GAAG;YACtB,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC,yBAAyB,CAAC,WAAW;YAC9E,iBAAiB,EACf,MAAM,EAAE,iBAAiB,IAAI,IAAI,CAAC,yBAAyB,CAAC,iBAAiB;YAC/E,aAAa,EAAE,oBAAoB;YACnC,gBAAgB,EAAE,MAAM,EAAE,gBAAgB,IAAI,IAAI,CAAC,yBAAyB,CAAC,gBAAgB;SAC9F,CAAC;QAEF,MAAM,OAAO,GAA0B;YACrC,WAAW,EAAE,eAAe,CAAC,WAAW;YACxC,iBAAiB,EAAE,eAAe,CAAC,iBAAiB;YACpD,aAAa,EAAE,eAAe,CAAC,aAAa;SAC7C,CAAC;QAEF,IAAI,eAAe,CAAC,gBAAgB,EAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/E,OAAO,CAAC,WAAW,GAAG,CAAC,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,KAAK,CAAC,cAAc,CAAC,KAAa,EAAE,OAAO,GAA0B,EAAE;QAC5E,IAAI,CAAC,KAAK;YAAE,OAAO,EAAE,CAAC;QAEtB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC;QAE1C,QAAQ,OAAO,EAAE,CAAC;YAChB,KAAK,MAAM,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAuB,EAAE,CAAC;gBACtC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;oBACxB,MAAM,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC3C,CAAC;gBACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;oBAC9B,MAAM,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;gBACvD,CAAC;gBACD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAChD,CAAC;YACD,KAAK,WAAW,EAAE,CAAC;gBACjB,MAAM,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAChD,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC;YACD,KAAK,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC;oBAC5C,MAAM,CAAC,OAAO,CACZ,4EAA4E,EAC5E,qBAAqB,CAAC,oBAAoB,CAAC;wBACzC,SAAS,EAAE,wCAAwC;wBACnD,iBAAiB,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE;qBAChD,CAAC,CACH,CAAC;oBACF,OAAO,EAAE,CAAC;gBACZ,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;YACD,KAAK,YAAY;gBACf,MAAM,CAAC,KAAK,CACV,4EAA4E,EAC5E,qBAAqB,CAAC,oBAAoB,CAAC;oBACzC,SAAS,EAAE,uCAAuC;oBAClD,iBAAiB,EAAE,EAAE,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE;iBAC5D,CAAC,CACH,CAAC;gBACF,MAAM,eAAe,CACnB,wFAAwF,EACxF,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAC3C,CAAC;YACJ,SAAS,CAAC;gBACR,MAAM,cAAc,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAChD,OAAO,cAAc,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,iBAAiB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,WAAW,CAChB,KAAa,EACb,gBAAgB,GAAa,CAAC,MAAM,EAAE,OAAO,CAAC;QAE9C,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAE,CAAC;oBAClD,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;gBACzE,CAAC;gBACD,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;gBACnD,IACE,eAAe,CAAC,UAAU,CAAC,aAAa,CAAC;oBACzC,eAAe,CAAC,UAAU,CAAC,OAAO,CAAC;oBACnC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,EACvC,CAAC;oBACD,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAC;gBAC3F,CAAC;gBACD,OAAO,YAAY,CAAC;YACtB,CAAC;YAAC,OAAO,KAAc,EAAE,CAAC;gBACxB,MAAM,eAAe,CACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAC1E;oBACE,KAAK;oBACL,MAAM,EAAE,aAAa;oBACrB,QAAQ,EAAE;wBACR,IAAI,EAAE,wGAAwG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;qBAC7I;iBACF,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACI,YAAY,CAAC,KAAa,EAAE,OAAO,GAAwB,EAAE;QAClE,IAAI,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,IAAI,QAAQ,CAChB,gBAAgB,CAAC,aAAa,EAC9B,oEAAoE,CACrE,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC;QAExB,MAAM,aAAa,GAAG,KAAK,CAAC;QAC5B,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACpF,MAAM,gBAAgB,GAAwB;YAC5C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,KAAK;YAC7C,GAAG,CAAC,eAAe,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC;SACrD,CAAC;QAEF,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,MAA2B,EAAY,EAAE,CAC5E,eAAe,CAAC,OAAO,EAAE;YACvB,KAAK,EAAE,aAAa;YACpB,MAAM;YACN,QAAQ,EAAE,EAAE,IAAI,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE;SACjD,CAAC,CAAC;QAEL,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBACrC,MAAM,UAAU,CAAC,iDAAiD,EAAE,cAAc,CAAC,CAAC;YACtF,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtB,MAAM,UAAU,CAAC,+CAA+C,EAAE,cAAc,CAAC,CAAC;YAEpF,IAAI,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YAEnD,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7B,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,kBAA0B,CAAC;YAE/B,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;gBAC3D,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,KAAK,eAAe,EAAE,CAAC;oBACrF,MAAM,UAAU,CACd,yEAAyE,EACzE,gBAAgB,CACjB,CAAC;gBACJ,CAAC;gBACD,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;gBAC9D,kBAAkB,GAAG,kBAAkB,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC;gBAC1E,IAAI,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;oBAC3E,MAAM,UAAU,CACd,4EAA4E,EAC5E,gBAAgB,CACjB,CAAC;gBACJ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAChC,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,CAAC;wBACpC,MAAM,UAAU,CACd,mDAAmD,EACnD,0BAA0B,CAC3B,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,kBAAkB,GAAG,UAAU,CAAC;oBAClC,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBACpD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC5C,IACE,CAAC,kBAAkB,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC;wBAC5D,kBAAkB,KAAK,iBAAiB,EACxC,CAAC;wBACD,MAAM,UAAU,CACd,+EAA+E,EAC/E,gBAAgB,CACjB,CAAC;oBACJ,CAAC;oBACD,kBAAkB,GAAG,UAAU,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,OAAO;gBACL,aAAa,EAAE,kBAAkB;gBACjC,aAAa;gBACb,WAAW,EAAE,oBAAoB;gBACjC,mBAAmB,EACjB,oBAAoB;oBACpB,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC;oBACpC,CAAC,gBAAgB,CAAC,aAAa;gBACjC,WAAW,EAAE,gBAAgB;aAC9B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,CAAC,OAAO,CACZ,yBAAyB,EACzB,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,iCAAiC;gBAC5C,iBAAiB,EAAE;oBACjB,iBAAiB,EAAE,aAAa;oBAChC,eAAe,EAAE,gBAAgB;oBACjC,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACrE;aACF,CAAC,CACH,CAAC;YACF,IAAI,KAAK,YAAY,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAC3C,MAAM,UAAU,CACd,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,kCAAkC,EAC3E,cAAc,CACf,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACI,YAAY,CAAc,KAAa,EAAE,OAAgB;QAC9D,IAAI,CAAC;YACH,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAEzF,4CAA4C;YAC5C,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE;gBACzC,IAAI,WAAW,CAAC,SAAS,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;oBACrE,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;gBACtC,CAAC;gBACD,IAAI,WAAW,CAAC,cAAc,EAAE,CAAC;oBAC/B,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC5C,CAAC;gBACD,OAAO,CAAC,CAAC,MAAM,CAAC;YAClB,CAAC,CAAC;YAEF,IAAI,OAAO,KAAK,SAAS,IAAI,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,CAAC;gBAC3D,MAAM,eAAe,CAAC,+CAA+C,OAAO,SAAS,EAAE;oBACrF,UAAU,EAAE,YAAY,CAAC,KAAK,CAAC;oBAC/B,OAAO;oBACP,MAAM,EAAE,gBAAgB;oBACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,kCAAkC,OAAO,SAAS,EAAE;iBACvE,CAAC,CAAC;YACL,CAAC;YAED,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAM,CAAC;QAChC,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,QAAQ;gBAAE,MAAM,KAAK,CAAC;YAC3C,MAAM,eAAe,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,sBAAsB,EAAE;gBACrF,YAAY,EAAE,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;gBAC1E,MAAM,EAAE,cAAc;gBACtB,QAAQ,EAAE,EAAE,IAAI,EAAE,8CAA8C,EAAE;aACnE,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,cAAc,CAAC,KAAsB,EAAE,GAAY,EAAE,GAAY;QACtE,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YACtB,IAAI,KAAa,CAAC;YAClB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;gBAClC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;oBACvC,MAAM,eAAe,CAAC,uDAAuD,EAAE;wBAC7E,KAAK;wBACL,GAAG,cAAc;qBAClB,CAAC,CAAC;gBACL,CAAC;gBACD,KAAK,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC;iBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBACrC,KAAK,GAAG,KAAK,CAAC;YAChB,CAAC;iBAAM,CAAC;gBACN,MAAM,eAAe,CAAC,gDAAgD,EAAE;oBACtE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBACpB,GAAG,cAAc;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,eAAe,CAAC,yCAAyC,EAAE;oBAC/D,KAAK;oBACL,GAAG,cAAc;iBAClB,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,mBAAmB,GAAG,KAAK,CAAC;YAClC,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBACrC,KAAK,GAAG,GAAG,CAAC;gBACZ,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;gBACrC,KAAK,GAAG,GAAG,CAAC;gBACZ,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;YACD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,CAAC,KAAK,CACV,0BAA0B,EAC1B,qBAAqB,CAAC,oBAAoB,CAAC;oBACzC,SAAS,EAAE,qCAAqC;oBAChD,iBAAiB,EAAE;wBACjB,aAAa,EAAE,MAAM,CAAC,KAAK,CAAC;wBAC5B,WAAW,EAAE,mBAAmB;wBAChC,QAAQ,EAAE,GAAG;wBACb,QAAQ,EAAE,GAAG;wBACb,YAAY,EAAE,KAAK;qBACpB;iBACF,CAAC,CACH,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACI,kBAAkB,CAAC,KAAc;QACtC,IAAI,CAAC;YACH,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAEtD,MAAM,WAAW,GAAY,eAAe,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YACxC,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,CAAC,KAAK,CACV,uDAAuD,EACvD,qBAAqB,CAAC,oBAAoB,CAAC;gBACzC,SAAS,EAAE,uCAAuC;gBAClD,iBAAiB,EAAE;oBACjB,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBACrE;aACF,CAAC,CACH,CAAC;YACF,OAAO,2BAA2B,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACI,mBAAmB,CACxB,KAAc,EACd,QAAgB;QAEhB,IAAI,IAAY,CAAC;QACjB,IAAI,CAAC;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,WAAW,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAClE,CAAC;QACD,6EAA6E;QAC7E,wEAAwE;QACxE,2EAA2E;QAC3E,gEAAgE;QAChE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,MAAM,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3F,IAAI,KAAK,GAAG,KAAK,GAAG,QAAQ;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACjF,KAAK,IAAI,KAAK,CAAC;YACf,IAAI,KAAK,KAAK,CAAC;gBAAE,CAAC,EAAE,CAAC;QACvB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,GAAY;QACxC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;YAAE,OAAO;QAE5C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,GAAG;gBAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACzD,OAAO;QACT,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO;QAE3B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;gBACvB,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;oBACxB,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;gBAC1B,CAAC;qBAAM,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9C,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;AAEvD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,KAAc,EAAW,EAAE,CACjE,YAAY,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../../src/utils/security/sanitization.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,42 @@
1
1
  /**
2
- * @fileoverview The field names treated as secrets by log redaction and log
3
- * sanitization. A leaf module so the logger (which cannot import
4
- * `sanitization` without a cycle) and `Sanitization` share one list.
2
+ * @fileoverview The field names treated as secrets, and the one key matcher
3
+ * every log sink redacts with: the log-data walk behind the process log,
4
+ * `interactions.log`, and the OTLP export; the `ctx.log` client mirror; and
5
+ * `sanitizeForLogging`. A leaf module, so the logger (which cannot import
6
+ * `sanitization` without a cycle) and `Sanitization` share one list and one matcher.
5
7
  * @module src/utils/security/sensitiveFields
6
8
  */
7
- /** Field names redacted from logs by default (matched case-insensitively). */
9
+ /**
10
+ * Field names redacted from logs by default — matched case- and
11
+ * separator-insensitively against every run of adjacent words in a key
12
+ * ({@link isSensitiveKey}).
13
+ */
8
14
  export declare const DEFAULT_SENSITIVE_FIELDS: readonly string[];
9
15
  /**
10
16
  * Expands field names into pino `redact.paths` patterns at three depths:
11
17
  * `token`, `*.token`, and `*.*.token`.
12
18
  */
13
19
  export declare function toPinoRedactPaths(fields: readonly string[]): string[];
20
+ /**
21
+ * Replaces the names {@link isSensitiveKey} matches. `Sanitization.setSensitiveFields`
22
+ * passes its merged list, so an added name reaches every log sink at once.
23
+ *
24
+ * @internal Called by `Sanitization`. Not part of the public API.
25
+ */
26
+ export declare function setSensitiveNames(fields: readonly string[]): void;
27
+ /**
28
+ * Whether `key` names a sensitive field: some run of its adjacent words,
29
+ * joined, equals a sensitive name. A key splits into words, lowercased, at
30
+ * every character other than a letter or digit, at a lowercase letter followed
31
+ * by a capital (`apiKey`), at the end of a run of capitals (`HTTPSecret`), and
32
+ * around each run of digits (`apiKey2`) — so `apiKey`, `API_KEY`, `APIKey`, and
33
+ * `x-api-key` all hold the run `apikey`, `accessToken` and
34
+ * `upstream_private_key` hold `token` and `privatekey`, and `cvv2` holds `cvv`.
35
+ * A word that only contains a name is not a match, whatever its case:
36
+ * `max_tokens`, `MAX_TOKENS`, `tokenizer`, `PASSWORDLESS`. Runs no longer than
37
+ * the longest name are tried, so the scan is linear in the key's length.
38
+ *
39
+ * @internal The matcher behind log redaction and log sanitization. Not part of the public API.
40
+ */
41
+ export declare function isSensitiveKey(key: string): boolean;
14
42
  //# sourceMappingURL=sensitiveFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sensitiveFields.d.ts","sourceRoot":"","sources":["../../../src/utils/security/sensitiveFields.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8EAA8E;AAC9E,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAerD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAErE"}
1
+ {"version":3,"file":"sensitiveFields.d.ts","sourceRoot":"","sources":["../../../src/utils/security/sensitiveFields.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAerD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAErE;AAmBD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,IAAI,CAIjE;AA2BD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CASnD"}
@@ -1,10 +1,16 @@
1
1
  /**
2
- * @fileoverview The field names treated as secrets by log redaction and log
3
- * sanitization. A leaf module so the logger (which cannot import
4
- * `sanitization` without a cycle) and `Sanitization` share one list.
2
+ * @fileoverview The field names treated as secrets, and the one key matcher
3
+ * every log sink redacts with: the log-data walk behind the process log,
4
+ * `interactions.log`, and the OTLP export; the `ctx.log` client mirror; and
5
+ * `sanitizeForLogging`. A leaf module, so the logger (which cannot import
6
+ * `sanitization` without a cycle) and `Sanitization` share one list and one matcher.
5
7
  * @module src/utils/security/sensitiveFields
6
8
  */
7
- /** Field names redacted from logs by default (matched case-insensitively). */
9
+ /**
10
+ * Field names redacted from logs by default — matched case- and
11
+ * separator-insensitively against every run of adjacent words in a key
12
+ * ({@link isSensitiveKey}).
13
+ */
8
14
  export const DEFAULT_SENSITIVE_FIELDS = [
9
15
  'password',
10
16
  'token',
@@ -28,4 +34,79 @@ export const DEFAULT_SENSITIVE_FIELDS = [
28
34
  export function toPinoRedactPaths(fields) {
29
35
  return fields.flatMap((field) => [field, `*.${field}`, `*.*.${field}`]);
30
36
  }
37
+ /** Verdicts {@link isSensitiveKey} remembers before starting over. */
38
+ const MAX_REMEMBERED_KEYS = 4_096;
39
+ /** A key longer than this is matched on every call, so the memo's memory stays bounded. */
40
+ const MAX_REMEMBERED_KEY_LENGTH = 256;
41
+ /** Each sensitive field lowercased, with every character other than a letter or digit removed. */
42
+ let sensitiveNames = new Set();
43
+ /** The longest of {@link sensitiveNames}: a longer run of words cannot equal one. */
44
+ let longestName = 0;
45
+ /** {@link isSensitiveKey} verdicts by key; cleared whenever the names change. */
46
+ const verdicts = new Map();
47
+ /** Lowercases a field name and strips every character other than a letter or digit. */
48
+ function normalizeName(name) {
49
+ return name.toLowerCase().replace(/[^a-z0-9]/g, '');
50
+ }
51
+ /**
52
+ * Replaces the names {@link isSensitiveKey} matches. `Sanitization.setSensitiveFields`
53
+ * passes its merged list, so an added name reaches every log sink at once.
54
+ *
55
+ * @internal Called by `Sanitization`. Not part of the public API.
56
+ */
57
+ export function setSensitiveNames(fields) {
58
+ sensitiveNames = new Set(fields.map(normalizeName).filter(Boolean));
59
+ longestName = Math.max(0, ...Array.from(sensitiveNames, (name) => name.length));
60
+ verdicts.clear();
61
+ }
62
+ setSensitiveNames(DEFAULT_SENSITIVE_FIELDS);
63
+ /**
64
+ * Whether some run of `key`'s adjacent words, joined, is a sensitive name. Each
65
+ * split is a fixed-width match or lookahead, so splitting is linear in the key's
66
+ * length; an acronym split written as `([A-Z]+)([A-Z][a-z])` backtracks on an
67
+ * all-caps key and is quadratic (4 s for 80,000 characters).
68
+ */
69
+ function hasSensitiveRun(key) {
70
+ const words = key
71
+ .replace(/([a-z])([A-Z])/g, '$1 $2')
72
+ .replace(/([A-Z])(?=[A-Z][a-z])/g, '$1 ')
73
+ .replace(/\d+/g, ' $& ')
74
+ .toLowerCase()
75
+ .split(/[^a-z0-9]+/);
76
+ for (let start = 0; start < words.length; start++) {
77
+ let run = '';
78
+ for (let end = start; end < words.length && run.length < longestName; end++) {
79
+ run += words[end];
80
+ if (sensitiveNames.has(run))
81
+ return true;
82
+ }
83
+ }
84
+ return false;
85
+ }
86
+ /**
87
+ * Whether `key` names a sensitive field: some run of its adjacent words,
88
+ * joined, equals a sensitive name. A key splits into words, lowercased, at
89
+ * every character other than a letter or digit, at a lowercase letter followed
90
+ * by a capital (`apiKey`), at the end of a run of capitals (`HTTPSecret`), and
91
+ * around each run of digits (`apiKey2`) — so `apiKey`, `API_KEY`, `APIKey`, and
92
+ * `x-api-key` all hold the run `apikey`, `accessToken` and
93
+ * `upstream_private_key` hold `token` and `privatekey`, and `cvv2` holds `cvv`.
94
+ * A word that only contains a name is not a match, whatever its case:
95
+ * `max_tokens`, `MAX_TOKENS`, `tokenizer`, `PASSWORDLESS`. Runs no longer than
96
+ * the longest name are tried, so the scan is linear in the key's length.
97
+ *
98
+ * @internal The matcher behind log redaction and log sanitization. Not part of the public API.
99
+ */
100
+ export function isSensitiveKey(key) {
101
+ const remembered = verdicts.get(key);
102
+ if (remembered !== undefined)
103
+ return remembered;
104
+ const verdict = hasSensitiveRun(key);
105
+ if (key.length <= MAX_REMEMBERED_KEY_LENGTH) {
106
+ if (verdicts.size >= MAX_REMEMBERED_KEYS)
107
+ verdicts.clear();
108
+ verdicts.set(key, verdict);
109
+ }
110
+ return verdict;
111
+ }
31
112
  //# sourceMappingURL=sensitiveFields.js.map