@temporalio/interceptors-opentelemetry 1.14.2 → 1.15.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.
Files changed (50) hide show
  1. package/lib/client/index.js +11 -11
  2. package/lib/client/index.js.map +1 -1
  3. package/lib/index.d.ts +1 -0
  4. package/lib/index.js +1 -0
  5. package/lib/index.js.map +1 -1
  6. package/lib/plugin.d.ts +31 -0
  7. package/lib/plugin.js +60 -0
  8. package/lib/plugin.js.map +1 -0
  9. package/lib/worker/index.d.ts +11 -3
  10. package/lib/worker/index.js +21 -9
  11. package/lib/worker/index.js.map +1 -1
  12. package/lib/workflow/context-manager.d.ts +2 -2
  13. package/lib/workflow/context-manager.js +2 -9
  14. package/lib/workflow/context-manager.js.map +1 -1
  15. package/lib/workflow/definitions.d.ts +8 -2
  16. package/lib/workflow/definitions.js.map +1 -1
  17. package/lib/workflow/index.d.ts +0 -2
  18. package/lib/workflow/index.js +17 -26
  19. package/lib/workflow/index.js.map +1 -1
  20. package/lib/workflow/runtime.js +2 -3
  21. package/lib/workflow/runtime.js.map +1 -1
  22. package/lib/workflow/span-exporter.d.ts +1 -1
  23. package/lib/workflow/span-exporter.js +15 -7
  24. package/lib/workflow/span-exporter.js.map +1 -1
  25. package/lib/workflow/workflow-imports-impl.d.ts +9 -0
  26. package/lib/workflow/workflow-imports-impl.js +20 -0
  27. package/lib/workflow/workflow-imports-impl.js.map +1 -0
  28. package/lib/workflow/workflow-imports.d.ts +19 -0
  29. package/lib/workflow/workflow-imports.js +26 -0
  30. package/lib/workflow/workflow-imports.js.map +1 -0
  31. package/lib/workflow-interceptors.d.ts +3 -0
  32. package/lib/workflow-interceptors.js +12 -0
  33. package/lib/workflow-interceptors.js.map +1 -0
  34. package/package.json +11 -10
  35. package/src/client/index.ts +1 -1
  36. package/src/index.ts +1 -0
  37. package/src/plugin.ts +77 -0
  38. package/src/worker/index.ts +46 -6
  39. package/src/workflow/context-manager.ts +7 -14
  40. package/src/workflow/definitions.ts +9 -4
  41. package/src/workflow/index.ts +14 -26
  42. package/src/workflow/runtime.ts +2 -4
  43. package/src/workflow/span-exporter.ts +16 -9
  44. package/src/workflow/workflow-imports-impl.ts +9 -0
  45. package/src/workflow/workflow-imports.ts +42 -0
  46. package/src/workflow-interceptors.ts +14 -0
  47. package/lib/workflow/workflow-module-loader.d.ts +0 -28
  48. package/lib/workflow/workflow-module-loader.js +0 -56
  49. package/lib/workflow/workflow-module-loader.js.map +0 -1
  50. package/src/workflow/workflow-module-loader.ts +0 -64
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.OpenTelemetryWorkflowClientInterceptor = void 0;
27
27
  const otel = __importStar(require("@opentelemetry/api"));
28
28
  const instrumentation_1 = require("../instrumentation");
