@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 @@
|
|
|
1
|
+
{"version":3,"file":"featureFlagTypes.d.ts","sourceRoot":"","sources":["../../../src/lib/opContext/featureFlagTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAMhE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACjE;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,iBAAiB,CAAC,EAAE,SAAS,iBAAiB,IAAI;IAC5D,QAAQ,EAAE,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,GAC1E;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;KAAE,GAAG,SAAS,GAC3G,EAAE,CAAC,CAAC,CAAC,SAAS,qBAAqB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,GACnD;QAAE,KAAK,EAAE,CAAC,CAAC;QAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;KAAE,GAAG,SAAS,GAC3G,KAAK;CACZ,GAAG;IACF,mFAAmF;IACnF,GAAG,CACD,IAAI,EAAE,MAAM,GACX,OAAO,CACR;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE,GAAG,cAAc,CAAC,SAAS,CAAC,CAAA;KAAE,GAAG,SAAS,CAClH,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Op-Centric API - Module Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all types and implementation functions for the Op-centric API.
|
|
5
|
+
* Consumers should import from this file for a single entry point.
|
|
6
|
+
*
|
|
7
|
+
* @module opContext
|
|
8
|
+
*/
|
|
9
|
+
export { createOpGroup } from './createOpGroup.js';
|
|
10
|
+
export { createDefineOp, createDefineOps, createOpMetadata, DEFAULT_METADATA } from './defineOp.js';
|
|
11
|
+
export * from './opGroupTypes.js';
|
|
12
|
+
export * from './types.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/opContext/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEpG,cAAc,mBAAmB,CAAC;AAElC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Op-Centric API - Module Index
|
|
3
|
+
*
|
|
4
|
+
* Re-exports all types and implementation functions for the Op-centric API.
|
|
5
|
+
* Consumers should import from this file for a single entry point.
|
|
6
|
+
*
|
|
7
|
+
* @module opContext
|
|
8
|
+
*/
|
|
9
|
+
// Re-export implementation functions
|
|
10
|
+
export { createOpGroup } from './createOpGroup.js';
|
|
11
|
+
export { createDefineOp, createDefineOps, createOpMetadata, DEFAULT_METADATA } from './defineOp.js';
|
|
12
|
+
// Re-export OpGroup types and helpers
|
|
13
|
+
export * from './opGroupTypes.js';
|
|
14
|
+
// Re-export all types from the hub
|
|
15
|
+
export * from './types.js';
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpGroup Types
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for OpGroups - collections of Ops that can be mapped
|
|
5
|
+
* and wired as dependencies. These types enable:
|
|
6
|
+
* - Column mapping (prefix, rename, drop)
|
|
7
|
+
* - Schema contribution tracking
|
|
8
|
+
* - Type-safe dependency resolution
|
|
9
|
+
*
|
|
10
|
+
* Public interfaces (OpGroup, MappedOpGroup) hide internal properties from
|
|
11
|
+
* intellisense - users only see ops and methods they need.
|
|
12
|
+
* Internal interfaces (OpGroupInternal, MappedOpGroupInternal) expose all
|
|
13
|
+
* properties for library implementation.
|
|
14
|
+
*
|
|
15
|
+
* @module opContext/opGroupTypes
|
|
16
|
+
*/
|
|
17
|
+
import type { Op } from '../op.js';
|
|
18
|
+
import type { LogSchema } from '../schema/LogSchema.js';
|
|
19
|
+
import type { SchemaFields } from '../schema/types.js';
|
|
20
|
+
import type { OpContext } from './types.js';
|
|
21
|
+
/**
|
|
22
|
+
* Column mapping for wiring OpGroups.
|
|
23
|
+
*
|
|
24
|
+
* Maps the library's column names to the app's column names:
|
|
25
|
+
* - `string` → map to that column name (must be type-compatible)
|
|
26
|
+
* - `null` → drop the column (library writes are ignored)
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```typescript
|
|
30
|
+
* // Map query to shared column, rows to prefixed, drop internal column
|
|
31
|
+
* { query: 'query', rows: 'pg_rows', _internal: null }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export type ColumnMapping<LibSchema extends SchemaFields = SchemaFields> = {
|
|
35
|
+
[K in keyof LibSchema]?: string | null;
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Apply a prefix to all schema field names.
|
|
39
|
+
* `{ status: S.number() }` with prefix 'http' → `{ http_status: S.number() }`
|
|
40
|
+
*/
|
|
41
|
+
export type PrefixedSchema<T extends SchemaFields, P extends string> = {
|
|
42
|
+
[K in keyof T as `${P}_${K & string}`]: T[K];
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Extract the schema fields from a LogSchema
|
|
46
|
+
*/
|
|
47
|
+
export type SchemaFieldsOf<T> = T extends LogSchema<infer Fields> ? Fields : never;
|
|
48
|
+
/**
|
|
49
|
+
* Apply column mapping to schema.
|
|
50
|
+
* - Mapped columns get new names
|
|
51
|
+
* - Columns mapped to null are dropped
|
|
52
|
+
* - Unmapped columns keep original names (with prefix if using prefix())
|
|
53
|
+
*/
|
|
54
|
+
export type MappedSchema<T extends SchemaFields, M extends ColumnMapping<T>> = {
|
|
55
|
+
[K in keyof T as M[K] extends string ? M[K] : M[K] extends null ? never : K]: T[K];
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Reserved names that cannot be used as op names.
|
|
59
|
+
* These conflict with OpGroup methods or internal properties.
|
|
60
|
+
*/
|
|
61
|
+
export declare const RESERVED_OP_NAMES: readonly ["prefix", "mapColumns"];
|
|
62
|
+
/**
|
|
63
|
+
* Validate that an op name is allowed.
|
|
64
|
+
* Throws if the name is reserved or starts with underscore.
|
|
65
|
+
*
|
|
66
|
+
* @param name - The op name to validate
|
|
67
|
+
* @throws Error if name is invalid
|
|
68
|
+
*/
|
|
69
|
+
export declare function validateOpName(name: string): void;
|
|
70
|
+
export type OpGroupOps<Ctx extends OpContext> = Record<string, Op<Ctx, unknown[], unknown, unknown>>;
|
|
71
|
+
type NoOpMembers = Record<never, never>;
|
|
72
|
+
/**
|
|
73
|
+
* A group of Ops that can be mapped and wired as a dependency.
|
|
74
|
+
*
|
|
75
|
+
* Created by defineOps() - represents a library's exported operations.
|
|
76
|
+
* Libraries declare their schema but don't know how the app will wire them.
|
|
77
|
+
*
|
|
78
|
+
* Note: Ops are accessed directly as properties (`.opName` not `.ops.opName`)
|
|
79
|
+
* for V8 hidden class optimization and cleaner API ergonomics.
|
|
80
|
+
*
|
|
81
|
+
* Internal properties (_logSchema, _flags) are hidden from intellisense
|
|
82
|
+
* but accessible at runtime for library implementation.
|
|
83
|
+
*/
|
|
84
|
+
interface OpGroupMethods<Ctx extends OpContext, Ops extends object> {
|
|
85
|
+
/**
|
|
86
|
+
* Apply a prefix to all schema columns.
|
|
87
|
+
*
|
|
88
|
+
* Shorthand for mapColumns where each column gets the prefix.
|
|
89
|
+
* E.g., `httpOps.prefix('http')` transforms 'status' -> 'http_status'
|
|
90
|
+
*
|
|
91
|
+
* The prefixed columns become part of the combined app schema:
|
|
92
|
+
* `appSchema & { http_status: S.number(), http_url: S.category() }`
|
|
93
|
+
*
|
|
94
|
+
* @param prefix - Prefix to apply to all schema columns
|
|
95
|
+
* @returns MappedOpGroup with prefixed schema contribution
|
|
96
|
+
*/
|
|
97
|
+
prefix<P extends string>(prefix: P): MappedOpGroup<Ctx, PrefixedSchema<SchemaFieldsOf<Ctx['logSchema']>, P>, Ops>;
|
|
98
|
+
/**
|
|
99
|
+
* Map schema columns to different names in the app's schema.
|
|
100
|
+
*
|
|
101
|
+
* Use this for:
|
|
102
|
+
* - Deduplication: `{ query: 'query' }` - multiple libs share same column
|
|
103
|
+
* - Renaming: `{ rows: 'pg_row_count' }`
|
|
104
|
+
* - Dropping: `{ _internal: null }` - ignore library's internal column
|
|
105
|
+
* - Mixed: `{ query: 'query', rows: 'pg_rows', _debug: null }`
|
|
106
|
+
*
|
|
107
|
+
* Type-safety: Target columns must have compatible schema types.
|
|
108
|
+
*
|
|
109
|
+
* @param mapping - Maps library column names to app column names (or null to drop)
|
|
110
|
+
* @returns MappedOpGroup with mapped schema contribution
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* ```typescript
|
|
114
|
+
* // Two DB libs share 'query' column, each has unique columns, drop debug
|
|
115
|
+
* deps: {
|
|
116
|
+
* pg: postgresOps.mapColumns({ query: 'query', rows: 'pg_rows', _debug: null }),
|
|
117
|
+
* mysql: mysqlOps.mapColumns({ query: 'query', duration: 'mysql_duration' }),
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*/
|
|
121
|
+
mapColumns<M extends ColumnMapping<SchemaFieldsOf<Ctx['logSchema']>>>(mapping: M): MappedOpGroup<Ctx, MappedSchema<SchemaFieldsOf<Ctx['logSchema']>, M>, Ops>;
|
|
122
|
+
}
|
|
123
|
+
export type OpGroup<Ctx extends OpContext, Ops extends object = NoOpMembers> = OpGroupMethods<Ctx, Ops> & Ops;
|
|
124
|
+
/**
|
|
125
|
+
* An OpGroup with column mapping applied.
|
|
126
|
+
*
|
|
127
|
+
* The mapping is used during wiring to create RemappedBufferView
|
|
128
|
+
* that translates the library's column writes to the app's column names.
|
|
129
|
+
*
|
|
130
|
+
* Note: Ops are accessed directly as properties (`.opName` not `.ops.opName`)
|
|
131
|
+
* for V8 hidden class optimization and cleaner API ergonomics.
|
|
132
|
+
*
|
|
133
|
+
* Internal properties (_logSchema, _flags, _contributedSchema, _columnMapping)
|
|
134
|
+
* are hidden from intellisense but accessible at runtime.
|
|
135
|
+
*
|
|
136
|
+
* @template Ctx - OpContext (bundled type with logSchema, flags, deps, userCtx)
|
|
137
|
+
* @template ContributedSchema - Schema fields this group contributes to app (after mapping)
|
|
138
|
+
*/
|
|
139
|
+
interface MappedOpGroupMethods<Ctx extends OpContext, ContributedSchema extends SchemaFields, Ops extends object> {
|
|
140
|
+
/** Chain with prefix (applies prefix to current mapping) */
|
|
141
|
+
prefix<P extends string>(prefix: P): MappedOpGroup<Ctx, PrefixedSchema<ContributedSchema, P>, Ops>;
|
|
142
|
+
/** Override/extend the mapping */
|
|
143
|
+
mapColumns<M extends ColumnMapping<ContributedSchema>>(mapping: M): MappedOpGroup<Ctx, MappedSchema<ContributedSchema, M>, Ops>;
|
|
144
|
+
}
|
|
145
|
+
export type MappedOpGroup<Ctx extends OpContext, ContributedSchema extends SchemaFields, Ops extends object = NoOpMembers> = MappedOpGroupMethods<Ctx, ContributedSchema, Ops> & Ops;
|
|
146
|
+
/**
|
|
147
|
+
* Internal OpGroup interface with all properties exposed.
|
|
148
|
+
* Used by library implementation code that needs access to schema/flags.
|
|
149
|
+
*
|
|
150
|
+
* NOT exported from public API - use type assertion to access:
|
|
151
|
+
* `(opGroup as OpGroupInternal<Ctx>)._logSchema`
|
|
152
|
+
*/
|
|
153
|
+
export interface OpGroupInternal<Ctx extends OpContext, Ops extends object = NoOpMembers> extends OpGroupMethods<Ctx, Ops> {
|
|
154
|
+
/** The log schema for this group's ops (internal) */
|
|
155
|
+
readonly _logSchema: Ctx['logSchema'];
|
|
156
|
+
/** The feature flag schema (internal) */
|
|
157
|
+
readonly _flags: Ctx['flags'];
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Internal MappedOpGroup interface with all properties exposed.
|
|
161
|
+
* Used by library implementation code that needs access to mapping details.
|
|
162
|
+
*/
|
|
163
|
+
export interface MappedOpGroupInternal<Ctx extends OpContext, ContributedSchema extends SchemaFields, Ops extends object = NoOpMembers> extends MappedOpGroupMethods<Ctx, ContributedSchema, Ops> {
|
|
164
|
+
/** The log schema for this group's ops (internal) */
|
|
165
|
+
readonly _logSchema: Ctx['logSchema'];
|
|
166
|
+
/** The feature flag schema (internal) */
|
|
167
|
+
readonly _flags: Ctx['flags'];
|
|
168
|
+
/** The schema fields this group contributes to the app's combined schema (internal) */
|
|
169
|
+
readonly _contributedSchema: ContributedSchema;
|
|
170
|
+
/** The column mapping (library column -> app column, or null to drop) (internal) */
|
|
171
|
+
readonly _columnMapping: ColumnMapping<SchemaFieldsOf<Ctx['logSchema']>>;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* Minimal structural interface for any OpGroup (internal use only).
|
|
175
|
+
*
|
|
176
|
+
* This captures only the internal properties we need to read from an OpGroup
|
|
177
|
+
* in dependency wiring. The internal properties exist at runtime but are
|
|
178
|
+
* hidden from the public TypeScript interfaces.
|
|
179
|
+
*
|
|
180
|
+
* Note: No `.ops` property - ops are accessed directly as own properties.
|
|
181
|
+
*/
|
|
182
|
+
export interface AnyOpGroup {
|
|
183
|
+
/** The log schema - read-only access for wiring (internal property) */
|
|
184
|
+
readonly _logSchema: LogSchema;
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Minimal structural interface for a MappedOpGroup (internal use only).
|
|
188
|
+
* Used for dependency wiring when we need access to contributed schema.
|
|
189
|
+
*/
|
|
190
|
+
export interface AnyMappedOpGroup extends AnyOpGroup {
|
|
191
|
+
/** The contributed schema after mapping (internal property) */
|
|
192
|
+
readonly _contributedSchema: SchemaFields;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Type guard to check if an OpGroup has been mapped (has _contributedSchema)
|
|
196
|
+
*/
|
|
197
|
+
export declare function isMappedOpGroup(dep: AnyOpGroup): dep is AnyMappedOpGroup;
|
|
198
|
+
/**
|
|
199
|
+
* Minimal public interface for OpGroups used in deps config.
|
|
200
|
+
* Accepts any OpGroup or MappedOpGroup without requiring internal properties.
|
|
201
|
+
* Internal properties are accessed at runtime via type assertion.
|
|
202
|
+
*/
|
|
203
|
+
export interface AnyOpGroupPublic {
|
|
204
|
+
/** Apply a prefix to all schema columns */
|
|
205
|
+
prefix(prefix: string): AnyOpGroupPublic;
|
|
206
|
+
/** Map schema columns to different names */
|
|
207
|
+
mapColumns(mapping: ColumnMapping): AnyOpGroupPublic;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Type for deps config - maps names to OpGroups (optionally mapped)
|
|
211
|
+
*
|
|
212
|
+
* This is used as a constraint (`Deps extends DepsConfig`) so it needs
|
|
213
|
+
* to be wide enough to accept any specific deps configuration.
|
|
214
|
+
*
|
|
215
|
+
* Uses AnyOpGroupPublic to accept OpGroup/MappedOpGroup without requiring
|
|
216
|
+
* internal properties in the type signature.
|
|
217
|
+
*/
|
|
218
|
+
export type DepsConfig = Record<string, AnyOpGroupPublic>;
|
|
219
|
+
/**
|
|
220
|
+
* Extract the contributed schema from a dep (for combining into app schema)
|
|
221
|
+
*/
|
|
222
|
+
export type ContributedSchemaOf<D> = D extends MappedOpGroup<infer _Ctx, infer CS, infer _Ops> ? CS : D extends OpGroup<infer Ctx, infer _Ops> ? SchemaFieldsOf<Ctx['logSchema']> : never;
|
|
223
|
+
/**
|
|
224
|
+
* Combine all contributed schemas from deps into a union of all their fields.
|
|
225
|
+
* App's effective schema = appSchema & pg_contributed & mysql_contributed & ...
|
|
226
|
+
*
|
|
227
|
+
* This is used to type the combined LogSchema that has access to all columns
|
|
228
|
+
* from both the app and all wired dependencies.
|
|
229
|
+
*/
|
|
230
|
+
export type CombinedDepsSchema<D extends DepsConfig> = UnionToIntersection<{
|
|
231
|
+
[K in keyof D]: ContributedSchemaOf<D[K]>;
|
|
232
|
+
}[keyof D]>;
|
|
233
|
+
/**
|
|
234
|
+
* Helper: Convert union to intersection
|
|
235
|
+
* `A | B | C` → `A & B & C`
|
|
236
|
+
*/
|
|
237
|
+
export type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
238
|
+
/**
|
|
239
|
+
* The effective schema for an OpContext: app schema + all dep contributed schemas.
|
|
240
|
+
*/
|
|
241
|
+
export type EffectiveSchema<T extends SchemaFields, D extends DepsConfig> = T & CombinedDepsSchema<D>;
|
|
242
|
+
/**
|
|
243
|
+
* Extract the typed deps interface from a DepsConfig.
|
|
244
|
+
* Each dep becomes accessible via ctx.deps.name
|
|
245
|
+
*/
|
|
246
|
+
export type ResolvedDeps<D extends DepsConfig> = {
|
|
247
|
+
readonly [K in keyof D]: D[K] extends OpGroup<infer Ctx, infer Ops> ? OpGroup<Ctx, Ops> : D[K] extends MappedOpGroup<infer Ctx, infer _CS, infer Ops> ? OpGroup<Ctx, Ops> : never;
|
|
248
|
+
};
|
|
249
|
+
export {};
|
|
250
|
+
//# sourceMappingURL=opGroupTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opGroupTypes.d.ts","sourceRoot":"","sources":["../../../src/lib/opContext/opGroupTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// RESERVED OP NAMES
|
|
3
|
+
// =============================================================================
|
|
4
|
+
/**
|
|
5
|
+
* Reserved names that cannot be used as op names.
|
|
6
|
+
* These conflict with OpGroup methods or internal properties.
|
|
7
|
+
*/
|
|
8
|
+
export const RESERVED_OP_NAMES = ['prefix', 'mapColumns'];
|
|
9
|
+
/**
|
|
10
|
+
* Validate that an op name is allowed.
|
|
11
|
+
* Throws if the name is reserved or starts with underscore.
|
|
12
|
+
*
|
|
13
|
+
* @param name - The op name to validate
|
|
14
|
+
* @throws Error if name is invalid
|
|
15
|
+
*/
|
|
16
|
+
export function validateOpName(name) {
|
|
17
|
+
if (name.startsWith('_')) {
|
|
18
|
+
throw new Error(`Op name "${name}" cannot start with underscore (reserved for internal properties). ` +
|
|
19
|
+
`Consider using "${name.slice(1)}" instead.`);
|
|
20
|
+
}
|
|
21
|
+
if (RESERVED_OP_NAMES.includes(name)) {
|
|
22
|
+
throw new Error(`Op name "${name}" is reserved (conflicts with OpGroup method). ` +
|
|
23
|
+
`Consider using a more descriptive name like "${name}Op" or "${name}Operation".`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Type guard to check if an OpGroup has been mapped (has _contributedSchema)
|
|
28
|
+
*/
|
|
29
|
+
export function isMappedOpGroup(dep) {
|
|
30
|
+
return '_contributedSchema' in dep;
|
|
31
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Op Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Core type definitions for Ops - the first-class citizens of the Op-centric API.
|
|
5
|
+
* Ops wrap functions with metadata and enable composition.
|
|
6
|
+
*
|
|
7
|
+
* The Op class and OpMetadata interface are defined in ../op.ts (single source of truth)
|
|
8
|
+
* and re-exported here for convenience.
|
|
9
|
+
*
|
|
10
|
+
* ## Dependency Layer
|
|
11
|
+
* This module is at Layer 3 in the type hierarchy:
|
|
12
|
+
* - Depends on: spanContextTypes (Layer 2), featureFlagTypes (Layer 1)
|
|
13
|
+
* - Depended on by: opGroupTypes (Layer 4)
|
|
14
|
+
*/
|
|
15
|
+
import type { ExtractError, ExtractSuccess, Result } from '../result.js';
|
|
16
|
+
import type { SpanContext } from './spanContextTypes.js';
|
|
17
|
+
import type { OpContext } from './types.js';
|
|
18
|
+
export { Op, type OpMetadata } from '../op.js';
|
|
19
|
+
/**
|
|
20
|
+
* Op function signature - what the user provides to defineOp.
|
|
21
|
+
* MUST return Result<S, E> or Promise<Result<S, E>>.
|
|
22
|
+
*
|
|
23
|
+
* @template Ctx - Bundled OpContext (logSchema, flags, deps, userCtx)
|
|
24
|
+
* @template Args - Function arguments (after ctx)
|
|
25
|
+
* @template S - Success type
|
|
26
|
+
* @template E - Error type
|
|
27
|
+
*/
|
|
28
|
+
export type OpFn<Ctx extends OpContext, Args extends unknown[], S, E> = (ctx: SpanContext<Ctx>, ...args: Args) => Result<S, E> | Promise<Result<S, E>>;
|
|
29
|
+
import type { Op } from '../op.js';
|
|
30
|
+
/**
|
|
31
|
+
* Convert a single definition (Op or OpFn) to an Op type.
|
|
32
|
+
* Uses ExtractSuccess/ExtractError from result.ts to infer types from return value.
|
|
33
|
+
*/
|
|
34
|
+
type DefToOp<Ctx extends OpContext, Def> = Def extends Op<Ctx, infer Args, infer S, infer E> ? Op<Ctx, Args, S, E> : Def extends (ctx: SpanContext<Ctx>, ...args: infer Args) => infer R ? Op<Ctx, Args, ExtractSuccess<R>, ExtractError<R>> : never;
|
|
35
|
+
/**
|
|
36
|
+
* Transform a record of Op functions into Ops
|
|
37
|
+
*
|
|
38
|
+
* Used by defineOps for batch definition. Takes a record where values are either:
|
|
39
|
+
* - Existing Op instances (passed through)
|
|
40
|
+
* - Op function signatures (wrapped into Ops)
|
|
41
|
+
*
|
|
42
|
+
* @template Ctx - Bundled OpContext (logSchema, flags, deps, userCtx)
|
|
43
|
+
* @template Defs - Record of Op definitions (functions or existing Ops)
|
|
44
|
+
*/
|
|
45
|
+
export type OpsFromRecord<Ctx extends OpContext, Defs extends Record<string, Op<Ctx, unknown[], unknown, unknown> | OpFn<Ctx, unknown[], unknown, unknown>>> = {
|
|
46
|
+
[K in keyof Defs]: DefToOp<Ctx, Defs[K]>;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=opTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opTypes.d.ts","sourceRoot":"","sources":["../../../src/lib/opContext/opTypes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAS5C,OAAO,EAAE,EAAE,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAM/C;;;;;;;;GAQG;AACH,MAAM,MAAM,IAAI,CAAC,GAAG,SAAS,SAAS,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CACtE,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,EACrB,GAAG,IAAI,EAAE,IAAI,KACV,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAO1C,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAEnC;;;GAGG;AACH,KAAK,OAAO,CAAC,GAAG,SAAS,SAAS,EAAE,GAAG,IACrC,GAAG,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAC7C,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,GACnB,GAAG,SAAS,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,MAAM,CAAC,GACjE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,GACjD,KAAK,CAAC;AAEd;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,CACvB,GAAG,SAAS,SAAS,EACrB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IACxG;KACD,CAAC,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;CACzC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// OP CLASS & METADATA RE-EXPORTS
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Re-export the Op class and OpMetadata from op.ts - single source of truth
|
|
5
|
+
// The class is defined in op.ts to be the canonical type used by both
|
|
6
|
+
// defineOp (creates instances) and Tracer (checks instanceof)
|
|
7
|
+
export { Op } from '../op.js';
|