@bitfab/sdk 0.52.2 → 0.52.3

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/index.d.cts CHANGED
@@ -3293,7 +3293,7 @@ declare class BitfabFunction {
3293
3293
  /**
3294
3294
  * SDK version from package.json (injected at build time)
3295
3295
  */
3296
- declare const __version__ = "0.52.2";
3296
+ declare const __version__ = "0.52.3";
3297
3297
 
3298
3298
  /**
3299
3299
  * Constants for the Bitfab SDK.
package/dist/index.d.ts CHANGED
@@ -3293,7 +3293,7 @@ declare class BitfabFunction {
3293
3293
  /**
3294
3294
  * SDK version from package.json (injected at build time)
3295
3295
  */
3296
- declare const __version__ = "0.52.2";
3296
+ declare const __version__ = "0.52.3";
3297
3297
 
3298
3298
  /**
3299
3299
  * Constants for the Bitfab SDK.
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ import {
18
18
  getCurrentSpan,
19
19
  getCurrentTrace,
20
20
  seedFromRegistry
21
- } from "./chunk-XLSKI7UA.js";
21
+ } from "./chunk-SECFVEQV.js";
22
22
  import "./chunk-ZUD7OFYB.js";
23
23
  import {
24
24
  BITFAB_PROGRESS_PREFIX,
@@ -27,7 +27,7 @@ import {
27
27
  ReplayError,
28
28
  reportReplayProgress,
29
29
  serializeReplayResult
30
- } from "./chunk-XXKM4EL2.js";
30
+ } from "./chunk-45SK3FUL.js";
31
31
  import {
32
32
  BitfabError,
33
33
  DEFAULT_SERVICE_URL,
@@ -35,7 +35,7 @@ import {
35
35
  MixedTracingError,
36
36
  __version__,
37
37
  flushTraces
38
- } from "./chunk-QWAWERYM.js";
38
+ } from "./chunk-ODF4JSYX.js";
39
39
  import "./chunk-H6LZRFMN.js";
40
40
  export {
41
41
  BITFAB_PROGRESS_PREFIX,
package/dist/node.cjs CHANGED
@@ -88,7 +88,7 @@ var __version__, __packageName__;
88
88
  var init_version_generated = __esm({
89
89
  "src/version.generated.ts"() {
90
90
  "use strict";
91
- __version__ = "0.52.2";
91
+ __version__ = "0.52.3";
92
92
  __packageName__ = "@bitfab/sdk";
93
93
  }
94
94
  });
@@ -392,15 +392,18 @@ var init_payloadBudget = __esm({
392
392
  });
393
393
 
394
394
  // src/warnOnce.ts
395
+ function warn(message) {
396
+ try {
397
+ console.warn(`[bitfab] ${message}`);
398
+ } catch {
399
+ }
400
+ }
395
401
  function warnOnce(key, message) {
396
402
  if (warned.has(key)) {
397
403
  return;
398
404
  }
399
405
  warned.add(key);
400
- try {
401
- console.warn(`[bitfab] ${message}`);
402
- } catch {
403
- }
406
+ warn(message);
404
407
  }
405
408
  var warned;
406
409
  var init_warnOnce = __esm({
@@ -542,6 +545,9 @@ var init_serializePayload = __esm({
542
545
  });
543
546
 
544
547
  // src/traceMetadata.ts
548
+ function findRecord(traceId) {
549
+ return activeRecords.get(traceId) ?? completedRecords.get(traceId);
550
+ }
545
551
  function recordCallerTraceMetadata(traceId, metadata) {
546
552
  if (typeof traceId !== "string" || traceId === "") {
547
553
  return;
@@ -552,15 +558,52 @@ function recordCallerTraceMetadata(traceId, metadata) {
552
558
  if (Object.keys(metadata).length === 0) {
553
559
  return;
554
560
  }
555
- callerMetadata.set(traceId, { ...callerMetadata.get(traceId), ...metadata });
561
+ const existing = findRecord(traceId);
562
+ if (existing) {
563
+ Object.assign(existing.caller, metadata);
564
+ return;
565
+ }
566
+ activeRecords.set(traceId, {
567
+ caller: { ...metadata },
568
+ derived: {},
569
+ warnedKeys: /* @__PURE__ */ new Set()
570
+ });
556
571
  }
557
572
  function callerTraceMetadata(traceId) {
558
- const recorded = callerMetadata.get(traceId);
559
- return recorded ? { ...recorded } : void 0;
573
+ const record = findRecord(traceId);
574
+ if (!record || Object.keys(record.caller).length === 0) {
575
+ return void 0;
576
+ }
577
+ return { ...record.caller };
560
578
  }
