@smoothbricks/lmao 0.2.2 → 0.2.3

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 (276) hide show
  1. package/dist/allocator.wasm +0 -0
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/lib/JsBufferStrategy.d.ts +4 -3
  6. package/dist/lib/JsBufferStrategy.d.ts.map +1 -1
  7. package/dist/lib/JsBufferStrategy.js +18 -11
  8. package/dist/lib/arrow/lease.d.ts +10 -0
  9. package/dist/lib/arrow/lease.d.ts.map +1 -0
  10. package/dist/lib/arrow/lease.js +33 -0
  11. package/dist/lib/arrow/utils.d.ts +3 -4
  12. package/dist/lib/arrow/utils.d.ts.map +1 -1
  13. package/dist/lib/arrow/utils.js +12 -13
  14. package/dist/lib/arrow/vocabularyDictionary.d.ts +21 -0
  15. package/dist/lib/arrow/vocabularyDictionary.d.ts.map +1 -0
  16. package/dist/lib/arrow/vocabularyDictionary.js +95 -0
  17. package/dist/lib/bufferStrategy.d.ts +3 -2
  18. package/dist/lib/bufferStrategy.d.ts.map +1 -1
  19. package/dist/lib/cloudflare/traceRows.d.ts.map +1 -1
  20. package/dist/lib/cloudflare/traceRows.js +3 -2
  21. package/dist/lib/codegen/evaluatorGenerator.d.ts.map +1 -1
  22. package/dist/lib/codegen/evaluatorGenerator.js +12 -11
  23. package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts +44 -82
  24. package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts.map +1 -1
  25. package/dist/lib/codegen/fixedPositionWriterGenerator.js +223 -162
  26. package/dist/lib/codegen/spanLoggerClosureMaterializer.d.ts +63 -0
  27. package/dist/lib/codegen/spanLoggerClosureMaterializer.d.ts.map +1 -0
  28. package/dist/lib/codegen/spanLoggerClosureMaterializer.js +447 -0
  29. package/dist/lib/codegen/spanLoggerGenerator.d.ts +36 -19
  30. package/dist/lib/codegen/spanLoggerGenerator.d.ts.map +1 -1
  31. package/dist/lib/codegen/spanLoggerGenerator.js +164 -158
  32. package/dist/lib/convertToArrow.d.ts +7 -2
  33. package/dist/lib/convertToArrow.d.ts.map +1 -1
  34. package/dist/lib/convertToArrow.js +499 -285
  35. package/dist/lib/defineOpContext.js +1 -1
  36. package/dist/lib/enumMetadata.d.ts +19 -0
  37. package/dist/lib/enumMetadata.d.ts.map +1 -0
  38. package/dist/lib/enumMetadata.js +86 -0
  39. package/dist/lib/flushScheduler.d.ts.map +1 -1
  40. package/dist/lib/flushScheduler.js +13 -4
  41. package/dist/lib/library.d.ts +16 -98
  42. package/dist/lib/library.d.ts.map +1 -1
  43. package/dist/lib/library.js +32 -525
  44. package/dist/lib/logBinding.d.ts +21 -27
  45. package/dist/lib/logBinding.d.ts.map +1 -1
  46. package/dist/lib/op.d.ts +30 -30
  47. package/dist/lib/op.d.ts.map +1 -1
  48. package/dist/lib/op.js +15 -22
  49. package/dist/lib/opContext/createOpGroup.d.ts +1 -1
  50. package/dist/lib/opContext/createOpGroup.d.ts.map +1 -1
  51. package/dist/lib/opContext/createOpGroup.js +22 -29
  52. package/dist/lib/opContext/defineOp.d.ts +4 -4
  53. package/dist/lib/opContext/defineOp.d.ts.map +1 -1
  54. package/dist/lib/opContext/defineOp.js +53 -10
  55. package/dist/lib/opContext/opGroupTypes.d.ts +2 -2
  56. package/dist/lib/opContext/opTypes.d.ts +1 -1
  57. package/dist/lib/opContext/opTypes.d.ts.map +1 -1
  58. package/dist/lib/opContext/spanContextTypes.d.ts +29 -14
  59. package/dist/lib/opContext/spanContextTypes.d.ts.map +1 -1
  60. package/dist/lib/opContext/types.d.ts +4 -4
  61. package/dist/lib/opContext/types.d.ts.map +1 -1
  62. package/dist/lib/physicalLayoutPlan.d.ts +89 -0
  63. package/dist/lib/physicalLayoutPlan.d.ts.map +1 -0
  64. package/dist/lib/physicalLayoutPlan.js +442 -0
  65. package/dist/lib/resolveMessage.d.ts +9 -0
  66. package/dist/lib/resolveMessage.d.ts.map +1 -0
  67. package/dist/lib/resolveMessage.js +63 -0
  68. package/dist/lib/result.d.ts +5 -7
  69. package/dist/lib/result.d.ts.map +1 -1
  70. package/dist/lib/result.js +19 -26
  71. package/dist/lib/runtimeHint.d.ts +35 -0
  72. package/dist/lib/runtimeHint.d.ts.map +1 -0
  73. package/dist/lib/runtimeHint.js +79 -0
  74. package/dist/lib/schema/types.d.ts +1 -1
  75. package/dist/lib/schema/types.d.ts.map +1 -1
  76. package/dist/lib/span-buffer/aot/v1.d.ts +2 -0
  77. package/dist/lib/span-buffer/aot/v1.d.ts.map +1 -0
  78. package/dist/lib/span-buffer/aot/v1.js +24 -0
  79. package/dist/lib/spanBuffer.d.ts +33 -4
  80. package/dist/lib/spanBuffer.d.ts.map +1 -1
  81. package/dist/lib/spanBuffer.js +583 -91
  82. package/dist/lib/spanBufferStats.d.ts +1 -1
  83. package/dist/lib/spanBufferStats.d.ts.map +1 -1
  84. package/dist/lib/spanContext.d.ts +27 -51
  85. package/dist/lib/spanContext.d.ts.map +1 -1
  86. package/dist/lib/spanContext.js +822 -344
  87. package/dist/lib/sqlite/sqlite-common.d.ts.map +1 -1
  88. package/dist/lib/sqlite/sqlite-common.js +20 -21
  89. package/dist/lib/testing/bun-harness.d.ts +8 -3
  90. package/dist/lib/testing/bun-harness.d.ts.map +1 -1
  91. package/dist/lib/testing/bun-harness.js +30 -18
  92. package/dist/lib/testing/extractFacts.d.ts +1 -1
  93. package/dist/lib/testing/extractFacts.d.ts.map +1 -1
  94. package/dist/lib/testing/extractFacts.js +55 -63
  95. package/dist/lib/testing/facts.d.ts +1 -1
  96. package/dist/lib/testing/facts.d.ts.map +1 -1
  97. package/dist/lib/testing/queryable-span.d.ts +1 -1
  98. package/dist/lib/testing/queryable-span.d.ts.map +1 -1
  99. package/dist/lib/testing/queryable-span.js +26 -28
  100. package/dist/lib/testing/span-query.d.ts.map +1 -1
  101. package/dist/lib/testing/span-query.js +19 -22
  102. package/dist/lib/testing/stdio-replay.d.ts.map +1 -1
  103. package/dist/lib/testing/stdio-replay.js +19 -8
  104. package/dist/lib/threadId.d.ts.map +1 -1
  105. package/dist/lib/threadId.js +6 -3
  106. package/dist/lib/traceRoot.d.ts +30 -8
  107. package/dist/lib/traceRoot.d.ts.map +1 -1
  108. package/dist/lib/traceRoot.es.d.ts +17 -15
  109. package/dist/lib/traceRoot.es.d.ts.map +1 -1
  110. package/dist/lib/traceRoot.es.js +68 -34
  111. package/dist/lib/traceRoot.js +11 -0
  112. package/dist/lib/traceRoot.node.d.ts +17 -19
  113. package/dist/lib/traceRoot.node.d.ts.map +1 -1
  114. package/dist/lib/traceRoot.node.js +66 -38
  115. package/dist/lib/traceTopology.d.ts +42 -0
  116. package/dist/lib/traceTopology.d.ts.map +1 -0
  117. package/dist/lib/traceTopology.js +260 -0
  118. package/dist/lib/tracer.d.ts +9 -5
  119. package/dist/lib/tracer.d.ts.map +1 -1
  120. package/dist/lib/tracer.js +65 -71
  121. package/dist/lib/tracers/ArrayQueueTracer.d.ts +1 -1
  122. package/dist/lib/tracers/ArrayQueueTracer.js +1 -1
  123. package/dist/lib/tracers/StdioTracer.d.ts.map +1 -1
  124. package/dist/lib/tracers/StdioTracer.js +15 -13
  125. package/dist/lib/tracers/TestTracer.d.ts +4 -6
  126. package/dist/lib/tracers/TestTracer.d.ts.map +1 -1
  127. package/dist/lib/tracers/TestTracer.js +6 -8
  128. package/dist/lib/types.d.ts +49 -32
  129. package/dist/lib/types.d.ts.map +1 -1
  130. package/dist/lib/vocabularyRegistry.d.ts +25 -0
  131. package/dist/lib/vocabularyRegistry.d.ts.map +1 -0
  132. package/dist/lib/vocabularyRegistry.js +372 -0
  133. package/dist/lib/wasm/WasmBufferStrategy.d.ts +6 -10
  134. package/dist/lib/wasm/WasmBufferStrategy.d.ts.map +1 -1
  135. package/dist/lib/wasm/WasmBufferStrategy.js +44 -37
  136. package/dist/lib/wasm/wasmAllocator.d.ts +27 -22
  137. package/dist/lib/wasm/wasmAllocator.d.ts.map +1 -1
  138. package/dist/lib/wasm/wasmAllocator.js +66 -44
  139. package/dist/lib/wasm/wasmPhysicalLayout.d.ts +67 -0
  140. package/dist/lib/wasm/wasmPhysicalLayout.d.ts.map +1 -0
  141. package/dist/lib/wasm/wasmPhysicalLayout.js +179 -0
  142. package/dist/lib/wasm/wasmSpanBuffer.d.ts +79 -31
  143. package/dist/lib/wasm/wasmSpanBuffer.d.ts.map +1 -1
  144. package/dist/lib/wasm/wasmSpanBuffer.js +442 -272
  145. package/dist/lib/wasm/wasmTraceRoot.d.ts +24 -22
  146. package/dist/lib/wasm/wasmTraceRoot.d.ts.map +1 -1
  147. package/dist/lib/wasm/wasmTraceRoot.js +110 -71
  148. package/dist/vocabulary/register/v1.d.ts +2 -0
  149. package/dist/vocabulary/register/v1.d.ts.map +1 -0
  150. package/dist/vocabulary/register/v1.js +1 -0
  151. package/dist/wasm.d.ts +5 -0
  152. package/dist/wasm.d.ts.map +1 -0
  153. package/dist/wasm.js +4 -0
  154. package/package.json +54 -6
  155. package/src/index.ts +1 -0
  156. package/src/lib/JsBufferStrategy.ts +27 -9
  157. package/src/lib/__tests__/arrow-builder-integration/arrow-conversion.test.ts +335 -37
  158. package/src/lib/__tests__/arrow-builder-integration/binary-arrow-conversion.test.ts +97 -26
  159. package/src/lib/__tests__/arrow-builder-integration/binary-comparison.test.ts +75 -15
  160. package/src/lib/__tests__/arrow-builder-integration/binary-format-compliance.test.ts +30 -6
  161. package/src/lib/__tests__/arrow-builder-integration/buffer-chaining.test.ts +18 -21
  162. package/src/lib/__tests__/arrow-builder-integration/foundation.test.ts +5 -2
  163. package/src/lib/__tests__/arrow-builder-integration/integration.test.ts +25 -7
  164. package/src/lib/__tests__/arrow-builder-integration/lazy-columns.test.ts +3 -2
  165. package/src/lib/__tests__/buffer-overflow.test.ts +24 -18
  166. package/src/lib/__tests__/capability-span-context.test.ts +505 -0
  167. package/src/lib/__tests__/capacity-tuning.test.ts +5 -3
  168. package/src/lib/__tests__/eager-columns.test.ts +345 -0
  169. package/src/lib/__tests__/enum-metadata-aot.test.ts +153 -0
  170. package/src/lib/__tests__/enum-metadata.test.ts +177 -0
  171. package/src/lib/__tests__/fixtures/empty-vocabulary-runtime.fixture.ts +15 -0
  172. package/src/lib/__tests__/flushScheduler.test.ts +5 -1
  173. package/src/lib/__tests__/identity-view.property.test.ts +179 -0
  174. package/src/lib/__tests__/library.test.ts +19 -235
  175. package/src/lib/__tests__/message-buffer-families.test.ts +878 -0
  176. package/src/lib/__tests__/nested-library-tasks.test.ts +14 -15
  177. package/src/lib/__tests__/op-metadata.test.ts +1 -1
  178. package/src/lib/__tests__/op-type-safety.test.ts +5 -16
  179. package/src/lib/__tests__/physical-layout-plan.test.ts +333 -0
  180. package/src/lib/__tests__/remap-descriptor-integration.test.ts +381 -0
  181. package/src/lib/__tests__/root-context-construction.test.ts +414 -0
  182. package/src/lib/__tests__/span-auto-runtime.test.ts +386 -0
  183. package/src/lib/__tests__/span-buffer-segment-stats.test.ts +221 -0
  184. package/src/lib/__tests__/span-lifecycle.test.ts +53 -25
  185. package/src/lib/__tests__/spanbuffer-materializer-parity.test.ts +266 -0
  186. package/src/lib/__tests__/sync-async-trace.test.ts +24 -23
  187. package/src/lib/__tests__/tag-writer-aot.test.ts +214 -0
  188. package/src/lib/__tests__/test-helpers.ts +67 -12
  189. package/src/lib/__tests__/threadId.test.ts +62 -0
  190. package/src/lib/__tests__/timestamp.test.ts +221 -93
  191. package/src/lib/__tests__/traceTopology.property.test.ts +383 -0
  192. package/src/lib/__tests__/type-narrowing.test.ts +63 -0
  193. package/src/lib/__tests__/vocabulary-dense-decoding.test.ts +405 -0
  194. package/src/lib/__tests__/vocabularyRegistry.test.ts +313 -0
  195. package/src/lib/arrow/lease.ts +43 -0
  196. package/src/lib/arrow/utils.ts +10 -14
  197. package/src/lib/arrow/vocabularyDictionary.ts +123 -0
  198. package/src/lib/bufferStrategy.ts +9 -1
  199. package/src/lib/cloudflare/traceRows.ts +3 -2
  200. package/src/lib/codegen/__tests__/evaluatorGenerator.test.ts +21 -141
  201. package/src/lib/codegen/__tests__/fixedPositionWriter-parity.test.ts +273 -0
  202. package/src/lib/codegen/__tests__/fixedPositionWriter-uint64.test.ts +61 -34
  203. package/src/lib/codegen/__tests__/nullBitmap.test.ts +33 -37
  204. package/src/lib/codegen/__tests__/spanLoggerGenerator.test.ts +34 -18
  205. package/src/lib/codegen/__tests__/spanLoggerMaterializerParity.test.ts +503 -0
  206. package/src/lib/codegen/evaluatorGenerator.ts +18 -13
  207. package/src/lib/codegen/fixedPositionWriterGenerator.ts +329 -245
  208. package/src/lib/codegen/spanLoggerClosureMaterializer.ts +598 -0
  209. package/src/lib/codegen/spanLoggerGenerator.ts +241 -177
  210. package/src/lib/convertToArrow.ts +598 -311
  211. package/src/lib/defineOpContext.ts +1 -1
  212. package/src/lib/enumMetadata.ts +121 -0
  213. package/src/lib/flushScheduler.ts +11 -5
  214. package/src/lib/library.ts +37 -595
  215. package/src/lib/logBinding.ts +21 -27
  216. package/src/lib/op.ts +75 -18
  217. package/src/lib/opContext/__tests__/retry.test.ts +27 -21
  218. package/src/lib/opContext/createOpGroup.ts +33 -31
  219. package/src/lib/opContext/defineOp.ts +88 -11
  220. package/src/lib/opContext/opGroupTypes.ts +2 -2
  221. package/src/lib/opContext/opTypes.ts +1 -1
  222. package/src/lib/opContext/spanContextTypes.ts +98 -17
  223. package/src/lib/opContext/types.ts +7 -3
  224. package/src/lib/physicalLayoutPlan.ts +598 -0
  225. package/src/lib/resolveMessage.ts +67 -0
  226. package/src/lib/result.ts +20 -33
  227. package/src/lib/runtimeHint.ts +98 -0
  228. package/src/lib/schema/__tests__/featureFlags.test.ts +2 -1
  229. package/src/lib/schema/builder.ts +1 -1
  230. package/src/lib/schema/types.ts +1 -1
  231. package/src/lib/span-buffer/aot/v1.ts +26 -0
  232. package/src/lib/spanBuffer.ts +658 -92
  233. package/src/lib/spanBufferStats.ts +1 -1
  234. package/src/lib/spanContext.ts +1350 -861
  235. package/src/lib/sqlite/sqlite-common.ts +20 -31
  236. package/src/lib/testing/__tests__/topology-traversal.test.ts +174 -0
  237. package/src/lib/testing/__tests__/vitest-harness.test.ts +2 -1
  238. package/src/lib/testing/bun-harness.ts +94 -43
  239. package/src/lib/testing/extractFacts.ts +64 -78
  240. package/src/lib/testing/facts.ts +1 -1
  241. package/src/lib/testing/queryable-span.ts +23 -30
  242. package/src/lib/testing/span-query.ts +16 -20
  243. package/src/lib/testing/stdio-replay.ts +25 -8
  244. package/src/lib/testing/vitest-harness.ts +1 -1
  245. package/src/lib/threadId.ts +6 -3
  246. package/src/lib/traceRoot.es.ts +77 -42
  247. package/src/lib/traceRoot.node.ts +75 -46
  248. package/src/lib/traceRoot.ts +41 -14
  249. package/src/lib/traceTopology.ts +279 -0
  250. package/src/lib/tracer.ts +109 -98
  251. package/src/lib/tracers/ArrayQueueTracer.ts +1 -1
  252. package/src/lib/tracers/StdioTracer.ts +15 -13
  253. package/src/lib/tracers/TestTracer.ts +6 -8
  254. package/src/lib/tracers/__tests__/ArrayQueueTracer.test.ts +15 -10
  255. package/src/lib/tracers/__tests__/TestTracer.test.ts +23 -13
  256. package/src/lib/types.ts +64 -33
  257. package/src/lib/vocabularyRegistry.ts +439 -0
  258. package/src/lib/wasm/WasmBufferStrategy.ts +56 -48
  259. package/src/lib/wasm/__tests__/WasmBufferStrategy.test.ts +215 -11
  260. package/src/lib/wasm/__tests__/allocatorFreeBlockClamp.test.ts +86 -0
  261. package/src/lib/wasm/__tests__/wasm-identity-view.test.ts +311 -0
  262. package/src/lib/wasm/__tests__/wasm-integration.test.ts +417 -44
  263. package/src/lib/wasm/__tests__/wasm-message-buffer-families.test.ts +588 -0
  264. package/src/lib/wasm/__tests__/wasmAllocator.test.ts +100 -668
  265. package/src/lib/wasm/__tests__/wasmSpanBuffer.test.ts +419 -63
  266. package/src/lib/wasm/__tests__/wasmTraceRoot.test.ts +24 -29
  267. package/src/lib/wasm/__tests__/wasmTracer.test.ts.disabled +2 -2
  268. package/src/lib/wasm/wasmAllocator.ts +131 -96
  269. package/src/lib/wasm/wasmPhysicalLayout.ts +309 -0
  270. package/src/lib/wasm/wasmSpanBuffer.ts +597 -341
  271. package/src/lib/wasm/wasmTraceRoot.ts +140 -78
  272. package/src/vocabulary/register/v1.ts +1 -0
  273. package/src/wasm.ts +19 -0
  274. package/src/lib/__tests__/remapped-buffer-view-integration.test.ts +0 -319
  275. package/src/lib/__tests__/remapped-buffer-view.test.ts +0 -635
  276. package/src/lib/wasm/allocator.zig +0 -948
