@probemap/shared 0.1.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 (129) hide show
  1. package/dist/api/collector.d.ts +535 -0
  2. package/dist/api/collector.d.ts.map +1 -0
  3. package/dist/api/collector.js +234 -0
  4. package/dist/api/collector.js.map +1 -0
  5. package/dist/api/live.d.ts +245 -0
  6. package/dist/api/live.d.ts.map +1 -0
  7. package/dist/api/live.js +32 -0
  8. package/dist/api/live.js.map +1 -0
  9. package/dist/change-debug/api.d.ts +215 -0
  10. package/dist/change-debug/api.d.ts.map +1 -0
  11. package/dist/change-debug/api.js +32 -0
  12. package/dist/change-debug/api.js.map +1 -0
  13. package/dist/change-debug/artifact.d.ts +49 -0
  14. package/dist/change-debug/artifact.d.ts.map +1 -0
  15. package/dist/change-debug/artifact.js +11 -0
  16. package/dist/change-debug/artifact.js.map +1 -0
  17. package/dist/change-debug/capture.d.ts +413 -0
  18. package/dist/change-debug/capture.d.ts.map +1 -0
  19. package/dist/change-debug/capture.js +92 -0
  20. package/dist/change-debug/capture.js.map +1 -0
  21. package/dist/change-debug/common.d.ts +23 -0
  22. package/dist/change-debug/common.d.ts.map +1 -0
  23. package/dist/change-debug/common.js +34 -0
  24. package/dist/change-debug/common.js.map +1 -0
  25. package/dist/change-debug/execution.d.ts +163 -0
  26. package/dist/change-debug/execution.d.ts.map +1 -0
  27. package/dist/change-debug/execution.js +56 -0
  28. package/dist/change-debug/execution.js.map +1 -0
  29. package/dist/change-debug/experiment.d.ts +482 -0
  30. package/dist/change-debug/experiment.d.ts.map +1 -0
  31. package/dist/change-debug/experiment.js +71 -0
  32. package/dist/change-debug/experiment.js.map +1 -0
  33. package/dist/change-debug/runner.d.ts +187 -0
  34. package/dist/change-debug/runner.d.ts.map +1 -0
  35. package/dist/change-debug/runner.js +77 -0
  36. package/dist/change-debug/runner.js.map +1 -0
  37. package/dist/contracts/flow-contract.d.ts +91 -0
  38. package/dist/contracts/flow-contract.d.ts.map +1 -0
  39. package/dist/contracts/flow-contract.js +121 -0
  40. package/dist/contracts/flow-contract.js.map +1 -0
  41. package/dist/diagnosis/claim.d.ts +28 -0
  42. package/dist/diagnosis/claim.d.ts.map +1 -0
  43. package/dist/diagnosis/claim.js +29 -0
  44. package/dist/diagnosis/claim.js.map +1 -0
  45. package/dist/diagnosis/engine.d.ts +22 -0
  46. package/dist/diagnosis/engine.d.ts.map +1 -0
  47. package/dist/diagnosis/engine.js +179 -0
  48. package/dist/diagnosis/engine.js.map +1 -0
  49. package/dist/diagnosis/reproduction-capsule.d.ts +35 -0
  50. package/dist/diagnosis/reproduction-capsule.d.ts.map +1 -0
  51. package/dist/diagnosis/reproduction-capsule.js +42 -0
  52. package/dist/diagnosis/reproduction-capsule.js.map +1 -0
  53. package/dist/diagnosis/result.d.ts +126 -0
  54. package/dist/diagnosis/result.d.ts.map +1 -0
  55. package/dist/diagnosis/result.js +31 -0
  56. package/dist/diagnosis/result.js.map +1 -0
  57. package/dist/diagnosis/verification.d.ts +35 -0
  58. package/dist/diagnosis/verification.d.ts.map +1 -0
  59. package/dist/diagnosis/verification.js +87 -0
  60. package/dist/diagnosis/verification.js.map +1 -0
  61. package/dist/evaluators/builtins.d.ts +20 -0
  62. package/dist/evaluators/builtins.d.ts.map +1 -0
  63. package/dist/evaluators/builtins.js +152 -0
  64. package/dist/evaluators/builtins.js.map +1 -0
  65. package/dist/index.d.ts +28 -0
  66. package/dist/index.d.ts.map +1 -0
  67. package/dist/index.js +28 -0
  68. package/dist/index.js.map +1 -0
  69. package/dist/integration/conformance.d.ts +84 -0
  70. package/dist/integration/conformance.d.ts.map +1 -0
  71. package/dist/integration/conformance.js +25 -0
  72. package/dist/integration/conformance.js.map +1 -0
  73. package/dist/integration/profile.d.ts +1294 -0
  74. package/dist/integration/profile.d.ts.map +1 -0
  75. package/dist/integration/profile.js +246 -0
  76. package/dist/integration/profile.js.map +1 -0
  77. package/dist/onboarding/auth.d.ts +67 -0
  78. package/dist/onboarding/auth.d.ts.map +1 -0
  79. package/dist/onboarding/auth.js +52 -0
  80. package/dist/onboarding/auth.js.map +1 -0
  81. package/dist/onboarding/contracts.d.ts +535 -0
  82. package/dist/onboarding/contracts.d.ts.map +1 -0
  83. package/dist/onboarding/contracts.js +234 -0
  84. package/dist/onboarding/contracts.js.map +1 -0
  85. package/dist/onboarding/failure.d.ts +102 -0
  86. package/dist/onboarding/failure.d.ts.map +1 -0
  87. package/dist/onboarding/failure.js +57 -0
  88. package/dist/onboarding/failure.js.map +1 -0
  89. package/dist/onboarding/index.d.ts +5 -0
  90. package/dist/onboarding/index.d.ts.map +1 -0
  91. package/dist/onboarding/index.js +5 -0
  92. package/dist/onboarding/index.js.map +1 -0
  93. package/dist/onboarding/state-machine.d.ts +5 -0
  94. package/dist/onboarding/state-machine.d.ts.map +1 -0
  95. package/dist/onboarding/state-machine.js +27 -0
  96. package/dist/onboarding/state-machine.js.map +1 -0
  97. package/dist/protocol/causal-edge.d.ts +30 -0
  98. package/dist/protocol/causal-edge.d.ts.map +1 -0
  99. package/dist/protocol/causal-edge.js +21 -0
  100. package/dist/protocol/causal-edge.js.map +1 -0
  101. package/dist/protocol/event-batch.d.ts +102 -0
  102. package/dist/protocol/event-batch.d.ts.map +1 -0
  103. package/dist/protocol/event-batch.js +45 -0
  104. package/dist/protocol/event-batch.js.map +1 -0
  105. package/dist/protocol/event.d.ts +253 -0
  106. package/dist/protocol/event.d.ts.map +1 -0
  107. package/dist/protocol/event.js +93 -0
  108. package/dist/protocol/event.js.map +1 -0
  109. package/dist/protocol/file-hint.d.ts +24 -0
  110. package/dist/protocol/file-hint.d.ts.map +1 -0
  111. package/dist/protocol/file-hint.js +17 -0
  112. package/dist/protocol/file-hint.js.map +1 -0
  113. package/dist/protocol/trace-context.d.ts +21 -0
  114. package/dist/protocol/trace-context.d.ts.map +1 -0
  115. package/dist/protocol/trace-context.js +59 -0
  116. package/dist/protocol/trace-context.js.map +1 -0
  117. package/dist/protocol/version.d.ts +11 -0
  118. package/dist/protocol/version.d.ts.map +1 -0
  119. package/dist/protocol/version.js +28 -0
  120. package/dist/protocol/version.js.map +1 -0
  121. package/dist/security/auth.d.ts +120 -0
  122. package/dist/security/auth.d.ts.map +1 -0
  123. package/dist/security/auth.js +80 -0
  124. package/dist/security/auth.js.map +1 -0
  125. package/dist/serialization/safe-snapshot.d.ts +2 -0
  126. package/dist/serialization/safe-snapshot.d.ts.map +1 -0
  127. package/dist/serialization/safe-snapshot.js +67 -0
  128. package/dist/serialization/safe-snapshot.js.map +1 -0
  129. package/package.json +25 -0
