@relkit/invocation 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/context.d.ts.map +1 -1
  2. package/dist/context.js +3 -1
  3. package/dist/context.js.map +1 -1
  4. package/dist/contracts.d.ts +2 -0
  5. package/dist/contracts.d.ts.map +1 -1
  6. package/dist/contracts.js.map +1 -1
  7. package/dist/dispatcher-context.d.ts.map +1 -1
  8. package/dist/dispatcher-context.js +10 -2
  9. package/dist/dispatcher-context.js.map +1 -1
  10. package/dist/dispatcher-scope.d.ts +4 -0
  11. package/dist/dispatcher-scope.d.ts.map +1 -1
  12. package/dist/dispatcher-scope.js +11 -1
  13. package/dist/dispatcher-scope.js.map +1 -1
  14. package/dist/dispatcher-types.d.ts +7 -1
  15. package/dist/dispatcher-types.d.ts.map +1 -1
  16. package/dist/dispatcher-types.js.map +1 -1
  17. package/dist/execution-context.d.ts +20 -0
  18. package/dist/execution-context.d.ts.map +1 -0
  19. package/dist/execution-context.js +9 -0
  20. package/dist/execution-context.js.map +1 -0
  21. package/dist/index.d.ts +9 -0
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +9 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/public-trace.d.ts +28 -0
  26. package/dist/public-trace.d.ts.map +1 -0
  27. package/dist/public-trace.js +95 -0
  28. package/dist/public-trace.js.map +1 -0
  29. package/dist/root-span.d.ts +6 -0
  30. package/dist/root-span.d.ts.map +1 -0
  31. package/dist/root-span.js +24 -0
  32. package/dist/root-span.js.map +1 -0
  33. package/dist/span-runtime.d.ts +43 -0
  34. package/dist/span-runtime.d.ts.map +1 -0
  35. package/dist/span-runtime.js +73 -0
  36. package/dist/span-runtime.js.map +1 -0
  37. package/dist/span-snapshot.d.ts +48 -0
  38. package/dist/span-snapshot.d.ts.map +1 -0
  39. package/dist/span-snapshot.js +84 -0
  40. package/dist/span-snapshot.js.map +1 -0
  41. package/dist/standalone-dispatcher.d.ts.map +1 -1
  42. package/dist/standalone-dispatcher.js +3 -1
  43. package/dist/standalone-dispatcher.js.map +1 -1
  44. package/dist/trace-limits.d.ts +18 -0
  45. package/dist/trace-limits.d.ts.map +1 -0
  46. package/dist/trace-limits.js +42 -0
  47. package/dist/trace-limits.js.map +1 -0
  48. package/dist/trace-propagation.d.ts +3 -0
  49. package/dist/trace-propagation.d.ts.map +1 -0
  50. package/dist/trace-propagation.js +20 -0
  51. package/dist/trace-propagation.js.map +1 -0
  52. package/dist/tracing-span.d.ts +50 -0
  53. package/dist/tracing-span.d.ts.map +1 -0
  54. package/dist/tracing-span.js +175 -0
  55. package/dist/tracing-span.js.map +1 -0
  56. package/dist/validation.d.ts.map +1 -1
  57. package/dist/validation.js +6 -1
  58. package/dist/validation.js.map +1 -1
  59. package/package.json +3 -3