29
- const workflow_1 = require("../workflow");
29
+ const definitions_1 = require("../workflow/definitions");
30
30
  /**
31
31
  * Intercepts calls to start a Workflow.
32
32
  *
@@ -40,7 +40,7 @@ class OpenTelemetryWorkflowClientInterceptor {
40
40
  async start(input, next) {
41
41
  return await (0, instrumentation_1.instrument)({
42
42
  tracer: this.tracer,
43
- spanName: `${workflow_1.SpanName.WORKFLOW_START}${workflow_1.SPAN_DELIMITER}${input.workflowType}`,
43
+ spanName: `${definitions_1.SpanName.WORKFLOW_START}${definitions_1.SPAN_DELIMITER}${input.workflowType}`,
44
44
  fn: async (span) => {
45
45
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
46
46
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.options.workflowId);
@@ -53,7 +53,7 @@ class OpenTelemetryWorkflowClientInterceptor {
53
53
  async signal(input, next) {
54
54
  return await (0, instrumentation_1.instrument)({
55
55
  tracer: this.tracer,
56
- spanName: `${workflow_1.SpanName.WORKFLOW_SIGNAL}${workflow_1.SPAN_DELIMITER}${input.signalName}`,
56
+ spanName: `${definitions_1.SpanName.WORKFLOW_SIGNAL}${definitions_1.SPAN_DELIMITER}${input.signalName}`,
57
57
  fn: async (span) => {
58
58
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.workflowExecution.workflowId);
59
59
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
@@ -64,7 +64,7 @@ class OpenTelemetryWorkflowClientInterceptor {
64
64
  async startWithDetails(input, next) {
65
65
  return await (0, instrumentation_1.instrument)({
66
66
  tracer: this.tracer,
67
- spanName: `${workflow_1.SpanName.WORKFLOW_START}${workflow_1.SPAN_DELIMITER}${input.workflowType}`,
67
+ spanName: `${definitions_1.SpanName.WORKFLOW_START}${definitions_1.SPAN_DELIMITER}${input.workflowType}`,
68
68
  fn: async (span) => {
69
69
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
70
70
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.options.workflowId);
@@ -77,7 +77,7 @@ class OpenTelemetryWorkflowClientInterceptor {
77
77
  async startUpdate(input, next) {
78
78
  return await (0, instrumentation_1.instrument)({
79
79
  tracer: this.tracer,
80
- spanName: `${workflow_1.SpanName.WORKFLOW_START_UPDATE}${workflow_1.SPAN_DELIMITER}${input.updateName}`,
80
+ spanName: `${definitions_1.SpanName.WORKFLOW_START_UPDATE}${definitions_1.SPAN_DELIMITER}${input.updateName}`,
81
81
  fn: async (span) => {
82
82
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.workflowExecution.workflowId);
83
83
  if (input.options.updateId) {
@@ -93,7 +93,7 @@ class OpenTelemetryWorkflowClientInterceptor {
93
93
  async startUpdateWithStart(input, next) {
94
94
  return await (0, instrumentation_1.instrument)({
95
95
  tracer: this.tracer,
96
- spanName: `${workflow_1.SpanName.WORKFLOW_UPDATE_WITH_START}${workflow_1.SPAN_DELIMITER}${input.updateName}`,
96
+ spanName: `${definitions_1.SpanName.WORKFLOW_UPDATE_WITH_START}${definitions_1.SPAN_DELIMITER}${input.updateName}`,
97
97
  fn: async (span) => {
98
98
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.workflowStartOptions.workflowId);
99
99
  if (input.updateOptions.updateId) {
@@ -112,7 +112,7 @@ class OpenTelemetryWorkflowClientInterceptor {
112
112
  async signalWithStart(input, next) {
113
113
  return await (0, instrumentation_1.instrument)({
114
114
  tracer: this.tracer,
115
- spanName: `${workflow_1.SpanName.WORKFLOW_SIGNAL_WITH_START}${workflow_1.SPAN_DELIMITER}${input.workflowType}`,
115
+ spanName: `${definitions_1.SpanName.WORKFLOW_SIGNAL_WITH_START}${definitions_1.SPAN_DELIMITER}${input.workflowType}`,
116
116
  fn: async (span) => {
117
117
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.options.workflowId);
118
118
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
@@ -125,7 +125,7 @@ class OpenTelemetryWorkflowClientInterceptor {
125
125
  async query(input, next) {
126
126
  return await (0, instrumentation_1.instrument)({
127
127
  tracer: this.tracer,
128
- spanName: `${workflow_1.SpanName.WORKFLOW_QUERY}${workflow_1.SPAN_DELIMITER}${input.queryType}`,
128
+ spanName: `${definitions_1.SpanName.WORKFLOW_QUERY}${definitions_1.SPAN_DELIMITER}${input.queryType}`,
129
129
  fn: async (span) => {
130
130
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
131
131
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.workflowExecution.workflowId);
@@ -139,7 +139,7 @@ class OpenTelemetryWorkflowClientInterceptor {
139
139
  async terminate(input, next) {
140
140
  return await (0, instrumentation_1.instrument)({
141
141
  tracer: this.tracer,
142
- spanName: workflow_1.SpanName.WORKFLOW_TERMINATE,
142
+ spanName: definitions_1.SpanName.WORKFLOW_TERMINATE,
143
143
  fn: async (span) => {
144
144
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.workflowExecution.workflowId);
145
145
  if (input.workflowExecution.runId) {
@@ -155,7 +155,7 @@ class OpenTelemetryWorkflowClientInterceptor {
155
155
  async cancel(input, next) {
156
156
  return await (0, instrumentation_1.instrument)({
157
157
  tracer: this.tracer,
158
- spanName: workflow_1.SpanName.WORKFLOW_CANCEL,
158
+ spanName: definitions_1.SpanName.WORKFLOW_CANCEL,
159
159
  fn: async (span) => {
160
160
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.workflowExecution.workflowId);
161
161
  if (input.workflowExecution.runId) {
@@ -168,7 +168,7 @@ class OpenTelemetryWorkflowClientInterceptor {
168
168
  async describe(input, next) {
169
169
  return await (0, instrumentation_1.instrument)({
170
170
  tracer: this.tracer,
171
- spanName: workflow_1.SpanName.WORKFLOW_DESCRIBE,
171
+ spanName: definitions_1.SpanName.WORKFLOW_DESCRIBE,
172
172
  fn: async (span) => {
173
173
  span.setAttribute(instrumentation_1.WORKFLOW_ID_ATTR_KEY, input.workflowExecution.workflowId);
174
174
  if (input.workflowExecution.runId) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * @module
9
9
  */
10
+ export * from './plugin';
10
11
  export * from './workflow';
11
12
  export * from './worker';
