@smoothbricks/lmao 0.2.0 → 0.2.2

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 (110) hide show
  1. package/dist/es.js +1 -0
  2. package/dist/lib/JsBufferStrategy.d.ts.map +1 -1
  3. package/dist/lib/JsBufferStrategy.js +12 -0
  4. package/dist/lib/archive/chunkEnvelope.js +1 -0
  5. package/dist/lib/archive/chunkRouting.js +1 -0
  6. package/dist/lib/archive/chunkStats.js +1 -0
  7. package/dist/lib/arrow/capacityStats.js +1 -0
  8. package/dist/lib/arrow/dictionaries.d.ts.map +1 -1
  9. package/dist/lib/buffer/Nanoseconds.d.ts.map +1 -1
  10. package/dist/lib/buffer/Nanoseconds.js +34 -0
  11. package/dist/lib/bufferStrategy.js +21 -0
  12. package/dist/lib/capacityTuning.js +26 -0
  13. package/dist/lib/cleanupDiagnostics.js +2 -2
  14. package/dist/lib/cloudflare/classSplit.d.ts.map +1 -1
  15. package/dist/lib/cloudflare/classSplit.js +19 -0
  16. package/dist/lib/cloudflare/collectorClient.d.ts.map +1 -1
  17. package/dist/lib/cloudflare/diagnosticDrain.d.ts.map +1 -1
  18. package/dist/lib/cloudflare/diagnosticDrain.js +1 -1
  19. package/dist/lib/codegen/evaluatorGenerator.js +1 -0
  20. package/dist/lib/codegen/fixedPositionWriterGenerator.js +1 -0
  21. package/dist/lib/codegen/spanLoggerGenerator.js +1 -0
  22. package/dist/lib/errors/Blocked.d.ts +1 -1
  23. package/dist/lib/errors/Blocked.d.ts.map +1 -1
  24. package/dist/lib/errors/Blocked.js +53 -0
  25. package/dist/lib/errors/CodeError.d.ts.map +1 -1
  26. package/dist/lib/errors/CodeError.js +31 -0
  27. package/dist/lib/errors/RetriesExhausted.d.ts +1 -1
  28. package/dist/lib/errors/RetriesExhausted.d.ts.map +1 -1
  29. package/dist/lib/errors/RetriesExhausted.js +38 -0
  30. package/dist/lib/errors/Transient.d.ts +1 -1
  31. package/dist/lib/errors/Transient.d.ts.map +1 -1
  32. package/dist/lib/errors/Transient.js +31 -0
  33. package/dist/lib/errors/retry-policy.js +1 -0
  34. package/dist/lib/flushScheduler.d.ts +0 -3
  35. package/dist/lib/flushScheduler.d.ts.map +1 -1
  36. package/dist/lib/library.js +1 -0
  37. package/dist/lib/logApi.js +11 -0
  38. package/dist/lib/logBinding.js +13 -0
  39. package/dist/lib/op.d.ts.map +1 -1
  40. package/dist/lib/op.js +15 -0
  41. package/dist/lib/opContext/contextTypes.d.ts +1 -1
  42. package/dist/lib/opContext/contextTypes.d.ts.map +1 -1
  43. package/dist/lib/opContext/createOpGroup.js +1 -0
  44. package/dist/lib/opContext/featureFlagTypes.js +13 -0
  45. package/dist/lib/opContext/opGroupTypes.d.ts +1 -1
  46. package/dist/lib/opContext/opGroupTypes.d.ts.map +1 -1
  47. package/dist/lib/opContext/opGroupTypes.js +16 -0
  48. package/dist/lib/opContext/opTypes.js +14 -0
  49. package/dist/lib/opContext/spanContextTypes.js +19 -0
  50. package/dist/lib/opContext/types.js +15 -0
  51. package/dist/lib/result.d.ts.map +1 -1
  52. package/dist/lib/schema/LogSchema.d.ts.map +1 -1
  53. package/dist/lib/schema/builder.js +1 -0
  54. package/dist/lib/schema/defineFeatureFlags.js +1 -0
  55. package/dist/lib/schema/defineLogSchema.js +10 -0
  56. package/dist/lib/schema/evaluator.d.ts.map +1 -1
  57. package/dist/lib/schema/evaluator.js +1 -0
  58. package/dist/lib/schema/systemSchema.d.ts +1 -1
  59. package/dist/lib/schema/systemSchema.d.ts.map +1 -1
  60. package/dist/lib/schema/systemSchema.js +8 -0
  61. package/dist/lib/schema/types.js +6 -0
  62. package/dist/lib/spanBuffer.d.ts.map +1 -1
  63. package/dist/lib/spanBufferHelpers.js +1 -0
  64. package/dist/lib/spanBufferStats.js +24 -0
  65. package/dist/lib/spanContext.js +1 -0
  66. package/dist/lib/sqlite/sqlite-async-writer.d.ts.map +1 -1
  67. package/dist/lib/sqlite/sqlite-d1.js +8 -0
  68. package/dist/lib/sqlite/sqlite-db.js +8 -0
  69. package/dist/lib/sqlite/sqlite-writer.d.ts.map +1 -1
  70. package/dist/lib/testing/bun-harness.d.ts +4 -0
  71. package/dist/lib/testing/bun-harness.d.ts.map +1 -1
  72. package/dist/lib/testing/extractFacts.js +8 -0
  73. package/dist/lib/testing/facts.d.ts.map +1 -1
  74. package/dist/lib/testing/facts.js +19 -0
  75. package/dist/lib/testing/queryable-span.js +16 -0
  76. package/dist/lib/testing/span-query.js +8 -0
  77. package/dist/lib/testing/trace-query.d.ts.map +1 -1
  78. package/dist/lib/testing/trace-query.js +247 -219
  79. package/dist/lib/traceContext.js +8 -0
  80. package/dist/lib/traceId.js +1 -0
  81. package/dist/lib/traceRoot.es.d.ts.map +1 -1
  82. package/dist/lib/traceRoot.es.js +1 -0
  83. package/dist/lib/traceRoot.js +15 -0
  84. package/dist/lib/traceRoot.node.d.ts.map +1 -1
  85. package/dist/lib/traceRoot.node.js +1 -0
  86. package/dist/lib/tracer.d.ts.map +1 -1
  87. package/dist/lib/tracer.js +61 -0
  88. package/dist/lib/tracers/ArrayQueueTracer.d.ts.map +1 -1
  89. package/dist/lib/tracers/ArrayQueueTracer.js +1 -0
  90. package/dist/lib/tracers/CompositeTracer.d.ts.map +1 -1
  91. package/dist/lib/tracers/CompositeTracer.js +1 -0
  92. package/dist/lib/tracers/NoOpTracer.d.ts.map +1 -1
  93. package/dist/lib/tracers/NoOpTracer.js +25 -0
  94. package/dist/lib/tracers/SQLiteTracer.d.ts.map +1 -1
  95. package/dist/lib/tracers/StdioTracer.d.ts.map +1 -1
  96. package/dist/lib/tracers/StdioTracer.js +39 -6
  97. package/dist/lib/tracers/TestTracer.d.ts.map +1 -1
  98. package/dist/lib/tracers/TestTracer.js +30 -0
  99. package/dist/lib/types.js +10 -0
  100. package/dist/lib/utf8Cache.d.ts.map +1 -1
  101. package/dist/lib/utf8Cache.js +1 -0
  102. package/dist/lib/wasm/WasmBufferStrategy.d.ts.map +1 -1
  103. package/dist/lib/wasm/WasmBufferStrategy.js +15 -0
  104. package/dist/lib/wasm/wasmAllocator.js +16 -0
  105. package/dist/lib/wasm/wasmSpanBuffer.js +12 -0
  106. package/dist/lib/wasm/wasmTraceRoot.d.ts.map +1 -1
  107. package/dist/lib/wasm/wasmTraceRoot.js +2 -1
  108. package/dist/node.js +1 -0
  109. package/package.json +5 -4
  110. package/src/lib/cleanupDiagnostics.ts +2 -2
