@bitfab/sdk 0.52.0 → 0.52.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/{chunk-4EOEBN3M.js → chunk-6DIR65JW.js} +63 -3
- package/dist/chunk-6DIR65JW.js.map +1 -0
- package/dist/{chunk-SJ65MW4K.js → chunk-A5UGSRMK.js} +2 -2
- package/dist/{chunk-KXBXRR4I.js → chunk-UQLT25PG.js} +40 -3
- package/dist/chunk-UQLT25PG.js.map +1 -0
- package/dist/{chunk-VEDTNQQE.js → chunk-XAT6WLCS.js} +24 -14
- package/dist/chunk-XAT6WLCS.js.map +1 -0
- package/dist/{http-W6SXQA3Q.js → http-B2AK43BN.js} +2 -2
- package/dist/{http-4A2JEPBD.js → http-RI4YCAS2.js} +2 -2
- package/dist/index.cjs +83 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -3
- package/dist/node.cjs +83 -10
- package/dist/node.cjs.map +1 -1
- package/dist/node.js +3 -3
- package/dist/{replay-SY74BXDK.js → replay-24F3F5RD.js} +3 -3
- package/dist/replayCli.js +2 -2
- package/package.json +1 -1
- package/dist/chunk-4EOEBN3M.js.map +0 -1
- package/dist/chunk-KXBXRR4I.js.map +0 -1
- package/dist/chunk-VEDTNQQE.js.map +0 -1
- /package/dist/{chunk-SJ65MW4K.js.map → chunk-A5UGSRMK.js.map} +0 -0
- /package/dist/{http-4A2JEPBD.js.map → http-B2AK43BN.js.map} +0 -0
- /package/dist/{http-W6SXQA3Q.js.map → http-RI4YCAS2.js.map} +0 -0
- /package/dist/{replay-SY74BXDK.js.map → replay-24F3F5RD.js.map} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
flushTraces,
|
|
7
7
|
parseRetryAfterMs,
|
|
8
8
|
serializePayloadBody
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-6DIR65JW.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-B2AK43BN.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
flushTraces,
|
|
7
7
|
parseRetryAfterMs,
|
|
8
8
|
serializePayloadBody
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-UQLT25PG.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-RI4YCAS2.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.1";
|
|
46
46
|
__packageName__ = "@bitfab/sdk";
|
|
47
47
|
}
|
|
48
48
|
});
|
|
@@ -534,6 +534,69 @@ var init_serializePayload = __esm({
|
|
|
534
534
|
}
|
|
535
535
|
});
|
|
536
536
|
|
|
537
|
+
// src/traceMetadata.ts
|
|
538
|
+
function recordCallerTraceMetadata(traceId, metadata) {
|
|
539
|
+
if (typeof traceId !== "string" || traceId === "") {
|
|
540
|
+
return;
|
|
541
|
+
}
|
|
542
|
+
if (typeof metadata !== "object" || metadata === null) {
|
|
543
|
+
return;
|
|
544
|
+
}
|
|
545
|
+
if (Object.keys(metadata).length === 0) {
|
|
546
|
+
return;
|
|
547
|
+
}
|
|
548
|
+
callerMetadata.set(traceId, { ...callerMetadata.get(traceId), ...metadata });
|
|
549
|
+
}
|
|
550
|
+
function callerTraceMetadata(traceId) {
|
|
551
|
+
const recorded = callerMetadata.get(traceId);
|
|
552
|
+
return recorded ? { ...recorded } : void 0;
|
|
553
|
+
}
|
|
554
|
+
function forgetTraceMetadata(traceId) {
|
|
555
|
+
callerMetadata.delete(traceId);
|
|
556
|
+
derivedMetadata.delete(traceId);
|
|
557
|
+
}
|
|
558
|
+
function mergeCallerMetadataIntoTracePayload(payload) {
|
|
559
|
+
const externalTrace = payload.externalTrace;
|
|
560
|
+
if (typeof externalTrace !== "object" || externalTrace === null) {
|
|
561
|
+
return payload;
|
|
562
|
+
}
|
|
563
|
+
const external = externalTrace;
|
|
564
|
+
const traceId = typeof payload.id === "string" && payload.id !== "" ? payload.id : external.id;
|
|
565
|
+
if (typeof traceId !== "string" || traceId === "") {
|
|
566
|
+
return payload;
|
|
567
|
+
}
|
|
568
|
+
const caller = callerMetadata.get(traceId);
|
|
569
|
+
if (!caller) {
|
|
570
|
+
return payload;
|
|
571
|
+
}
|
|
572
|
+
const derived = derivedMetadata.get(traceId) ?? {};
|
|
573
|
+
const exported = external.metadata;
|
|
574
|
+
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
|
+
);
|
|
584
|
+
}
|
|
585
|
+
return {
|
|
586
|
+
...payload,
|
|
587
|
+
externalTrace: { ...external, metadata: { ...derived, ...caller } }
|
|
588
|
+
};
|
|
589
|
+
}
|
|
590
|
+
var callerMetadata, derivedMetadata;
|
|
591
|
+
var init_traceMetadata = __esm({
|
|
592
|
+
"src/traceMetadata.ts"() {
|
|
593
|
+
"use strict";
|
|
594
|
+
init_warnOnce();
|
|
595
|
+
callerMetadata = /* @__PURE__ */ new Map();
|
|
596
|
+
derivedMetadata = /* @__PURE__ */ new Map();
|
|
597
|
+
}
|
|
598
|
+
});
|
|
599
|
+
|
|
537
600
|
// src/transportTypes.ts
|
|
538
601
|
var DeliveryError;
|
|
539
602
|
var init_transportTypes = __esm({
|
|
@@ -1352,6 +1415,7 @@ var init_http = __esm({
|
|
|
1352
1415
|
init_errors();
|
|
1353
1416
|
init_replayContext();
|
|
1354
1417
|
init_serializePayload();
|
|
1418
|
+
init_traceMetadata();
|
|
1355
1419
|
init_transport();
|
|
1356
1420
|
init_transportTypes();
|
|
1357
1421
|
init_unrefTimer();
|
|
@@ -1815,7 +1879,8 @@ var init_http = __esm({
|
|
|
1815
1879
|
* {@link HttpClient.sendExternalSpan}; replay confirms persistence with the
|
|
1816
1880
|
* server-authoritative barrier in `replay.ts`, not by awaiting this call.
|
|
1817
1881
|
*/
|
|
1818
|
-
sendExternalTrace(
|
|
1882
|
+
sendExternalTrace(rawPayload) {
|
|
1883
|
+
const payload = mergeCallerMetadataIntoTracePayload(rawPayload);
|
|
1819
1884
|
this.getTraceTransport()?.submit(
|
|
1820
1885
|
"external_trace",
|
|
1821
1886
|
{
|
|
@@ -5700,6 +5765,7 @@ function runWithSeedContext(ctx, fn) {
|
|
|
5700
5765
|
|
|
5701
5766
|
// src/client.ts
|
|
5702
5767
|
init_serialize();
|
|
5768
|
+
init_traceMetadata();
|
|
5703
5769
|
|
|
5704
5770
|
// src/tracing.ts
|
|
5705
5771
|
init_constants();
|
|
@@ -6380,8 +6446,7 @@ function getCurrentTrace() {
|
|
|
6380
6446
|
if (typeof metadata !== "object" || metadata === null) {
|
|
6381
6447
|
return;
|
|
6382
6448
|
}
|
|
6383
|
-
|
|
6384
|
-
traceState.metadata = { ...traceState.metadata, ...metadata };
|
|
6449
|
+
recordCallerTraceMetadata(traceId, metadata);
|
|
6385
6450
|
} catch {
|
|
6386
6451
|
}
|
|
6387
6452
|
},
|
|
@@ -7374,7 +7439,7 @@ var Bitfab = class {
|
|
|
7374
7439
|
endedAt,
|
|
7375
7440
|
sessionId: traceState?.sessionId,
|
|
7376
7441
|
name: traceState?.name,
|
|
7377
|
-
metadata:
|
|
7442
|
+
metadata: callerTraceMetadata(traceId),
|
|
7378
7443
|
contexts: traceState?.contexts ?? [],
|
|
7379
7444
|
testRunId: traceState?.testRunId,
|
|
7380
7445
|
inputSourceTraceId: traceState?.inputSourceTraceId,
|
|
@@ -7398,6 +7463,7 @@ var Bitfab = class {
|
|
|
7398
7463
|
}
|
|
7399
7464
|
});
|
|
7400
7465
|
activeTraceStates.delete(traceId);
|
|
7466
|
+
forgetTraceMetadata(traceId);
|
|
7401
7467
|
}
|
|
7402
7468
|
} catch {
|
|
7403
7469
|
}
|
|
@@ -7590,6 +7656,7 @@ var Bitfab = class {
|
|
|
7590
7656
|
} catch (setupError) {
|
|
7591
7657
|
if (registeredTraceId) {
|
|
7592
7658
|
activeTraceStates.delete(registeredTraceId);
|
|
7659
|
+
forgetTraceMetadata(registeredTraceId);
|
|
7593
7660
|
}
|
|
7594
7661
|
if (setupError instanceof MixedTracingError) {
|
|
7595
7662
|
throw setupError;
|
|
@@ -7950,14 +8017,16 @@ var Bitfab = class {
|
|
|
7950
8017
|
}
|
|
7951
8018
|
const traceId = randomUuid();
|
|
7952
8019
|
const startedAt = nowIsoTimestamp();
|
|
8020
|
+
if (options.metadata !== void 0) {
|
|
8021
|
+
recordCallerTraceMetadata(traceId, options.metadata);
|
|
8022
|
+
}
|
|
7953
8023
|
activeTraceStates.set(traceId, {
|
|
7954
8024
|
traceId,
|
|
7955
8025
|
startedAt,
|
|
7956
8026
|
contexts: [],
|
|
7957
8027
|
ingestionType: "seeded",
|
|
7958
8028
|
...options.sessionId !== void 0 && { sessionId: options.sessionId },
|
|
7959
|
-
...options.name !== void 0 && { name: options.name }
|
|
7960
|
-
...options.metadata !== void 0 && { metadata: options.metadata }
|
|
8029
|
+
...options.name !== void 0 && { name: options.name }
|
|
7961
8030
|
});
|
|
7962
8031
|
try {
|
|
7963
8032
|
this.sendWrapperSpan({
|
|
@@ -7980,12 +8049,13 @@ var Bitfab = class {
|
|
|
7980
8049
|
endedAt: startedAt,
|
|
7981
8050
|
sessionId: options.sessionId,
|
|
7982
8051
|
name: options.name,
|
|
7983
|
-
metadata:
|
|
8052
|
+
metadata: callerTraceMetadata(traceId),
|
|
7984
8053
|
contexts: [],
|
|
7985
8054
|
ingestionType: "seeded"
|
|
7986
8055
|
});
|
|
7987
8056
|
} finally {
|
|
7988
8057
|
activeTraceStates.delete(traceId);
|
|
8058
|
+
forgetTraceMetadata(traceId);
|
|
7989
8059
|
}
|
|
7990
8060
|
return traceId;
|
|
7991
8061
|
}
|
|
@@ -8010,14 +8080,16 @@ var Bitfab = class {
|
|
|
8010
8080
|
}
|
|
8011
8081
|
await seedContextReady;
|
|
8012
8082
|
const traceId = randomUuid();
|
|
8083
|
+
if (options?.metadata !== void 0) {
|
|
8084
|
+
recordCallerTraceMetadata(traceId, options.metadata);
|
|
8085
|
+
}
|
|
8013
8086
|
activeTraceStates.set(traceId, {
|
|
8014
8087
|
traceId,
|
|
8015
8088
|
startedAt: nowIsoTimestamp(),
|
|
8016
8089
|
contexts: [],
|
|
8017
8090
|
ingestionType: "seeded",
|
|
8018
8091
|
...options?.sessionId !== void 0 && { sessionId: options.sessionId },
|
|
8019
|
-
...options?.name !== void 0 && { name: options.name }
|
|
8020
|
-
...options?.metadata !== void 0 && { metadata: options.metadata }
|
|
8092
|
+
...options?.name !== void 0 && { name: options.name }
|
|
8021
8093
|
});
|
|
8022
8094
|
const args = options?.args ?? [];
|
|
8023
8095
|
let unrecorded = true;
|
|
@@ -8029,6 +8101,7 @@ var Bitfab = class {
|
|
|
8029
8101
|
await flushTraces2(3e4);
|
|
8030
8102
|
} finally {
|
|
8031
8103
|
unrecorded = activeTraceStates.delete(traceId);
|
|
8104
|
+
forgetTraceMetadata(traceId);
|
|
8032
8105
|
}
|
|
8033
8106
|
}
|
|
8034
8107
|
if (unrecorded) {
|