12
13
  export { OpenTelemetryWorkflowClientInterceptor,
package/lib/index.js CHANGED
@@ -24,6 +24,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.OpenTelemetryWorkflowClientCallsInterceptor = exports.OpenTelemetryWorkflowClientInterceptor = void 0;
27
+ __exportStar(require("./plugin"), exports);
27
28
  __exportStar(require("./workflow"), exports);
28
29
  __exportStar(require("./worker"), exports);
29
30
  var client_1 = require("./client");
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;AAEH,6CAA2B;AAC3B,2CAAyB;AACzB,mCAIkB;AAHhB,gIAAA,sCAAsC,OAAA;AACtC,qEAAqE;AACrE,qIAAA,sCAAsC,OAA+C"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;AAEH,2CAAyB;AACzB,6CAA2B;AAC3B,2CAAyB;AACzB,mCAIkB;AAHhB,gIAAA,sCAAsC,OAAA;AACtC,qEAAqE;AACrE,qIAAA,sCAAsC,OAA+C"}
@@ -0,0 +1,31 @@
1
+ import { SpanProcessor } from '@opentelemetry/sdk-trace-base';
2
+ import { Resource } from '@opentelemetry/resources';
3
+ import { SimplePlugin } from '@temporalio/plugin';
4
+ import { ReplayWorkerOptions, WorkerOptions } from '@temporalio/worker';
5
+ import { InterceptorOptions } from './client';
6
+ /**
7
+ * Configuration options for {@link OpenTelemetryPlugin}.
8
+ *
9
+ * @experimental Plugins is an experimental feature; APIs may change without notice.
10
+ */
11
+ export interface OpenTelemetryPluginOptions extends InterceptorOptions {
12
+ /** OpenTelemetry resource attributes to attach to exported spans */
13
+ readonly resource: Resource;
14
+ /** Exporter used to send spans to a tracing backend */
15
+ readonly spanProcessor: SpanProcessor;
16
+ }
17
+ /**
18
+ * A plugin that adds OpenTelemetry tracing.
19
+ *
20
+ * Configures Client, Activity, and Workflow interceptors for trace propagation and injects
21
+ * a span exporter sink for Workflow spans.
22
+ *
23
+ * @experimental Plugins is an experimental feature; APIs may change without notice.
24
+ */
25
+ export declare class OpenTelemetryPlugin extends SimplePlugin {
26
+ readonly otelOptions: OpenTelemetryPluginOptions;
27
+ constructor(otelOptions: OpenTelemetryPluginOptions);
28
+ configureWorker(options: WorkerOptions): WorkerOptions;
29
+ configureReplayWorker(options: ReplayWorkerOptions): ReplayWorkerOptions;
30
+ private injectSinks;
31
+ }
package/lib/plugin.js ADDED
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenTelemetryPlugin = void 0;
4
+ const plugin_1 = require("@temporalio/plugin");
5
+ const client_1 = require("./client");
6
+ const worker_1 = require("./worker");
7
+ /**
8
+ * A plugin that adds OpenTelemetry tracing.
9
+ *
10
+ * Configures Client, Activity, and Workflow interceptors for trace propagation and injects
11
+ * a span exporter sink for Workflow spans.
12
+ *
13
+ * @experimental Plugins is an experimental feature; APIs may change without notice.
14
+ */
15
+ class OpenTelemetryPlugin extends plugin_1.SimplePlugin {
16
+ otelOptions;
17
+ constructor(otelOptions) {
18
+ const workflowInterceptorsPath = require.resolve('./workflow-interceptors');
19
+ const interceptorOptions = otelOptions.tracer ? { tracer: otelOptions.tracer } : {};
20
+ super({
21
+ name: 'OpenTelemetryPlugin',
22
+ clientInterceptors: {
23
+ workflow: [new client_1.OpenTelemetryWorkflowClientInterceptor(interceptorOptions)],
24
+ },
25
+ workerInterceptors: {
26
+ client: {
27
+ workflow: [new client_1.OpenTelemetryWorkflowClientInterceptor(interceptorOptions)],
28
+ },
29
+ workflowModules: [workflowInterceptorsPath],
30
+ activity: [
31
+ (ctx) => ({
32
+ inbound: new worker_1.OpenTelemetryActivityInboundInterceptor(ctx, interceptorOptions),
33
+ outbound: new worker_1.OpenTelemetryActivityOutboundInterceptor(ctx),
34
+ }),
35
+ ],
36
+ },
37
+ });
38
+ this.otelOptions = otelOptions;
39
+ }
40
+ configureWorker(options) {
41
+ return super.configureWorker(this.injectSinks(options));
42
+ }
43
+ configureReplayWorker(options) {
44
+ return super.configureReplayWorker(this.injectSinks(options));
45
+ }
46
+ injectSinks(options) {
47
+ const sinks = {
48
+ exporter: (0, worker_1.makeWorkflowExporter)(this.otelOptions.spanProcessor, this.otelOptions.resource),
49
+ };
50
+ return {
51
+ ...options,
52
+ sinks: {
53
+ ...options.sinks,
54
+ ...sinks,
55
+ },
56
+ };
57
+ }
58
+ }
59
+ exports.OpenTelemetryPlugin = OpenTelemetryPlugin;
60
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":";;;AAEA,+CAAkD;AAElD,qCAAsF;AACtF,qCAIkB;AAelB;;;;;;;GAOG;AACH,MAAa,mBAAoB,SAAQ,qBAAY;IAC9B;IAArB,YAAqB,WAAuC;QAC1D,MAAM,wBAAwB,GAAG,OAAO,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;QAC5E,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACpF,KAAK,CAAC;YACJ,IAAI,EAAE,qBAAqB;YAC3B,kBAAkB,EAAE;gBAClB,QAAQ,EAAE,CAAC,IAAI,+CAAsC,CAAC,kBAAkB,CAAC,CAAC;aAC3E;YACD,kBAAkB,EAAE;gBAClB,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,IAAI,+CAAsC,CAAC,kBAAkB,CAAC,CAAC;iBAC3E;gBACD,eAAe,EAAE,CAAC,wBAAwB,CAAC;gBAC3C,QAAQ,EAAE;oBACR,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;wBACR,OAAO,EAAE,IAAI,gDAAuC,CAAC,GAAG,EAAE,kBAAkB,CAAC;wBAC7E,QAAQ,EAAE,IAAI,iDAAwC,CAAC,GAAG,CAAC;qBAC5D,CAAC;iBACH;aACF;SACF,CAAC,CAAC;QApBgB,gBAAW,GAAX,WAAW,CAA4B;IAqB5D,CAAC;IAED,eAAe,CAAC,OAAsB;QACpC,OAAO,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,qBAAqB,CAAC,OAA4B;QAChD,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,WAAW,CAA2C,OAAU;QACtE,MAAM,KAAK,GAAsC;YAC/C,QAAQ,EAAE,IAAA,6BAAoB,EAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;SAC1F,CAAC;QACF,OAAO;YACL,GAAG,OAAO;YACV,KAAK,EAAE;gBACL,GAAG,OAAO,CAAC,KAAK;gBAChB,GAAG,KAAK;aACT;SACF,CAAC;IACJ,CAAC;CACF;AA5CD,kDA4CC"}
@@ -1,9 +1,9 @@
1
1
  import * as otel from '@opentelemetry/api';