@@ -1,3 +1,63 @@
1
+ /**
2
+ * Tracer - Abstract base class for trace collection
3
+ *
4
+ * Per specs/lmao/01c_context_flow_and_op_wrappers.md:
5
+ * - Tracer owns trace() function for creating root spans
6
+ * - Collects SpanBuffers in pendingBuffers array
7
+ * - Subclasses implement flush() to define persistence strategy
8
+ *
9
+ * ## Design Philosophy
10
+ *
11
+ * Tracer separates two concerns:
12
+ * 1. **BufferStrategy**: HOW buffers are allocated (JS TypedArrays vs WASM memory)
13
+ * 2. **Sink behavior** (lifecycle hooks): WHAT happens with completed buffers
14
+ *
15
+ * Tracer is ABSTRACT - subclasses implement lifecycle hooks:
16
+ * - `onTraceEnd()` - called when root trace completes
17
+ * - `onSpanEnd()` - called when child span completes
18
+ * - `flush()` - optional, for batching strategies
19
+ *
20
+ * BufferStrategy is INJECTED via constructor:
21
+ * - `JsBufferStrategy` - GC-managed TypedArrays, zero-copy Arrow
22
+ * - `WasmBufferStrategy` - WASM memory with freelist, Arrow built in WASM
23
+ *
24
+ * The sink controls WHEN to convert/release:
25
+ * - StdioTracer: prints then releases immediately
26
+ * - TestTracer: holds buffers until clear()
27
+ * - SqsTracer: accumulates, converts on flush(), then releases
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * // Concrete implementation - Cloudflare Queue
32
+ * class QueueTracer extends Tracer {
33
+ * constructor(binding, strategy, options, private queue: Queue) {
34
+ * super(binding, strategy, options);
35
+ * }
36
+ *
37
+ * async flush() {
38
+ * const buffers = [...this.pending];
39
+ * this.pending.length = 0;
40
+ * for (const buffer of buffers) {
41
+ * const table = await this.bufferStrategy.toArrowTable(buffer);
42
+ * await this.queue.send(table);
43
+ * this.bufferStrategy.releaseBuffer(buffer);
44
+ * }
45
+ * }
46
+ * }
47
+ *
48
+ * // Usage
49
+ * const ctx = defineOpContext({ logSchema, ctx: { env: null as Env } });
50
+ * const strategy = new JsBufferStrategy();
51
+ * const { trace, flush } = new QueueTracer(ctx, strategy, options, env.TRACES);
52
+ * await trace('fetch', { env: myEnv }, async (ctx) => {
53
+ * ctx.tag.userId('user-123');
54
+ * return ctx.ok('done');
55
+ * });
56
+ * executionContext.waitUntil(flush());
57
+ * ```
58
+ *
59
+ * @module tracer
60
+ */
1
61
  import { createTagWriter } from './codegen/fixedPositionWriterGenerator.js';