@@ -148,7 +148,7 @@ function buildOpContextFactory(effectiveFields, flags, deps, ctxDefaults) {
148
148
  // See agent-todo/opgroup-refactor.md lines 58-70, 525-547 for rationale.
149
149
  const logBinding = {
150
150
  logSchema: mergedSchema,
151
- remappedViewClass: undefined,
151
+ remapDescriptor: undefined,
152
152
  };
153
153
  // WHY: build the binding first so Ops created by defineOp carry it via _opContextBinding.
154
154
  // This enables downstream consumers (defineAgentOps, OpRegistry) to extract the LMAO schema.
@@ -0,0 +1,19 @@
1
+ import type { LogSchema } from './schema/LogSchema.js';
2
+ export type EnumIndexArray = Uint8Array | Uint16Array | Uint32Array;
3
+ export type EnumIndexArrayConstructor = Uint8ArrayConstructor | Uint16ArrayConstructor | Uint32ArrayConstructor;
4
+ /** Immutable schema-order metadata for one enum column. */
5
+ export interface EnumLookupDescriptor {
6
+ readonly fieldName: string;
7
+ readonly values: readonly string[];
8
+ readonly indexArrayConstructor: EnumIndexArrayConstructor;
9
+ /** Encode a declared value, preserving strict string matching and index 0 for every invalid value. */
10
+ readonly encode: (value: unknown) => number;
11
+ }
12
+ /** Immutable enum metadata shared by every physical plan for one LogSchema. */
13
+ export interface SchemaEnumLookupDescriptor {
14
+ readonly ordered: readonly EnumLookupDescriptor[];
15
+ readonly byField: Readonly<Record<string, EnumLookupDescriptor>>;
16
+ }
17
+ /** Resolve and cache schema-order enum lookup metadata exactly once per LogSchema. */
18
+ export declare function resolveEnumLookupDescriptor(schema: LogSchema): SchemaEnumLookupDescriptor;
19
+ //# sourceMappingURL=enumMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enumMetadata.d.ts","sourceRoot":"","sources":["../../src/lib/enumMetadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAEhH,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IACnC,QAAQ,CAAC,qBAAqB,EAAE,yBAAyB,CAAC;IAC1D,sGAAsG;IACtG,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CAC7C;AAED,+EAA+E;AAC/E,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,OAAO,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAClD,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC;CAClE;AA0ED,sFAAsF;AACtF,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,0BAA0B,CA0BzF"}
@@ -0,0 +1,86 @@
1
+ import { getEnumValues, getSchemaType } from './schema/typeGuards.js';
2
+ function createNullPrototypeRecord() {
3
+ return Object.create(null);
4
+ }
5
+ const EMPTY_ENUM_DESCRIPTORS = Object.freeze([]);
6
+ const EMPTY_ENUM_LOOKUP = Object.freeze({
7
+ ordered: EMPTY_ENUM_DESCRIPTORS,
8
+ byField: Object.freeze(createNullPrototypeRecord()),
9
+ });
10
+ const enumLookupBySchema = new WeakMap();
11
+ const enumLookupCoreByFieldSchema = new WeakMap();
12
+ const enumLookupDescriptorsByFieldSchema = new WeakMap();
13
+ function indexArrayConstructorForCount(count) {
14
+ // The maximum stored index is count - 1, so 256 and 65,536 values still fit
15
+ // exactly in Uint8 and Uint16 respectively.
16
+ if (count <= 0x100)
17
+ return Uint8Array;
18
+ if (count <= 65536)
19
+ return Uint16Array;
20
+ return Uint32Array;
21
+ }
22
+ function createEnumEncoder(values) {
23
+ const ordinalByValue = createNullPrototypeRecord();
24
+ for (let index = 0; index < values.length; index++) {
25
+ const value = values[index];
26
+ // Switch cases historically resolve duplicate declarations to the first
27
+ // matching case. Preserve that byte-level behavior in the fallback table.
28
+ if (!Object.hasOwn(ordinalByValue, value))
29
+ ordinalByValue[value] = index;
30
+ }
31
+ const immutableOrdinalByValue = Object.freeze(ordinalByValue);
32
+ return (value) => (typeof value === 'string' ? (immutableOrdinalByValue[value] ?? 0) : 0);
33
+ }
34
+ function createEnumLookupDescriptor(fieldName, fieldSchema, sourceValues) {
35
+ let descriptorsByName = enumLookupDescriptorsByFieldSchema.get(fieldSchema);
36
+ const cached = descriptorsByName?.[fieldName];
37
+ if (cached)
38
+ return cached;
39
+ let core = enumLookupCoreByFieldSchema.get(fieldSchema);
40
+ if (!core) {
41
+ const values = Object.freeze(Array.from(sourceValues));
42
+ core = Object.freeze({
43
+ values,
44
+ indexArrayConstructor: indexArrayConstructorForCount(values.length),
45
+ encode: createEnumEncoder(values),
46
+ });
47
+ enumLookupCoreByFieldSchema.set(fieldSchema, core);
48
+ }
49
+ const descriptor = Object.freeze({
50
+ fieldName,
51
+ values: core.values,
52
+ indexArrayConstructor: core.indexArrayConstructor,
53
+ encode: core.encode,
54
+ });
55
+ descriptorsByName ??= createNullPrototypeRecord();
56
+ descriptorsByName[fieldName] = descriptor;
57
+ enumLookupDescriptorsByFieldSchema.set(fieldSchema, descriptorsByName);
58
+ return descriptor;
59
+ }
60
+ /** Resolve and cache schema-order enum lookup metadata exactly once per LogSchema. */
61
+ export function resolveEnumLookupDescriptor(schema) {
62
+ const cached = enumLookupBySchema.get(schema);
63
+ if (cached)
64
+ return cached;
65
+ const ordered = [];
66
+ const byField = createNullPrototypeRecord();
67
+ for (const [fieldName, fieldSchema] of schema._columns) {
68
+ if (getSchemaType(fieldSchema) !== 'enum')
69
+ continue;
70
+ const values = getEnumValues(fieldSchema);
71
+ if (!values || (typeof fieldSchema !== 'object' && typeof fieldSchema !== 'function') || fieldSchema === null) {
72
+ continue;
73
+ }
74
+ const descriptor = createEnumLookupDescriptor(fieldName, fieldSchema, values);
75
+ ordered.push(descriptor);
76
+ byField[fieldName] = descriptor;
77
+ }
78
+ const descriptor = ordered.length === 0
79
+ ? EMPTY_ENUM_LOOKUP
80
+ : Object.freeze({
81
+ ordered: Object.freeze(ordered),
82
+ byField: Object.freeze(byField),
83
+ });
84
+ enumLookupBySchema.set(schema, descriptor);
85
+ return descriptor;
86
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"flushScheduler.d.ts","sourceRoot":"","sources":["../../src/lib/flushScheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flushScheduler.d.ts","sourceRoot":"","sources":["../../src/lib/flushScheduler.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@
8
8
  */
9
9
  import { Column, tableFromColumns } from '@uwdata/flechette';
10
10
  import { cleanupDebug } from './cleanupDiagnostics.js';
11
- import { convertSpanTreeToArrowTable } from './convertToArrow.js';
11
+ import { convertSpanTreeToLeasedArrowTable } from './convertToArrow.js';
12
12
  /**
13
13
  * Number of flushes before logging capacity stats.
14
14
  * Capacity stats are logged periodically to avoid overhead on every flush.
@@ -273,11 +273,16 @@ export class FlushScheduler {
273
273
  return;
274
274
  // Convert all buffers to Arrow tables and concatenate
275
275
  const tables = [];
276
+ const leases = [];
276
277
  for (const buffer of buffersToFlush) {
277
278
  try {
278
- const table = convertSpanTreeToArrowTable(buffer, undefined, modulesToLogStatsForConversion);
279
- if (table.numRows > 0) {
280
- tables.push(table);
279
+ const lease = convertSpanTreeToLeasedArrowTable(buffer, undefined, modulesToLogStatsForConversion);
280
+ if (lease.table.numRows > 0) {
281
+ leases.push(lease);
282
+ tables.push(lease.table);
283
+ }
284
+ else {
285
+ lease.release();
281
286
  }
282
287
  }
283
288
  catch (error) {
@@ -342,6 +347,10 @@ export class FlushScheduler {
342
347
  });
343
348
  // Do NOT reset buffers on failure to avoid data loss
344
349
  }
350
+ finally {
351
+ for (const lease of leases)
352
+ lease.release();
353
+ }
345
354
  }
346
355
  /**
347
356
  * Record activity (called when buffers are written to)
@@ -4,34 +4,27 @@
4
4
  * WHY: Libraries need to write clean, domain-focused code (ctx.tag.status(200))
5
5
  * while avoiding naming conflicts when composed with other libraries.
6
6
  *
7
- * HOW: At composition time (cold path), we generate a remapped SpanLogger class
8
- * that exposes clean method names but writes to prefixed buffer columns.
7
+ * HOW: At composition time (cold path), we create immutable Arrow remap descriptors.
8
+ * Child buffers retain canonical schema/layout.
9
9
  *
10
10
  * Per specs/lmao/01e_library_integration_pattern.md:
11
11
  * - Libraries define clean schemas without prefixes (status, method, url)
12
12
  * - Prefixing happens at composition time (http_status, http_method, http_url)
13
- * - Zero hot path overhead - all remapping done via code generation at module creation
13
+ * - Zero hot path overhead - remapping is composed at module creation
14
14
  *
15
- * WHAT: This module provides:
16
- * - prefixSchema() - Rename schema fields with prefix
17
- * - createPrefixMapping() - Build clean→prefixed name mapping
18
- * - generateRemappedBufferViewClass() - Generate view for Arrow conversion
19
- * - generateRemappedSpanLoggerClass() - Generate class with clean methods, prefixed writes
20
- * - createRemappedSpanLoggerClass() - Compile and cache SpanLogger classes
15
+ * WHAT: This module provides schema/prefix mapping utilities and immutable remap
16
+ * descriptors for cold Arrow conversion.
21
17
  */
22
- import type { SpanLoggerImpl } from './codegen/spanLoggerGenerator.js';
18
+ import type { RemapDescriptor } from './logBinding.js';
23
19
  import { LogSchema } from './schema/types.js';
24
- import type { AnySpanBuffer } from './types.js';
25
- type RemappedBufferViewConstructor = new (buffer: AnySpanBuffer) => AnySpanBuffer;
26
- type RemappedSpanLoggerConstructor<T extends LogSchema = LogSchema> = new (buffer: AnySpanBuffer, createOverflowBuffer: (buffer: AnySpanBuffer) => AnySpanBuffer, initialScopedAttributes?: Record<string, unknown>) => SpanLoggerImpl<T>;
27
20
  /**
28
21
  * Prefix a tag attribute schema
29
22
  * Renames all fields with a prefix to avoid conflicts
30
23
  *
31
24
  * 01j "Library Compilation (Prefixed)": a library defines clean field names
32
- * (status, method); the consumer applies a prefix (http) at wire time. This block
33
- * generates the prefixed schema, the clean->prefixed mapping, and the RemappedSpanLogger /
34
- * RemappedBufferView classes whose clean methods write to prefixed columns.
25
+ * (status, method); the consumer applies a prefix (http) at wire time. The utilities
26
+ * below create the prefixed schema, clean-to-prefixed mapping, and immutable Arrow
27
+ * remap descriptor.
35
28
  *
36
29
  * Example:
37
30
  * - Input: { status: S.number(), method: S.enum(['GET', 'POST']) }
@@ -55,8 +48,8 @@ export interface PrefixMapping {
55
48
  /**
56
49
  * Create a mapping from clean field names to prefixed column names
57
50
  *
58
- * WHY: This mapping is used by generateRemappedSpanLoggerClass to create methods
59
- * that write to prefixed columns but expose clean API names.
51
+ * WHY: This mapping exposes the relationship between clean library field names and
52
+ * their prefixed column names.
60
53
  *
61
54
  * @param schema - Clean schema (LogSchema instance)
62
55
  * @param prefix - Prefix to apply (e.g., 'http')
@@ -69,86 +62,11 @@ export interface PrefixMapping {
69
62
  */
70
63
  export declare function createPrefixMapping<T extends LogSchema>(schema: T, prefix: string): PrefixMapping;
71
64
  /**
72
- * Generate a RemappedBufferView class for library prefix support.
65
+ * Create immutable output-to-source metadata for cold Arrow traversal.
73
66
  *
74
- * WHY: Libraries write to unprefixed columns (status, method) but Arrow conversion
75
- * iterates using prefixed names from the root schema (http_status, http_method).
76
- * RemappedBufferView bridges this gap for tree traversal during cold-path Arrow conversion.
77
- *
78
- * HOW: Uses new Function() to generate a class at library composition time (cold path).
79
- * The generated class wraps a SpanBuffer and remaps getColumnIfAllocated/getNullsIfAllocated
80
- * calls from prefixed names to unprefixed names.
81
- *
82
- * WHAT: Returns a class constructor that:
83
- * - Passes through tree traversal properties (children, next)
84
- * - Passes through system columns (timestamps, operations, message, etc.)
85
- * - Passes through identity properties (traceId, spanId, etc.)
86
- * - Remaps getColumnIfAllocated() and getNullsIfAllocated() from prefixed→unprefixed
87
- *
88
- * Per specs/lmao/01e_library_integration_pattern.md:
89
- * - Hot path: Library writes directly to unprefixed columns (zero overhead)
90
- * - Cold path: Arrow conversion uses RemappedBufferView to access via prefixed names
91
- *
92
- * @param prefixToUnprefixedMapping - Maps prefixed names to unprefixed names
93
- * e.g., { 'http_status': 'status', 'http_method': 'method' }
94
- * NOTE: The mapping is prefixed→unprefixed (reverse of createPrefixMapping output)
95
- *
96
- * @returns Constructor for RemappedBufferView class
97
- *
98
- * @example
99
- * ```typescript
100
- * // Create mapping (prefixed → unprefixed)
101
- * const mapping = { 'http_status': 'status', 'http_method': 'method' };
102
- * const ViewClass = generateRemappedBufferViewClass(mapping);
103
- *
104
- * // Wrap library buffer
105
- * const view = new ViewClass(libraryBuffer);
106
- *
107
- * // Access via prefixed name returns unprefixed column
108
- * view.getColumnIfAllocated('http_status'); // Returns buffer.getColumnIfAllocated('status')
109
- * ```
110
- */
111
- export declare function generateRemappedBufferViewClass(prefixToUnprefixedMapping: Record<string, string>): RemappedBufferViewConstructor;
112
- /**
113
- * Generate a remapped SpanLogger class for library prefix support
114
- *
115
- * WHY: Library authors write clean code (ctx.tag.status(200)) but buffers use prefixed
116
- * columns (http_status). This function generates a class at module creation time
117
- * (cold path) that exposes clean method names but writes to prefixed columns.
118
- *
119
- * HOW: Uses new Function() to generate optimized JavaScript code. The generated class
120
- * has methods named after clean schema fields but writes to prefixed buffer columns.
121
- *
122
- * WHAT: Returns executable JavaScript code string for a SpanLogger class with:
123
- * - Clean method names (status, method, url)
124
- * - Writes to prefixed columns (http_status, http_method, http_url)
125
- * - Full support for enum/category/text type handling
126
- * - Method chaining support
127
- *
128
- * @param cleanSchema - Original clean schema (without prefix)
129
- * @param prefixMapping - Mapping from clean names to prefixed names
130
- * @param className - Name for the generated class
131
- * @returns Executable JavaScript code string
132
- *
133
- * @example
134
- * const code = generateRemappedSpanLoggerClass(
135
- * { status: S.number(), method: S.enum(['GET', 'POST']) },
136
- * { status: 'http_status', method: 'http_method' },
137
- * 'HttpSpanLogger'
138
- * );
139
- * // Generated class has .status() method that writes to http_status
140
- */
141
- export declare function generateRemappedSpanLoggerClass<T extends LogSchema>(cleanSchema: T, prefixMapping: PrefixMapping, className?: string): string;
142
- /**
143
- * Create a remapped SpanLogger class constructor from clean schema and prefix mapping
144
- *
145
- * WHY: This is the cold-path function called at module creation time. It compiles
146
- * the generated class code once and caches the constructor.
147
- *
148
- * @param cleanSchema - Clean schema (without prefix)
149
- * @param prefixMapping - Mapping from clean names to prefixed names
150
- * @returns Constructor for the remapped SpanLogger class
67
+ * The mapping is already fully composed by OpGroup prefix/map operations. Keeping
68
+ * both the frozen lookup and output schema entries avoids wrapping child buffers
69
+ * or reconstructing schema metadata during each traversal.
151
70
  */
152
- export declare function createRemappedSpanLoggerClass<T extends LogSchema>(cleanSchema: T, prefixMapping: PrefixMapping): RemappedSpanLoggerConstructor<T>;
153
- export {};
71
+ export declare function createRemapDescriptor(sourceSchema: LogSchema, outputToSourceMapping: Record<string, string>): RemapDescriptor;
154
72
  //# sourceMappingURL=library.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/lib/library.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AASvE,OAAO,EAAE,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,KAAK,6BAA6B,GAAG,KAAK,MAAM,EAAE,aAAa,KAAK,aAAa,CAAC;AAClF,KAAK,6BAA6B,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI,KACpE,MAAM,EAAE,aAAa,EACrB,oBAAoB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,aAAa,EAC9D,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC9C,cAAc,CAAC,CAAC,CAAC,CAAC;AAkCvB;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAenG;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CASjG;AAsCD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,+BAA+B,CAC7C,yBAAyB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChD,6BAA6B,CA0F/B;AAkHD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,+BAA+B,CAAC,CAAC,SAAS,SAAS,EACjE,WAAW,EAAE,CAAC,EACd,aAAa,EAAE,aAAa,EAC5B,SAAS,SAAuB,GAC/B,MAAM,CAkMR;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,CAAC,SAAS,SAAS,EAC/D,WAAW,EAAE,CAAC,EACd,aAAa,EAAE,aAAa,GAC3B,6BAA6B,CAAC,CAAC,CAAC,CAkBlC"}
1
+ {"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/lib/library.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAkB,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,SAAS,EAAqB,MAAM,mBAAmB,CAAC;AAMjE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAenG;AAED;;;;;;;;;GASG;AACH,MAAM,WAAW,aAAa;IAC5B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CASjG;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,SAAS,EACvB,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5C,eAAe,CAuBjB"}