@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.
Files changed (447) hide show
  1. package/README.md +269 -0
  2. package/dist/allocator.wasm +0 -0
  3. package/dist/bun/preload.d.ts +11 -0
  4. package/dist/bun/preload.d.ts.map +1 -0
  5. package/dist/bun/preload.js +10 -0
  6. package/dist/bun/trace-preload.d.ts +8 -0
  7. package/dist/bun/trace-preload.d.ts.map +1 -0
  8. package/dist/bun/trace-preload.js +12 -0
  9. package/dist/es.d.ts +8 -0
  10. package/dist/es.d.ts.map +1 -0
  11. package/dist/es.js +9 -0
  12. package/dist/index.d.ts +41 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +84 -0
  15. package/dist/lib/JsBufferStrategy.d.ts +49 -0
  16. package/dist/lib/JsBufferStrategy.d.ts.map +1 -0
  17. package/dist/lib/JsBufferStrategy.js +60 -0
  18. package/dist/lib/archive/chunkCompaction.d.ts +15 -0
  19. package/dist/lib/archive/chunkCompaction.d.ts.map +1 -0
  20. package/dist/lib/archive/chunkCompaction.js +24 -0
  21. package/dist/lib/archive/chunkEnvelope.d.ts +21 -0
  22. package/dist/lib/archive/chunkEnvelope.d.ts.map +1 -0
  23. package/dist/lib/archive/chunkEnvelope.js +55 -0
  24. package/dist/lib/archive/chunkRouting.d.ts +10 -0
  25. package/dist/lib/archive/chunkRouting.d.ts.map +1 -0
  26. package/dist/lib/archive/chunkRouting.js +47 -0
  27. package/dist/lib/archive/chunkStats.d.ts +12 -0
  28. package/dist/lib/archive/chunkStats.d.ts.map +1 -0
  29. package/dist/lib/archive/chunkStats.js +10 -0
  30. package/dist/lib/archive/index.d.ts +5 -0
  31. package/dist/lib/archive/index.d.ts.map +1 -0
  32. package/dist/lib/archive/index.js +4 -0
  33. package/dist/lib/arrow/capacityStats.d.ts +9 -0
  34. package/dist/lib/arrow/capacityStats.d.ts.map +1 -0
  35. package/dist/lib/arrow/capacityStats.js +231 -0
  36. package/dist/lib/arrow/dictionaries.d.ts +27 -0
  37. package/dist/lib/arrow/dictionaries.d.ts.map +1 -0
  38. package/dist/lib/arrow/dictionaries.js +135 -0
  39. package/dist/lib/arrow/flechette.d.ts +40 -0
  40. package/dist/lib/arrow/flechette.d.ts.map +1 -0
  41. package/dist/lib/arrow/flechette.js +67 -0
  42. package/dist/lib/arrow/utils.d.ts +38 -0
  43. package/dist/lib/arrow/utils.d.ts.map +1 -0
  44. package/dist/lib/arrow/utils.js +112 -0
  45. package/dist/lib/buffer/Nanoseconds.d.ts +109 -0
  46. package/dist/lib/buffer/Nanoseconds.d.ts.map +1 -0
  47. package/dist/lib/buffer/Nanoseconds.js +86 -0
  48. package/dist/lib/bufferStrategy.d.ts +95 -0
  49. package/dist/lib/bufferStrategy.d.ts.map +1 -0
  50. package/dist/lib/bufferStrategy.js +1 -0
  51. package/dist/lib/capacityTuning.d.ts +50 -0
  52. package/dist/lib/capacityTuning.d.ts.map +1 -0
  53. package/dist/lib/capacityTuning.js +65 -0
  54. package/dist/lib/codegen/evaluatorGenerator.d.ts +35 -0
  55. package/dist/lib/codegen/evaluatorGenerator.d.ts.map +1 -0
  56. package/dist/lib/codegen/evaluatorGenerator.js +199 -0
  57. package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts +139 -0
  58. package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts.map +1 -0
  59. package/dist/lib/codegen/fixedPositionWriterGenerator.js +289 -0
  60. package/dist/lib/codegen/spanLoggerGenerator.d.ts +115 -0
  61. package/dist/lib/codegen/spanLoggerGenerator.d.ts.map +1 -0
  62. package/dist/lib/codegen/spanLoggerGenerator.js +575 -0
  63. package/dist/lib/convertToArrow.d.ts +40 -0
  64. package/dist/lib/convertToArrow.d.ts.map +1 -0
  65. package/dist/lib/convertToArrow.js +1467 -0
  66. package/dist/lib/defineOpContext.d.ts +96 -0
  67. package/dist/lib/defineOpContext.d.ts.map +1 -0
  68. package/dist/lib/defineOpContext.js +227 -0
  69. package/dist/lib/errors/Blocked.d.ts +113 -0
  70. package/dist/lib/errors/Blocked.d.ts.map +1 -0
  71. package/dist/lib/errors/Blocked.js +68 -0
  72. package/dist/lib/errors/CodeError.d.ts +101 -0
  73. package/dist/lib/errors/CodeError.d.ts.map +1 -0
  74. package/dist/lib/errors/CodeError.js +42 -0
  75. package/dist/lib/errors/RetriesExhausted.d.ts +67 -0
  76. package/dist/lib/errors/RetriesExhausted.d.ts.map +1 -0
  77. package/dist/lib/errors/RetriesExhausted.js +31 -0
  78. package/dist/lib/errors/Transient.d.ts +115 -0
  79. package/dist/lib/errors/Transient.d.ts.map +1 -0
  80. package/dist/lib/errors/Transient.js +54 -0
  81. package/dist/lib/errors/index.d.ts +14 -0
  82. package/dist/lib/errors/index.d.ts.map +1 -0
  83. package/dist/lib/errors/index.js +16 -0
  84. package/dist/lib/errors/retry-policy.d.ts +60 -0
  85. package/dist/lib/errors/retry-policy.d.ts.map +1 -0
  86. package/dist/lib/errors/retry-policy.js +54 -0
  87. package/dist/lib/flushScheduler.d.ts +162 -0
  88. package/dist/lib/flushScheduler.d.ts.map +1 -0
  89. package/dist/lib/flushScheduler.js +388 -0
  90. package/dist/lib/library.d.ts +149 -0
  91. package/dist/lib/library.d.ts.map +1 -0
  92. package/dist/lib/library.js +588 -0
  93. package/dist/lib/logApi.d.ts +61 -0
  94. package/dist/lib/logApi.d.ts.map +1 -0
  95. package/dist/lib/logApi.js +12 -0
  96. package/dist/lib/logBinding.d.ts +63 -0
  97. package/dist/lib/logBinding.d.ts.map +1 -0
  98. package/dist/lib/logBinding.js +1 -0
  99. package/dist/lib/op.d.ts +105 -0
  100. package/dist/lib/op.d.ts.map +1 -0
  101. package/dist/lib/op.js +59 -0
  102. package/dist/lib/opContext/contextTypes.d.ts +88 -0
  103. package/dist/lib/opContext/contextTypes.d.ts.map +1 -0
  104. package/dist/lib/opContext/contextTypes.js +34 -0
  105. package/dist/lib/opContext/createOpGroup.d.ts +57 -0
  106. package/dist/lib/opContext/createOpGroup.d.ts.map +1 -0
  107. package/dist/lib/opContext/createOpGroup.js +341 -0
  108. package/dist/lib/opContext/defineOp.d.ts +83 -0
  109. package/dist/lib/opContext/defineOp.d.ts.map +1 -0
  110. package/dist/lib/opContext/defineOp.js +197 -0
  111. package/dist/lib/opContext/featureFlagTypes.d.ts +58 -0
  112. package/dist/lib/opContext/featureFlagTypes.d.ts.map +1 -0
  113. package/dist/lib/opContext/featureFlagTypes.js +1 -0
  114. package/dist/lib/opContext/index.d.ts +13 -0
  115. package/dist/lib/opContext/index.d.ts.map +1 -0
  116. package/dist/lib/opContext/index.js +15 -0
  117. package/dist/lib/opContext/opGroupTypes.d.ts +250 -0
  118. package/dist/lib/opContext/opGroupTypes.d.ts.map +1 -0
  119. package/dist/lib/opContext/opGroupTypes.js +31 -0
  120. package/dist/lib/opContext/opTypes.d.ts +48 -0
  121. package/dist/lib/opContext/opTypes.d.ts.map +1 -0
  122. package/dist/lib/opContext/opTypes.js +7 -0
  123. package/dist/lib/opContext/spanContextTypes.d.ts +347 -0
  124. package/dist/lib/opContext/spanContextTypes.d.ts.map +1 -0
  125. package/dist/lib/opContext/spanContextTypes.js +1 -0
  126. package/dist/lib/opContext/types.d.ts +297 -0
  127. package/dist/lib/opContext/types.d.ts.map +1 -0
  128. package/dist/lib/opContext/types.js +16 -0
  129. package/dist/lib/result.d.ts +308 -0
  130. package/dist/lib/result.d.ts.map +1 -0
  131. package/dist/lib/result.js +359 -0
  132. package/dist/lib/schema/LogSchema.d.ts +62 -0
  133. package/dist/lib/schema/LogSchema.d.ts.map +1 -0
  134. package/dist/lib/schema/LogSchema.js +134 -0
  135. package/dist/lib/schema/builder.d.ts +12 -0
  136. package/dist/lib/schema/builder.d.ts.map +1 -0
  137. package/dist/lib/schema/builder.js +169 -0
  138. package/dist/lib/schema/defineFeatureFlags.d.ts +60 -0
  139. package/dist/lib/schema/defineFeatureFlags.d.ts.map +1 -0
  140. package/dist/lib/schema/defineFeatureFlags.js +29 -0
  141. package/dist/lib/schema/defineLogSchema.d.ts +87 -0
  142. package/dist/lib/schema/defineLogSchema.d.ts.map +1 -0
  143. package/dist/lib/schema/defineLogSchema.js +171 -0
  144. package/dist/lib/schema/evaluator.d.ts +267 -0
  145. package/dist/lib/schema/evaluator.d.ts.map +1 -0
  146. package/dist/lib/schema/evaluator.js +169 -0
  147. package/dist/lib/schema/extend.d.ts +14 -0
  148. package/dist/lib/schema/extend.d.ts.map +1 -0
  149. package/dist/lib/schema/extend.js +51 -0
  150. package/dist/lib/schema/systemSchema.d.ts +112 -0
  151. package/dist/lib/schema/systemSchema.d.ts.map +1 -0
  152. package/dist/lib/schema/systemSchema.js +260 -0
  153. package/dist/lib/schema/typeGuards.d.ts +52 -0
  154. package/dist/lib/schema/typeGuards.d.ts.map +1 -0
  155. package/dist/lib/schema/typeGuards.js +127 -0
  156. package/dist/lib/schema/types.d.ts +156 -0
  157. package/dist/lib/schema/types.d.ts.map +1 -0
  158. package/dist/lib/schema/types.js +4 -0
  159. package/dist/lib/spanBuffer.d.ts +133 -0
  160. package/dist/lib/spanBuffer.d.ts.map +1 -0
  161. package/dist/lib/spanBuffer.js +442 -0
  162. package/dist/lib/spanBufferHelpers.d.ts +53 -0
  163. package/dist/lib/spanBufferHelpers.d.ts.map +1 -0
  164. package/dist/lib/spanBufferHelpers.js +65 -0
  165. package/dist/lib/spanBufferStats.d.ts +38 -0
  166. package/dist/lib/spanBufferStats.d.ts.map +1 -0
  167. package/dist/lib/spanBufferStats.js +1 -0
  168. package/dist/lib/spanContext.d.ts +141 -0
  169. package/dist/lib/spanContext.d.ts.map +1 -0
  170. package/dist/lib/spanContext.js +763 -0
  171. package/dist/lib/sqlite/index.d.ts +14 -0
  172. package/dist/lib/sqlite/index.d.ts.map +1 -0
  173. package/dist/lib/sqlite/index.js +12 -0
  174. package/dist/lib/sqlite/sqlite-async-writer.d.ts +24 -0
  175. package/dist/lib/sqlite/sqlite-async-writer.d.ts.map +1 -0
  176. package/dist/lib/sqlite/sqlite-async-writer.js +65 -0
  177. package/dist/lib/sqlite/sqlite-common.d.ts +37 -0
  178. package/dist/lib/sqlite/sqlite-common.d.ts.map +1 -0
  179. package/dist/lib/sqlite/sqlite-common.js +207 -0
  180. package/dist/lib/sqlite/sqlite-d1.d.ts +25 -0
  181. package/dist/lib/sqlite/sqlite-d1.d.ts.map +1 -0
  182. package/dist/lib/sqlite/sqlite-d1.js +67 -0
  183. package/dist/lib/sqlite/sqlite-db.d.ts +29 -0
  184. package/dist/lib/sqlite/sqlite-db.d.ts.map +1 -0
  185. package/dist/lib/sqlite/sqlite-db.js +1 -0
  186. package/dist/lib/sqlite/sqlite-node.d.ts +16 -0
  187. package/dist/lib/sqlite/sqlite-node.d.ts.map +1 -0
  188. package/dist/lib/sqlite/sqlite-node.js +68 -0
  189. package/dist/lib/sqlite/sqlite-writer.d.ts +39 -0
  190. package/dist/lib/sqlite/sqlite-writer.d.ts.map +1 -0
  191. package/dist/lib/sqlite/sqlite-writer.js +78 -0
  192. package/dist/lib/testing/bun-harness.d.ts +150 -0
  193. package/dist/lib/testing/bun-harness.d.ts.map +1 -0
  194. package/dist/lib/testing/bun-harness.js +729 -0
  195. package/dist/lib/testing/extractFacts.d.ts +73 -0
  196. package/dist/lib/testing/extractFacts.d.ts.map +1 -0
  197. package/dist/lib/testing/extractFacts.js +237 -0
  198. package/dist/lib/testing/facts.d.ts +235 -0
  199. package/dist/lib/testing/facts.d.ts.map +1 -0
  200. package/dist/lib/testing/facts.js +209 -0
  201. package/dist/lib/testing/index.d.ts +58 -0
  202. package/dist/lib/testing/index.d.ts.map +1 -0
  203. package/dist/lib/testing/index.js +74 -0
  204. package/dist/lib/testing/queryable-span.d.ts +39 -0
  205. package/dist/lib/testing/queryable-span.d.ts.map +1 -0
  206. package/dist/lib/testing/queryable-span.js +58 -0
  207. package/dist/lib/testing/span-query.d.ts +21 -0
  208. package/dist/lib/testing/span-query.d.ts.map +1 -0
  209. package/dist/lib/testing/span-query.js +47 -0
  210. package/dist/lib/testing/stdio-replay.d.ts +4 -0
  211. package/dist/lib/testing/stdio-replay.d.ts.map +1 -0
  212. package/dist/lib/testing/stdio-replay.js +42 -0
  213. package/dist/lib/testing/trace-query.d.ts +59 -0
  214. package/dist/lib/testing/trace-query.d.ts.map +1 -0
  215. package/dist/lib/testing/trace-query.js +462 -0
  216. package/dist/lib/testing/vitest-harness.d.ts +135 -0
  217. package/dist/lib/testing/vitest-harness.d.ts.map +1 -0
  218. package/dist/lib/testing/vitest-harness.js +486 -0
  219. package/dist/lib/threadId.d.ts +58 -0
  220. package/dist/lib/threadId.d.ts.map +1 -0
  221. package/dist/lib/threadId.js +123 -0
  222. package/dist/lib/traceContext.d.ts +116 -0
  223. package/dist/lib/traceContext.d.ts.map +1 -0
  224. package/dist/lib/traceContext.js +37 -0
  225. package/dist/lib/traceId.d.ts +78 -0
  226. package/dist/lib/traceId.d.ts.map +1 -0
  227. package/dist/lib/traceId.js +87 -0
  228. package/dist/lib/traceRoot.d.ts +133 -0
  229. package/dist/lib/traceRoot.d.ts.map +1 -0
  230. package/dist/lib/traceRoot.es.d.ts +75 -0
  231. package/dist/lib/traceRoot.es.d.ts.map +1 -0
  232. package/dist/lib/traceRoot.es.js +129 -0
  233. package/dist/lib/traceRoot.js +19 -0
  234. package/dist/lib/traceRoot.node.d.ts +77 -0
  235. package/dist/lib/traceRoot.node.d.ts.map +1 -0
  236. package/dist/lib/traceRoot.node.js +133 -0
  237. package/dist/lib/traceRoot.universal.d.ts +3 -0
  238. package/dist/lib/traceRoot.universal.d.ts.map +1 -0
  239. package/dist/lib/traceRoot.universal.js +17 -0
  240. package/dist/lib/tracer.d.ts +296 -0
  241. package/dist/lib/tracer.d.ts.map +1 -0
  242. package/dist/lib/tracer.js +346 -0
  243. package/dist/lib/tracers/ArrayQueueTracer.d.ts +56 -0
  244. package/dist/lib/tracers/ArrayQueueTracer.d.ts.map +1 -0
  245. package/dist/lib/tracers/ArrayQueueTracer.js +67 -0
  246. package/dist/lib/tracers/CompositeTracer.d.ts +24 -0
  247. package/dist/lib/tracers/CompositeTracer.d.ts.map +1 -0
  248. package/dist/lib/tracers/CompositeTracer.js +57 -0
  249. package/dist/lib/tracers/NoOpTracer.d.ts +58 -0
  250. package/dist/lib/tracers/NoOpTracer.d.ts.map +1 -0
  251. package/dist/lib/tracers/NoOpTracer.js +41 -0
  252. package/dist/lib/tracers/SQLiteTracer.d.ts +42 -0
  253. package/dist/lib/tracers/SQLiteTracer.d.ts.map +1 -0
  254. package/dist/lib/tracers/SQLiteTracer.js +84 -0
  255. package/dist/lib/tracers/StdioTracer.d.ts +83 -0
  256. package/dist/lib/tracers/StdioTracer.d.ts.map +1 -0
  257. package/dist/lib/tracers/StdioTracer.js +270 -0
  258. package/dist/lib/tracers/TestTracer.d.ts +95 -0
  259. package/dist/lib/tracers/TestTracer.d.ts.map +1 -0
  260. package/dist/lib/tracers/TestTracer.js +87 -0
  261. package/dist/lib/tracers/index.d.ts +12 -0
  262. package/dist/lib/tracers/index.d.ts.map +1 -0
  263. package/dist/lib/tracers/index.js +11 -0
  264. package/dist/lib/types.d.ts +366 -0
  265. package/dist/lib/types.d.ts.map +1 -0
  266. package/dist/lib/types.js +1 -0
  267. package/dist/lib/utf8Cache.d.ts +111 -0
  268. package/dist/lib/utf8Cache.d.ts.map +1 -0
  269. package/dist/lib/utf8Cache.js +177 -0
  270. package/dist/lib/wasm/WasmBufferStrategy.d.ts +88 -0
  271. package/dist/lib/wasm/WasmBufferStrategy.d.ts.map +1 -0
  272. package/dist/lib/wasm/WasmBufferStrategy.js +138 -0
  273. package/dist/lib/wasm/wasmAllocator.d.ts +109 -0
  274. package/dist/lib/wasm/wasmAllocator.d.ts.map +1 -0
  275. package/dist/lib/wasm/wasmAllocator.js +227 -0
  276. package/dist/lib/wasm/wasmSpanBuffer.d.ts +123 -0
  277. package/dist/lib/wasm/wasmSpanBuffer.d.ts.map +1 -0
  278. package/dist/lib/wasm/wasmSpanBuffer.js +772 -0
  279. package/dist/lib/wasm/wasmTraceRoot.d.ts +167 -0
  280. package/dist/lib/wasm/wasmTraceRoot.d.ts.map +1 -0
  281. package/dist/lib/wasm/wasmTraceRoot.js +264 -0
  282. package/dist/node.d.ts +7 -0
  283. package/dist/node.d.ts.map +1 -0
  284. package/dist/node.js +8 -0
  285. package/dist/testing.d.ts +18 -0
  286. package/dist/testing.d.ts.map +1 -0
  287. package/dist/testing.js +17 -0
  288. package/package.json +193 -0
  289. package/src/bun/preload.ts +11 -0
  290. package/src/bun/trace-preload.ts +14 -0
  291. package/src/es.ts +11 -0
  292. package/src/index.ts +194 -0
  293. package/src/lib/JsBufferStrategy.ts +102 -0
  294. package/src/lib/__tests__/arrow-builder-integration/arrow-conversion.test.ts +485 -0
  295. package/src/lib/__tests__/arrow-builder-integration/binary-arrow-conversion.test.ts +390 -0
  296. package/src/lib/__tests__/arrow-builder-integration/binary-comparison.test.ts +647 -0
  297. package/src/lib/__tests__/arrow-builder-integration/binary-format-compliance.test.ts +292 -0
  298. package/src/lib/__tests__/arrow-builder-integration/buffer-chaining.test.ts +354 -0
  299. package/src/lib/__tests__/arrow-builder-integration/foundation.test.ts +127 -0
  300. package/src/lib/__tests__/arrow-builder-integration/integration.test.ts +392 -0
  301. package/src/lib/__tests__/arrow-builder-integration/lazy-columns.test.ts +389 -0
  302. package/src/lib/__tests__/arrow-conversion-algorithms.test.ts +54 -0
  303. package/src/lib/__tests__/arrow-test-helpers.ts +71 -0
  304. package/src/lib/__tests__/binary-e2e.test.ts +203 -0
  305. package/src/lib/__tests__/buffer-overflow-op-api.test.ts +608 -0
  306. package/src/lib/__tests__/buffer-overflow.test.ts +612 -0
  307. package/src/lib/__tests__/capacity-tuning.test.ts +544 -0
  308. package/src/lib/__tests__/effective-schema.test.ts +439 -0
  309. package/src/lib/__tests__/flechette.test.ts +42 -0
  310. package/src/lib/__tests__/flushScheduler.test.ts +537 -0
  311. package/src/lib/__tests__/integration.test.ts +600 -0
  312. package/src/lib/__tests__/library.test.ts +934 -0
  313. package/src/lib/__tests__/nested-library-tasks.test.ts +849 -0
  314. package/src/lib/__tests__/op-context-binding.test.ts +135 -0
  315. package/src/lib/__tests__/op-metadata.test.ts +198 -0
  316. package/src/lib/__tests__/op-type-safety.test.ts +71 -0
  317. package/src/lib/__tests__/package-exports.test.ts +57 -0
  318. package/src/lib/__tests__/remapped-buffer-view-integration.test.ts +319 -0
  319. package/src/lib/__tests__/remapped-buffer-view.test.ts +635 -0
  320. package/src/lib/__tests__/scope-attributes.test.ts +348 -0
  321. package/src/lib/__tests__/span-lifecycle.test.ts +680 -0
  322. package/src/lib/__tests__/sync-async-trace.test.ts +435 -0
  323. package/src/lib/__tests__/test-helpers.ts +318 -0
  324. package/src/lib/__tests__/timestamp.test.ts +259 -0
  325. package/src/lib/__tests__/trace-archive-primitives.test.ts +98 -0
  326. package/src/lib/__tests__/traceContext-type-enforcement.test.ts +271 -0
  327. package/src/lib/__tests__/tracer.test.ts +211 -0
  328. package/src/lib/__tests__/type-narrowing.test.ts +137 -0
  329. package/src/lib/archive/chunkCompaction.ts +44 -0
  330. package/src/lib/archive/chunkEnvelope.ts +79 -0
  331. package/src/lib/archive/chunkRouting.ts +70 -0
  332. package/src/lib/archive/chunkStats.ts +25 -0
  333. package/src/lib/archive/index.ts +4 -0
  334. package/src/lib/arrow/capacityStats.ts +340 -0
  335. package/src/lib/arrow/dictionaries.ts +159 -0
  336. package/src/lib/arrow/flechette.ts +114 -0
  337. package/src/lib/arrow/utils.ts +126 -0
  338. package/src/lib/buffer/Nanoseconds.ts +131 -0
  339. package/src/lib/bufferStrategy.ts +106 -0
  340. package/src/lib/capacityTuning.ts +102 -0
  341. package/src/lib/codegen/__tests__/__snapshots__/evaluatorGenerator.test.ts.snap +160 -0
  342. package/src/lib/codegen/__tests__/__snapshots__/scopeGenerator.test.ts.snap +196 -0
  343. package/src/lib/codegen/__tests__/__snapshots__/spanLoggerGenerator.test.ts.snap +1965 -0
  344. package/src/lib/codegen/__tests__/evaluatorGenerator.test.ts +516 -0
  345. package/src/lib/codegen/__tests__/nullBitmap.test.ts +207 -0
  346. package/src/lib/codegen/__tests__/spanLoggerGenerator.test.ts +237 -0
  347. package/src/lib/codegen/evaluatorGenerator.ts +309 -0
  348. package/src/lib/codegen/fixedPositionWriterGenerator.ts +444 -0
  349. package/src/lib/codegen/spanLoggerGenerator.ts +715 -0
  350. package/src/lib/convertToArrow.ts +1805 -0
  351. package/src/lib/defineOpContext.ts +398 -0
  352. package/src/lib/errors/Blocked.ts +165 -0
  353. package/src/lib/errors/CodeError.ts +132 -0
  354. package/src/lib/errors/RetriesExhausted.ts +78 -0
  355. package/src/lib/errors/Transient.ts +168 -0
  356. package/src/lib/errors/__tests__/Blocked-config.test.ts +152 -0
  357. package/src/lib/errors/__tests__/Transient.test.ts +129 -0
  358. package/src/lib/errors/__tests__/retry-policy.test.ts +85 -0
  359. package/src/lib/errors/index.ts +24 -0
  360. package/src/lib/errors/retry-policy.ts +87 -0
  361. package/src/lib/flushScheduler.ts +509 -0
  362. package/src/lib/library.ts +682 -0
  363. package/src/lib/logApi.ts +70 -0
  364. package/src/lib/logBinding.ts +67 -0
  365. package/src/lib/op.ts +103 -0
  366. package/src/lib/opContext/__tests__/retry.test.ts +764 -0
  367. package/src/lib/opContext/contextTypes.ts +130 -0
  368. package/src/lib/opContext/createOpGroup.ts +456 -0
  369. package/src/lib/opContext/defineOp.ts +281 -0
  370. package/src/lib/opContext/featureFlagTypes.ts +54 -0
  371. package/src/lib/opContext/index.ts +16 -0
  372. package/src/lib/opContext/opGroupTypes.ts +342 -0
  373. package/src/lib/opContext/opTypes.ts +80 -0
  374. package/src/lib/opContext/spanContextTypes.ts +398 -0
  375. package/src/lib/opContext/types.ts +403 -0
  376. package/src/lib/result.ts +550 -0
  377. package/src/lib/schema/LogSchema.ts +153 -0
  378. package/src/lib/schema/__tests__/defineLogSchema.test.ts +342 -0
  379. package/src/lib/schema/__tests__/featureFlags.test.ts +443 -0
  380. package/src/lib/schema/builder.ts +201 -0
  381. package/src/lib/schema/defineFeatureFlags.ts +91 -0
  382. package/src/lib/schema/defineLogSchema.ts +291 -0
  383. package/src/lib/schema/evaluator.ts +404 -0
  384. package/src/lib/schema/extend.ts +69 -0
  385. package/src/lib/schema/systemSchema.ts +339 -0
  386. package/src/lib/schema/typeGuards.ts +163 -0
  387. package/src/lib/schema/types.ts +265 -0
  388. package/src/lib/spanBuffer.ts +571 -0
  389. package/src/lib/spanBufferHelpers.ts +73 -0
  390. package/src/lib/spanBufferStats.ts +40 -0
  391. package/src/lib/spanContext.ts +1566 -0
  392. package/src/lib/sqlite/__tests__/sqlite-common.test.ts +89 -0
  393. package/src/lib/sqlite/index.ts +26 -0
  394. package/src/lib/sqlite/sqlite-async-writer.ts +101 -0
  395. package/src/lib/sqlite/sqlite-common.ts +309 -0
  396. package/src/lib/sqlite/sqlite-d1.ts +104 -0
  397. package/src/lib/sqlite/sqlite-db.ts +32 -0
  398. package/src/lib/sqlite/sqlite-node.ts +83 -0
  399. package/src/lib/sqlite/sqlite-writer.ts +128 -0
  400. package/src/lib/testing/TRACE-TESTING.md +100 -0
  401. package/src/lib/testing/__tests__/bun-harness.test.ts +108 -0
  402. package/src/lib/testing/__tests__/extractFacts.test.ts +279 -0
  403. package/src/lib/testing/__tests__/facts.test.ts +324 -0
  404. package/src/lib/testing/__tests__/vitest-harness.test.ts +32 -0
  405. package/src/lib/testing/bun-harness.ts +990 -0
  406. package/src/lib/testing/extractFacts.ts +362 -0
  407. package/src/lib/testing/facts.ts +470 -0
  408. package/src/lib/testing/index.ts +141 -0
  409. package/src/lib/testing/queryable-span.ts +108 -0
  410. package/src/lib/testing/span-query.ts +65 -0
  411. package/src/lib/testing/stdio-replay.ts +50 -0
  412. package/src/lib/testing/trace-query.ts +329 -0
  413. package/src/lib/testing/vitest-harness.ts +691 -0
  414. package/src/lib/threadId.ts +135 -0
  415. package/src/lib/traceContext.ts +182 -0
  416. package/src/lib/traceId.ts +142 -0
  417. package/src/lib/traceRoot.es.ts +157 -0
  418. package/src/lib/traceRoot.node.ts +170 -0
  419. package/src/lib/traceRoot.ts +154 -0
  420. package/src/lib/traceRoot.universal.ts +22 -0
  421. package/src/lib/tracer.ts +896 -0
  422. package/src/lib/tracers/ArrayQueueTracer.ts +76 -0
  423. package/src/lib/tracers/CompositeTracer.ts +76 -0
  424. package/src/lib/tracers/NoOpTracer.ts +73 -0
  425. package/src/lib/tracers/SQLiteTracer.ts +115 -0
  426. package/src/lib/tracers/StdioTracer.ts +380 -0
  427. package/src/lib/tracers/TestTracer.ts +146 -0
  428. package/src/lib/tracers/__tests__/ArrayQueueTracer.test.ts +184 -0
  429. package/src/lib/tracers/__tests__/NoOpTracer.test.ts +204 -0
  430. package/src/lib/tracers/__tests__/StdioTracer.test.ts +313 -0
  431. package/src/lib/tracers/__tests__/TestTracer.test.ts +200 -0
  432. package/src/lib/tracers/index.ts +12 -0
  433. package/src/lib/types.ts +498 -0
  434. package/src/lib/utf8Cache.ts +201 -0
  435. package/src/lib/wasm/WasmBufferStrategy.ts +219 -0
  436. package/src/lib/wasm/__tests__/WasmBufferStrategy.test.ts +256 -0
  437. package/src/lib/wasm/__tests__/wasm-integration.test.ts +476 -0
  438. package/src/lib/wasm/__tests__/wasmAllocator.test.ts +699 -0
  439. package/src/lib/wasm/__tests__/wasmSpanBuffer.test.ts +449 -0
  440. package/src/lib/wasm/__tests__/wasmTraceRoot.test.ts +390 -0
  441. package/src/lib/wasm/__tests__/wasmTracer.test.ts.disabled +444 -0
  442. package/src/lib/wasm/allocator.zig +945 -0
  443. package/src/lib/wasm/wasmAllocator.ts +469 -0
  444. package/src/lib/wasm/wasmSpanBuffer.ts +1014 -0
  445. package/src/lib/wasm/wasmTraceRoot.ts +315 -0
  446. package/src/node.ts +10 -0
  447. package/src/testing.ts +18 -0