2
62
  import { createSpanLogger as createSpanLoggerFromGenerator } from './codegen/spanLoggerGenerator.js';
3
63
  import { Op } from './op.js';
@@ -346,3 +406,4 @@ export class Tracer {
346
406
  }
347
407
  }
348
408
  }
409
+ //#endregion smoo/lmao!n/tracer-architecture
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayQueueTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/ArrayQueueTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC5F;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEhE,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIzE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAItE,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIzE,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIvE,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAI5E;;;;;OAKG;IACH,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE;CAKpD"}
1
+ {"version":3,"file":"ArrayQueueTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/ArrayQueueTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC5F;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEhE,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAErE;IAED,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAE3E;IAED;;;;;OAKG;IACH,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAIlD;CACF"}
@@ -65,3 +65,4 @@ export class ArrayQueueTracer extends Tracer {
65
65
  return buffers;
66
66
  }
67
67
  }
68
+ //#endregion smoo/lmao!n/array-queue-tracer
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/CompositeTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9C,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CACnF,SAAQ,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AAEH,qBAAa,eAAe,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;gBAE5B,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAK1D,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAMxE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAMtE,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAMxE,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAMtE,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAM5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
1
+ {"version":3,"file":"CompositeTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/CompositeTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9C,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CACnF,SAAQ,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AAEH,qBAAa,eAAe,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,YAAY,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAGzD;IAED,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIvE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIrE;IAED,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIvE;IAED,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIrE;IAED,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAI1E;IAEc,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAW3B;CACF"}
@@ -61,3 +61,4 @@ export class CompositeTracer extends Tracer {
61
61
  }