@@ -0,0 +1,73 @@
1
+ import { Exit } from "effect";
2
+ import { RelkitSpan } from "./tracing-span.js";
3
+ import { traceLimits } from "./trace-limits.js";
4
+ /** One owner per generation; never disables the process-wide context carrier. */
5
+ export class SpanRuntime {
6
+ options;
7
+ limits;
8
+ active = new Set();
9
+ ids;
10
+ recording;
11
+ droppedSpans = 0;
12
+ observerFailures = 0;
13
+ closed = false;
14
+ constructor(options) {
15
+ this.options = options;
16
+ this.ids = options.ids;
17
+ this.limits = traceLimits(options.limits);
18
+ this.recording = options.recording !== false;
19
+ }
20
+ start(options, attributes) {
21
+ const span = new RelkitSpan(options, this, undefined, attributes);
22
+ if (span.recording) {
23
+ this.active.add(span);
24
+ this.notify("started", span);
25
+ }
26
+ else {
27
+ this.droppedSpans++;
28
+ }
29
+ return span;
30
+ }
31
+ startRoot(options, traceId, attributes) {
32
+ const span = new RelkitSpan(options, this, traceId, attributes);
33
+ if (span.recording) {
34
+ this.active.add(span);
35
+ this.notify("started", span);
36
+ }
37
+ else
38
+ this.droppedSpans++;
39
+ return span;
40
+ }
41
+ notify(type, span) {
42
+ if (!span.recording)
43
+ return;
44
+ try {
45
+ const result = this.options.observer?.({ type, span, revision: span.revision });
46
+ if (result !== undefined)
47
+ void Promise.resolve(result).catch(() => {
48
+ this.observerFailures++;
49
+ });
50
+ }
51
+ catch {
52
+ this.observerFailures++;
53
+ }
54
+ }
55
+ capture(value) {
56
+ try {
57
+ return this.options.capture?.(value);
58
+ }
59
+ catch {
60
+ return undefined;
61
+ }
62
+ }
63
+ close(now = BigInt(Date.now()) * 1000000n) {
64
+ if (this.closed)
65
+ return;
66
+ this.closed = true;
67
+ for (const span of this.active) {
68
+ span.attribute("relkit.incomplete", true);
69
+ span.end(now, Exit.fail("generation-closed"));
70
+ }
71
+ }
72
+ }
73
+ //# sourceMappingURL=span-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-runtime.js","sourceRoot":"","sources":["../src/span-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { SpanLifecycle } from "./span-runtime.js";
2
+ export declare function spanSnapshot(event: SpanLifecycle): Readonly<{
3
+ dropped: {
4
+ attributes: number;
5
+ events: number;
6
+ links: number;
7
+ updates: number;
8
+ };
9
+ completedAt?: string;
10
+ durationMs?: number;
11
+ error?: {
12
+ message?: string;
13
+ type?: string;
14
+ };
15
+ links?: {
16
+ traceId: string;
17
+ spanId: string;
18
+ attributes: Readonly<Record<string, unknown>>;
19
+ }[];
20
+ events?: {
21
+ name: string;
22
+ timestamp: string;
23
+ attributes: Readonly<Record<string, string | number | boolean>>;
24
+ droppedAttributes: number;
25
+ }[];
26
+ outcome?: string;
27
+ attributes?: {
28
+ [k: string]: string | number | boolean;
29
+ };
30
+ source?: string;
31
+ correlationId?: string;
32
+ serviceId?: string;
33
+ functionId?: string;
34
+ invocationId?: string;
35
+ originRequestId?: string;
36
+ requestId?: string;
37
+ parentSpanId?: string;
38
+ version: 2;
39
+ signal: "span";
40
+ traceId: import("@relkit/contracts").TraceId;
41
+ spanId: import("@relkit/contracts").SpanId;
42
+ name: string;
43
+ kind: import("effect/Tracer").SpanKind;
44
+ status: "started" | "updated" | "completed";
45
+ revision: number;
46
+ startedAt: string;
47
+ }>;
48
+ //# sourceMappingURL=span-snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-snapshot.d.ts","sourceRoot":"","sources":["../src/span-snapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8EhD"}
@@ -0,0 +1,84 @@
1
+ export function spanSnapshot(event) {
2
+ const span = event.span;
3
+ const attributes = Object.fromEntries(span.attributes);
4
+ const text = (key) => typeof attributes[key] === "string" ? attributes[key] : undefined;
5
+ const outcome = text("relkit.outcome");
6
+ return Object.freeze({
7
+ version: 2,
8
+ signal: "span",
9
+ traceId: span.traceId,
10
+ spanId: span.spanId,
11
+ name: span.name,
12
+ kind: span.kind,
13
+ status: event.type,
14
+ revision: event.revision,
15
+ startedAt: new Date(Number(span.startTime / 1000000n)).toISOString(),
16
+ ...(span.parent._tag === "Some" ? { parentSpanId: span.parent.value.spanId } : {}),
17
+ ...(text("relkit.request.id") === undefined ? {} : { requestId: text("relkit.request.id") }),
18
+ ...(text("relkit.origin_request.id") === undefined
19
+ ? {}
20
+ : { originRequestId: text("relkit.origin_request.id") }),
21
+ ...(text("relkit.invocation.id") === undefined
22
+ ? {}
23
+ : { invocationId: text("relkit.invocation.id") }),
24
+ ...(text("relkit.function.id") === undefined
25
+ ? {}
26
+ : { functionId: text("relkit.function.id") }),
27
+ ...(text("relkit.service.id") === undefined ? {} : { serviceId: text("relkit.service.id") }),
28
+ ...(text("relkit.correlation.id") === undefined
29
+ ? {}
30
+ : { correlationId: text("relkit.correlation.id") }),
31
+ ...(text("relkit.invocation.source") === undefined
32
+ ? {}
33
+ : { source: text("relkit.invocation.source") }),
34
+ ...(Object.keys(attributes).length === 0 ? {} : { attributes }),
35
+ ...(outcome === undefined ? {} : { outcome }),
36
+ ...capture("input", span.captures.input),
37
+ ...capture("output", span.captures.output),
38
+ ...(span.events.length === 0
39
+ ? {}
40
+ : {
41
+ events: span.events.map((item) => ({
42
+ name: item.name,
43
+ timestamp: new Date(Number(item.time / 1000000n)).toISOString(),
44
+ attributes: item.attributes,
45
+ droppedAttributes: item.droppedAttributes,
46
+ })),
47
+ }),
48
+ ...(span.links.length === 0
49
+ ? {}
50
+ : {
51
+ links: span.links.map((link) => ({
52
+ traceId: link.span.traceId,
53
+ spanId: link.span.spanId,
54
+ attributes: link.attributes,
55
+ })),
56
+ }),
57
+ ...(text("error.type") === undefined && text("error.message") === undefined
58
+ ? {}
59
+ : {
60
+ error: {
61
+ ...(text("error.type") === undefined ? {} : { type: text("error.type") }),
62
+ ...(text("error.message") === undefined ? {} : { message: text("error.message") }),
63
+ },
64
+ }),
65
+ ...(span.status._tag === "Ended"
66
+ ? {
67
+ completedAt: new Date(Number(span.status.endTime / 1000000n)).toISOString(),
68
+ durationMs: Number(span.status.endTime - span.startTime) / 1_000_000,
69
+ }
70
+ : {}),
71
+ dropped: {
72
+ attributes: span.droppedAttributes,
73
+ events: span.droppedEvents,
74
+ links: span.droppedLinks,
75
+ updates: span.droppedUpdates,
76
+ },
77
+ });
78
+ }
79
+ function capture(kind, value) {
80
+ if (value === undefined)
81
+ return {};
82
+ return { [`${kind}Capture`]: value };
83
+ }
84
+ //# sourceMappingURL=span-snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"span-snapshot.js","sourceRoot":"","sources":["../src/span-snapshot.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,CAAC,GAAW,EAAsB,EAAE,CAC/C,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAU;QACnB,MAAM,EAAE,MAAe;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,KAAK,CAAC,IAAI;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,QAAU,CAAC,CAAC,CAAC,WAAW,EAAE;QACtE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAE,EAAE,CAAC;QAC7F,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,SAAS;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,0BAA0B,CAAE,EAAE,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,SAAS;YAC5C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,sBAAsB,CAAE,EAAE,CAAC;QACpD,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,SAAS;YAC1C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,oBAAoB,CAAE,EAAE,CAAC;QAChD,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAE,EAAE,CAAC;QAC7F,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,KAAK,SAAS;YAC7C,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,uBAAuB,CAAE,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,KAAK,SAAS;YAChD,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,0BAA0B,CAAE,EAAE,CAAC;QAClD,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QAC/D,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QACxC,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAC1B,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBACjC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,SAAS,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,QAAU,CAAC,CAAC,CAAC,WAAW,EAAE;oBACjE,UAAU,EAAE,IAAI,CAAC,UAAU;oBAC3B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;iBAC1C,CAAC,CAAC;aACJ,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC/B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;oBAC1B,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;oBACxB,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC5B,CAAC,CAAC;aACJ,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,SAAS;YACzE,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,CAAE,EAAE,CAAC;oBAC1E,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAE,EAAE,CAAC;iBACpF;aACF,CAAC;QACN,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,OAAO;YAC9B,CAAC,CAAC;gBACE,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,QAAU,CAAC,CAAC,CAAC,WAAW,EAAE;gBAC7E,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS;aACrE;YACH,CAAC,CAAC,EAAE,CAAC;QACP,OAAO,EAAE;YACP,UAAU,EAAE,IAAI,CAAC,iBAAiB;YAClC,MAAM,EAAE,IAAI,CAAC,aAAa;YAC1B,KAAK,EAAE,IAAI,CAAC,YAAY;YACxB,OAAO,EAAE,IAAI,CAAC,cAAc;SAC7B;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,OAAO,CAAC,IAAwB,EAAE,KAA8B;IACvE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACnC,OAAO,EAAE,CAAC,GAAG,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC;AACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-dispatcher.d.ts","sourceRoot":"","sources":["../src/standalone-dispatcher.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,oBAAoB,EAEpB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAS/B,wBAAgB,0BAA0B,CACxC,WAAW,GAAE,2BAAgC,GAC5C,oBAAoB,CAatB"}
1
+ {"version":3,"file":"standalone-dispatcher.d.ts","sourceRoot":"","sources":["../src/standalone-dispatcher.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAEV,oBAAoB,EAEpB,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAS/B,wBAAgB,0BAA0B,CACxC,WAAW,GAAE,2BAAgC,GAC5C,oBAAoB,CAatB"}
@@ -1,4 +1,5 @@
1
1
  import { assertSource, assertInvocationMode, callHook, defaultIdSource, defaultRunner, validateDeclaredError, validated, } from "./validation.js";
2
+ import { createTraceId, isTraceId } from "@relkit/contracts";
2
3
  import { InvocationValidationError } from "./contracts.js";
3
4
  import { linkSignals } from "./context.js";
4
5
  import { normalizeFailure, toPublicEnvelope } from "./failure.js";
@@ -25,7 +26,8 @@ async function invokeStandalone(request, options, dispatcher) {
25
26
  const now = options.now?.() ?? options.time?.now().getTime() ?? Date.now();
26
27
  const deadlineMs = calculateStandaloneDeadline(request.target.timeoutMs, options, parent, now);
27
28
  const idSource = options.idSource ?? defaultIdSource;
28
- const traceId = options.traceId ?? parent?.traceId ?? idSource.next("trace");
29
+ const candidateTraceId = options.traceId ?? parent?.traceId ?? idSource.next("trace");
30
+ const traceId = isTraceId(candidateTraceId) ? candidateTraceId : createTraceId();
29
31
  const recordOptions = parent === undefined || parent === options.parent ? options : { ...options, parent };
30
32
  const identity = resolveDescriptorIdentity(request.target);
31
33
  const record = createStandaloneRecord(identity.id, source, recordOptions, traceId, deadlineMs, now, idSource, undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"standalone-dispatcher.js","sourceRoot":"","sources":["../src/standalone-dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standalone-dispatcher.js","sourceRoot":"","sources":["../src/standalone-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface TraceLimits {
2
+ readonly spansPerTrace: number;
3
+ readonly attributes: number;
4
+ readonly events: number;
5
+ readonly links: number;
6
+ readonly updates: number;
7
+ readonly attributeBytes: number;
8
+ readonly activeSpans: number;
9
+ readonly nameBytes: number;
10
+ readonly keyBytes: number;
11
+ }
12
+ export declare const DEFAULT_TRACE_LIMITS: TraceLimits;
13
+ export declare function traceLimits(options?: Partial<TraceLimits>): TraceLimits;
14
+ export declare function boundedTraceText(value: string, bytes: number): string;
15
+ export declare function safeTraceAttribute(value: unknown, bytes: number): string | number | boolean | undefined;
16
+ /** Reserved identities belong to runtime boundaries, not authored metadata. */
17
+ export declare function isReservedTraceKey(key: string): boolean;
18
+ //# sourceMappingURL=trace-limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-limits.d.ts","sourceRoot":"","sources":["../src/trace-limits.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,oBAAoB,EAAE,WAUjC,CAAC;AAEH,wBAAgB,WAAW,CAAC,OAAO,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAO3E;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrE;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAKvC;AAED,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAOvD"}
@@ -0,0 +1,42 @@
1
+ export const DEFAULT_TRACE_LIMITS = Object.freeze({
2
+ spansPerTrace: 512,
3
+ attributes: 64,
4
+ events: 32,
5
+ links: 64,
6
+ updates: 64,
7
+ attributeBytes: 1024,
8
+ activeSpans: 4096,
9
+ nameBytes: 256,
10
+ keyBytes: 128,
11
+ });
12
+ export function traceLimits(options = {}) {
13
+ const limits = { ...DEFAULT_TRACE_LIMITS, ...options };
14
+ for (const [key, value] of Object.entries(limits)) {
15
+ if (!Number.isSafeInteger(value) || value < 1)
16
+ throw new TypeError(`Invalid trace limit: ${key}`);
17
+ }
18
+ return Object.freeze(limits);
19
+ }
20
+ const encoder = new TextEncoder();
21
+ export function boundedTraceText(value, bytes) {
22
+ const encoded = encoder.encode(value);
23
+ if (encoded.length <= bytes)
24
+ return value;
25
+ let end = bytes;
26
+ while (end > 0 && (encoded[end] & 0xc0) === 0x80)
27
+ end--;
28
+ return new TextDecoder().decode(encoded.subarray(0, end));
29
+ }
30
+ export function safeTraceAttribute(value, bytes) {
31
+ if (typeof value === "string")
32
+ return boundedTraceText(value, bytes);
33
+ if (typeof value === "boolean" || (typeof value === "number" && Number.isFinite(value)))
34
+ return value;
35
+ return undefined;
36
+ }
37
+ /** Reserved identities belong to runtime boundaries, not authored metadata. */
38
+ export function isReservedTraceKey(key) {
39
+ return (key.startsWith("relkit.") ||
40
+ /^(?:traceId|spanId|parentSpanId|requestId|originRequestId|invocationId|correlationId)$/.test(key));
41
+ }
42
+ //# sourceMappingURL=trace-limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-limits.js","sourceRoot":"","sources":["../src/trace-limits.ts"],"names":[],"mappings":"AAYA,MAAM,CAAC,MAAM,oBAAoB,GAAgB,MAAM,CAAC,MAAM,CAAC;IAC7D,aAAa,EAAE,GAAG;IAClB,UAAU,EAAE,EAAE;IACd,MAAM,EAAE,EAAE;IACV,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,IAAI;IACpB,WAAW,EAAE,IAAI;IACjB,SAAS,EAAE,GAAG;IACd,QAAQ,EAAE,GAAG;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,WAAW,CAAC,UAAgC,EAAE;IAC5D,MAAM,MAAM,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,OAAO,EAAE,CAAC;IACvD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;YAC3C,MAAM,IAAI,SAAS,CAAC,wBAAwB,GAAG,EAAE,CAAC,CAAC;IACvD,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAClC,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,KAAa;IAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAE,GAAG,IAAI,CAAC,KAAK,IAAI;QAAE,GAAG,EAAE,CAAC;IACzD,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,KAAc,EACd,KAAa;IAEb,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IACrE,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,kBAAkB,CAAC,GAAW;IAC5C,OAAO,CACL,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,wFAAwF,CAAC,IAAI,CAC3F,GAAG,CACJ,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type TracePropagation } from "@relkit/contracts";
2
+ export declare function currentTracePropagation(): TracePropagation | undefined;
3
+ //# sourceMappingURL=trace-propagation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-propagation.d.ts","sourceRoot":"","sources":["../src/trace-propagation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG/E,wBAAgB,uBAAuB,IAAI,gBAAgB,GAAG,SAAS,CAgBtE"}
@@ -0,0 +1,20 @@
1
+ import { isSpanId, isTraceId } from "@relkit/contracts";
2
+ import { currentExecutionContext } from "./dispatcher-scope.js";
3
+ export function currentTracePropagation() {
4
+ const context = currentExecutionContext();
5
+ if (!context || !isTraceId(context.span.traceId) || !isSpanId(context.span.spanId))
6
+ return undefined;
7
+ return Object.freeze({
8
+ version: 2,
9
+ producer: Object.freeze({
10
+ traceId: context.span.traceId,
11
+ spanId: context.span.spanId,
12
+ traceFlags: context.span.sampled ? 1 : 0,
13
+ }),
14
+ ...(context.requestId === undefined ? {} : { requestId: context.requestId }),
15
+ ...(context.originRequestId === undefined ? {} : { originRequestId: context.originRequestId }),
16
+ ...(context.correlationId === undefined ? {} : { correlationId: context.correlationId }),
17
+ ...(context.invocationId === undefined ? {} : { invocationId: context.invocationId }),
18
+ });
19
+ }
20
+ //# sourceMappingURL=trace-propagation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-propagation.js","sourceRoot":"","sources":["../src/trace-propagation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAyB,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QAChF,OAAO,SAAS,CAAC;IACnB,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO;YAC7B,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;YAC3B,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACzC,CAAC;QACF,GAAG,CAAC,OAAO,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5E,GAAG,CAAC,OAAO,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9F,GAAG,CAAC,OAAO,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;QACxF,GAAG,CAAC,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;KACtF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { type TraceId, type SpanId } from "@relkit/contracts";
2
+ import { Context, Exit, Option, Tracer } from "effect";
3
+ import type { SpanCapture, SpanRuntime } from "./span-runtime.js";
4
+ export interface TraceEvent {
5
+ name: string;
6
+ readonly time: bigint;
7
+ readonly attributes: Readonly<Record<string, string | number | boolean>>;
8
+ readonly droppedAttributes: number;
9
+ }
10
+ export declare class RelkitSpan implements Tracer.Span {
11
+ readonly runtime: SpanRuntime;
12
+ readonly _tag: "Span";
13
+ readonly spanId: SpanId;
14
+ readonly traceId: TraceId;
15
+ readonly sampled: boolean;
16
+ name: string;
17
+ readonly parent: Option.Option<Tracer.AnySpan>;
18
+ readonly annotations: Context.Context<never>;
19
+ readonly links: Array<Tracer.SpanLink>;
20
+ readonly events: TraceEvent[];
21
+ readonly startTime: bigint;
22
+ readonly kind: Tracer.SpanKind;
23
+ readonly recording: boolean;
24
+ readonly traceState?: string;
25
+ readonly budget: {
26
+ spans: number;
27
+ dropped: number;
28
+ };
29
+ status: Tracer.SpanStatus;
30
+ attributes: Map<string, string | number | boolean>;
31
+ revision: number;
32
+ droppedAttributes: number;
33
+ droppedEvents: number;
34
+ droppedLinks: number;
35
+ droppedUpdates: number;
36
+ captures: Partial<Record<"input" | "output", SpanCapture>>;
37
+ private updates;
38
+ constructor(options: Parameters<Tracer.Tracer["span"]>[0], runtime: SpanRuntime, rootTraceId?: string, initialAttributes?: Readonly<Record<string, unknown>>);
39
+ end(endTime: bigint, exit: Exit.Exit<unknown, unknown>): void;
40
+ attribute(key: string, value: unknown): void;
41
+ rename(name: string): void;
42
+ event(name: string, time: bigint, attributes?: Record<string, unknown>): void;
43
+ capture(kind: "input" | "output", value: unknown): void;
44
+ addLinks(links: ReadonlyArray<Tracer.SpanLink>, notify?: boolean): void;
45
+ private writable;
46
+ private setAttribute;
47
+ private metadata;
48
+ private update;
49
+ }
50
+ //# sourceMappingURL=tracing-span.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-span.d.ts","sourceRoot":"","sources":["../src/tracing-span.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import { createSpanId, createTraceId, isSpanId, isTraceId, } from "@relkit/contracts";
2
+ import { Context, Exit, Option, Tracer } from "effect";
3
+ import { boundedTraceText, safeTraceAttribute } from "./trace-limits.js";
4
+ export class RelkitSpan {
5
+ runtime;
6
+ _tag = "Span";
7
+ spanId;
8
+ traceId;
9
+ sampled;
10
+ name;
11
+ parent;
12
+ annotations;
13
+ links = [];
14
+ events = [];
15
+ startTime;
16
+ kind;
17
+ recording;
18
+ traceState;
19
+ budget;
20
+ status;
21
+ attributes = new Map();
22
+ revision = 0;
23
+ droppedAttributes = 0;
24
+ droppedEvents = 0;
25
+ droppedLinks = 0;
26
+ droppedUpdates = 0;
27
+ captures = {};
28
+ updates = 0;
29
+ constructor(options, runtime, rootTraceId, initialAttributes = {}) {
30
+ this.runtime = runtime;
31
+ const parent = Option.getOrUndefined(options.parent);
32
+ this.name = boundedTraceText(options.name, runtime.limits.nameBytes);
33
+ this.parent = options.parent;
34
+ const traceId = parent?.traceId ?? rootTraceId ?? runtime.ids.next("trace");
35
+ const spanId = runtime.ids.next("span");
36
+ this.traceId = isTraceId(traceId) ? traceId : createTraceId();
37
+ this.spanId = isSpanId(spanId) ? spanId : createSpanId();
38
+ this.sampled = options.sampled;
39
+ this.annotations = options.annotations;
40
+ this.startTime = options.startTime;
41
+ this.kind = options.kind;
42
+ this.status = { _tag: "Started", startTime: options.startTime };
43
+ this.budget = parent instanceof RelkitSpan ? parent.budget : { spans: 0, dropped: 0 };
44
+ if (parent instanceof RelkitSpan && parent.traceState !== undefined)
45
+ this.traceState = parent.traceState;
46
+ this.recording =
47
+ runtime.recording &&
48
+ !runtime.closed &&
49
+ runtime.active.size < runtime.limits.activeSpans &&
50
+ this.budget.spans < runtime.limits.spansPerTrace;
51
+ if (this.recording)
52
+ this.budget.spans++;
53
+ else
54
+ this.budget.dropped++;
55
+ for (const [key, value] of Object.entries(initialAttributes))
56
+ this.setAttribute(key, value);
57
+ this.addLinks(options.links, false);
58
+ }
59
+ end(endTime, exit) {
60
+ if (this.status._tag === "Ended")
61
+ return;
62
+ this.status = { _tag: "Ended", startTime: this.startTime, endTime, exit };
63
+ this.revision++;
64
+ this.runtime.active.delete(this);
65
+ this.runtime.notify("completed", this);
66
+ }
67
+ attribute(key, value) {
68
+ if (!this.writable())
69
+ return;
70
+ this.setAttribute(key, value);
71
+ this.update();
72
+ }
73
+ rename(name) {
74
+ if (!this.writable())
75
+ return;
76
+ this.name = boundedTraceText(name, this.runtime.limits.nameBytes);
77
+ this.update();
78
+ }
79
+ event(name, time, attributes = {}) {
80
+ if (!this.writable())
81
+ return;
82
+ if (this.events.length >= this.runtime.limits.events)
83
+ this.droppedEvents++;
84
+ else {
85
+ const metadata = this.metadata(attributes);
86
+ this.events.push(Object.freeze({
87
+ name: boundedTraceText(name, this.runtime.limits.nameBytes),
88
+ time,
89
+ attributes: metadata.attributes,
90
+ droppedAttributes: metadata.dropped,
91
+ }));
92
+ }
93
+ this.update();
94
+ }
95
+ capture(kind, value) {
96
+ if (!this.writable())
97
+ return;
98
+ const captured = this.runtime.capture(value);
99
+ if (captured === undefined)
100
+ return;
101
+ this.captures[kind] = captured;
102
+ this.update();
103
+ }
104
+ addLinks(links, notify = true) {
105
+ if (!this.writable())
106
+ return;
107
+ for (const link of links) {
108
+ if (this.links.length >= this.runtime.limits.links ||
109
+ !isTraceId(link.span.traceId) ||
110
+ !isSpanId(link.span.spanId)) {
111
+ this.droppedLinks++;
112
+ continue;
113
+ }
114
+ const metadata = this.metadata(link.attributes);
115
+ this.links.push(Object.freeze({
116
+ span: Tracer.externalSpan({
117
+ traceId: link.span.traceId,
118
+ spanId: link.span.spanId,
119
+ sampled: link.span.sampled,
120
+ }),
121
+ attributes: metadata.attributes,
122
+ }));
123
+ this.droppedAttributes += metadata.dropped;
124
+ }
125
+ if (notify && links.length > 0)
126
+ this.update();
127
+ }
128
+ writable() {
129
+ return this.recording && this.status._tag !== "Ended";
130
+ }
131
+ setAttribute(key, value) {
132
+ const limits = this.runtime.limits;
133
+ const scalar = safeTraceAttribute(value, limits.attributeBytes);
134
+ if (!key ||
135
+ boundedTraceText(key, limits.keyBytes) !== key ||
136
+ scalar === undefined ||
137
+ (!this.attributes.has(key) && this.attributes.size >= limits.attributes)) {
138
+ this.droppedAttributes++;
139
+ }
140
+ else {
141
+ this.attributes.set(key, scalar);
142
+ }
143
+ }
144
+ metadata(input) {
145
+ const attributes = Object.create(null);
146
+ let dropped = 0;
147
+ let count = 0;
148
+ for (const key of Object.keys(input)) {
149
+ const descriptor = Object.getOwnPropertyDescriptor(input, key);
150
+ const value = descriptor && "value" in descriptor
151
+ ? safeTraceAttribute(descriptor.value, this.runtime.limits.attributeBytes)
152
+ : undefined;
153
+ if (!key ||
154
+ boundedTraceText(key, this.runtime.limits.keyBytes) !== key ||
155
+ value === undefined ||
156
+ count >= this.runtime.limits.attributes) {
157
+ dropped++;
158
+ continue;
159
+ }
160
+ attributes[key] = value;
161
+ count++;
162
+ }
163
+ return { attributes: Object.freeze(attributes), dropped };
164
+ }
165
+ update() {
166
+ this.revision++;
167
+ if (this.updates >= this.runtime.limits.updates) {
168
+ this.droppedUpdates++;
169
+ return;
170
+ }
171
+ this.updates++;
172
+ this.runtime.notify("updated", this);
173
+ }
174
+ }
175
+ //# sourceMappingURL=tracing-span.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tracing-span.js","sourceRoot":"","sources":["../src/tracing-span.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAiC,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,GAAG,QAAQ,GACxB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,EACzC,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAM7E;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,CAAC,EACvD,MAAM,EAAE,gBAAgB,GACvB,IAAI,CAQN;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAAG,SAAS,EAC7D,KAAK,EAAE,yBAAyB,GAAG,iBAAiB,GACnD,OAAO,CAAC,yBAAyB,GAAG,iBAAiB,CAAC,CAexD;AAED,eAAO,MAAM,eAAe,EAAE,kBAE7B,CAAC;AAEF,eAAO,MAAM,aAAa;UAClB,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,YAAY;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;CAE5F,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,gBAM1B,CAAC"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAoB,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAiC,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACtF,OAAO,KAAK,EACV,yBAAyB,EACzB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAG3D,wBAAsB,SAAS,CAC7B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,OAAO,GAAG,QAAQ,GACxB,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC9B,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,SAAS,EACzC,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,IAAI,CAAC,CAMf;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,gBAAgB,CAM7E;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,gBAAgB,CAAC,EACvD,MAAM,EAAE,gBAAgB,GACvB,IAAI,CAQN;AAED,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,SAAS,yBAAyB,EAAE,GAAG,SAAS,EAC7D,KAAK,EAAE,yBAAyB,GAAG,iBAAiB,GACnD,OAAO,CAAC,yBAAyB,GAAG,iBAAiB,CAAC,CAexD;AAED,eAAO,MAAM,eAAe,EAAE,kBAO7B,CAAC;AAEF,eAAO,MAAM,aAAa;UAClB,CAAC,EAAE,CAAC,UAAU,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,YAAY;QAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE;CAE5F,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,gBAM1B,CAAC"}