@@ -0,0 +1,347 @@
1
+ /**
2
+ * SpanContext Types for Op-Centric API
3
+ *
4
+ * Core types for span-level operations within the trace logging system.
5
+ * These types define the context passed to Op functions for:
6
+ * - Tag writing (row 0 attributes)
7
+ * - Structured logging (rows 2+)
8
+ * - Result handling (ok/err)
9
+ * - Child span creation
10
+ * - Feature flag access
11
+ * - Dependency access
12
+ *
13
+ * ## Dependency Layer
14
+ * This module is at Layer 2 in the type hierarchy:
15
+ * - Depends on: result (Layer 1), types (Layer 3), featureFlagTypes (Layer 1)
16
+ * - Depended on by: opTypes (Layer 3)
17
+ *
18
+ * SpanFn now uses Op<Ctx, Args, S, E> directly (no structural typing).
19
+ */
20
+ import type { FluentLogEntry as FluentLogEntryFromGenerator } from '../codegen/spanLoggerGenerator.js';
21
+ import type { Err, Ok, Result } from '../result.js';
22
+ import type { FeatureFlagEvaluator, InferFeatureFlagsWithContext } from '../schema/evaluator.js';
23
+ import type { LogSchema } from '../schema/LogSchema.js';
24
+ import type { InferSchema } from '../schema/types.js';
25
+ import type { SpanBuffer } from '../types.js';
26
+ import type { Op } from './opTypes.js';
27
+ import type { OpContext } from './types.js';
28
+ /**
29
+ * DepsConfig - structural type to avoid importing from opGroupTypes.
30
+ * Represents a record of dependency groups.
31
+ */
32
+ export type DepsConfig = Record<string, any>;
33
+ /**
34
+ * ResolvedDeps - structural type to avoid importing from opGroupTypes.
35
+ * At runtime, deps are resolved OpGroups with their ops accessible.
36
+ */
37
+ export type ResolvedDeps<_D extends DepsConfig> = Record<string, any>;
38
+ /**
39
+ * Tag writer for setting span attributes (row 0)
40
+ * Generated at runtime with typed methods per schema field.
41
+ *
42
+ * Per specs/lmao/01h_entry_types_and_logging_primitives.md:
43
+ * - Writes to row 0 (fixed layout for span-start attributes)
44
+ * - All methods return TagWriter<T> for fluent chaining
45
+ * - Generated at runtime via createTagWriter()
46
+ */
47
+ export type TagWriter<T extends LogSchema> = {
48
+ [K in keyof InferSchema<T>]: (value: InferSchema<T>[K]) => TagWriter<T>;
49
+ } & {
50
+ /** Set multiple attributes at once */
51
+ with(attributes: Partial<InferSchema<T>>): TagWriter<T>;
52
+ };
53
+ /**
54
+ * SpanLogger - public API surface for structured logging.
55
+ *
56
+ * Includes core methods (info/debug/warn/error) from BaseSpanLogger
57
+ * and schema-specific methods from ColumnWriter.
58
+ * Internal methods (_setScope, _buffer, etc.) are hidden from this type.
59
+ *
60
+ * Per specs/lmao/01h_entry_types_and_logging_primitives.md:
61
+ * - Each level (info/debug/warn/error) creates a log entry
62
+ * - Returns FluentLogEntry for chaining field setters
63
+ * - Generated at runtime via createSpanLoggerFromGenerator()
64
+ */
65
+ export interface SpanLogger<T extends LogSchema> {
66
+ /** Log at info level */
67
+ info(message: string): FluentLogEntry<T>;
68
+ /** Log at debug level */
69
+ debug(message: string): FluentLogEntry<T>;
70
+ /** Log at warn level */
71
+ warn(message: string): FluentLogEntry<T>;
72
+ /** Log at error level */
73
+ error(message: string): FluentLogEntry<T>;
74
+ }
75
+ /**
76
+ * Fluent log entry - chainable attribute setters after log level.
77
+ *
78
+ * Re-exported from spanLoggerGenerator.ts to avoid circular dependencies.
79
+ * The implementation in spanLoggerGenerator.ts is the source of truth.
80
+ *
81
+ * Allows setting attributes after choosing a log level:
82
+ * ctx.log.info('message').userId('u1').requestId('r1')
83
+ *
84
+ * All attributes are optional, chainable, and return FluentLogEntry for continuation.
85
+ *
86
+ * Includes system schema fields for direct access (no information hiding):
87
+ * - line(n) - Source line number (0-65535)
88
+ * - error_code(code) - Error code string
89
+ * - exception_stack(stack) - Exception stack trace
90
+ * - ff_value(value) - Feature flag value
91
+ * - uint64_value(value) - BigInt value
92
+ *
93
+ * Per specs/lmao/01c_context_flow_and_op_wrappers.md "Line Number System":
94
+ * - TypeScript transformer injects line() calls at compile time
95
+ * - No runtime overhead - just a method call with literal number
96
+ */
97
+ export type FluentLogEntry<T extends LogSchema> = FluentLogEntryFromGenerator<T>;
98
+ /**
99
+ * SpanFn - overloaded span creation function.
100
+ *
101
+ * Per specs/lmao/01l_op_context_pattern.md and 01o lines 34-72:
102
+ * Creates child spans with type-safe Op invocation or inline closures, with/without line numbers.
103
+ *
104
+ * The transformer injects line numbers at compile time, but runtime supports both patterns for fallback.
105
+ * Uses Op<Ctx, Args, S, E> and returns Result<S, E> (no generic R).
106
+ */
107
+ export type SpanFn<Ctx extends OpContext> = {
108
+ /**
109
+ * Create child span with line number and Op invocation.
110
+ *
111
+ * Per spec 01o lines 46-49: Monomorphic span_op for transformer-injected line numbers.
112
+ *
113
+ * @param line - Source code line number (injected by transformer at compile time)
114
+ * @param name - Child span name (overrides Op's default name)
115
+ * @param op - Op to invoke (type-safe with Args, Success, Error types)
116
+ * @param args - Arguments to pass to Op function
117
+ * @returns Promise resolving to Result<S, E>
118
+ *
119
+ * @example
120
+ * const result = await ctx.span(42, 'fetch-user', fetchUserOp, userId);
121
+ */
122
+ <S, E, Args extends unknown[]>(line: number, name: string, op: Op<Ctx, Args, S, E>, ...args: Args): Promise<Result<S, E>>;
123
+ /**
124
+ * Create child span with line number and inline closure.
125
+ *
126
+ * Per spec 01o lines 51-53: Monomorphic span_fn for transformer-injected line numbers.
127
+ *
128
+ * @param line - Source code line number (injected by transformer at compile time)
129
+ * @param name - Child span name
130
+ * @param fn - Async function to execute in child span (receives SpanContext<Ctx>)
131
+ * @returns Promise resolving to Result<S, E>
132
+ *
133
+ * @example
134
+ * const result = await ctx.span(42, 'validate', async (childCtx) => {
135
+ * childCtx.tag.step('validation');
136
+ * return childCtx.ok({ valid: true });
137
+ * });
138
+ */
139
+ <S, E>(line: number, name: string, fn: (ctx: SpanContext<Ctx>) => Result<S, E> | Promise<Result<S, E>>): Promise<Result<S, E>>;
140
+ /**
141
+ * Create child span with Op invocation (most common - no line number).
142
+ *
143
+ * Per spec 01o lines 55-71: Polymorphic span dispatcher for fallback when transformer didn't inject line number.
144
+ *
145
+ * @param name - Child span name (overrides Op's default name)
146
+ * @param op - Op to invoke (type-safe with Args, Success, Error types)
147
+ * @param args - Arguments to pass to Op function
148
+ * @returns Promise resolving to Result<S, E>
149
+ *
150
+ * @example
151
+ * const result = await ctx.span('fetch-user', fetchUserOp, userId);
152
+ */
153
+ <S, E, Args extends unknown[]>(name: string, op: Op<Ctx, Args, S, E>, ...args: Args): Promise<Result<S, E>>;
154
+ /**
155
+ * Create child span with inline closure (most common - no line number).
156
+ *
157
+ * Per spec 01o lines 55-71: Polymorphic span dispatcher for fallback when transformer didn't inject line number.
158
+ *
159
+ * @param name - Child span name
160
+ * @param fn - Async function to execute in child span (receives SpanContext<Ctx>)
161
+ * @returns Promise resolving to Result<S, E>
162
+ *
163
+ * @example
164
+ * const result = await ctx.span('validate', async (childCtx) => {
165
+ * childCtx.tag.step('validation');
166
+ * return childCtx.ok({ valid: true });
167
+ * });
168
+ */
169
+ <S, E>(name: string, fn: (ctx: SpanContext<Ctx>) => Result<S, E> | Promise<Result<S, E>>): Promise<Result<S, E>>;
170
+ };
171
+ /**
172
+ * SpanSyncFn - synchronous child span creation.
173
+ *
174
+ * Use when the callback is guaranteed sync and should return immediately
175
+ * with a Result envelope.
176
+ */
177
+ export type SpanSyncFn<Ctx extends OpContext> = <S, E>(name: string, fn: (ctx: SpanContext<Ctx>) => Result<S, E>) => Result<S, E>;
178
+ /**
179
+ * SpanContext - what op functions receive.
180
+ *
181
+ * Per specs/lmao/01c_context_flow_and_op_wrappers.md and 01l:
182
+ * - Passed to Op functions as first argument
183
+ * - Combines built-in properties with user-extensible UserCtx via intersection
184
+ * - Child spans inherit scoped attributes from parent (frozen copy for safety)
185
+ * - User properties from Ctx['userCtx'] are spread via intersection at end
186
+ *
187
+ * @template Ctx - Bundled context (logSchema, flags, deps, userCtx)
188
+ *
189
+ * @example
190
+ * ```typescript
191
+ * const createUser = op('create-user', async (ctx, userData) => {
192
+ * ctx.setScope({ userId: userData.id });
193
+ * ctx.tag.operation('INSERT');
194
+ * ctx.log.info('Creating user').line(42);
195
+ * return ctx.ok(user);
196
+ * });
197
+ * ```
198
+ */
199
+ export type SpanContext<Ctx extends OpContext> = {
200
+ /**
201
+ * The underlying SpanBuffer for this context.
202
+ *
203
+ * Useful for Arrow table conversion after task completion.
204
+ * The buffer contains all trace data written during this span's execution.
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * const result = await myTask(requestCtx, args);
209
+ * const table = convertToArrowTable(ctx.buffer);
210
+ * ```
211
+ */
212
+ buffer: SpanBuffer<Ctx['logSchema']>;
213
+ /**
214
+ * Tag writer for span attributes (row 0).
215
+ *
216
+ * Per specs/lmao/01h_entry_types_and_logging_primitives.md:
217
+ * - Writes to row 0 (fixed layout for span-start attributes)
218
+ * - All methods return TagWriter for fluent chaining
219
+ *
220
+ * @example
221
+ * ctx.tag.userId('u1').requestId('r1').operation('INSERT');
222
+ */
223
+ tag: TagWriter<Ctx['logSchema']>;
224
+ /**
225
+ * Structured logger (rows 2+).
226
+ *
227
+ * Per specs/lmao/01h_entry_types_and_logging_primitives.md:
228
+ * - info/debug/warn/error create log entries
229
+ * - Returns FluentLogEntry for chaining field setters
230
+ * - Entries are appended after row 1
231
+ *
232
+ * @example
233
+ * ctx.log.info('Processing request').userId('u1').line(42);
234
+ */
235
+ log: SpanLogger<Ctx['logSchema']>;
236
+ /**
237
+ * Feature flags (logs access to current span).
238
+ *
239
+ * Per specs/lmao/01p_feature_flags.md:
240
+ * - Sync access via ff.flagName / ff['flagName']
241
+ * - Async access via await ff.get('flagName')
242
+ * - Logs flag access to span automatically
243
+ * - Type-safe evaluation with context
244
+ */
245
+ ff: FeatureFlagEvaluator<Ctx> & InferFeatureFlagsWithContext<Ctx>;
246
+ /**
247
+ * Dependencies - can be destructured!
248
+ *
249
+ * Per spec 01l lines 757-758:
250
+ * - Plain object references to dependency modules/ops
251
+ * - Zero-allocation deps (not closures)
252
+ *
253
+ * @example
254
+ * const { retry, auth } = deps;
255
+ * await span('retry', retry, 1);
256
+ */
257
+ deps: ResolvedDeps<Ctx['deps']>;
258
+ /**
259
+ * Create a success result with optional attributes.
260
+ *
261
+ * Writes span-ok entry to row 1 (span-end).
262
+ * Supports fluent chaining with .with() and .message().
263
+ *
264
+ * @param value - The success value
265
+ * @returns Fluent result builder
266
+ *
267
+ * @example
268
+ * return ctx.ok(user).with({ userId: user.id });
269
+ */
270
+ ok<S>(value: S): Ok<S, Ctx['logSchema']>;
271
+ /**
272
+ * Create an error result with optional attributes.
273
+ *
274
+ * Writes span-err entry to row 1 (span-end).
275
+ * Supports fluent chaining with .with() and .message().
276
+ *
277
+ * @param code - Error code string
278
+ * @param details - Error details
279
+ * @returns Fluent result builder
280
+ *
281
+ * @example
282
+ * const NOT_FOUND = defineCodeError('NOT_FOUND')<{ userId: string }>();
283
+ * return ctx.err(NOT_FOUND({ userId })).message('User not found');
284
+ */
285
+ err<E>(error: E): Err<E, Ctx['logSchema']>;
286
+ /**
287
+ * Create a child span with its own buffer.
288
+ *
289
+ * Child spans inherit scoped attributes from the parent.
290
+ * The child function receives a new SpanContext.
291
+ *
292
+ * Per specs/lmao/01i_span_scope_attributes.md:
293
+ * - Child inherits parent's scope by reference (safe because immutable)
294
+ * - Child can override scope values with setScope()
295
+ * - Scope is frozen at each level to prevent race conditions
296
+ *
297
+ * @example
298
+ * const result = await ctx.span('validate', async (childCtx) => {
299
+ * childCtx.tag.step('validation');
300
+ * return childCtx.ok({ valid: true });
301
+ * });
302
+ */
303
+ span: SpanFn<Ctx>;
304
+ /**
305
+ * Create a synchronous child span.
306
+ *
307
+ * `spanSync` is for sync callbacks only and returns Result directly.
308
+ * It does not await or perform async retry/backoff behavior.
309
+ */
310
+ spanSync: SpanSyncFn<Ctx>;
311
+ /**
312
+ * Set scoped attributes that auto-propagate to all subsequent log entries.
313
+ *
314
+ * Scoped attributes are automatically included in all log entries
315
+ * and inherited by child spans. Uses merge semantics - pass null to clear a value.
316
+ *
317
+ * Per specs/lmao/01i_span_scope_attributes.md:
318
+ * - Creates a NEW frozen object (never mutates existing scope)
319
+ * - setScope({ x: null }) removes x from scope
320
+ * - Child spans get frozen snapshot at creation (async-safe)
321
+ *
322
+ * @param attributes - Attributes to scope to this span (null clears a value)
323
+ *
324
+ * @example
325
+ * ctx.setScope({ requestId: req.id, userId: req.user?.id });
326
+ * ctx.log.info('Processing'); // Includes requestId and userId
327
+ * ctx.setScope({ userId: null }); // Clear userId from scope
328
+ */
329
+ setScope(values: Partial<InferSchema<Ctx['logSchema']>> | null): void;
330
+ /**
331
+ * Read-only view of current scoped attributes.
332
+ *
333
+ * Returns the frozen scope object containing all currently scoped values.
334
+ * Use setScope() to modify scope values.
335
+ *
336
+ * Per specs/lmao/01i_span_scope_attributes.md:
337
+ * - Always a frozen object, never undefined
338
+ * - Initialized to EMPTY_SCOPE, only replaced with new frozen objects
339
+ * - Safe to read from async code without race conditions
340
+ *
341
+ * @example
342
+ * ctx.setScope({ requestId: 'r1' });
343
+ * console.log(ctx.scope.requestId); // 'r1'
344
+ */
345
+ scope: Readonly<Partial<InferSchema<Ctx['logSchema']>>>;
346
+ } & Ctx['userCtx'];
347
+ //# sourceMappingURL=spanContextTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spanContextTypes.d.ts","sourceRoot":"","sources":["../../../src/lib/opContext/spanContextTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,297 @@
1
+ /**
2
+ * Op-Centric API Type Definitions Hub
3
+ *
4
+ * This is the central hub for all Op-centric API types. Consumers should import
5
+ * from this file rather than individual type files.
6
+ *
7
+ * Organized into logical groups:
8
+ * - Context utilities (reserved props, null/undefined key extraction, validation)
9
+ * - Feature flags (schema, evaluator, bound flags)
10
+ * - OpGroup (groups, mapping, deps, schema combination)
11
+ * - Op (metadata, function signature, instance)
12
+ * - SpanContext (tag writer, logger, span function, full context)
13
+ *
14
+ * @module opContext/types
15
+ */
16
+ export type { FlagEvaluator, SpanContextWithoutFf } from '../schema/evaluator.js';
17
+ export { type DefaultKeys, type NullKeys, type OptionalContextParams, RESERVED_CONTEXT_PROPS, type RequiredContextParams, type ReservedContextProp, type ResolvedContext, type TraceContextParams, type UndefinedKeys, type ValidateUserContext, } from './contextTypes.js';
18
+ export type { BoundFeatureFlags, FeatureFlagSchema } from './featureFlagTypes.js';
19
+ export type { AnyOpGroup, ColumnMapping, CombinedDepsSchema, ContributedSchemaOf, DepsConfig, EffectiveSchema, MappedOpGroup, MappedSchema, OpGroup, PrefixedSchema, ResolvedDeps, SchemaFieldsOf, UnionToIntersection, } from './opGroupTypes.js';
20
+ export type { Op, OpFn, OpMetadata, OpsFromRecord } from './opTypes.js';
21
+ export type { FluentLogEntry, SpanContext, SpanFn, SpanLogger, SpanSyncFn, TagWriter } from './spanContextTypes.js';
22
+ export { LogSchema } from '../schema/LogSchema.js';
23
+ export type { FeatureFlagDefinition, InferSchema, SchemaFields } from '../schema/types.js';
24
+ /**
25
+ * Unique symbol to carry OpContext type on OpContextFactory.
26
+ * Allows extracting the bundled type without passing 4 separate params.
27
+ * Must be a runtime value (not just `declare const`) so it can be used as property key.
28
+ */
29
+ declare const opContextType: unique symbol;
30
+ /**
31
+ * Helper to extract OpContext from a factory.
32
+ * @example
33
+ * const { defineOp } = defineOpContext({ ... });
34
+ * type MyCtx = OpContextOf<typeof factory>; // OpContext<T, FF, Deps, UserCtx>
35
+ */
36
+ export type OpContextOf<F> = F extends {
37
+ readonly [opContextType]?: infer Ctx;
38
+ } ? Ctx : never;
39
+ export { opContextType };
40
+ /**
41
+ * Bundled type parameters for Op context.
42
+ *
43
+ * Created by defineOpContext() and shared by all Ops from that factory.
44
+ * Reduces type parameter count: Op<Ctx, Args, S, E> instead of Op<T, FF, Deps, UserCtx, Args, R>
45
+ *
46
+ * @template T - LogSchema type
47
+ * @template FF - Feature flag schema
48
+ * @template Deps - Dependencies config
49
+ * @template UserCtx - User context properties
50
+ */
51
+ export type OpContext<T extends LogSchema = LogSchema, FF extends FeatureFlagSchema = FeatureFlagSchema, Deps extends DepsConfig = DepsConfig, UserCtx extends Record<string, unknown> = Record<string, unknown>> = {
52
+ readonly logSchema: T;
53
+ readonly flags: FF;
54
+ readonly deps: Deps;
55
+ readonly userCtx: UserCtx;
56
+ };
57
+ import type { LogSchema } from '../schema/LogSchema.js';
58
+ import type { SchemaFields } from '../schema/types.js';
59
+ import type { ValidateUserContext } from './contextTypes.js';
60
+ import type { FeatureFlagSchema } from './featureFlagTypes.js';
61
+ import type { DepsConfig, OpGroup } from './opGroupTypes.js';
62
+ import type { Op, OpFn, OpMetadata, OpsFromRecord } from './opTypes.js';
63
+ /**
64
+ * Configuration for defineOpContext
65
+ *
66
+ * This is the main configuration interface for creating an Op context factory.
67
+ * It defines:
68
+ * - The app's own schema (logSchema)
69
+ * - Dependencies from other OpGroups (deps)
70
+ * - Feature flag schema (flags)
71
+ * - User-defined context properties (ctx)
72
+ *
73
+ * @template T - LogSchema fields (app's own schema)
74
+ * @template FF - Feature flag schema
75
+ * @template Deps - Dependency record (other OpGroups with mappings)
76
+ * @template UserCtx - User-defined context properties
77
+ *
78
+ * The effective schema for ops = `T & CombinedDepsSchema<Deps>`.
79
+ * This means ops can write to columns from both the app's schema AND
80
+ * all columns contributed by wired dependencies (after mapping/prefixing).
81
+ */
82
+ export interface OpContextConfig<T extends SchemaFields, FF extends FeatureFlagSchema, Deps extends DepsConfig, UserCtx extends Record<string, unknown>> {
83
+ /**
84
+ * Log schema defining the app's own columns.
85
+ *
86
+ * The effective schema for ops is this PLUS columns from deps.
87
+ * E.g., if you wire `http: httpOps.prefix('http')`, ops can also
88
+ * write to `http_status`, `http_url`, etc.
89
+ */
90
+ readonly logSchema: LogSchema<T>;
91
+ /**
92
+ * Dependencies - other OpGroups that can be invoked via ctx.deps
93
+ *
94
+ * Each dep's columns are added to the effective schema based on its mapping:
95
+ * - `.prefix('http')` → columns become `http_status`, `http_url`, etc.
96
+ * - `.mapColumns({ query: 'query' })` → shares the `query` column
97
+ * - `.mapColumns({ _internal: null })` → drops the `_internal` column
98
+ *
99
+ * @example
100
+ * deps: {
101
+ * pg: postgresOps.mapColumns({ query: 'query', rows: 'pg_rows' }),
102
+ * mysql: mysqlOps.mapColumns({ query: 'query', duration: 'mysql_duration' }),
103
+ * http: httpOps.prefix('http'),
104
+ * }
105
+ * // Effective schema includes: query, pg_rows, mysql_duration, http_status, http_url, ...
106
+ */
107
+ readonly deps?: Deps;
108
+ /**
109
+ * Feature flag schema - defines available flags and their types
110
+ *
111
+ * @example
112
+ * flags: defineFeatureFlags({
113
+ * newCheckout: S.boolean().default(false).async(),
114
+ * maxRetries: S.number().default(3).sync(),
115
+ * })
116
+ */
117
+ readonly flags?: FF;
118
+ /**
119
+ * User-defined context properties
120
+ *
121
+ * ALL properties must be declared here for V8 hidden class optimization.
122
+ * Properties set to `null` must be provided when calling createTrace().
123
+ * Properties with values have defaults and can be optionally overridden.
124
+ *
125
+ * @example
126
+ * ctx: {
127
+ * env: null as CFWorkerEnv, // Must provide at createTrace()
128
+ * config: { retryCount: 3 }, // Has default, can override
129
+ * requestId: null as string, // Must provide at createTrace()
130
+ * }
131
+ */
132
+ readonly ctx?: ValidateUserContext<UserCtx>;
133
+ }
134
+ /**
135
+ * Runtime binding from defineOpContext for use with Tracer.
136
+ *
137
+ * Contains everything a Tracer needs to create traces:
138
+ * - logBinding: Schema and capacity stats for buffer creation
139
+ * - ctxDefaults: User context defaults (with null sentinels for required fields)
140
+ * - deps: Wired dependencies for ctx.deps
141
+ *
142
+ * Carries phantom type via [opContextType] for full OpContext inference.
143
+ * This allows `new TestTracer(ctx)` to infer T from ctx.logBinding without
144
+ * explicit type parameters.
145
+ *
146
+ * @template T - LogSchema type
147
+ * @template FF - Feature flag schema
148
+ * @template Deps - Dependencies config
149
+ * @template UserCtx - User context properties
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * const ctx = defineOpContext({
154
+ * logSchema: defineLogSchema({ userId: S.category() }),
155
+ * ctx: { env: null as Env },
156
+ * });
157
+ *
158
+ * // Tracer infers types from binding - no explicit type params needed
159
+ * const { trace } = new TestTracer(ctx);
160
+ * ```
161
+ */
162
+ export interface OpContextBinding<T extends LogSchema = LogSchema, FF extends FeatureFlagSchema = FeatureFlagSchema, Deps extends DepsConfig = DepsConfig, UserCtx extends Record<string, unknown> = Record<string, unknown>> {
163
+ /**
164
+ * Phantom type - extract via OpContextOf<typeof binding>
165
+ *
166
+ * Carries the bundled OpContext type for type inference.
167
+ * Tracers use this to infer the full context type without explicit parameters.
168
+ *
169
+ * @internal
170
+ */
171
+ readonly [opContextType]?: OpContext<T, FF, Deps, UserCtx>;
172
+ /**
173
+ * LogBinding for this context (schema, capacity stats, optional prefix view).
174
+ * Used by Tracer to create SpanBuffers and SpanContexts.
175
+ * Typed with schema T for Op type safety.
176
+ */
177
+ readonly logBinding: import('../logBinding.js').LogBinding<T>;
178
+ /**
179
+ * Feature flag schema needed by tracers to bootstrap typed evaluators.
180
+ */
181
+ readonly flags: FF;
182
+ /**
183
+ * User context defaults from ctx config.
184
+ * Used by Tracer to merge with trace-level overrides.
185
+ * Properties with null values are required at trace creation.
186
+ */
187
+ readonly ctxDefaults: UserCtx;
188
+ /**
189
+ * Dependencies wired at defineOpContext time.
190
+ * Used by Tracer to populate ctx.deps on root spans.
191
+ */
192
+ readonly deps: Deps;
193
+ }
194
+ /**
195
+ * Return type of defineOpContext
196
+ *
197
+ * This is the factory returned by defineOpContext that provides:
198
+ * - `defineOp`: Define a single Op with explicit name
199
+ * - `defineOps`: Define multiple Ops and create an OpGroup
200
+ * - `logSchema`: The combined effective schema
201
+ * - `flags`: The feature flag schema
202
+ *
203
+ * Extends OpContextBinding to provide everything Tracer needs.
204
+ * Uses unique symbol [opContextType] to carry the bundled OpContext type
205
+ * for extraction via OpContextOf<typeof factory>.
206
+ *
207
+ * @template T - The app's LogSchema
208
+ * @template FF - Feature flag schema
209
+ * @template Deps - Wired dependencies
210
+ * @template UserCtx - User context properties
211
+ *
212
+ * The effective schema for ops is `T & CombinedDepsSchema<Deps>` - the app's
213
+ * schema combined with all columns contributed by wired dependencies.
214
+ */
215
+ export interface OpContextFactory<T extends LogSchema, FF extends FeatureFlagSchema, Deps extends DepsConfig, UserCtx extends Record<string, unknown>> extends OpContextBinding<T, FF, Deps, UserCtx> {
216
+ /**
217
+ * The combined log schema (app schema + dep contributions).
218
+ *
219
+ * This is the effective schema that ops can write to. It includes:
220
+ * - All columns from the app's logSchema
221
+ * - All mapped/prefixed columns from dependencies
222
+ *
223
+ * External consumers can use this to see the full schema shape.
224
+ */
225
+ readonly logSchema: T;
226
+ /**
227
+ * The feature flag schema (for external consumers)
228
+ */
229
+ readonly flags: FF;
230
+ /**
231
+ * Define a single Op with explicit name.
232
+ *
233
+ * Creates an Op instance that wraps your function with metadata for tracing.
234
+ * The Op can be invoked via ctx.span() or exported for use by other modules.
235
+ *
236
+ * @param name - Op name (used for default span naming and metrics)
237
+ * @param fn - Op function receiving SpanContext and returning Result<S, E>
238
+ * @param metadata - Optional metadata override (package_name, package_file, etc.)
239
+ * @returns Op instance with type Op<OpContext<T, FF, Deps, UserCtx>, Args, S, E>
240
+ *
241
+ * @example
242
+ * ```typescript
243
+ * const fetchUser = defineOp('fetchUser', async (ctx, userId: string) => {
244
+ * ctx.tag.userId(userId);
245
+ * const user = await db.getUser(userId);
246
+ * if (!user) return ctx.err('NOT_FOUND', { userId });
247
+ * return ctx.ok(user);
248
+ * });
249
+ *
250
+ * // Invoke via span:
251
+ * const result = await ctx.span('get-user', fetchUser, 'user-123');
252
+ * ```
253
+ */
254
+ defineOp<Args extends unknown[], S, E>(name: string, fn: OpFn<OpContext<T, FF, Deps, UserCtx>, Args, S, E>, metadata?: Partial<OpMetadata>): Op<OpContext<T, FF, Deps, UserCtx>, Args, S, E>;
255
+ /**
256
+ * Define multiple Ops at once and create an OpGroup.
257
+ *
258
+ * Property keys become Op names. Supports `this` binding for calling
259
+ * sibling ops within the same batch. Returns an OpGroup that can be:
260
+ * - Prefixed with `.prefix('http')` for column namespacing
261
+ * - Column-mapped with `.mapColumns({ query: 'query' })` for sharing
262
+ * - Wired as a dependency in another module's `deps` config
263
+ *
264
+ * @param definitions - Record of Op functions or existing Op instances
265
+ * @returns OpGroup with all defined Ops accessible as properties
266
+ *
267
+ * @example
268
+ * ```typescript
269
+ * export const userOps = defineOps({
270
+ * // Reuse existing Op
271
+ * fetchUser,
272
+ *
273
+ * // Define new op with method syntax
274
+ * async createUser(ctx, data: UserData) {
275
+ * ctx.tag.operation('INSERT');
276
+ * const user = await db.createUser(data);
277
+ * return ctx.ok(user);
278
+ * },
279
+ *
280
+ * // Call sibling op via this.opName
281
+ * async createAndFetch(ctx, data: UserData) {
282
+ * const created = await ctx.span('create', this.createUser, data);
283
+ * if (!created.success) return created;
284
+ * return ctx.span('fetch', this.fetchUser, created.value.id);
285
+ * },
286
+ * });
287
+ *
288
+ * // Wire as dependency with prefix:
289
+ * deps: { users: userOps.prefix('user') }
290
+ *
291
+ * // Invoke from parent context:
292
+ * await ctx.span('create-user', userOps.createUser, userData);
293
+ * ```
294
+ */
295
+ defineOps<Defs extends Record<string, OpFn<OpContext<T, FF, Deps, UserCtx>, unknown[], unknown, unknown> | Op<OpContext<T, FF, Deps, UserCtx>, unknown[], unknown, unknown>>>(definitions: Defs): OpGroup<OpContext<T, FF, Deps, UserCtx>, OpsFromRecord<OpContext<T, FF, Deps, UserCtx>, Defs>>;
296
+ }
297
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/opContext/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,sBAAsB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAElF,YAAY,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,aAAa,EACb,YAAY,EACZ,OAAO,EACP,cAAc,EACd,YAAY,EACZ,cAAc,EACd,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAExE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAMpH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAM3F;;;;GAIG;AACH,QAAA,MAAM,aAAa,EAAE,OAAO,MAAgC,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,CAAA;CAAE,GAAG,GAAG,GAAG,KAAK,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,CAAC;AAMzB;;;;;;;;;;GAUG;AACH,MAAM,MAAM,SAAS,CACnB,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,EAAE,SAAS,iBAAiB,GAAG,iBAAiB,EAChD,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC/D;IACF,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,CAAC;AAMF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAExE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,eAAe,CAC9B,CAAC,SAAS,YAAY,EACtB,EAAE,SAAS,iBAAiB,EAC5B,IAAI,SAAS,UAAU,EACvB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEvC;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IAEjC;;;;;;;;;;;;;;;OAeG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IAErB;;;;;;;;OAQG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;IAEpB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;CAC7C;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,gBAAgB,CAC/B,CAAC,SAAS,SAAS,GAAG,SAAS,EAC/B,EAAE,SAAS,iBAAiB,GAAG,iBAAiB,EAChD,IAAI,SAAS,UAAU,GAAG,UAAU,EACpC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjE;;;;;;;OAOG;IACH,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE3D;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,kBAAkB,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAE9D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IAEnB;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAE9B;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;CACrB;AAMD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,WAAW,gBAAgB,CAC/B,CAAC,SAAS,SAAS,EACnB,EAAE,SAAS,iBAAiB,EAC5B,IAAI,SAAS,UAAU,EACvB,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACvC,SAAQ,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;IAC9C;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;IAEnB;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,QAAQ,CAAC,IAAI,SAAS,OAAO,EAAE,EAAE,CAAC,EAAE,CAAC,EACnC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EACrD,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAC7B,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAuCG;IACH,SAAS,CACP,IAAI,SAAS,MAAM,CACjB,MAAM,EACJ,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAClE,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CACnE,EACD,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;CACtH"}
@@ -0,0 +1,16 @@
1
+ // Context type utilities (reserved props, null/undefined key extraction, validation)
2
+ export { RESERVED_CONTEXT_PROPS, } from './contextTypes.js';
3
+ // =============================================================================
4
+ // CONVENIENCE RE-EXPORTS
5
+ // =============================================================================
6
+ export { LogSchema } from '../schema/LogSchema.js';
7
+ // =============================================================================
8
+ // OP CONTEXT TYPE SYMBOL
9
+ // =============================================================================
10
+ /**
11
+ * Unique symbol to carry OpContext type on OpContextFactory.
12
+ * Allows extracting the bundled type without passing 4 separate params.
13
+ * Must be a runtime value (not just `declare const`) so it can be used as property key.
14
+ */
15
+ const opContextType = Symbol('opContextType');
16
+ export { opContextType };