62
62
  }
63
63
  }
64
+ //#endregion smoo/lmao!n/tracer-implementations.composite
@@ -1 +1 @@
1
- {"version":3,"file":"NoOpTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/NoOpTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;GAOG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIzE;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIvE;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIzE;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIvE;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;CAG7E"}
1
+ {"version":3,"file":"NoOpTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/NoOpTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;GAOG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAE3E;CACF"}
@@ -1,3 +1,27 @@
1
+ /**
2
+ * NoOpTracer - A tracer that executes ops but discards all trace data
3
+ *
4
+ * All lifecycle hooks are no-ops - traces execute normally but produce no output.
5
+ * Useful for:
6
+ * - Tests that don't need to inspect trace output
7
+ * - Disabling tracing in production without code changes
8
+ * - Baseline performance testing (measures op execution cost without tracing overhead)
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { createTraceRoot } from '@smoothbricks/lmao/node';
13
+ * import { JsBufferStrategy } from '@smoothbricks/lmao';
14
+ *
15
+ * const ctx = defineOpContext({ logSchema });
16
+ * const { trace } = new NoOpTracer(ctx, {
17
+ * bufferStrategy: new JsBufferStrategy(),
18
+ * createTraceRoot,
19
+ * });
20
+ *
21
+ * // Trace executes, result returned, no side effects
22
+ * const result = await trace('fetch', fetchOp);
23
+ * ```
24
+ */
1
25
  import { Tracer } from '../tracer.js';
2
26
  /**
3
27
  * No-op tracer - executes ops normally but discards all trace data
@@ -40,3 +64,4 @@ export class NoOpTracer extends Tracer {
40
64
  // No-op
41
65
  }
42
66
  }
67
+ //#endregion smoo/lmao!n/tracer-implementations.noop
@@ -1 +1 @@
1
- {"version":3,"file":"SQLiteTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/SQLiteTracer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SQLiteTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/SQLiteTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,EAAE,EAAE,kBAAkB,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB,CACvC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACxD;AAED;;GAEG;AAEH,qBAAa,YAAY,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,YAAY,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAGjF;IAED,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIrE;IAED,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAE3E;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAI3B;CACF;AAGD;;;;GAIG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,aAAa,CAAiB;IAEtC,YAAY,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAGtF;IAED,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CASrE;IAED,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAE3E;IAEc,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAYpC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAM3B;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"StdioTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/StdioTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AA+HD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,iDAAiD;IACjD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;;;GASG;AAEH,qBAAa,WAAW,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACvF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;gBAE3B,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;IAWjF,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,YAAY;IAoCpB,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI;IASxF,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI;IAuBtF,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI;IAUxF,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI;IAwBtF,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;CAiB7E"}
1
+ {"version":3,"file":"StdioTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/StdioTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AA+HD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,iDAAiD;IACjD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;;;GASG;AAEH,qBAAa,WAAW,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACvF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,YAAY,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAKhF;IAMD,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,YAAY;IAoCpB,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAOvF;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAqBrF;IAED,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAQvF;IAED,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAsBrF;IAED,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAgB3E;CACF"}
@@ -1,3 +1,35 @@
1
+ /**
2
+ * StdioTracer - A tracer that prints spans to stdout/stderr
3
+ *
4
+ * Features:
5
+ * - Color-coded trace IDs based on trace_id for visual separation of concurrent traces
6
+ * - Per-trace indent tracking using Map<TraceId, number> for correct nesting
7
+ * - Human-readable timestamps (ISO 8601) and durations
8
+ * - Tree-style output with ├─ for start and └─ for end
9
+ * - Exceptions written to stderr
10
+ *
11
+ * Useful for development/debugging to see span execution in real-time.
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { createTraceRoot } from '@smoothbricks/lmao/node';
16
+ * import { JsBufferStrategy } from '@smoothbricks/lmao';
17
+ *
18
+ * const ctx = defineOpContext({ logSchema: mySchema });
19
+ * const { trace } = new StdioTracer(ctx, {
20
+ * bufferStrategy: new JsBufferStrategy(),
21
+ * createTraceRoot,
22
+ * });
23
+ *
24
+ * await trace('fetch-user', fetchOp);
25
+ *
26
+ * // Output:
27
+ * // [2025-12-25T10:30:45.123Z] [123456] fetch-user
28
+ * // [2025-12-25T10:30:45.125Z] [123456] ├─ db-query
29
+ * // [2025-12-25T10:30:45.225Z] [123456] └─ db-query [OK] (100.00ms)
30
+ * // [2025-12-25T10:30:45.226Z] [123456] fetch-user (103.00ms) ========
31
+ * ```
32
+ */
1
33
  import { ENTRY_TYPE_DEBUG, ENTRY_TYPE_ERROR, ENTRY_TYPE_INFO, ENTRY_TYPE_SPAN_ERR, ENTRY_TYPE_SPAN_EXCEPTION, ENTRY_TYPE_SPAN_OK, ENTRY_TYPE_TRACE, ENTRY_TYPE_WARN, } from '../schema/systemSchema.js';
