autotel 3.5.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 -53
- 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 -16
- 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 -65
- 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 -63
- 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 -36
- 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 -20
- 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 -56
- 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 -19
- package/dist/http.cjs +276 -175
- 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 -173
- 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 +1050 -1184
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +401 -570
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +401 -570
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +913 -725
- 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 -35
- 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 -20
- 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 -38
- 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 -19
- 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 +201 -0
- package/dist/validate.cjs.map +1 -0
- package/dist/validate.d.cts +105 -0
- package/dist/validate.d.cts.map +1 -0
- package/dist/validate.d.ts +105 -0
- package/dist/validate.d.ts.map +1 -0
- package/dist/validate.js +197 -0
- package/dist/validate.js.map +1 -0
- package/dist/validation-attributes.cjs +45 -0
- package/dist/validation-attributes.cjs.map +1 -0
- package/dist/validation-attributes.d.cts +33 -0
- package/dist/validation-attributes.d.cts.map +1 -0
- package/dist/validation-attributes.d.ts +33 -0
- package/dist/validation-attributes.d.ts.map +1 -0
- package/dist/validation-attributes.js +41 -0
- package/dist/validation-attributes.js.map +1 -0
- package/dist/webhook.cjs +286 -255
- 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 -253
- package/dist/webhook.js.map +1 -1
- package/dist/workflow-distributed.cjs +498 -411
- 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 -409
- package/dist/workflow-distributed.js.map +1 -1
- package/dist/workflow.cjs +405 -39
- 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 -20
- 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 +14 -4
- package/src/define-event.ts +2 -21
- package/src/index.ts +3 -0
- package/src/request-logger.test.ts +53 -1
- package/src/request-logger.ts +58 -0
- package/src/stable-hash.ts +27 -0
- package/src/validate.test.ts +287 -0
- package/src/validate.ts +307 -0
- package/src/validation-attributes.ts +43 -0
- 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-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-AC5GNZKB.cjs +0 -344
- package/dist/chunk-AC5GNZKB.cjs.map +0 -1
- package/dist/chunk-ALPYR2GC.js +0 -1061
- package/dist/chunk-ALPYR2GC.js.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-DPSA4QLA.js +0 -344
- package/dist/chunk-DPSA4QLA.js.map +0 -1
- package/dist/chunk-DQEHQNQE.js +0 -795
- package/dist/chunk-DQEHQNQE.js.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-FGNDN2FD.cjs +0 -1242
- package/dist/chunk-FGNDN2FD.cjs.map +0 -1
- package/dist/chunk-FU6R566Y.cjs +0 -236
- package/dist/chunk-FU6R566Y.cjs.map +0 -1
- package/dist/chunk-GBFTC7Q7.cjs +0 -837
- package/dist/chunk-GBFTC7Q7.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-LITNXTTT.js +0 -3
- package/dist/chunk-LITNXTTT.js.map +0 -1
- package/dist/chunk-M3LFHHTN.cjs +0 -764
- package/dist/chunk-M3LFHHTN.cjs.map +0 -1
- package/dist/chunk-NEIB3TLD.cjs +0 -360
- package/dist/chunk-NEIB3TLD.cjs.map +0 -1
- package/dist/chunk-NVAI5CCN.cjs +0 -39
- package/dist/chunk-NVAI5CCN.cjs.map +0 -1
- package/dist/chunk-NVGPMGI4.js +0 -95
- package/dist/chunk-NVGPMGI4.js.map +0 -1
- package/dist/chunk-NZ72VDNY.cjs +0 -4
- package/dist/chunk-NZ72VDNY.cjs.map +0 -1
- package/dist/chunk-O4JZUCUE.js +0 -1174
- package/dist/chunk-O4JZUCUE.js.map +0 -1
- package/dist/chunk-O7JOKRN2.js +0 -833
- package/dist/chunk-O7JOKRN2.js.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-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-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-URHPSJW2.js +0 -339
- package/dist/chunk-URHPSJW2.js.map +0 -1
- package/dist/chunk-UY3UYPBZ.cjs +0 -77
- package/dist/chunk-UY3UYPBZ.cjs.map +0 -1
- package/dist/chunk-VG2ABKJX.cjs +0 -100
- package/dist/chunk-VG2ABKJX.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-YWCESU4Y.js +0 -1233
- package/dist/chunk-YWCESU4Y.js.map +0 -1
- package/dist/chunk-Z6HRSM2Y.cjs +0 -799
- package/dist/chunk-Z6HRSM2Y.cjs.map +0 -1
- package/dist/chunk-Z7PW3KHL.cjs +0 -1198
- package/dist/chunk-Z7PW3KHL.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/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
package/dist/chunk-TC5ZPWM4.cjs
DELETED
|
@@ -1,289 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkESLWRGAG_cjs = require('./chunk-ESLWRGAG.cjs');
|
|
4
|
-
require('@opentelemetry/api');
|
|
5
|
-
|
|
6
|
-
var Metric = class {
|
|
7
|
-
serviceName;
|
|
8
|
-
eventCounter;
|
|
9
|
-
funnelCounter;
|
|
10
|
-
outcomeCounter;
|
|
11
|
-
valueHistogram;
|
|
12
|
-
logger;
|
|
13
|
-
collector;
|
|
14
|
-
/**
|
|
15
|
-
* Create a new Metrics instance
|
|
16
|
-
*
|
|
17
|
-
* @param serviceName - Service name for metric namespacing
|
|
18
|
-
* @param options - Optional configuration (logger, collector, namespace, metrics)
|
|
19
|
-
*
|
|
20
|
-
* @example Basic usage (default 'metrics' namespace)
|
|
21
|
-
* ```typescript
|
|
22
|
-
* const metrics = new Metric('checkout');
|
|
23
|
-
* // Creates: checkout.metrics.events, checkout.metrics.funnel, etc.
|
|
24
|
-
* ```
|
|
25
|
-
*
|
|
26
|
-
* @example Custom namespace
|
|
27
|
-
* ```typescript
|
|
28
|
-
* const metrics = new Metric('api', { namespace: 'business' });
|
|
29
|
-
* // Creates: api.business.events, api.business.funnel, etc.
|
|
30
|
-
* ```
|
|
31
|
-
*
|
|
32
|
-
* @example Custom metric names and descriptions
|
|
33
|
-
* ```typescript
|
|
34
|
-
* const metrics = new Metric('payments', {
|
|
35
|
-
* metrics: {
|
|
36
|
-
* outcomes: {
|
|
37
|
-
* name: 'payments.transactions',
|
|
38
|
-
* description: 'Payment transaction outcomes',
|
|
39
|
-
* unit: 'transactions'
|
|
40
|
-
* },
|
|
41
|
-
* value: {
|
|
42
|
-
* name: 'payments.revenue',
|
|
43
|
-
* description: 'Payment revenue in USD',
|
|
44
|
-
* unit: 'USD'
|
|
45
|
-
* }
|
|
46
|
-
* }
|
|
47
|
-
* });
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
constructor(serviceName, options = {}) {
|
|
51
|
-
this.serviceName = serviceName;
|
|
52
|
-
this.logger = options.logger;
|
|
53
|
-
this.collector = options.collector;
|
|
54
|
-
const config = chunkESLWRGAG_cjs.getConfig();
|
|
55
|
-
const meter = config.meter;
|
|
56
|
-
const namespace = options.namespace || "metrics";
|
|
57
|
-
const metricsConfig = options.metrics || {};
|
|
58
|
-
const eventsConfig = metricsConfig.events || {};
|
|
59
|
-
this.eventCounter = meter.createCounter(
|
|
60
|
-
eventsConfig.name || `${serviceName}.${namespace}.events`,
|
|
61
|
-
{
|
|
62
|
-
description: eventsConfig.description || "Count of business events",
|
|
63
|
-
unit: eventsConfig.unit || "1"
|
|
64
|
-
}
|
|
65
|
-
);
|
|
66
|
-
const funnelConfig = metricsConfig.funnel || {};
|
|
67
|
-
this.funnelCounter = meter.createCounter(
|
|
68
|
-
funnelConfig.name || `${serviceName}.${namespace}.funnel`,
|
|
69
|
-
{
|
|
70
|
-
description: funnelConfig.description || "Conversion funnel tracking",
|
|
71
|
-
unit: funnelConfig.unit || "1"
|
|
72
|
-
}
|
|
73
|
-
);
|
|
74
|
-
const outcomesConfig = metricsConfig.outcomes || {};
|
|
75
|
-
this.outcomeCounter = meter.createCounter(
|
|
76
|
-
outcomesConfig.name || `${serviceName}.${namespace}.outcomes`,
|
|
77
|
-
{
|
|
78
|
-
description: outcomesConfig.description || "Outcome tracking (success/failure)",
|
|
79
|
-
unit: outcomesConfig.unit || "1"
|
|
80
|
-
}
|
|
81
|
-
);
|
|
82
|
-
const valueConfig = metricsConfig.value || {};
|
|
83
|
-
this.valueHistogram = meter.createHistogram(
|
|
84
|
-
valueConfig.name || `${serviceName}.${namespace}.value`,
|
|
85
|
-
{
|
|
86
|
-
description: valueConfig.description || "Value metrics (revenue, counts, etc.)",
|
|
87
|
-
unit: valueConfig.unit || "1"
|
|
88
|
-
}
|
|
89
|
-
);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Track a business event as a metric
|
|
93
|
-
*
|
|
94
|
-
* Use this for tracking user actions, business events, product usage as metrics:
|
|
95
|
-
* - "user.signup"
|
|
96
|
-
* - "order.completed"
|
|
97
|
-
* - "feature.used"
|
|
98
|
-
*
|
|
99
|
-
* @example
|
|
100
|
-
* ```typescript
|
|
101
|
-
* // Track user signup as metric
|
|
102
|
-
* metrics.trackEvent('user.signup', {
|
|
103
|
-
* userId: '123',
|
|
104
|
-
* plan: 'pro'
|
|
105
|
-
* })
|
|
106
|
-
*
|
|
107
|
-
* // Track order as metric
|
|
108
|
-
* metrics.trackEvent('order.completed', {
|
|
109
|
-
* orderId: 'ord_123',
|
|
110
|
-
* amount: 99.99
|
|
111
|
-
* })
|
|
112
|
-
* ```
|
|
113
|
-
*/
|
|
114
|
-
trackEvent(eventName, attributes) {
|
|
115
|
-
const attrs = {
|
|
116
|
-
service: this.serviceName,
|
|
117
|
-
event: eventName,
|
|
118
|
-
...attributes
|
|
119
|
-
};
|
|
120
|
-
this.eventCounter.add(1, attrs);
|
|
121
|
-
this.logger?.info(
|
|
122
|
-
{
|
|
123
|
-
event: eventName,
|
|
124
|
-
attributes
|
|
125
|
-
},
|
|
126
|
-
"Metric event tracked"
|
|
127
|
-
);
|
|
128
|
-
this.collector?.recordEvent({
|
|
129
|
-
event: eventName,
|
|
130
|
-
attributes,
|
|
131
|
-
service: this.serviceName,
|
|
132
|
-
timestamp: Date.now()
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Track conversion funnel steps as metrics
|
|
137
|
-
*
|
|
138
|
-
* Monitor where users drop off in multi-step processes.
|
|
139
|
-
*
|
|
140
|
-
* @example
|
|
141
|
-
* ```typescript
|
|
142
|
-
* // Track signup funnel
|
|
143
|
-
* metrics.trackFunnelStep('signup', 'started', { userId: '123' })
|
|
144
|
-
* metrics.trackFunnelStep('signup', 'email_verified', { userId: '123' })
|
|
145
|
-
* metrics.trackFunnelStep('signup', 'completed', { userId: '123' })
|
|
146
|
-
*
|
|
147
|
-
* // Track checkout flow
|
|
148
|
-
* metrics.trackFunnelStep('checkout', 'started', { cartValue: 99.99 })
|
|
149
|
-
* metrics.trackFunnelStep('checkout', 'payment_info', { cartValue: 99.99 })
|
|
150
|
-
* metrics.trackFunnelStep('checkout', 'completed', { cartValue: 99.99 })
|
|
151
|
-
* ```
|
|
152
|
-
*/
|
|
153
|
-
trackFunnelStep(funnelName, status, attributes) {
|
|
154
|
-
const attrs = {
|
|
155
|
-
service: this.serviceName,
|
|
156
|
-
funnel: funnelName,
|
|
157
|
-
status,
|
|
158
|
-
...attributes
|
|
159
|
-
};
|
|
160
|
-
this.funnelCounter.add(1, attrs);
|
|
161
|
-
this.logger?.info(
|
|
162
|
-
{
|
|
163
|
-
funnel: funnelName,
|
|
164
|
-
status,
|
|
165
|
-
attributes
|
|
166
|
-
},
|
|
167
|
-
"Funnel step tracked"
|
|
168
|
-
);
|
|
169
|
-
this.collector?.recordFunnelStep({
|
|
170
|
-
funnel: funnelName,
|
|
171
|
-
status,
|
|
172
|
-
attributes,
|
|
173
|
-
service: this.serviceName,
|
|
174
|
-
timestamp: Date.now()
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Track outcomes (success/failure/partial) as metrics
|
|
179
|
-
*
|
|
180
|
-
* Monitor success rates of critical operations.
|
|
181
|
-
*
|
|
182
|
-
* @example
|
|
183
|
-
* ```typescript
|
|
184
|
-
* // Track email delivery
|
|
185
|
-
* metrics.trackOutcome('email.delivery', 'success', {
|
|
186
|
-
* recipientType: 'user',
|
|
187
|
-
* emailType: 'welcome'
|
|
188
|
-
* })
|
|
189
|
-
*
|
|
190
|
-
* metrics.trackOutcome('email.delivery', 'failure', {
|
|
191
|
-
* recipientType: 'user',
|
|
192
|
-
* errorCode: 'invalid_email'
|
|
193
|
-
* })
|
|
194
|
-
*
|
|
195
|
-
* // Track payment processing
|
|
196
|
-
* metrics.trackOutcome('payment.process', 'success', { amount: 99.99 })
|
|
197
|
-
* metrics.trackOutcome('payment.process', 'failure', { error: 'insufficient_funds' })
|
|
198
|
-
* ```
|
|
199
|
-
*/
|
|
200
|
-
trackOutcome(operationName, status, attributes) {
|
|
201
|
-
const attrs = {
|
|
202
|
-
service: this.serviceName,
|
|
203
|
-
operation: operationName,
|
|
204
|
-
status,
|
|
205
|
-
...attributes
|
|
206
|
-
};
|
|
207
|
-
this.outcomeCounter.add(1, attrs);
|
|
208
|
-
this.logger?.info(
|
|
209
|
-
{
|
|
210
|
-
operation: operationName,
|
|
211
|
-
status,
|
|
212
|
-
attributes
|
|
213
|
-
},
|
|
214
|
-
"Outcome tracked"
|
|
215
|
-
);
|
|
216
|
-
this.collector?.recordOutcome({
|
|
217
|
-
operation: operationName,
|
|
218
|
-
status,
|
|
219
|
-
attributes,
|
|
220
|
-
service: this.serviceName,
|
|
221
|
-
timestamp: Date.now()
|
|
222
|
-
});
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* Track value metrics
|
|
226
|
-
*
|
|
227
|
-
* Record numerical values like revenue, transaction amounts,
|
|
228
|
-
* item counts, processing times, engagement scores, etc.
|
|
229
|
-
*
|
|
230
|
-
* @example
|
|
231
|
-
* ```typescript
|
|
232
|
-
* // Track revenue
|
|
233
|
-
* metrics.trackValue('order.revenue', 149.99, {
|
|
234
|
-
* currency: 'USD',
|
|
235
|
-
* productCategory: 'electronics'
|
|
236
|
-
* })
|
|
237
|
-
*
|
|
238
|
-
* // Track items per cart
|
|
239
|
-
* metrics.trackValue('cart.item_count', 5, {
|
|
240
|
-
* userId: '123'
|
|
241
|
-
* })
|
|
242
|
-
*
|
|
243
|
-
* // Track processing time
|
|
244
|
-
* metrics.trackValue('api.response_time', 250, {
|
|
245
|
-
* unit: 'ms',
|
|
246
|
-
* endpoint: '/api/checkout'
|
|
247
|
-
* })
|
|
248
|
-
* ```
|
|
249
|
-
*/
|
|
250
|
-
trackValue(metricName, value, attributes) {
|
|
251
|
-
const attrs = {
|
|
252
|
-
service: this.serviceName,
|
|
253
|
-
metric: metricName,
|
|
254
|
-
...attributes
|
|
255
|
-
};
|
|
256
|
-
this.valueHistogram.record(value, attrs);
|
|
257
|
-
this.logger?.debug(
|
|
258
|
-
{
|
|
259
|
-
metric: metricName,
|
|
260
|
-
value,
|
|
261
|
-
attributes
|
|
262
|
-
},
|
|
263
|
-
"Value metric tracked"
|
|
264
|
-
);
|
|
265
|
-
this.collector?.recordValue({
|
|
266
|
-
metric: metricName,
|
|
267
|
-
value,
|
|
268
|
-
attributes,
|
|
269
|
-
service: this.serviceName,
|
|
270
|
-
timestamp: Date.now()
|
|
271
|
-
});
|
|
272
|
-
}
|
|
273
|
-
};
|
|
274
|
-
var metricsInstances = /* @__PURE__ */ new Map();
|
|
275
|
-
function getMetrics(serviceName, logger) {
|
|
276
|
-
if (!metricsInstances.has(serviceName)) {
|
|
277
|
-
metricsInstances.set(serviceName, new Metric(serviceName, { logger }));
|
|
278
|
-
}
|
|
279
|
-
return metricsInstances.get(serviceName);
|
|
280
|
-
}
|
|
281
|
-
function resetMetrics() {
|
|
282
|
-
metricsInstances.clear();
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
exports.Metric = Metric;
|
|
286
|
-
exports.getMetrics = getMetrics;
|
|
287
|
-
exports.resetMetrics = resetMetrics;
|
|
288
|
-
//# sourceMappingURL=chunk-TC5ZPWM4.cjs.map
|
|
289
|
-
//# sourceMappingURL=chunk-TC5ZPWM4.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/metric.ts"],"names":["getConfig"],"mappings":"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","file":"chunk-TC5ZPWM4.cjs","sourcesContent":["/**\n * Metrics API for OpenTelemetry\n *\n * Track business metrics for OpenTelemetry (Prometheus/Grafana).\n * For business people who think in metrics.\n *\n * @example Track business metrics\n * ```typescript\n * const metrics = new Metric('checkout')\n *\n * // Track events as metrics\n * metrics.trackEvent('order.completed', {\n * amount: 99.99,\n * currency: 'USD'\n * })\n *\n * // Track conversion funnels\n * metrics.trackFunnelStep('checkout', 'started', { cartValue: 99.99 })\n * metrics.trackFunnelStep('checkout', 'completed', { cartValue: 99.99 })\n *\n * // Track outcomes\n * metrics.trackOutcome('payment.process', 'success', { amount: 99.99 })\n * metrics.trackOutcome('payment.process', 'failure', { error: 'insufficient_funds' })\n *\n * // Track values\n * metrics.trackValue('revenue', 149.99, { currency: 'USD' })\n * ```\n */\n\nimport {\n type Counter,\n type Histogram,\n type Attributes,\n} from '@opentelemetry/api';\nimport { getConfig } from './config';\nimport { type Logger } from './logger';\nimport {\n type EventAttributes,\n type FunnelStatus,\n type OutcomeStatus,\n} from './event-subscriber';\nimport { type MetricsCollector } from './metric-testing';\n\n// Re-export types for convenience\nexport type {\n EventAttributes,\n FunnelStatus,\n OutcomeStatus,\n} from './event-subscriber';\n\n/**\n * Metrics class for tracking business metrics in OpenTelemetry\n *\n * Track critical business indicators such as:\n * - User events (signups, purchases, feature usage) as metrics\n * - Conversion funnels (signup → activation → purchase)\n * - Business outcomes (success/failure rates)\n * - Value metrics (revenue, counts, etc.)\n *\n * All metrics are sent to OpenTelemetry (OTLP/Prometheus/Grafana).\n */\n/**\n * Metric configuration for customizing metric names and descriptions\n */\nexport interface MetricConfig {\n /** Metric name (e.g., 'metrics.events' or 'custom.events') */\n name?: string;\n /** Metric description */\n description?: string;\n /** Metric unit (default: '1') */\n unit?: string;\n}\n\n/**\n * Metrics options\n */\nexport interface MetricsOptions {\n /** Optional logger for audit trail */\n logger?: Logger;\n /** Optional collector for testing (captures metrics in memory) */\n collector?: MetricsCollector;\n\n /**\n * Namespace for metrics (default: 'metrics')\n * Results in metrics like: {serviceName}.{namespace}.events\n */\n namespace?: string;\n\n /**\n * Custom metric configurations\n * Override metric names, descriptions, and units\n */\n metrics?: {\n events?: MetricConfig;\n funnel?: MetricConfig;\n outcomes?: MetricConfig;\n value?: MetricConfig;\n };\n}\n\nexport class Metric {\n private serviceName: string;\n private eventCounter: Counter;\n private funnelCounter: Counter;\n private outcomeCounter: Counter;\n private valueHistogram: Histogram;\n private logger?: Logger;\n private collector?: MetricsCollector;\n\n /**\n * Create a new Metrics instance\n *\n * @param serviceName - Service name for metric namespacing\n * @param options - Optional configuration (logger, collector, namespace, metrics)\n *\n * @example Basic usage (default 'metrics' namespace)\n * ```typescript\n * const metrics = new Metric('checkout');\n * // Creates: checkout.metrics.events, checkout.metrics.funnel, etc.\n * ```\n *\n * @example Custom namespace\n * ```typescript\n * const metrics = new Metric('api', { namespace: 'business' });\n * // Creates: api.business.events, api.business.funnel, etc.\n * ```\n *\n * @example Custom metric names and descriptions\n * ```typescript\n * const metrics = new Metric('payments', {\n * metrics: {\n * outcomes: {\n * name: 'payments.transactions',\n * description: 'Payment transaction outcomes',\n * unit: 'transactions'\n * },\n * value: {\n * name: 'payments.revenue',\n * description: 'Payment revenue in USD',\n * unit: 'USD'\n * }\n * }\n * });\n * ```\n */\n constructor(serviceName: string, options: MetricsOptions = {}) {\n this.serviceName = serviceName;\n this.logger = options.logger;\n this.collector = options.collector;\n\n const config = getConfig();\n const meter = config.meter;\n\n // Default namespace and metric configurations\n const namespace = options.namespace || 'metrics';\n const metricsConfig = options.metrics || {};\n\n // Event counter configuration\n const eventsConfig = metricsConfig.events || {};\n this.eventCounter = meter.createCounter(\n eventsConfig.name || `${serviceName}.${namespace}.events`,\n {\n description: eventsConfig.description || 'Count of business events',\n unit: eventsConfig.unit || '1',\n },\n );\n\n // Funnel counter configuration\n const funnelConfig = metricsConfig.funnel || {};\n this.funnelCounter = meter.createCounter(\n funnelConfig.name || `${serviceName}.${namespace}.funnel`,\n {\n description: funnelConfig.description || 'Conversion funnel tracking',\n unit: funnelConfig.unit || '1',\n },\n );\n\n // Outcome counter configuration\n const outcomesConfig = metricsConfig.outcomes || {};\n this.outcomeCounter = meter.createCounter(\n outcomesConfig.name || `${serviceName}.${namespace}.outcomes`,\n {\n description:\n outcomesConfig.description || 'Outcome tracking (success/failure)',\n unit: outcomesConfig.unit || '1',\n },\n );\n\n // Value histogram configuration\n const valueConfig = metricsConfig.value || {};\n this.valueHistogram = meter.createHistogram(\n valueConfig.name || `${serviceName}.${namespace}.value`,\n {\n description:\n valueConfig.description || 'Value metrics (revenue, counts, etc.)',\n unit: valueConfig.unit || '1',\n },\n );\n }\n\n /**\n * Track a business event as a metric\n *\n * Use this for tracking user actions, business events, product usage as metrics:\n * - \"user.signup\"\n * - \"order.completed\"\n * - \"feature.used\"\n *\n * @example\n * ```typescript\n * // Track user signup as metric\n * metrics.trackEvent('user.signup', {\n * userId: '123',\n * plan: 'pro'\n * })\n *\n * // Track order as metric\n * metrics.trackEvent('order.completed', {\n * orderId: 'ord_123',\n * amount: 99.99\n * })\n * ```\n */\n trackEvent(eventName: string, attributes?: EventAttributes): void {\n const attrs: Attributes = {\n service: this.serviceName,\n event: eventName,\n ...attributes,\n };\n\n this.eventCounter.add(1, attrs);\n\n this.logger?.info(\n {\n event: eventName,\n attributes,\n },\n 'Metric event tracked',\n );\n\n // Record for testing\n this.collector?.recordEvent({\n event: eventName,\n attributes,\n service: this.serviceName,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Track conversion funnel steps as metrics\n *\n * Monitor where users drop off in multi-step processes.\n *\n * @example\n * ```typescript\n * // Track signup funnel\n * metrics.trackFunnelStep('signup', 'started', { userId: '123' })\n * metrics.trackFunnelStep('signup', 'email_verified', { userId: '123' })\n * metrics.trackFunnelStep('signup', 'completed', { userId: '123' })\n *\n * // Track checkout flow\n * metrics.trackFunnelStep('checkout', 'started', { cartValue: 99.99 })\n * metrics.trackFunnelStep('checkout', 'payment_info', { cartValue: 99.99 })\n * metrics.trackFunnelStep('checkout', 'completed', { cartValue: 99.99 })\n * ```\n */\n trackFunnelStep(\n funnelName: string,\n status: FunnelStatus,\n attributes?: EventAttributes,\n ): void {\n const attrs: Attributes = {\n service: this.serviceName,\n funnel: funnelName,\n status,\n ...attributes,\n };\n\n this.funnelCounter.add(1, attrs);\n\n this.logger?.info(\n {\n funnel: funnelName,\n status,\n attributes,\n },\n 'Funnel step tracked',\n );\n\n // Record for testing\n this.collector?.recordFunnelStep({\n funnel: funnelName,\n status,\n attributes,\n service: this.serviceName,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Track outcomes (success/failure/partial) as metrics\n *\n * Monitor success rates of critical operations.\n *\n * @example\n * ```typescript\n * // Track email delivery\n * metrics.trackOutcome('email.delivery', 'success', {\n * recipientType: 'user',\n * emailType: 'welcome'\n * })\n *\n * metrics.trackOutcome('email.delivery', 'failure', {\n * recipientType: 'user',\n * errorCode: 'invalid_email'\n * })\n *\n * // Track payment processing\n * metrics.trackOutcome('payment.process', 'success', { amount: 99.99 })\n * metrics.trackOutcome('payment.process', 'failure', { error: 'insufficient_funds' })\n * ```\n */\n trackOutcome(\n operationName: string,\n status: OutcomeStatus,\n attributes?: EventAttributes,\n ): void {\n const attrs: Attributes = {\n service: this.serviceName,\n operation: operationName,\n status,\n ...attributes,\n };\n\n this.outcomeCounter.add(1, attrs);\n\n this.logger?.info(\n {\n operation: operationName,\n status,\n attributes,\n },\n 'Outcome tracked',\n );\n\n // Record for testing\n this.collector?.recordOutcome({\n operation: operationName,\n status,\n attributes,\n service: this.serviceName,\n timestamp: Date.now(),\n });\n }\n\n /**\n * Track value metrics\n *\n * Record numerical values like revenue, transaction amounts,\n * item counts, processing times, engagement scores, etc.\n *\n * @example\n * ```typescript\n * // Track revenue\n * metrics.trackValue('order.revenue', 149.99, {\n * currency: 'USD',\n * productCategory: 'electronics'\n * })\n *\n * // Track items per cart\n * metrics.trackValue('cart.item_count', 5, {\n * userId: '123'\n * })\n *\n * // Track processing time\n * metrics.trackValue('api.response_time', 250, {\n * unit: 'ms',\n * endpoint: '/api/checkout'\n * })\n * ```\n */\n trackValue(\n metricName: string,\n value: number,\n attributes?: EventAttributes,\n ): void {\n const attrs: Attributes = {\n service: this.serviceName,\n metric: metricName,\n ...attributes,\n };\n\n this.valueHistogram.record(value, attrs);\n\n this.logger?.debug(\n {\n metric: metricName,\n value,\n attributes,\n },\n 'Value metric tracked',\n );\n\n // Record for testing\n this.collector?.recordValue({\n metric: metricName,\n value,\n attributes,\n service: this.serviceName,\n timestamp: Date.now(),\n });\n }\n}\n\n/**\n * Global metrics instances (singleton pattern)\n */\nconst metricsInstances = new Map<string, Metric>();\n\n/**\n * Get or create a Metrics instance for a service\n *\n * @param serviceName - Service name for metric namespacing\n * @param logger - Optional logger\n * @returns Metrics instance\n *\n * @example\n * ```typescript\n * const metrics = getMetrics('checkout')\n * metrics.trackEvent('order.completed', { orderId: '123' })\n * ```\n */\nexport function getMetrics(serviceName: string, logger?: Logger): Metric {\n if (!metricsInstances.has(serviceName)) {\n metricsInstances.set(serviceName, new Metric(serviceName, { logger }));\n }\n return metricsInstances.get(serviceName)!;\n}\n\n/**\n * Reset all metrics instances (mainly for testing)\n */\nexport function resetMetrics(): void {\n metricsInstances.clear();\n}\n"]}
|
package/dist/chunk-TQ5UWA7S.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { getConfig } from './chunk-J5QENANM.js';
|
|
2
|
-
|
|
3
|
-
// src/metric-helpers.ts
|
|
4
|
-
function getActiveMeter() {
|
|
5
|
-
const config = getConfig();
|
|
6
|
-
return config.meter;
|
|
7
|
-
}
|
|
8
|
-
function getMeter() {
|
|
9
|
-
return getActiveMeter();
|
|
10
|
-
}
|
|
11
|
-
function createCounter(name, options) {
|
|
12
|
-
return getActiveMeter().createCounter(name, options);
|
|
13
|
-
}
|
|
14
|
-
function createHistogram(name, options) {
|
|
15
|
-
return getActiveMeter().createHistogram(name, options);
|
|
16
|
-
}
|
|
17
|
-
function createUpDownCounter(name, options) {
|
|
18
|
-
return getActiveMeter().createUpDownCounter(name, options);
|
|
19
|
-
}
|
|
20
|
-
function createObservableGauge(name, options) {
|
|
21
|
-
return getActiveMeter().createObservableGauge(name, options);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
export { createCounter, createHistogram, createObservableGauge, createUpDownCounter, getMeter };
|
|
25
|
-
//# sourceMappingURL=chunk-TQ5UWA7S.js.map
|
|
26
|
-
//# sourceMappingURL=chunk-TQ5UWA7S.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/metric-helpers.ts"],"names":[],"mappings":";;;AASA,SAAS,cAAA,GAAwB;AAC/B,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,OAAO,MAAA,CAAO,KAAA;AAChB;AAEO,SAAS,QAAA,GAAkB;AAChC,EAAA,OAAO,cAAA,EAAe;AACxB;AAOO,SAAS,aAAA,CAAc,MAAc,OAAA,EAAmC;AAC7E,EAAA,OAAO,cAAA,EAAe,CAAE,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AACrD;AAEO,SAAS,eAAA,CACd,MACA,OAAA,EACW;AACX,EAAA,OAAO,cAAA,EAAe,CAAE,eAAA,CAAgB,IAAA,EAAM,OAAO,CAAA;AACvD;AAEO,SAAS,mBAAA,CACd,MACA,OAAA,EACe;AACf,EAAA,OAAO,cAAA,EAAe,CAAE,mBAAA,CAAoB,IAAA,EAAM,OAAO,CAAA;AAC3D;AAEO,SAAS,qBAAA,CACd,MACA,OAAA,EACiB;AACjB,EAAA,OAAO,cAAA,EAAe,CAAE,qBAAA,CAAsB,IAAA,EAAM,OAAO,CAAA;AAC7D","file":"chunk-TQ5UWA7S.js","sourcesContent":["import type {\n Counter,\n Histogram,\n Meter,\n ObservableGauge,\n UpDownCounter,\n} from '@opentelemetry/api';\nimport { getConfig } from './config';\n\nfunction getActiveMeter(): Meter {\n const config = getConfig();\n return config.meter;\n}\n\nexport function getMeter(): Meter {\n return getActiveMeter();\n}\n\ntype CounterOptions = Parameters<Meter['createCounter']>[1];\ntype HistogramOptions = Parameters<Meter['createHistogram']>[1];\ntype UpDownCounterOptions = Parameters<Meter['createUpDownCounter']>[1];\ntype ObservableGaugeOptions = Parameters<Meter['createObservableGauge']>[1];\n\nexport function createCounter(name: string, options?: CounterOptions): Counter {\n return getActiveMeter().createCounter(name, options);\n}\n\nexport function createHistogram(\n name: string,\n options?: HistogramOptions,\n): Histogram {\n return getActiveMeter().createHistogram(name, options);\n}\n\nexport function createUpDownCounter(\n name: string,\n options?: UpDownCounterOptions,\n): UpDownCounter {\n return getActiveMeter().createUpDownCounter(name, options);\n}\n\nexport function createObservableGauge(\n name: string,\n options?: ObservableGaugeOptions,\n): ObservableGauge {\n return getActiveMeter().createObservableGauge(name, options);\n}\n"]}
|
package/dist/chunk-URHPSJW2.js
DELETED
|
@@ -1,339 +0,0 @@
|
|
|
1
|
-
import { emitCorrelatedEvent } from './chunk-KIL5CUN6.js';
|
|
2
|
-
import { trace } from './chunk-YWCESU4Y.js';
|
|
3
|
-
import { getActiveSpan } from './chunk-HT5JQKN2.js';
|
|
4
|
-
import { AsyncLocalStorage } from 'async_hooks';
|
|
5
|
-
|
|
6
|
-
var workflowStates = /* @__PURE__ */ new WeakMap();
|
|
7
|
-
var workflowContextStorage = new AsyncLocalStorage();
|
|
8
|
-
function traceWorkflow(config) {
|
|
9
|
-
const spanName = `workflow.${config.name}`;
|
|
10
|
-
return (fnFactory) => {
|
|
11
|
-
return trace(spanName, (baseCtx) => {
|
|
12
|
-
return async (...args) => {
|
|
13
|
-
const workflowId = typeof config.workflowId === "function" ? config.workflowId(...args) : config.workflowId;
|
|
14
|
-
const ctx = createWorkflowContext(baseCtx, config.name, workflowId);
|
|
15
|
-
ctx.setAttribute("workflow.name", config.name);
|
|
16
|
-
ctx.setAttribute("workflow.id", workflowId);
|
|
17
|
-
if (config.version) {
|
|
18
|
-
ctx.setAttribute("workflow.version", config.version);
|
|
19
|
-
}
|
|
20
|
-
ctx.setAttribute("workflow.status", "running");
|
|
21
|
-
if (config.attributes) {
|
|
22
|
-
for (const [key, value] of Object.entries(config.attributes)) {
|
|
23
|
-
if (value !== void 0) {
|
|
24
|
-
ctx.setAttribute(key, value);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
return workflowContextStorage.run(ctx, async () => {
|
|
29
|
-
try {
|
|
30
|
-
const userFn = fnFactory(ctx);
|
|
31
|
-
const result = await userFn(...args);
|
|
32
|
-
ctx.setWorkflowStatus("completed");
|
|
33
|
-
config.onComplete?.(ctx, result);
|
|
34
|
-
return result;
|
|
35
|
-
} catch (error) {
|
|
36
|
-
ctx.setWorkflowStatus("failed");
|
|
37
|
-
config.onFailed?.(ctx, error);
|
|
38
|
-
const state = getWorkflowState();
|
|
39
|
-
if (state && state.compensations.size > 0) {
|
|
40
|
-
ctx.setWorkflowStatus("compensating");
|
|
41
|
-
config.onCompensating?.(ctx);
|
|
42
|
-
try {
|
|
43
|
-
await ctx.compensate(error);
|
|
44
|
-
ctx.setWorkflowStatus("compensated");
|
|
45
|
-
} catch (compensationError) {
|
|
46
|
-
ctx.setWorkflowStatus("compensation_failed");
|
|
47
|
-
ctx.setAttribute(
|
|
48
|
-
"workflow.compensation.error",
|
|
49
|
-
String(compensationError)
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
throw error;
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
|
-
});
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
function traceStep(config) {
|
|
61
|
-
return (fn) => {
|
|
62
|
-
const spanName = `step.${config.name}`;
|
|
63
|
-
return trace(spanName, (baseCtx) => {
|
|
64
|
-
return async (...args) => {
|
|
65
|
-
const workflowCtx = workflowContextStorage.getStore() ?? null;
|
|
66
|
-
const ctx = createStepContext(baseCtx, config, workflowCtx);
|
|
67
|
-
ctx.setAttribute("workflow.step.name", config.name);
|
|
68
|
-
ctx.setAttribute("workflow.step.index", ctx.getStepIndex());
|
|
69
|
-
ctx.setAttribute("workflow.step.status", "running");
|
|
70
|
-
if (config.description) {
|
|
71
|
-
ctx.setAttribute("workflow.step.description", config.description);
|
|
72
|
-
}
|
|
73
|
-
if (config.idempotent) {
|
|
74
|
-
ctx.setAttribute("workflow.step.idempotent", true);
|
|
75
|
-
}
|
|
76
|
-
if (config.attributes) {
|
|
77
|
-
for (const [key, value] of Object.entries(config.attributes)) {
|
|
78
|
-
if (value !== void 0) {
|
|
79
|
-
ctx.setAttribute(key, value);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
await addStepLinks(ctx, config, workflowCtx);
|
|
84
|
-
if (config.compensate && workflowCtx) {
|
|
85
|
-
workflowCtx.registerCompensation(config.name, config.compensate);
|
|
86
|
-
}
|
|
87
|
-
let lastError;
|
|
88
|
-
const maxAttempts = config.retry?.maxAttempts ?? 1;
|
|
89
|
-
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
90
|
-
try {
|
|
91
|
-
if (attempt > 1) {
|
|
92
|
-
ctx.setAttribute("workflow.step.retry_attempt", attempt);
|
|
93
|
-
emitCorrelatedEvent(ctx, "step_retry", {
|
|
94
|
-
"workflow.step.attempt": attempt,
|
|
95
|
-
"workflow.step.max_attempts": maxAttempts
|
|
96
|
-
});
|
|
97
|
-
if (config.retry?.backoffMs) {
|
|
98
|
-
await sleep(config.retry.backoffMs * attempt);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
const result = await fn(...args);
|
|
102
|
-
ctx.setAttribute("workflow.step.status", "completed");
|
|
103
|
-
ctx.complete();
|
|
104
|
-
config.onComplete?.(ctx);
|
|
105
|
-
return result;
|
|
106
|
-
} catch (error) {
|
|
107
|
-
lastError = error;
|
|
108
|
-
if (attempt < maxAttempts) {
|
|
109
|
-
emitCorrelatedEvent(ctx, "step_retry_scheduled", {
|
|
110
|
-
"workflow.step.error": String(error),
|
|
111
|
-
"workflow.step.attempt": attempt
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
ctx.setAttribute("workflow.step.status", "failed");
|
|
117
|
-
ctx.setAttribute("workflow.step.error", String(lastError));
|
|
118
|
-
config.onFailed?.(ctx, lastError);
|
|
119
|
-
throw lastError;
|
|
120
|
-
};
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
function createWorkflowContext(baseCtx, workflowName, workflowId) {
|
|
125
|
-
const span = getActiveSpan();
|
|
126
|
-
const state = {
|
|
127
|
-
workflowId,
|
|
128
|
-
workflowName,
|
|
129
|
-
status: "running",
|
|
130
|
-
steps: /* @__PURE__ */ new Map(),
|
|
131
|
-
stepCounter: 0,
|
|
132
|
-
compensations: /* @__PURE__ */ new Map()
|
|
133
|
-
};
|
|
134
|
-
if (span) {
|
|
135
|
-
workflowStates.set(span, state);
|
|
136
|
-
}
|
|
137
|
-
return {
|
|
138
|
-
...baseCtx,
|
|
139
|
-
getWorkflowId() {
|
|
140
|
-
return workflowId;
|
|
141
|
-
},
|
|
142
|
-
getWorkflowName() {
|
|
143
|
-
return workflowName;
|
|
144
|
-
},
|
|
145
|
-
getStatus() {
|
|
146
|
-
return state.status;
|
|
147
|
-
},
|
|
148
|
-
completeStep(stepName) {
|
|
149
|
-
let step = state.steps.get(stepName);
|
|
150
|
-
if (!step) {
|
|
151
|
-
step = {
|
|
152
|
-
name: stepName,
|
|
153
|
-
index: state.stepCounter++,
|
|
154
|
-
status: "pending",
|
|
155
|
-
startTime: Date.now()
|
|
156
|
-
};
|
|
157
|
-
state.steps.set(stepName, step);
|
|
158
|
-
}
|
|
159
|
-
step.status = "completed";
|
|
160
|
-
step.endTime = Date.now();
|
|
161
|
-
const currentSpan = getActiveSpan();
|
|
162
|
-
if (currentSpan) {
|
|
163
|
-
step.spanContext = currentSpan.spanContext();
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
getPreviousStep(stepName) {
|
|
167
|
-
if (stepName) {
|
|
168
|
-
const step = state.steps.get(stepName);
|
|
169
|
-
return step?.spanContext ?? null;
|
|
170
|
-
}
|
|
171
|
-
let lastStep = null;
|
|
172
|
-
for (const step of state.steps.values()) {
|
|
173
|
-
if (step.status === "completed" && (!lastStep || step.index > lastStep.index)) {
|
|
174
|
-
lastStep = step;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
return lastStep?.spanContext ?? null;
|
|
178
|
-
},
|
|
179
|
-
getCompletedSteps() {
|
|
180
|
-
const completed = [];
|
|
181
|
-
for (const [name, step] of state.steps) {
|
|
182
|
-
if (step.status === "completed") {
|
|
183
|
-
completed.push(name);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return completed.toSorted(
|
|
187
|
-
(a, b) => (state.steps.get(a)?.index ?? 0) - (state.steps.get(b)?.index ?? 0)
|
|
188
|
-
);
|
|
189
|
-
},
|
|
190
|
-
registerCompensation(stepName, handler) {
|
|
191
|
-
state.compensations.set(stepName, handler);
|
|
192
|
-
},
|
|
193
|
-
async compensate(error) {
|
|
194
|
-
const compensationOrder = [...state.compensations.entries()].toReversed();
|
|
195
|
-
for (const [stepName, handler] of compensationOrder) {
|
|
196
|
-
const step = state.steps.get(stepName);
|
|
197
|
-
if (step && step.status === "completed") {
|
|
198
|
-
try {
|
|
199
|
-
emitCorrelatedEvent(baseCtx, "compensation_started", {
|
|
200
|
-
"workflow.step.name": stepName
|
|
201
|
-
});
|
|
202
|
-
await Promise.resolve(handler(error));
|
|
203
|
-
this.recordCompensation(stepName, true);
|
|
204
|
-
step.status = "compensated";
|
|
205
|
-
} catch (compensationError) {
|
|
206
|
-
this.recordCompensation(
|
|
207
|
-
stepName,
|
|
208
|
-
false,
|
|
209
|
-
compensationError
|
|
210
|
-
);
|
|
211
|
-
throw compensationError;
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
recordCompensation(stepName, success, error) {
|
|
217
|
-
emitCorrelatedEvent(baseCtx, "compensation_completed", {
|
|
218
|
-
"workflow.step.name": stepName,
|
|
219
|
-
"workflow.compensation.success": success,
|
|
220
|
-
...error && { "workflow.compensation.error": String(error) }
|
|
221
|
-
});
|
|
222
|
-
baseCtx.setAttribute(
|
|
223
|
-
`workflow.compensation.${stepName}`,
|
|
224
|
-
success ? "success" : "failed"
|
|
225
|
-
);
|
|
226
|
-
},
|
|
227
|
-
setWorkflowStatus(status) {
|
|
228
|
-
state.status = status;
|
|
229
|
-
baseCtx.setAttribute("workflow.status", status);
|
|
230
|
-
emitCorrelatedEvent(baseCtx, "workflow_status_changed", {
|
|
231
|
-
"workflow.status": status
|
|
232
|
-
});
|
|
233
|
-
}
|
|
234
|
-
};
|
|
235
|
-
}
|
|
236
|
-
function createStepContext(baseCtx, config, workflowCtx) {
|
|
237
|
-
let stepIndex = config.index ?? 0;
|
|
238
|
-
if (workflowCtx) {
|
|
239
|
-
const span = getActiveSpan();
|
|
240
|
-
if (span) {
|
|
241
|
-
const state = workflowStates.get(span);
|
|
242
|
-
if (state) {
|
|
243
|
-
stepIndex = config.index ?? state.stepCounter++;
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
if (workflowCtx) {
|
|
248
|
-
const wfSpan = getActiveSpan();
|
|
249
|
-
if (wfSpan) {
|
|
250
|
-
const state = workflowStates.get(wfSpan);
|
|
251
|
-
if (state) {
|
|
252
|
-
state.steps.set(config.name, {
|
|
253
|
-
name: config.name,
|
|
254
|
-
index: stepIndex,
|
|
255
|
-
status: "running",
|
|
256
|
-
startTime: Date.now(),
|
|
257
|
-
compensate: config.compensate
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
return {
|
|
263
|
-
...baseCtx,
|
|
264
|
-
getStepName() {
|
|
265
|
-
return config.name;
|
|
266
|
-
},
|
|
267
|
-
getStepIndex() {
|
|
268
|
-
return stepIndex;
|
|
269
|
-
},
|
|
270
|
-
complete() {
|
|
271
|
-
if (workflowCtx) {
|
|
272
|
-
workflowCtx.completeStep(config.name);
|
|
273
|
-
}
|
|
274
|
-
},
|
|
275
|
-
skip(reason) {
|
|
276
|
-
baseCtx.setAttribute("workflow.step.status", "skipped");
|
|
277
|
-
if (reason) {
|
|
278
|
-
baseCtx.setAttribute("workflow.step.skip_reason", reason);
|
|
279
|
-
}
|
|
280
|
-
emitCorrelatedEvent(baseCtx, "step_skipped", {
|
|
281
|
-
"workflow.step.name": config.name,
|
|
282
|
-
...reason && { "workflow.step.skip_reason": reason }
|
|
283
|
-
});
|
|
284
|
-
},
|
|
285
|
-
getWorkflowContext() {
|
|
286
|
-
return workflowCtx;
|
|
287
|
-
}
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
function getWorkflowState() {
|
|
291
|
-
const span = getActiveSpan();
|
|
292
|
-
return span ? workflowStates.get(span) : null;
|
|
293
|
-
}
|
|
294
|
-
async function addStepLinks(ctx, config, workflowCtx) {
|
|
295
|
-
if (!workflowCtx) return;
|
|
296
|
-
const links = [];
|
|
297
|
-
if (config.linkToPrevious) {
|
|
298
|
-
const prevSpanContext = workflowCtx.getPreviousStep();
|
|
299
|
-
if (prevSpanContext) {
|
|
300
|
-
links.push({
|
|
301
|
-
context: prevSpanContext,
|
|
302
|
-
attributes: {
|
|
303
|
-
"workflow.link.type": "sequence"
|
|
304
|
-
}
|
|
305
|
-
});
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
if (config.linkTo) {
|
|
309
|
-
const stepNames = Array.isArray(config.linkTo) ? config.linkTo : [config.linkTo];
|
|
310
|
-
for (const stepName of stepNames) {
|
|
311
|
-
const spanContext = workflowCtx.getPreviousStep(stepName);
|
|
312
|
-
if (spanContext) {
|
|
313
|
-
links.push({
|
|
314
|
-
context: spanContext,
|
|
315
|
-
attributes: {
|
|
316
|
-
"workflow.link.type": "dependency",
|
|
317
|
-
"workflow.link.step": stepName
|
|
318
|
-
}
|
|
319
|
-
});
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
if (links.length > 0) {
|
|
324
|
-
ctx.addLinks(links);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
function sleep(ms) {
|
|
328
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
329
|
-
}
|
|
330
|
-
function getCurrentWorkflowContext() {
|
|
331
|
-
return workflowContextStorage.getStore() ?? null;
|
|
332
|
-
}
|
|
333
|
-
function isInWorkflow() {
|
|
334
|
-
return workflowContextStorage.getStore() !== void 0;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
export { getCurrentWorkflowContext, isInWorkflow, traceStep, traceWorkflow };
|
|
338
|
-
//# sourceMappingURL=chunk-URHPSJW2.js.map
|
|
339
|
-
//# sourceMappingURL=chunk-URHPSJW2.js.map
|