2
2
  import type { Resource } from '@opentelemetry/resources';
3
- import type { SpanExporter } from '@opentelemetry/sdk-trace-base';
3
+ import type { SpanExporter, SpanProcessor } from '@opentelemetry/sdk-trace-base';
4
4
  import type { Context as ActivityContext } from '@temporalio/activity';
5
5
  import type { Next, ActivityInboundCallsInterceptor, ActivityOutboundCallsInterceptor, InjectedSink, GetLogAttributesInput, GetMetricTagsInput, ActivityExecuteInput } from '@temporalio/worker';
6
- import { type OpenTelemetryWorkflowExporter } from '../workflow';
6
+ import { type OpenTelemetryWorkflowExporter } from '../workflow/definitions';
7
7
  export interface InterceptorOptions {
8
8
  readonly tracer?: otel.Tracer;
9
9
  }
@@ -32,5 +32,13 @@ export declare class OpenTelemetryActivityOutboundInterceptor implements Activit
32
32
  }
33
33
  /**
34
34
  * Takes an opentelemetry SpanExporter and turns it into an injected Workflow span exporter sink
35
+ *
36
+ * @deprecated Do not directly pass a `SpanExporter`. Pass a `SpanProcessor` instead to ensure proper handling of async attributes.
37
+ */
38
+ export declare function makeWorkflowExporter(spanExporter: SpanExporter, resource: Resource): InjectedSink<OpenTelemetryWorkflowExporter>;
39
+ /**
40
+ * Takes an opentelemetry SpanProcessor and turns it into an injected Workflow span exporter sink.
41
+ *
42
+ * For backward compatibility, passing a `SpanExporter` directly is still supported.
35
43
  */
36
- export declare function makeWorkflowExporter(exporter: SpanExporter, resource: Resource): InjectedSink<OpenTelemetryWorkflowExporter>;
44
+ export declare function makeWorkflowExporter(spanProcessor: SpanProcessor, resource: Resource): InjectedSink<OpenTelemetryWorkflowExporter>;
@@ -26,8 +26,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.OpenTelemetryActivityOutboundInterceptor = exports.OpenTelemetryActivityInboundInterceptor = void 0;
27
27
  exports.makeWorkflowExporter = makeWorkflowExporter;
28
28
  const otel = __importStar(require("@opentelemetry/api"));
29
+ const api_1 = require("@opentelemetry/api");
29
30
  const instrumentation_1 = require("../instrumentation");
