@smoothbricks/lmao 0.1.4 → 0.2.1

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 (148) hide show
  1. package/dist/cloudflare.d.ts +15 -0
  2. package/dist/cloudflare.d.ts.map +1 -0
  3. package/dist/cloudflare.js +14 -0
  4. package/dist/es.js +1 -0
  5. package/dist/lib/JsBufferStrategy.d.ts.map +1 -1
  6. package/dist/lib/JsBufferStrategy.js +12 -0
  7. package/dist/lib/archive/chunkEnvelope.js +1 -0
  8. package/dist/lib/archive/chunkRouting.js +1 -0
  9. package/dist/lib/archive/chunkStats.js +1 -0
  10. package/dist/lib/arrow/capacityStats.js +1 -0
  11. package/dist/lib/arrow/dictionaries.d.ts.map +1 -1
  12. package/dist/lib/buffer/Nanoseconds.d.ts.map +1 -1
  13. package/dist/lib/buffer/Nanoseconds.js +34 -0
  14. package/dist/lib/bufferStrategy.js +21 -0
  15. package/dist/lib/capacityTuning.js +26 -0
  16. package/dist/lib/cleanupDiagnostics.js +2 -2
  17. package/dist/lib/cloudflare/classSplit.d.ts +73 -0
  18. package/dist/lib/cloudflare/classSplit.d.ts.map +1 -0
  19. package/dist/lib/cloudflare/classSplit.js +101 -0
  20. package/dist/lib/cloudflare/collectorClient.d.ts +69 -0
  21. package/dist/lib/cloudflare/collectorClient.d.ts.map +1 -0
  22. package/dist/lib/cloudflare/collectorClient.js +82 -0
  23. package/dist/lib/cloudflare/diagnosticDrain.d.ts +78 -0
  24. package/dist/lib/cloudflare/diagnosticDrain.d.ts.map +1 -0
  25. package/dist/lib/cloudflare/diagnosticDrain.js +120 -0
  26. package/dist/lib/cloudflare/traceRows.d.ts +19 -0
  27. package/dist/lib/cloudflare/traceRows.d.ts.map +1 -0
  28. package/dist/lib/cloudflare/traceRows.js +51 -0
  29. package/dist/lib/codegen/evaluatorGenerator.js +2 -1
  30. package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts +8 -0
  31. package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts.map +1 -1
  32. package/dist/lib/codegen/fixedPositionWriterGenerator.js +18 -1
  33. package/dist/lib/codegen/spanLoggerGenerator.js +1 -0
  34. package/dist/lib/errors/Blocked.d.ts +1 -1
  35. package/dist/lib/errors/Blocked.d.ts.map +1 -1
  36. package/dist/lib/errors/Blocked.js +53 -0
  37. package/dist/lib/errors/CodeError.d.ts.map +1 -1
  38. package/dist/lib/errors/CodeError.js +31 -0
  39. package/dist/lib/errors/RetriesExhausted.d.ts +1 -1
  40. package/dist/lib/errors/RetriesExhausted.d.ts.map +1 -1
  41. package/dist/lib/errors/RetriesExhausted.js +38 -0
  42. package/dist/lib/errors/Transient.d.ts +1 -1
  43. package/dist/lib/errors/Transient.d.ts.map +1 -1
  44. package/dist/lib/errors/Transient.js +31 -0
  45. package/dist/lib/errors/retry-policy.js +1 -0
  46. package/dist/lib/flushScheduler.d.ts +0 -3
  47. package/dist/lib/flushScheduler.d.ts.map +1 -1
  48. package/dist/lib/library.js +1 -0
  49. package/dist/lib/logApi.js +11 -0
  50. package/dist/lib/logBinding.js +13 -0
  51. package/dist/lib/op.d.ts.map +1 -1
  52. package/dist/lib/op.js +15 -0
  53. package/dist/lib/opContext/contextTypes.d.ts +1 -1
  54. package/dist/lib/opContext/contextTypes.d.ts.map +1 -1
  55. package/dist/lib/opContext/createOpGroup.js +1 -0
  56. package/dist/lib/opContext/featureFlagTypes.js +13 -0
  57. package/dist/lib/opContext/opGroupTypes.d.ts +1 -1
  58. package/dist/lib/opContext/opGroupTypes.d.ts.map +1 -1
  59. package/dist/lib/opContext/opGroupTypes.js +16 -0
  60. package/dist/lib/opContext/opTypes.js +14 -0
  61. package/dist/lib/opContext/spanContextTypes.js +19 -0
  62. package/dist/lib/opContext/types.js +15 -0
  63. package/dist/lib/result.d.ts.map +1 -1
  64. package/dist/lib/schema/LogSchema.d.ts.map +1 -1
  65. package/dist/lib/schema/builder.js +1 -0
  66. package/dist/lib/schema/defineFeatureFlags.js +1 -0
  67. package/dist/lib/schema/defineLogSchema.js +10 -0
  68. package/dist/lib/schema/evaluator.d.ts.map +1 -1
  69. package/dist/lib/schema/evaluator.js +1 -0
  70. package/dist/lib/schema/systemSchema.d.ts +1 -1
  71. package/dist/lib/schema/systemSchema.d.ts.map +1 -1
  72. package/dist/lib/schema/systemSchema.js +8 -0
  73. package/dist/lib/schema/types.js +6 -0
  74. package/dist/lib/spanBuffer.d.ts.map +1 -1
  75. package/dist/lib/spanBufferHelpers.js +1 -0
  76. package/dist/lib/spanBufferStats.js +24 -0
  77. package/dist/lib/spanContext.js +1 -0
  78. package/dist/lib/sqlite/sqlite-async-writer.d.ts.map +1 -1
  79. package/dist/lib/sqlite/sqlite-common.d.ts +2 -0
  80. package/dist/lib/sqlite/sqlite-common.d.ts.map +1 -1
  81. package/dist/lib/sqlite/sqlite-common.js +4 -0
  82. package/dist/lib/sqlite/sqlite-d1.js +8 -0
  83. package/dist/lib/sqlite/sqlite-db.js +8 -0
  84. package/dist/lib/sqlite/sqlite-writer.d.ts.map +1 -1
  85. package/dist/lib/testing/bun-harness.d.ts +4 -0
  86. package/dist/lib/testing/bun-harness.d.ts.map +1 -1
  87. package/dist/lib/testing/extractFacts.js +8 -0
  88. package/dist/lib/testing/facts.d.ts.map +1 -1
  89. package/dist/lib/testing/facts.js +19 -0
  90. package/dist/lib/testing/queryable-span.js +16 -0
  91. package/dist/lib/testing/span-query.js +8 -0
  92. package/dist/lib/testing/trace-query.d.ts.map +1 -1
  93. package/dist/lib/testing/trace-query.js +247 -219
  94. package/dist/lib/traceContext.js +8 -0
  95. package/dist/lib/traceId.js +1 -0
  96. package/dist/lib/traceRoot.d.ts +5 -5
  97. package/dist/lib/traceRoot.es.d.ts.map +1 -1
  98. package/dist/lib/traceRoot.es.js +2 -1
  99. package/dist/lib/traceRoot.js +16 -1
  100. package/dist/lib/traceRoot.node.d.ts +2 -2
  101. package/dist/lib/traceRoot.node.d.ts.map +1 -1
  102. package/dist/lib/traceRoot.node.js +4 -3
  103. package/dist/lib/tracer.d.ts.map +1 -1
  104. package/dist/lib/tracer.js +61 -0
  105. package/dist/lib/tracers/ArrayQueueTracer.d.ts.map +1 -1
  106. package/dist/lib/tracers/ArrayQueueTracer.js +1 -0
  107. package/dist/lib/tracers/CompositeTracer.d.ts.map +1 -1
  108. package/dist/lib/tracers/CompositeTracer.js +1 -0
  109. package/dist/lib/tracers/NoOpTracer.d.ts.map +1 -1
  110. package/dist/lib/tracers/NoOpTracer.js +25 -0
  111. package/dist/lib/tracers/SQLiteTracer.d.ts.map +1 -1
  112. package/dist/lib/tracers/StdioTracer.d.ts.map +1 -1
  113. package/dist/lib/tracers/StdioTracer.js +39 -6
  114. package/dist/lib/tracers/TestTracer.d.ts.map +1 -1
  115. package/dist/lib/tracers/TestTracer.js +30 -0
  116. package/dist/lib/types.js +10 -0
  117. package/dist/lib/utf8Cache.d.ts.map +1 -1
  118. package/dist/lib/utf8Cache.js +1 -0
  119. package/dist/lib/wasm/WasmBufferStrategy.d.ts.map +1 -1
  120. package/dist/lib/wasm/WasmBufferStrategy.js +15 -0
  121. package/dist/lib/wasm/wasmAllocator.js +16 -0
  122. package/dist/lib/wasm/wasmSpanBuffer.js +12 -0
  123. package/dist/lib/wasm/wasmTraceRoot.d.ts.map +1 -1
  124. package/dist/lib/wasm/wasmTraceRoot.js +2 -1
  125. package/dist/node.js +1 -0
  126. package/package.json +11 -4
  127. package/src/cloudflare.ts +35 -0
  128. package/src/lib/bufferStrategy.ts +2 -2
  129. package/src/lib/cleanupDiagnostics.ts +2 -2
  130. package/src/lib/cloudflare/__tests__/classSplit.test.ts +171 -0
  131. package/src/lib/cloudflare/__tests__/collectorClient.test.ts +104 -0
  132. package/src/lib/cloudflare/__tests__/diagnosticDrain.test.ts +165 -0
  133. package/src/lib/cloudflare/classSplit.ts +139 -0
  134. package/src/lib/cloudflare/collectorClient.ts +117 -0
  135. package/src/lib/cloudflare/diagnosticDrain.ts +152 -0
  136. package/src/lib/cloudflare/traceRows.ts +60 -0
  137. package/src/lib/codegen/__tests__/fixedPositionWriter-uint64.test.ts +304 -0
  138. package/src/lib/codegen/evaluatorGenerator.ts +2 -2
  139. package/src/lib/codegen/fixedPositionWriterGenerator.ts +26 -1
  140. package/src/lib/schema/defineFeatureFlags.ts +2 -2
  141. package/src/lib/schema/evaluator.ts +2 -2
  142. package/src/lib/sqlite/sqlite-common.ts +5 -0
  143. package/src/lib/testing/__tests__/facts.test.ts +6 -6
  144. package/src/lib/traceRoot.es.ts +2 -2
  145. package/src/lib/traceRoot.node.ts +3 -3
  146. package/src/lib/traceRoot.ts +5 -5
  147. package/src/lib/tracers/ArrayQueueTracer.ts +2 -2
  148. package/src/lib/codegen/__tests__/__snapshots__/spanLoggerGenerator.test.ts.snap +0 -1965
