@bitfab/sdk 0.74.6 → 0.74.7
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/{http-Br-jOeI6.js → http-CDFhg9aQ.js} +78 -44
- package/dist/http-CDFhg9aQ.js.map +1 -0
- package/dist/{http-C_f9vk_C.cjs → http-sX8XbCY8.cjs} +78 -44
- package/dist/http-sX8XbCY8.cjs.map +1 -0
- package/dist/{index-Dcog1sZv.d.cts → index-Dg04DT0z.d.cts} +55 -26
- package/dist/{index-Dcog1sZv.d.ts → index-Dg04DT0z.d.ts} +55 -26
- package/dist/index.cjs +2 -2
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/node.cjs +2 -2
- package/dist/node.d.cts +1 -1
- package/dist/node.d.ts +1 -1
- package/dist/node.js +2 -2
- package/dist/{registryCommand-DdNn4qGL.js → registryCommand-DdE8cNOX.js} +6 -6
- package/dist/registryCommand-DdE8cNOX.js.map +1 -0
- package/dist/replayCli.js +1 -1
- package/dist/seedCli.js +1 -1
- package/dist/{src-atyS216N.cjs → src-CmcfwC6Z.cjs} +37 -37
- package/dist/src-CmcfwC6Z.cjs.map +1 -0
- package/dist/{src-CRrvnhok.js → src-DXFs6T8_.js} +37 -37
- package/dist/src-DXFs6T8_.js.map +1 -0
- package/package.json +1 -1
- package/dist/http-Br-jOeI6.js.map +0 -1
- package/dist/http-C_f9vk_C.cjs.map +0 -1
- package/dist/registryCommand-DdNn4qGL.js.map +0 -1
- package/dist/src-CRrvnhok.js.map +0 -1
- package/dist/src-atyS216N.cjs.map +0 -1
|
@@ -5,7 +5,7 @@ let _opentelemetry_core = require("@opentelemetry/core");
|
|
|
5
5
|
let _opentelemetry_resources = require("@opentelemetry/resources");
|
|
6
6
|
let _opentelemetry_sdk_trace = require("@opentelemetry/sdk-trace");
|
|
7
7
|
//#region src/version.generated.ts
|
|
8
|
-
const __version__ = "0.74.
|
|
8
|
+
const __version__ = "0.74.7";
|
|
9
9
|
const __packageName__ = "@bitfab/sdk";
|
|
10
10
|
//#endregion
|
|
11
11
|
//#region src/traceCompletion.ts
|
|
@@ -1015,20 +1015,21 @@ function warnAboutShadowedKeys(traceId, record) {
|
|
|
1015
1015
|
require_autoTrace.warn(`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.`);
|
|
1016
1016
|
}
|
|
1017
1017
|
function mergeCallerMetadataIntoTracePayload(payload) {
|
|
1018
|
-
const
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
const
|
|
1018
|
+
const traceKey = "rawTrace" in payload ? "rawTrace" : "externalTrace";
|
|
1019
|
+
const rawTrace = payload[traceKey];
|
|
1020
|
+
if (typeof rawTrace !== "object" || rawTrace === null) return payload;
|
|
1021
|
+
const trace = rawTrace;
|
|
1022
|
+
const traceId = typeof payload.id === "string" && payload.id !== "" ? payload.id : trace.id;
|
|
1022
1023
|
if (typeof traceId !== "string" || traceId === "") return payload;
|
|
1023
1024
|
const record = findRecord(traceId);
|
|
1024
1025
|
if (!record || Object.keys(record.caller).length === 0) return payload;
|
|
1025
|
-
const exported =
|
|
1026
|
+
const exported = trace.metadata;
|
|
1026
1027
|
if (typeof exported === "object" && exported !== null) Object.assign(record.derived, exported);
|
|
1027
1028
|
warnAboutShadowedKeys(traceId, record);
|
|
1028
1029
|
return {
|
|
1029
1030
|
...payload,
|
|
1030
|
-
|
|
1031
|
-
...
|
|
1031
|
+
[traceKey]: {
|
|
1032
|
+
...trace,
|
|
1032
1033
|
metadata: {
|
|
1033
1034
|
...record.derived,
|
|
1034
1035
|
...record.caller
|
|
@@ -1524,10 +1525,10 @@ const EXIT_FLUSH_TIMEOUT_MS = 5e3;
|
|
|
1524
1525
|
const DEFAULT_LIFECYCLE_TIMEOUT_MS = 3e4;
|
|
1525
1526
|
const pendingTracePromises = /* @__PURE__ */ new Set();
|
|
1526
1527
|
const liveHttpClients = /* @__PURE__ */ new Set();
|
|
1527
|
-
async function
|
|
1528
|
+
async function releaseHeldSpans(timeoutMs) {
|
|
1528
1529
|
const deadline = Date.now() + Math.max(timeoutMs, 0);
|
|
1529
1530
|
let released = true;
|
|
1530
|
-
for (const client of [...liveHttpClients]) released = await client.
|
|
1531
|
+
for (const client of [...liveHttpClients]) released = await client.releaseHeldSpans?.(Math.max(0, deadline - Date.now())) !== false && released;
|
|
1531
1532
|
return released;
|
|
1532
1533
|
}
|
|
1533
1534
|
function stopSimulationPlans() {
|
|
@@ -1542,9 +1543,9 @@ function awaitOnExit(promise) {
|
|
|
1542
1543
|
}
|
|
1543
1544
|
async function flushTraces(timeoutMs = 5e3) {
|
|
1544
1545
|
const deadline = Date.now() + Math.max(timeoutMs, 0);
|
|
1545
|
-
const released = await
|
|
1546
|
+
const released = await releaseHeldSpans(planWaitSliceMs(timeoutMs));
|
|
1546
1547
|
const requestsFlushed = await awaitPendingRequests(Math.max(0, deadline - Date.now()));
|
|
1547
|
-
const releasedAfterDeferred = await
|
|
1548
|
+
const releasedAfterDeferred = await releaseHeldSpans(0);
|
|
1548
1549
|
const transportsFlushed = await flushTraceTransports(Math.max(0, deadline - Date.now()));
|
|
1549
1550
|
return released && releasedAfterDeferred && requestsFlushed && transportsFlushed;
|
|
1550
1551
|
}
|
|
@@ -1575,7 +1576,7 @@ if (typeof process !== "undefined" && process.versions != null && process.versio
|
|
|
1575
1576
|
};
|
|
1576
1577
|
const deadline = setTimeout(stopFlushing, 1e4);
|
|
1577
1578
|
unrefTimer(deadline);
|
|
1578
|
-
|
|
1579
|
+
releaseHeldSpans(planWaitMs).catch(() => {}).then(() => {
|
|
1579
1580
|
stopSimulationPlans();
|
|
1580
1581
|
}).then(() => Promise.allSettled([...Array.from(pendingTracePromises).map((p) => p.catch(() => {})), shutdownTraceTransports(EXIT_FLUSH_TIMEOUT_MS).catch(() => false)])).then(() => {
|
|
1581
1582
|
clearTimeout(deadline);
|
|
@@ -1626,7 +1627,7 @@ function carrierName(operation, payload) {
|
|
|
1626
1627
|
}
|
|
1627
1628
|
function payloadTimestamp(payload, field) {
|
|
1628
1629
|
const rawSpan = asPayloadRecord(payload.rawSpan);
|
|
1629
|
-
const rawTrace = asPayloadRecord(payload.
|
|
1630
|
+
const rawTrace = asPayloadRecord(payload.rawTrace) ?? asPayloadRecord(payload.externalTrace);
|
|
1630
1631
|
const raw = rawSpan?.[field] ?? rawTrace?.[field];
|
|
1631
1632
|
if (typeof raw !== "string") return;
|
|
1632
1633
|
const parsed = Date.parse(raw);
|
|
@@ -1653,20 +1654,38 @@ function carrierRef(payload) {
|
|
|
1653
1654
|
}
|
|
1654
1655
|
function sourceTraceIdOf(payload) {
|
|
1655
1656
|
if (typeof payload.sourceTraceId === "string") return payload.sourceTraceId;
|
|
1656
|
-
const id = (payload.
|
|
1657
|
+
const id = (payload.rawTrace ?? payload.externalTrace)?.id;
|
|
1657
1658
|
return typeof id === "string" ? id : void 0;
|
|
1658
1659
|
}
|
|
1659
1660
|
let carrierSeq = 0;
|
|
1660
1661
|
function describeError(error) {
|
|
1661
1662
|
return error instanceof Error ? error.message : String(error);
|
|
1662
1663
|
}
|
|
1663
|
-
function
|
|
1664
|
-
require_autoTrace.warnOnce("
|
|
1664
|
+
function warnDroppedSpan(error) {
|
|
1665
|
+
require_autoTrace.warnOnce("span-dropped", `a span was dropped because the send step failed: ${describeError(error)}`);
|
|
1665
1666
|
}
|
|
1666
|
-
function
|
|
1667
|
-
require_autoTrace.warnOnce("
|
|
1667
|
+
function warnDroppedTrace(error) {
|
|
1668
|
+
require_autoTrace.warnOnce("trace-dropped", `a trace was dropped because the send step failed: ${describeError(error)}`);
|
|
1668
1669
|
}
|
|
1669
1670
|
var HttpClient = class {
|
|
1671
|
+
get externalSpanTransform() {
|
|
1672
|
+
return this.spanPayloadTransform;
|
|
1673
|
+
}
|
|
1674
|
+
set externalSpanTransform(transform) {
|
|
1675
|
+
this.spanPayloadTransform = transform;
|
|
1676
|
+
}
|
|
1677
|
+
get externalTraceTransform() {
|
|
1678
|
+
return this.tracePayloadTransform;
|
|
1679
|
+
}
|
|
1680
|
+
set externalTraceTransform(transform) {
|
|
1681
|
+
this.tracePayloadTransform = transform;
|
|
1682
|
+
}
|
|
1683
|
+
get releaseHeldExternalSpans() {
|
|
1684
|
+
return this.releaseHeldSpans;
|
|
1685
|
+
}
|
|
1686
|
+
set releaseHeldExternalSpans(release) {
|
|
1687
|
+
this.releaseHeldSpans = release;
|
|
1688
|
+
}
|
|
1670
1689
|
constructor(config) {
|
|
1671
1690
|
this.traceDeliveries = /* @__PURE__ */ new Map();
|
|
1672
1691
|
this.deferredWork = /* @__PURE__ */ new Set();
|
|
@@ -1781,10 +1800,10 @@ var HttpClient = class {
|
|
|
1781
1800
|
}
|
|
1782
1801
|
async settleDeferredWork(timeoutMs = DEFAULT_LIFECYCLE_TIMEOUT_MS) {
|
|
1783
1802
|
const deadline = Date.now() + Math.max(timeoutMs, 0);
|
|
1784
|
-
const released = await this.
|
|
1803
|
+
const released = await this.releaseHeldSpans?.(planWaitSliceMs(timeoutMs));
|
|
1785
1804
|
await replayContextReady.catch(() => {});
|
|
1786
1805
|
const settled = await waitForPromises(Array.from(this.deferredWork), Math.max(0, deadline - Date.now()));
|
|
1787
|
-
const releasedAfterDeferred = await this.
|
|
1806
|
+
const releasedAfterDeferred = await this.releaseHeldSpans?.(0);
|
|
1788
1807
|
return released !== false && releasedAfterDeferred !== false && settled;
|
|
1789
1808
|
}
|
|
1790
1809
|
async waitForPendingRequests(timeoutMs = DEFAULT_LIFECYCLE_TIMEOUT_MS) {
|
|
@@ -1801,9 +1820,9 @@ var HttpClient = class {
|
|
|
1801
1820
|
const settled = await this.settleDeferredWork(Math.max(0, deadline - Date.now()));
|
|
1802
1821
|
this.stopSimulationPlan?.();
|
|
1803
1822
|
this.closed = true;
|
|
1804
|
-
this.
|
|
1805
|
-
this.
|
|
1806
|
-
this.
|
|
1823
|
+
this.spanPayloadTransform = void 0;
|
|
1824
|
+
this.tracePayloadTransform = void 0;
|
|
1825
|
+
this.releaseHeldSpans = void 0;
|
|
1807
1826
|
this.stopSimulationPlan = void 0;
|
|
1808
1827
|
const transport = this.traceTransport;
|
|
1809
1828
|
this.traceTransport = void 0;
|
|
@@ -1923,25 +1942,25 @@ var HttpClient = class {
|
|
|
1923
1942
|
};
|
|
1924
1943
|
this.getTraceTransport()?.submit("internal_trace", body, carrierMeta("internal_trace", body, void 0));
|
|
1925
1944
|
}
|
|
1926
|
-
|
|
1945
|
+
sendSpanPayload(payload) {
|
|
1927
1946
|
const ref = carrierRef(payload);
|
|
1928
1947
|
if (ref?.spanId !== void 0) this.traceCompletion.record(ref.traceId, ref.spanId);
|
|
1929
1948
|
const drop = () => {
|
|
1930
1949
|
if (ref?.spanId !== void 0) this.traceCompletion.abort(ref.traceId, ref.spanId);
|
|
1931
1950
|
};
|
|
1932
|
-
const gate = this.
|
|
1951
|
+
const gate = this.spanPayloadTransform;
|
|
1933
1952
|
if (gate === void 0) {
|
|
1934
|
-
this.
|
|
1953
|
+
this.submitSpanPayload(payload);
|
|
1935
1954
|
return;
|
|
1936
1955
|
}
|
|
1937
1956
|
try {
|
|
1938
|
-
gate(payload, (ready) => this.
|
|
1957
|
+
gate(payload, (ready) => this.submitSpanPayload(ready), drop);
|
|
1939
1958
|
} catch (error) {
|
|
1940
1959
|
drop();
|
|
1941
|
-
|
|
1960
|
+
warnDroppedSpan(error);
|
|
1942
1961
|
}
|
|
1943
1962
|
}
|
|
1944
|
-
|
|
1963
|
+
submitSpanPayload(payload) {
|
|
1945
1964
|
const body = {
|
|
1946
1965
|
...payload,
|
|
1947
1966
|
sdkVersion: __version__
|
|
@@ -1950,35 +1969,47 @@ var HttpClient = class {
|
|
|
1950
1969
|
delete body[DECLARED_NODE_FIELD];
|
|
1951
1970
|
this.getTraceTransport()?.submit("external_span", body, this.recordedMeta("external_span", payload, carrierRef(payload)));
|
|
1952
1971
|
}
|
|
1953
|
-
|
|
1972
|
+
sendTracePayload(rawPayload) {
|
|
1954
1973
|
const payload = mergeCallerMetadataIntoTracePayload(rawPayload);
|
|
1955
1974
|
const traceId = sourceTraceIdOf(payload);
|
|
1956
1975
|
if (payload.completed === true && traceId !== void 0) {
|
|
1957
|
-
this.traceCompletion.close(traceId, (expectedSpanCount) => this.
|
|
1976
|
+
this.traceCompletion.close(traceId, (expectedSpanCount) => this.sendCountedTracePayload({
|
|
1958
1977
|
...payload,
|
|
1959
1978
|
expectedSpanCount
|
|
1960
1979
|
}), payload.dropped === true);
|
|
1961
1980
|
return;
|
|
1962
1981
|
}
|
|
1963
1982
|
if (traceId !== void 0) this.traceCompletion.open(traceId);
|
|
1964
|
-
this.
|
|
1983
|
+
this.sendCountedTracePayload(payload);
|
|
1965
1984
|
}
|
|
1966
|
-
|
|
1985
|
+
sendCountedTracePayload(payload) {
|
|
1967
1986
|
try {
|
|
1968
|
-
const gate = this.
|
|
1969
|
-
if (gate === void 0) this.
|
|
1970
|
-
else gate(payload, (ready) => this.
|
|
1987
|
+
const gate = this.tracePayloadTransform;
|
|
1988
|
+
if (gate === void 0) this.submitTracePayload(payload);
|
|
1989
|
+
else gate(payload, (ready) => this.submitTracePayload(ready));
|
|
1971
1990
|
} catch (error) {
|
|
1972
|
-
|
|
1991
|
+
warnDroppedTrace(error);
|
|
1973
1992
|
}
|
|
1974
1993
|
}
|
|
1975
|
-
|
|
1994
|
+
submitTracePayload(payload) {
|
|
1976
1995
|
this.getTraceTransport()?.submit("external_trace", {
|
|
1977
1996
|
...payload,
|
|
1978
1997
|
sdkPackage: __packageName__,
|
|
1979
1998
|
sdkVersion: __version__
|
|
1980
1999
|
}, this.recordedMeta("external_trace", payload, payload.completed === true ? carrierRef(payload) : void 0));
|
|
1981
2000
|
}
|
|
2001
|
+
sendExternalSpan(payload) {
|
|
2002
|
+
this.sendSpanPayload(payload);
|
|
2003
|
+
}
|
|
2004
|
+
submitExternalSpan(payload) {
|
|
2005
|
+
this.submitSpanPayload(payload);
|
|
2006
|
+
}
|
|
2007
|
+
sendExternalTrace(rawPayload) {
|
|
2008
|
+
this.sendTracePayload(rawPayload);
|
|
2009
|
+
}
|
|
2010
|
+
submitExternalTrace(payload) {
|
|
2011
|
+
this.submitTracePayload(payload);
|
|
2012
|
+
}
|
|
1982
2013
|
async patchTrace(traceId, payload) {
|
|
1983
2014
|
const endpoint = `/api/sdk/traces/${encodeURIComponent(traceId)}`;
|
|
1984
2015
|
await this.request(endpoint, payload, { method: "PATCH" });
|
|
@@ -2058,9 +2089,9 @@ var HttpClient = class {
|
|
|
2058
2089
|
dbBranchSettings: rest.dbBranchSettings ?? null
|
|
2059
2090
|
};
|
|
2060
2091
|
}
|
|
2061
|
-
async
|
|
2092
|
+
async getSpanRaw(spanId, options) {
|
|
2062
2093
|
const query = options?.view === "replay" ? "?view=replay" : "";
|
|
2063
|
-
const url = `${this.serviceUrl}/api/sdk/
|
|
2094
|
+
const url = `${this.serviceUrl}/api/sdk/spans/${spanId}/raw${query}`;
|
|
2064
2095
|
const controller = new AbortController();
|
|
2065
2096
|
const timeoutId = setTimeout(() => controller.abort(), 3e4);
|
|
2066
2097
|
try {
|
|
@@ -2085,13 +2116,16 @@ var HttpClient = class {
|
|
|
2085
2116
|
clearTimeout(timeoutId);
|
|
2086
2117
|
}
|
|
2087
2118
|
}
|
|
2088
|
-
|
|
2119
|
+
getExternalSpan(spanId, options) {
|
|
2120
|
+
return this.getSpanRaw(spanId, options);
|
|
2121
|
+
}
|
|
2122
|
+
async getSpanTree(spanId, options) {
|
|
2089
2123
|
const searchParams = new URLSearchParams();
|
|
2090
2124
|
if (options?.includeOutputs === false) searchParams.set("includeOutputs", "false");
|
|
2091
2125
|
if (options?.includeRootOutput === false) searchParams.set("includeRootOutput", "false");
|
|
2092
2126
|
const encodedQuery = searchParams.toString();
|
|
2093
2127
|
const query = encodedQuery ? `?${encodedQuery}` : "";
|
|
2094
|
-
const url = `${this.serviceUrl}/api/sdk/replay/spanTree/${
|
|
2128
|
+
const url = `${this.serviceUrl}/api/sdk/replay/spanTree/${spanId}${query}`;
|
|
2095
2129
|
const controller = new AbortController();
|
|
2096
2130
|
const timeoutId = setTimeout(() => controller.abort(), 3e4);
|
|
2097
2131
|
try {
|
|
@@ -2320,4 +2354,4 @@ Object.defineProperty(exports, "unrefTimer", {
|
|
|
2320
2354
|
}
|
|
2321
2355
|
});
|
|
2322
2356
|
|
|
2323
|
-
//# sourceMappingURL=http-
|
|
2357
|
+
//# sourceMappingURL=http-sX8XbCY8.cjs.map
|