2
34
  import { Tracer } from '../tracer.js';
3
35
  // ============================================================================
@@ -15,14 +47,14 @@ function formatTimestamp(nanos) {
15
47
  */
16
48
  function formatDuration(nanos) {
17
49
  const n = Number(nanos);
18
- if (n >= 1_000_000_000) {
19
- return `${(n / 1_000_000_000).toFixed(2)}s`;
50
+ if (n >= 1000000000) {
51
+ return `${(n / 1000000000).toFixed(2)}s`;
20
52
  }
21
- if (n >= 1_000_000) {
22
- return `${(n / 1_000_000).toFixed(2)}ms`;
53
+ if (n >= 1000000) {
54
+ return `${(n / 1000000).toFixed(2)}ms`;
23
55
  }
24
- if (n >= 1_000) {
25
- return `${(n / 1_000).toFixed(2)}µs`;
56
+ if (n >= 1000) {
57
+ return `${(n / 1000).toFixed(2)}µs`;
26
58
  }
27
59
  return `${n}ns`;
28
60
  }
@@ -269,3 +301,4 @@ export class StdioTracer extends Tracer {
269
301
  `capacity=${stats.capacity}\n`);
270
302
  }
271
303
  }
304
+ //#endregion smoo/lmao!n/tracer-implementations.stdio
@@ -1 +1 @@
1
- {"version":3,"file":"TestTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/TestTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEtE;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAM5E,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIzE,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAKtE,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIzE,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAIvE,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;IAe3E;;;OAGG;IACH,KAAK,IAAI,IAAI;CASd"}
1
+ {"version":3,"file":"TestTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/TestTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEtE;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAM5E,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAGrE;IAED,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAS1E;IAMD;;;OAGG;IACH,KAAK,IAAI,IAAI,CAQZ;CACF"}
@@ -1,3 +1,32 @@
1
+ /**
2
+ * TestTracer - A tracer that accumulates completed root trace buffers for test inspection.
3
+ *
4
+ * Child spans are accessible via the buffer's `_children` tree - no need to track them separately.
5
+ * This is the primary tracer for tests that need to inspect trace output, convert to Arrow tables,
6
+ * or verify buffer contents.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { createTraceRoot } from '@smoothbricks/lmao/node';
11
+ * import { JsBufferStrategy } from '@smoothbricks/lmao';
12
+ *
13
+ * const ctx = defineOpContext({ logSchema });
14
+ * const tracer = new TestTracer(ctx, {
15
+ * bufferStrategy: new JsBufferStrategy(),
16
+ * createTraceRoot,
17
+ * });
18
+ *
19
+ * await tracer.trace('my-op', myOp);
20
+ *
21
+ * // Inspect buffers
22
+ * expect(tracer.rootBuffers).toHaveLength(1);
23
+ *
24
+ * // Convert to Arrow using strategy
25
+ * const table = await tracer.bufferStrategy.toArrowTable(tracer.rootBuffers[0]);
26
+ * ```
27
+ *
28
+ * @module tracers/TestTracer
29
+ */
1
30
  import { Tracer } from '../tracer.js';
2
31
  function isResettableBufferStrategy(value) {
3
32
  return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'reset') === 'function';
@@ -86,3 +115,4 @@ export class TestTracer extends Tracer {
86
115
  }
87
116
  }
88
117
  }