30
- const workflow_1 = require("../workflow");
31
+ const definitions_1 = require("../workflow/definitions");
31
32
  /**
32
33
  * Intercepts calls to start an Activity.
33
34
  *
@@ -43,7 +44,7 @@ class OpenTelemetryActivityInboundInterceptor {
43
44
  }
44
45
  async execute(input, next) {
45
46
  const context = (0, instrumentation_1.extractContextFromHeaders)(input.headers);
46
- const spanName = `${workflow_1.SpanName.ACTIVITY_EXECUTE}${workflow_1.SPAN_DELIMITER}${this.ctx.info.activityType}`;
47
+ const spanName = `${definitions_1.SpanName.ACTIVITY_EXECUTE}${definitions_1.SPAN_DELIMITER}${this.ctx.info.activityType}`;
47
48
  return await (0, instrumentation_1.instrument)({
48
49
  tracer: this.tracer,
49
50
  spanName,
@@ -100,10 +101,8 @@ class OpenTelemetryActivityOutboundInterceptor {
100
101
  }
101
102
  }
102
103
  exports.OpenTelemetryActivityOutboundInterceptor = OpenTelemetryActivityOutboundInterceptor;
103
- /**
104
- * Takes an opentelemetry SpanExporter and turns it into an injected Workflow span exporter sink
105
- */
106
- function makeWorkflowExporter(exporter, resource) {
104
+ function makeWorkflowExporter(processorOrExporter, resource) {
105
+ const givenSpanProcessor = isSpanProcessor(processorOrExporter);
107
106
  return {
108
107
  export: {
109
108
  fn: (info, spanData) => {
@@ -112,17 +111,30 @@ function makeWorkflowExporter(exporter, resource) {
112
111
  // Spans are copied over from the isolate and are converted to ReadableSpan instances
113
112
  return extractReadableSpan(serialized, resource);
114
113
  });
115
- // Ignore the export result for simplicity
116
- exporter.export(spans, () => undefined);
114
+ if (givenSpanProcessor) {
115
+ spans.forEach((span) => processorOrExporter.onEnd(span));
116
+ }
117
+ else {
118
+ // Ignore the export result for simplicity
119
+ processorOrExporter.export(spans, () => undefined);
120
+ }
117
121
  },
118
122
  },
119
123
  };
120
124
  }
125
+ function isSpanProcessor(obj) {
126
+ return 'onEnd' in obj && typeof obj.onEnd === 'function';
127
+ }
121
128
  /**
122
129
  * Deserialize a serialized span created by the Workflow isolate
123
130
  */