@@ -52,8 +52,8 @@ export class TraceRoot implements ITraceRoot {
52
52
  private readonly _perfView: Float64Array;
53
53
 
54
54
  /**
55
- * Cached anchor hrtime as BigInt for JS timestamp fallback.
56
- * Only used if NAPI addon is not available.
55
+ * Cached anchor hrtime as the exact BigInt, so the JS timestamp delta stays
56
+ * correct after the f64 `anchorPerfNow` loses integer precision (~104 days uptime).
57
57
  */
58
58
  private readonly _anchorHrtimeBigInt: bigint;
59
59
 
@@ -165,7 +165,7 @@ export class TraceRoot implements ITraceRoot {
165
165
  export function createTraceRoot(trace_id: string, tracer: TracerLifecycleHooks): TraceRoot {
166
166
  const anchorEpochNanos = BigInt(Date.now()) * 1_000_000n;
167
167
  const anchorHrtimeBigInt = process.hrtime.bigint();
168
- // Store as number for NAPI to read as f64
168
+ // Also store as f64 in the shared _system layout (WASM reads it without BigInt extraction)
169
169
  const anchorPerfNow = Number(anchorHrtimeBigInt);
170
170
  return new TraceRoot(createTraceId(trace_id), anchorEpochNanos, anchorPerfNow, anchorHrtimeBigInt, tracer);
171
171
  }
@@ -8,7 +8,7 @@
8
8
  *
9
9
  * Platform-specific implementations:
10
10
  * - TraceRoot.es.ts: Browser - uses performance.now() for timing
11
- * - TraceRoot.node.ts: Node.js - delegates to NAPI addon for optimized writes
11
+ * - TraceRoot.node.ts: Node.js - process.hrtime.bigint(), pure-JS writes to SpanBuffer state
12
12
  *
13
13
  * @module traceRoot
14
14
  */
@@ -61,7 +61,7 @@ export interface TracerLifecycleHooks {
61
61
  *
62
62
  * Total: 17 + trace_id.length bytes
63
63
  *
64
- * This layout enables NAPI/WASM to read anchors directly without BigInt extraction.
64
+ * This layout enables the WASM path to read anchors directly without BigInt extraction.
65
65
  */
66
66
  //#region smoo/lmao!n/trace-root-timestamps #contract
67
67
  export const TRACE_ROOT_ANCHOR_EPOCH_OFFSET = 0;
@@ -74,7 +74,7 @@ export const TRACE_ROOT_TRACE_ID_OFFSET = 17;
74
74
  *
75
75
  * Each implementation handles timestamp calculation and span writes differently:
76
76
  * - Browser: Pure JS with performance.now()
77
- * - Node.js: NAPI addon with mach_absolute_time() / clock_gettime()
77
+ * - Node.js: process.hrtime.bigint() (pure JS; a NAPI addon was benchmarked slower than WASM and removed)
78
78
  */
79
79
  /**
80
80
  * Factory function type for creating platform-specific TraceRoot instances.
@@ -87,7 +87,7 @@ export type TraceRootFactory = (trace_id: string, tracer: TracerLifecycleHooks)
87
87
  export interface ITraceRoot {
88
88
  /**
89
89
  * Raw backing buffer containing anchor timestamps and trace_id.
90
- * NAPI/WASM can read this directly without BigInt extraction.
90
+ * The WASM path can read this directly without BigInt extraction.
91
91
  */
92
92
  readonly _system: ArrayBuffer;
93
93
 
@@ -110,7 +110,7 @@ export interface ITraceRoot {
110
110
  /**
111
111
  * High-resolution timer anchor when trace was created.
112
112
  * Browser: performance.now() value (number)
113
- * Node.js: stored as number for NAPI compatibility, but represents hrtime
113
+ * Node.js: stored as number in the shared layout (WASM-readable), but represents hrtime
114
114
  */
115
115
  readonly anchorPerfNow: number;
116
116
 
@@ -1,4 +1,4 @@
1
- //#region corpos/billing!n/audit-pricing-metering.lmao-array-queue-tracer
1
+ //#region smoo/lmao!n/array-queue-tracer
2
2
  import type { OpContextBinding } from '../opContext/types.js';
3
3
  import { Tracer } from '../tracer.js';
4
4
  import type { SpanBuffer } from '../types.js';
@@ -75,4 +75,4 @@ export class ArrayQueueTracer<B extends OpContextBinding = OpContextBinding> ext
75
75
  return buffers;
76
76
  }
77
77
  }
78
- //#endregion corpos/billing!n/audit-pricing-metering.lmao-array-queue-tracer
78
+ //#endregion smoo/lmao!n/array-queue-tracer