118
+ //#endregion smoo/lmao!n/tracer-implementations.test
package/dist/lib/types.js CHANGED
@@ -1 +1,11 @@
1
+ /**
2
+ * LMAO-specific types for trace logging
3
+ *
4
+ * ## Type System
5
+ *
6
+ * - `AnySpanBuffer`: NO index signatures, accepts any schema (for generic processing)
7
+ * - `SpanBuffer<T>`: WITH index signatures, typed for specific schema T (T is REQUIRED)
8
+ *
9
+ * This mirrors arrow-builder's AnyColumnBuffer/ColumnBuffer<T> pattern.
10
+ */
1
11
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"utf8Cache.d.ts","sourceRoot":"","sources":["../../src/lib/utf8Cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY/D,KAAK,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAClE,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;;;;;GASG;AAEH,qBAAa,SAAU,YAAW,WAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAG7C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;gBAEP,OAAO,SAA0B;IAI7C;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU;IAa/B;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAe/B;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAOnE;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB;IA4BxD;;OAEG;IACH,IAAI,KAAK,IAAI,cAAc,CAQ1B;IAED;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,WAAkB,CAAC;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAE3D"}
1
+ {"version":3,"file":"utf8Cache.d.ts","sourceRoot":"","sources":["../../src/lib/utf8Cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY/D,KAAK,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAClE,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;;;;;GASG;AAEH,qBAAa,SAAU,YAAW,WAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAG7C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IAEnB,YAAY,OAAO,SAA0B,EAE5C;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAW9B;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa9B;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKlE;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,CA0BvD;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,cAAc,CAQ1B;IAED;;OAEG;IACH,UAAU,IAAI,IAAI,CAGjB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;CACF;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,WAAkB,CAAC;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAE3D"}
@@ -176,3 +176,4 @@ export const globalUtf8Cache = new Utf8Cache();
176
176
  export function createUtf8Cache(maxSize) {
177
177
  return new Utf8Cache(maxSize);
178
178
  }
179
+ //#endregion smoo/lmao!n/buffer-perf-utf8-cache
@@ -1 +1 @@
1
- {"version":3,"file":"WasmBufferStrategy.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/WasmBufferStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmBxG;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,mEAAmE;IACnE,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAC3F;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC;;OAEG;IACH,OAAO;IAIP;;;;;;;OAOG;WACU,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAKjC,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;IAwB5G,qBAAqB,CACnB,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,EAC3B,gBAAgB,EAAE,UAAU,EAC5B,UAAU,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GACT,UAAU,CAAC,CAAC,CAAC;IA0BhB,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAc1D,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK;IAK1C,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAK1C;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;;OAGG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,QAAQ,IAAI,kBAAkB;CAQ/B"}
1
+ {"version":3,"file":"WasmBufferStrategy.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/WasmBufferStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmBxG;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,mEAAmE;IACnE,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAC3F;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC;;OAEG;IACH,OAAO,eAEN;IAED;;;;;;;OAOG;IACH,OAAa,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAGhC;IAED,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAsB3G;IAED,qBAAqB,CACnB,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,EAC3B,gBAAgB,EAAE,UAAU,EAC5B,UAAU,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GACT,UAAU,CAAC,CAAC,CAAC,CAwBf;IAED,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAYzD;IAED,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAGzC;IAED,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAGzC;IAED;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;;OAGG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;OAEG;IACH,QAAQ,IAAI,kBAAkB,CAO7B;CACF"}
@@ -1,3 +1,17 @@
1
+ /**
2
+ * WasmBufferStrategy - Buffer strategy using WASM memory with freelist allocation.
3
+ *
4
+ * Uses WebAssembly memory for numeric columns with O(1) freelist allocation/deallocation.
5
+ * String columns remain in JavaScript.
6
+ *
7
+ * Memory characteristics:
8
+ * - Numeric data lives in contiguous WASM memory (better cache locality)
9
+ * - Freelist enables O(1) memory reuse across traces
10
+ * - Explicit release required (not GC-managed)
11
+ * - Arrow conversion reads from WASM memory views
12
+ *
13
+ * @module WasmBufferStrategy
14
+ */
1
15
  import { convertSpanTreeToArrowTable } from '../convertToArrow.js';
2
16
  import { EMPTY_SCOPE } from '../spanBuffer.js';
3
17
  import { createWasmAllocator } from './wasmAllocator.js';
@@ -138,3 +152,4 @@ export class WasmBufferStrategy {
138
152
  };
139
153
  }