@@ -0,0 +1,102 @@
1
+ import { z } from "zod";
2
+ export declare const eventBatchSchema: z.ZodObject<{
3
+ projectId: z.ZodUUID;
4
+ sessionId: z.ZodUUID;
5
+ events: z.ZodArray<z.ZodObject<{
6
+ id: z.ZodUUID;
7
+ protocolVersion: z.ZodString;
8
+ sdkVersion: z.ZodString;
9
+ payloadSchemaId: z.ZodOptional<z.ZodString>;
10
+ projectId: z.ZodUUID;
11
+ sessionId: z.ZodUUID;
12
+ flowId: z.ZodOptional<z.ZodUUID>;
13
+ flowContractVersionId: z.ZodOptional<z.ZodUUID>;
14
+ probeDefinitionId: z.ZodOptional<z.ZodUUID>;
15
+ traceId: z.ZodString;
16
+ spanId: z.ZodString;
17
+ parentSpanId: z.ZodOptional<z.ZodString>;
18
+ linkedSpanIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
19
+ runtimeId: z.ZodString;
20
+ processId: z.ZodOptional<z.ZodString>;
21
+ threadId: z.ZodOptional<z.ZodString>;
22
+ clientSequence: z.ZodNumber;
23
+ clientTimestamp: z.ZodISODateTime;
24
+ monotonicTime: z.ZodNumber;
25
+ serverReceivedAt: z.ZodOptional<z.ZodISODateTime>;
26
+ type: z.ZodEnum<{
27
+ "action.click": "action.click";
28
+ "action.double_click": "action.double_click";
29
+ "action.drag_end": "action.drag_end";
30
+ "action.drag_move": "action.drag_move";
31
+ "action.drag_start": "action.drag_start";
32
+ "action.drop": "action.drop";
33
+ "action.input": "action.input";
34
+ "action.keypress": "action.keypress";
35
+ "action.navigation": "action.navigation";
36
+ "bug.recorded": "bug.recorded";
37
+ "console.error": "console.error";
38
+ "console.log": "console.log";
39
+ "console.warn": "console.warn";
40
+ "diagnosis.created": "diagnosis.created";
41
+ "flow.end": "flow.end";
42
+ "flow.start": "flow.start";
43
+ "git.snapshot": "git.snapshot";
44
+ "network.error": "network.error";
45
+ "network.request": "network.request";
46
+ "network.response": "network.response";
47
+ "performance.long_task": "performance.long_task";
48
+ "probe.assert": "probe.assert";
49
+ "probe.observe": "probe.observe";
50
+ "probe.step": "probe.step";
51
+ "runtime.exception": "runtime.exception";
52
+ "session.end": "session.end";
53
+ "session.start": "session.start";
54
+ "state.snapshot": "state.snapshot";
55
+ "verification.created": "verification.created";
56
+ "visual.snapshot": "visual.snapshot";
57
+ }>;
58
+ source: z.ZodEnum<{
59
+ adapter: "adapter";
60
+ "browser-sdk": "browser-sdk";
61
+ cli: "cli";
62
+ collector: "collector";
63
+ mcp: "mcp";
64
+ "node-sdk": "node-sdk";
65
+ }>;
66
+ status: z.ZodOptional<z.ZodEnum<{
67
+ fail: "fail";
68
+ not_reached: "not_reached";
69
+ pass: "pass";
70
+ skipped: "skipped";
71
+ unknown: "unknown";
72
+ warn: "warn";
73
+ }>>;
74
+ name: z.ZodOptional<z.ZodString>;
75
+ message: z.ZodOptional<z.ZodString>;
76
+ payload: z.ZodOptional<z.ZodUnknown>;
77
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
78
+ relatedObjectIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
79
+ stackTrace: z.ZodOptional<z.ZodString>;
80
+ fileHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
81
+ path: z.ZodString;
82
+ reason: z.ZodString;
83
+ confidence: z.ZodNumber;
84
+ source: z.ZodEnum<{
85
+ discovery: "discovery";
86
+ git: "git";
87
+ heuristic: "heuristic";
88
+ probe: "probe";
89
+ stack: "stack";
90
+ }>;
91
+ line: z.ZodOptional<z.ZodNumber>;
92
+ column: z.ZodOptional<z.ZodNumber>;
93
+ }, z.core.$strict>>>;
94
+ privacyLevel: z.ZodEnum<{
95
+ redacted: "redacted";
96
+ safe: "safe";
97
+ sensitive: "sensitive";
98
+ }>;
99
+ }, z.core.$strict>>;
100
+ }, z.core.$strict>;
101
+ export type EventBatch = z.infer<typeof eventBatchSchema>;
102
+ //# sourceMappingURL=event-batch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-batch.d.ts","sourceRoot":"","sources":["../../src/protocol/event-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8CzB,CAAC;AAEL,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { z } from "zod";
2
+ import { probeMapEventSchema } from "./event.js";
3
+ export const eventBatchSchema = z
4
+ .strictObject({
5
+ projectId: z.uuid(),
6
+ sessionId: z.uuid(),
7
+ events: z.array(probeMapEventSchema).min(1).max(1_000),
8
+ })
9
+ .superRefine((batch, context) => {
10
+ const eventIds = new Set();
11
+ const sequences = new Set();
12
+ batch.events.forEach((event, index) => {
13
+ if (event.projectId !== batch.projectId) {
14
+ context.addIssue({
15
+ code: "custom",
16
+ path: ["events", index, "projectId"],
17
+ message: "Event projectId must match its batch projectId.",
18
+ });
19
+ }
20
+ if (event.sessionId !== batch.sessionId) {
21
+ context.addIssue({
22
+ code: "custom",
23
+ path: ["events", index, "sessionId"],
24
+ message: "Event sessionId must match its batch sessionId.",
25
+ });
26
+ }
27
+ if (eventIds.has(event.id)) {
28
+ context.addIssue({
29
+ code: "custom",
30
+ path: ["events", index, "id"],
31
+ message: "Event IDs must be unique inside a batch.",
32
+ });
33
+ }
34
+ if (sequences.has(event.clientSequence)) {
35
+ context.addIssue({
36
+ code: "custom",
37
+ path: ["events", index, "clientSequence"],
38
+ message: "Client sequences must be unique inside a batch.",
39
+ });
40
+ }
41
+ eventIds.add(event.id);
42
+ sequences.add(event.clientSequence);
43
+ });
44
+ });
45
+ //# sourceMappingURL=event-batch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-batch.js","sourceRoot":"","sources":["../../src/protocol/event-batch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,YAAY,CAAC;IACZ,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;CACvD,CAAC;KACD,WAAW,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACpC,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC;gBACpC,OAAO,EAAE,iDAAiD;aAC3D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS,EAAE,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC;gBACpC,OAAO,EAAE,iDAAiD;aAC3D,CAAC,CAAC;QACL,CAAC;QAED,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC;gBAC7B,OAAO,EAAE,0CAA0C;aACpD,CAAC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;YACxC,OAAO,CAAC,QAAQ,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,gBAAgB,CAAC;gBACzC,OAAO,EAAE,iDAAiD;aAC3D,CAAC,CAAC;QACL,CAAC;QAED,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,253 @@
1
+ import { z } from "zod";
2
+ export declare const probeStatuses: readonly ["pass", "warn", "fail", "skipped", "not_reached", "unknown"];
3
+ export declare const probeStatusSchema: z.ZodEnum<{
4
+ fail: "fail";
5
+ not_reached: "not_reached";
6
+ pass: "pass";
7
+ skipped: "skipped";
8
+ unknown: "unknown";
9
+ warn: "warn";
10
+ }>;
11
+ export declare const probeMapEventTypes: readonly ["session.start", "session.end", "flow.start", "flow.end", "action.click", "action.double_click", "action.drag_start", "action.drag_move", "action.drag_end", "action.drop", "action.input", "action.keypress", "action.navigation", "state.snapshot", "probe.step", "probe.observe", "probe.assert", "network.request", "network.response", "network.error", "console.log", "console.warn", "console.error", "runtime.exception", "performance.long_task", "visual.snapshot", "git.snapshot", "bug.recorded", "diagnosis.created", "verification.created"];
12
+ export declare const probeMapEventTypeSchema: z.ZodEnum<{
13
+ "action.click": "action.click";
14
+ "action.double_click": "action.double_click";
15
+ "action.drag_end": "action.drag_end";
16
+ "action.drag_move": "action.drag_move";
17
+ "action.drag_start": "action.drag_start";
18
+ "action.drop": "action.drop";
19
+ "action.input": "action.input";
20
+ "action.keypress": "action.keypress";
21
+ "action.navigation": "action.navigation";
22
+ "bug.recorded": "bug.recorded";
23
+ "console.error": "console.error";
24
+ "console.log": "console.log";
25
+ "console.warn": "console.warn";
26
+ "diagnosis.created": "diagnosis.created";
27
+ "flow.end": "flow.end";
28
+ "flow.start": "flow.start";
29
+ "git.snapshot": "git.snapshot";
30
+ "network.error": "network.error";
31
+ "network.request": "network.request";
32
+ "network.response": "network.response";
33
+ "performance.long_task": "performance.long_task";
34
+ "probe.assert": "probe.assert";
35
+ "probe.observe": "probe.observe";
36
+ "probe.step": "probe.step";
37
+ "runtime.exception": "runtime.exception";
38
+ "session.end": "session.end";
39
+ "session.start": "session.start";
40
+ "state.snapshot": "state.snapshot";
41
+ "verification.created": "verification.created";
42
+ "visual.snapshot": "visual.snapshot";
43
+ }>;
44
+ export declare const eventSourceSchema: z.ZodEnum<{
45
+ adapter: "adapter";
46
+ "browser-sdk": "browser-sdk";
47
+ cli: "cli";
48
+ collector: "collector";
49
+ mcp: "mcp";
50
+ "node-sdk": "node-sdk";
51
+ }>;
52
+ export declare const privacyLevelSchema: z.ZodEnum<{
53
+ redacted: "redacted";
54
+ safe: "safe";
55
+ sensitive: "sensitive";
56
+ }>;
57
+ export declare const protocolVersionSchema: z.ZodString;
58
+ export declare const probeMapEventSchema: z.ZodObject<{
59
+ id: z.ZodUUID;
60
+ protocolVersion: z.ZodString;
61
+ sdkVersion: z.ZodString;
62
+ payloadSchemaId: z.ZodOptional<z.ZodString>;
63
+ projectId: z.ZodUUID;
64
+ sessionId: z.ZodUUID;
65
+ flowId: z.ZodOptional<z.ZodUUID>;
66
+ flowContractVersionId: z.ZodOptional<z.ZodUUID>;
67
+ probeDefinitionId: z.ZodOptional<z.ZodUUID>;
68
+ traceId: z.ZodString;
69
+ spanId: z.ZodString;
70
+ parentSpanId: z.ZodOptional<z.ZodString>;
71
+ linkedSpanIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
72
+ runtimeId: z.ZodString;
73
+ processId: z.ZodOptional<z.ZodString>;
74
+ threadId: z.ZodOptional<z.ZodString>;
75
+ clientSequence: z.ZodNumber;
76
+ clientTimestamp: z.ZodISODateTime;
77
+ monotonicTime: z.ZodNumber;
78
+ serverReceivedAt: z.ZodOptional<z.ZodISODateTime>;
79
+ type: z.ZodEnum<{
80
+ "action.click": "action.click";
81
+ "action.double_click": "action.double_click";
82
+ "action.drag_end": "action.drag_end";
83
+ "action.drag_move": "action.drag_move";
84
+ "action.drag_start": "action.drag_start";
85
+ "action.drop": "action.drop";
86
+ "action.input": "action.input";
87
+ "action.keypress": "action.keypress";
88
+ "action.navigation": "action.navigation";
89
+ "bug.recorded": "bug.recorded";
90
+ "console.error": "console.error";
91
+ "console.log": "console.log";
92
+ "console.warn": "console.warn";
93
+ "diagnosis.created": "diagnosis.created";
94
+ "flow.end": "flow.end";
95
+ "flow.start": "flow.start";
96
+ "git.snapshot": "git.snapshot";
97
+ "network.error": "network.error";
98
+ "network.request": "network.request";
99
+ "network.response": "network.response";
100
+ "performance.long_task": "performance.long_task";
101
+ "probe.assert": "probe.assert";
102
+ "probe.observe": "probe.observe";
103
+ "probe.step": "probe.step";
104
+ "runtime.exception": "runtime.exception";
105
+ "session.end": "session.end";
106
+ "session.start": "session.start";
107
+ "state.snapshot": "state.snapshot";
108
+ "verification.created": "verification.created";
109
+ "visual.snapshot": "visual.snapshot";
110
+ }>;
111
+ source: z.ZodEnum<{
112
+ adapter: "adapter";
113
+ "browser-sdk": "browser-sdk";
114
+ cli: "cli";
115
+ collector: "collector";
116
+ mcp: "mcp";
117
+ "node-sdk": "node-sdk";
118
+ }>;
119
+ status: z.ZodOptional<z.ZodEnum<{
120
+ fail: "fail";
121
+ not_reached: "not_reached";
122
+ pass: "pass";
123
+ skipped: "skipped";
124
+ unknown: "unknown";
125
+ warn: "warn";
126
+ }>>;
127
+ name: z.ZodOptional<z.ZodString>;
128
+ message: z.ZodOptional<z.ZodString>;
129
+ payload: z.ZodOptional<z.ZodUnknown>;
130
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
131
+ relatedObjectIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
132
+ stackTrace: z.ZodOptional<z.ZodString>;
133
+ fileHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
134
+ path: z.ZodString;
135
+ reason: z.ZodString;
136
+ confidence: z.ZodNumber;
137
+ source: z.ZodEnum<{
138
+ discovery: "discovery";
139
+ git: "git";
140
+ heuristic: "heuristic";
141
+ probe: "probe";
142
+ stack: "stack";
143
+ }>;
144
+ line: z.ZodOptional<z.ZodNumber>;
145
+ column: z.ZodOptional<z.ZodNumber>;
146
+ }, z.core.$strict>>>;
147
+ privacyLevel: z.ZodEnum<{
148
+ redacted: "redacted";
149
+ safe: "safe";
150
+ sensitive: "sensitive";
151
+ }>;
152
+ }, z.core.$strict>;
153
+ export declare const collectedProbeMapEventSchema: z.ZodObject<{
154
+ id: z.ZodUUID;
155
+ protocolVersion: z.ZodString;
156
+ sdkVersion: z.ZodString;
157
+ payloadSchemaId: z.ZodOptional<z.ZodString>;
158
+ projectId: z.ZodUUID;
159
+ sessionId: z.ZodUUID;
160
+ flowId: z.ZodOptional<z.ZodUUID>;
161
+ flowContractVersionId: z.ZodOptional<z.ZodUUID>;
162
+ probeDefinitionId: z.ZodOptional<z.ZodUUID>;
163
+ traceId: z.ZodString;
164
+ spanId: z.ZodString;
165
+ parentSpanId: z.ZodOptional<z.ZodString>;
166
+ linkedSpanIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
167
+ runtimeId: z.ZodString;
168
+ processId: z.ZodOptional<z.ZodString>;
169
+ threadId: z.ZodOptional<z.ZodString>;
170
+ clientSequence: z.ZodNumber;
171
+ clientTimestamp: z.ZodISODateTime;
172
+ monotonicTime: z.ZodNumber;
173
+ serverReceivedAt: z.ZodOptional<z.ZodISODateTime>;
174
+ type: z.ZodEnum<{
175
+ "action.click": "action.click";
176
+ "action.double_click": "action.double_click";
177
+ "action.drag_end": "action.drag_end";
178
+ "action.drag_move": "action.drag_move";
179
+ "action.drag_start": "action.drag_start";
180
+ "action.drop": "action.drop";
181
+ "action.input": "action.input";
182
+ "action.keypress": "action.keypress";
183
+ "action.navigation": "action.navigation";
184
+ "bug.recorded": "bug.recorded";
185
+ "console.error": "console.error";
186
+ "console.log": "console.log";
187
+ "console.warn": "console.warn";
188
+ "diagnosis.created": "diagnosis.created";
189
+ "flow.end": "flow.end";
190
+ "flow.start": "flow.start";
191
+ "git.snapshot": "git.snapshot";
192
+ "network.error": "network.error";
193
+ "network.request": "network.request";
194
+ "network.response": "network.response";
195
+ "performance.long_task": "performance.long_task";
196
+ "probe.assert": "probe.assert";
197
+ "probe.observe": "probe.observe";
198
+ "probe.step": "probe.step";
199
+ "runtime.exception": "runtime.exception";
200
+ "session.end": "session.end";
201
+ "session.start": "session.start";
202
+ "state.snapshot": "state.snapshot";
203
+ "verification.created": "verification.created";
204
+ "visual.snapshot": "visual.snapshot";
205
+ }>;
206
+ source: z.ZodEnum<{
207
+ adapter: "adapter";
208
+ "browser-sdk": "browser-sdk";
209
+ cli: "cli";
210
+ collector: "collector";
211
+ mcp: "mcp";
212
+ "node-sdk": "node-sdk";
213
+ }>;
214
+ status: z.ZodOptional<z.ZodEnum<{
215
+ fail: "fail";
216
+ not_reached: "not_reached";
217
+ pass: "pass";
218
+ skipped: "skipped";
219
+ unknown: "unknown";
220
+ warn: "warn";
221
+ }>>;
222
+ name: z.ZodOptional<z.ZodString>;
223
+ message: z.ZodOptional<z.ZodString>;
224
+ payload: z.ZodOptional<z.ZodUnknown>;
225
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
226
+ relatedObjectIds: z.ZodOptional<z.ZodArray<z.ZodString>>;
227
+ stackTrace: z.ZodOptional<z.ZodString>;
228
+ fileHints: z.ZodOptional<z.ZodArray<z.ZodObject<{
229
+ path: z.ZodString;
230
+ reason: z.ZodString;
231
+ confidence: z.ZodNumber;
232
+ source: z.ZodEnum<{
233
+ discovery: "discovery";
234
+ git: "git";
235
+ heuristic: "heuristic";
236
+ probe: "probe";
237
+ stack: "stack";
238
+ }>;
239
+ line: z.ZodOptional<z.ZodNumber>;
240
+ column: z.ZodOptional<z.ZodNumber>;
241
+ }, z.core.$strict>>>;
242
+ privacyLevel: z.ZodEnum<{
243
+ redacted: "redacted";
244
+ safe: "safe";
245
+ sensitive: "sensitive";
246
+ }>;
247
+ serverSequence: z.ZodNumber;
248
+ }, z.core.$strict>;
249
+ export type ProbeStatus = z.infer<typeof probeStatusSchema>;
250
+ export type ProbeMapEventType = z.infer<typeof probeMapEventTypeSchema>;
251
+ export type ProbeMapEvent = z.infer<typeof probeMapEventSchema>;
252
+ export type CollectedProbeMapEvent = z.infer<typeof collectedProbeMapEventSchema>;
253
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/protocol/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,aAAa,YACxB,MAAM,EACN,MAAM,EACN,MAAM,EACN,SAAS,EACT,aAAa,EACb,SAAS,CACD,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;EAAwB,CAAC;AAEvD,eAAO,MAAM,kBAAkB,YAC7B,eAAe,EACf,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACd,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,sBAAsB,CACd,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA6B,CAAC;AAElE,eAAO,MAAM,iBAAiB;;;;;;;EAO5B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;EAA4C,CAAC;AAE5E,eAAO,MAAM,qBAAqB,aAEwC,CAAC;AAE3E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAsC9B,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAEvC,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { z } from "zod";
2
+ import { fileHintSchema } from "./file-hint.js";
3
+ export const probeStatuses = [
4
+ "pass",
5
+ "warn",
6
+ "fail",
7
+ "skipped",
8
+ "not_reached",
9
+ "unknown",
10
+ ];
11
+ export const probeStatusSchema = z.enum(probeStatuses);
12
+ export const probeMapEventTypes = [
13
+ "session.start",
14
+ "session.end",
15
+ "flow.start",
16
+ "flow.end",
17
+ "action.click",
18
+ "action.double_click",
19
+ "action.drag_start",
20
+ "action.drag_move",
21
+ "action.drag_end",
22
+ "action.drop",
23
+ "action.input",
24
+ "action.keypress",
25
+ "action.navigation",
26
+ "state.snapshot",
27
+ "probe.step",
28
+ "probe.observe",
29
+ "probe.assert",
30
+ "network.request",
31
+ "network.response",
32
+ "network.error",
33
+ "console.log",
34
+ "console.warn",
35
+ "console.error",
36
+ "runtime.exception",
37
+ "performance.long_task",
38
+ "visual.snapshot",
39
+ "git.snapshot",
40
+ "bug.recorded",
41
+ "diagnosis.created",
42
+ "verification.created",
43
+ ];
44
+ export const probeMapEventTypeSchema = z.enum(probeMapEventTypes);
45
+ export const eventSourceSchema = z.enum([
46
+ "browser-sdk",
47
+ "node-sdk",
48
+ "collector",
49
+ "mcp",
50
+ "cli",
51
+ "adapter",
52
+ ]);
53
+ export const privacyLevelSchema = z.enum(["safe", "redacted", "sensitive"]);
54
+ export const protocolVersionSchema = z
55
+ .string()
56
+ .regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[0-9A-Za-z.-]+)?$/);
57
+ export const probeMapEventSchema = z.strictObject({
58
+ id: z.uuid(),
59
+ protocolVersion: protocolVersionSchema,
60
+ sdkVersion: z.string().min(1),
61
+ payloadSchemaId: z.string().min(1).optional(),
62
+ projectId: z.uuid(),
63
+ sessionId: z.uuid(),
64
+ flowId: z.uuid().optional(),
65
+ flowContractVersionId: z.uuid().optional(),
66
+ probeDefinitionId: z.uuid().optional(),
67
+ traceId: z.string().min(1).max(64),
68
+ spanId: z.string().min(1).max(32),
69
+ parentSpanId: z.string().min(1).max(32).optional(),
70
+ linkedSpanIds: z.array(z.string().min(1).max(32)).max(32).optional(),
71
+ runtimeId: z.string().min(1).max(128),
72
+ processId: z.string().min(1).max(128).optional(),
73
+ threadId: z.string().min(1).max(128).optional(),
74
+ clientSequence: z.number().int().nonnegative().safe(),
75
+ clientTimestamp: z.iso.datetime({ offset: true }),
76
+ monotonicTime: z.number().nonnegative().finite(),
77
+ serverReceivedAt: z.iso.datetime({ offset: true }).optional(),
78
+ type: probeMapEventTypeSchema,
79
+ source: eventSourceSchema,
80
+ status: probeStatusSchema.optional(),
81
+ name: z.string().min(1).max(512).optional(),
82
+ message: z.string().max(16_384).optional(),
83
+ payload: z.unknown().optional(),
84
+ tags: z.array(z.string().min(1).max(128)).max(64).optional(),
85
+ relatedObjectIds: z.array(z.string().min(1).max(256)).max(128).optional(),
86
+ stackTrace: z.string().max(100_000).optional(),
87
+ fileHints: z.array(fileHintSchema).max(64).optional(),
88
+ privacyLevel: privacyLevelSchema,
89
+ });
90
+ export const collectedProbeMapEventSchema = probeMapEventSchema.extend({
91
+ serverSequence: z.number().int().positive().safe(),
92
+ });
93
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/protocol/event.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import { z } from "zod";
2
+ export declare const fileHintSourceSchema: z.ZodEnum<{
3
+ discovery: "discovery";
4
+ git: "git";
5
+ heuristic: "heuristic";
6
+ probe: "probe";
7
+ stack: "stack";
8
+ }>;
9
+ export declare const fileHintSchema: z.ZodObject<{
10
+ path: z.ZodString;
11
+ reason: z.ZodString;
12
+ confidence: z.ZodNumber;
13
+ source: z.ZodEnum<{
14
+ discovery: "discovery";
15
+ git: "git";
16
+ heuristic: "heuristic";
17
+ probe: "probe";
18
+ stack: "stack";
19
+ }>;
20
+ line: z.ZodOptional<z.ZodNumber>;
21
+ column: z.ZodOptional<z.ZodNumber>;
22
+ }, z.core.$strict>;
23
+ export type FileHint = z.infer<typeof fileHintSchema>;
24
+ //# sourceMappingURL=file-hint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-hint.d.ts","sourceRoot":"","sources":["../../src/protocol/file-hint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,oBAAoB;;;;;;EAM/B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;kBAOzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ export const fileHintSourceSchema = z.enum([
3
+ "probe",
4
+ "stack",
5
+ "discovery",
6
+ "git",
7
+ "heuristic",
8
+ ]);
9
+ export const fileHintSchema = z.strictObject({
10
+ path: z.string().min(1),
11
+ reason: z.string().min(1),
12
+ confidence: z.number().min(0).max(1),
13
+ source: fileHintSourceSchema,
14
+ line: z.number().int().positive().optional(),
15
+ column: z.number().int().nonnegative().optional(),
16
+ });
17
+ //# sourceMappingURL=file-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-hint.js","sourceRoot":"","sources":["../../src/protocol/file-hint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,IAAI,CAAC;IACzC,OAAO;IACP,OAAO;IACP,WAAW;IACX,KAAK;IACL,WAAW;CACZ,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,YAAY,CAAC;IAC3C,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,MAAM,EAAE,oBAAoB;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC"}
@@ -0,0 +1,21 @@
1
+ export declare const PROBEMAP_PROJECT_HEADER = "x-probemap-project-id";
2
+ export declare const PROBEMAP_SESSION_HEADER = "x-probemap-session-id";
3
+ export declare const PROBEMAP_FLOW_HEADER = "x-probemap-flow-id";
4
+ export declare const TRACEPARENT_HEADER = "traceparent";
5
+ export interface PropagatedTraceContext {
6
+ projectId: string;
7
+ sessionId: string;
8
+ flowId?: string;
9
+ traceId: string;
10
+ parentSpanId: string;
11
+ sampled: boolean;
12
+ }
13
+ export type TraceHeaders = Record<string, string>;
14
+ export interface HeaderReader {
15
+ get(name: string): string | null;
16
+ }
17
+ export type HeaderSource = HeaderReader | Record<string, string | string[] | undefined>;
18
+ export declare function formatTraceparent(traceId: string, spanId: string, sampled?: boolean): string;
19
+ export declare function createTraceHeaders(context: PropagatedTraceContext): TraceHeaders;
20
+ export declare function parseTraceHeaders(source: HeaderSource): PropagatedTraceContext | undefined;
21
+ //# sourceMappingURL=trace-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-context.d.ts","sourceRoot":"","sources":["../../src/protocol/trace-context.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,uBAAuB,0BAA0B,CAAC;AAC/D,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AACzD,eAAO,MAAM,kBAAkB,gBAAgB,CAAC;AAMhD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,MAAM,YAAY,GACpB,YAAY,GACZ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAYlD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,MAAM,CAWzF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,sBAAsB,GAAG,YAAY,CAWhF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,sBAAsB,GAAG,SAAS,CA+B1F"}
@@ -0,0 +1,59 @@
1
+ export const PROBEMAP_PROJECT_HEADER = "x-probemap-project-id";
2
+ export const PROBEMAP_SESSION_HEADER = "x-probemap-session-id";
3
+ export const PROBEMAP_FLOW_HEADER = "x-probemap-flow-id";
4
+ export const TRACEPARENT_HEADER = "traceparent";
5
+ const uuidPattern = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
6
+ const traceIdPattern = /^[0-9a-f]{32}$/i;
7
+ const spanIdPattern = /^[0-9a-f]{16}$/i;
8
+ function readHeader(source, name) {
9
+ if ("get" in source && typeof source.get === "function") {
10
+ return source.get(name) ?? undefined;
11
+ }
12
+ const record = source;
13
+ const value = record[name] ?? record[name.toLowerCase()];
14
+ return Array.isArray(value) ? value[0] : value;
15
+ }
16
+ export function formatTraceparent(traceId, spanId, sampled = true) {
17
+ if (!traceIdPattern.test(traceId) ||
18
+ /^0+$/.test(traceId) ||
19
+ !spanIdPattern.test(spanId) ||
20
+ /^0+$/.test(spanId)) {
21
+ throw new Error("Cannot format an invalid W3C trace context.");
22
+ }
23
+ return `00-${traceId.toLowerCase()}-${spanId.toLowerCase()}-${sampled ? "01" : "00"}`;
24
+ }
25
+ export function createTraceHeaders(context) {
26
+ return {
27
+ [TRACEPARENT_HEADER]: formatTraceparent(context.traceId, context.parentSpanId, context.sampled),
28
+ [PROBEMAP_PROJECT_HEADER]: context.projectId,
29
+ [PROBEMAP_SESSION_HEADER]: context.sessionId,
30
+ ...(context.flowId === undefined ? {} : { [PROBEMAP_FLOW_HEADER]: context.flowId }),
31
+ };
32
+ }
33
+ export function parseTraceHeaders(source) {
34
+ const projectId = readHeader(source, PROBEMAP_PROJECT_HEADER);
35
+ const sessionId = readHeader(source, PROBEMAP_SESSION_HEADER);
36
+ const flowId = readHeader(source, PROBEMAP_FLOW_HEADER);
37
+ const traceparent = readHeader(source, TRACEPARENT_HEADER);
38
+ const match = /^([0-9a-f]{2})-([0-9a-f]{32})-([0-9a-f]{16})-([0-9a-f]{2})$/i.exec(traceparent ?? "");
39
+ if (projectId === undefined ||
40
+ sessionId === undefined ||
41
+ !uuidPattern.test(projectId) ||
42
+ !uuidPattern.test(sessionId) ||
43
+ (flowId !== undefined && !uuidPattern.test(flowId)) ||
44
+ match === null ||
45
+ match[1] === "ff" ||
46
+ /^0+$/.test(match[2]) ||
47
+ /^0+$/.test(match[3])) {
48
+ return undefined;
49
+ }
50
+ return {
51
+ projectId,
52
+ sessionId,
53
+ ...(flowId === undefined ? {} : { flowId }),
54
+ traceId: match[2].toLowerCase(),
55
+ parentSpanId: match[3].toLowerCase(),
56
+ sampled: (Number.parseInt(match[4], 16) & 1) === 1,
57
+ };
58
+ }
59
+ //# sourceMappingURL=trace-context.js.map