@bitfab/sdk 0.52.1 → 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/{chunk-A5UGSRMK.js → chunk-45SK3FUL.js} +2 -7
- package/dist/chunk-45SK3FUL.js.map +1 -0
- package/dist/{chunk-6DIR65JW.js → chunk-ODF4JSYX.js} +67 -28
- package/dist/chunk-ODF4JSYX.js.map +1 -0
- package/dist/{chunk-UQLT25PG.js → chunk-QHA46TT6.js} +36 -21
- package/dist/chunk-QHA46TT6.js.map +1 -0
- package/dist/{chunk-XAT6WLCS.js → chunk-SECFVEQV.js} +11 -11
- package/dist/{chunk-XAT6WLCS.js.map → chunk-SECFVEQV.js.map} +1 -1
- package/dist/{http-B2AK43BN.js → http-3MPIPYKC.js} +2 -2
- package/dist/{http-RI4YCAS2.js → http-ZW5THLTW.js} +2 -2
- package/dist/index.cjs +70 -36
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -5
- package/dist/index.d.ts +10 -5
- package/dist/index.js +3 -3
- package/dist/node.cjs +70 -36
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +3 -3
- package/dist/{replay-24F3F5RD.js → replay-W5SAHEU5.js} +3 -3
- package/dist/replayCli.js +42 -12
- package/dist/replayCli.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-6DIR65JW.js.map +0 -1
- package/dist/chunk-A5UGSRMK.js.map +0 -1
- package/dist/chunk-UQLT25PG.js.map +0 -1
- /package/dist/{http-B2AK43BN.js.map → http-3MPIPYKC.js.map} +0 -0
- /package/dist/{http-RI4YCAS2.js.map → http-ZW5THLTW.js.map} +0 -0
- /package/dist/{replay-24F3F5RD.js.map → replay-W5SAHEU5.js.map} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
flushTraces,
|
|
7
7
|
parseRetryAfterMs,
|
|
8
8
|
serializePayloadBody
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ODF4JSYX.js";
|
|
10
10
|
import "./chunk-H6LZRFMN.js";
|
|
11
11
|
export {
|
|
12
12
|
BitfabError,
|
|
@@ -17,4 +17,4 @@ export {
|
|
|
17
17
|
parseRetryAfterMs,
|
|
18
18
|
serializePayloadBody
|
|
19
19
|
};
|
|
20
|
-
//# sourceMappingURL=http-
|
|
20
|
+
//# sourceMappingURL=http-3MPIPYKC.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
flushTraces,
|
|
7
7
|
parseRetryAfterMs,
|
|
8
8
|
serializePayloadBody
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QHA46TT6.js";
|
|
10
10
|
export {
|
|
11
11
|
BitfabError,
|
|
12
12
|
HttpClient,
|
|
@@ -16,4 +16,4 @@ export {
|
|
|
16
16
|
parseRetryAfterMs,
|
|
17
17
|
serializePayloadBody
|
|
18
18
|
};
|
|
19
|
-
//# sourceMappingURL=http-
|
|
19
|
+
//# sourceMappingURL=http-ZW5THLTW.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -42,7 +42,7 @@ var __version__, __packageName__;
|
|
|
42
42
|
var init_version_generated = __esm({
|
|
43
43
|
"src/version.generated.ts"() {
|
|
44
44
|
"use strict";
|
|
45
|
-
__version__ = "0.52.
|
|
45
|
+
__version__ = "0.52.3";
|
|
46
46
|
__packageName__ = "@bitfab/sdk";
|
|
47
47
|
}
|
|
48
48
|
});
|
|
@@ -385,15 +385,18 @@ var init_payloadBudget = __esm({
|
|
|
385
385
|
});
|
|
386
386
|
|
|
387
387
|
// src/warnOnce.ts
|
|
388
|
+
function warn(message) {
|
|
389
|
+
try {
|
|
390
|
+
console.warn(`[bitfab] ${message}`);
|
|
391
|
+
} catch {
|
|
392
|
+
}
|
|
393
|
+
}
|
|
388
394
|
function warnOnce(key, message) {
|
|
389
395
|
if (warned.has(key)) {
|
|
390
396
|
return;
|
|
391
397
|
}
|
|
392
398
|
warned.add(key);
|
|
393
|
-
|
|
394
|
-
console.warn(`[bitfab] ${message}`);
|
|
395
|
-
} catch {
|
|
396
|
-
}
|
|
399
|
+
warn(message);
|
|
397
400
|
}
|
|
398
401
|
var warned;
|
|
399
402
|
var init_warnOnce = __esm({
|
|
@@ -535,6 +538,9 @@ var init_serializePayload = __esm({
|
|
|
535
538
|
});
|
|
536
539
|
|
|
537
540
|
// src/traceMetadata.ts
|
|
541
|
+
function findRecord(traceId) {
|
|
542
|
+
return activeRecords.get(traceId) ?? completedRecords.get(traceId);
|
|
543
|
+
}
|
|
538
544
|
function recordCallerTraceMetadata(traceId, metadata) {
|
|
539
545
|
if (typeof traceId !== "string" || traceId === "") {
|
|
540
546
|
return;
|
|
@@ -545,15 +551,52 @@ function recordCallerTraceMetadata(traceId, metadata) {
|
|
|
545
551
|
if (Object.keys(metadata).length === 0) {
|
|
546
552
|
return;
|
|
547
553
|
}
|
|
548
|
-
|
|
554
|
+
const existing = findRecord(traceId);
|
|
555
|
+
if (existing) {
|
|
556
|
+
Object.assign(existing.caller, metadata);
|
|
557
|
+
return;
|
|
558
|
+
}
|
|
559
|
+
activeRecords.set(traceId, {
|
|
560
|
+
caller: { ...metadata },
|
|
561
|
+
derived: {},
|
|
562
|
+
warnedKeys: /* @__PURE__ */ new Set()
|
|
563
|
+
});
|
|
549
564
|
}
|
|
550
565
|
function callerTraceMetadata(traceId) {
|
|
551
|
-
const
|
|
552
|
-
|
|
566
|
+
const record = findRecord(traceId);
|
|
567
|
+
if (!record || Object.keys(record.caller).length === 0) {
|
|
568
|
+
return void 0;
|
|
569
|
+
}
|
|
570
|
+
return { ...record.caller };
|
|
553
571
|
}
|
|
554
|
-
function
|
|
555
|
-
|
|
556
|
-
|
|
572
|
+
function retireTraceMetadata(traceId) {
|
|
573
|
+
const record = activeRecords.get(traceId);
|
|
574
|
+
if (!record) {
|
|
575
|
+
return;
|
|
576
|
+
}
|
|
577
|
+
activeRecords.delete(traceId);
|
|
578
|
+
completedRecords.set(traceId, record);
|
|
579
|
+
while (completedRecords.size > RETAINED_COMPLETED_TRACES) {
|
|
580
|
+
const oldest = completedRecords.keys().next();
|
|
581
|
+
if (oldest.done) {
|
|
582
|
+
return;
|
|
583
|
+
}
|
|
584
|
+
completedRecords.delete(oldest.value);
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
function warnAboutShadowedKeys(traceId, record) {
|
|
588
|
+
const shadowed = Object.keys(record.derived).filter(
|
|
589
|
+
(key) => key in record.caller && record.caller[key] !== record.derived[key] && !record.warnedKeys.has(key)
|
|
590
|
+
).sort();
|
|
591
|
+
if (shadowed.length === 0) {
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
594
|
+
for (const key of shadowed) {
|
|
595
|
+
record.warnedKeys.add(key);
|
|
596
|
+
}
|
|
597
|
+
warn(
|
|
598
|
+
`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.`
|
|
599
|
+
);
|
|
557
600
|
}
|
|
558
601
|
function mergeCallerMetadataIntoTracePayload(payload) {
|
|
559
602
|
const externalTrace = payload.externalTrace;
|
|
@@ -565,35 +608,31 @@ function mergeCallerMetadataIntoTracePayload(payload) {
|
|
|
565
608
|
if (typeof traceId !== "string" || traceId === "") {
|
|
566
609
|
return payload;
|
|
567
610
|
}
|
|
568
|
-
const
|
|
569
|
-
if (!caller) {
|
|
611
|
+
const record = findRecord(traceId);
|
|
612
|
+
if (!record || Object.keys(record.caller).length === 0) {
|
|
570
613
|
return payload;
|
|
571
614
|
}
|
|
572
|
-
const derived = derivedMetadata.get(traceId) ?? {};
|
|
573
615
|
const exported = external.metadata;
|
|
574
616
|
if (typeof exported === "object" && exported !== null) {
|
|
575
|
-
Object.assign(derived, exported);
|
|
576
|
-
}
|
|
577
|
-
derivedMetadata.set(traceId, derived);
|
|
578
|
-
const shadowed = Object.keys(derived).filter((key) => key in caller && caller[key] !== derived[key]).sort();
|
|
579
|
-
if (shadowed.length > 0) {
|
|
580
|
-
warnOnce(
|
|
581
|
-
`trace-metadata-shadowed:${shadowed.join(",")}`,
|
|
582
|
-
`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.`
|
|
583
|
-
);
|
|
617
|
+
Object.assign(record.derived, exported);
|
|
584
618
|
}
|
|
619
|
+
warnAboutShadowedKeys(traceId, record);
|
|
585
620
|
return {
|
|
586
621
|
...payload,
|
|
587
|
-
externalTrace: {
|
|
622
|
+
externalTrace: {
|
|
623
|
+
...external,
|
|
624
|
+
metadata: { ...record.derived, ...record.caller }
|
|
625
|
+
}
|
|
588
626
|
};
|
|
589
627
|
}
|
|
590
|
-
var
|
|
628
|
+
var RETAINED_COMPLETED_TRACES, activeRecords, completedRecords;
|
|
591
629
|
var init_traceMetadata = __esm({
|
|
592
630
|
"src/traceMetadata.ts"() {
|
|
593
631
|
"use strict";
|
|
594
632
|
init_warnOnce();
|
|
595
|
-
|
|
596
|
-
|
|
633
|
+
RETAINED_COMPLETED_TRACES = 128;
|
|
634
|
+
activeRecords = /* @__PURE__ */ new Map();
|
|
635
|
+
completedRecords = /* @__PURE__ */ new Map();
|
|
597
636
|
}
|
|
598
637
|
});
|
|
599
638
|
|
|
@@ -2993,11 +3032,6 @@ async function replay(httpClient, serviceUrl, traceFunctionKey, fn, options, reg
|
|
|
2993
3032
|
}
|
|
2994
3033
|
}
|
|
2995
3034
|
const datasetIds = resolveDatasetIds(options);
|
|
2996
|
-
if (options?.traceIds !== void 0 && datasetIds !== void 0) {
|
|
2997
|
-
throw new BitfabError(
|
|
2998
|
-
"traceIds and datasetIds select different replay sources and cannot be used together."
|
|
2999
|
-
);
|
|
3000
|
-
}
|
|
3001
3035
|
if (options?.limit !== void 0 && options?.traceIds !== void 0) {
|
|
3002
3036
|
try {
|
|
3003
3037
|
console.warn(
|
|
@@ -7463,7 +7497,7 @@ var Bitfab = class {
|
|
|
7463
7497
|
}
|
|
7464
7498
|
});
|
|
7465
7499
|
activeTraceStates.delete(traceId);
|
|
7466
|
-
|
|
7500
|
+
retireTraceMetadata(traceId);
|
|
7467
7501
|
}
|
|
7468
7502
|
} catch {
|
|
7469
7503
|
}
|
|
@@ -7656,7 +7690,7 @@ var Bitfab = class {
|
|
|
7656
7690
|
} catch (setupError) {
|
|
7657
7691
|
if (registeredTraceId) {
|
|
7658
7692
|
activeTraceStates.delete(registeredTraceId);
|
|
7659
|
-
|
|
7693
|
+
retireTraceMetadata(registeredTraceId);
|
|
7660
7694
|
}
|
|
7661
7695
|
if (setupError instanceof MixedTracingError) {
|
|
7662
7696
|
throw setupError;
|
|
@@ -8055,7 +8089,7 @@ var Bitfab = class {
|
|
|
8055
8089
|
});
|
|
8056
8090
|
} finally {
|
|
8057
8091
|
activeTraceStates.delete(traceId);
|
|
8058
|
-
|
|
8092
|
+
retireTraceMetadata(traceId);
|
|
8059
8093
|
}
|
|
8060
8094
|
return traceId;
|
|
8061
8095
|
}
|
|
@@ -8101,7 +8135,7 @@ var Bitfab = class {
|
|
|
8101
8135
|
await flushTraces2(3e4);
|
|
8102
8136
|
} finally {
|
|
8103
8137
|
unrecorded = activeTraceStates.delete(traceId);
|
|
8104
|
-
|
|
8138
|
+
retireTraceMetadata(traceId);
|
|
8105
8139
|
}
|
|
8106
8140
|
}
|
|
8107
8141
|
if (unrecorded) {
|