561
- function forgetTraceMetadata(traceId) {
562
- callerMetadata.delete(traceId);
563
- derivedMetadata.delete(traceId);
579
+ function retireTraceMetadata(traceId) {
580
+ const record = activeRecords.get(traceId);
581
+ if (!record) {
582
+ return;
583
+ }
584
+ activeRecords.delete(traceId);
585
+ completedRecords.set(traceId, record);
586
+ while (completedRecords.size > RETAINED_COMPLETED_TRACES) {
587
+ const oldest = completedRecords.keys().next();
588
+ if (oldest.done) {
589
+ return;
590
+ }
591
+ completedRecords.delete(oldest.value);
592
+ }
593
+ }
594
+ function warnAboutShadowedKeys(traceId, record) {
595
+ const shadowed = Object.keys(record.derived).filter(
596
+ (key) => key in record.caller && record.caller[key] !== record.derived[key] && !record.warnedKeys.has(key)
597
+ ).sort();
598
+ if (shadowed.length === 0) {
599
+ return;
600
+ }
601
+ for (const key of shadowed) {
602
+ record.warnedKeys.add(key);
603
+ }
604
+ warn(
605
+ `trace metadata key(s) ${shadowed.join(", ")} on trace ${traceId} were set both by the caller and by an integration's own trace export; the caller's value is the one kept on the trace.`
606
+ );
564
607
  }
565
608
  function mergeCallerMetadataIntoTracePayload(payload) {
566
609
  const externalTrace = payload.externalTrace;
@@ -572,35 +615,31 @@ function mergeCallerMetadataIntoTracePayload(payload) {
572
615
  if (typeof traceId !== "string" || traceId === "") {
573
616
  return payload;
574
617
  }
575
- const caller = callerMetadata.get(traceId);
576
- if (!caller) {
618
+ const record = findRecord(traceId);
619
+ if (!record || Object.keys(record.caller).length === 0) {
577
620
  return payload;
578
621
  }
579
- const derived = derivedMetadata.get(traceId) ?? {};
580
622
  const exported = external.metadata;
581
623
  if (typeof exported === "object" && exported !== null) {
582
- Object.assign(derived, exported);
583
- }
584
- derivedMetadata.set(traceId, derived);
585
- const shadowed = Object.keys(derived).filter((key) => key in caller && caller[key] !== derived[key]).sort();
586
- if (shadowed.length > 0) {
587
- warnOnce(
588
- `trace-metadata-shadowed:${shadowed.join(",")}`,
589
- `trace metadata key(s) ${shadowed.join(", ")} were set both by the caller and by an integration's own trace export; the caller's value is the one kept on the trace.`
590
- );
624
+ Object.assign(record.derived, exported);
591
625
  }
626
+ warnAboutShadowedKeys(traceId, record);
592
627
  return {
593
628
  ...payload,
594
- externalTrace: { ...external, metadata: { ...derived, ...caller } }
629
+ externalTrace: {
630
+ ...external,
631
+ metadata: { ...record.derived, ...record.caller }
632
+ }
595
633
  };
596
634
  }
597
- var callerMetadata, derivedMetadata;
635
+ var RETAINED_COMPLETED_TRACES, activeRecords, completedRecords;
598
636
  var init_traceMetadata = __esm({
599
637
  "src/traceMetadata.ts"() {
600
638
  "use strict";
601
639
  init_warnOnce();
602
- callerMetadata = /* @__PURE__ */ new Map();
603
- derivedMetadata = /* @__PURE__ */ new Map();
640
+ RETAINED_COMPLETED_TRACES = 128;
641
+ activeRecords = /* @__PURE__ */ new Map();
642
+ completedRecords = /* @__PURE__ */ new Map();
604
643
  }
605
644
  });
606
645
 
@@ -7472,7 +7511,7 @@ var Bitfab = class {
7472
7511
  }
7473
7512
  });
7474
7513
  activeTraceStates.delete(traceId);
7475
- forgetTraceMetadata(traceId);
7514
+ retireTraceMetadata(traceId);
7476
7515
  }
7477
7516
  } catch {
7478
7517
  }
@@ -7665,7 +7704,7 @@ var Bitfab = class {
7665
7704
  } catch (setupError) {
7666
7705
  if (registeredTraceId) {
7667
7706
  activeTraceStates.delete(registeredTraceId);
7668
- forgetTraceMetadata(registeredTraceId);
7707
+ retireTraceMetadata(registeredTraceId);
7669
7708
  }
7670
7709
  if (setupError instanceof MixedTracingError) {
7671
7710
  throw setupError;
@@ -8064,7 +8103,7 @@ var Bitfab = class {
8064
8103
  });
8065
8104
  } finally {
8066
8105
  activeTraceStates.delete(traceId);
8067
- forgetTraceMetadata(traceId);
8106
+ retireTraceMetadata(traceId);
8068
8107
  }
8069
8108
  return traceId;
8070
8109
  }
@@ -8110,7 +8149,7 @@ var Bitfab = class {
8110
8149
  await flushTraces2(3e4);
8111
8150
  } finally {
8112
8151
  unrecorded = activeTraceStates.delete(traceId);
8113
- forgetTraceMetadata(traceId);
8152
+ retireTraceMetadata(traceId);
8114
8153
  }
8115
8154
  }
8116
8155
  if (unrecorded) {