124
131
  function extractReadableSpan(serializable, resource) {
125
- const { spanContext, ...rest } = serializable;
132
+ const { spanContext: { traceState, ...restSpanContext }, ...rest } = serializable;
133
+ const spanContext = {
134
+ // Reconstruct the TraceState from the serialized string.
135
+ traceState: traceState ? (0, api_1.createTraceState)(traceState) : undefined,
136
+ ...restSpanContext,
137
+ };
126
138
  return {
127
139
  spanContext() {
128
140
  return spanContext;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/worker/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
+ import { type AsyncLocalStorage } from 'async_hooks';
1
2
  import * as otel from '@opentelemetry/api';
2
3
  export declare class ContextManager implements otel.ContextManager {
3
- protected storage: import("async_hooks").AsyncLocalStorage<otel.Context> | undefined;
4
- constructor();
4
+ protected storage: AsyncLocalStorage<otel.Context>;
5
5
  active(): otel.Context;
6
6
  bind<T>(context: otel.Context, target: T): T;
7
7
  enable(): this;
@@ -25,15 +25,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.ContextManager = void 0;
27
27
  const otel = __importStar(require("@opentelemetry/api"));
28
- const workflow_module_loader_1 = require("./workflow-module-loader");
29
- const AsyncLocalStorage = (0, workflow_module_loader_1.getWorkflowModuleIfAvailable)()?.AsyncLocalStorage;
30
28
  class ContextManager {
31
- // If `@temporalio/workflow` is not available, ignore for now.
32
- // When ContextManager is constructed module resolution error will be thrown.
33
- storage = AsyncLocalStorage ? new AsyncLocalStorage() : undefined;
34
- constructor() {
35
- (0, workflow_module_loader_1.ensureWorkflowModuleLoaded)();
36
- }
29
+ // The workflow sandbox provides AsyncLocalStorage through globalThis.
30
+ storage = new globalThis.AsyncLocalStorage();
37
31
  active() {
38
32
  return this.storage.getStore() || otel.ROOT_CONTEXT;
39
33
  }
@@ -55,7 +49,6 @@ class ContextManager {
55
49
  * It isn't possible to tell Typescript that contextWrapper is the same as T
56
50
  * so we forced to cast as any here.
57
51
  */
58
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
59
52
  return contextWrapper;
60
53
  }
61
54
  enable() {
@@ -1 +1 @@
1
- {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/workflow/context-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAA2C;AAC3C,qEAAoG;AAEpG,MAAM,iBAAiB,GAAG,IAAA,qDAA4B,GAAE,EAAE,iBAAiB,CAAC;AAE5E,MAAa,cAAc;IACzB,8DAA8D;IAC9D,6EAA6E;IACnE,OAAO,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAE1F;QACE,IAAA,mDAA0B,GAAE,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAQ,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACvD,CAAC;IAED,IAAI,CAAI,OAAqB,EAAE,MAAS;QACtC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,2CAA2C,OAAO,MAAM,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,8JAA8J;QAC9J,MAAM,cAAc,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE;YAC9C,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;QACH;;;WAGG;QACH,8DAA8D;QAC9D,OAAO,cAAqB,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAQ,CAAC,OAAO,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,OAAqB,EACrB,EAAK,EACL,OAA8B,EAC9B,GAAG,IAAO;QAEV,MAAM,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,CAAC;CACF;AAtDD,wCAsDC"}
1
+ {"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/workflow/context-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yDAA2C;AAE3C,MAAa,cAAc;IACzB,sEAAsE;IAC5D,OAAO,GAAoC,IAAK,UAAkB,CAAC,iBAAiB,EAAE,CAAC;IAEjG,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IACtD,CAAC;IAED,IAAI,CAAI,OAAqB,EAAE,MAAS;QACtC,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,IAAI,SAAS,CAAC,2CAA2C,OAAO,MAAM,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,8JAA8J;QAC9J,MAAM,cAAc,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,QAAQ,EAAE;YAC9C,UAAU,EAAE,KAAK;YACjB,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAC;QACH;;;WAGG;QAEH,OAAO,cAAqB,CAAC;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CACF,OAAqB,EACrB,EAAK,EACL,OAA8B,EAC9B,GAAG,IAAO;QAEV,MAAM,EAAE,GAAG,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAChD,CAAC;CACF;AAjDD,wCAiDC"}
@@ -1,14 +1,20 @@
1
1
  import * as otel from '@opentelemetry/api';
2
2
  import * as tracing from '@opentelemetry/sdk-trace-base';
3
3
  import { InstrumentationLibrary } from '@opentelemetry/core';
4
- import { Sink, Sinks } from '@temporalio/workflow';
4
+ import type { Sink, Sinks } from '@temporalio/workflow';
5
+ /**
6
+ * Serializable version of SpanContext where traceState is converted to a string.
7
+ */
8
+ export type SerializableSpanContext = Omit<otel.SpanContext, 'traceState'> & {
9
+ traceState?: string;
10
+ };
5
11
  /**
6
12
  * Serializable version of the opentelemetry Span for cross isolate copying
7
13
  */
8
14
  export interface SerializableSpan {
9
15
  readonly name: string;
10
16
  readonly kind: otel.SpanKind;
11
- readonly spanContext: otel.SpanContext;
17
+ readonly spanContext: SerializableSpanContext;
12
18
  readonly parentSpanId?: string;
13
19
  readonly startTime: otel.HrTime;
14
20
  readonly endTime: otel.HrTime;
@@ -1 +1 @@
1
- {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/workflow/definitions.ts"],"names":[],"mappings":";;;AAwCA,IAAY,QA0FX;AA1FD,WAAY,QAAQ;IAClB;;OAEG;IACH,4CAAgC,CAAA;IAEhC;;OAEG;IACH,8CAAkC,CAAA;IAElC;;OAEG;IACH,kEAAsD,CAAA;IAEtD;;OAEG;IACH,4CAAgC,CAAA;IAEhC;;OAEG;IACH,yDAA6C,CAAA;IAE7C;;OAEG;IACH,kEAAsD,CAAA;IAEtD;;OAEG;IACH,mDAAuC,CAAA;IAEvC;;OAEG;IACH,iDAAqC,CAAA;IAErC;;OAEG;IACH,mDAAuC,CAAA;IAEvC;;OAEG;IACH,uDAA2C,CAAA;IAE3C;;OAEG;IACH,oDAAwC,CAAA;IAExC;;OAEG;IACH,8CAAkC,CAAA;IAElC;;OAEG;IACH,kDAAsC,CAAA;IAEtC;;OAEG;IACH,4CAAgC,CAAA;IAChC;;OAEG;IACH,uDAA2C,CAAA;IAC3C;;OAEG;IACH,4CAAgC,CAAA;IAChC;;OAEG;IACH,4CAAgC,CAAA;IAChC;;OAEG;IACH,6CAAiC,CAAA;IACjC;;OAEG;IACH,yDAA6C,CAAA;AAC/C,CAAC,EA1FW,QAAQ,wBAAR,QAAQ,QA0FnB;AAEY,QAAA,cAAc,GAAG,GAAG,CAAC"}
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/workflow/definitions.ts"],"names":[],"mappings":";;;AA6CA,IAAY,QA0FX;AA1FD,WAAY,QAAQ;IAClB;;OAEG;IACH,4CAAgC,CAAA;IAEhC;;OAEG;IACH,8CAAkC,CAAA;IAElC;;OAEG;IACH,kEAAsD,CAAA;IAEtD;;OAEG;IACH,4CAAgC,CAAA;IAEhC;;OAEG;IACH,yDAA6C,CAAA;IAE7C;;OAEG;IACH,kEAAsD,CAAA;IAEtD;;OAEG;IACH,mDAAuC,CAAA;IAEvC;;OAEG;IACH,iDAAqC,CAAA;IAErC;;OAEG;IACH,mDAAuC,CAAA;IAEvC;;OAEG;IACH,uDAA2C,CAAA;IAE3C;;OAEG;IACH,oDAAwC,CAAA;IAExC;;OAEG;IACH,8CAAkC,CAAA;IAElC;;OAEG;IACH,kDAAsC,CAAA;IAEtC;;OAEG;IACH,4CAAgC,CAAA;IAChC;;OAEG;IACH,uDAA2C,CAAA;IAC3C;;OAEG;IACH,4CAAgC,CAAA;IAChC;;OAEG;IACH,4CAAgC,CAAA;IAChC;;OAEG;IACH,6CAAiC,CAAA;IACjC;;OAEG;IACH,yDAA6C,CAAA;AAC/C,CAAC,EA1FW,QAAQ,wBAAR,QAAQ,QA0FnB;AAEY,QAAA,cAAc,GAAG,GAAG,CAAC"}
@@ -12,7 +12,6 @@ export * from './definitions';
12
12
  */
13
13
  export declare class OpenTelemetryInboundInterceptor implements WorkflowInboundCallsInterceptor {
14
14
  protected readonly tracer: otel.Tracer;
15
- constructor();
16
15
  execute(input: WorkflowExecuteInput, next: Next<WorkflowInboundCallsInterceptor, 'execute'>): Promise<unknown>;
17
16
  handleSignal(input: SignalInput, next: Next<WorkflowInboundCallsInterceptor, 'handleSignal'>): Promise<void>;
18
17
  handleUpdate(input: UpdateInput, next: Next<WorkflowInboundCallsInterceptor, 'handleUpdate'>): Promise<unknown>;
@@ -28,7 +27,6 @@ export declare class OpenTelemetryInboundInterceptor implements WorkflowInboundC
28
27
  */
29
28
  export declare class OpenTelemetryOutboundInterceptor implements WorkflowOutboundCallsInterceptor {
30
29
  protected readonly tracer: otel.Tracer;
31
- constructor();
32
30
  scheduleActivity(input: ActivityInput, next: Next<WorkflowOutboundCallsInterceptor, 'scheduleActivity'>): Promise<unknown>;
33
31
  scheduleLocalActivity(input: LocalActivityInput, next: Next<WorkflowOutboundCallsInterceptor, 'scheduleLocalActivity'>): Promise<unknown>;
34
32
  startNexusOperation(input: StartNexusOperationInput, next: Next<WorkflowOutboundCallsInterceptor, 'startNexusOperation'>): Promise<StartNexusOperationOutput>;
@@ -27,7 +27,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
29
  exports.OpenTelemetryInternalsInterceptor = exports.OpenTelemetryOutboundInterceptor = exports.OpenTelemetryInboundInterceptor = void 0;
30
- /* eslint-disable import/order */
31
30
  // eslint-disable-next-line import/no-unassigned-import
32
31
  require("./runtime"); // Patch the Workflow isolate runtime for opentelemetry
33
32
  const otel = __importStar(require("@opentelemetry/api"));
@@ -36,7 +35,7 @@ const instrumentation_1 = require("../instrumentation");
36
35
  const context_manager_1 = require("./context-manager");
37
36
  const definitions_1 = require("./definitions");
38
37
  const span_exporter_1 = require("./span-exporter");
39
- const workflow_module_loader_1 = require("./workflow-module-loader");
38
+ const workflow_imports_1 = require("./workflow-imports");
40
39
  __exportStar(require("./definitions"), exports);
41
40
  let tracer = undefined;
42
41
  let contextManager = undefined;
@@ -62,28 +61,24 @@ function getTracer() {
62
61
  */
63
62
  class OpenTelemetryInboundInterceptor {
64
63
  tracer = getTracer();
65
- constructor() {
66
- (0, workflow_module_loader_1.ensureWorkflowModuleLoaded)();
67
- }
68
64
  async execute(input, next) {
69
- const { workflowInfo, ContinueAsNew } = (0, workflow_module_loader_1.getWorkflowModule)();
70
65
  const context = (0, instrumentation_1.extractContextFromHeaders)(input.headers);
71
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceporsAvoidsExtraYields'))
66
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceporsAvoidsExtraYields))
72
67
  await Promise.resolve();
73
68
  return await (0, instrumentation_1.instrument)({
74
69
  tracer: this.tracer,
75
- spanName: `${definitions_1.SpanName.WORKFLOW_EXECUTE}${definitions_1.SPAN_DELIMITER}${workflowInfo().workflowType}`,
70
+ spanName: `${definitions_1.SpanName.WORKFLOW_EXECUTE}${definitions_1.SPAN_DELIMITER}${(0, workflow_imports_1.workflowInfo)().workflowType}`,
76
71
  fn: () => next(input),
77
72
  context,
78
- acceptableErrors: (err) => err instanceof ContinueAsNew,
73
+ acceptableErrors: (err) => err instanceof workflow_imports_1.ContinueAsNew,
79
74
  });
80
75
  }
81
76
  async handleSignal(input, next) {
82
77
  // Tracing of inbound signals was added in v1.11.5.
83
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceptorsTracesInboundSignals'))
78
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceptorsTracesInboundSignals))
84
79
  return next(input);
85
80
  const context = (0, instrumentation_1.extractContextFromHeaders)(input.headers);
86
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceporsAvoidsExtraYields'))
81
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceporsAvoidsExtraYields))
87
82
  await Promise.resolve();
88
83
  return await (0, instrumentation_1.instrument)({
89
84
  tracer: this.tracer,
@@ -93,7 +88,7 @@ class OpenTelemetryInboundInterceptor {
93
88
  });
94
89
  }
95
90
  async handleUpdate(input, next) {
96
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceptorsInstrumentsAllMethods'))
91
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceptorsInstrumentsAllMethods))
97
92
  return next(input);
98
93
  const context = (0, instrumentation_1.extractContextFromHeaders)(input.headers);
99
94
  return await (0, instrumentation_1.instrument)({
@@ -107,7 +102,7 @@ class OpenTelemetryInboundInterceptor {
107
102
  });
108
103
  }
109
104
  validateUpdate(input, next) {
110
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceptorsInstrumentsAllMethods'))
105
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceptorsInstrumentsAllMethods))
111
106
  return next(input);
112
107
  const context = (0, instrumentation_1.extractContextFromHeaders)(input.headers);
113
108
  (0, instrumentation_1.instrumentSync)({
@@ -121,7 +116,7 @@ class OpenTelemetryInboundInterceptor {
121
116
  });
122
117
  }
123
118
  async handleQuery(input, next) {
124
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceptorsInstrumentsAllMethods'))
119
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceptorsInstrumentsAllMethods))
125
120
  return next(input);
126
121
  const context = (0, instrumentation_1.extractContextFromHeaders)(input.headers);
127
122
  return await (0, instrumentation_1.instrument)({
@@ -142,16 +137,13 @@ exports.OpenTelemetryInboundInterceptor = OpenTelemetryInboundInterceptor;
142
137
  */
143
138
  class OpenTelemetryOutboundInterceptor {
144
139
  tracer = getTracer();
145
- constructor() {
146
- (0, workflow_module_loader_1.ensureWorkflowModuleLoaded)();
147
- }
148
140
  async scheduleActivity(input, next) {
149
141
  return await (0, instrumentation_1.instrument)({
150
142
  tracer: this.tracer,
151
143
  spanName: `${definitions_1.SpanName.ACTIVITY_START}${definitions_1.SPAN_DELIMITER}${input.activityType}`,
152
144
  fn: async () => {
153
145
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
154
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceporsAvoidsExtraYields'))
146
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceporsAvoidsExtraYields))
155
147
  await Promise.resolve();
156
148
  return next({
157
149
  ...input,
@@ -162,14 +154,14 @@ class OpenTelemetryOutboundInterceptor {
162
154
  }
163
155
  async scheduleLocalActivity(input, next) {
164
156
  // Tracing of local activities was added in v1.11.6.
165
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceptorsTracesLocalActivities'))
157
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceptorsTracesLocalActivities))
166
158
  return next(input);
167
159
  return await (0, instrumentation_1.instrument)({
168
160
  tracer: this.tracer,
169
161
  spanName: `${definitions_1.SpanName.ACTIVITY_START}${definitions_1.SPAN_DELIMITER}${input.activityType}`,
170
162
  fn: async () => {
171
163
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
172
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceporsAvoidsExtraYields'))
164
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceporsAvoidsExtraYields))
173
165
  await Promise.resolve();
174
166
  return next({
175
167
  ...input,
@@ -179,7 +171,7 @@ class OpenTelemetryOutboundInterceptor {
179
171
  });
180
172
  }
181
173
  async startNexusOperation(input, next) {
182
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceptorsInstrumentsAllMethods'))
174
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceptorsInstrumentsAllMethods))
183
175
  return next(input);
184
176
  return await (0, instrumentation_1.instrument)({
185
177
  tracer: this.tracer,
@@ -198,7 +190,7 @@ class OpenTelemetryOutboundInterceptor {
198
190
  spanName: `${definitions_1.SpanName.CHILD_WORKFLOW_START}${definitions_1.SPAN_DELIMITER}${input.workflowType}`,
199
191
  fn: async () => {
200
192
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
201
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceporsAvoidsExtraYields'))
193
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceporsAvoidsExtraYields))
202
194
  await Promise.resolve();
203
195
  return next({
204
196
  ...input,
@@ -208,20 +200,19 @@ class OpenTelemetryOutboundInterceptor {
208
200
  });
209
201
  }
210
202
  async continueAsNew(input, next) {
211
- const { ContinueAsNew } = (0, workflow_module_loader_1.getWorkflowModule)();
212
203
  return await (0, instrumentation_1.instrument)({
213
204
  tracer: this.tracer,
214
205
  spanName: `${definitions_1.SpanName.CONTINUE_AS_NEW}${definitions_1.SPAN_DELIMITER}${input.options.workflowType}`,
215
206
  fn: async () => {
216
207
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
217
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceporsAvoidsExtraYields'))
208
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceporsAvoidsExtraYields))
218
209
  await Promise.resolve();
219
210
  return next({
220
211
  ...input,
221
212
  headers,
222
213
  });
223
214
  },
224
- acceptableErrors: (err) => err instanceof ContinueAsNew,
215
+ acceptableErrors: (err) => err instanceof workflow_imports_1.ContinueAsNew,
225
216
  });
226
217
  }
227
218
  async signalWorkflow(input, next) {
@@ -230,7 +221,7 @@ class OpenTelemetryOutboundInterceptor {
230
221
  spanName: `${definitions_1.SpanName.WORKFLOW_SIGNAL}${definitions_1.SPAN_DELIMITER}${input.signalName}`,
231
222
  fn: async () => {
232
223
  const headers = (0, instrumentation_1.headersWithContext)(input.headers);
233
- if (!(0, workflow_module_loader_1.hasSdkFlag)('OpenTelemetryInterceporsAvoidsExtraYields'))
224
+ if (!(0, workflow_imports_1.getActivator)().hasFlag(workflow_imports_1.SdkFlags.OpenTelemetryInterceporsAvoidsExtraYields))
234
225
  await Promise.resolve();
235
226
  return next({
236
227
  ...input,