autotel 3.6.0 → 3.7.0
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/attribute-redacting-processor-DtTS9xxh.d.cts +175 -0
- package/dist/attribute-redacting-processor-DtTS9xxh.d.cts.map +1 -0
- package/dist/attribute-redacting-processor-DtTS9xxh.d.ts +175 -0
- package/dist/attribute-redacting-processor-DtTS9xxh.d.ts.map +1 -0
- package/dist/attribute-redacting-processor.cjs +374 -33
- package/dist/attribute-redacting-processor.cjs.map +1 -1
- package/dist/attribute-redacting-processor.d.cts +2 -207
- package/dist/attribute-redacting-processor.d.ts +2 -207
- package/dist/attribute-redacting-processor.js +368 -2
- package/dist/attribute-redacting-processor.js.map +1 -1
- package/dist/attributes-D3etyRVc.cjs +713 -0
- package/dist/attributes-D3etyRVc.cjs.map +1 -0
- package/dist/attributes-ksn4HVbd.js +600 -0
- package/dist/attributes-ksn4HVbd.js.map +1 -0
- package/dist/attributes.cjs +21 -85
- package/dist/attributes.d.cts +2 -20
- package/dist/attributes.d.ts +2 -20
- package/dist/attributes.js +3 -5
- package/dist/auto.cjs +50 -28
- package/dist/auto.cjs.map +1 -1
- package/dist/auto.d.cts +1 -2
- package/dist/auto.d.ts +1 -2
- package/dist/auto.js +49 -23
- package/dist/auto.js.map +1 -1
- package/dist/business-baggage.cjs +357 -13
- package/dist/business-baggage.cjs.map +1 -1
- package/dist/business-baggage.d.cts +106 -139
- package/dist/business-baggage.d.cts.map +1 -0
- package/dist/business-baggage.d.ts +106 -139
- package/dist/business-baggage.d.ts.map +1 -0
- package/dist/business-baggage.js +357 -2
- package/dist/business-baggage.js.map +1 -1
- package/dist/canonical-log-line-processor--RlFDHhm.cjs +377 -0
- package/dist/canonical-log-line-processor--RlFDHhm.cjs.map +1 -0
- package/dist/canonical-log-line-processor-BcRuAdRk.d.ts +147 -0
- package/dist/canonical-log-line-processor-BcRuAdRk.d.ts.map +1 -0
- package/dist/canonical-log-line-processor-DbBQT5vY.js +366 -0
- package/dist/canonical-log-line-processor-DbBQT5vY.js.map +1 -0
- package/dist/canonical-log-line-processor-xvjMgtpF.d.cts +147 -0
- package/dist/canonical-log-line-processor-xvjMgtpF.d.cts.map +1 -0
- package/dist/config.cjs +118 -22
- package/dist/config.cjs.map +1 -1
- package/dist/config.d.cts +33 -45
- package/dist/config.d.cts.map +1 -0
- package/dist/config.d.ts +33 -45
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +116 -3
- package/dist/config.js.map +1 -1
- package/dist/correlated-events-Bzh5y-UB.js +28 -0
- package/dist/correlated-events-Bzh5y-UB.js.map +1 -0
- package/dist/correlated-events-kSwLo3mi.cjs +34 -0
- package/dist/correlated-events-kSwLo3mi.cjs.map +1 -0
- package/dist/correlation-id.cjs +11 -54
- package/dist/correlation-id.d.cts +6 -5
- package/dist/correlation-id.d.cts.map +1 -0
- package/dist/correlation-id.d.ts +6 -5
- package/dist/correlation-id.d.ts.map +1 -0
- package/dist/correlation-id.js +3 -17
- package/dist/db.cjs +244 -209
- package/dist/db.cjs.map +1 -1
- package/dist/db.d.cts +28 -26
- package/dist/db.d.cts.map +1 -0
- package/dist/db.d.ts +28 -26
- package/dist/db.d.ts.map +1 -0
- package/dist/db.js +243 -207
- package/dist/db.js.map +1 -1
- package/dist/decorators.cjs +39 -66
- package/dist/decorators.cjs.map +1 -1
- package/dist/decorators.d.cts +10 -37
- package/dist/decorators.d.cts.map +1 -0
- package/dist/decorators.d.ts +10 -37
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +38 -64
- package/dist/decorators.js.map +1 -1
- package/dist/define-event-CreknLm3.d.ts +25 -0
- package/dist/define-event-CreknLm3.d.ts.map +1 -0
- package/dist/define-event-HZRizPwz.d.cts +25 -0
- package/dist/define-event-HZRizPwz.d.cts.map +1 -0
- package/dist/drain-pipeline.cjs +111 -9
- package/dist/drain-pipeline.cjs.map +1 -1
- package/dist/drain-pipeline.d.cts +27 -32
- package/dist/drain-pipeline.d.cts.map +1 -0
- package/dist/drain-pipeline.d.ts +27 -32
- package/dist/drain-pipeline.d.ts.map +1 -0
- package/dist/drain-pipeline.js +111 -2
- package/dist/drain-pipeline.js.map +1 -1
- package/dist/enrichers.cjs +59 -66
- package/dist/enrichers.cjs.map +1 -1
- package/dist/enrichers.d.cts +15 -13
- package/dist/enrichers.d.cts.map +1 -0
- package/dist/enrichers.d.ts +15 -13
- package/dist/enrichers.d.ts.map +1 -0
- package/dist/enrichers.js +58 -65
- package/dist/enrichers.js.map +1 -1
- package/dist/event-Dlqr4ZNL.cjs +778 -0
- package/dist/event-Dlqr4ZNL.cjs.map +1 -0
- package/dist/event-_58ryBjh.js +761 -0
- package/dist/event-_58ryBjh.js.map +1 -0
- package/dist/event-subscriber-D1XLkPzi.d.cts +223 -0
- package/dist/event-subscriber-D1XLkPzi.d.cts.map +1 -0
- package/dist/event-subscriber-D1XLkPzi.d.ts +223 -0
- package/dist/event-subscriber-D1XLkPzi.d.ts.map +1 -0
- package/dist/event-subscriber.cjs +0 -6
- package/dist/event-subscriber.d.cts +2 -221
- package/dist/event-subscriber.d.ts +2 -221
- package/dist/event-subscriber.js +1 -3
- package/dist/event-testing-BqRnI0z4.d.cts +106 -0
- package/dist/event-testing-BqRnI0z4.d.cts.map +1 -0
- package/dist/event-testing-CfFs3to2.d.ts +106 -0
- package/dist/event-testing-CfFs3to2.d.ts.map +1 -0
- package/dist/event-testing.cjs +93 -17
- package/dist/event-testing.cjs.map +1 -1
- package/dist/event-testing.d.cts +2 -110
- package/dist/event-testing.d.ts +2 -110
- package/dist/event-testing.js +91 -2
- package/dist/event-testing.js.map +1 -1
- package/dist/event.cjs +5 -37
- package/dist/event.d.cts +295 -340
- package/dist/event.d.cts.map +1 -0
- package/dist/event.d.ts +295 -340
- package/dist/event.d.ts.map +1 -0
- package/dist/event.js +3 -21
- package/dist/exporters.cjs +12 -16
- package/dist/exporters.d.cts +86 -111
- package/dist/exporters.d.cts.map +1 -0
- package/dist/exporters.d.ts +86 -111
- package/dist/exporters.d.ts.map +1 -0
- package/dist/exporters.js +4 -4
- package/dist/filtering-span-processor-B8R8B7Uk.d.cts +59 -0
- package/dist/filtering-span-processor-B8R8B7Uk.d.cts.map +1 -0
- package/dist/filtering-span-processor-B8R8B7Uk.d.ts +59 -0
- package/dist/filtering-span-processor-B8R8B7Uk.d.ts.map +1 -0
- package/dist/filtering-span-processor.cjs +49 -9
- package/dist/filtering-span-processor.cjs.map +1 -1
- package/dist/filtering-span-processor.d.cts +2 -80
- package/dist/filtering-span-processor.d.ts +2 -80
- package/dist/filtering-span-processor.js +49 -2
- package/dist/filtering-span-processor.js.map +1 -1
- package/dist/functional-BGkT8J-h.js +1265 -0
- package/dist/functional-BGkT8J-h.js.map +1 -0
- package/dist/functional-C4CzoVrX.cjs +1312 -0
- package/dist/functional-C4CzoVrX.cjs.map +1 -0
- package/dist/functional.cjs +11 -57
- package/dist/functional.d.cts +96 -97
- package/dist/functional.d.cts.map +1 -0
- package/dist/functional.d.ts +96 -97
- package/dist/functional.d.ts.map +1 -0
- package/dist/functional.js +3 -20
- package/dist/http.cjs +276 -176
- package/dist/http.cjs.map +1 -1
- package/dist/http.d.cts +17 -37
- package/dist/http.d.cts.map +1 -0
- package/dist/http.d.ts +17 -37
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +275 -174
- package/dist/http.js.map +1 -1
- package/dist/index-CX0aG1Uh.d.ts +708 -0
- package/dist/index-CX0aG1Uh.d.ts.map +1 -0
- package/dist/index-DIWZFKUS.d.cts +708 -0
- package/dist/index-DIWZFKUS.d.cts.map +1 -0
- package/dist/index.cjs +1049 -1172
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +401 -551
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +401 -551
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +912 -714
- package/dist/index.js.map +1 -1
- package/dist/init-CNp-ee80.d.cts +1157 -0
- package/dist/init-CNp-ee80.d.cts.map +1 -0
- package/dist/init-Ch6t7MNI.js +1015 -0
- package/dist/init-Ch6t7MNI.js.map +1 -0
- package/dist/init-DJQOdVlN.d.ts +1157 -0
- package/dist/init-DJQOdVlN.d.ts.map +1 -0
- package/dist/init-DvapOXCc.cjs +1092 -0
- package/dist/init-DvapOXCc.cjs.map +1 -0
- package/dist/instrumentation.cjs +159 -185
- package/dist/instrumentation.cjs.map +1 -1
- package/dist/instrumentation.d.cts +42 -40
- package/dist/instrumentation.d.cts.map +1 -0
- package/dist/instrumentation.d.ts +42 -40
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +158 -183
- package/dist/instrumentation.js.map +1 -1
- package/dist/logger-BauSUhUv.d.cts +313 -0
- package/dist/logger-BauSUhUv.d.cts.map +1 -0
- package/dist/logger-BauSUhUv.d.ts +313 -0
- package/dist/logger-BauSUhUv.d.ts.map +1 -0
- package/dist/logger.cjs +225 -25
- package/dist/logger.cjs.map +1 -1
- package/dist/logger.d.cts +2 -348
- package/dist/logger.d.ts +2 -348
- package/dist/logger.js +204 -4
- package/dist/logger.js.map +1 -1
- package/dist/messaging-adapters.cjs +292 -187
- package/dist/messaging-adapters.cjs.map +1 -1
- package/dist/messaging-adapters.d.cts +28 -66
- package/dist/messaging-adapters.d.cts.map +1 -0
- package/dist/messaging-adapters.d.ts +28 -66
- package/dist/messaging-adapters.d.ts.map +1 -0
- package/dist/messaging-adapters.js +291 -185
- package/dist/messaging-adapters.js.map +1 -1
- package/dist/messaging-testing.cjs +306 -372
- package/dist/messaging-testing.cjs.map +1 -1
- package/dist/messaging-testing.d.cts +194 -223
- package/dist/messaging-testing.d.cts.map +1 -0
- package/dist/messaging-testing.d.ts +194 -223
- package/dist/messaging-testing.d.ts.map +1 -0
- package/dist/messaging-testing.js +305 -371
- package/dist/messaging-testing.js.map +1 -1
- package/dist/messaging.cjs +757 -36
- package/dist/messaging.cjs.map +1 -1
- package/dist/messaging.d.cts +603 -644
- package/dist/messaging.d.cts.map +1 -0
- package/dist/messaging.d.ts +603 -644
- package/dist/messaging.d.ts.map +1 -0
- package/dist/messaging.js +756 -21
- package/dist/messaging.js.map +1 -1
- package/dist/metric-helpers.cjs +27 -27
- package/dist/metric-helpers.cjs.map +1 -1
- package/dist/metric-helpers.d.cts +4 -2
- package/dist/metric-helpers.d.cts.map +1 -0
- package/dist/metric-helpers.d.ts +4 -2
- package/dist/metric-helpers.d.ts.map +1 -0
- package/dist/metric-helpers.js +24 -4
- package/dist/metric-helpers.js.map +1 -1
- package/dist/metric-testing-DXdK3-Q3.d.ts +106 -0
- package/dist/metric-testing-DXdK3-Q3.d.ts.map +1 -0
- package/dist/metric-testing-MxvzChDp.d.cts +106 -0
- package/dist/metric-testing-MxvzChDp.d.cts.map +1 -0
- package/dist/metric-testing.cjs +93 -17
- package/dist/metric-testing.cjs.map +1 -1
- package/dist/metric-testing.d.cts +2 -110
- package/dist/metric-testing.d.ts +2 -110
- package/dist/metric-testing.js +91 -2
- package/dist/metric-testing.js.map +1 -1
- package/dist/metric.cjs +306 -22
- package/dist/metric.cjs.map +1 -1
- package/dist/metric.d.cts +170 -198
- package/dist/metric.d.cts.map +1 -0
- package/dist/metric.d.ts +170 -198
- package/dist/metric.d.ts.map +1 -0
- package/dist/metric.js +277 -7
- package/dist/metric.js.map +1 -1
- package/dist/node-require-DF5QBX6z.cjs +99 -0
- package/dist/node-require-DF5QBX6z.cjs.map +1 -0
- package/dist/node-require-Db1oDpLj.js +88 -0
- package/dist/node-require-Db1oDpLj.js.map +1 -0
- package/dist/operation-context-C-2hmmtP.js +59 -0
- package/dist/operation-context-C-2hmmtP.js.map +1 -0
- package/dist/operation-context-n4_obUwq.cjs +70 -0
- package/dist/operation-context-n4_obUwq.cjs.map +1 -0
- package/dist/parse-error.cjs +55 -9
- package/dist/parse-error.cjs.map +1 -1
- package/dist/parse-error.d.cts +12 -10
- package/dist/parse-error.d.cts.map +1 -0
- package/dist/parse-error.d.ts +12 -10
- package/dist/parse-error.d.ts.map +1 -0
- package/dist/parse-error.js +55 -2
- package/dist/parse-error.js.map +1 -1
- package/dist/pretty-console-exporter-CMzlrRNg.cjs +232 -0
- package/dist/pretty-console-exporter-CMzlrRNg.cjs.map +1 -0
- package/dist/pretty-console-exporter-DqKl_q9z.js +227 -0
- package/dist/pretty-console-exporter-DqKl_q9z.js.map +1 -0
- package/dist/processors.cjs +13 -17
- package/dist/processors.d.cts +3 -171
- package/dist/processors.d.ts +3 -171
- package/dist/processors.js +4 -4
- package/dist/register.cjs +35 -6
- package/dist/register.cjs.map +1 -1
- package/dist/register.d.cts +1 -2
- package/dist/register.d.ts +1 -2
- package/dist/register.js +36 -3
- package/dist/register.js.map +1 -1
- package/dist/registry-DfXA3R1L.js +184 -0
- package/dist/registry-DfXA3R1L.js.map +1 -0
- package/dist/registry-JZg2J3RZ.cjs +334 -0
- package/dist/registry-JZg2J3RZ.cjs.map +1 -0
- package/dist/sampling-CR0Va1VB.d.ts +351 -0
- package/dist/sampling-CR0Va1VB.d.ts.map +1 -0
- package/dist/sampling-DfYhDJij.d.cts +351 -0
- package/dist/sampling-DfYhDJij.d.cts.map +1 -0
- package/dist/sampling.cjs +452 -60
- package/dist/sampling.cjs.map +1 -1
- package/dist/sampling.d.cts +2 -379
- package/dist/sampling.d.ts +2 -379
- package/dist/sampling.js +441 -5
- package/dist/sampling.js.map +1 -1
- package/dist/security-schema.cjs +65 -46
- package/dist/security-schema.cjs.map +1 -1
- package/dist/security-schema.d.cts +23 -26
- package/dist/security-schema.d.cts.map +1 -0
- package/dist/security-schema.d.ts +23 -26
- package/dist/security-schema.d.ts.map +1 -0
- package/dist/security-schema.js +64 -45
- package/dist/security-schema.js.map +1 -1
- package/dist/semantic-conventions-FhSxv-bK.d.cts +32 -0
- package/dist/semantic-conventions-FhSxv-bK.d.cts.map +1 -0
- package/dist/semantic-conventions-FhSxv-bK.d.ts +32 -0
- package/dist/semantic-conventions-FhSxv-bK.d.ts.map +1 -0
- package/dist/semantic-conventions.cjs +15 -26
- package/dist/semantic-conventions.cjs.map +1 -1
- package/dist/semantic-conventions.d.cts +2 -29
- package/dist/semantic-conventions.d.ts +2 -29
- package/dist/semantic-conventions.js +12 -3
- package/dist/semantic-conventions.js.map +1 -1
- package/dist/semantic-helpers.cjs +440 -39
- package/dist/semantic-helpers.cjs.map +1 -1
- package/dist/semantic-helpers.d.cts +38 -45
- package/dist/semantic-helpers.d.cts.map +1 -0
- package/dist/semantic-helpers.d.ts +38 -45
- package/dist/semantic-helpers.d.ts.map +1 -0
- package/dist/semantic-helpers.js +438 -20
- package/dist/semantic-helpers.js.map +1 -1
- package/dist/span-name-normalizer-8ZOGJuwv.d.cts +70 -0
- package/dist/span-name-normalizer-8ZOGJuwv.d.cts.map +1 -0
- package/dist/span-name-normalizer-8ZOGJuwv.d.ts +70 -0
- package/dist/span-name-normalizer-8ZOGJuwv.d.ts.map +1 -0
- package/dist/span-name-normalizer.cjs +95 -17
- package/dist/span-name-normalizer.cjs.map +1 -1
- package/dist/span-name-normalizer.d.cts +2 -94
- package/dist/span-name-normalizer.d.ts +2 -94
- package/dist/span-name-normalizer.js +93 -2
- package/dist/span-name-normalizer.js.map +1 -1
- package/dist/stable-hash-BNTMrmdB.cjs +28 -0
- package/dist/stable-hash-BNTMrmdB.cjs.map +1 -0
- package/dist/stable-hash-Cg5cT34Q.js +23 -0
- package/dist/stable-hash-Cg5cT34Q.js.map +1 -0
- package/dist/structured-error-9--cxBay.js +143 -0
- package/dist/structured-error-9--cxBay.js.map +1 -0
- package/dist/structured-error-CHg7DoIQ.cjs +178 -0
- package/dist/structured-error-CHg7DoIQ.cjs.map +1 -0
- package/dist/tail-sampling-processor.cjs +26 -13
- package/dist/tail-sampling-processor.cjs.map +1 -1
- package/dist/tail-sampling-processor.d.cts +11 -23
- package/dist/tail-sampling-processor.d.cts.map +1 -0
- package/dist/tail-sampling-processor.d.ts +11 -23
- package/dist/tail-sampling-processor.d.ts.map +1 -0
- package/dist/tail-sampling-processor.js +27 -6
- package/dist/tail-sampling-processor.js.map +1 -1
- package/dist/test-span-collector.cjs +70 -72
- package/dist/test-span-collector.cjs.map +1 -1
- package/dist/test-span-collector.d.cts +25 -43
- package/dist/test-span-collector.d.cts.map +1 -0
- package/dist/test-span-collector.d.ts +25 -43
- package/dist/test-span-collector.d.ts.map +1 -0
- package/dist/test-span-collector.js +69 -70
- package/dist/test-span-collector.js.map +1 -1
- package/dist/testing.cjs +389 -278
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +39 -62
- package/dist/testing.d.cts.map +1 -0
- package/dist/testing.d.ts +39 -62
- package/dist/testing.d.ts.map +1 -0
- package/dist/testing.js +386 -265
- package/dist/testing.js.map +1 -1
- package/dist/trace-context-Cijqoi6e.d.cts +212 -0
- package/dist/trace-context-Cijqoi6e.d.cts.map +1 -0
- package/dist/trace-context-Cijqoi6e.d.ts +212 -0
- package/dist/trace-context-Cijqoi6e.d.ts.map +1 -0
- package/dist/trace-helpers.cjs +634 -54
- package/dist/trace-helpers.cjs.map +1 -1
- package/dist/trace-helpers.d.cts +17 -49
- package/dist/trace-helpers.d.cts.map +1 -0
- package/dist/trace-helpers.d.ts +17 -49
- package/dist/trace-helpers.d.ts.map +1 -0
- package/dist/trace-helpers.js +624 -3
- package/dist/trace-helpers.js.map +1 -1
- package/dist/tracer-provider.cjs +227 -16
- package/dist/tracer-provider.cjs.map +1 -1
- package/dist/tracer-provider.d.cts +5 -4
- package/dist/tracer-provider.d.cts.map +1 -0
- package/dist/tracer-provider.d.ts +5 -4
- package/dist/tracer-provider.d.ts.map +1 -0
- package/dist/tracer-provider.js +227 -2
- package/dist/tracer-provider.js.map +1 -1
- package/dist/track-3HY4NGV-.cjs +1212 -0
- package/dist/track-3HY4NGV-.cjs.map +1 -0
- package/dist/track-nsKVy-pj.js +1111 -0
- package/dist/track-nsKVy-pj.js.map +1 -0
- package/dist/validate.cjs +178 -115
- package/dist/validate.cjs.map +1 -1
- package/dist/validate.d.cts +40 -64
- package/dist/validate.d.cts.map +1 -0
- package/dist/validate.d.ts +40 -64
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +177 -113
- package/dist/validate.js.map +1 -1
- package/dist/validation-attributes.cjs +42 -17
- package/dist/validation-attributes.cjs.map +1 -1
- package/dist/validation-attributes.d.cts +13 -20
- package/dist/validation-attributes.d.cts.map +1 -0
- package/dist/validation-attributes.d.ts +13 -20
- package/dist/validation-attributes.d.ts.map +1 -0
- package/dist/validation-attributes.js +40 -2
- package/dist/validation-attributes.js.map +1 -1
- package/dist/webhook.cjs +286 -256
- package/dist/webhook.cjs.map +1 -1
- package/dist/webhook.d.cts +157 -192
- package/dist/webhook.d.cts.map +1 -0
- package/dist/webhook.d.ts +157 -192
- package/dist/webhook.d.ts.map +1 -0
- package/dist/webhook.js +285 -254
- package/dist/webhook.js.map +1 -1
- package/dist/workflow-distributed.cjs +498 -412
- package/dist/workflow-distributed.cjs.map +1 -1
- package/dist/workflow-distributed.d.cts +163 -173
- package/dist/workflow-distributed.d.cts.map +1 -0
- package/dist/workflow-distributed.d.ts +163 -173
- package/dist/workflow-distributed.d.ts.map +1 -0
- package/dist/workflow-distributed.js +497 -410
- package/dist/workflow-distributed.js.map +1 -1
- package/dist/workflow.cjs +405 -40
- package/dist/workflow.cjs.map +1 -1
- package/dist/workflow.d.cts +78 -131
- package/dist/workflow.d.cts.map +1 -0
- package/dist/workflow.d.ts +78 -131
- package/dist/workflow.d.ts.map +1 -0
- package/dist/workflow.js +403 -21
- package/dist/workflow.js.map +1 -1
- package/dist/yaml-config-B3dQ82GR.cjs +272 -0
- package/dist/yaml-config-B3dQ82GR.cjs.map +1 -0
- package/dist/yaml-config.cjs +5 -24
- package/dist/yaml-config.d.cts +30 -64
- package/dist/yaml-config.d.cts.map +1 -0
- package/dist/yaml-config.d.ts +30 -64
- package/dist/yaml-config.d.ts.map +1 -0
- package/dist/yaml-config.js +226 -7
- package/dist/yaml-config.js.map +1 -1
- package/package.json +4 -4
- package/src/index.ts +3 -0
- package/src/request-logger.test.ts +53 -1
- package/src/request-logger.ts +58 -0
- package/src/validate.test.ts +3 -1
- package/src/validate.ts +9 -3
- package/dist/attributes.cjs.map +0 -1
- package/dist/attributes.js.map +0 -1
- package/dist/chunk-2ZKEORFN.cjs +0 -14
- package/dist/chunk-2ZKEORFN.cjs.map +0 -1
- package/dist/chunk-3QXBFGKP.js +0 -344
- package/dist/chunk-3QXBFGKP.js.map +0 -1
- package/dist/chunk-454CH4OV.js +0 -744
- package/dist/chunk-454CH4OV.js.map +0 -1
- package/dist/chunk-4A53YIAX.js +0 -180
- package/dist/chunk-4A53YIAX.js.map +0 -1
- package/dist/chunk-4IFSYQVX.js +0 -337
- package/dist/chunk-4IFSYQVX.js.map +0 -1
- package/dist/chunk-4P6ZOARG.cjs +0 -33
- package/dist/chunk-4P6ZOARG.cjs.map +0 -1
- package/dist/chunk-55ER2KD5.js +0 -228
- package/dist/chunk-55ER2KD5.js.map +0 -1
- package/dist/chunk-5ZN622AO.js +0 -73
- package/dist/chunk-5ZN622AO.js.map +0 -1
- package/dist/chunk-66YJ66GG.js +0 -1021
- package/dist/chunk-66YJ66GG.js.map +0 -1
- package/dist/chunk-6S5RUKU3.cjs +0 -347
- package/dist/chunk-6S5RUKU3.cjs.map +0 -1
- package/dist/chunk-6UQRVUN3.js +0 -222
- package/dist/chunk-6UQRVUN3.js.map +0 -1
- package/dist/chunk-7552UTQW.js +0 -11
- package/dist/chunk-7552UTQW.js.map +0 -1
- package/dist/chunk-7EQ4G4SI.cjs +0 -146
- package/dist/chunk-7EQ4G4SI.cjs.map +0 -1
- package/dist/chunk-7SAWIN74.js +0 -285
- package/dist/chunk-7SAWIN74.js.map +0 -1
- package/dist/chunk-A4E5AQFK.js +0 -30
- package/dist/chunk-A4E5AQFK.js.map +0 -1
- package/dist/chunk-ALPYR2GC.js +0 -1061
- package/dist/chunk-ALPYR2GC.js.map +0 -1
- package/dist/chunk-B7SWBE4P.cjs +0 -799
- package/dist/chunk-B7SWBE4P.cjs.map +0 -1
- package/dist/chunk-BZHG5IZ4.js +0 -73
- package/dist/chunk-BZHG5IZ4.js.map +0 -1
- package/dist/chunk-CEAQK2QY.cjs +0 -32
- package/dist/chunk-CEAQK2QY.cjs.map +0 -1
- package/dist/chunk-CMHVQR6P.js +0 -170
- package/dist/chunk-CMHVQR6P.js.map +0 -1
- package/dist/chunk-CU6IDACR.cjs +0 -224
- package/dist/chunk-CU6IDACR.cjs.map +0 -1
- package/dist/chunk-D4TM63S3.js +0 -795
- package/dist/chunk-D4TM63S3.js.map +0 -1
- package/dist/chunk-DCEDJQGG.js +0 -28
- package/dist/chunk-DCEDJQGG.js.map +0 -1
- package/dist/chunk-DPSA4QLA.js +0 -344
- package/dist/chunk-DPSA4QLA.js.map +0 -1
- package/dist/chunk-E6TERL5O.cjs +0 -23
- package/dist/chunk-E6TERL5O.cjs.map +0 -1
- package/dist/chunk-EE6CPXKH.cjs +0 -164
- package/dist/chunk-EE6CPXKH.cjs.map +0 -1
- package/dist/chunk-EOFB7XCL.cjs +0 -837
- package/dist/chunk-EOFB7XCL.cjs.map +0 -1
- package/dist/chunk-ESLWRGAG.cjs +0 -92
- package/dist/chunk-ESLWRGAG.cjs.map +0 -1
- package/dist/chunk-ESMHTKLJ.cjs +0 -206
- package/dist/chunk-ESMHTKLJ.cjs.map +0 -1
- package/dist/chunk-FMTHVSYY.cjs +0 -1039
- package/dist/chunk-FMTHVSYY.cjs.map +0 -1
- package/dist/chunk-FU6R566Y.cjs +0 -236
- package/dist/chunk-FU6R566Y.cjs.map +0 -1
- package/dist/chunk-GYR5K654.js +0 -91
- package/dist/chunk-GYR5K654.js.map +0 -1
- package/dist/chunk-HA2WBOGQ.js +0 -57
- package/dist/chunk-HA2WBOGQ.js.map +0 -1
- package/dist/chunk-HT5JQKN2.js +0 -118
- package/dist/chunk-HT5JQKN2.js.map +0 -1
- package/dist/chunk-INJD3G4K.cjs +0 -340
- package/dist/chunk-INJD3G4K.cjs.map +0 -1
- package/dist/chunk-IOYFAFHJ.cjs +0 -95
- package/dist/chunk-IOYFAFHJ.cjs.map +0 -1
- package/dist/chunk-J5QENANM.js +0 -87
- package/dist/chunk-J5QENANM.js.map +0 -1
- package/dist/chunk-J7VGRIAJ.js +0 -64
- package/dist/chunk-J7VGRIAJ.js.map +0 -1
- package/dist/chunk-KFOHQK7X.js +0 -144
- package/dist/chunk-KFOHQK7X.js.map +0 -1
- package/dist/chunk-KIL5CUN6.js +0 -31
- package/dist/chunk-KIL5CUN6.js.map +0 -1
- package/dist/chunk-KYXZS3EA.cjs +0 -100
- package/dist/chunk-KYXZS3EA.cjs.map +0 -1
- package/dist/chunk-LITNXTTT.js +0 -3
- package/dist/chunk-LITNXTTT.js.map +0 -1
- package/dist/chunk-LVIPBYFE.js +0 -157
- package/dist/chunk-LVIPBYFE.js.map +0 -1
- package/dist/chunk-M3LFHHTN.cjs +0 -764
- package/dist/chunk-M3LFHHTN.cjs.map +0 -1
- package/dist/chunk-N25JDZSC.js +0 -95
- package/dist/chunk-N25JDZSC.js.map +0 -1
- package/dist/chunk-NEIB3TLD.cjs +0 -360
- package/dist/chunk-NEIB3TLD.cjs.map +0 -1
- package/dist/chunk-NENU7E6V.cjs +0 -344
- package/dist/chunk-NENU7E6V.cjs.map +0 -1
- package/dist/chunk-NVAI5CCN.cjs +0 -39
- package/dist/chunk-NVAI5CCN.cjs.map +0 -1
- package/dist/chunk-NZ72VDNY.cjs +0 -4
- package/dist/chunk-NZ72VDNY.cjs.map +0 -1
- package/dist/chunk-OPPXYVEZ.cjs +0 -131
- package/dist/chunk-OPPXYVEZ.cjs.map +0 -1
- package/dist/chunk-Q4EULJQY.js +0 -35
- package/dist/chunk-Q4EULJQY.js.map +0 -1
- package/dist/chunk-QF7ARNUM.js +0 -339
- package/dist/chunk-QF7ARNUM.js.map +0 -1
- package/dist/chunk-QWW3E3JM.cjs +0 -178
- package/dist/chunk-QWW3E3JM.cjs.map +0 -1
- package/dist/chunk-R7QYGZUP.cjs +0 -1075
- package/dist/chunk-R7QYGZUP.cjs.map +0 -1
- package/dist/chunk-RUPKBKUF.js +0 -352
- package/dist/chunk-RUPKBKUF.js.map +0 -1
- package/dist/chunk-SEO6NAQT.js +0 -14
- package/dist/chunk-SEO6NAQT.js.map +0 -1
- package/dist/chunk-T4B5LB6E.cjs +0 -66
- package/dist/chunk-T4B5LB6E.cjs.map +0 -1
- package/dist/chunk-T5WRA76K.cjs +0 -32
- package/dist/chunk-T5WRA76K.cjs.map +0 -1
- package/dist/chunk-T7JO2TCP.js +0 -1233
- package/dist/chunk-T7JO2TCP.js.map +0 -1
- package/dist/chunk-TC5ZPWM4.cjs +0 -289
- package/dist/chunk-TC5ZPWM4.cjs.map +0 -1
- package/dist/chunk-TQ5UWA7S.js +0 -26
- package/dist/chunk-TQ5UWA7S.js.map +0 -1
- package/dist/chunk-UIKYE2QZ.js +0 -833
- package/dist/chunk-UIKYE2QZ.js.map +0 -1
- package/dist/chunk-UNPLAVE7.js +0 -21
- package/dist/chunk-UNPLAVE7.js.map +0 -1
- package/dist/chunk-UY3UYPBZ.cjs +0 -77
- package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
- package/dist/chunk-V7UBMJAB.cjs +0 -1242
- package/dist/chunk-V7UBMJAB.cjs.map +0 -1
- package/dist/chunk-VH77IPJN.cjs +0 -358
- package/dist/chunk-VH77IPJN.cjs.map +0 -1
- package/dist/chunk-VQTCQKHQ.cjs +0 -17
- package/dist/chunk-VQTCQKHQ.cjs.map +0 -1
- package/dist/chunk-WGWSHJ2N.js +0 -38
- package/dist/chunk-WGWSHJ2N.js.map +0 -1
- package/dist/chunk-WJH6IYU2.cjs +0 -32
- package/dist/chunk-WJH6IYU2.cjs.map +0 -1
- package/dist/chunk-YREV3LGG.cjs +0 -61
- package/dist/chunk-YREV3LGG.cjs.map +0 -1
- package/dist/chunk-YTXEZ4SD.cjs +0 -77
- package/dist/chunk-YTXEZ4SD.cjs.map +0 -1
- package/dist/chunk-ZNMBW67B.cjs +0 -40
- package/dist/chunk-ZNMBW67B.cjs.map +0 -1
- package/dist/correlation-id.cjs.map +0 -1
- package/dist/correlation-id.js.map +0 -1
- package/dist/define-event-BL6Li7CM.d.ts +0 -23
- package/dist/define-event-ClP3T1Jx.d.cts +0 -23
- package/dist/event-subscriber.cjs.map +0 -1
- package/dist/event-subscriber.js.map +0 -1
- package/dist/event.cjs.map +0 -1
- package/dist/event.js.map +0 -1
- package/dist/exporters.cjs.map +0 -1
- package/dist/exporters.js.map +0 -1
- package/dist/functional.cjs.map +0 -1
- package/dist/functional.js.map +0 -1
- package/dist/init-DIowiiCh.d.ts +0 -1167
- package/dist/init-j-A1zI16.d.cts +0 -1167
- package/dist/processors.cjs.map +0 -1
- package/dist/processors.js.map +0 -1
- package/dist/trace-context-DbGKd1Rn.d.cts +0 -213
- package/dist/trace-context-DbGKd1Rn.d.ts +0 -213
- package/dist/utils-BahBCFtJ.d.cts +0 -712
- package/dist/utils-CLKwaUlG.d.ts +0 -712
- package/dist/yaml-config.cjs.map +0 -1
|
@@ -1,430 +1,517 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import './chunk-SEO6NAQT.js';
|
|
6
|
-
import './chunk-66YJ66GG.js';
|
|
7
|
-
import './chunk-LVIPBYFE.js';
|
|
8
|
-
import './chunk-ALPYR2GC.js';
|
|
9
|
-
import './chunk-CMHVQR6P.js';
|
|
10
|
-
import './chunk-A4E5AQFK.js';
|
|
11
|
-
import './chunk-WGWSHJ2N.js';
|
|
12
|
-
import './chunk-GYR5K654.js';
|
|
13
|
-
import './chunk-RUPKBKUF.js';
|
|
14
|
-
import './chunk-6UQRVUN3.js';
|
|
15
|
-
import './chunk-3QXBFGKP.js';
|
|
16
|
-
import './chunk-Q4EULJQY.js';
|
|
17
|
-
import './chunk-DPSA4QLA.js';
|
|
18
|
-
import './chunk-55ER2KD5.js';
|
|
19
|
-
import './chunk-J5QENANM.js';
|
|
20
|
-
import './chunk-HA2WBOGQ.js';
|
|
21
|
-
import { SpanKind, context, propagation } from '@opentelemetry/api';
|
|
1
|
+
import { a as trace$1 } from "./functional-BGkT8J-h.js";
|
|
2
|
+
import { t as emitCorrelatedEvent } from "./correlated-events-Bzh5y-UB.js";
|
|
3
|
+
import { createSafeBaggageSchema } from "./business-baggage.js";
|
|
4
|
+
import { SpanKind, context, propagation } from "@opentelemetry/api";
|
|
22
5
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
6
|
+
//#region src/workflow-distributed.ts
|
|
7
|
+
/**
|
|
8
|
+
* Distributed workflow tracing with cross-service correlation
|
|
9
|
+
*
|
|
10
|
+
* Enables tracking workflows that span multiple microservices by propagating
|
|
11
|
+
* workflow identity (workflowId, stepName, stepIndex) via baggage in message headers.
|
|
12
|
+
*
|
|
13
|
+
* Unlike local workflow.ts (which uses AsyncLocalStorage), distributed workflows
|
|
14
|
+
* propagate context across network boundaries using W3C baggage.
|
|
15
|
+
*
|
|
16
|
+
* @example Order fulfillment saga across services
|
|
17
|
+
* ```typescript
|
|
18
|
+
* // Service A: Order Service
|
|
19
|
+
* import { traceDistributedWorkflow, WorkflowBaggage } from 'autotel/workflow-distributed';
|
|
20
|
+
* import { traceProducer } from 'autotel/messaging';
|
|
21
|
+
*
|
|
22
|
+
* export const createOrder = traceDistributedWorkflow({
|
|
23
|
+
* name: 'OrderFulfillment',
|
|
24
|
+
* workflowIdFrom: (order) => order.id,
|
|
25
|
+
* version: '1.0.0',
|
|
26
|
+
* })(ctx => async (order: Order) => {
|
|
27
|
+
* // Workflow baggage is auto-set
|
|
28
|
+
* await publishToInventory(order);
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* const publishToInventory = traceProducer({
|
|
32
|
+
* system: 'kafka',
|
|
33
|
+
* destination: 'inventory-requests',
|
|
34
|
+
* propagateBaggage: true, // Includes workflow.* baggage
|
|
35
|
+
* })(ctx => async (order) => {
|
|
36
|
+
* await producer.send({ topic: 'inventory-requests', value: order });
|
|
37
|
+
* });
|
|
38
|
+
*
|
|
39
|
+
* // Service B: Inventory Service
|
|
40
|
+
* import { traceDistributedStep, WorkflowBaggage } from 'autotel/workflow-distributed';
|
|
41
|
+
*
|
|
42
|
+
* export const processInventory = traceDistributedStep({
|
|
43
|
+
* name: 'ReserveInventory',
|
|
44
|
+
* extractBaggage: true, // Extracts workflow.* from headers
|
|
45
|
+
* })(ctx => async (message) => {
|
|
46
|
+
* const workflow = WorkflowBaggage.get(ctx);
|
|
47
|
+
* // workflow.workflowId === order.id (propagated from Service A)
|
|
48
|
+
* console.log(`Processing step for workflow ${workflow.workflowId}`);
|
|
49
|
+
* await reserveItems(message.items);
|
|
50
|
+
* });
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* @module
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Workflow baggage field definitions
|
|
57
|
+
*/
|
|
58
|
+
const workflowBaggageFields = {
|
|
59
|
+
/** Unique identifier for the workflow instance */
|
|
60
|
+
workflowId: {
|
|
61
|
+
type: "string",
|
|
62
|
+
maxLength: 128,
|
|
63
|
+
required: true
|
|
64
|
+
},
|
|
65
|
+
/** Name/type of the workflow (e.g., "OrderFulfillment") */
|
|
66
|
+
workflowName: {
|
|
67
|
+
type: "string",
|
|
68
|
+
maxLength: 64,
|
|
69
|
+
required: true
|
|
70
|
+
},
|
|
71
|
+
/** Version of the workflow definition */
|
|
72
|
+
workflowVersion: {
|
|
73
|
+
type: "string",
|
|
74
|
+
maxLength: 32
|
|
75
|
+
},
|
|
76
|
+
/** Current step name */
|
|
77
|
+
stepName: {
|
|
78
|
+
type: "string",
|
|
79
|
+
maxLength: 64
|
|
80
|
+
},
|
|
81
|
+
/** Current step index (0-based) */
|
|
82
|
+
stepIndex: { type: "number" },
|
|
83
|
+
/** Total number of steps (if known) */
|
|
84
|
+
totalSteps: { type: "number" },
|
|
85
|
+
/** Parent workflow ID (for sub-workflows) */
|
|
86
|
+
parentWorkflowId: {
|
|
87
|
+
type: "string",
|
|
88
|
+
maxLength: 128
|
|
89
|
+
},
|
|
90
|
+
/** Correlation ID for external systems */
|
|
91
|
+
correlationId: {
|
|
92
|
+
type: "string",
|
|
93
|
+
maxLength: 128
|
|
94
|
+
},
|
|
95
|
+
/** Workflow priority */
|
|
96
|
+
priority: {
|
|
97
|
+
type: "enum",
|
|
98
|
+
values: [
|
|
99
|
+
"low",
|
|
100
|
+
"normal",
|
|
101
|
+
"high",
|
|
102
|
+
"critical"
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
/** Initiating user/system */
|
|
106
|
+
initiatedBy: {
|
|
107
|
+
type: "string",
|
|
108
|
+
maxLength: 64
|
|
109
|
+
},
|
|
110
|
+
/** Workflow start timestamp (ISO) */
|
|
111
|
+
startedAt: {
|
|
112
|
+
type: "string",
|
|
113
|
+
maxLength: 30
|
|
114
|
+
}
|
|
49
115
|
};
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Pre-built baggage schema for distributed workflows
|
|
118
|
+
*
|
|
119
|
+
* Use this to read/write workflow context that propagates across services.
|
|
120
|
+
*
|
|
121
|
+
* @example Setting workflow baggage
|
|
122
|
+
* ```typescript
|
|
123
|
+
* WorkflowBaggage.set(ctx, {
|
|
124
|
+
* workflowId: 'order-12345',
|
|
125
|
+
* workflowName: 'OrderFulfillment',
|
|
126
|
+
* stepName: 'ReserveInventory',
|
|
127
|
+
* stepIndex: 1,
|
|
128
|
+
* });
|
|
129
|
+
* ```
|
|
130
|
+
*
|
|
131
|
+
* @example Reading workflow baggage in downstream service
|
|
132
|
+
* ```typescript
|
|
133
|
+
* const { workflowId, workflowName, stepIndex } = WorkflowBaggage.get(ctx);
|
|
134
|
+
* console.log(`Processing ${workflowName} step ${stepIndex}`);
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
const WorkflowBaggage = createSafeBaggageSchema(workflowBaggageFields, {
|
|
138
|
+
prefix: "workflow",
|
|
139
|
+
hashHighCardinality: false,
|
|
140
|
+
redactPII: false
|
|
56
141
|
});
|
|
142
|
+
/**
|
|
143
|
+
* Create a traced distributed workflow function
|
|
144
|
+
*
|
|
145
|
+
* Wraps a function as the entry point for a distributed workflow. Automatically:
|
|
146
|
+
* - Generates or extracts workflow ID
|
|
147
|
+
* - Sets workflow baggage for downstream propagation
|
|
148
|
+
* - Creates root span with workflow attributes
|
|
149
|
+
*
|
|
150
|
+
* @param config - Workflow configuration
|
|
151
|
+
* @returns Factory function for the workflow handler
|
|
152
|
+
*
|
|
153
|
+
* @example Basic usage
|
|
154
|
+
* ```typescript
|
|
155
|
+
* export const createOrder = traceDistributedWorkflow({
|
|
156
|
+
* name: 'OrderFulfillment',
|
|
157
|
+
* workflowIdFrom: (order) => order.id,
|
|
158
|
+
* version: '1.0.0',
|
|
159
|
+
* })(ctx => async (order: Order) => {
|
|
160
|
+
* ctx.recordStepProgress('ValidateOrder', 0);
|
|
161
|
+
* await validateOrder(order);
|
|
162
|
+
*
|
|
163
|
+
* ctx.recordStepProgress('ReserveInventory', 1);
|
|
164
|
+
* await publishToInventoryService(order);
|
|
165
|
+
*
|
|
166
|
+
* return { workflowId: ctx.workflowId, status: 'started' };
|
|
167
|
+
* });
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
57
170
|
function traceDistributedWorkflow(config) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
config.onComplete?.(workflowCtx, result);
|
|
139
|
-
emitCorrelatedEvent(baseCtx, "workflow.completed", {
|
|
140
|
-
"workflow.id": workflowId
|
|
141
|
-
});
|
|
142
|
-
return result;
|
|
143
|
-
} catch (error) {
|
|
144
|
-
config.onError?.(workflowCtx, error);
|
|
145
|
-
emitCorrelatedEvent(baseCtx, "workflow.failed", {
|
|
146
|
-
"workflow.id": workflowId,
|
|
147
|
-
"workflow.error": error.message
|
|
148
|
-
});
|
|
149
|
-
throw error;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
);
|
|
154
|
-
};
|
|
171
|
+
const spanName = `workflow.${config.name}`;
|
|
172
|
+
return (fnFactory) => {
|
|
173
|
+
return trace$1({
|
|
174
|
+
name: spanName,
|
|
175
|
+
spanKind: SpanKind.INTERNAL
|
|
176
|
+
}, (baseCtx) => {
|
|
177
|
+
return async (...args) => {
|
|
178
|
+
const workflowId = config.workflowIdFrom(...args);
|
|
179
|
+
const startedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
180
|
+
const baggageValues = {
|
|
181
|
+
workflowId,
|
|
182
|
+
workflowName: config.name,
|
|
183
|
+
workflowVersion: config.version,
|
|
184
|
+
stepIndex: 0,
|
|
185
|
+
totalSteps: config.totalSteps,
|
|
186
|
+
parentWorkflowId: config.parentWorkflowId,
|
|
187
|
+
correlationId: config.correlationId,
|
|
188
|
+
priority: config.priority,
|
|
189
|
+
initiatedBy: config.initiatedBy,
|
|
190
|
+
startedAt
|
|
191
|
+
};
|
|
192
|
+
WorkflowBaggage.set(baseCtx, baggageValues);
|
|
193
|
+
baseCtx.setAttribute("workflow.id", workflowId);
|
|
194
|
+
baseCtx.setAttribute("workflow.name", config.name);
|
|
195
|
+
if (config.version) baseCtx.setAttribute("workflow.version", config.version);
|
|
196
|
+
if (config.totalSteps) baseCtx.setAttribute("workflow.total_steps", config.totalSteps);
|
|
197
|
+
if (config.parentWorkflowId) baseCtx.setAttribute("workflow.parent_id", config.parentWorkflowId);
|
|
198
|
+
if (config.priority) baseCtx.setAttribute("workflow.priority", config.priority);
|
|
199
|
+
if (config.initiatedBy) baseCtx.setAttribute("workflow.initiated_by", config.initiatedBy);
|
|
200
|
+
baseCtx.setAttribute("workflow.started_at", startedAt);
|
|
201
|
+
if (config.attributes) for (const [key, value] of Object.entries(config.attributes)) baseCtx.setAttribute(key, value);
|
|
202
|
+
const workflowCtx = {
|
|
203
|
+
...baseCtx,
|
|
204
|
+
workflowId,
|
|
205
|
+
workflowName: config.name,
|
|
206
|
+
workflowVersion: config.version,
|
|
207
|
+
getWorkflowBaggage() {
|
|
208
|
+
return { ...baggageValues };
|
|
209
|
+
},
|
|
210
|
+
setWorkflowBaggage(values) {
|
|
211
|
+
Object.assign(baggageValues, values);
|
|
212
|
+
WorkflowBaggage.set(baseCtx, baggageValues);
|
|
213
|
+
},
|
|
214
|
+
getWorkflowHeaders() {
|
|
215
|
+
const headers = {};
|
|
216
|
+
const ctx = context.active();
|
|
217
|
+
propagation.inject(ctx, headers);
|
|
218
|
+
return headers;
|
|
219
|
+
},
|
|
220
|
+
recordStepProgress(stepName, stepIndex) {
|
|
221
|
+
baggageValues.stepName = stepName;
|
|
222
|
+
baggageValues.stepIndex = stepIndex;
|
|
223
|
+
WorkflowBaggage.set(baseCtx, baggageValues);
|
|
224
|
+
emitCorrelatedEvent(baseCtx, "workflow.step_progress", {
|
|
225
|
+
"workflow.step.name": stepName,
|
|
226
|
+
"workflow.step.index": stepIndex
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
config.onStart?.(workflowCtx);
|
|
231
|
+
emitCorrelatedEvent(baseCtx, "workflow.started", {
|
|
232
|
+
"workflow.id": workflowId,
|
|
233
|
+
"workflow.name": config.name
|
|
234
|
+
});
|
|
235
|
+
try {
|
|
236
|
+
const result = await fnFactory(workflowCtx)(...args);
|
|
237
|
+
config.onComplete?.(workflowCtx, result);
|
|
238
|
+
emitCorrelatedEvent(baseCtx, "workflow.completed", { "workflow.id": workflowId });
|
|
239
|
+
return result;
|
|
240
|
+
} catch (error) {
|
|
241
|
+
config.onError?.(workflowCtx, error);
|
|
242
|
+
emitCorrelatedEvent(baseCtx, "workflow.failed", {
|
|
243
|
+
"workflow.id": workflowId,
|
|
244
|
+
"workflow.error": error.message
|
|
245
|
+
});
|
|
246
|
+
throw error;
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
});
|
|
250
|
+
};
|
|
155
251
|
}
|
|
252
|
+
/**
|
|
253
|
+
* Create a traced distributed workflow step
|
|
254
|
+
*
|
|
255
|
+
* Use in downstream services to trace steps that are part of a distributed workflow.
|
|
256
|
+
* Automatically extracts workflow baggage from the current context.
|
|
257
|
+
*
|
|
258
|
+
* @param config - Step configuration
|
|
259
|
+
* @returns Factory function for the step handler
|
|
260
|
+
*
|
|
261
|
+
* @example Consumer in downstream service
|
|
262
|
+
* ```typescript
|
|
263
|
+
* export const processInventory = traceConsumer({
|
|
264
|
+
* system: 'kafka',
|
|
265
|
+
* destination: 'inventory-requests',
|
|
266
|
+
* extractBaggage: true, // Extracts workflow.* from headers
|
|
267
|
+
* })(ctx => {
|
|
268
|
+
* // Wrap inner logic with traceDistributedStep
|
|
269
|
+
* return traceDistributedStep({
|
|
270
|
+
* name: 'ReserveInventory',
|
|
271
|
+
* })(stepCtx => async (message) => {
|
|
272
|
+
* console.log(`Processing workflow ${stepCtx.workflowId}`);
|
|
273
|
+
* await reserveItems(message.items);
|
|
274
|
+
* })(message);
|
|
275
|
+
* });
|
|
276
|
+
* ```
|
|
277
|
+
*
|
|
278
|
+
* @example Standalone step handler
|
|
279
|
+
* ```typescript
|
|
280
|
+
* export const reserveInventory = traceDistributedStep({
|
|
281
|
+
* name: 'ReserveInventory',
|
|
282
|
+
* idempotent: true,
|
|
283
|
+
* })(ctx => async (request: InventoryRequest) => {
|
|
284
|
+
* if (ctx.workflowId) {
|
|
285
|
+
* console.log(`Part of workflow ${ctx.workflowId}, step ${ctx.stepIndex}`);
|
|
286
|
+
* }
|
|
287
|
+
* return await inventoryService.reserve(request.items);
|
|
288
|
+
* });
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
156
291
|
function traceDistributedStep(config) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
emitCorrelatedEvent(
|
|
246
|
-
baseCtx,
|
|
247
|
-
"workflow.step.compensation_registered",
|
|
248
|
-
{
|
|
249
|
-
"workflow.step.name": config.name,
|
|
250
|
-
...data && {
|
|
251
|
-
"workflow.step.compensation_data": JSON.stringify(data)
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
);
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
config.onStart?.(stepCtx);
|
|
258
|
-
emitCorrelatedEvent(baseCtx, "workflow.step.started", {
|
|
259
|
-
"workflow.step.name": config.name,
|
|
260
|
-
...baggageValues && { "workflow.id": baggageValues.workflowId }
|
|
261
|
-
});
|
|
262
|
-
try {
|
|
263
|
-
const userFn = fnFactory(stepCtx);
|
|
264
|
-
const result = await userFn(...args);
|
|
265
|
-
config.onComplete?.(stepCtx, result);
|
|
266
|
-
emitCorrelatedEvent(baseCtx, "workflow.step.completed", {
|
|
267
|
-
"workflow.step.name": config.name
|
|
268
|
-
});
|
|
269
|
-
return result;
|
|
270
|
-
} catch (error) {
|
|
271
|
-
config.onError?.(stepCtx, error);
|
|
272
|
-
emitCorrelatedEvent(baseCtx, "workflow.step.failed", {
|
|
273
|
-
"workflow.step.name": config.name,
|
|
274
|
-
"workflow.step.error": error.message,
|
|
275
|
-
...compensationData && {
|
|
276
|
-
"workflow.step.requires_compensation": true
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
throw error;
|
|
280
|
-
}
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
);
|
|
284
|
-
};
|
|
292
|
+
const spanName = `workflow.step.${config.name}`;
|
|
293
|
+
return (fnFactory) => {
|
|
294
|
+
return trace$1({
|
|
295
|
+
name: spanName,
|
|
296
|
+
spanKind: SpanKind.INTERNAL
|
|
297
|
+
}, (baseCtx) => {
|
|
298
|
+
return async (...args) => {
|
|
299
|
+
let baggageValues = null;
|
|
300
|
+
const extractBaggage = config.extractBaggage ?? true;
|
|
301
|
+
if (typeof extractBaggage === "function") baggageValues = extractBaggage(args);
|
|
302
|
+
else if (extractBaggage) {
|
|
303
|
+
const extracted = WorkflowBaggage.get(baseCtx);
|
|
304
|
+
if (extracted.workflowId && extracted.workflowName) baggageValues = extracted;
|
|
305
|
+
}
|
|
306
|
+
let stepIndex;
|
|
307
|
+
if (config.stepIndex !== void 0) stepIndex = config.stepIndex;
|
|
308
|
+
else if (baggageValues?.stepIndex === void 0) stepIndex = null;
|
|
309
|
+
else stepIndex = baggageValues.stepIndex + 1;
|
|
310
|
+
if (baggageValues) {
|
|
311
|
+
baggageValues.stepName = config.name;
|
|
312
|
+
if (stepIndex !== null) baggageValues.stepIndex = stepIndex;
|
|
313
|
+
WorkflowBaggage.set(baseCtx, baggageValues);
|
|
314
|
+
}
|
|
315
|
+
baseCtx.setAttribute("workflow.step.name", config.name);
|
|
316
|
+
if (stepIndex !== null) baseCtx.setAttribute("workflow.step.index", stepIndex);
|
|
317
|
+
if (config.idempotent !== void 0) baseCtx.setAttribute("workflow.step.idempotent", config.idempotent);
|
|
318
|
+
if (config.isCompensation) baseCtx.setAttribute("workflow.step.is_compensation", true);
|
|
319
|
+
if (baggageValues) {
|
|
320
|
+
baseCtx.setAttribute("workflow.id", baggageValues.workflowId);
|
|
321
|
+
baseCtx.setAttribute("workflow.name", baggageValues.workflowName);
|
|
322
|
+
if (baggageValues.workflowVersion) baseCtx.setAttribute("workflow.version", baggageValues.workflowVersion);
|
|
323
|
+
if (baggageValues.totalSteps) baseCtx.setAttribute("workflow.total_steps", baggageValues.totalSteps);
|
|
324
|
+
}
|
|
325
|
+
if (config.attributes) for (const [key, value] of Object.entries(config.attributes)) baseCtx.setAttribute(key, value);
|
|
326
|
+
let compensationData;
|
|
327
|
+
const stepCtx = {
|
|
328
|
+
...baseCtx,
|
|
329
|
+
workflowId: baggageValues?.workflowId ?? null,
|
|
330
|
+
workflowName: baggageValues?.workflowName ?? null,
|
|
331
|
+
stepName: config.name,
|
|
332
|
+
stepIndex,
|
|
333
|
+
isCompensation: config.isCompensation ?? false,
|
|
334
|
+
getWorkflowBaggage() {
|
|
335
|
+
return baggageValues ? { ...baggageValues } : null;
|
|
336
|
+
},
|
|
337
|
+
updateWorkflowBaggage(values) {
|
|
338
|
+
if (baggageValues) {
|
|
339
|
+
Object.assign(baggageValues, values);
|
|
340
|
+
WorkflowBaggage.set(baseCtx, baggageValues);
|
|
341
|
+
}
|
|
342
|
+
},
|
|
343
|
+
getWorkflowHeaders() {
|
|
344
|
+
const headers = {};
|
|
345
|
+
const ctx = context.active();
|
|
346
|
+
propagation.inject(ctx, headers);
|
|
347
|
+
return headers;
|
|
348
|
+
},
|
|
349
|
+
requiresCompensation(data) {
|
|
350
|
+
compensationData = data;
|
|
351
|
+
baseCtx.setAttribute("workflow.step.requires_compensation", true);
|
|
352
|
+
emitCorrelatedEvent(baseCtx, "workflow.step.compensation_registered", {
|
|
353
|
+
"workflow.step.name": config.name,
|
|
354
|
+
...data && { "workflow.step.compensation_data": JSON.stringify(data) }
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
config.onStart?.(stepCtx);
|
|
359
|
+
emitCorrelatedEvent(baseCtx, "workflow.step.started", {
|
|
360
|
+
"workflow.step.name": config.name,
|
|
361
|
+
...baggageValues && { "workflow.id": baggageValues.workflowId }
|
|
362
|
+
});
|
|
363
|
+
try {
|
|
364
|
+
const result = await fnFactory(stepCtx)(...args);
|
|
365
|
+
config.onComplete?.(stepCtx, result);
|
|
366
|
+
emitCorrelatedEvent(baseCtx, "workflow.step.completed", { "workflow.step.name": config.name });
|
|
367
|
+
return result;
|
|
368
|
+
} catch (error) {
|
|
369
|
+
config.onError?.(stepCtx, error);
|
|
370
|
+
emitCorrelatedEvent(baseCtx, "workflow.step.failed", {
|
|
371
|
+
"workflow.step.name": config.name,
|
|
372
|
+
"workflow.step.error": error.message,
|
|
373
|
+
...compensationData && { "workflow.step.requires_compensation": true }
|
|
374
|
+
});
|
|
375
|
+
throw error;
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
});
|
|
379
|
+
};
|
|
285
380
|
}
|
|
381
|
+
/**
|
|
382
|
+
* Generate a unique workflow ID
|
|
383
|
+
*
|
|
384
|
+
* @param prefix - Optional prefix for the ID
|
|
385
|
+
* @returns A unique workflow ID
|
|
386
|
+
*
|
|
387
|
+
* @example
|
|
388
|
+
* ```typescript
|
|
389
|
+
* const workflowId = generateWorkflowId('order'); // "order-abc123def456"
|
|
390
|
+
* ```
|
|
391
|
+
*/
|
|
286
392
|
function generateWorkflowId(prefix) {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
return prefix ? `${prefix}-${id}` : id;
|
|
393
|
+
const random = Math.random().toString(36).slice(2, 15);
|
|
394
|
+
const id = `${Date.now().toString(36)}-${random}`;
|
|
395
|
+
return prefix ? `${prefix}-${id}` : id;
|
|
291
396
|
}
|
|
397
|
+
/**
|
|
398
|
+
* Check if the current context is part of a distributed workflow
|
|
399
|
+
*
|
|
400
|
+
* @param ctx - The trace context
|
|
401
|
+
* @returns True if workflow baggage is present
|
|
402
|
+
*/
|
|
292
403
|
function isInDistributedWorkflow(ctx) {
|
|
293
|
-
|
|
294
|
-
|
|
404
|
+
const baggage = WorkflowBaggage.get(ctx);
|
|
405
|
+
return !!(baggage.workflowId && baggage.workflowName);
|
|
295
406
|
}
|
|
407
|
+
/**
|
|
408
|
+
* Get workflow progress information
|
|
409
|
+
*
|
|
410
|
+
* @param ctx - The trace context
|
|
411
|
+
* @returns Progress info or null if not in a workflow
|
|
412
|
+
*/
|
|
296
413
|
function getWorkflowProgress(ctx) {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
percentComplete
|
|
309
|
-
};
|
|
414
|
+
const baggage = WorkflowBaggage.get(ctx);
|
|
415
|
+
if (!baggage.workflowId || !baggage.workflowName) return null;
|
|
416
|
+
const percentComplete = baggage.totalSteps && baggage.stepIndex !== void 0 ? Math.round((baggage.stepIndex + 1) / baggage.totalSteps * 100) : null;
|
|
417
|
+
return {
|
|
418
|
+
workflowId: baggage.workflowId,
|
|
419
|
+
workflowName: baggage.workflowName,
|
|
420
|
+
currentStep: baggage.stepName ?? null,
|
|
421
|
+
currentStepIndex: baggage.stepIndex ?? null,
|
|
422
|
+
totalSteps: baggage.totalSteps ?? null,
|
|
423
|
+
percentComplete
|
|
424
|
+
};
|
|
310
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* Create workflow correlation headers for manual propagation
|
|
428
|
+
*
|
|
429
|
+
* Use when you need to manually add workflow context to outgoing requests.
|
|
430
|
+
*
|
|
431
|
+
* @param values - Workflow baggage values
|
|
432
|
+
* @returns Headers object with workflow baggage
|
|
433
|
+
*
|
|
434
|
+
* @example
|
|
435
|
+
* ```typescript
|
|
436
|
+
* const headers = createWorkflowHeaders({
|
|
437
|
+
* workflowId: 'order-123',
|
|
438
|
+
* workflowName: 'OrderFulfillment',
|
|
439
|
+
* stepIndex: 2,
|
|
440
|
+
* });
|
|
441
|
+
*
|
|
442
|
+
* await fetch('/api/inventory', { headers });
|
|
443
|
+
* ```
|
|
444
|
+
*/
|
|
311
445
|
function createWorkflowHeaders(values) {
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
);
|
|
328
|
-
}
|
|
329
|
-
if (values.stepName) {
|
|
330
|
-
baggageEntries.push(
|
|
331
|
-
`workflow.stepName=${encodeURIComponent(values.stepName)}`
|
|
332
|
-
);
|
|
333
|
-
}
|
|
334
|
-
if (values.stepIndex !== void 0) {
|
|
335
|
-
baggageEntries.push(`workflow.stepIndex=${values.stepIndex}`);
|
|
336
|
-
}
|
|
337
|
-
if (values.totalSteps !== void 0) {
|
|
338
|
-
baggageEntries.push(`workflow.totalSteps=${values.totalSteps}`);
|
|
339
|
-
}
|
|
340
|
-
if (values.priority) {
|
|
341
|
-
baggageEntries.push(`workflow.priority=${values.priority}`);
|
|
342
|
-
}
|
|
343
|
-
if (values.correlationId) {
|
|
344
|
-
baggageEntries.push(
|
|
345
|
-
`workflow.correlationId=${encodeURIComponent(values.correlationId)}`
|
|
346
|
-
);
|
|
347
|
-
}
|
|
348
|
-
if (values.parentWorkflowId) {
|
|
349
|
-
baggageEntries.push(
|
|
350
|
-
`workflow.parentWorkflowId=${encodeURIComponent(values.parentWorkflowId)}`
|
|
351
|
-
);
|
|
352
|
-
}
|
|
353
|
-
if (values.initiatedBy) {
|
|
354
|
-
baggageEntries.push(
|
|
355
|
-
`workflow.initiatedBy=${encodeURIComponent(values.initiatedBy)}`
|
|
356
|
-
);
|
|
357
|
-
}
|
|
358
|
-
if (values.startedAt) {
|
|
359
|
-
baggageEntries.push(
|
|
360
|
-
`workflow.startedAt=${encodeURIComponent(values.startedAt)}`
|
|
361
|
-
);
|
|
362
|
-
}
|
|
363
|
-
if (baggageEntries.length > 0) {
|
|
364
|
-
headers["baggage"] = baggageEntries.join(",");
|
|
365
|
-
}
|
|
366
|
-
return headers;
|
|
446
|
+
const headers = {};
|
|
447
|
+
const baggageEntries = [];
|
|
448
|
+
if (values.workflowId) baggageEntries.push(`workflow.workflowId=${encodeURIComponent(values.workflowId)}`);
|
|
449
|
+
if (values.workflowName) baggageEntries.push(`workflow.workflowName=${encodeURIComponent(values.workflowName)}`);
|
|
450
|
+
if (values.workflowVersion) baggageEntries.push(`workflow.workflowVersion=${encodeURIComponent(values.workflowVersion)}`);
|
|
451
|
+
if (values.stepName) baggageEntries.push(`workflow.stepName=${encodeURIComponent(values.stepName)}`);
|
|
452
|
+
if (values.stepIndex !== void 0) baggageEntries.push(`workflow.stepIndex=${values.stepIndex}`);
|
|
453
|
+
if (values.totalSteps !== void 0) baggageEntries.push(`workflow.totalSteps=${values.totalSteps}`);
|
|
454
|
+
if (values.priority) baggageEntries.push(`workflow.priority=${values.priority}`);
|
|
455
|
+
if (values.correlationId) baggageEntries.push(`workflow.correlationId=${encodeURIComponent(values.correlationId)}`);
|
|
456
|
+
if (values.parentWorkflowId) baggageEntries.push(`workflow.parentWorkflowId=${encodeURIComponent(values.parentWorkflowId)}`);
|
|
457
|
+
if (values.initiatedBy) baggageEntries.push(`workflow.initiatedBy=${encodeURIComponent(values.initiatedBy)}`);
|
|
458
|
+
if (values.startedAt) baggageEntries.push(`workflow.startedAt=${encodeURIComponent(values.startedAt)}`);
|
|
459
|
+
if (baggageEntries.length > 0) headers["baggage"] = baggageEntries.join(",");
|
|
460
|
+
return headers;
|
|
367
461
|
}
|
|
462
|
+
/**
|
|
463
|
+
* Parse workflow context from baggage header
|
|
464
|
+
*
|
|
465
|
+
* @param baggageHeader - The baggage header value
|
|
466
|
+
* @returns Parsed workflow values or null
|
|
467
|
+
*/
|
|
368
468
|
function parseWorkflowFromBaggage(baggageHeader) {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
break;
|
|
414
|
-
}
|
|
415
|
-
case "workflow.initiatedBy": {
|
|
416
|
-
values.initiatedBy = decodedValue;
|
|
417
|
-
break;
|
|
418
|
-
}
|
|
419
|
-
case "workflow.startedAt": {
|
|
420
|
-
values.startedAt = decodedValue;
|
|
421
|
-
break;
|
|
422
|
-
}
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
return Object.keys(values).length > 0 ? values : null;
|
|
469
|
+
if (!baggageHeader) return null;
|
|
470
|
+
const values = {};
|
|
471
|
+
const entries = baggageHeader.split(",");
|
|
472
|
+
for (const entry of entries) {
|
|
473
|
+
const [key, value] = entry.trim().split("=");
|
|
474
|
+
if (!key || !value) continue;
|
|
475
|
+
const decodedValue = decodeURIComponent(value);
|
|
476
|
+
switch (key) {
|
|
477
|
+
case "workflow.workflowId":
|
|
478
|
+
values.workflowId = decodedValue;
|
|
479
|
+
break;
|
|
480
|
+
case "workflow.workflowName":
|
|
481
|
+
values.workflowName = decodedValue;
|
|
482
|
+
break;
|
|
483
|
+
case "workflow.workflowVersion":
|
|
484
|
+
values.workflowVersion = decodedValue;
|
|
485
|
+
break;
|
|
486
|
+
case "workflow.stepName":
|
|
487
|
+
values.stepName = decodedValue;
|
|
488
|
+
break;
|
|
489
|
+
case "workflow.stepIndex":
|
|
490
|
+
values.stepIndex = Number.parseInt(decodedValue, 10);
|
|
491
|
+
break;
|
|
492
|
+
case "workflow.totalSteps":
|
|
493
|
+
values.totalSteps = Number.parseInt(decodedValue, 10);
|
|
494
|
+
break;
|
|
495
|
+
case "workflow.priority":
|
|
496
|
+
values.priority = decodedValue;
|
|
497
|
+
break;
|
|
498
|
+
case "workflow.correlationId":
|
|
499
|
+
values.correlationId = decodedValue;
|
|
500
|
+
break;
|
|
501
|
+
case "workflow.parentWorkflowId":
|
|
502
|
+
values.parentWorkflowId = decodedValue;
|
|
503
|
+
break;
|
|
504
|
+
case "workflow.initiatedBy":
|
|
505
|
+
values.initiatedBy = decodedValue;
|
|
506
|
+
break;
|
|
507
|
+
case "workflow.startedAt":
|
|
508
|
+
values.startedAt = decodedValue;
|
|
509
|
+
break;
|
|
510
|
+
}
|
|
511
|
+
}
|
|
512
|
+
return Object.keys(values).length > 0 ? values : null;
|
|
426
513
|
}
|
|
427
514
|
|
|
515
|
+
//#endregion
|
|
428
516
|
export { WorkflowBaggage, createWorkflowHeaders, generateWorkflowId, getWorkflowProgress, isInDistributedWorkflow, parseWorkflowFromBaggage, traceDistributedStep, traceDistributedWorkflow };
|
|
429
|
-
//# sourceMappingURL=workflow-distributed.js.map
|
|
430
517
|
//# sourceMappingURL=workflow-distributed.js.map
|