140
154
  }
155
+ //#endregion smoo/lmao!n/wasm-mem.strategy
@@ -1,3 +1,18 @@
1
+ /**
2
+ * TypeScript wrapper for the WASM allocator.
3
+ *
4
+ * Implements spec 01q: WASM Memory Architecture for SpanBuffer Storage
5
+ *
6
+ * The allocator provides O(1) alloc/free via freelists with memory reuse.
7
+ * Each OpContext may have a different capacity - capacity is passed to each call.
8
+ *
9
+ * Buddy Allocation:
10
+ * - Blocks are organized by tier (capacity 8, 16, 32, 64, 128, 256, 512)
11
+ * - When freelist is empty, splits from larger tier
12
+ * - When freeing, merges with adjacent blocks if both are free (address-based buddy merge)
13
+ *
14
+ * Spec link (88): realizes specs/lmao/01q_wasm_memory_architecture.md#smoo/lmao!n/wasm-mem (TS allocator wrapper).
15
+ */
1
16
  /**
2
17
  * Size class enum matching Zig's SizeClass
3
18
  */
@@ -225,3 +240,4 @@ export function createWasmAllocatorSync(wasmModule, options) {
225
240
  const instance = new WebAssembly.Instance(wasmModule, imports);
226
241
  return wrapWasmInstance(instance, memory, capacity);
227
242
  }
243
+ //#endregion smoo/lmao!n/wasm-mem.ts-allocator
@@ -1,3 +1,14 @@
1
+ /**
2
+ * WASM-backed SpanBuffer class generation.
3
+ *
4
+ * Implements spec 01q: WASM Memory Architecture for SpanBuffer Storage
5
+ *
6
+ * Key differences from JS SpanBuffer:
7
+ * - System columns (timestamp, entry_type) live in WASM memory at _systemPtr
8
+ * - Numeric columns allocated lazily from WASM freelists
9
+ * - String columns (category, text) remain as JS string[] arrays
10
+ * - All TypedArray views created on-demand from WASM memory.buffer
11
+ */
1
12
  import { getSchemaType } from '@smoothbricks/arrow-builder';
2
13
  import { checkCapacityTuning } from '../capacityTuning.js';
