autotel 6.4.1 → 7.0.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 (166) hide show
  1. package/README.md +30 -23
  2. package/dist/{attribute-redacting-processor-Pk7lAzWd.d.cts → attribute-redacting-processor-CvBE0z1p.d.cts} +33 -1
  3. package/dist/{attribute-redacting-processor-Pk7lAzWd.d.ts → attribute-redacting-processor-CvBE0z1p.d.ts} +33 -1
  4. package/dist/attribute-redacting-processor.cjs +34 -32
  5. package/dist/attribute-redacting-processor.d.cts +1 -1
  6. package/dist/attribute-redacting-processor.d.ts +1 -1
  7. package/dist/attribute-redacting-processor.js +35 -32
  8. package/dist/{attributes-aDmJYral.cjs → attributes-Cxys8tgr.cjs} +34 -35
  9. package/dist/{attributes-B7wix2VG.js → attributes-Dt4YUYbP.js} +34 -35
  10. package/dist/attributes.cjs +1 -1
  11. package/dist/attributes.d.cts +1 -1
  12. package/dist/attributes.d.ts +1 -1
  13. package/dist/attributes.js +1 -1
  14. package/dist/auto.cjs +1 -1
  15. package/dist/auto.js +1 -1
  16. package/dist/business-baggage.cjs +19 -12
  17. package/dist/business-baggage.d.cts +8 -3
  18. package/dist/business-baggage.d.ts +8 -3
  19. package/dist/business-baggage.js +19 -12
  20. package/dist/{canonical-log-line-processor-DxtBGZIi.cjs → canonical-log-line-processor-DolzdawH.cjs} +43 -32
  21. package/dist/{canonical-log-line-processor-B4WgG-VS.d.cts → canonical-log-line-processor-cPB4Axk-.d.ts} +4 -3
  22. package/dist/{canonical-log-line-processor-B0vq_QR6.js → canonical-log-line-processor-hFUmS__K.js} +43 -32
  23. package/dist/{canonical-log-line-processor-CL_J7gb5.d.ts → canonical-log-line-processor-l0Aqe6yp.d.cts} +4 -3
  24. package/dist/config.d.cts +1 -1
  25. package/dist/config.d.ts +1 -1
  26. package/dist/{correlated-events-kSwLo3mi.cjs → correlated-events-CcuknWnU.cjs} +2 -1
  27. package/dist/{correlated-events-Bzh5y-UB.js → correlated-events-DwMMbItg.js} +3 -1
  28. package/dist/correlation-id.cjs +1 -1
  29. package/dist/correlation-id.js +1 -1
  30. package/dist/db.cjs +34 -19
  31. package/dist/db.js +34 -19
  32. package/dist/decorators.cjs +4 -2
  33. package/dist/decorators.d.cts +16 -11
  34. package/dist/decorators.d.ts +16 -11
  35. package/dist/decorators.js +4 -2
  36. package/dist/{define-event-CGG048HE.d.cts → define-event-BNeuKUPv.d.cts} +1 -1
  37. package/dist/{define-event-B2z1SBe7.d.ts → define-event-Bd8f8mST.d.ts} +1 -1
  38. package/dist/diagnostics.cjs +18 -16
  39. package/dist/diagnostics.d.cts +14 -10
  40. package/dist/diagnostics.d.ts +14 -10
  41. package/dist/diagnostics.js +18 -16
  42. package/dist/{event-subscriber-CWh8sTGh.d.cts → event-subscriber-DMACQA-1.d.cts} +19 -9
  43. package/dist/{event-subscriber-CWh8sTGh.d.ts → event-subscriber-DMACQA-1.d.ts} +19 -9
  44. package/dist/event-subscriber.d.cts +2 -2
  45. package/dist/event-subscriber.d.ts +2 -2
  46. package/dist/{event-testing-D0qWfqAy.d.cts → event-testing-CBtnJXE5.d.cts} +1 -1
  47. package/dist/{event-testing-CA2mIx1E.d.ts → event-testing-CkPgV3Ii.d.ts} +1 -1
  48. package/dist/event-testing.d.cts +1 -1
  49. package/dist/event-testing.d.ts +1 -1
  50. package/dist/event.cjs +1 -1
  51. package/dist/event.d.cts +5 -5
  52. package/dist/event.d.ts +5 -5
  53. package/dist/event.js +1 -1
  54. package/dist/exception-fingerprint.cjs +133 -0
  55. package/dist/exception-fingerprint.d.cts +51 -0
  56. package/dist/exception-fingerprint.d.ts +51 -0
  57. package/dist/exception-fingerprint.js +126 -0
  58. package/dist/{functional-AT22vCw6.d.ts → functional-CJn2zY4o.d.cts} +96 -39
  59. package/dist/{functional-e6jw5zQj.d.cts → functional-DXy1cHFF.d.ts} +96 -39
  60. package/dist/{functional-qZxRcIBp.cjs → functional-Da6Yv64r.cjs} +27 -15
  61. package/dist/{functional-0o9xSedq.js → functional-uSbNnnxK.js} +27 -15
  62. package/dist/functional.cjs +1 -1
  63. package/dist/functional.d.cts +2 -2
  64. package/dist/functional.d.ts +2 -2
  65. package/dist/functional.js +1 -1
  66. package/dist/http.cjs +11 -8
  67. package/dist/http.js +11 -8
  68. package/dist/{index-DolOVX6F.d.ts → index-CwrNAsgk.d.ts} +22 -26
  69. package/dist/{index-BPcxVucm.d.cts → index-DQHf4cNl.d.cts} +22 -26
  70. package/dist/index.cjs +41 -35
  71. package/dist/index.d.cts +45 -30
  72. package/dist/index.d.ts +45 -30
  73. package/dist/index.js +41 -35
  74. package/dist/{init-CsODvlau.d.ts → init-BgnYi2sm.d.ts} +94 -90
  75. package/dist/{init-BnxHAi2M.cjs → init-D4m5rCmD.cjs} +142 -123
  76. package/dist/{init-Cc7-vvzj.d.cts → init-DrlL1eis.d.cts} +94 -90
  77. package/dist/{init-BxfZ3Vbw.js → init-JtX-KKz_.js} +137 -124
  78. package/dist/instrumentation.cjs +2 -2
  79. package/dist/instrumentation.js +2 -2
  80. package/dist/{logger-D3Ej3DII.js → logger-DdPp__xW.js} +63 -54
  81. package/dist/{logger-CN4xpzMd.d.cts → logger-S1Fgl0g3.d.cts} +0 -20
  82. package/dist/{logger-CN4xpzMd.d.ts → logger-S1Fgl0g3.d.ts} +0 -20
  83. package/dist/{logger-thMPLpOG.cjs → logger-Sm66cjKl.cjs} +63 -54
  84. package/dist/logger.cjs +1 -1
  85. package/dist/logger.d.cts +1 -1
  86. package/dist/logger.d.ts +1 -1
  87. package/dist/logger.js +1 -1
  88. package/dist/messaging-adapters.cjs +26 -12
  89. package/dist/messaging-adapters.d.cts +0 -30
  90. package/dist/messaging-adapters.d.ts +0 -30
  91. package/dist/messaging-adapters.js +26 -12
  92. package/dist/messaging.cjs +37 -34
  93. package/dist/messaging.d.cts +21 -62
  94. package/dist/messaging.d.ts +21 -62
  95. package/dist/messaging.js +37 -34
  96. package/dist/{metric-testing-CpvP3ZIa.d.cts → metric-testing-86WO1wan.d.cts} +1 -1
  97. package/dist/{metric-testing-CWm6UhaR.d.ts → metric-testing-CbCxdPBp.d.ts} +1 -1
  98. package/dist/metric-testing.d.cts +1 -1
  99. package/dist/metric-testing.d.ts +1 -1
  100. package/dist/metric.d.cts +3 -3
  101. package/dist/metric.d.ts +3 -3
  102. package/dist/{node-require-vROmTeJ8.js → node-require-DSPjaw_l.js} +3 -2
  103. package/dist/{node-require-PFqDihze.cjs → node-require-EifOMikz.cjs} +3 -2
  104. package/dist/parse-error.cjs +18 -12
  105. package/dist/parse-error.d.cts +2 -1
  106. package/dist/parse-error.d.ts +2 -1
  107. package/dist/parse-error.js +19 -12
  108. package/dist/policy.cjs +0 -0
  109. package/dist/policy.js +0 -0
  110. package/dist/processors.cjs +1 -1
  111. package/dist/processors.d.cts +1 -1
  112. package/dist/processors.d.ts +1 -1
  113. package/dist/processors.js +1 -1
  114. package/dist/{sampling-BR9fkSwx.d.cts → sampling-CM5S2Lp3.d.ts} +5 -6
  115. package/dist/{sampling-CP3e7-Yr.d.ts → sampling-CmRdnXUi.d.cts} +5 -6
  116. package/dist/sampling.cjs +3 -2
  117. package/dist/sampling.d.cts +1 -1
  118. package/dist/sampling.d.ts +1 -1
  119. package/dist/sampling.js +3 -2
  120. package/dist/semantic-helpers.cjs +9 -9
  121. package/dist/semantic-helpers.d.cts +1 -1
  122. package/dist/semantic-helpers.d.ts +1 -1
  123. package/dist/semantic-helpers.js +9 -9
  124. package/dist/{stable-hash-ChFBIhNt.js → stable-hash-BkoAYVks.js} +4 -3
  125. package/dist/{stable-hash-CS9BxvVQ.cjs → stable-hash-C0pOegH_.cjs} +4 -3
  126. package/dist/{structured-error-CHg7DoIQ.cjs → structured-error--_wXpd_C.cjs} +34 -25
  127. package/dist/{structured-error-9--cxBay.js → structured-error-YIuka-FE.js} +34 -25
  128. package/dist/test-span-collector.cjs +15 -8
  129. package/dist/test-span-collector.js +15 -8
  130. package/dist/testing.cjs +16 -18
  131. package/dist/testing.d.cts +7 -6
  132. package/dist/testing.d.ts +7 -6
  133. package/dist/testing.js +16 -18
  134. package/dist/{trace-context-IuyoPyNq.d.cts → trace-context-C1Cn1q0y.d.cts} +8 -7
  135. package/dist/{trace-context-IuyoPyNq.d.ts → trace-context-f89xPJbK.d.ts} +8 -7
  136. package/dist/trace-helpers.cjs +16 -13
  137. package/dist/trace-helpers.d.cts +9 -4
  138. package/dist/trace-helpers.d.ts +9 -4
  139. package/dist/trace-helpers.js +16 -13
  140. package/dist/tracer-provider.cjs +8 -12
  141. package/dist/tracer-provider.js +8 -12
  142. package/dist/validate.cjs +22 -20
  143. package/dist/validate.d.cts +3 -2
  144. package/dist/validate.d.ts +3 -2
  145. package/dist/validate.js +22 -20
  146. package/dist/values-BenyvWKz.js +141 -0
  147. package/dist/values-CeMH-mYG.d.cts +8 -0
  148. package/dist/values-CeMH-mYG.d.ts +8 -0
  149. package/dist/values-DApyq53y.cjs +267 -0
  150. package/dist/webhook.cjs +3 -3
  151. package/dist/webhook.d.cts +1 -1
  152. package/dist/webhook.d.ts +1 -1
  153. package/dist/webhook.js +3 -3
  154. package/dist/workflow-distributed.cjs +9 -7
  155. package/dist/workflow-distributed.d.cts +9 -8
  156. package/dist/workflow-distributed.d.ts +9 -8
  157. package/dist/workflow-distributed.js +9 -7
  158. package/dist/workflow.cjs +26 -17
  159. package/dist/workflow.d.cts +1 -28
  160. package/dist/workflow.d.ts +1 -28
  161. package/dist/workflow.js +26 -17
  162. package/dist/yaml-config.cjs +26 -11
  163. package/dist/yaml-config.d.cts +9 -3
  164. package/dist/yaml-config.d.ts +9 -3
  165. package/dist/yaml-config.js +26 -11
  166. package/package.json +6 -1
