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