3
14
  function getFieldEager(value) {
@@ -770,3 +781,4 @@ export function createWasmOverflowBuffer(buffer, _traceRoot, _scopeValues, _opMe
770
781
  buffer._overflow = overflow;
771
782
  return overflow;
772
783
  }
784
+ //#endregion smoo/lmao!n/wasm-mem.spanbuffer
@@ -1 +1 @@
1
- {"version":3,"file":"wasmTraceRoot.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/wasmTraceRoot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASxD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAE9E;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;gBAElB,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB;IAiBrF;;;OAGG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAG7B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAG1B;IAED;;;;;;;;OAQG;IACH,iBAAiB,IAAI,WAAW;IAWhC;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAqB7D;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IA0B5D;;;;;;;OAOG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAkB/D;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAI/D;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI1C;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAInF;;;OAGG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAI3C;;OAEG;IACH,IAAI,IAAI,IAAI;CAGb;AAMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,GAC3B,aAAa,CAEf;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,aAAa,IACzD,UAAU,MAAM,EAAE,QAAQ,oBAAoB,KAAG,aAAa,CAGvE"}
1
+ {"version":3,"file":"wasmTraceRoot.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/wasmTraceRoot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASxD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAE9E;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B,YAAY,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAepF;IAED;;;OAGG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAG7B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAG1B;IAED;;;;;;;;OAQG;IACH,iBAAiB,IAAI,WAAW,CAI/B;IAOD;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAmB5D;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAwB3D;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAW9D;IAOD;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAE9D;IAED;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEzC;IAED;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE1C;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElF;IAED;;;OAGG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1C;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAEX;CACF;AAMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,GAC3B,aAAa,CAEf;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,aAAa,cAC/C,MAAM,UAAU,oBAAoB,KAAG,aAAa,CAGvE"}
@@ -87,7 +87,7 @@ export class WasmTraceRoot {
87
87
  */
88
88
  getTimestampNanos() {
89
89
  const elapsedMs = performance.now() - this.anchorPerfNow;
90
- const elapsedNanos = BigInt(Math.round(elapsedMs * 1_000_000));
90
+ const elapsedNanos = BigInt(Math.round(elapsedMs * 1000000));
91
91
  return Nanoseconds.unsafe(this.anchorEpochNanos + elapsedNanos);
92
92
  }
93
93
  // ===========================================================================
@@ -262,3 +262,4 @@ export function createWasmTraceRootFactory(allocator) {
262
262
  return new WasmTraceRoot(allocator, createTraceId(trace_id), tracer);
263
263
  };
264
264
  }
265
+ //#endregion smoo/lmao!n/wasm-mem.trace-root
package/dist/node.js CHANGED
@@ -7,3 +7,4 @@ export * from './index.js';
7
7
  // Export Node.js-specific TraceRoot factory for Tracer construction
8
8
  //#region smoo/lmao!n/trace-root-timestamps.entry-points #node
9
9
  export { createTraceRoot } from './lib/traceRoot.node.js';
10
+ //#endregion smoo/lmao!n/trace-root-timestamps.entry-points
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smoothbricks/lmao",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "./dist/index.js",
@@ -124,10 +124,11 @@
124
124
  "dependencies": {
125
125
  "@msgpack/msgpack": "^3.1.3",
126
126
  "@neophi/sieve-cache": "^1.5.0",
127
- "@smoothbricks/arrow-builder": "0.1.2",
128
- "@smoothbricks/validation": "0.1.1",
127
+ "@smoothbricks/arrow-builder": "0.1.4",
128
+ "@smoothbricks/validation": "0.1.3",
129
129
  "@uwdata/flechette": "^2.3.0",
130
- "tslib": "^2.8.1"
130
+ "tslib": "^2.8.1",
131
+ "typia": "13.1.1"
131
132
  },
132
133
  "scripts": {
133
134
  "bench": "bun run benchmarks/*.bench.ts",
@@ -43,8 +43,8 @@ export function cleanupDebugActiveHandles(label: string): void {
43
43
  if (typeof handle !== 'object' || handle === null) {
44
44
  return typeof handle;
45
45
  }
46
- const constructor = Reflect.get(handle, 'constructor');
47
- const name = typeof constructor === 'function' ? Reflect.get(constructor, 'name') : undefined;
46
+ const handleConstructor = Reflect.get(handle, 'constructor');
47
+ const name = typeof handleConstructor === 'function' ? Reflect.get(handleConstructor, 'name') : undefined;
48
48
  return typeof name === 'string' && name.length > 0 ? name : 'Object';
49
49
  });
50
50