@@ -1,5 +1,5 @@
1
- import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-IuyoPyNq.cjs";
2
- import { Span } from "@opentelemetry/api";
1
+ import { n as TraceContext, t as AttributeValue$1 } from "./trace-context-C1Cn1q0y.cjs";
2
+ import { AttributeValue, Attributes, Span } from "@opentelemetry/api";
3
3
  import { Resource } from "@opentelemetry/resources";
4
4
  //#region src/attributes/types.d.ts
5
5
  interface UserAttrs {
@@ -201,7 +201,7 @@ declare const attrs: {
201
201
  readonly roles: (value: string[]) => {
202
202
  "user.roles": string[];
203
203
  };
204
- readonly data: (data: UserAttrs) => Record<string, unknown>;
204
+ readonly data: (data: UserAttrs) => Attributes;
205
205
  };
206
206
  readonly session: {
207
207
  readonly id: (value: string) => {
@@ -210,7 +210,7 @@ declare const attrs: {
210
210
  readonly previousId: (value: string) => {
211
211
  "session.previous_id": string;
212
212
  };
213
- readonly data: (data: SessionAttrs) => Record<string, unknown>;
213
+ readonly data: (data: SessionAttrs) => Attributes;
214
214
  };
215
215
  readonly device: {
216
216
  readonly id: (value: string) => {
@@ -225,7 +225,7 @@ declare const attrs: {
225
225
  readonly modelName: (value: string) => {
226
226
  "device.model.name": string;
227
227
  };
228
- readonly data: (data: DeviceAttrs) => Record<string, unknown>;
228
+ readonly data: (data: DeviceAttrs) => Attributes;
229
229
  };
230
230
  readonly http: {
231
231
  readonly request: {
@@ -262,8 +262,8 @@ declare const attrs: {
262
262
  readonly connectionState: (value: string) => {
263
263
  "http.connection.state": string;
264
264
  };
265
- readonly server: (data: HTTPServerAttrs) => Record<string, unknown>;
266
- readonly client: (data: HTTPClientAttrs) => Record<string, unknown>;
265
+ readonly server: (data: HTTPServerAttrs) => Attributes;
266
+ readonly client: (data: HTTPClientAttrs) => Attributes;
267
267
  };
268
268
  readonly db: {
269
269
  readonly client: {
@@ -294,7 +294,7 @@ declare const attrs: {
294
294
  readonly rowsReturned: (value: number) => {
295
295
  "db.response.returned_rows": number;
296
296
  };
297
- readonly data: (data: DBAttrs) => Record<string, unknown>;
297
+ readonly data: (data: DBAttrs) => Attributes;
298
298
  };
299
299
  };
300
300
  readonly service: {
@@ -307,7 +307,7 @@ declare const attrs: {
307
307
  readonly version: (value: string) => {
308
308
  "service.version": string;
309
309
  };
310
- readonly data: (data: ServiceAttrs) => Record<string, unknown>;
310
+ readonly data: (data: ServiceAttrs) => Attributes;
311
311
  };
312
312
  readonly network: {
313
313
  readonly peerAddress: (value: string) => {
@@ -325,7 +325,7 @@ declare const attrs: {
325
325
  readonly protocolVersion: (value: string) => {
326
326
  "network.protocol.version": string;
327
327
  };
328
- readonly data: (data: NetworkAttrs) => Record<string, unknown>;
328
+ readonly data: (data: NetworkAttrs) => Attributes;
329
329
  };
330
330
  readonly server: {
331
331
  readonly address: (value: string) => {
@@ -337,7 +337,7 @@ declare const attrs: {
337
337
  readonly socketAddress: (value: string) => {
338
338
  "server.socket.address": string;
339
339
  };
340
- readonly data: (data: ServerAddressAttrs) => Record<string, unknown>;
340
+ readonly data: (data: ServerAddressAttrs) => Attributes;
341
341
  };
342
342
  readonly url: {
343
343
  readonly scheme: (value: string) => {
@@ -355,7 +355,7 @@ declare const attrs: {
355
355
  readonly fragment: (value: string) => {
356
356
  "url.fragment": string;
357
357
  };
358
- readonly data: (data: URLAttrs) => Record<string, unknown>;
358
+ readonly data: (data: URLAttrs) => Attributes;
359
359
  };
360
360
  readonly error: {
361
361
  readonly type: (value: string) => {
@@ -370,7 +370,7 @@ declare const attrs: {
370
370
  readonly code: (value: string | number) => {
371
371
  "error.code": string | number;
372
372
  };
373
- readonly data: (data: ErrorAttrs) => Record<string, unknown>;
373
+ readonly data: (data: ErrorAttrs) => Attributes;
374
374
  };
375
375
  readonly exception: {
376
376
  readonly escaped: (value: boolean) => {
@@ -388,7 +388,7 @@ declare const attrs: {
388
388
  readonly moduleName: (value: string) => {
389
389
  "exception.module": string;
390
390
  };
391
- readonly data: (data: ExceptionAttrs) => Record<string, unknown>;
391
+ readonly data: (data: ExceptionAttrs) => Attributes;
392
392
  };
393
393
  readonly process: {
394
394
  readonly pid: (value: number) => {
@@ -403,7 +403,7 @@ declare const attrs: {
403
403
  readonly owner: (value: string) => {
404
404
  "process.owner": string;
405
405
  };
406
- readonly data: (data: ProcessAttrs) => Record<string, unknown>;
406
+ readonly data: (data: ProcessAttrs) => Attributes;
407
407
  };
408
408
  readonly thread: {
409
409
  readonly id: (value: number) => {
@@ -426,7 +426,7 @@ declare const attrs: {
426
426
  readonly tag: (value: string) => {
427
427
  "container.image.tag": string;
428
428
  };
429
- readonly data: (data: ContainerAttrs) => Record<string, unknown>;
429
+ readonly data: (data: ContainerAttrs) => Attributes;
430
430
  };
431
431
  readonly k8s: {
432
432
  readonly podName: (value: string) => {
@@ -458,7 +458,7 @@ declare const attrs: {
458
458
  readonly platform: (value: string) => {
459
459
  "cloud.platform": string;
460
460
  };
461
- readonly data: (data: CloudAttrs) => Record<string, unknown>;
461
+ readonly data: (data: CloudAttrs) => Attributes;
462
462
  };
463
463
  readonly faas: {
464
464
  readonly name: (value: string) => {
@@ -504,7 +504,7 @@ declare const attrs: {
504
504
  readonly conversationId: (value: string) => {
505
505
  "messaging.conversation_id": string;
506
506
  };
507
- readonly data: (data: MessagingAttrs) => Record<string, unknown>;
507
+ readonly data: (data: MessagingAttrs) => Attributes;
508
508
  };
509
509
  readonly rpc: {
510
510
  readonly system: (value: string) => {
@@ -588,10 +588,6 @@ declare const attrs: {
588
588
  };
589
589
  //#endregion
590
590
  //#region src/attributes/validators.d.ts
591
- /**
592
- * Attribute validation, PII detection, and guardrails
593
- * Provides safe-by-default attribute handling with configurable policies
594
- */
595
591
  interface AttributeGuardrails {
596
592
  /** How to handle PII in attributes */
597
593
  pii?: 'allow' | 'redact' | 'hash' | 'block';
@@ -609,9 +605,9 @@ interface AttributePolicy {
609
605
  /** Custom deprecation warnings for specific attributes */
610
606
  deprecatedWarnings?: Record<string, string>;
611
607
  }
612
- declare function validateAttribute(key: string, value: unknown, policy?: AttributePolicy): unknown;
608
+ declare function validateAttribute(key: string, value: AttributeValue | undefined, policy?: AttributePolicy): AttributeValue | undefined;
613
609
  declare function checkDeprecatedAttribute(key: string, policy?: AttributePolicy): string | null;
614
- declare function autoRedactPII(attributes: Record<string, unknown>, policy?: AttributePolicy): Record<string, unknown>;
610
+ declare function autoRedactPII(attributes: Attributes, policy?: AttributePolicy): Attributes;
615
611
  declare function defaultGuardrails(): AttributeGuardrails;
616
612
  //#endregion
617
613
  //#region src/attributes/attachers.d.ts
@@ -670,7 +666,7 @@ declare function transaction(spanOrContext: TraceContext, config: {
670
666
  type AttributeSetter = {
671
667
  setAttributes: (attrs: Record<string, AttributeValue$1>) => void;
672
668
  };
673
- declare function mergeAttrs(...attrSets: Array<Record<string, unknown> | undefined>): Record<string, unknown>;
674
- declare function safeSetAttributes(span: AttributeSetter, attrs: Record<string, unknown>, policy?: AttributePolicy): void;
669
+ declare function mergeAttrs(...attrSets: Array<Attributes | undefined>): Attributes;
670
+ declare function safeSetAttributes(span: AttributeSetter, attrs: Attributes, policy?: AttributePolicy): void;
675
671
  //#endregion
676
672
  export { ExceptionAttrs as A, PeerAttrs as B, CloudAttrs as C, DeploymentAttrs as D, DBAttrs as E, HTTPServerAttrs as F, SessionAttrs as G, RPCAttrs as H, K8sAttrs as I, URLAttrs as J, TLSAttrs as K, MessagingAttrs as L, FeatureFlagAttrs as M, GraphQLAttrs as N, DeviceAttrs as O, HTTPClientAttrs as P, NetworkAttrs as R, ClientAttrs as S, ContainerAttrs as T, ServerAddressAttrs as U, ProcessAttrs as V, ServiceAttrs as W, UserAttrs as Y, autoRedactPII as _, httpClient as a, validateAttribute as b, mergeServiceResource as c, setError as d, setException as f, AttributePolicy as g, AttributeGuardrails as h, dbClient as i, FaaSAttrs as j, ErrorAttrs as k, request as l, setUser as m, safeSetAttributes as n, httpServer as o, setSession as p, ThreadAttrs as q, transaction as r, identify as s, mergeAttrs as t, setDevice as u, checkDeprecatedAttribute as v, CodeAttrs as w, attrs as x, defaultGuardrails as y, OTelAttrs as z };
package/dist/index.cjs CHANGED
@@ -1,25 +1,26 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
  const require_rolldown_runtime = require('./rolldown-runtime-C_NdSu1c.cjs');
3
+ const require_values = require('./values-DApyq53y.cjs');
3
4
  const require_tracer_provider = require('./tracer-provider.cjs');
4
5
  const require_sampling = require('./sampling.cjs');
5
- const require_init = require('./init-BnxHAi2M.cjs');
6
+ const require_init = require('./init-D4m5rCmD.cjs');
6
7
  const require_filtering_span_processor = require('./filtering-span-processor.cjs');
7
8
  const require_span_name_normalizer = require('./span-name-normalizer.cjs');
8
9
  const require_attribute_redacting_processor = require('./attribute-redacting-processor.cjs');
9
- const require_canonical_log_line_processor = require('./canonical-log-line-processor-DxtBGZIi.cjs');
10
- const require_structured_error = require('./structured-error-CHg7DoIQ.cjs');
10
+ const require_canonical_log_line_processor = require('./canonical-log-line-processor-DolzdawH.cjs');
11
+ const require_structured_error = require('./structured-error--_wXpd_C.cjs');
11
12
  const require_metric = require('./metric.cjs');
12
13
  const require_trace_helpers = require('./trace-helpers.cjs');
13
- const require_functional = require('./functional-qZxRcIBp.cjs');
14
- const require_stable_hash = require('./stable-hash-CS9BxvVQ.cjs');
15
- const require_correlated_events = require('./correlated-events-kSwLo3mi.cjs');
14
+ const require_functional = require('./functional-Da6Yv64r.cjs');
15
+ const require_stable_hash = require('./stable-hash-C0pOegH_.cjs');
16
+ const require_correlated_events = require('./correlated-events-CcuknWnU.cjs');
16
17
  const require_parse_error = require('./parse-error.cjs');
17
18
  const require_drain_pipeline = require('./drain-pipeline.cjs');
18
19
  const require_metric_helpers = require('./metric-helpers.cjs');
19
20
  const require_semantic_helpers = require('./semantic-helpers.cjs');
20
21
  const require_registry = require('./registry-DYgvb62e.cjs');
21
22
  const require_semantic_conventions = require('./semantic-conventions.cjs');
22
- const require_attributes = require('./attributes-aDmJYral.cjs');
23
+ const require_attributes = require('./attributes-Cxys8tgr.cjs');
23
24
  const require_messaging = require('./messaging.cjs');
24
25
  const require_business_baggage = require('./business-baggage.cjs');
25
26
  const require_workflow = require('./workflow.cjs');
@@ -86,7 +87,9 @@ function mergeInto$1(target, source) {
86
87
  const sourceVal = source[key];
87
88
  if (sourceVal === void 0) continue;
88
89
  const targetVal = target[key];
89
- if (sourceVal !== null && typeof sourceVal === "object" && !Array.isArray(sourceVal) && targetVal !== null && typeof targetVal === "object" && !Array.isArray(targetVal)) mergeInto$1(targetVal, sourceVal);
90
+ const sourceRecord = require_values.asRecord(sourceVal);
91
+ const targetRecord = require_values.asRecord(targetVal);
92
+ if (sourceRecord && targetRecord) mergeInto$1(targetRecord, sourceRecord);
90
93
  else if (Array.isArray(targetVal) && Array.isArray(sourceVal)) target[key] = [...targetVal, ...sourceVal];
91
94
  else target[key] = sourceVal;
92
95
  }
@@ -157,7 +160,7 @@ function getRequestLogger(ctx, options) {
157
160
  const keys = fields ? [...Object.keys(fields), "error"] : ["error"];
158
161
  sealCheck("log.error()", keys);
159
162
  if (emitted) return;
160
- const err = typeof error === "string" ? new Error(error) : error;
163
+ const err = require_values.toError(error);
161
164
  require_structured_error.recordStructuredError(activeContext, err);
162
165
  addLogEvent("error", err.message, fields);
163
166
  if (fields) {
@@ -196,8 +199,8 @@ function getRequestLogger(ctx, options) {
196
199
  return snapshot;
197
200
  },
198
201
  fork(label, fn, forkOptions) {
199
- const parentRequestId = activeContext.correlationId;
200
- if (typeof parentRequestId !== "string" || parentRequestId.length === 0) throw new Error("[autotel] log.fork() requires the parent logger to have a correlationId. Ensure the request was created by autotel middleware.");
202
+ const parentRequestId = require_values.nonEmptyString(activeContext.correlationId);
203
+ if (parentRequestId === void 0) throw new Error("[autotel] log.fork() requires the parent logger to have a correlationId. Ensure the request was created by autotel middleware.");
201
204
  const tracer = _opentelemetry_api.trace.getTracer("autotel.request-logger");
202
205
  const lifecycle = forkOptions?.lifecycle;
203
206
  tracer.startActiveSpan(`request.fork:${label}`, (childSpan) => {
@@ -215,8 +218,7 @@ function getRequestLogger(ctx, options) {
215
218
  Promise.resolve().then(() => fn()).then(() => {
216
219
  childLog.emitNow();
217
220
  }).catch((error_) => {
218
- const error = error_ instanceof Error ? error_ : new Error(String(error_));
219
- childLog.error(error);
221
+ childLog.error(require_values.toError(error_));
220
222
  childLog.emitNow();
221
223
  }).finally(() => {
222
224
  try {
@@ -319,8 +321,9 @@ function createNoopRequestLogger() {
319
321
  */
320
322
  const catalogCodeKey = Symbol.for("autotel.catalog.code");
321
323
  function readCatalogCode(error) {
322
- if (error === null || typeof error !== "object") return void 0;
323
- return error[catalogCodeKey];
324
+ if (!require_values.asRecord(error)) return void 0;
325
+ const stored = error[catalogCodeKey];
326
+ return require_values.asString(stored) ?? require_values.asNumber(stored);
324
327
  }
325
328
  /** True when `error` was produced by any autotel error catalog. */
326
329
  function isCatalogError(error) {
@@ -339,23 +342,25 @@ function defineErrorCatalog(namespace, entries) {
339
342
  const catalog = {};
340
343
  for (const [key, entry] of Object.entries(entries)) {
341
344
  const code = entry.code ?? `${namespace}.${key}`;
342
- const usesParams = typeof entry.message === "function" || typeof entry.why === "function";
345
+ const messageFor = require_values.asFunction(entry.message);
346
+ const whyFor = require_values.asFunction(entry.why);
347
+ const usesParams = Boolean(messageFor || whyFor);
343
348
  const builder = ((paramsOrOptions, maybeOptions) => {
344
349
  const params = usesParams ? paramsOrOptions : void 0;
345
350
  const options = usesParams ? maybeOptions : paramsOrOptions;
346
- const message = typeof entry.message === "function" ? entry.message(params) : entry.message;
347
- const why = typeof entry.why === "function" ? entry.why(params) : entry.why;
351
+ const message = messageFor ? String(messageFor(params)) : require_values.asString(entry.message) ?? "";
352
+ const why = whyFor ? String(whyFor(params)) : require_values.asString(entry.why);
348
353
  const error = require_structured_error.createStructuredError({
349
354
  message,
350
355
  name: entry.name ?? key,
351
356
  code,
352
- ...entry.status === void 0 ? {} : { status: entry.status },
353
- ...why === void 0 ? {} : { why },
354
- ...entry.fix === void 0 ? {} : { fix: entry.fix },
355
- ...entry.link === void 0 ? {} : { link: entry.link },
356
- ...options?.cause === void 0 ? {} : { cause: options.cause },
357
- ...options?.details === void 0 ? {} : { details: options.details },
358
- ...options?.internal === void 0 ? {} : { internal: options.internal }
357
+ status: entry.status,
358
+ why,
359
+ fix: entry.fix,
360
+ link: entry.link,
361
+ cause: options?.cause,
362
+ details: options?.details,
363
+ internal: options?.internal
359
364
  });
360
365
  Object.defineProperty(error, catalogCodeKey, {
361
366
  value: code,
@@ -386,12 +391,13 @@ function defineAuditCatalog(namespace, entries) {
386
391
  for (const [key, entry] of Object.entries(entries)) {
387
392
  const action = entry.action ?? `${namespace}.${key}`;
388
393
  const severity = entry.severity ?? "info";
394
+ const auditMessageFor = require_values.asFunction(entry.message);
389
395
  const descriptor = ((params) => {
390
- const message = typeof entry.message === "function" ? entry.message(params) : entry.message;
396
+ const message = auditMessageFor ? String(auditMessageFor(params)) : require_values.asString(entry.message);
391
397
  return Object.freeze({
392
398
  action,
393
399
  severity,
394
- ...message === void 0 ? {} : { message }
400
+ message
395
401
  });
396
402
  });
397
403
  Object.defineProperty(descriptor, "action", {
@@ -479,15 +485,13 @@ function defineHttpDrain(options) {
479
485
 
480
486
  //#endregion
481
487
  //#region src/enricher-toolkit.ts
482
- function isPlainObject(value) {
483
- return value !== null && typeof value === "object" && !Array.isArray(value);
484
- }
485
488
  function mergeInto(target, source) {
486
489
  for (const key in source) {
487
490
  const sourceVal = source[key];
488
491
  if (sourceVal === void 0) continue;
489
- const targetVal = target[key];
490
- if (isPlainObject(sourceVal) && isPlainObject(targetVal)) mergeInto(targetVal, sourceVal);
492
+ const sourceRecord = require_values.asRecord(sourceVal);
493
+ const targetRecord = require_values.asRecord(target[key]);
494
+ if (sourceRecord && targetRecord) mergeInto(targetRecord, sourceRecord);
491
495
  else target[key] = sourceVal;
492
496
  }
493
497
  }
@@ -501,11 +505,13 @@ function defineEnricher(def, options = {}) {
501
505
  return;
502
506
  }
503
507
  if (!computed) return;
504
- if (options.overwrite || !isPlainObject(ctx.event[def.field])) {
505
- ctx.event[def.field] = computed;
508
+ const event = ctx.event;
509
+ const existing = require_values.asRecord(event[def.field]);
510
+ if (options.overwrite || !existing) {
511
+ event[def.field] = computed;
506
512
  return;
507
513
  }
508
- mergeInto(ctx.event[def.field], computed);
514
+ mergeInto(existing, computed);
509
515
  };
510
516
  }
511
517
 
package/dist/index.d.cts CHANGED
@@ -1,18 +1,19 @@
1
- import { a as AttributeRedactorPreset, c as REDACTOR_PATTERNS, d as builtinPatterns, f as createAttributeRedactor, i as AttributeRedactorFn, l as REDACTOR_PRESETS, m as normalizeAttributeRedactorConfig, n as AttributeRedactingProcessorOptions, o as BuiltinPatternName, p as createRedactedSpan, r as AttributeRedactorConfig, s as MaskFn, t as AttributeRedactingProcessor, u as ValuePatternConfig } from "./attribute-redacting-processor-Pk7lAzWd.cjs";
2
- import { A as ExceptionAttrs, B as PeerAttrs, C as CloudAttrs, D as DeploymentAttrs, E as DBAttrs, F as HTTPServerAttrs, G as SessionAttrs, H as RPCAttrs, I as K8sAttrs, J as URLAttrs, K as TLSAttrs, L as MessagingAttrs, M as FeatureFlagAttrs, N as GraphQLAttrs, O as DeviceAttrs, P as HTTPClientAttrs, R as NetworkAttrs, S as ClientAttrs, T as ContainerAttrs, U as ServerAddressAttrs, V as ProcessAttrs, W as ServiceAttrs, Y as UserAttrs, _ as autoRedactPII, a as httpClient, b as validateAttribute, c as mergeServiceResource, d as setError, f as setException, g as AttributePolicy, h as AttributeGuardrails, i as dbClient, j as FaaSAttrs, k as ErrorAttrs, l as request, m as setUser, n as safeSetAttributes, o as httpServer, p as setSession, q as ThreadAttrs, s as identify, t as mergeAttrs, u as setDevice, w as CodeAttrs, x as attrs, z as OTelAttrs } from "./index-BPcxVucm.cjs";
3
- import { n as TraceContext$1, r as defineBaggageSchema, t as AttributeValue$2 } from "./trace-context-IuyoPyNq.cjs";
1
+ import { a as AttributeRedactorPreset, c as REDACTOR_PATTERNS, d as builtinPatterns, f as createAttributeRedactor, i as AttributeRedactorFn, l as REDACTOR_PRESETS, m as normalizeAttributeRedactorConfig, n as AttributeRedactingProcessorOptions, o as BuiltinPatternName, p as createRedactedSpan, r as AttributeRedactorConfig, s as MaskFn, t as AttributeRedactingProcessor, u as ValuePatternConfig } from "./attribute-redacting-processor-CvBE0z1p.cjs";
2
+ import { A as ExceptionAttrs, B as PeerAttrs, C as CloudAttrs, D as DeploymentAttrs, E as DBAttrs, F as HTTPServerAttrs, G as SessionAttrs, H as RPCAttrs, I as K8sAttrs, J as URLAttrs, K as TLSAttrs, L as MessagingAttrs, M as FeatureFlagAttrs, N as GraphQLAttrs, O as DeviceAttrs, P as HTTPClientAttrs, R as NetworkAttrs, S as ClientAttrs, T as ContainerAttrs, U as ServerAddressAttrs, V as ProcessAttrs, W as ServiceAttrs, Y as UserAttrs, _ as autoRedactPII, a as httpClient, b as validateAttribute, c as mergeServiceResource, d as setError, f as setException, g as AttributePolicy, h as AttributeGuardrails, i as dbClient, j as FaaSAttrs, k as ErrorAttrs, l as request, m as setUser, n as safeSetAttributes, o as httpServer, p as setSession, q as ThreadAttrs, s as identify, t as mergeAttrs, u as setDevice, w as CodeAttrs, x as attrs, z as OTelAttrs } from "./index-DQHf4cNl.cjs";
3
+ import { t as UnknownRecord } from "./values-CeMH-mYG.cjs";
4
+ import { n as TraceContext$1, r as defineBaggageSchema, t as AttributeValue$2 } from "./trace-context-C1Cn1q0y.cjs";
4
5
  import { BaggageError, BaggageFieldDefinition, BaggageFieldType, BusinessBaggage, BusinessBaggageValues, SafeBaggageOptions, SafeBaggageSchema, createSafeBaggageSchema } from "./business-baggage.cjs";
5
6
  import { CORRELATION_ID_BAGGAGE_KEY, generateCorrelationId, getCorrelationId, getOrCreateCorrelationId, runWithCorrelationId, setCorrelationId, setCorrelationIdInBaggage } from "./correlation-id.cjs";
6
- import { _ as createLinkFromHeaders, a as AlwaysSampler, b as resolveSamplingPreset, f as RandomSampler, g as UserIdSampler, h as SamplingPreset, i as AdaptiveSampler, m as SamplingContext, n as AUTOTEL_SAMPLING_TAIL_EVALUATED, p as Sampler, r as AUTOTEL_SAMPLING_TAIL_KEEP, u as NeverSampler, v as extractLinksFromBatch, x as samplingPresets } from "./sampling-BR9fkSwx.cjs";
7
- import { a as getActiveTraceContext, c as trace$2, d as withTracing, f as InstrumentOptions, i as ctx, l as withBaggage, n as WithBaggageOptions, o as instrument, p as SingleInstrumentOptions, r as WithNewContextOptions, s as span, t as SpanOptions, u as withNewContext } from "./functional-e6jw5zQj.cjs";
7
+ import { _ as createLinkFromHeaders, a as AlwaysSampler, b as resolveSamplingPreset, f as RandomSampler, g as UserIdSampler, h as SamplingPreset, i as AdaptiveSampler, m as SamplingContext, n as AUTOTEL_SAMPLING_TAIL_EVALUATED, p as Sampler, r as AUTOTEL_SAMPLING_TAIL_KEEP, u as NeverSampler, v as extractLinksFromBatch, x as samplingPresets } from "./sampling-CmRdnXUi.cjs";
8
+ import { a as getActiveTraceContext, c as trace$2, d as withTracing, f as InstrumentOptions, i as ctx, l as withBaggage, n as WithBaggageOptions, o as instrument, p as SingleInstrumentOptions, r as WithNewContextOptions, s as span, t as SpanOptions, u as withNewContext } from "./functional-CJn2zY4o.cjs";
8
9
  import { DrainPipelineOptions, PipelineDrainFn, createDrainPipeline } from "./drain-pipeline.cjs";
9
- import { a as EventSubscriber, c as OutcomeStatus, i as EventSchemaMetadata, n as EventAttributes, o as EventTrackingOptions, s as FunnelStatus, t as AutotelEventContext } from "./event-subscriber-CWh8sTGh.cjs";
10
+ import { a as EventSchemaMetadata, c as FunnelStatus, l as OutcomeStatus, n as EventAttributeValue, o as EventSubscriber, r as EventAttributes, s as EventTrackingOptions, t as AutotelEventContext } from "./event-subscriber-DMACQA-1.cjs";
10
11
  import { Event, EventsOptions, getEvents, resetEvents } from "./event.cjs";
11
12
  import { n as FilteringSpanProcessorOptions, r as SpanFilterPredicate, t as FilteringSpanProcessor } from "./filtering-span-processor-BpDagWNa.cjs";
12
- import { a as AutotelConfig, c as StringRedactor, i as lockLogger, l as createStringRedactor, n as isInitialized, r as isLoggerLocked, s as ProcessHandlersConfig, t as init } from "./init-Cc7-vvzj.cjs";
13
+ import { a as AutotelConfig, c as StringRedactor, i as lockLogger, l as createStringRedactor, n as isInitialized, r as isLoggerLocked, s as ProcessHandlersConfig, t as init } from "./init-DrlL1eis.cjs";
13
14
  import { a as SpanNameNormalizerPreset, i as SpanNameNormalizerFn, n as NORMALIZER_PRESETS, o as SpanNameNormalizingProcessor, r as SpanNameNormalizerConfig, s as SpanNameNormalizingProcessorOptions, t as NORMALIZER_PATTERNS } from "./span-name-normalizer-CN1-8C76.cjs";
14
- import "./canonical-log-line-processor-B4WgG-VS.cjs";
15
- import { i as defineEvent, n as DefinedEvent, r as SchemaLike, t as DefineEventOptions } from "./define-event-CGG048HE.cjs";
15
+ import "./canonical-log-line-processor-l0Aqe6yp.cjs";
16
+ import { i as defineEvent, n as DefinedEvent, r as SchemaLike, t as DefineEventOptions } from "./define-event-BNeuKUPv.cjs";
16
17
  import { ParsedError, parseError } from "./parse-error.cjs";
17
18
  import { Metric, MetricsOptions, getMetrics, resetMetrics } from "./metric.cjs";
18
19
  import { createCounter, createHistogram, createObservableGauge, createUpDownCounter, getMeter } from "./metric-helpers.cjs";
@@ -390,14 +391,14 @@ declare function shutdown(): Promise<void>;
390
391
  //#region src/request-logger.d.ts
391
392
  declare function runWithRequestContext<T>(ctx: TraceContext$1, fn: () => T): T;
392
393
  interface RequestLogger {
393
- set(fields: Record<string, unknown>): void;
394
+ set(fields: UnknownRecord): void;
394
395
  /** Set snapshot severity without adding a log event or exception. */
395
396
  setLevel(level: RequestLogLevel): void;
396
- info(message: string, fields?: Record<string, unknown>): void;
397
- warn(message: string, fields?: Record<string, unknown>): void;
398
- error(error: Error | string, fields?: Record<string, unknown>): void;
399
- getContext(): Record<string, unknown>;
400
- emitNow(overrides?: Record<string, unknown>): RequestLogSnapshot;
397
+ info(message: string, fields?: UnknownRecord): void;
398
+ warn(message: string, fields?: UnknownRecord): void;
399
+ error(error: Error | string, fields?: UnknownRecord): void;
400
+ getContext(): UnknownRecord;
401
+ emitNow(overrides?: UnknownRecord): RequestLogSnapshot;
401
402
  fork(label: string, fn: () => void | Promise<void>, options?: ForkOptions): void;
402
403
  }
403
404
  type RequestLogLevel = 'debug' | 'info' | 'warn' | 'error';
@@ -406,7 +407,7 @@ interface RequestLogSnapshot {
406
407
  traceId: string;
407
408
  spanId: string;
408
409
  correlationId: string;
409
- context: Record<string, unknown>;
410
+ context: UnknownRecord;
410
411
  }
411
412
  interface RequestLoggerOptions {
412
413
  /** Callback invoked by emitNow() for manual fan-out. */
@@ -457,10 +458,10 @@ interface StructuredErrorInput {
457
458
  code?: string | number;
458
459
  status?: number;
459
460
  cause?: unknown;
460
- details?: Record<string, unknown>;
461
+ details?: UnknownRecord;
461
462
  name?: string;
462
463
  /** Backend-only context. Omitted from toJSON() and never serialized to clients. */
463
- internal?: Record<string, unknown>;
464
+ internal?: UnknownRecord;
464
465
  }
465
466
  interface StructuredError extends Error {
466
467
  why?: string;
@@ -468,16 +469,24 @@ interface StructuredError extends Error {
468
469
  link?: string;
469
470
  code?: string | number;
470
471
  status?: number;
471
- details?: Record<string, unknown>;
472
+ details?: UnknownRecord;
472
473
  /** Backend-only context. Omitted from toJSON() and never serialized to clients. */
473
- readonly internal?: Record<string, unknown>;
474
+ readonly internal?: UnknownRecord;
474
475
  }
475
476
  declare function createStructuredError(input: StructuredErrorInput): StructuredError;
476
- declare function structuredErrorToJSON(error: StructuredError): Record<string, unknown>;
477
- declare function getStructuredErrorAttributes(error: Error): Record<string, AttributeValue$2>;
477
+ declare function structuredErrorToJSON(error: StructuredError): UnknownRecord;
478
+ /** The `error.*` attributes a failure contributes to a span. */
479
+ type ErrorAttributes = Record<string, AttributeValue$2>;
480
+ declare function getStructuredErrorAttributes(error: Error): ErrorAttributes;
478
481
  declare function recordStructuredError(ctx: Pick<TraceContext$1, 'setAttributes' | 'setStatus'>, error: Error): void;
479
482
  //#endregion
480
483
  //#region src/error-catalog.d.ts
484
+ /**
485
+ * Structured fields attached to a log line or an error. They are serialized by
486
+ * whatever sink receives them, so a value that cannot survive JSON has no
487
+ * meaning here - which is what EventAttributeValue names.
488
+ */
489
+ type LogFields = Record<string, EventAttributeValue>;
481
490
  /** Definition of a single error in a catalog. */
482
491
  interface ErrorCatalogEntry {
483
492
  /**
@@ -501,9 +510,9 @@ interface ErrorCatalogEntry {
501
510
  /** Per-call options passed alongside (or instead of) typed params. */
502
511
  interface ErrorBuildOptions {
503
512
  cause?: unknown;
504
- details?: Record<string, unknown>;
513
+ details?: LogFields;
505
514
  /** Backend-only context. Never serialized to clients. */
506
- internal?: Record<string, unknown>;
515
+ internal?: LogFields;
507
516
  }
508
517
  type ParamsOf<E> = E extends {
509
518
  message: (params: infer P) => string;
@@ -563,15 +572,21 @@ declare function defineAuditCatalog<const T extends Record<string, AuditCatalogE
563
572
  //#endregion
564
573
  //#region src/flatten-attributes.d.ts
565
574
  /**
566
- * Convert an unknown value to an OTel-compatible AttributeValue.
567
- * Returns undefined when the value cannot be represented.
575
+ * Convert a value that arrived from outside to an OTel-compatible
576
+ * AttributeValue. Returns undefined when the value cannot be represented -
577
+ * which is how flattenToAttributes below learns it has an object to descend
578
+ * into rather than a leaf to record.
568
579
  */
569
580
  declare function toAttributeValue(value: unknown): AttributeValue$2 | undefined;
581
+ /** A flat, dot-notation attribute bag: what a nested object flattens to. */
582
+ interface FlatAttributes {
583
+ [key: string]: AttributeValue$2;
584
+ }
570
585
  /**
571
586
  * Recursively flatten a nested object into dot-notation OTel attributes.
572
587
  * Includes circular reference protection via WeakSet.
573
588
  */
574
- declare function flattenToAttributes(fields: Record<string, unknown>, prefix?: string): Record<string, AttributeValue$2>;
589
+ declare function flattenToAttributes(fields: UnknownRecord, prefix?: string): FlatAttributes;
575
590
  //#endregion
576
591
  //#region src/drain-toolkit.d.ts
577
592
  interface DrainOptions<TContext, TConfig, TPayload = TContext> {
@@ -600,7 +615,7 @@ declare function defineDrain<TContext, TConfig, TPayload = TContext>(options: Dr
600
615
  declare function defineHttpDrain<TContext, TConfig, TPayload = TContext>(options: HttpDrainOptions<TContext, TConfig, TPayload>): (ctx: TContext | TContext[]) => Promise<void>;
601
616
  //#endregion
602
617
  //#region src/enricher-toolkit.d.ts
603
- interface EnrichContext<TEvent extends Record<string, unknown>> {
618
+ interface EnrichContext<TEvent extends UnknownRecord> {
604
619
  event: TEvent;
605
620
  request?: {
606
621
  method?: string;
@@ -612,7 +627,7 @@ interface EnrichContext<TEvent extends Record<string, unknown>> {
612
627
  };
613
628
  headers?: Record<string, string>;
614
629
  }
615
- interface EnricherDefinition<TEvent extends Record<string, unknown>, TValue extends object> {
630
+ interface EnricherDefinition<TEvent extends UnknownRecord, TValue extends object> {
616
631
  /** Stable identifier used in error logs. */
617
632
  name: string;
618
633
  /** Top-level field to merge computed values into. */
@@ -624,7 +639,7 @@ interface EnricherOptions {
624
639
  /** Replace existing field value instead of merge. Default false. */
625
640
  overwrite?: boolean;
626
641
  }
627
- declare function defineEnricher<TEvent extends Record<string, unknown>, TValue extends object>(def: EnricherDefinition<TEvent, TValue>, options?: EnricherOptions): (ctx: EnrichContext<TEvent>) => void;
642
+ declare function defineEnricher<TEvent extends UnknownRecord, TValue extends object>(def: EnricherDefinition<TEvent, TValue>, options?: EnricherOptions): (ctx: EnrichContext<TEvent>) => void;
628
643
  //#endregion
629
644
  //#region src/pretty-log-formatter.d.ts
630
645
  /**