@smoothbricks/lmao 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +269 -0
- package/dist/allocator.wasm +0 -0
- package/dist/bun/preload.d.ts +11 -0
- package/dist/bun/preload.d.ts.map +1 -0
- package/dist/bun/preload.js +10 -0
- package/dist/bun/trace-preload.d.ts +8 -0
- package/dist/bun/trace-preload.d.ts.map +1 -0
- package/dist/bun/trace-preload.js +12 -0
- package/dist/es.d.ts +8 -0
- package/dist/es.d.ts.map +1 -0
- package/dist/es.js +9 -0
- package/dist/index.d.ts +41 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +84 -0
- package/dist/lib/JsBufferStrategy.d.ts +49 -0
- package/dist/lib/JsBufferStrategy.d.ts.map +1 -0
- package/dist/lib/JsBufferStrategy.js +60 -0
- package/dist/lib/archive/chunkCompaction.d.ts +15 -0
- package/dist/lib/archive/chunkCompaction.d.ts.map +1 -0
- package/dist/lib/archive/chunkCompaction.js +24 -0
- package/dist/lib/archive/chunkEnvelope.d.ts +21 -0
- package/dist/lib/archive/chunkEnvelope.d.ts.map +1 -0
- package/dist/lib/archive/chunkEnvelope.js +55 -0
- package/dist/lib/archive/chunkRouting.d.ts +10 -0
- package/dist/lib/archive/chunkRouting.d.ts.map +1 -0
- package/dist/lib/archive/chunkRouting.js +47 -0
- package/dist/lib/archive/chunkStats.d.ts +12 -0
- package/dist/lib/archive/chunkStats.d.ts.map +1 -0
- package/dist/lib/archive/chunkStats.js +10 -0
- package/dist/lib/archive/index.d.ts +5 -0
- package/dist/lib/archive/index.d.ts.map +1 -0
- package/dist/lib/archive/index.js +4 -0
- package/dist/lib/arrow/capacityStats.d.ts +9 -0
- package/dist/lib/arrow/capacityStats.d.ts.map +1 -0
- package/dist/lib/arrow/capacityStats.js +231 -0
- package/dist/lib/arrow/dictionaries.d.ts +27 -0
- package/dist/lib/arrow/dictionaries.d.ts.map +1 -0
- package/dist/lib/arrow/dictionaries.js +135 -0
- package/dist/lib/arrow/flechette.d.ts +40 -0
- package/dist/lib/arrow/flechette.d.ts.map +1 -0
- package/dist/lib/arrow/flechette.js +67 -0
- package/dist/lib/arrow/utils.d.ts +38 -0
- package/dist/lib/arrow/utils.d.ts.map +1 -0
- package/dist/lib/arrow/utils.js +112 -0
- package/dist/lib/buffer/Nanoseconds.d.ts +109 -0
- package/dist/lib/buffer/Nanoseconds.d.ts.map +1 -0
- package/dist/lib/buffer/Nanoseconds.js +86 -0
- package/dist/lib/bufferStrategy.d.ts +95 -0
- package/dist/lib/bufferStrategy.d.ts.map +1 -0
- package/dist/lib/bufferStrategy.js +1 -0
- package/dist/lib/capacityTuning.d.ts +50 -0
- package/dist/lib/capacityTuning.d.ts.map +1 -0
- package/dist/lib/capacityTuning.js +65 -0
- package/dist/lib/codegen/evaluatorGenerator.d.ts +35 -0
- package/dist/lib/codegen/evaluatorGenerator.d.ts.map +1 -0
- package/dist/lib/codegen/evaluatorGenerator.js +199 -0
- package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts +139 -0
- package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts.map +1 -0
- package/dist/lib/codegen/fixedPositionWriterGenerator.js +289 -0
- package/dist/lib/codegen/spanLoggerGenerator.d.ts +115 -0
- package/dist/lib/codegen/spanLoggerGenerator.d.ts.map +1 -0
- package/dist/lib/codegen/spanLoggerGenerator.js +575 -0
- package/dist/lib/convertToArrow.d.ts +40 -0
- package/dist/lib/convertToArrow.d.ts.map +1 -0
- package/dist/lib/convertToArrow.js +1467 -0
- package/dist/lib/defineOpContext.d.ts +96 -0
- package/dist/lib/defineOpContext.d.ts.map +1 -0
- package/dist/lib/defineOpContext.js +227 -0
- package/dist/lib/errors/Blocked.d.ts +113 -0
- package/dist/lib/errors/Blocked.d.ts.map +1 -0
- package/dist/lib/errors/Blocked.js +68 -0
- package/dist/lib/errors/CodeError.d.ts +101 -0
- package/dist/lib/errors/CodeError.d.ts.map +1 -0
- package/dist/lib/errors/CodeError.js +42 -0
- package/dist/lib/errors/RetriesExhausted.d.ts +67 -0
- package/dist/lib/errors/RetriesExhausted.d.ts.map +1 -0
- package/dist/lib/errors/RetriesExhausted.js +31 -0
- package/dist/lib/errors/Transient.d.ts +115 -0
- package/dist/lib/errors/Transient.d.ts.map +1 -0
- package/dist/lib/errors/Transient.js +54 -0
- package/dist/lib/errors/index.d.ts +14 -0
- package/dist/lib/errors/index.d.ts.map +1 -0
- package/dist/lib/errors/index.js +16 -0
- package/dist/lib/errors/retry-policy.d.ts +60 -0
- package/dist/lib/errors/retry-policy.d.ts.map +1 -0
- package/dist/lib/errors/retry-policy.js +54 -0
- package/dist/lib/flushScheduler.d.ts +162 -0
- package/dist/lib/flushScheduler.d.ts.map +1 -0
- package/dist/lib/flushScheduler.js +388 -0
- package/dist/lib/library.d.ts +149 -0
- package/dist/lib/library.d.ts.map +1 -0
- package/dist/lib/library.js +588 -0
- package/dist/lib/logApi.d.ts +61 -0
- package/dist/lib/logApi.d.ts.map +1 -0
- package/dist/lib/logApi.js +12 -0
- package/dist/lib/logBinding.d.ts +63 -0
- package/dist/lib/logBinding.d.ts.map +1 -0
- package/dist/lib/logBinding.js +1 -0
- package/dist/lib/op.d.ts +105 -0
- package/dist/lib/op.d.ts.map +1 -0
- package/dist/lib/op.js +59 -0
- package/dist/lib/opContext/contextTypes.d.ts +88 -0
- package/dist/lib/opContext/contextTypes.d.ts.map +1 -0
- package/dist/lib/opContext/contextTypes.js +34 -0
- package/dist/lib/opContext/createOpGroup.d.ts +57 -0
- package/dist/lib/opContext/createOpGroup.d.ts.map +1 -0
- package/dist/lib/opContext/createOpGroup.js +341 -0
- package/dist/lib/opContext/defineOp.d.ts +83 -0
- package/dist/lib/opContext/defineOp.d.ts.map +1 -0
- package/dist/lib/opContext/defineOp.js +197 -0
- package/dist/lib/opContext/featureFlagTypes.d.ts +58 -0
- package/dist/lib/opContext/featureFlagTypes.d.ts.map +1 -0
- package/dist/lib/opContext/featureFlagTypes.js +1 -0
- package/dist/lib/opContext/index.d.ts +13 -0
- package/dist/lib/opContext/index.d.ts.map +1 -0
- package/dist/lib/opContext/index.js +15 -0
- package/dist/lib/opContext/opGroupTypes.d.ts +250 -0
- package/dist/lib/opContext/opGroupTypes.d.ts.map +1 -0
- package/dist/lib/opContext/opGroupTypes.js +31 -0
- package/dist/lib/opContext/opTypes.d.ts +48 -0
- package/dist/lib/opContext/opTypes.d.ts.map +1 -0
- package/dist/lib/opContext/opTypes.js +7 -0
- package/dist/lib/opContext/spanContextTypes.d.ts +347 -0
- package/dist/lib/opContext/spanContextTypes.d.ts.map +1 -0
- package/dist/lib/opContext/spanContextTypes.js +1 -0
- package/dist/lib/opContext/types.d.ts +297 -0
- package/dist/lib/opContext/types.d.ts.map +1 -0
- package/dist/lib/opContext/types.js +16 -0
- package/dist/lib/result.d.ts +308 -0
- package/dist/lib/result.d.ts.map +1 -0
- package/dist/lib/result.js +359 -0
- package/dist/lib/schema/LogSchema.d.ts +62 -0
- package/dist/lib/schema/LogSchema.d.ts.map +1 -0
- package/dist/lib/schema/LogSchema.js +134 -0
- package/dist/lib/schema/builder.d.ts +12 -0
- package/dist/lib/schema/builder.d.ts.map +1 -0
- package/dist/lib/schema/builder.js +169 -0
- package/dist/lib/schema/defineFeatureFlags.d.ts +60 -0
- package/dist/lib/schema/defineFeatureFlags.d.ts.map +1 -0
- package/dist/lib/schema/defineFeatureFlags.js +29 -0
- package/dist/lib/schema/defineLogSchema.d.ts +87 -0
- package/dist/lib/schema/defineLogSchema.d.ts.map +1 -0
- package/dist/lib/schema/defineLogSchema.js +171 -0
- package/dist/lib/schema/evaluator.d.ts +267 -0
- package/dist/lib/schema/evaluator.d.ts.map +1 -0
- package/dist/lib/schema/evaluator.js +169 -0
- package/dist/lib/schema/extend.d.ts +14 -0
- package/dist/lib/schema/extend.d.ts.map +1 -0
- package/dist/lib/schema/extend.js +51 -0
- package/dist/lib/schema/systemSchema.d.ts +112 -0
- package/dist/lib/schema/systemSchema.d.ts.map +1 -0
- package/dist/lib/schema/systemSchema.js +260 -0
- package/dist/lib/schema/typeGuards.d.ts +52 -0
- package/dist/lib/schema/typeGuards.d.ts.map +1 -0
- package/dist/lib/schema/typeGuards.js +127 -0
- package/dist/lib/schema/types.d.ts +156 -0
- package/dist/lib/schema/types.d.ts.map +1 -0
- package/dist/lib/schema/types.js +4 -0
- package/dist/lib/spanBuffer.d.ts +133 -0
- package/dist/lib/spanBuffer.d.ts.map +1 -0
- package/dist/lib/spanBuffer.js +442 -0
- package/dist/lib/spanBufferHelpers.d.ts +53 -0
- package/dist/lib/spanBufferHelpers.d.ts.map +1 -0
- package/dist/lib/spanBufferHelpers.js +65 -0
- package/dist/lib/spanBufferStats.d.ts +38 -0
- package/dist/lib/spanBufferStats.d.ts.map +1 -0
- package/dist/lib/spanBufferStats.js +1 -0
- package/dist/lib/spanContext.d.ts +141 -0
- package/dist/lib/spanContext.d.ts.map +1 -0
- package/dist/lib/spanContext.js +763 -0
- package/dist/lib/sqlite/index.d.ts +14 -0
- package/dist/lib/sqlite/index.d.ts.map +1 -0
- package/dist/lib/sqlite/index.js +12 -0
- package/dist/lib/sqlite/sqlite-async-writer.d.ts +24 -0
- package/dist/lib/sqlite/sqlite-async-writer.d.ts.map +1 -0
- package/dist/lib/sqlite/sqlite-async-writer.js +65 -0
- package/dist/lib/sqlite/sqlite-common.d.ts +37 -0
- package/dist/lib/sqlite/sqlite-common.d.ts.map +1 -0
- package/dist/lib/sqlite/sqlite-common.js +207 -0
- package/dist/lib/sqlite/sqlite-d1.d.ts +25 -0
- package/dist/lib/sqlite/sqlite-d1.d.ts.map +1 -0
- package/dist/lib/sqlite/sqlite-d1.js +67 -0
- package/dist/lib/sqlite/sqlite-db.d.ts +29 -0
- package/dist/lib/sqlite/sqlite-db.d.ts.map +1 -0
- package/dist/lib/sqlite/sqlite-db.js +1 -0
- package/dist/lib/sqlite/sqlite-node.d.ts +16 -0
- package/dist/lib/sqlite/sqlite-node.d.ts.map +1 -0
- package/dist/lib/sqlite/sqlite-node.js +68 -0
- package/dist/lib/sqlite/sqlite-writer.d.ts +39 -0
- package/dist/lib/sqlite/sqlite-writer.d.ts.map +1 -0
- package/dist/lib/sqlite/sqlite-writer.js +78 -0
- package/dist/lib/testing/bun-harness.d.ts +150 -0
- package/dist/lib/testing/bun-harness.d.ts.map +1 -0
- package/dist/lib/testing/bun-harness.js +729 -0
- package/dist/lib/testing/extractFacts.d.ts +73 -0
- package/dist/lib/testing/extractFacts.d.ts.map +1 -0
- package/dist/lib/testing/extractFacts.js +237 -0
- package/dist/lib/testing/facts.d.ts +235 -0
- package/dist/lib/testing/facts.d.ts.map +1 -0
- package/dist/lib/testing/facts.js +209 -0
- package/dist/lib/testing/index.d.ts +58 -0
- package/dist/lib/testing/index.d.ts.map +1 -0
- package/dist/lib/testing/index.js +74 -0
- package/dist/lib/testing/queryable-span.d.ts +39 -0
- package/dist/lib/testing/queryable-span.d.ts.map +1 -0
- package/dist/lib/testing/queryable-span.js +58 -0
- package/dist/lib/testing/span-query.d.ts +21 -0
- package/dist/lib/testing/span-query.d.ts.map +1 -0
- package/dist/lib/testing/span-query.js +47 -0
- package/dist/lib/testing/stdio-replay.d.ts +4 -0
- package/dist/lib/testing/stdio-replay.d.ts.map +1 -0
- package/dist/lib/testing/stdio-replay.js +42 -0
- package/dist/lib/testing/trace-query.d.ts +59 -0
- package/dist/lib/testing/trace-query.d.ts.map +1 -0
- package/dist/lib/testing/trace-query.js +462 -0
- package/dist/lib/testing/vitest-harness.d.ts +135 -0
- package/dist/lib/testing/vitest-harness.d.ts.map +1 -0
- package/dist/lib/testing/vitest-harness.js +486 -0
- package/dist/lib/threadId.d.ts +58 -0
- package/dist/lib/threadId.d.ts.map +1 -0
- package/dist/lib/threadId.js +123 -0
- package/dist/lib/traceContext.d.ts +116 -0
- package/dist/lib/traceContext.d.ts.map +1 -0
- package/dist/lib/traceContext.js +37 -0
- package/dist/lib/traceId.d.ts +78 -0
- package/dist/lib/traceId.d.ts.map +1 -0
- package/dist/lib/traceId.js +87 -0
- package/dist/lib/traceRoot.d.ts +133 -0
- package/dist/lib/traceRoot.d.ts.map +1 -0
- package/dist/lib/traceRoot.es.d.ts +75 -0
- package/dist/lib/traceRoot.es.d.ts.map +1 -0
- package/dist/lib/traceRoot.es.js +129 -0
- package/dist/lib/traceRoot.js +19 -0
- package/dist/lib/traceRoot.node.d.ts +77 -0
- package/dist/lib/traceRoot.node.d.ts.map +1 -0
- package/dist/lib/traceRoot.node.js +133 -0
- package/dist/lib/traceRoot.universal.d.ts +3 -0
- package/dist/lib/traceRoot.universal.d.ts.map +1 -0
- package/dist/lib/traceRoot.universal.js +17 -0
- package/dist/lib/tracer.d.ts +296 -0
- package/dist/lib/tracer.d.ts.map +1 -0
- package/dist/lib/tracer.js +346 -0
- package/dist/lib/tracers/ArrayQueueTracer.d.ts +56 -0
- package/dist/lib/tracers/ArrayQueueTracer.d.ts.map +1 -0
- package/dist/lib/tracers/ArrayQueueTracer.js +67 -0
- package/dist/lib/tracers/CompositeTracer.d.ts +24 -0
- package/dist/lib/tracers/CompositeTracer.d.ts.map +1 -0
- package/dist/lib/tracers/CompositeTracer.js +57 -0
- package/dist/lib/tracers/NoOpTracer.d.ts +58 -0
- package/dist/lib/tracers/NoOpTracer.d.ts.map +1 -0
- package/dist/lib/tracers/NoOpTracer.js +41 -0
- package/dist/lib/tracers/SQLiteTracer.d.ts +42 -0
- package/dist/lib/tracers/SQLiteTracer.d.ts.map +1 -0
- package/dist/lib/tracers/SQLiteTracer.js +84 -0
- package/dist/lib/tracers/StdioTracer.d.ts +83 -0
- package/dist/lib/tracers/StdioTracer.d.ts.map +1 -0
- package/dist/lib/tracers/StdioTracer.js +270 -0
- package/dist/lib/tracers/TestTracer.d.ts +95 -0
- package/dist/lib/tracers/TestTracer.d.ts.map +1 -0
- package/dist/lib/tracers/TestTracer.js +87 -0
- package/dist/lib/tracers/index.d.ts +12 -0
- package/dist/lib/tracers/index.d.ts.map +1 -0
- package/dist/lib/tracers/index.js +11 -0
- package/dist/lib/types.d.ts +366 -0
- package/dist/lib/types.d.ts.map +1 -0
- package/dist/lib/types.js +1 -0
- package/dist/lib/utf8Cache.d.ts +111 -0
- package/dist/lib/utf8Cache.d.ts.map +1 -0
- package/dist/lib/utf8Cache.js +177 -0
- package/dist/lib/wasm/WasmBufferStrategy.d.ts +88 -0
- package/dist/lib/wasm/WasmBufferStrategy.d.ts.map +1 -0
- package/dist/lib/wasm/WasmBufferStrategy.js +138 -0
- package/dist/lib/wasm/wasmAllocator.d.ts +109 -0
- package/dist/lib/wasm/wasmAllocator.d.ts.map +1 -0
- package/dist/lib/wasm/wasmAllocator.js +227 -0
- package/dist/lib/wasm/wasmSpanBuffer.d.ts +123 -0
- package/dist/lib/wasm/wasmSpanBuffer.d.ts.map +1 -0
- package/dist/lib/wasm/wasmSpanBuffer.js +772 -0
- package/dist/lib/wasm/wasmTraceRoot.d.ts +167 -0
- package/dist/lib/wasm/wasmTraceRoot.d.ts.map +1 -0
- package/dist/lib/wasm/wasmTraceRoot.js +264 -0
- package/dist/node.d.ts +7 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +8 -0
- package/dist/testing.d.ts +18 -0
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +17 -0
- package/package.json +193 -0
- package/src/bun/preload.ts +11 -0
- package/src/bun/trace-preload.ts +14 -0
- package/src/es.ts +11 -0
- package/src/index.ts +194 -0
- package/src/lib/JsBufferStrategy.ts +102 -0
- package/src/lib/__tests__/arrow-builder-integration/arrow-conversion.test.ts +485 -0
- package/src/lib/__tests__/arrow-builder-integration/binary-arrow-conversion.test.ts +390 -0
- package/src/lib/__tests__/arrow-builder-integration/binary-comparison.test.ts +647 -0
- package/src/lib/__tests__/arrow-builder-integration/binary-format-compliance.test.ts +292 -0
- package/src/lib/__tests__/arrow-builder-integration/buffer-chaining.test.ts +354 -0
- package/src/lib/__tests__/arrow-builder-integration/foundation.test.ts +127 -0
- package/src/lib/__tests__/arrow-builder-integration/integration.test.ts +392 -0
- package/src/lib/__tests__/arrow-builder-integration/lazy-columns.test.ts +389 -0
- package/src/lib/__tests__/arrow-conversion-algorithms.test.ts +54 -0
- package/src/lib/__tests__/arrow-test-helpers.ts +71 -0
- package/src/lib/__tests__/binary-e2e.test.ts +203 -0
- package/src/lib/__tests__/buffer-overflow-op-api.test.ts +608 -0
- package/src/lib/__tests__/buffer-overflow.test.ts +612 -0
- package/src/lib/__tests__/capacity-tuning.test.ts +544 -0
- package/src/lib/__tests__/effective-schema.test.ts +439 -0
- package/src/lib/__tests__/flechette.test.ts +42 -0
- package/src/lib/__tests__/flushScheduler.test.ts +537 -0
- package/src/lib/__tests__/integration.test.ts +600 -0
- package/src/lib/__tests__/library.test.ts +934 -0
- package/src/lib/__tests__/nested-library-tasks.test.ts +849 -0
- package/src/lib/__tests__/op-context-binding.test.ts +135 -0
- package/src/lib/__tests__/op-metadata.test.ts +198 -0
- package/src/lib/__tests__/op-type-safety.test.ts +71 -0
- package/src/lib/__tests__/package-exports.test.ts +57 -0
- package/src/lib/__tests__/remapped-buffer-view-integration.test.ts +319 -0
- package/src/lib/__tests__/remapped-buffer-view.test.ts +635 -0
- package/src/lib/__tests__/scope-attributes.test.ts +348 -0
- package/src/lib/__tests__/span-lifecycle.test.ts +680 -0
- package/src/lib/__tests__/sync-async-trace.test.ts +435 -0
- package/src/lib/__tests__/test-helpers.ts +318 -0
- package/src/lib/__tests__/timestamp.test.ts +259 -0
- package/src/lib/__tests__/trace-archive-primitives.test.ts +98 -0
- package/src/lib/__tests__/traceContext-type-enforcement.test.ts +271 -0
- package/src/lib/__tests__/tracer.test.ts +211 -0
- package/src/lib/__tests__/type-narrowing.test.ts +137 -0
- package/src/lib/archive/chunkCompaction.ts +44 -0
- package/src/lib/archive/chunkEnvelope.ts +79 -0
- package/src/lib/archive/chunkRouting.ts +70 -0
- package/src/lib/archive/chunkStats.ts +25 -0
- package/src/lib/archive/index.ts +4 -0
- package/src/lib/arrow/capacityStats.ts +340 -0
- package/src/lib/arrow/dictionaries.ts +159 -0
- package/src/lib/arrow/flechette.ts +114 -0
- package/src/lib/arrow/utils.ts +126 -0
- package/src/lib/buffer/Nanoseconds.ts +131 -0
- package/src/lib/bufferStrategy.ts +106 -0
- package/src/lib/capacityTuning.ts +102 -0
- package/src/lib/codegen/__tests__/__snapshots__/evaluatorGenerator.test.ts.snap +160 -0
- package/src/lib/codegen/__tests__/__snapshots__/scopeGenerator.test.ts.snap +196 -0
- package/src/lib/codegen/__tests__/__snapshots__/spanLoggerGenerator.test.ts.snap +1965 -0
- package/src/lib/codegen/__tests__/evaluatorGenerator.test.ts +516 -0
- package/src/lib/codegen/__tests__/nullBitmap.test.ts +207 -0
- package/src/lib/codegen/__tests__/spanLoggerGenerator.test.ts +237 -0
- package/src/lib/codegen/evaluatorGenerator.ts +309 -0
- package/src/lib/codegen/fixedPositionWriterGenerator.ts +444 -0
- package/src/lib/codegen/spanLoggerGenerator.ts +715 -0
- package/src/lib/convertToArrow.ts +1805 -0
- package/src/lib/defineOpContext.ts +398 -0
- package/src/lib/errors/Blocked.ts +165 -0
- package/src/lib/errors/CodeError.ts +132 -0
- package/src/lib/errors/RetriesExhausted.ts +78 -0
- package/src/lib/errors/Transient.ts +168 -0
- package/src/lib/errors/__tests__/Blocked-config.test.ts +152 -0
- package/src/lib/errors/__tests__/Transient.test.ts +129 -0
- package/src/lib/errors/__tests__/retry-policy.test.ts +85 -0
- package/src/lib/errors/index.ts +24 -0
- package/src/lib/errors/retry-policy.ts +87 -0
- package/src/lib/flushScheduler.ts +509 -0
- package/src/lib/library.ts +682 -0
- package/src/lib/logApi.ts +70 -0
- package/src/lib/logBinding.ts +67 -0
- package/src/lib/op.ts +103 -0
- package/src/lib/opContext/__tests__/retry.test.ts +764 -0
- package/src/lib/opContext/contextTypes.ts +130 -0
- package/src/lib/opContext/createOpGroup.ts +456 -0
- package/src/lib/opContext/defineOp.ts +281 -0
- package/src/lib/opContext/featureFlagTypes.ts +54 -0
- package/src/lib/opContext/index.ts +16 -0
- package/src/lib/opContext/opGroupTypes.ts +342 -0
- package/src/lib/opContext/opTypes.ts +80 -0
- package/src/lib/opContext/spanContextTypes.ts +398 -0
- package/src/lib/opContext/types.ts +403 -0
- package/src/lib/result.ts +550 -0
- package/src/lib/schema/LogSchema.ts +153 -0
- package/src/lib/schema/__tests__/defineLogSchema.test.ts +342 -0
- package/src/lib/schema/__tests__/featureFlags.test.ts +443 -0
- package/src/lib/schema/builder.ts +201 -0
- package/src/lib/schema/defineFeatureFlags.ts +91 -0
- package/src/lib/schema/defineLogSchema.ts +291 -0
- package/src/lib/schema/evaluator.ts +404 -0
- package/src/lib/schema/extend.ts +69 -0
- package/src/lib/schema/systemSchema.ts +339 -0
- package/src/lib/schema/typeGuards.ts +163 -0
- package/src/lib/schema/types.ts +265 -0
- package/src/lib/spanBuffer.ts +571 -0
- package/src/lib/spanBufferHelpers.ts +73 -0
- package/src/lib/spanBufferStats.ts +40 -0
- package/src/lib/spanContext.ts +1566 -0
- package/src/lib/sqlite/__tests__/sqlite-common.test.ts +89 -0
- package/src/lib/sqlite/index.ts +26 -0
- package/src/lib/sqlite/sqlite-async-writer.ts +101 -0
- package/src/lib/sqlite/sqlite-common.ts +309 -0
- package/src/lib/sqlite/sqlite-d1.ts +104 -0
- package/src/lib/sqlite/sqlite-db.ts +32 -0
- package/src/lib/sqlite/sqlite-node.ts +83 -0
- package/src/lib/sqlite/sqlite-writer.ts +128 -0
- package/src/lib/testing/TRACE-TESTING.md +100 -0
- package/src/lib/testing/__tests__/bun-harness.test.ts +108 -0
- package/src/lib/testing/__tests__/extractFacts.test.ts +279 -0
- package/src/lib/testing/__tests__/facts.test.ts +324 -0
- package/src/lib/testing/__tests__/vitest-harness.test.ts +32 -0
- package/src/lib/testing/bun-harness.ts +990 -0
- package/src/lib/testing/extractFacts.ts +362 -0
- package/src/lib/testing/facts.ts +470 -0
- package/src/lib/testing/index.ts +141 -0
- package/src/lib/testing/queryable-span.ts +108 -0
- package/src/lib/testing/span-query.ts +65 -0
- package/src/lib/testing/stdio-replay.ts +50 -0
- package/src/lib/testing/trace-query.ts +329 -0
- package/src/lib/testing/vitest-harness.ts +691 -0
- package/src/lib/threadId.ts +135 -0
- package/src/lib/traceContext.ts +182 -0
- package/src/lib/traceId.ts +142 -0
- package/src/lib/traceRoot.es.ts +157 -0
- package/src/lib/traceRoot.node.ts +170 -0
- package/src/lib/traceRoot.ts +154 -0
- package/src/lib/traceRoot.universal.ts +22 -0
- package/src/lib/tracer.ts +896 -0
- package/src/lib/tracers/ArrayQueueTracer.ts +76 -0
- package/src/lib/tracers/CompositeTracer.ts +76 -0
- package/src/lib/tracers/NoOpTracer.ts +73 -0
- package/src/lib/tracers/SQLiteTracer.ts +115 -0
- package/src/lib/tracers/StdioTracer.ts +380 -0
- package/src/lib/tracers/TestTracer.ts +146 -0
- package/src/lib/tracers/__tests__/ArrayQueueTracer.test.ts +184 -0
- package/src/lib/tracers/__tests__/NoOpTracer.test.ts +204 -0
- package/src/lib/tracers/__tests__/StdioTracer.test.ts +313 -0
- package/src/lib/tracers/__tests__/TestTracer.test.ts +200 -0
- package/src/lib/tracers/index.ts +12 -0
- package/src/lib/types.ts +498 -0
- package/src/lib/utf8Cache.ts +201 -0
- package/src/lib/wasm/WasmBufferStrategy.ts +219 -0
- package/src/lib/wasm/__tests__/WasmBufferStrategy.test.ts +256 -0
- package/src/lib/wasm/__tests__/wasm-integration.test.ts +476 -0
- package/src/lib/wasm/__tests__/wasmAllocator.test.ts +699 -0
- package/src/lib/wasm/__tests__/wasmSpanBuffer.test.ts +449 -0
- package/src/lib/wasm/__tests__/wasmTraceRoot.test.ts +390 -0
- package/src/lib/wasm/__tests__/wasmTracer.test.ts.disabled +444 -0
- package/src/lib/wasm/allocator.zig +945 -0
- package/src/lib/wasm/wasmAllocator.ts +469 -0
- package/src/lib/wasm/wasmSpanBuffer.ts +1014 -0
- package/src/lib/wasm/wasmTraceRoot.ts +315 -0
- package/src/node.ts +10 -0
- package/src/testing.ts +18 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracer implementations
|
|
3
|
+
*
|
|
4
|
+
* @module tracers/index
|
|
5
|
+
*/
|
|
6
|
+
export { ArrayQueueTracer } from './ArrayQueueTracer.js';
|
|
7
|
+
export { CompositeTracer } from './CompositeTracer.js';
|
|
8
|
+
export { NoOpTracer } from './NoOpTracer.js';
|
|
9
|
+
export { SQLiteAsyncTracer, SQLiteTracer } from './SQLiteTracer.js';
|
|
10
|
+
export { StdioTracer } from './StdioTracer.js';
|
|
11
|
+
export { TestTracer } from './TestTracer.js';
|
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracer implementations
|
|
3
|
+
*
|
|
4
|
+
* @module tracers/index
|
|
5
|
+
*/
|
|
6
|
+
export { ArrayQueueTracer } from './ArrayQueueTracer.js';
|
|
7
|
+
export { CompositeTracer } from './CompositeTracer.js';
|
|
8
|
+
export { NoOpTracer } from './NoOpTracer.js';
|
|
9
|
+
export { SQLiteAsyncTracer, SQLiteTracer } from './SQLiteTracer.js';
|
|
10
|
+
export { StdioTracer } from './StdioTracer.js';
|
|
11
|
+
export { TestTracer } from './TestTracer.js';
|
|
@@ -0,0 +1,366 @@
|
|
|
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
|
+
*/
|
|
11
|
+
import type { AnyColumnBuffer, ColumnBuffer, ColumnValueType, EagerBinarySchema, LazyBinarySchema, Nanoseconds, TypedArray } from '@smoothbricks/arrow-builder';
|
|
12
|
+
import type { OpMetadata } from './opContext/opTypes.js';
|
|
13
|
+
import type { LogSchema } from './schema/LogSchema.js';
|
|
14
|
+
import type { InferSchema } from './schema/types.js';
|
|
15
|
+
import type { SpanBufferStats } from './spanBufferStats.js';
|
|
16
|
+
import type { TraceId } from './traceId.js';
|
|
17
|
+
import type { ITraceRoot } from './traceRoot.js';
|
|
18
|
+
export type { LogBinding, RemappedViewConstructor } from './logBinding.js';
|
|
19
|
+
export type { OpMetadata } from './opContext/opTypes.js';
|
|
20
|
+
export type { extractSpanIdentity, SpanIdentity } from './traceId.js';
|
|
21
|
+
export type { TracerLifecycleHooks } from './traceRoot.js';
|
|
22
|
+
export type { AnyColumnBuffer, ColumnBuffer, ColumnValueType, TypedArray };
|
|
23
|
+
/**
|
|
24
|
+
* AnySpanBuffer - Core buffer API for Arrow conversion and generic processing.
|
|
25
|
+
*
|
|
26
|
+
* Per specs/lmao/01b5_spanbuffer_memory_layout.md:
|
|
27
|
+
* SpanBuffer is the per-span columnar storage that holds all trace data for a single span.
|
|
28
|
+
* It uses cache-aligned TypedArrays for V8 optimization and zero-copy Arrow conversion.
|
|
29
|
+
*
|
|
30
|
+
* This interface has NO index signatures, making it compatible with any SpanBuffer<T>
|
|
31
|
+
* regardless of schema. Use this type when you need to accept any buffer:
|
|
32
|
+
* - Arrow conversion (convertToArrowTable)
|
|
33
|
+
* - Tree walking (traverseSpanTree)
|
|
34
|
+
* - Generic buffer processing utilities
|
|
35
|
+
*
|
|
36
|
+
* ## Memory Layout (per specs/lmao/01b5)
|
|
37
|
+
*
|
|
38
|
+
* ```
|
|
39
|
+
* _system ArrayBuffer (64-byte aligned):
|
|
40
|
+
* ├─ timestamp: BigInt64Array (8 bytes × capacity) - nanosecond precision
|
|
41
|
+
* └─ entry_type: Uint8Array (1 byte × capacity) - enum from ENTRY_TYPE_*
|
|
42
|
+
*
|
|
43
|
+
* _identity Uint8Array (48 bytes, immutable after creation):
|
|
44
|
+
* ├─ trace_id: bytes 0-15 (128-bit UUID)
|
|
45
|
+
* ├─ thread_id: bytes 16-23 (64-bit BigInt)
|
|
46
|
+
* ├─ span_id: bytes 24-27 (32-bit counter)
|
|
47
|
+
* ├─ parent_thread_id: bytes 28-35 (64-bit BigInt, 0 if root)
|
|
48
|
+
* └─ parent_span_id: bytes 36-39 (32-bit counter, 0 if root)
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ## Fixed Row Layout (per specs/lmao/01h)
|
|
52
|
+
*
|
|
53
|
+
* - Row 0: span-start (written by writeSpanStart)
|
|
54
|
+
* - Row 1: span-end (span-ok, span-err, or span-exception)
|
|
55
|
+
* - Rows 2+: log entries (info, debug, warn, error, tag, ff-access)
|
|
56
|
+
*
|
|
57
|
+
* @see SpanBuffer<T> for schema-typed version with index signatures
|
|
58
|
+
*/
|
|
59
|
+
export interface AnySpanBuffer extends AnyColumnBuffer {
|
|
60
|
+
/**
|
|
61
|
+
* System ArrayBuffer containing timestamp and entry_type columns.
|
|
62
|
+
* 64-byte aligned for CPU cache optimization and SIMD operations.
|
|
63
|
+
*/
|
|
64
|
+
readonly _system: ArrayBuffer;
|
|
65
|
+
/**
|
|
66
|
+
* Identity bytes (48 bytes) containing trace_id, thread_id, span_id, parent info.
|
|
67
|
+
* Immutable after buffer creation - identity never changes.
|
|
68
|
+
*/
|
|
69
|
+
readonly _identity: Uint8Array;
|
|
70
|
+
/**
|
|
71
|
+
* Nanosecond timestamps for each entry (BigInt64Array).
|
|
72
|
+
*
|
|
73
|
+
* Per specs/lmao/01b3_high_precision_timestamps.md:
|
|
74
|
+
* - Uses performance.now() anchored to epoch for nanosecond precision
|
|
75
|
+
* - Row 0: span-start timestamp
|
|
76
|
+
* - Row 1: span-end timestamp (ok/err/exception)
|
|
77
|
+
* - Rows 2+: log entry timestamps
|
|
78
|
+
*/
|
|
79
|
+
readonly timestamp: BigInt64Array;
|
|
80
|
+
/**
|
|
81
|
+
* Entry type enum for each row (Uint8Array, 1 byte per entry).
|
|
82
|
+
*
|
|
83
|
+
* Per specs/lmao/01h_entry_types_and_logging_primitives.md:
|
|
84
|
+
* Values are ENTRY_TYPE_* constants (span-start=1, span-ok=2, etc.)
|
|
85
|
+
*/
|
|
86
|
+
readonly entry_type: Uint8Array;
|
|
87
|
+
/**
|
|
88
|
+
* Timestamp of span start (row 0).
|
|
89
|
+
*
|
|
90
|
+
* Internal helper getter (underscore-prefixed) to avoid conflicts with schema columns.
|
|
91
|
+
*/
|
|
92
|
+
readonly _spanStartTime: Nanoseconds;
|
|
93
|
+
/**
|
|
94
|
+
* Most recent non-zero timestamp in this span's written rows, including overflow buffers.
|
|
95
|
+
* Returns null if no written row has a timestamp yet.
|
|
96
|
+
*
|
|
97
|
+
* Internal helper getter (underscore-prefixed) to avoid conflicts with schema columns.
|
|
98
|
+
*/
|
|
99
|
+
readonly _lastLoggedTime: Nanoseconds | null;
|
|
100
|
+
/**
|
|
101
|
+
* Current write position (next row to write).
|
|
102
|
+
* Starts at 2 after span-start (row 0) and span-end placeholder (row 1).
|
|
103
|
+
*/
|
|
104
|
+
_writeIndex: number;
|
|
105
|
+
/**
|
|
106
|
+
* Maximum number of rows this buffer can hold.
|
|
107
|
+
* Per specs/lmao/01b2_buffer_self_tuning.md: Capacity adapts based on workload.
|
|
108
|
+
*/
|
|
109
|
+
readonly _capacity: number;
|
|
110
|
+
/**
|
|
111
|
+
* Next buffer in overflow chain (created when _writeIndex >= _capacity).
|
|
112
|
+
* Per specs/lmao/01b2: Buffers chain rather than resize for predictable allocation.
|
|
113
|
+
*/
|
|
114
|
+
_overflow?: AnySpanBuffer;
|
|
115
|
+
/**
|
|
116
|
+
* Span ID - 32-bit counter unique within this trace.
|
|
117
|
+
* Per specs/lmao/01b4_span_identity.md: Monotonic counter, not globally unique.
|
|
118
|
+
*/
|
|
119
|
+
readonly span_id: number;
|
|
120
|
+
/**
|
|
121
|
+
* Thread ID - 64-bit identifier for this execution thread/context.
|
|
122
|
+
* Per specs/lmao/01b4: Combines worker ID + sequence for uniqueness.
|
|
123
|
+
*/
|
|
124
|
+
readonly thread_id: bigint;
|
|
125
|
+
/**
|
|
126
|
+
* Trace ID - 128-bit UUID identifying the entire trace.
|
|
127
|
+
* Per specs/lmao/01b4: Propagated to all child spans and buffers.
|
|
128
|
+
*/
|
|
129
|
+
readonly trace_id: TraceId;
|
|
130
|
+
/**
|
|
131
|
+
* Whether this span has a parent (false for root spans).
|
|
132
|
+
*/
|
|
133
|
+
readonly _hasParent: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Parent's span ID (0 if root span).
|
|
136
|
+
*/
|
|
137
|
+
readonly parent_span_id: number;
|
|
138
|
+
/**
|
|
139
|
+
* Parent's thread ID (0n if root span).
|
|
140
|
+
*/
|
|
141
|
+
readonly parent_thread_id: bigint;
|
|
142
|
+
/**
|
|
143
|
+
* Schema for this buffer (accessed via constructor.schema).
|
|
144
|
+
* All buffers from same defineOpContext share the same schema.
|
|
145
|
+
* Underscore prefix since this is an internal property.
|
|
146
|
+
*/
|
|
147
|
+
readonly _logSchema: LogSchema;
|
|
148
|
+
/**
|
|
149
|
+
* Column entries for Arrow conversion iteration.
|
|
150
|
+
* For SpanBuffer: delegates to _logSchema._columns (unprefixed names)
|
|
151
|
+
* For RemappedBufferView: built in constructor with prefixed names from mapping
|
|
152
|
+
*
|
|
153
|
+
* This enables Arrow conversion to iterate column names correctly regardless of
|
|
154
|
+
* whether the buffer is wrapped in a RemappedBufferView.
|
|
155
|
+
*/
|
|
156
|
+
readonly _columns: ReadonlyArray<[string, unknown]>;
|
|
157
|
+
/**
|
|
158
|
+
* Shared stats for all buffers from same defineOpContext (accessed via constructor.stats).
|
|
159
|
+
* Enables self-tuning capacity learning across all ops in the same context.
|
|
160
|
+
* Underscore prefix since this is an internal property.
|
|
161
|
+
*/
|
|
162
|
+
readonly _stats: SpanBufferStats;
|
|
163
|
+
/**
|
|
164
|
+
* Child spans created via ctx.span().
|
|
165
|
+
* Per specs/lmao/01c: Parent-child relationship for trace tree.
|
|
166
|
+
*/
|
|
167
|
+
_children: AnySpanBuffer[];
|
|
168
|
+
/**
|
|
169
|
+
* Parent span buffer (undefined for root).
|
|
170
|
+
* Set during createChildSpanBuffer().
|
|
171
|
+
*/
|
|
172
|
+
_parent?: AnySpanBuffer;
|
|
173
|
+
/**
|
|
174
|
+
* Root trace context - shared by all buffers in a trace.
|
|
175
|
+
* Contains anchorEpochNanos/anchorPerfNow for timestamp calculation.
|
|
176
|
+
*/
|
|
177
|
+
_traceRoot: ITraceRoot;
|
|
178
|
+
/**
|
|
179
|
+
* Op metadata for this span - identifies WHICH OP IS EXECUTING.
|
|
180
|
+
* Per specs/lmao/01j and opgroup-refactor.md:
|
|
181
|
+
* - Used for rows 1+ (log entries, tags, span-ok/err) attribution
|
|
182
|
+
* - For Op calls: set to op.metadata
|
|
183
|
+
* - For plain functions: inherited from parent's _opMetadata
|
|
184
|
+
* - Different from _callsiteMetadata which identifies WHO CALLED span()
|
|
185
|
+
*/
|
|
186
|
+
_opMetadata: OpMetadata;
|
|
187
|
+
/**
|
|
188
|
+
* Callsite metadata - where ctx.span() was called from.
|
|
189
|
+
* Different from _opMetadata when calling into another op.
|
|
190
|
+
* Per specs/lmao/01j: Row 0 gets callsite, rows 1+ get op metadata.
|
|
191
|
+
*/
|
|
192
|
+
_callsiteMetadata?: OpMetadata;
|
|
193
|
+
/**
|
|
194
|
+
* Scoped attribute values - inherited by child spans.
|
|
195
|
+
*
|
|
196
|
+
* Per specs/lmao/01i_span_scope_attributes.md:
|
|
197
|
+
* - Frozen object (never mutated, replaced on setScope)
|
|
198
|
+
* - Child spans inherit by reference (safe because frozen)
|
|
199
|
+
* - Applied to all rows at Arrow conversion via TypedArray.fill()
|
|
200
|
+
*/
|
|
201
|
+
_scopeValues: Readonly<Record<string, unknown>>;
|
|
202
|
+
/**
|
|
203
|
+
* Message column values - category strings (eager, always allocated).
|
|
204
|
+
* Contains span names, log messages, exception messages, etc.
|
|
205
|
+
*/
|
|
206
|
+
readonly message_values: string[];
|
|
207
|
+
readonly message_nulls: Uint8Array;
|
|
208
|
+
/**
|
|
209
|
+
* Line number column values - Float64Array (lazy but always present).
|
|
210
|
+
* Contains source code line numbers injected by transformer.
|
|
211
|
+
*/
|
|
212
|
+
readonly line_values: Float64Array;
|
|
213
|
+
readonly line_nulls: Uint8Array;
|
|
214
|
+
/**
|
|
215
|
+
* Error code column values - category strings (lazy but always present).
|
|
216
|
+
*/
|
|
217
|
+
readonly error_code_values: string[];
|
|
218
|
+
readonly error_code_nulls: Uint8Array;
|
|
219
|
+
/**
|
|
220
|
+
* Retry attempt column values - number (lazy but always present).
|
|
221
|
+
*/
|
|
222
|
+
readonly retry_attempt_values: Float64Array;
|
|
223
|
+
readonly retry_attempt_nulls: Uint8Array;
|
|
224
|
+
/**
|
|
225
|
+
* Retry delay column values in milliseconds - number (lazy but always present).
|
|
226
|
+
*/
|
|
227
|
+
readonly retry_delay_ms_values: Float64Array;
|
|
228
|
+
readonly retry_delay_ms_nulls: Uint8Array;
|
|
229
|
+
/**
|
|
230
|
+
* Exception stack trace column values - text strings (lazy but always present).
|
|
231
|
+
*/
|
|
232
|
+
readonly exception_stack_values: string[];
|
|
233
|
+
readonly exception_stack_nulls: Uint8Array;
|
|
234
|
+
/**
|
|
235
|
+
* Feature flag value column - category strings (lazy but always present).
|
|
236
|
+
*/
|
|
237
|
+
readonly ff_value_values: string[];
|
|
238
|
+
readonly ff_value_nulls: Uint8Array;
|
|
239
|
+
/**
|
|
240
|
+
* Uint64 value column - BigUint64Array (lazy but always present).
|
|
241
|
+
*/
|
|
242
|
+
readonly uint64_value_values: BigUint64Array;
|
|
243
|
+
readonly uint64_value_nulls: Uint8Array;
|
|
244
|
+
/**
|
|
245
|
+
* Set message for a row (span name for row 0, log message for rows 2+).
|
|
246
|
+
* @returns this buffer for chaining (returns AnySpanBuffer for variance)
|
|
247
|
+
*/
|
|
248
|
+
message(pos: number, val: string): AnySpanBuffer;
|
|
249
|
+
/**
|
|
250
|
+
* Set source line number for a row.
|
|
251
|
+
* Per specs/lmao/01o: Injected by transformer at compile time.
|
|
252
|
+
*/
|
|
253
|
+
line(pos: number, val: number): AnySpanBuffer;
|
|
254
|
+
/**
|
|
255
|
+
* Set error code for a row (used by span-err and error log entries).
|
|
256
|
+
*/
|
|
257
|
+
error_code(pos: number, val: string): AnySpanBuffer;
|
|
258
|
+
/**
|
|
259
|
+
* Set retry attempt for a row (used by span-retry entries).
|
|
260
|
+
*/
|
|
261
|
+
retry_attempt(pos: number, val: number): AnySpanBuffer;
|
|
262
|
+
/**
|
|
263
|
+
* Set retry delay in ms for a row (used by span-retry entries).
|
|
264
|
+
*/
|
|
265
|
+
retry_delay_ms(pos: number, val: number): AnySpanBuffer;
|
|
266
|
+
/**
|
|
267
|
+
* Set exception stack trace for a row (used by span-exception).
|
|
268
|
+
*/
|
|
269
|
+
exception_stack(pos: number, val: string): AnySpanBuffer;
|
|
270
|
+
/**
|
|
271
|
+
* Set feature flag value for a row (used by ff-access entries).
|
|
272
|
+
*/
|
|
273
|
+
ff_value(pos: number, val: string): AnySpanBuffer;
|
|
274
|
+
/**
|
|
275
|
+
* Set uint64 value for a row (general-purpose bigint storage).
|
|
276
|
+
*/
|
|
277
|
+
uint64_value(pos: number, val: bigint): AnySpanBuffer;
|
|
278
|
+
/**
|
|
279
|
+
* Get or create an overflow buffer for this span.
|
|
280
|
+
*
|
|
281
|
+
* This method handles the full overflow lifecycle:
|
|
282
|
+
* 1. Returns existing _overflow if already created
|
|
283
|
+
* 2. Notifies tracer.onStatsWillResetFor() before stats may reset
|
|
284
|
+
* 3. Checks capacity tuning based on utilization
|
|
285
|
+
* 4. Creates new overflow buffer via bufferStrategy
|
|
286
|
+
* 5. Links this._overflow to the new buffer
|
|
287
|
+
*
|
|
288
|
+
* SpanLogger calls this when buffer is full, then prefills scope on the new buffer.
|
|
289
|
+
*
|
|
290
|
+
* @returns The overflow buffer (existing or newly created)
|
|
291
|
+
*/
|
|
292
|
+
getOrCreateOverflow(): AnySpanBuffer;
|
|
293
|
+
/**
|
|
294
|
+
* Check if this span is a parent of another span.
|
|
295
|
+
* Used for tree traversal and validation.
|
|
296
|
+
*/
|
|
297
|
+
isParentOf(other: AnySpanBuffer): boolean;
|
|
298
|
+
/**
|
|
299
|
+
* Check if this span is a child of another span.
|
|
300
|
+
* Used for tree traversal and validation.
|
|
301
|
+
*/
|
|
302
|
+
isChildOf(other: AnySpanBuffer): boolean;
|
|
303
|
+
/**
|
|
304
|
+
* Copy this span's thread_id bytes to a destination array.
|
|
305
|
+
* Used for Arrow column building (zero-copy when possible).
|
|
306
|
+
*/
|
|
307
|
+
copyThreadIdTo(dest: Uint8Array, offset: number): void;
|
|
308
|
+
/**
|
|
309
|
+
* Copy this span's parent_thread_id bytes to a destination array.
|
|
310
|
+
* Used for Arrow column building (zero-copy when possible).
|
|
311
|
+
*/
|
|
312
|
+
copyParentThreadIdTo(dest: Uint8Array, offset: number): void;
|
|
313
|
+
}
|
|
314
|
+
type SetterValueType<S> = S extends {
|
|
315
|
+
__schema_type: 'enum';
|
|
316
|
+
} ? number : S extends {
|
|
317
|
+
__schema_type: 'category' | 'text';
|
|
318
|
+
} ? string : S extends {
|
|
319
|
+
__schema_type: 'number';
|
|
320
|
+
} ? number : S extends {
|
|
321
|
+
__schema_type: 'bigUint64';
|
|
322
|
+
} ? bigint : S extends {
|
|
323
|
+
__schema_type: 'boolean';
|
|
324
|
+
} ? boolean : S extends LazyBinarySchema<infer T> | EagerBinarySchema<infer T> ? T : unknown;
|
|
325
|
+
type ValuesArrayType<S> = S extends {
|
|
326
|
+
__schema_type: 'enum';
|
|
327
|
+
} ? Uint8Array : S extends {
|
|
328
|
+
__schema_type: 'category' | 'text';
|
|
329
|
+
} ? string[] : S extends {
|
|
330
|
+
__schema_type: 'number';
|
|
331
|
+
} ? Float64Array : S extends {
|
|
332
|
+
__schema_type: 'bigUint64';
|
|
333
|
+
} ? BigUint64Array : S extends {
|
|
334
|
+
__schema_type: 'boolean';
|
|
335
|
+
} ? Uint8Array : S extends LazyBinarySchema | EagerBinarySchema ? unknown[] : TypedArray | string[];
|
|
336
|
+
type FilterSchemaFields<T> = {
|
|
337
|
+
[K in keyof T as T[K] extends (...args: unknown[]) => unknown ? never : K]: T[K];
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* SpanBuffer<T> - Fully typed buffer for a specific schema.
|
|
341
|
+
*
|
|
342
|
+
* Extends AnySpanBuffer with:
|
|
343
|
+
* - Schema-specific _values/_nulls properties
|
|
344
|
+
* - Schema-specific setter methods
|
|
345
|
+
* - Index signatures for dynamic access
|
|
346
|
+
*
|
|
347
|
+
* T is REQUIRED - there is no default. Use AnySpanBuffer for generic processing.
|
|
348
|
+
*/
|
|
349
|
+
export type SpanBuffer<T extends LogSchema> = AnySpanBuffer & {
|
|
350
|
+
_children: SpanBuffer<T>[];
|
|
351
|
+
_parent?: SpanBuffer<T>;
|
|
352
|
+
_overflow?: SpanBuffer<T>;
|
|
353
|
+
readonly _logSchema: T;
|
|
354
|
+
_scopeValues: Readonly<Partial<InferSchema<T>>>;
|
|
355
|
+
isParentOf(other: SpanBuffer<T>): boolean;
|
|
356
|
+
isChildOf(other: SpanBuffer<T>): boolean;
|
|
357
|
+
[key: `${string}_values`]: TypedArray | string[] | unknown[] | undefined;
|
|
358
|
+
[key: `${string}_nulls`]: Uint8Array | undefined;
|
|
359
|
+
} & {
|
|
360
|
+
readonly [K in keyof FilterSchemaFields<T['fields']> as `${K & string}_values`]: ValuesArrayType<FilterSchemaFields<T['fields']>[K]>;
|
|
361
|
+
} & {
|
|
362
|
+
readonly [K in keyof FilterSchemaFields<T['fields']> as `${K & string}_nulls`]: Uint8Array;
|
|
363
|
+
} & {
|
|
364
|
+
[K in keyof FilterSchemaFields<T['fields']>]: (pos: number, val: SetterValueType<FilterSchemaFields<T['fields']>[K]>) => SpanBuffer<T>;
|
|
365
|
+
};
|
|
366
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SIEVE-based cache for UTF-8 string encoding
|
|
3
|
+
*
|
|
4
|
+
* Per string storage design specs:
|
|
5
|
+
* - Category/text columns store raw JS strings in hot path (zero cost)
|
|
6
|
+
* - UTF-8 encoding happens in cold path (Arrow conversion)
|
|
7
|
+
* - Frequent strings benefit from caching to avoid re-encoding
|
|
8
|
+
*
|
|
9
|
+
* Uses SIEVE algorithm (NSDI'24) which is simpler AND better than LRU
|
|
10
|
+
* for web workloads. SIEVE achieves ~9% lower miss ratio than LRU-K,
|
|
11
|
+
* ARC, and 2Q while being much simpler to implement.
|
|
12
|
+
*
|
|
13
|
+
* @see https://junchengyang.com/publication/nsdi24-SIEVE.pdf
|
|
14
|
+
*/
|
|
15
|
+
import type { Utf8Encoder } from '@smoothbricks/arrow-builder';
|
|
16
|
+
type EncodedUtf8Batch = {
|
|
17
|
+
data: Uint8Array;
|
|
18
|
+
offsets: Int32Array;
|
|
19
|
+
};
|
|
20
|
+
type Utf8CacheStats = {
|
|
21
|
+
hits: number;
|
|
22
|
+
misses: number;
|
|
23
|
+
hitRate: number;
|
|
24
|
+
size: number;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* UTF-8 encoding cache using SIEVE eviction algorithm
|
|
28
|
+
*
|
|
29
|
+
* This cache is used during Arrow conversion to avoid re-encoding
|
|
30
|
+
* strings that appear multiple times across buffers or conversions.
|
|
31
|
+
*
|
|
32
|
+
* Thread-safety: JavaScript is single-threaded, so no locks needed.
|
|
33
|
+
* The cache is safe to use in async contexts since JS awaits don't
|
|
34
|
+
* allow concurrent access to the same cache instance.
|
|
35
|
+
*/
|
|
36
|
+
export declare class Utf8Cache implements Utf8Encoder {
|
|
37
|
+
private readonly cache;
|
|
38
|
+
private readonly encoder;
|
|
39
|
+
private hits;
|
|
40
|
+
private misses;
|
|
41
|
+
constructor(maxSize?: number);
|
|
42
|
+
/**
|
|
43
|
+
* Get UTF-8 encoded bytes for a string, using cache if available
|
|
44
|
+
*
|
|
45
|
+
* @param str - String to encode
|
|
46
|
+
* @returns UTF-8 encoded bytes
|
|
47
|
+
*/
|
|
48
|
+
encode(str: string): Uint8Array;
|
|
49
|
+
/**
|
|
50
|
+
* Calculate UTF-8 byte length of a string
|
|
51
|
+
*
|
|
52
|
+
* Uses cache if available to avoid re-encoding.
|
|
53
|
+
*
|
|
54
|
+
* @param str - String to measure
|
|
55
|
+
* @returns UTF-8 byte length
|
|
56
|
+
*/
|
|
57
|
+
byteLength(str: string): number;
|
|
58
|
+
/**
|
|
59
|
+
* Encode string directly into buffer at offset
|
|
60
|
+
*
|
|
61
|
+
* @param str - String to encode
|
|
62
|
+
* @param buffer - Target buffer
|
|
63
|
+
* @param offset - Offset in buffer to write at
|
|
64
|
+
* @returns Number of bytes written
|
|
65
|
+
*/
|
|
66
|
+
encodeInto(str: string, buffer: Uint8Array, offset: number): number;
|
|
67
|
+
/**
|
|
68
|
+
* Encode multiple strings, returning concatenated bytes and offsets
|
|
69
|
+
*
|
|
70
|
+
* This is optimized for Arrow dictionary construction where we need
|
|
71
|
+
* both the concatenated bytes and the offset array.
|
|
72
|
+
*
|
|
73
|
+
* @param strings - Array of strings to encode
|
|
74
|
+
* @returns Concatenated UTF-8 bytes and Arrow-format offsets
|
|
75
|
+
*/
|
|
76
|
+
encodeMany(strings: readonly string[]): EncodedUtf8Batch;
|
|
77
|
+
/**
|
|
78
|
+
* Get cache statistics
|
|
79
|
+
*/
|
|
80
|
+
get stats(): Utf8CacheStats;
|
|
81
|
+
/**
|
|
82
|
+
* Reset statistics (useful for per-conversion tracking)
|
|
83
|
+
*/
|
|
84
|
+
resetStats(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Clear the cache entirely
|
|
87
|
+
*/
|
|
88
|
+
clear(): void;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Global UTF-8 cache instance
|
|
92
|
+
*
|
|
93
|
+
* Using a global cache provides cross-conversion caching benefits:
|
|
94
|
+
* - Strings that appear in multiple spans/buffers are cached
|
|
95
|
+
* - Warm cache improves performance over time
|
|
96
|
+
*
|
|
97
|
+
* The SIEVE eviction ensures bounded memory even with unbounded inputs.
|
|
98
|
+
*/
|
|
99
|
+
export declare const globalUtf8Cache: Utf8Cache;
|
|
100
|
+
/**
|
|
101
|
+
* Create a new UTF-8 cache with custom size
|
|
102
|
+
*
|
|
103
|
+
* Use this when you want a dedicated cache instance (e.g., for testing
|
|
104
|
+
* or for isolation between different conversion contexts).
|
|
105
|
+
*
|
|
106
|
+
* @param maxSize - Maximum number of entries to cache
|
|
107
|
+
* @returns New Utf8Cache instance
|
|
108
|
+
*/
|
|
109
|
+
export declare function createUtf8Cache(maxSize?: number): Utf8Cache;
|
|
110
|
+
export {};
|
|
111
|
+
//# sourceMappingURL=utf8Cache.d.ts.map
|
|
@@ -0,0 +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;AACH,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"}
|