@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,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schema type definitions for lmao
|
|
3
|
+
*
|
|
4
|
+
* Re-exports core schema types from arrow-builder and adds lmao-specific types
|
|
5
|
+
* for feature flags and type inference.
|
|
6
|
+
*/
|
|
7
|
+
import type { Input, Output, Schema } from '@smoothbricks/arrow-builder';
|
|
8
|
+
export type { BinaryEncoder, EagerBinarySchema, EagerBooleanSchema, EagerCategorySchema, EagerEnumSchema, EagerNumberSchema, EagerTextSchema, EnumUtf8Precomputed, Input, LazyBinarySchema, LazyBooleanSchema, LazyCategorySchema, LazyEnumSchema, LazyNumberSchema, LazyTextSchema, MaskPreset, MaskTransform, Output, Schema, SchemaFields, SchemaType, SchemaWithMetadata, } from '@smoothbricks/arrow-builder';
|
|
9
|
+
export { ColumnSchema, isColumnSchema } from '@smoothbricks/arrow-builder';
|
|
10
|
+
export { isLogSchema, LogSchema } from './LogSchema.js';
|
|
11
|
+
import type { BinaryEncoder, EagerBooleanSchema, EagerCategorySchema, EagerEnumSchema, EagerNumberSchema, EagerTextSchema, LazyBinarySchema, LazyBooleanSchema, LazyCategorySchema, LazyEnumSchema, LazyNumberSchema, LazyTextSchema, SchemaFields } from '@smoothbricks/arrow-builder';
|
|
12
|
+
import type { DEFINED_LOG_SCHEMA_BRAND } from './defineLogSchema.js';
|
|
13
|
+
import type { LogSchema } from './LogSchema.js';
|
|
14
|
+
/**
|
|
15
|
+
* Extract the original schema fields type from LogSchema or DefinedLogSchema.
|
|
16
|
+
* If T is a LogSchema, extract the fields type.
|
|
17
|
+
* If T has the brand marker, extract the original schema from it.
|
|
18
|
+
* Otherwise, return T unchanged.
|
|
19
|
+
*/
|
|
20
|
+
type ExtractSchemaFields<T> = T extends LogSchema<infer Fields> ? Fields : T extends {
|
|
21
|
+
readonly [DEFINED_LOG_SCHEMA_BRAND]?: infer Original;
|
|
22
|
+
} ? Original extends SchemaFields ? Original : T extends SchemaFields ? T : never : T extends SchemaFields ? T : never;
|
|
23
|
+
/**
|
|
24
|
+
* Filter out function keys from a schema type.
|
|
25
|
+
* Methods like validate, parse, safeParse, extend are added by defineLogSchema
|
|
26
|
+
* but should not be treated as schema fields for iteration.
|
|
27
|
+
*
|
|
28
|
+
* Works on LogSchema fields or plain schema objects.
|
|
29
|
+
*/
|
|
30
|
+
type SchemaFieldKeys<T> = T extends LogSchema<infer Fields> ? keyof Fields : ExtractSchemaFields<T> extends infer Fields ? keyof Fields extends infer K ? K extends string ? K : never : never : never;
|
|
31
|
+
/**
|
|
32
|
+
* Extract TypeScript output types from log schema
|
|
33
|
+
*
|
|
34
|
+
* Works with LogSchema instances or plain schema objects.
|
|
35
|
+
*
|
|
36
|
+
* Type resolution order:
|
|
37
|
+
* 1. Check if it's an enum schema -> extract enum type
|
|
38
|
+
* 2. Check if it's a category schema -> string
|
|
39
|
+
* 3. Check if it's a text schema -> string
|
|
40
|
+
* 4. Check if it's a number schema -> number
|
|
41
|
+
* 5. Check if it's a boolean schema -> boolean
|
|
42
|
+
* 6. Fall back to Schema Output<T[K]>
|
|
43
|
+
*
|
|
44
|
+
* NOTE: Function properties (validate, parse, etc.) are filtered out.
|
|
45
|
+
*/
|
|
46
|
+
export type InferSchema<T extends LogSchema | SchemaFields> = {
|
|
47
|
+
[K in SchemaFieldKeys<T>]: ExtractSchemaFields<T>[K] extends LazyEnumSchema<infer E> ? E : ExtractSchemaFields<T>[K] extends EagerEnumSchema<infer E2> ? E2 : ExtractSchemaFields<T>[K] extends LazyCategorySchema | EagerCategorySchema ? string : ExtractSchemaFields<T>[K] extends LazyTextSchema | EagerTextSchema ? string : ExtractSchemaFields<T>[K] extends LazyNumberSchema | EagerNumberSchema ? number : ExtractSchemaFields<T>[K] extends LazyBooleanSchema | EagerBooleanSchema ? boolean : ExtractSchemaFields<T>[K] extends Schema<infer Out> ? Out : never;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Extract TypeScript input types from log schema
|
|
51
|
+
* Used for validation before transformation
|
|
52
|
+
*
|
|
53
|
+
* NOTE: Function properties (validate, parse, etc.) are filtered out.
|
|
54
|
+
*/
|
|
55
|
+
export type InferSchemaInput<T extends LogSchema | SchemaFields> = {
|
|
56
|
+
[K in SchemaFieldKeys<T>]: ExtractSchemaFields<T>[K] extends Schema<unknown, infer In> ? In : never;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Feature flag builder with default value support
|
|
60
|
+
* Returned by S.string(), S.number(), S.boolean(), S.enum() when used for feature flags
|
|
61
|
+
*/
|
|
62
|
+
export interface FlagBuilder<T> {
|
|
63
|
+
default(value: T): FlagBuilderWithDefault<T>;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Feature flag builder with sync/async evaluation type support
|
|
67
|
+
*/
|
|
68
|
+
export interface FlagBuilderWithDefault<T> {
|
|
69
|
+
sync(): FeatureFlagDefinition<T, 'sync'>;
|
|
70
|
+
async(): FeatureFlagDefinition<T, 'async'>;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Feature flag definition with default value and evaluation type
|
|
74
|
+
*/
|
|
75
|
+
export interface FeatureFlagDefinition<T, EvalType extends 'sync' | 'async' = 'sync' | 'async'> {
|
|
76
|
+
schema: Schema<T>;
|
|
77
|
+
defaultValue: T;
|
|
78
|
+
evaluationType: EvalType;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Schema that can be used for both tag attributes and feature flags
|
|
82
|
+
* This type is returned by S.string(), S.number(), etc.
|
|
83
|
+
*/
|
|
84
|
+
export type SchemaOrFlagBuilder<T> = Schema<T> & FlagBuilder<T>;
|
|
85
|
+
/**
|
|
86
|
+
* Category schema with flag builder, mask method, and eager method.
|
|
87
|
+
* Combines lmao's FlagBuilder with arrow-builder's LazyCategorySchema.
|
|
88
|
+
*/
|
|
89
|
+
export type CategorySchemaOrFlagBuilder = SchemaOrFlagBuilder<string> & LazyCategorySchema;
|
|
90
|
+
/**
|
|
91
|
+
* Text schema with flag builder, mask method, and eager method.
|
|
92
|
+
* Combines lmao's FlagBuilder with arrow-builder's LazyTextSchema.
|
|
93
|
+
*/
|
|
94
|
+
export type TextSchemaOrFlagBuilder = SchemaOrFlagBuilder<string> & LazyTextSchema;
|
|
95
|
+
/**
|
|
96
|
+
* Schema builder interface that wraps arrow-builder with custom API
|
|
97
|
+
* Supports both tag attributes and feature flags
|
|
98
|
+
*/
|
|
99
|
+
export interface SchemaBuilder {
|
|
100
|
+
number(): SchemaOrFlagBuilder<number>;
|
|
101
|
+
boolean(): SchemaOrFlagBuilder<boolean>;
|
|
102
|
+
/**
|
|
103
|
+
* Enum - Known values at compile time
|
|
104
|
+
* Storage: Uint8Array (1 byte) with compile-time mapping
|
|
105
|
+
* Arrow: Dictionary with pre-defined values
|
|
106
|
+
* Use for: Operations, HTTP methods, entry types, status enums
|
|
107
|
+
* Example: S.enum(['CREATE', 'READ', 'UPDATE', 'DELETE'])
|
|
108
|
+
*/
|
|
109
|
+
enum<T extends readonly string[]>(values: T): SchemaOrFlagBuilder<T[number]>;
|
|
110
|
+
/**
|
|
111
|
+
* Category - Values that often repeat (limited cardinality)
|
|
112
|
+
* Storage: Uint32Array indices with string interning
|
|
113
|
+
* Arrow: Dictionary built dynamically from interned strings
|
|
114
|
+
* Use for: userIds, sessionIds, moduleNames, spanNames, table names
|
|
115
|
+
*
|
|
116
|
+
* Returns a schema with:
|
|
117
|
+
* - .default().sync()/.async() for feature flags
|
|
118
|
+
* - .mask(preset) for masking during Arrow conversion
|
|
119
|
+
*/
|
|
120
|
+
category(): CategorySchemaOrFlagBuilder;
|
|
121
|
+
/**
|
|
122
|
+
* Text - Unique values that rarely repeat
|
|
123
|
+
* Storage: Raw strings without interning
|
|
124
|
+
* Arrow: Plain string column (no dictionary overhead)
|
|
125
|
+
* Use for: Unique error messages, URLs, request bodies, masked queries
|
|
126
|
+
*
|
|
127
|
+
* Returns a schema with:
|
|
128
|
+
* - .default().sync()/.async() for feature flags
|
|
129
|
+
* - .mask(preset) for masking during Arrow conversion
|
|
130
|
+
*/
|
|
131
|
+
text(): TextSchemaOrFlagBuilder;
|
|
132
|
+
/**
|
|
133
|
+
* Binary - Raw bytes or encoder-wrapped values
|
|
134
|
+
* Storage: Array (object references, frozen at tag time)
|
|
135
|
+
* Arrow: Binary column (encoded at flush time via BinaryEncoder if present)
|
|
136
|
+
* Use for: Arbitrary payloads, serialized objects, msgpack blobs
|
|
137
|
+
*/
|
|
138
|
+
binary(): LazyBinarySchema<Uint8Array>;
|
|
139
|
+
binary<T = unknown>(options: {
|
|
140
|
+
encoder: BinaryEncoder;
|
|
141
|
+
}): LazyBinarySchema<T>;
|
|
142
|
+
/**
|
|
143
|
+
* Unknown - accepts any value, msgpack-encoded at flush time
|
|
144
|
+
* Sugar for S.binary({ encoder: msgpackEncoder })
|
|
145
|
+
* Use for: arbitrary objects, request bodies, error context, unknown-shape data
|
|
146
|
+
*/
|
|
147
|
+
unknown(): LazyBinarySchema<unknown>;
|
|
148
|
+
/**
|
|
149
|
+
* Object<T> - typed variant of unknown, same underlying binary storage with msgpack encoding
|
|
150
|
+
* TypeScript enforces shape at compile time; no runtime validation on hot path
|
|
151
|
+
*/
|
|
152
|
+
object<T extends object>(): LazyBinarySchema<T>;
|
|
153
|
+
optional<T>(schema: Schema<T>): Schema<T | undefined, T | undefined>;
|
|
154
|
+
union<T extends readonly [Schema, ...Schema[]]>(schemas: T): Schema<Output<T[number]>, Input<T[number]>>;
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/schema/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SpanBuffer - Unified memory layout for trace logging
|
|
3
|
+
*
|
|
4
|
+
* This module implements the unified SpanBuffer design from
|
|
5
|
+
* specs/lmao/01b_columnar_buffer_architecture.md "Unified SpanBuffer Memory Layout"
|
|
6
|
+
*
|
|
7
|
+
* **Memory Layout**
|
|
8
|
+
*
|
|
9
|
+
* Single `_system` ArrayBuffer contains:
|
|
10
|
+
* - timestamps (BigInt64Array) at offset 0
|
|
11
|
+
* - operations (Uint8Array) at offset capacity * 8
|
|
12
|
+
* - identity (Uint8Array) at offset capacity * 9 (for root/child, not chained)
|
|
13
|
+
*
|
|
14
|
+
* **Buffer Types**
|
|
15
|
+
* - ROOT: 13 + traceId.length bytes identity (threadId + spanId + len + traceId)
|
|
16
|
+
* - CHILD: 12 bytes identity (threadId + spanId only, parent via pointer)
|
|
17
|
+
* - CHAINED: 0 bytes identity (shares _identity reference from first buffer)
|
|
18
|
+
*
|
|
19
|
+
* **Key Design Decisions**
|
|
20
|
+
* - Parent ancestry via pointer (not copied bytes) - isParentOf is O(1)
|
|
21
|
+
* - traceId walks up parent chain to root
|
|
22
|
+
* - System columns at fixed offsets for all buffer types
|
|
23
|
+
* - arrow-builder used ONLY for lazy attribute columns (not system columns)
|
|
24
|
+
*
|
|
25
|
+
* @module spanBuffer
|
|
26
|
+
*/
|
|
27
|
+
import type { OpMetadata } from './opContext/opTypes.js';
|
|
28
|
+
import type { LogSchema } from './schema/LogSchema.js';
|
|
29
|
+
import type { SpanBufferStats } from './spanBufferStats.js';
|
|
30
|
+
import type { ITraceRoot } from './traceRoot.js';
|
|
31
|
+
import type { AnySpanBuffer, SpanBuffer } from './types.js';
|
|
32
|
+
export type { ITraceRoot };
|
|
33
|
+
/**
|
|
34
|
+
* Empty frozen scope object - shared singleton to avoid allocations.
|
|
35
|
+
* Used as default _scopeValues for all buffers until setScope() is called.
|
|
36
|
+
*/
|
|
37
|
+
export declare const EMPTY_SCOPE: Readonly<Record<string, unknown>>;
|
|
38
|
+
/**
|
|
39
|
+
* Reset thread-local state (for testing only).
|
|
40
|
+
* Note: The actual state is in the generated class constructorPreamble.
|
|
41
|
+
* This function resets it by clearing the class cache.
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export declare function _resetSpanBufferState(): void;
|
|
45
|
+
/**
|
|
46
|
+
* Test utilities for accessing generated buffer properties
|
|
47
|
+
* Works directly with SpanBuffer type from this module
|
|
48
|
+
* @internal
|
|
49
|
+
*/
|
|
50
|
+
export declare const SpanBufferTestUtils: {
|
|
51
|
+
/**
|
|
52
|
+
* Get a column's null bitmap (generated property)
|
|
53
|
+
*/
|
|
54
|
+
getNullBitmap(buffer: AnySpanBuffer, columnName: string): Uint8Array | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Set buffer capacity (for testing)
|
|
57
|
+
*/
|
|
58
|
+
setCapacity(buffer: AnySpanBuffer, capacity: number): void;
|
|
59
|
+
/**
|
|
60
|
+
* Set buffer writeIndex (for testing)
|
|
61
|
+
*/
|
|
62
|
+
setWriteIndex(buffer: AnySpanBuffer, writeIndex: number): void;
|
|
63
|
+
/**
|
|
64
|
+
* Get buffer writeIndex (for testing)
|
|
65
|
+
* Accepts ColumnBuffer (from ColumnWriter._buffer) but casts to AnySpanBuffer
|
|
66
|
+
* since at runtime all buffers are AnySpanBuffer instances
|
|
67
|
+
*/
|
|
68
|
+
getWriteIndex(buffer: AnySpanBuffer): number;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* SpanBuffer constructor type - accepts all parameters for buffer creation.
|
|
72
|
+
* Exported for use in Op class and span context creation.
|
|
73
|
+
*
|
|
74
|
+
* The generated class has static properties:
|
|
75
|
+
* - schema: LogSchema - The schema used to generate this class
|
|
76
|
+
* - stats: SpanBufferStats - Shared mutable stats for all instances
|
|
77
|
+
*
|
|
78
|
+
* **Constructor cases:**
|
|
79
|
+
* - ROOT: traceRoot provided (freshly created), parent undefined
|
|
80
|
+
* - CHILD: traceRoot provided (from parent._traceRoot), parent provided, isChained=false
|
|
81
|
+
* - CHAINED: traceRoot provided (from parent._traceRoot), parent provided, isChained=true
|
|
82
|
+
*
|
|
83
|
+
* traceRoot is ALWAYS provided - factories extract it from parent when needed.
|
|
84
|
+
*/
|
|
85
|
+
export interface SpanBufferConstructor<T extends LogSchema = LogSchema> {
|
|
86
|
+
new (capacity: number, stats: SpanBufferStats, parent: AnySpanBuffer | undefined, isChained: boolean, callsiteMetadata: OpMetadata | undefined, opMetadata: OpMetadata | undefined, traceRoot: ITraceRoot): SpanBuffer<T>;
|
|
87
|
+
readonly schema: T;
|
|
88
|
+
readonly stats: SpanBufferStats;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Get or create a SpanBuffer class for the given schema.
|
|
92
|
+
*
|
|
93
|
+
* The generated class has static `schema` and `stats` properties:
|
|
94
|
+
* - `schema`: The LogSchema used to generate this class
|
|
95
|
+
* - `stats`: Shared SpanBufferStats for all instances from same defineOpContext
|
|
96
|
+
*
|
|
97
|
+
* Classes are cached per schema (WeakMap keyed by schema object).
|
|
98
|
+
*
|
|
99
|
+
* @param schema - LogSchema defining the buffer structure
|
|
100
|
+
* @returns SpanBufferConstructor with static schema and stats properties
|
|
101
|
+
*/
|
|
102
|
+
export declare function getSpanBufferClass<T extends LogSchema>(schema: T): SpanBufferConstructor<T>;
|
|
103
|
+
export declare function createSpanBuffer<T extends LogSchema>(schema: T, traceRoot: ITraceRoot, opMetadata: OpMetadata, capacity?: number): SpanBuffer<T>;
|
|
104
|
+
/**
|
|
105
|
+
* Creates a continuation buffer when the current buffer overflows.
|
|
106
|
+
*
|
|
107
|
+
* Chained buffers SHARE the identity reference from the first buffer
|
|
108
|
+
* (they represent the SAME logical span, just additional storage).
|
|
109
|
+
*
|
|
110
|
+
* @param buffer - The full buffer that needs overflow handling
|
|
111
|
+
*
|
|
112
|
+
* @returns New SpanBuffer linked via `buffer._overflow`, with same schema type
|
|
113
|
+
*/
|
|
114
|
+
export declare function createOverflowBuffer<T extends LogSchema>(buffer: SpanBuffer<T>): SpanBuffer<T>;
|
|
115
|
+
/**
|
|
116
|
+
* Creates a child span buffer with parent linkage.
|
|
117
|
+
*
|
|
118
|
+
* Child buffers have their own identity but reference their parent
|
|
119
|
+
* for trace hierarchy and scope inheritance.
|
|
120
|
+
*
|
|
121
|
+
* Note: Caller must call writeSpanStart() after this to set span name in message_values[0].
|
|
122
|
+
*
|
|
123
|
+
* @param parentBuffer - The parent span buffer
|
|
124
|
+
* @param SpanBufferClass - The SpanBuffer class to instantiate (has static schema + stats)
|
|
125
|
+
* @param callsiteMetadata - Caller's op metadata (for row 0 attribution)
|
|
126
|
+
* @param opMetadata - Op metadata for this span (for rows 1+ attribution)
|
|
127
|
+
* @param capacity - Optional capacity override (uses class.stats.capacity if omitted)
|
|
128
|
+
*
|
|
129
|
+
* @returns New SpanBuffer linked to parent
|
|
130
|
+
*/
|
|
131
|
+
export declare function createChildSpanBuffer<T extends LogSchema>(parentBuffer: AnySpanBuffer, SpanBufferClass: SpanBufferConstructor<T>, callsiteMetadata: OpMetadata, opMetadata: OpMetadata, capacity?: number): SpanBuffer<T>;
|
|
132
|
+
export declare const THREAD_ID_BYTES = 8;
|
|
133
|
+
//# sourceMappingURL=spanBuffer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spanBuffer.d.ts","sourceRoot":"","sources":["../../src/lib/spanBuffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG5D,YAAY,EAAE,UAAU,EAAE,CAAC;AAE3B;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAqB,CAAC;AAShF;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAM5C;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;0BACmB,aAAa,cAAc,MAAM,GAAG,UAAU,GAAG,SAAS;IAIhF;;OAEG;wBACiB,aAAa,YAAY,MAAM,GAAG,IAAI;IAK1D;;OAEG;0BACmB,aAAa,cAAc,MAAM,GAAG,IAAI;IAI9D;;;;OAIG;0BACmB,aAAa,GAAG,MAAM;CAG7C,CAAC;AAMF;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IACpE,KACE,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,SAAS,EAAE,OAAO,EAClB,gBAAgB,EAAE,UAAU,GAAG,SAAS,EACxC,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,SAAS,EAAE,UAAU,GACpB,UAAU,CAAC,CAAC,CAAC,CAAC;IAGjB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACnB,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;CACjC;AAkED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAgO3F;AAoBD,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,SAAS,EAClD,MAAM,EAAE,CAAC,EACT,SAAS,EAAE,UAAU,EACrB,UAAU,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,CAAC,CAAC,CAAC,CAqBf;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAuB9F;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,SAAS,EACvD,YAAY,EAAE,aAAa,EAC3B,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC,EACzC,gBAAgB,EAAE,UAAU,EAC5B,UAAU,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,CAAC,CAAC,CAAC,CAmBf;AAMD,eAAO,MAAM,eAAe,IAAI,CAAC"}
|