@smoothbricks/lmao 0.1.4 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cloudflare.d.ts +15 -0
- package/dist/cloudflare.d.ts.map +1 -0
- package/dist/cloudflare.js +14 -0
- package/dist/es.js +1 -0
- package/dist/lib/JsBufferStrategy.d.ts.map +1 -1
- package/dist/lib/JsBufferStrategy.js +12 -0
- package/dist/lib/archive/chunkEnvelope.js +1 -0
- package/dist/lib/archive/chunkRouting.js +1 -0
- package/dist/lib/archive/chunkStats.js +1 -0
- package/dist/lib/arrow/capacityStats.js +1 -0
- package/dist/lib/arrow/dictionaries.d.ts.map +1 -1
- package/dist/lib/buffer/Nanoseconds.d.ts.map +1 -1
- package/dist/lib/buffer/Nanoseconds.js +34 -0
- package/dist/lib/bufferStrategy.js +21 -0
- package/dist/lib/capacityTuning.js +26 -0
- package/dist/lib/cleanupDiagnostics.js +2 -2
- package/dist/lib/cloudflare/classSplit.d.ts +73 -0
- package/dist/lib/cloudflare/classSplit.d.ts.map +1 -0
- package/dist/lib/cloudflare/classSplit.js +101 -0
- package/dist/lib/cloudflare/collectorClient.d.ts +69 -0
- package/dist/lib/cloudflare/collectorClient.d.ts.map +1 -0
- package/dist/lib/cloudflare/collectorClient.js +82 -0
- package/dist/lib/cloudflare/diagnosticDrain.d.ts +78 -0
- package/dist/lib/cloudflare/diagnosticDrain.d.ts.map +1 -0
- package/dist/lib/cloudflare/diagnosticDrain.js +120 -0
- package/dist/lib/cloudflare/traceRows.d.ts +19 -0
- package/dist/lib/cloudflare/traceRows.d.ts.map +1 -0
- package/dist/lib/cloudflare/traceRows.js +51 -0
- package/dist/lib/codegen/evaluatorGenerator.js +2 -1
- package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts +8 -0
- package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts.map +1 -1
- package/dist/lib/codegen/fixedPositionWriterGenerator.js +18 -1
- package/dist/lib/codegen/spanLoggerGenerator.js +1 -0
- package/dist/lib/errors/Blocked.d.ts +1 -1
- package/dist/lib/errors/Blocked.d.ts.map +1 -1
- package/dist/lib/errors/Blocked.js +53 -0
- package/dist/lib/errors/CodeError.d.ts.map +1 -1
- package/dist/lib/errors/CodeError.js +31 -0
- package/dist/lib/errors/RetriesExhausted.d.ts +1 -1
- package/dist/lib/errors/RetriesExhausted.d.ts.map +1 -1
- package/dist/lib/errors/RetriesExhausted.js +38 -0
- package/dist/lib/errors/Transient.d.ts +1 -1
- package/dist/lib/errors/Transient.d.ts.map +1 -1
- package/dist/lib/errors/Transient.js +31 -0
- package/dist/lib/errors/retry-policy.js +1 -0
- package/dist/lib/flushScheduler.d.ts +0 -3
- package/dist/lib/flushScheduler.d.ts.map +1 -1
- package/dist/lib/library.js +1 -0
- package/dist/lib/logApi.js +11 -0
- package/dist/lib/logBinding.js +13 -0
- package/dist/lib/op.d.ts.map +1 -1
- package/dist/lib/op.js +15 -0
- package/dist/lib/opContext/contextTypes.d.ts +1 -1
- package/dist/lib/opContext/contextTypes.d.ts.map +1 -1
- package/dist/lib/opContext/createOpGroup.js +1 -0
- package/dist/lib/opContext/featureFlagTypes.js +13 -0
- package/dist/lib/opContext/opGroupTypes.d.ts +1 -1
- package/dist/lib/opContext/opGroupTypes.d.ts.map +1 -1
- package/dist/lib/opContext/opGroupTypes.js +16 -0
- package/dist/lib/opContext/opTypes.js +14 -0
- package/dist/lib/opContext/spanContextTypes.js +19 -0
- package/dist/lib/opContext/types.js +15 -0
- package/dist/lib/result.d.ts.map +1 -1
- package/dist/lib/schema/LogSchema.d.ts.map +1 -1
- package/dist/lib/schema/builder.js +1 -0
- package/dist/lib/schema/defineFeatureFlags.js +1 -0
- package/dist/lib/schema/defineLogSchema.js +10 -0
- package/dist/lib/schema/evaluator.d.ts.map +1 -1
- package/dist/lib/schema/evaluator.js +1 -0
- package/dist/lib/schema/systemSchema.d.ts +1 -1
- package/dist/lib/schema/systemSchema.d.ts.map +1 -1
- package/dist/lib/schema/systemSchema.js +8 -0
- package/dist/lib/schema/types.js +6 -0
- package/dist/lib/spanBuffer.d.ts.map +1 -1
- package/dist/lib/spanBufferHelpers.js +1 -0
- package/dist/lib/spanBufferStats.js +24 -0
- package/dist/lib/spanContext.js +1 -0
- package/dist/lib/sqlite/sqlite-async-writer.d.ts.map +1 -1
- package/dist/lib/sqlite/sqlite-common.d.ts +2 -0
- package/dist/lib/sqlite/sqlite-common.d.ts.map +1 -1
- package/dist/lib/sqlite/sqlite-common.js +4 -0
- package/dist/lib/sqlite/sqlite-d1.js +8 -0
- package/dist/lib/sqlite/sqlite-db.js +8 -0
- package/dist/lib/sqlite/sqlite-writer.d.ts.map +1 -1
- package/dist/lib/testing/bun-harness.d.ts +4 -0
- package/dist/lib/testing/bun-harness.d.ts.map +1 -1
- package/dist/lib/testing/extractFacts.js +8 -0
- package/dist/lib/testing/facts.d.ts.map +1 -1
- package/dist/lib/testing/facts.js +19 -0
- package/dist/lib/testing/queryable-span.js +16 -0
- package/dist/lib/testing/span-query.js +8 -0
- package/dist/lib/testing/trace-query.d.ts.map +1 -1
- package/dist/lib/testing/trace-query.js +247 -219
- package/dist/lib/traceContext.js +8 -0
- package/dist/lib/traceId.js +1 -0
- package/dist/lib/traceRoot.d.ts +5 -5
- package/dist/lib/traceRoot.es.d.ts.map +1 -1
- package/dist/lib/traceRoot.es.js +2 -1
- package/dist/lib/traceRoot.js +16 -1
- package/dist/lib/traceRoot.node.d.ts +2 -2
- package/dist/lib/traceRoot.node.d.ts.map +1 -1
- package/dist/lib/traceRoot.node.js +4 -3
- package/dist/lib/tracer.d.ts.map +1 -1
- package/dist/lib/tracer.js +61 -0
- package/dist/lib/tracers/ArrayQueueTracer.d.ts.map +1 -1
- package/dist/lib/tracers/ArrayQueueTracer.js +1 -0
- package/dist/lib/tracers/CompositeTracer.d.ts.map +1 -1
- package/dist/lib/tracers/CompositeTracer.js +1 -0
- package/dist/lib/tracers/NoOpTracer.d.ts.map +1 -1
- package/dist/lib/tracers/NoOpTracer.js +25 -0
- package/dist/lib/tracers/SQLiteTracer.d.ts.map +1 -1
- package/dist/lib/tracers/StdioTracer.d.ts.map +1 -1
- package/dist/lib/tracers/StdioTracer.js +39 -6
- package/dist/lib/tracers/TestTracer.d.ts.map +1 -1
- package/dist/lib/tracers/TestTracer.js +30 -0
- package/dist/lib/types.js +10 -0
- package/dist/lib/utf8Cache.d.ts.map +1 -1
- package/dist/lib/utf8Cache.js +1 -0
- package/dist/lib/wasm/WasmBufferStrategy.d.ts.map +1 -1
- package/dist/lib/wasm/WasmBufferStrategy.js +15 -0
- package/dist/lib/wasm/wasmAllocator.js +16 -0
- package/dist/lib/wasm/wasmSpanBuffer.js +12 -0
- package/dist/lib/wasm/wasmTraceRoot.d.ts.map +1 -1
- package/dist/lib/wasm/wasmTraceRoot.js +2 -1
- package/dist/node.js +1 -0
- package/package.json +11 -4
- package/src/cloudflare.ts +35 -0
- package/src/lib/bufferStrategy.ts +2 -2
- package/src/lib/cleanupDiagnostics.ts +2 -2
- package/src/lib/cloudflare/__tests__/classSplit.test.ts +171 -0
- package/src/lib/cloudflare/__tests__/collectorClient.test.ts +104 -0
- package/src/lib/cloudflare/__tests__/diagnosticDrain.test.ts +165 -0
- package/src/lib/cloudflare/classSplit.ts +139 -0
- package/src/lib/cloudflare/collectorClient.ts +117 -0
- package/src/lib/cloudflare/diagnosticDrain.ts +152 -0
- package/src/lib/cloudflare/traceRows.ts +60 -0
- package/src/lib/codegen/__tests__/fixedPositionWriter-uint64.test.ts +304 -0
- package/src/lib/codegen/evaluatorGenerator.ts +2 -2
- package/src/lib/codegen/fixedPositionWriterGenerator.ts +26 -1
- package/src/lib/schema/defineFeatureFlags.ts +2 -2
- package/src/lib/schema/evaluator.ts +2 -2
- package/src/lib/sqlite/sqlite-common.ts +5 -0
- package/src/lib/testing/__tests__/facts.test.ts +6 -6
- package/src/lib/traceRoot.es.ts +2 -2
- package/src/lib/traceRoot.node.ts +3 -3
- package/src/lib/traceRoot.ts +5 -5
- package/src/lib/tracers/ArrayQueueTracer.ts +2 -2
- package/src/lib/codegen/__tests__/__snapshots__/spanLoggerGenerator.test.ts.snap +0 -1965
|
@@ -30,8 +30,8 @@ export declare class TraceRoot implements ITraceRoot {
|
|
|
30
30
|
private readonly _epochView;
|
|
31
31
|
private readonly _perfView;
|
|
32
32
|
/**
|
|
33
|
-
* Cached anchor hrtime as BigInt
|
|
34
|
-
*
|
|
33
|
+
* Cached anchor hrtime as the exact BigInt, so the JS timestamp delta stays
|
|
34
|
+
* correct after the f64 `anchorPerfNow` loses integer precision (~104 days uptime).
|
|
35
35
|
*/
|
|
36
36
|
private readonly _anchorHrtimeBigInt;
|
|
37
37
|
constructor(trace_id: TraceId, anchorEpochNanos: bigint, anchorPerfNow: number, anchorHrtimeBigInt: bigint, tracer: TracerLifecycleHooks);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traceRoot.node.d.ts","sourceRoot":"","sources":["../../src/lib/traceRoot.node.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,KAAK,UAAU,EAKf,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD;;;;GAIG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;
|
|
1
|
+
{"version":3,"file":"traceRoot.node.d.ts","sourceRoot":"","sources":["../../src/lib/traceRoot.node.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EACL,KAAK,UAAU,EAKf,KAAK,oBAAoB,EAC1B,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAShD;;;;GAIG;AACH,qBAAa,SAAU,YAAW,UAAU;IAC1C;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAC3C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAS;IAE7C,YACE,QAAQ,EAAE,OAAO,EACjB,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,kBAAkB,EAAE,MAAM,EAC1B,MAAM,EAAE,oBAAoB,EAuB7B;IAED;;OAEG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;OAEG;IACH,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;OAEG;IACH,IAAI,QAAQ,IAAI,OAAO,CAGtB;IAED;;;OAGG;IACH,iBAAiB,IAAI,WAAW,CAI/B;IAED;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAU5D;IAED;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAG3D;IAED;;;OAGG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAM9D;CACF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,SAAS,CAMzF"}
|
|
@@ -36,8 +36,8 @@ export class TraceRoot {
|
|
|
36
36
|
_epochView;
|
|
37
37
|
_perfView;
|
|
38
38
|
/**
|
|
39
|
-
* Cached anchor hrtime as BigInt
|
|
40
|
-
*
|
|
39
|
+
* Cached anchor hrtime as the exact BigInt, so the JS timestamp delta stays
|
|
40
|
+
* correct after the f64 `anchorPerfNow` loses integer precision (~104 days uptime).
|
|
41
41
|
*/
|
|
42
42
|
_anchorHrtimeBigInt;
|
|
43
43
|
constructor(trace_id, anchorEpochNanos, anchorPerfNow, anchorHrtimeBigInt, tracer) {
|
|
@@ -128,7 +128,8 @@ export class TraceRoot {
|
|
|
128
128
|
export function createTraceRoot(trace_id, tracer) {
|
|
129
129
|
const anchorEpochNanos = BigInt(Date.now()) * 1000000n;
|
|
130
130
|
const anchorHrtimeBigInt = process.hrtime.bigint();
|
|
131
|
-
//
|
|
131
|
+
// Also store as f64 in the shared _system layout (WASM reads it without BigInt extraction)
|
|
132
132
|
const anchorPerfNow = Number(anchorHrtimeBigInt);
|
|
133
133
|
return new TraceRoot(createTraceId(trace_id), anchorEpochNanos, anchorPerfNow, anchorHrtimeBigInt, tracer);
|
|
134
134
|
}
|
|
135
|
+
//#endregion smoo/lmao!n/trace-root-timestamps
|
package/dist/lib/tracer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/lib/tracer.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../src/lib/tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAK1D,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAE7B,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAW,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAA8B,KAAK,aAAa,EAAyB,MAAM,uBAAuB,CAAC;AAW9G,OAAO,EAAmC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM7C;;;;;;GAMG;AACH,MAAM,WAAW,aAAa,CAC5B,CAAC,SAAS,OAAO,uBAAuB,EAAE,SAAS,GAAG,OAAO,uBAAuB,EAAE,SAAS;IAE/F;;;;;;OAMG;IACH,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAElC;;;OAGG;IACH,eAAe,EAAE,gBAAgB,CAAC;IAElC,+DAA+D;IAC/D,aAAa,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CAC1C;AAkBD;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAC3E;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GACtB,OAAO,CAAC,OAAO,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAM9C;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,OAAO,CAAC,GAAG,SAAS,SAAS,IAAI;IAK3C;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EACvB,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzB;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EACzC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EACvB,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzB;;OAEG;IACH,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErE;;OAEG;IACH,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAMhH;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5G;;OAEG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAC3B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EACzC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EACvB,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEzB;;OAEG;IACH,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEvD;;OAEG;IACH,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CACnG,CAAC;AAOF;;;;;;;;;;GAUG;AACH,8BAAsB,MAAM,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB;IACxE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;IACtE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmC;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgC;IAC9D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0B;IACtD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0B;IAC/C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IAEnD;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAEtE,YAAY,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAiB3E;IAED,OAAO,CAAC,oBAAoB;IAkB5B;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAElF;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAEhF;;;;OAIG;IACH,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAElF;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAEhF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAAC;IAErF;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAOD;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACpD,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACrF,KAAK,CAAC,CAAC,EACL,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACpD,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAC1C,CAAC,CAAC;IACL,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChC,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EAChC,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACpD,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,IAAI,EAAE,IAAI,GACZ,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACvE,KAAK,CAAC,CAAC,EACL,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACpD,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAC1C,CAAC,CAAC;IAiJL;;;OAGG;IACH,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,iBAAiB;IAezB;;;OAGG;IACH,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,iBAAiB;IAazB;;;OAGG;IACH,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,SAAS,OAAO,EAAE,EACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACpD,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAClC,GAAG,MAAM,EAAE,IAAI,GACd,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAEtC;IAED;;;OAGG;IACH,QAAQ,CAAC,CAAC,EACR,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACpD,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACnD,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,QAAQ,CAAC,CAAC,EACR,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EACpD,EAAE,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAC1C,CAAC,CAAC;IAcL,OAAO,CAAC,kBAAkB;IAgD1B;;;;;;;OAOG;IACH,OAAO,CAAC,mBAAmB;IAgC3B;;;;;;OAMG;IACH,OAAO,CAAC,yBAAyB;IA0DjC,OAAO,CAAC,0BAA0B;CAuEnC"}
|
package/dist/lib/tracer.js
CHANGED
|
@@ -1,3 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tracer - Abstract base class for trace collection
|
|
3
|
+
*
|
|
4
|
+
* Per specs/lmao/01c_context_flow_and_op_wrappers.md:
|
|
5
|
+
* - Tracer owns trace() function for creating root spans
|
|
6
|
+
* - Collects SpanBuffers in pendingBuffers array
|
|
7
|
+
* - Subclasses implement flush() to define persistence strategy
|
|
8
|
+
*
|
|
9
|
+
* ## Design Philosophy
|
|
10
|
+
*
|
|
11
|
+
* Tracer separates two concerns:
|
|
12
|
+
* 1. **BufferStrategy**: HOW buffers are allocated (JS TypedArrays vs WASM memory)
|
|
13
|
+
* 2. **Sink behavior** (lifecycle hooks): WHAT happens with completed buffers
|
|
14
|
+
*
|
|
15
|
+
* Tracer is ABSTRACT - subclasses implement lifecycle hooks:
|
|
16
|
+
* - `onTraceEnd()` - called when root trace completes
|
|
17
|
+
* - `onSpanEnd()` - called when child span completes
|
|
18
|
+
* - `flush()` - optional, for batching strategies
|
|
19
|
+
*
|
|
20
|
+
* BufferStrategy is INJECTED via constructor:
|
|
21
|
+
* - `JsBufferStrategy` - GC-managed TypedArrays, zero-copy Arrow
|
|
22
|
+
* - `WasmBufferStrategy` - WASM memory with freelist, Arrow built in WASM
|
|
23
|
+
*
|
|
24
|
+
* The sink controls WHEN to convert/release:
|
|
25
|
+
* - StdioTracer: prints then releases immediately
|
|
26
|
+
* - TestTracer: holds buffers until clear()
|
|
27
|
+
* - SqsTracer: accumulates, converts on flush(), then releases
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```typescript
|
|
31
|
+
* // Concrete implementation - Cloudflare Queue
|
|
32
|
+
* class QueueTracer extends Tracer {
|
|
33
|
+
* constructor(binding, strategy, options, private queue: Queue) {
|
|
34
|
+
* super(binding, strategy, options);
|
|
35
|
+
* }
|
|
36
|
+
*
|
|
37
|
+
* async flush() {
|
|
38
|
+
* const buffers = [...this.pending];
|
|
39
|
+
* this.pending.length = 0;
|
|
40
|
+
* for (const buffer of buffers) {
|
|
41
|
+
* const table = await this.bufferStrategy.toArrowTable(buffer);
|
|
42
|
+
* await this.queue.send(table);
|
|
43
|
+
* this.bufferStrategy.releaseBuffer(buffer);
|
|
44
|
+
* }
|
|
45
|
+
* }
|
|
46
|
+
* }
|
|
47
|
+
*
|
|
48
|
+
* // Usage
|
|
49
|
+
* const ctx = defineOpContext({ logSchema, ctx: { env: null as Env } });
|
|
50
|
+
* const strategy = new JsBufferStrategy();
|
|
51
|
+
* const { trace, flush } = new QueueTracer(ctx, strategy, options, env.TRACES);
|
|
52
|
+
* await trace('fetch', { env: myEnv }, async (ctx) => {
|
|
53
|
+
* ctx.tag.userId('user-123');
|
|
54
|
+
* return ctx.ok('done');
|
|
55
|
+
* });
|
|
56
|
+
* executionContext.waitUntil(flush());
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* @module tracer
|
|
60
|
+
*/
|
|
1
61
|
import { createTagWriter } from './codegen/fixedPositionWriterGenerator.js';
|
|
2
62
|
import { createSpanLogger as createSpanLoggerFromGenerator } from './codegen/spanLoggerGenerator.js';
|
|
3
63
|
import { Op } from './op.js';
|
|
@@ -346,3 +406,4 @@ export class Tracer {
|
|
|
346
406
|
}
|
|
347
407
|
}
|
|
348
408
|
}
|
|
409
|
+
//#endregion smoo/lmao!n/tracer-architecture
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayQueueTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/ArrayQueueTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC5F;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEhE,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"ArrayQueueTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/ArrayQueueTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC5F;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEhE,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAErE;IAED,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAE3E;IAED;;;;;OAKG;IACH,KAAK,IAAI,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAIlD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompositeTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/CompositeTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9C,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CACnF,SAAQ,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AAEH,qBAAa,eAAe,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;
|
|
1
|
+
{"version":3,"file":"CompositeTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/CompositeTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQ9C,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CACnF,SAAQ,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;CACxB;AAED;;;;;GAKG;AAEH,qBAAa,eAAe,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IAC3F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IAExC,YAAY,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAGzD;IAED,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIvE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIrE;IAED,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIvE;IAED,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAIrE;IAED,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAI1E;IAEc,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAMpC;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAW3B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NoOpTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/NoOpTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;GAOG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"NoOpTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/NoOpTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;GAOG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED;;OAEG;IACH,UAAU,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAE3E;CACF"}
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NoOpTracer - A tracer that executes ops but discards all trace data
|
|
3
|
+
*
|
|
4
|
+
* All lifecycle hooks are no-ops - traces execute normally but produce no output.
|
|
5
|
+
* Useful for:
|
|
6
|
+
* - Tests that don't need to inspect trace output
|
|
7
|
+
* - Disabling tracing in production without code changes
|
|
8
|
+
* - Baseline performance testing (measures op execution cost without tracing overhead)
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* import { createTraceRoot } from '@smoothbricks/lmao/node';
|
|
13
|
+
* import { JsBufferStrategy } from '@smoothbricks/lmao';
|
|
14
|
+
*
|
|
15
|
+
* const ctx = defineOpContext({ logSchema });
|
|
16
|
+
* const { trace } = new NoOpTracer(ctx, {
|
|
17
|
+
* bufferStrategy: new JsBufferStrategy(),
|
|
18
|
+
* createTraceRoot,
|
|
19
|
+
* });
|
|
20
|
+
*
|
|
21
|
+
* // Trace executes, result returned, no side effects
|
|
22
|
+
* const result = await trace('fetch', fetchOp);
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
1
25
|
import { Tracer } from '../tracer.js';
|
|
2
26
|
/**
|
|
3
27
|
* No-op tracer - executes ops normally but discards all trace data
|
|
@@ -40,3 +64,4 @@ export class NoOpTracer extends Tracer {
|
|
|
40
64
|
// No-op
|
|
41
65
|
}
|
|
42
66
|
}
|
|
67
|
+
//#endregion smoo/lmao!n/tracer-implementations.noop
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SQLiteTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/SQLiteTracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,WAAW,mBAAmB,CAClC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,EAAE,EAAE,kBAAkB,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB,CACvC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,EAAE,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACxD;AAED;;GAEG;AAEH,qBAAa,YAAY,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACxF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;
|
|
1
|
+
{"version":3,"file":"SQLiteTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/SQLiteTracer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StdioTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/StdioTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AA+HD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,iDAAiD;IACjD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;;;GASG;AAEH,qBAAa,WAAW,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACvF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;
|
|
1
|
+
{"version":3,"file":"StdioTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/StdioTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAY9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC/B;AA+HD;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,CAAC,SAAS,OAAO,wBAAwB,EAAE,SAAS,GAAG,OAAO,wBAAwB,EAAE,SAAS,CACjG,SAAQ,aAAa,CAAC,CAAC,CAAC;IACxB,iDAAiD;IACjD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,gDAAgD;IAChD,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD;;;;;;;;;GASG;AAEH,qBAAa,WAAW,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACvF;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA6B;IAErD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,YAAY,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAKhF;IAMD,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,YAAY;IAoCpB,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAOvF;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAqBrF;IAED,WAAW,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAQvF;IAED,SAAS,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,aAAa,GAAG,IAAI,CAsBrF;IAED,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAgB3E;CACF"}
|
|
@@ -1,3 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StdioTracer - A tracer that prints spans to stdout/stderr
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Color-coded trace IDs based on trace_id for visual separation of concurrent traces
|
|
6
|
+
* - Per-trace indent tracking using Map<TraceId, number> for correct nesting
|
|
7
|
+
* - Human-readable timestamps (ISO 8601) and durations
|
|
8
|
+
* - Tree-style output with ├─ for start and └─ for end
|
|
9
|
+
* - Exceptions written to stderr
|
|
10
|
+
*
|
|
11
|
+
* Useful for development/debugging to see span execution in real-time.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { createTraceRoot } from '@smoothbricks/lmao/node';
|
|
16
|
+
* import { JsBufferStrategy } from '@smoothbricks/lmao';
|
|
17
|
+
*
|
|
18
|
+
* const ctx = defineOpContext({ logSchema: mySchema });
|
|
19
|
+
* const { trace } = new StdioTracer(ctx, {
|
|
20
|
+
* bufferStrategy: new JsBufferStrategy(),
|
|
21
|
+
* createTraceRoot,
|
|
22
|
+
* });
|
|
23
|
+
*
|
|
24
|
+
* await trace('fetch-user', fetchOp);
|
|
25
|
+
*
|
|
26
|
+
* // Output:
|
|
27
|
+
* // [2025-12-25T10:30:45.123Z] [123456] fetch-user
|
|
28
|
+
* // [2025-12-25T10:30:45.125Z] [123456] ├─ db-query
|
|
29
|
+
* // [2025-12-25T10:30:45.225Z] [123456] └─ db-query [OK] (100.00ms)
|
|
30
|
+
* // [2025-12-25T10:30:45.226Z] [123456] fetch-user (103.00ms) ========
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
1
33
|
import { ENTRY_TYPE_DEBUG, ENTRY_TYPE_ERROR, ENTRY_TYPE_INFO, ENTRY_TYPE_SPAN_ERR, ENTRY_TYPE_SPAN_EXCEPTION, ENTRY_TYPE_SPAN_OK, ENTRY_TYPE_TRACE, ENTRY_TYPE_WARN, } from '../schema/systemSchema.js';
|
|
2
34
|
import { Tracer } from '../tracer.js';
|
|
3
35
|
// ============================================================================
|
|
@@ -15,14 +47,14 @@ function formatTimestamp(nanos) {
|
|
|
15
47
|
*/
|
|
16
48
|
function formatDuration(nanos) {
|
|
17
49
|
const n = Number(nanos);
|
|
18
|
-
if (n >=
|
|
19
|
-
return `${(n /
|
|
50
|
+
if (n >= 1000000000) {
|
|
51
|
+
return `${(n / 1000000000).toFixed(2)}s`;
|
|
20
52
|
}
|
|
21
|
-
if (n >=
|
|
22
|
-
return `${(n /
|
|
53
|
+
if (n >= 1000000) {
|
|
54
|
+
return `${(n / 1000000).toFixed(2)}ms`;
|
|
23
55
|
}
|
|
24
|
-
if (n >=
|
|
25
|
-
return `${(n /
|
|
56
|
+
if (n >= 1000) {
|
|
57
|
+
return `${(n / 1000).toFixed(2)}µs`;
|
|
26
58
|
}
|
|
27
59
|
return `${n}ns`;
|
|
28
60
|
}
|
|
@@ -269,3 +301,4 @@ export class StdioTracer extends Tracer {
|
|
|
269
301
|
`capacity=${stats.capacity}\n`);
|
|
270
302
|
}
|
|
271
303
|
}
|
|
304
|
+
//#endregion smoo/lmao!n/tracer-implementations.stdio
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/TestTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEtE;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAM5E,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"TestTracer.d.ts","sourceRoot":"","sources":["../../../src/lib/tracers/TestTracer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAU9C;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS;IAC5D,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,qBAAa,UAAU,CAAC,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAAE,SAAQ,MAAM,CAAC,CAAC,CAAC;IACtF;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAEtE;;;OAGG;IACH,QAAQ,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAM;IAM5E,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAGrE;IAED,WAAW,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAExE;IAED,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAEtE;IAED,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC,GAAG,IAAI,CAS1E;IAMD;;;OAGG;IACH,KAAK,IAAI,IAAI,CAQZ;CACF"}
|
|
@@ -1,3 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TestTracer - A tracer that accumulates completed root trace buffers for test inspection.
|
|
3
|
+
*
|
|
4
|
+
* Child spans are accessible via the buffer's `_children` tree - no need to track them separately.
|
|
5
|
+
* This is the primary tracer for tests that need to inspect trace output, convert to Arrow tables,
|
|
6
|
+
* or verify buffer contents.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { createTraceRoot } from '@smoothbricks/lmao/node';
|
|
11
|
+
* import { JsBufferStrategy } from '@smoothbricks/lmao';
|
|
12
|
+
*
|
|
13
|
+
* const ctx = defineOpContext({ logSchema });
|
|
14
|
+
* const tracer = new TestTracer(ctx, {
|
|
15
|
+
* bufferStrategy: new JsBufferStrategy(),
|
|
16
|
+
* createTraceRoot,
|
|
17
|
+
* });
|
|
18
|
+
*
|
|
19
|
+
* await tracer.trace('my-op', myOp);
|
|
20
|
+
*
|
|
21
|
+
* // Inspect buffers
|
|
22
|
+
* expect(tracer.rootBuffers).toHaveLength(1);
|
|
23
|
+
*
|
|
24
|
+
* // Convert to Arrow using strategy
|
|
25
|
+
* const table = await tracer.bufferStrategy.toArrowTable(tracer.rootBuffers[0]);
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @module tracers/TestTracer
|
|
29
|
+
*/
|
|
1
30
|
import { Tracer } from '../tracer.js';
|
|
2
31
|
function isResettableBufferStrategy(value) {
|
|
3
32
|
return typeof value === 'object' && value !== null && typeof Reflect.get(value, 'reset') === 'function';
|
|
@@ -86,3 +115,4 @@ export class TestTracer extends Tracer {
|
|
|
86
115
|
}
|
|
87
116
|
}
|
|
88
117
|
}
|
|
118
|
+
//#endregion smoo/lmao!n/tracer-implementations.test
|
package/dist/lib/types.js
CHANGED
|
@@ -1 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LMAO-specific types for trace logging
|
|
3
|
+
*
|
|
4
|
+
* ## Type System
|
|
5
|
+
*
|
|
6
|
+
* - `AnySpanBuffer`: NO index signatures, accepts any schema (for generic processing)
|
|
7
|
+
* - `SpanBuffer<T>`: WITH index signatures, typed for specific schema T (T is REQUIRED)
|
|
8
|
+
*
|
|
9
|
+
* This mirrors arrow-builder's AnyColumnBuffer/ColumnBuffer<T> pattern.
|
|
10
|
+
*/
|
|
1
11
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utf8Cache.d.ts","sourceRoot":"","sources":["../../src/lib/utf8Cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY/D,KAAK,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAClE,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;;;;;GASG;AAEH,qBAAa,SAAU,YAAW,WAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAG7C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;
|
|
1
|
+
{"version":3,"file":"utf8Cache.d.ts","sourceRoot":"","sources":["../../src/lib/utf8Cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAY/D,KAAK,gBAAgB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AAClE,KAAK,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF;;;;;;;;;GASG;AAEH,qBAAa,SAAU,YAAW,WAAW;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAG7C,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IAEnB,YAAY,OAAO,SAA0B,EAE5C;IAED;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAW9B;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAa9B;IAED;;;;;;;OAOG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAKlE;IAED;;;;;;;;OAQG;IACH,UAAU,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,gBAAgB,CA0BvD;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,cAAc,CAQ1B;IAED;;OAEG;IACH,UAAU,IAAI,IAAI,CAGjB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;CACF;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,WAAkB,CAAC;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAE3D"}
|
package/dist/lib/utf8Cache.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WasmBufferStrategy.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/WasmBufferStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmBxG;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,mEAAmE;IACnE,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAC3F;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC;;OAEG;IACH,OAAO;
|
|
1
|
+
{"version":3,"file":"WasmBufferStrategy.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/WasmBufferStrategy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAuB,KAAK,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAmBxG;;GAEG;AACH,MAAM,WAAW,yBAA0B,SAAQ,oBAAoB;IACrE,mEAAmE;IACnE,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B;AAED,KAAK,kBAAkB,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,qBAAa,kBAAkB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAC3F;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC;;OAEG;IACH,OAAO,eAEN;IAED;;;;;;;OAOG;IACH,OAAa,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACjD,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAGhC;IAED,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,CAsB3G;IAED,qBAAqB,CACnB,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC,EAC3B,gBAAgB,EAAE,UAAU,EAC5B,UAAU,EAAE,UAAU,EACtB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,CAAC,GACT,UAAU,CAAC,CAAC,CAAC,CAwBf;IAED,oBAAoB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAYzD;IAED,YAAY,CAAC,MAAM,EAAE,aAAa,GAAG,KAAK,CAGzC;IAED,aAAa,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAGzC;IAED;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;;OAGG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;OAEG;IACH,QAAQ,IAAI,kBAAkB,CAO7B;CACF"}
|
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WasmBufferStrategy - Buffer strategy using WASM memory with freelist allocation.
|
|
3
|
+
*
|
|
4
|
+
* Uses WebAssembly memory for numeric columns with O(1) freelist allocation/deallocation.
|
|
5
|
+
* String columns remain in JavaScript.
|
|
6
|
+
*
|
|
7
|
+
* Memory characteristics:
|
|
8
|
+
* - Numeric data lives in contiguous WASM memory (better cache locality)
|
|
9
|
+
* - Freelist enables O(1) memory reuse across traces
|
|
10
|
+
* - Explicit release required (not GC-managed)
|
|
11
|
+
* - Arrow conversion reads from WASM memory views
|
|
12
|
+
*
|
|
13
|
+
* @module WasmBufferStrategy
|
|
14
|
+
*/
|
|
1
15
|
import { convertSpanTreeToArrowTable } from '../convertToArrow.js';
|
|
2
16
|
import { EMPTY_SCOPE } from '../spanBuffer.js';
|
|
3
17
|
import { createWasmAllocator } from './wasmAllocator.js';
|
|
@@ -138,3 +152,4 @@ export class WasmBufferStrategy {
|
|
|
138
152
|
};
|
|
139
153
|
}
|
|
140
154
|
}
|
|
155
|
+
//#endregion smoo/lmao!n/wasm-mem.strategy
|
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript wrapper for the WASM allocator.
|
|
3
|
+
*
|
|
4
|
+
* Implements spec 01q: WASM Memory Architecture for SpanBuffer Storage
|
|
5
|
+
*
|
|
6
|
+
* The allocator provides O(1) alloc/free via freelists with memory reuse.
|
|
7
|
+
* Each OpContext may have a different capacity - capacity is passed to each call.
|
|
8
|
+
*
|
|
9
|
+
* Buddy Allocation:
|
|
10
|
+
* - Blocks are organized by tier (capacity 8, 16, 32, 64, 128, 256, 512)
|
|
11
|
+
* - When freelist is empty, splits from larger tier
|
|
12
|
+
* - When freeing, merges with adjacent blocks if both are free (address-based buddy merge)
|
|
13
|
+
*
|
|
14
|
+
* Spec link (88): realizes specs/lmao/01q_wasm_memory_architecture.md#smoo/lmao!n/wasm-mem (TS allocator wrapper).
|
|
15
|
+
*/
|
|
1
16
|
/**
|
|
2
17
|
* Size class enum matching Zig's SizeClass
|
|
3
18
|
*/
|
|
@@ -225,3 +240,4 @@ export function createWasmAllocatorSync(wasmModule, options) {
|
|
|
225
240
|
const instance = new WebAssembly.Instance(wasmModule, imports);
|
|
226
241
|
return wrapWasmInstance(instance, memory, capacity);
|
|
227
242
|
}
|
|
243
|
+
//#endregion smoo/lmao!n/wasm-mem.ts-allocator
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WASM-backed SpanBuffer class generation.
|
|
3
|
+
*
|
|
4
|
+
* Implements spec 01q: WASM Memory Architecture for SpanBuffer Storage
|
|
5
|
+
*
|
|
6
|
+
* Key differences from JS SpanBuffer:
|
|
7
|
+
* - System columns (timestamp, entry_type) live in WASM memory at _systemPtr
|
|
8
|
+
* - Numeric columns allocated lazily from WASM freelists
|
|
9
|
+
* - String columns (category, text) remain as JS string[] arrays
|
|
10
|
+
* - All TypedArray views created on-demand from WASM memory.buffer
|
|
11
|
+
*/
|
|
1
12
|
import { getSchemaType } from '@smoothbricks/arrow-builder';
|
|
2
13
|
import { checkCapacityTuning } from '../capacityTuning.js';
|
|
3
14
|
function getFieldEager(value) {
|
|
@@ -770,3 +781,4 @@ export function createWasmOverflowBuffer(buffer, _traceRoot, _scopeValues, _opMe
|
|
|
770
781
|
buffer._overflow = overflow;
|
|
771
782
|
return overflow;
|
|
772
783
|
}
|
|
784
|
+
//#endregion smoo/lmao!n/wasm-mem.spanbuffer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wasmTraceRoot.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/wasmTraceRoot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASxD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAE9E;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"wasmTraceRoot.d.ts","sourceRoot":"","sources":["../../../src/lib/wasm/wasmTraceRoot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAE1D,OAAO,EAAiB,KAAK,OAAO,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AASxD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,+EAA+E;IAC/E,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,sFAAsF;IACtF,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAC5B,4EAA4E;IAC5E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,IAAI,kBAAkB,CAE9E;AAMD;;;;;;;;;;;;GAYG;AACH,qBAAa,aAAc,YAAW,UAAU;IAC9C,4DAA4D;IAC5D,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,kCAAkC;IAClC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAElC,sBAAsB;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAE3B,2CAA2C;IAC3C,QAAQ,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEtC;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B,YAAY,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAepF;IAED;;;OAGG;IACH,IAAI,gBAAgB,IAAI,MAAM,CAG7B;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,MAAM,CAG1B;IAED;;;;;;;;OAQG;IACH,iBAAiB,IAAI,WAAW,CAI/B;IAOD;;;;;;;;;OASG;IACH,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAmB5D;IAED;;;;;;OAMG;IACH,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAwB3D;IAED;;;;;;;OAOG;IACH,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAW9D;IAOD;;;;;;;OAOG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAE9D;IAED;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAEzC;IAED;;;OAGG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE1C;IAED;;;;;;;;OAQG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElF;IAED;;;OAGG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1C;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAEX;CACF;AAMD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,GAC3B,aAAa,CAEf;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,aAAa,cAC/C,MAAM,UAAU,oBAAoB,KAAG,aAAa,CAGvE"}
|
|
@@ -87,7 +87,7 @@ export class WasmTraceRoot {
|
|
|
87
87
|
*/
|
|
88
88
|
getTimestampNanos() {
|
|
89
89
|
const elapsedMs = performance.now() - this.anchorPerfNow;
|
|
90
|
-
const elapsedNanos = BigInt(Math.round(elapsedMs *
|
|
90
|
+
const elapsedNanos = BigInt(Math.round(elapsedMs * 1000000));
|
|
91
91
|
return Nanoseconds.unsafe(this.anchorEpochNanos + elapsedNanos);
|
|
92
92
|
}
|
|
93
93
|
// ===========================================================================
|
|
@@ -262,3 +262,4 @@ export function createWasmTraceRootFactory(allocator) {
|
|
|
262
262
|
return new WasmTraceRoot(allocator, createTraceId(trace_id), tracer);
|
|
263
263
|
};
|
|
264
264
|
}
|
|
265
|
+
//#endregion smoo/lmao!n/wasm-mem.trace-root
|
package/dist/node.js
CHANGED
|
@@ -7,3 +7,4 @@ export * from './index.js';
|
|
|
7
7
|
// Export Node.js-specific TraceRoot factory for Tracer construction
|
|
8
8
|
//#region smoo/lmao!n/trace-root-timestamps.entry-points #node
|
|
9
9
|
export { createTraceRoot } from './lib/traceRoot.node.js';
|
|
10
|
+
//#endregion smoo/lmao!n/trace-root-timestamps.entry-points
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smoothbricks/lmao",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,6 +26,12 @@
|
|
|
26
26
|
"import": "./dist/es.js",
|
|
27
27
|
"default": "./dist/es.js"
|
|
28
28
|
},
|
|
29
|
+
"./cloudflare": {
|
|
30
|
+
"types": "./dist/cloudflare.d.ts",
|
|
31
|
+
"development": "./src/cloudflare.ts",
|
|
32
|
+
"import": "./dist/cloudflare.js",
|
|
33
|
+
"default": "./dist/cloudflare.js"
|
|
34
|
+
},
|
|
29
35
|
"./tracers": {
|
|
30
36
|
"types": "./dist/lib/tracers/index.d.ts",
|
|
31
37
|
"development": "./src/lib/tracers/index.ts",
|
|
@@ -118,10 +124,11 @@
|
|
|
118
124
|
"dependencies": {
|
|
119
125
|
"@msgpack/msgpack": "^3.1.3",
|
|
120
126
|
"@neophi/sieve-cache": "^1.5.0",
|
|
121
|
-
"@smoothbricks/arrow-builder": "0.1.
|
|
122
|
-
"@smoothbricks/validation": "0.1.
|
|
127
|
+
"@smoothbricks/arrow-builder": "0.1.3",
|
|
128
|
+
"@smoothbricks/validation": "0.1.2",
|
|
123
129
|
"@uwdata/flechette": "^2.3.0",
|
|
124
|
-
"tslib": "^2.8.1"
|
|
130
|
+
"tslib": "^2.8.1",
|
|
131
|
+
"typia": "13.1.0"
|
|
125
132
|
},
|
|
126
133
|
"scripts": {
|
|
127
134
|
"bench": "bun run benchmarks/*.bench.ts",
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare trace-sink adapters (specs/lmao/01u_cloudflare_trace_segments.md).
|
|
3
|
+
*
|
|
4
|
+
* Two delivery lanes over the base Tracer lifecycle, no Cloudflare types required — every
|
|
5
|
+
* platform binding (Pipelines stream send, Queues producer, collector shard) is injected
|
|
6
|
+
* structurally:
|
|
7
|
+
* - billing-grade: CollectorClient (awaited within the request; ack = DO storage commit)
|
|
8
|
+
* - diagnostic: DiagnosticDrainTracer + transports (waitUntil, fire-and-forget)
|
|
9
|
+
* - both: ClassSplitTracer routes rows per delivery class via an injected classifier
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
export {
|
|
13
|
+
type ClassSplitOptions,
|
|
14
|
+
ClassSplitTracer,
|
|
15
|
+
type DeliveryClass,
|
|
16
|
+
type DeliveryClassifier,
|
|
17
|
+
} from './lib/cloudflare/classSplit.js';
|
|
18
|
+
export {
|
|
19
|
+
COLLECTOR_ACK,
|
|
20
|
+
type CollectorAck,
|
|
21
|
+
type CollectorClient,
|
|
22
|
+
type CollectorSendFailure,
|
|
23
|
+
FakeCollectorClient,
|
|
24
|
+
} from './lib/cloudflare/collectorClient.js';
|
|
25
|
+
export {
|
|
26
|
+
type DiagnosticDrainOptions,
|
|
27
|
+
DiagnosticDrainTracer,
|
|
28
|
+
type DiagnosticTransport,
|
|
29
|
+
type PipelinesStreamSend,
|
|
30
|
+
PipelinesStreamTransport,
|
|
31
|
+
type QueuesFallbackOptions,
|
|
32
|
+
QueuesFallbackTransport,
|
|
33
|
+
type TraceChunkQueueMessage,
|
|
34
|
+
} from './lib/cloudflare/diagnosticDrain.js';
|
|
35
|
+
export { spanBufferToTraceRows, type TraceRow, type TraceRowValue } from './lib/cloudflare/traceRows.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
//#region
|
|
1
|
+
//#region smoo/lmao!n/buffer-strategy
|
|
2
2
|
/**
|
|
3
3
|
* BufferStrategy - Abstraction for SpanBuffer memory management and Arrow conversion.
|
|
4
4
|
*
|
|
@@ -105,4 +105,4 @@ export interface BufferStrategy<T extends LogSchema = LogSchema> {
|
|
|
105
105
|
*/
|
|
106
106
|
releaseBuffer(buffer: AnySpanBuffer): void;
|
|
107
107
|
}
|
|
108
|
-
//#endregion
|
|
108
|
+
//#endregion smoo/lmao!n/buffer-strategy
|
|
@@ -43,8 +43,8 @@ export function cleanupDebugActiveHandles(label: string): void {
|
|
|
43
43
|
if (typeof handle !== 'object' || handle === null) {
|
|
44
44
|
return typeof handle;
|
|
45
45
|
}
|
|
46
|
-
const
|
|
47
|
-
const name = typeof
|
|
46
|
+
const handleConstructor = Reflect.get(handle, 'constructor');
|
|
47
|
+
const name = typeof handleConstructor === 'function' ? Reflect.get(handleConstructor, 'name') : undefined;
|
|
48
48
|
return typeof name === 'string' && name.length > 0 ? name : 'Object';
|
|
49
49
|
});
|
|
50
50
|
|