@bitfab/sdk 0.74.5 → 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.
@@ -5,7 +5,7 @@ import { ExportResultCode } from "@opentelemetry/core";
5
5
  import { resourceFromAttributes } from "@opentelemetry/resources";
6
6
  import { AlwaysOnSampler, BatchSpanProcessor, TracerProvider } from "@opentelemetry/sdk-trace";
7
7
  //#region src/version.generated.ts
8
- const __version__ = "0.74.5";
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
  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 externalTrace = payload.externalTrace;
1019
- if (typeof externalTrace !== "object" || externalTrace === null) return payload;
1020
- const external = externalTrace;
1021
- const traceId = typeof payload.id === "string" && payload.id !== "" ? payload.id : external.id;
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 = external.metadata;
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
- externalTrace: {
1031
- ...external,
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 releaseHeldExternalSpans(timeoutMs) {
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.releaseHeldExternalSpans?.(Math.max(0, deadline - Date.now())) !== false && released;
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 releaseHeldExternalSpans(planWaitSliceMs(timeoutMs));
1546
+ const released = await releaseHeldSpans(planWaitSliceMs(timeoutMs));
1546
1547
  const requestsFlushed = await awaitPendingRequests(Math.max(0, deadline - Date.now()));
1547
- const releasedAfterDeferred = await releaseHeldExternalSpans(0);
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
- releaseHeldExternalSpans(planWaitMs).catch(() => {}).then(() => {
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.externalTrace) ?? asPayloadRecord(payload.rawTrace);
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.externalTrace ?? payload.rawTrace)?.id;
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 warnDroppedExternalSpan(error) {
1664
- warnOnce("external-span-dropped", `a span was dropped because the send step failed: ${describeError(error)}`);
1664
+ function warnDroppedSpan(error) {
1665
+ warnOnce("span-dropped", `a span was dropped because the send step failed: ${describeError(error)}`);
1665
1666
  }
1666
- function warnDroppedExternalTrace(error) {
1667
- warnOnce("external-trace-dropped", `a trace was dropped because the send step failed: ${describeError(error)}`);
1667
+ function warnDroppedTrace(error) {
1668
+ 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.releaseHeldExternalSpans?.(planWaitSliceMs(timeoutMs));
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.releaseHeldExternalSpans?.(0);
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.externalSpanTransform = void 0;
1805
- this.externalTraceTransform = void 0;
1806
- this.releaseHeldExternalSpans = void 0;
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
- sendExternalSpan(payload) {
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.externalSpanTransform;
1951
+ const gate = this.spanPayloadTransform;
1933
1952
  if (gate === void 0) {
1934
- this.submitExternalSpan(payload);
1953
+ this.submitSpanPayload(payload);
1935
1954
  return;
1936
1955
  }
1937
1956
  try {
1938
- gate(payload, (ready) => this.submitExternalSpan(ready), drop);
1957
+ gate(payload, (ready) => this.submitSpanPayload(ready), drop);
1939
1958
  } catch (error) {
1940
1959
  drop();
1941
- warnDroppedExternalSpan(error);
1960
+ warnDroppedSpan(error);
1942
1961
  }
1943
1962
  }
1944
- submitExternalSpan(payload) {
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
- sendExternalTrace(rawPayload) {
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.sendCountedExternalTrace({
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.sendCountedExternalTrace(payload);
1983
+ this.sendCountedTracePayload(payload);
1965
1984
  }
1966
- sendCountedExternalTrace(payload) {
1985
+ sendCountedTracePayload(payload) {
1967
1986
  try {
1968
- const gate = this.externalTraceTransform;
1969
- if (gate === void 0) this.submitExternalTrace(payload);
1970
- else gate(payload, (ready) => this.submitExternalTrace(ready));
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
- warnDroppedExternalTrace(error);
1991
+ warnDroppedTrace(error);
1973
1992
  }
1974
1993
  }
1975
- submitExternalTrace(payload) {
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 getExternalSpan(spanId, options) {
2092
+ async getSpanRaw(spanId, options) {
2062
2093
  const query = options?.view === "replay" ? "?view=replay" : "";
2063
- const url = `${this.serviceUrl}/api/sdk/externalSpans/${spanId}${query}`;
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
- async getSpanTree(externalSpanId, options) {
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/${externalSpanId}${query}`;
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 {
@@ -2165,4 +2199,4 @@ function experimentIdWireFields(experimentId) {
2165
2199
  //#endregion
2166
2200
  export { BitfabError as C, __version__ as E, gitRunner as S, readEnv as T, MAX_SPAN_CARRIER_BYTES as _, http_exports as a, replayContextReady as b, recordCallerTraceMetadata as c, DECLARED_NODE_FIELD as d, ROOT_TRACE_FUNCTION_KEY_FIELD as f, MAX_COMPRESSIBLE_SPAN_CARRIER_BYTES as g, makeSpanOrigin as h, flushTraces as i, retireTraceMetadata as l, isFrameworkInstrumentation as m, SPAN_TYPES as n, unrefTimer as o, SimulationPlan as p, experimentIdWireFields as r, callerTraceMetadata as s, HttpClient as t, CONTENT_OFF_KEY as u, byteLength as v, MixedTracingError as w, runWithReplayContext as x, getReplayContext as y };
2167
2201
 
2168
- //# sourceMappingURL=http-C_t7m9b_.js.map
2202
+ //# sourceMappingURL=http-CDFhg9aQ.js.map