@motiadev/core 0.13.0-beta.162-846200 → 0.13.1-beta.162
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/LICENSE +93 -21
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/jest.config.d.ts +8 -0
- package/dist/jest.config.d.ts.map +1 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +13 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +53 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +15 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +49 -0
- package/dist/src/adapters/defaults/index.d.ts +9 -0
- package/dist/src/adapters/defaults/index.d.ts.map +1 -0
- package/dist/src/adapters/defaults/index.js +19 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts +23 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.js +149 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts +16 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.js +69 -0
- package/dist/src/adapters/defaults/state/utils.d.ts +4 -0
- package/dist/src/adapters/defaults/state/utils.d.ts.map +1 -0
- package/dist/src/adapters/defaults/state/utils.js +66 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +9 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +14 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts +22 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.js +125 -0
- package/dist/src/adapters/defaults/stream/index.d.ts +5 -0
- package/dist/src/adapters/defaults/stream/index.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/index.js +11 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +6 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +10 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts +16 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +55 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +29 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +15 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/index.d.ts +7 -0
- package/dist/src/adapters/interfaces/index.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/index.js +5 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +23 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts +24 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +6 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +2 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +22 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.js +16 -0
- package/dist/src/analytics/utils.d.ts +6 -0
- package/dist/src/analytics/utils.d.ts.map +1 -0
- package/dist/src/analytics/utils.js +51 -0
- package/dist/src/call-step-file.d.ts +16 -0
- package/dist/src/call-step-file.d.ts.map +1 -0
- package/dist/src/call-step-file.js +194 -0
- package/dist/src/config.d.ts +3 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +5 -0
- package/dist/src/config.types.d.ts +17 -0
- package/dist/src/config.types.d.ts.map +1 -0
- package/dist/src/config.types.js +2 -0
- package/dist/src/cron-handler.d.ts +14 -0
- package/dist/src/cron-handler.d.ts.map +1 -0
- package/dist/src/cron-handler.js +132 -0
- package/dist/src/endpoints/analytics-endpoint.d.ts +3 -0
- package/dist/src/endpoints/analytics-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/analytics-endpoint.js +28 -0
- package/dist/src/endpoints/flows-config-endpoint.d.ts +4 -0
- package/dist/src/endpoints/flows-config-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/flows-config-endpoint.js +34 -0
- package/dist/src/endpoints/flows-endpoint.d.ts +3 -0
- package/dist/src/endpoints/flows-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/flows-endpoint.js +29 -0
- package/dist/src/endpoints/step-endpoint.d.ts +4 -0
- package/dist/src/endpoints/step-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/step-endpoint.js +45 -0
- package/dist/src/generate-trace-id.d.ts +3 -0
- package/dist/src/generate-trace-id.d.ts.map +1 -0
- package/dist/src/generate-trace-id.js +14 -0
- package/dist/src/get-step-config.d.ts +5 -0
- package/dist/src/get-step-config.d.ts.map +1 -0
- package/dist/src/get-step-config.js +68 -0
- package/dist/src/get-step-language.d.ts +2 -0
- package/dist/src/get-step-language.d.ts.map +1 -0
- package/dist/src/get-step-language.js +27 -0
- package/dist/src/guards.d.ts +6 -0
- package/dist/src/guards.d.ts.map +1 -0
- package/dist/src/guards.js +11 -0
- package/dist/src/helper/flows-helper.d.ts +6 -0
- package/dist/src/helper/flows-helper.d.ts.map +1 -0
- package/dist/src/helper/flows-helper.js +143 -0
- package/dist/src/infrastructure-validator/defaults.d.ts +4 -0
- package/dist/src/infrastructure-validator/defaults.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/defaults.js +16 -0
- package/dist/src/infrastructure-validator/index.d.ts +4 -0
- package/dist/src/infrastructure-validator/index.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/index.js +13 -0
- package/dist/src/infrastructure-validator/schemas.d.ts +45 -0
- package/dist/src/infrastructure-validator/schemas.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/schemas.js +100 -0
- package/dist/src/infrastructure-validator/types.d.ts +21 -0
- package/dist/src/infrastructure-validator/types.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/types.js +2 -0
- package/dist/src/infrastructure-validator/validations.d.ts +4 -0
- package/dist/src/infrastructure-validator/validations.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/validations.js +62 -0
- package/dist/src/language-runner.d.ts +15 -0
- package/dist/src/language-runner.d.ts.map +1 -0
- package/dist/src/language-runner.js +31 -0
- package/dist/src/locked-data.d.ts +78 -0
- package/dist/src/locked-data.d.ts.map +1 -0
- package/dist/src/locked-data.js +284 -0
- package/dist/src/logger-factory.d.ts +19 -0
- package/dist/src/logger-factory.d.ts.map +1 -0
- package/dist/src/logger-factory.js +27 -0
- package/dist/src/logger.d.ts +26 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +60 -0
- package/dist/src/mermaid-generator.d.ts +5 -0
- package/dist/src/mermaid-generator.d.ts.map +1 -0
- package/dist/src/mermaid-generator.js +203 -0
- package/dist/src/motia.d.ts +32 -0
- package/dist/src/motia.d.ts.map +1 -0
- package/dist/src/motia.js +4 -0
- package/dist/src/node/can-access.d.ts +2 -0
- package/dist/src/node/can-access.d.ts.map +1 -0
- package/dist/src/node/can-access.js +44 -0
- package/dist/src/node/get-config.d.ts +2 -0
- package/dist/src/node/get-config.d.ts.map +1 -0
- package/dist/src/node/get-config.js +64 -0
- package/dist/src/node/logger.d.ts +16 -0
- package/dist/src/node/logger.d.ts.map +1 -0
- package/dist/src/node/logger.js +48 -0
- package/dist/src/node/middleware-compose.d.ts +2 -0
- package/dist/src/node/middleware-compose.d.ts.map +1 -0
- package/dist/src/node/middleware-compose.js +10 -0
- package/dist/src/node/node-runner.d.ts +2 -0
- package/dist/src/node/node-runner.d.ts.map +1 -0
- package/dist/src/node/node-runner.js +83 -0
- package/dist/src/node/rpc-state-manager.d.ts +12 -0
- package/dist/src/node/rpc-state-manager.d.ts.map +1 -0
- package/dist/src/node/rpc-state-manager.js +24 -0
- package/dist/src/node/rpc.d.ts +10 -0
- package/dist/src/node/rpc.d.ts.map +1 -0
- package/dist/src/node/rpc.js +50 -0
- package/dist/src/observability/create-trace.d.ts +4 -0
- package/dist/src/observability/create-trace.d.ts.map +1 -0
- package/dist/src/observability/create-trace.js +22 -0
- package/dist/src/observability/index.d.ts +4 -0
- package/dist/src/observability/index.d.ts.map +1 -0
- package/dist/src/observability/index.js +2 -0
- package/dist/src/observability/no-tracer.d.ts +10 -0
- package/dist/src/observability/no-tracer.d.ts.map +1 -0
- package/dist/src/observability/no-tracer.js +14 -0
- package/dist/src/observability/redis-trace-stream-adapter.d.ts +17 -0
- package/dist/src/observability/redis-trace-stream-adapter.d.ts.map +1 -0
- package/dist/src/observability/redis-trace-stream-adapter.js +65 -0
- package/dist/src/observability/stream-tracer.d.ts +22 -0
- package/dist/src/observability/stream-tracer.d.ts.map +1 -0
- package/dist/src/observability/stream-tracer.js +97 -0
- package/dist/src/observability/trace-manager.d.ts +13 -0
- package/dist/src/observability/trace-manager.d.ts.map +1 -0
- package/dist/src/observability/trace-manager.js +23 -0
- package/dist/src/observability/tracer.d.ts +19 -0
- package/dist/src/observability/tracer.d.ts.map +1 -0
- package/dist/src/observability/tracer.js +95 -0
- package/dist/src/observability/types.d.ts +75 -0
- package/dist/src/observability/types.d.ts.map +1 -0
- package/dist/src/observability/types.js +2 -0
- package/dist/src/pretty-print.d.ts +2 -0
- package/dist/src/pretty-print.d.ts.map +1 -0
- package/dist/src/pretty-print.js +63 -0
- package/dist/src/printer.d.ts +61 -0
- package/dist/src/printer.d.ts.map +1 -0
- package/dist/src/printer.js +164 -0
- package/dist/src/process-communication/communication-config.d.ts +8 -0
- package/dist/src/process-communication/communication-config.d.ts.map +1 -0
- package/dist/src/process-communication/communication-config.js +18 -0
- package/dist/src/process-communication/process-manager.d.ts +32 -0
- package/dist/src/process-communication/process-manager.d.ts.map +1 -0
- package/dist/src/process-communication/process-manager.js +88 -0
- package/dist/src/process-communication/rpc-processor-interface.d.ts +10 -0
- package/dist/src/process-communication/rpc-processor-interface.d.ts.map +1 -0
- package/dist/src/process-communication/rpc-processor-interface.js +2 -0
- package/dist/src/queue-manager.d.ts +42 -0
- package/dist/src/queue-manager.d.ts.map +1 -0
- package/dist/src/queue-manager.js +252 -0
- package/dist/src/ruby/get-ruby-config.d.ts +3 -0
- package/dist/src/ruby/get-ruby-config.d.ts.map +1 -0
- package/dist/src/ruby/get-ruby-config.js +34 -0
- package/dist/src/run-stream-can-access.d.ts +10 -0
- package/dist/src/run-stream-can-access.d.ts.map +1 -0
- package/dist/src/run-stream-can-access.js +59 -0
- package/dist/src/schema-utils.d.ts +9 -0
- package/dist/src/schema-utils.d.ts.map +1 -0
- package/dist/src/schema-utils.js +80 -0
- package/dist/src/server.d.ts +37 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +318 -0
- package/dist/src/socket-server/helpers.d.ts +53 -0
- package/dist/src/socket-server/helpers.d.ts.map +1 -0
- package/dist/src/socket-server/helpers.js +28 -0
- package/dist/src/socket-server.d.ts +21 -0
- package/dist/src/socket-server.d.ts.map +1 -0
- package/dist/src/socket-server.js +127 -0
- package/dist/src/state/create-state-adapter.d.ts +8 -0
- package/dist/src/state/create-state-adapter.d.ts.map +1 -0
- package/dist/src/state/create-state-adapter.js +8 -0
- package/dist/src/step-handler-rpc-processor.d.ts +22 -0
- package/dist/src/step-handler-rpc-processor.d.ts.map +1 -0
- package/dist/src/step-handler-rpc-processor.js +63 -0
- package/dist/src/step-handler-rpc-stdin-processor.d.ts +23 -0
- package/dist/src/step-handler-rpc-stdin-processor.d.ts.map +1 -0
- package/dist/src/step-handler-rpc-stdin-processor.js +83 -0
- package/dist/src/step-handlers.d.ts +9 -0
- package/dist/src/step-handlers.d.ts.map +1 -0
- package/dist/src/step-handlers.js +77 -0
- package/dist/src/step-validator.d.ts +15 -0
- package/dist/src/step-validator.d.ts.map +1 -0
- package/dist/src/step-validator.js +135 -0
- package/dist/src/steps/emit.step.d.ts +12 -0
- package/dist/src/steps/emit.step.d.ts.map +1 -0
- package/dist/src/steps/emit.step.js +27 -0
- package/dist/src/steps/index.d.ts +3 -0
- package/dist/src/steps/index.d.ts.map +1 -0
- package/dist/src/steps/index.js +16 -0
- package/dist/src/streams/flows-config-stream.d.ts +14 -0
- package/dist/src/streams/flows-config-stream.d.ts.map +1 -0
- package/dist/src/streams/flows-config-stream.js +49 -0
- package/dist/src/streams/flows-stream.d.ts +12 -0
- package/dist/src/streams/flows-stream.d.ts.map +1 -0
- package/dist/src/streams/flows-stream.js +35 -0
- package/dist/src/streams/redis-logs-stream.d.ts +31 -0
- package/dist/src/streams/redis-logs-stream.d.ts.map +1 -0
- package/dist/src/streams/redis-logs-stream.js +84 -0
- package/dist/src/streams/stream-factory.d.ts +3 -0
- package/dist/src/streams/stream-factory.d.ts.map +1 -0
- package/dist/src/streams/stream-factory.js +2 -0
- package/dist/src/types/app-config-types.d.ts +44 -0
- package/dist/src/types/app-config-types.d.ts.map +1 -0
- package/dist/src/types/app-config-types.js +2 -0
- package/dist/src/types/flows-config-types.d.ts +10 -0
- package/dist/src/types/flows-config-types.d.ts.map +1 -0
- package/dist/src/types/flows-config-types.js +2 -0
- package/dist/src/types/flows-types.d.ts +39 -0
- package/dist/src/types/flows-types.d.ts.map +1 -0
- package/dist/src/types/flows-types.js +2 -0
- package/dist/src/types/generate-type-from-schema.d.ts +3 -0
- package/dist/src/types/generate-type-from-schema.d.ts.map +1 -0
- package/dist/src/types/generate-type-from-schema.js +49 -0
- package/dist/src/types/generate-types-from-response.d.ts +3 -0
- package/dist/src/types/generate-types-from-response.d.ts.map +1 -0
- package/dist/src/types/generate-types-from-response.js +13 -0
- package/dist/src/types/generate-types.d.ts +13 -0
- package/dist/src/types/generate-types.d.ts.map +1 -0
- package/dist/src/types/generate-types.js +127 -0
- package/dist/src/types/merge-schemas.d.ts +5 -0
- package/dist/src/types/merge-schemas.d.ts.map +1 -0
- package/dist/src/types/merge-schemas.js +183 -0
- package/dist/src/types/schema.types.d.ts +9 -0
- package/dist/src/types/schema.types.d.ts.map +1 -0
- package/dist/src/types/schema.types.js +14 -0
- package/dist/src/types-stream.d.ts +42 -0
- package/dist/src/types-stream.d.ts.map +1 -0
- package/dist/src/types-stream.js +2 -0
- package/dist/src/types.d.ts +184 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +17 -0
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +12 -0
- package/dist/src/validate-event-input.d.ts +3 -0
- package/dist/src/validate-event-input.d.ts.map +1 -0
- package/dist/src/validate-event-input.js +74 -0
- package/package.json +8 -22
- package/dist/index.d.mts +0 -38
- package/dist/index.mjs +0 -30
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts +0 -17
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs +0 -51
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts +0 -19
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs +0 -54
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/index.d.mts +0 -8
- package/dist/src/adapters/defaults/index.mjs +0 -10
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts +0 -27
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs +0 -105
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts +0 -20
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs +0 -58
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/state/utils.mjs +0 -40
- package/dist/src/adapters/defaults/state/utils.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts +0 -13
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs +0 -16
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts +0 -24
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs +0 -84
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts +0 -10
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs +0 -12
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts +0 -20
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs +0 -58
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs.map +0 -1
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts +0 -32
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts +0 -19
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts +0 -27
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts +0 -28
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts +0 -10
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts +0 -26
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs +0 -17
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs.map +0 -1
- package/dist/src/analytics/utils.d.mts +0 -9
- package/dist/src/analytics/utils.d.mts.map +0 -1
- package/dist/src/analytics/utils.mjs +0 -35
- package/dist/src/analytics/utils.mjs.map +0 -1
- package/dist/src/call-step-file.mjs +0 -213
- package/dist/src/call-step-file.mjs.map +0 -1
- package/dist/src/config.d.mts +0 -7
- package/dist/src/config.d.mts.map +0 -1
- package/dist/src/config.mjs +0 -6
- package/dist/src/config.mjs.map +0 -1
- package/dist/src/cron-handler.d.mts +0 -18
- package/dist/src/cron-handler.d.mts.map +0 -1
- package/dist/src/cron-handler.mjs +0 -103
- package/dist/src/cron-handler.mjs.map +0 -1
- package/dist/src/endpoints/analytics-endpoint.mjs +0 -29
- package/dist/src/endpoints/analytics-endpoint.mjs.map +0 -1
- package/dist/src/endpoints/flows-config-endpoint.mjs +0 -38
- package/dist/src/endpoints/flows-config-endpoint.mjs.map +0 -1
- package/dist/src/endpoints/flows-endpoint.mjs +0 -39
- package/dist/src/endpoints/flows-endpoint.mjs.map +0 -1
- package/dist/src/endpoints/step-endpoint.mjs +0 -41
- package/dist/src/endpoints/step-endpoint.mjs.map +0 -1
- package/dist/src/generate-trace-id.mjs +0 -13
- package/dist/src/generate-trace-id.mjs.map +0 -1
- package/dist/src/get-step-config.d.mts +0 -9
- package/dist/src/get-step-config.d.mts.map +0 -1
- package/dist/src/get-step-config.mjs +0 -63
- package/dist/src/get-step-config.mjs.map +0 -1
- package/dist/src/get-step-language.mjs +0 -14
- package/dist/src/get-step-language.mjs.map +0 -1
- package/dist/src/guards.d.mts +0 -10
- package/dist/src/guards.d.mts.map +0 -1
- package/dist/src/guards.mjs +0 -9
- package/dist/src/guards.mjs.map +0 -1
- package/dist/src/helper/flows-helper.mjs +0 -126
- package/dist/src/helper/flows-helper.mjs.map +0 -1
- package/dist/src/infrastructure-validator/defaults.mjs +0 -17
- package/dist/src/infrastructure-validator/defaults.mjs.map +0 -1
- package/dist/src/infrastructure-validator/index.d.mts +0 -3
- package/dist/src/infrastructure-validator/index.mjs +0 -4
- package/dist/src/infrastructure-validator/schemas.d.mts +0 -1
- package/dist/src/infrastructure-validator/schemas.mjs +0 -77
- package/dist/src/infrastructure-validator/schemas.mjs.map +0 -1
- package/dist/src/infrastructure-validator/types.d.mts +0 -14
- package/dist/src/infrastructure-validator/types.d.mts.map +0 -1
- package/dist/src/infrastructure-validator/validations.d.mts +0 -7
- package/dist/src/infrastructure-validator/validations.d.mts.map +0 -1
- package/dist/src/infrastructure-validator/validations.mjs +0 -29
- package/dist/src/infrastructure-validator/validations.mjs.map +0 -1
- package/dist/src/language-runner.mjs +0 -53
- package/dist/src/language-runner.mjs.map +0 -1
- package/dist/src/locked-data.d.mts +0 -81
- package/dist/src/locked-data.d.mts.map +0 -1
- package/dist/src/locked-data.mjs +0 -223
- package/dist/src/locked-data.mjs.map +0 -1
- package/dist/src/logger-factory.d.mts +0 -16
- package/dist/src/logger-factory.d.mts.map +0 -1
- package/dist/src/logger-factory.mjs +0 -33
- package/dist/src/logger-factory.mjs.map +0 -1
- package/dist/src/logger.d.mts +0 -28
- package/dist/src/logger.d.mts.map +0 -1
- package/dist/src/logger.mjs +0 -64
- package/dist/src/logger.mjs.map +0 -1
- package/dist/src/mermaid-generator.d.mts +0 -9
- package/dist/src/mermaid-generator.d.mts.map +0 -1
- package/dist/src/mermaid-generator.mjs +0 -126
- package/dist/src/mermaid-generator.mjs.map +0 -1
- package/dist/src/motia.d.mts +0 -36
- package/dist/src/motia.d.mts.map +0 -1
- package/dist/src/motia.mjs +0 -6
- package/dist/src/motia.mjs.map +0 -1
- package/dist/src/node/can-access.d.mts +0 -1
- package/dist/src/node/can-access.mjs +0 -36
- package/dist/src/node/can-access.mjs.map +0 -1
- package/dist/src/node/get-config.d.mts +0 -1
- package/dist/src/node/get-config.mjs +0 -49
- package/dist/src/node/get-config.mjs.map +0 -1
- package/dist/src/node/logger.mjs +0 -47
- package/dist/src/node/logger.mjs.map +0 -1
- package/dist/src/node/middleware-compose.mjs +0 -10
- package/dist/src/node/middleware-compose.mjs.map +0 -1
- package/dist/src/node/node-runner.d.mts +0 -1
- package/dist/src/node/node-runner.mjs +0 -94
- package/dist/src/node/node-runner.mjs.map +0 -1
- package/dist/src/node/rpc-state-manager.mjs +0 -35
- package/dist/src/node/rpc-state-manager.mjs.map +0 -1
- package/dist/src/node/rpc.mjs +0 -55
- package/dist/src/node/rpc.mjs.map +0 -1
- package/dist/src/observability/create-trace.mjs +0 -26
- package/dist/src/observability/create-trace.mjs.map +0 -1
- package/dist/src/observability/index.d.mts +0 -7
- package/dist/src/observability/index.d.mts.map +0 -1
- package/dist/src/observability/no-tracer.d.mts +0 -15
- package/dist/src/observability/no-tracer.d.mts.map +0 -1
- package/dist/src/observability/no-tracer.mjs +0 -15
- package/dist/src/observability/no-tracer.mjs.map +0 -1
- package/dist/src/observability/redis-trace-stream-adapter.mjs +0 -76
- package/dist/src/observability/redis-trace-stream-adapter.mjs.map +0 -1
- package/dist/src/observability/stream-tracer.mjs +0 -87
- package/dist/src/observability/stream-tracer.mjs.map +0 -1
- package/dist/src/observability/trace-manager.mjs +0 -24
- package/dist/src/observability/trace-manager.mjs.map +0 -1
- package/dist/src/observability/tracer.mjs +0 -87
- package/dist/src/observability/tracer.mjs.map +0 -1
- package/dist/src/observability/types.d.mts +0 -14
- package/dist/src/observability/types.d.mts.map +0 -1
- package/dist/src/pretty-print.mjs +0 -50
- package/dist/src/pretty-print.mjs.map +0 -1
- package/dist/src/printer.d.mts +0 -65
- package/dist/src/printer.d.mts.map +0 -1
- package/dist/src/printer.mjs +0 -147
- package/dist/src/printer.mjs.map +0 -1
- package/dist/src/process-communication/communication-config.mjs +0 -26
- package/dist/src/process-communication/communication-config.mjs.map +0 -1
- package/dist/src/process-communication/process-manager.mjs +0 -67
- package/dist/src/process-communication/process-manager.mjs.map +0 -1
- package/dist/src/queue-manager.d.mts +0 -37
- package/dist/src/queue-manager.d.mts.map +0 -1
- package/dist/src/queue-manager.mjs +0 -209
- package/dist/src/queue-manager.mjs.map +0 -1
- package/dist/src/run-stream-can-access.mjs +0 -59
- package/dist/src/run-stream-can-access.mjs.map +0 -1
- package/dist/src/schema-utils.mjs +0 -30
- package/dist/src/schema-utils.mjs.map +0 -1
- package/dist/src/server.d.mts +0 -40
- package/dist/src/server.d.mts.map +0 -1
- package/dist/src/server.mjs +0 -332
- package/dist/src/server.mjs.map +0 -1
- package/dist/src/socket-server/helpers.mjs +0 -35
- package/dist/src/socket-server/helpers.mjs.map +0 -1
- package/dist/src/socket-server.mjs +0 -127
- package/dist/src/socket-server.mjs.map +0 -1
- package/dist/src/state/create-state-adapter.d.mts +0 -11
- package/dist/src/state/create-state-adapter.d.mts.map +0 -1
- package/dist/src/state/create-state-adapter.mjs +0 -11
- package/dist/src/state/create-state-adapter.mjs.map +0 -1
- package/dist/src/step-handler-rpc-processor.mjs +0 -56
- package/dist/src/step-handler-rpc-processor.mjs.map +0 -1
- package/dist/src/step-handler-rpc-stdin-processor.mjs +0 -71
- package/dist/src/step-handler-rpc-stdin-processor.mjs.map +0 -1
- package/dist/src/step-handlers.d.mts +0 -13
- package/dist/src/step-handlers.d.mts.map +0 -1
- package/dist/src/step-handlers.mjs +0 -93
- package/dist/src/step-handlers.mjs.map +0 -1
- package/dist/src/step-validator.d.mts +0 -15
- package/dist/src/step-validator.d.mts.map +0 -1
- package/dist/src/step-validator.mjs +0 -118
- package/dist/src/step-validator.mjs.map +0 -1
- package/dist/src/steps/emit.step.mjs +0 -20
- package/dist/src/steps/emit.step.mjs.map +0 -1
- package/dist/src/steps/index.mjs +0 -14
- package/dist/src/steps/index.mjs.map +0 -1
- package/dist/src/streams/flows-config-stream.mjs +0 -46
- package/dist/src/streams/flows-config-stream.mjs.map +0 -1
- package/dist/src/streams/flows-stream.mjs +0 -33
- package/dist/src/streams/flows-stream.mjs.map +0 -1
- package/dist/src/streams/redis-logs-stream.d.mts +0 -3
- package/dist/src/streams/redis-logs-stream.mjs +0 -97
- package/dist/src/streams/redis-logs-stream.mjs.map +0 -1
- package/dist/src/streams/stream-factory.d.mts +0 -7
- package/dist/src/streams/stream-factory.d.mts.map +0 -1
- package/dist/src/types/app-config-types.d.mts +0 -48
- package/dist/src/types/app-config-types.d.mts.map +0 -1
- package/dist/src/types/generate-type-from-schema.mjs +0 -30
- package/dist/src/types/generate-type-from-schema.mjs.map +0 -1
- package/dist/src/types/generate-types-from-response.mjs +0 -12
- package/dist/src/types/generate-types-from-response.mjs.map +0 -1
- package/dist/src/types/generate-types.mjs +0 -101
- package/dist/src/types/generate-types.mjs.map +0 -1
- package/dist/src/types/merge-schemas.mjs +0 -102
- package/dist/src/types/merge-schemas.mjs.map +0 -1
- package/dist/src/types/schema.types.d.mts +0 -13
- package/dist/src/types/schema.types.d.mts.map +0 -1
- package/dist/src/types/schema.types.mjs +0 -14
- package/dist/src/types/schema.types.mjs.map +0 -1
- package/dist/src/types-stream.d.mts +0 -46
- package/dist/src/types-stream.d.mts.map +0 -1
- package/dist/src/types.d.mts +0 -188
- package/dist/src/types.d.mts.map +0 -1
- package/dist/src/utils.mjs +0 -13
- package/dist/src/utils.mjs.map +0 -1
- package/dist/src/validate-event-input.mjs +0 -76
- package/dist/src/validate-event-input.mjs.map +0 -1
- package/jest.config.cjs +0 -20
- package/tsdown.config.ts +0 -54
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-trace.d.ts","sourceRoot":"","sources":["../../../src/observability/create-trace.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEhD,eAAO,MAAM,WAAW,GAAI,YAAY,UAAU,EAAE,MAAM,IAAI,UAkB7D,CAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTrace = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const createTrace = (traceGroup, step) => {
|
|
6
|
+
const id = (0, crypto_1.randomUUID)();
|
|
7
|
+
const trace = {
|
|
8
|
+
id,
|
|
9
|
+
name: step.config.name,
|
|
10
|
+
correlationId: traceGroup.correlationId,
|
|
11
|
+
parentTraceId: traceGroup.id,
|
|
12
|
+
status: 'running',
|
|
13
|
+
startTime: Date.now(),
|
|
14
|
+
endTime: undefined,
|
|
15
|
+
entryPoint: { type: step.config.type, stepName: step.config.name },
|
|
16
|
+
events: [],
|
|
17
|
+
};
|
|
18
|
+
traceGroup.metadata.totalSteps++;
|
|
19
|
+
traceGroup.metadata.activeSteps++;
|
|
20
|
+
return trace;
|
|
21
|
+
};
|
|
22
|
+
exports.createTrace = createTrace;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/observability/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,wDAAwD,CAAA;AAE1G,YAAY,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAA;AAC5C,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-tracer.d.ts","sourceRoot":"","sources":["../../../src/observability/no-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,CAAA;AAE/B,qBAAa,QAAS,YAAW,MAAM;IACrC,GAAG;IACH,cAAc;IACd,aAAa;IACb,eAAe;IACf,KAAK;IACL,KAAK;CAGN"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NoTracer = void 0;
|
|
4
|
+
class NoTracer {
|
|
5
|
+
end() { }
|
|
6
|
+
stateOperation() { }
|
|
7
|
+
emitOperation() { }
|
|
8
|
+
streamOperation() { }
|
|
9
|
+
clear() { }
|
|
10
|
+
child() {
|
|
11
|
+
return this;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
exports.NoTracer = NoTracer;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RedisClientType } from 'redis';
|
|
2
|
+
import { StreamAdapter } from '../adapters/interfaces/stream-adapter.interface';
|
|
3
|
+
import type { BaseStreamItem, StateStreamEvent, StateStreamEventChannel } from '../types-stream';
|
|
4
|
+
export declare class RedisTraceStreamAdapter<TData> extends StreamAdapter<TData> {
|
|
5
|
+
private client;
|
|
6
|
+
private readonly keyPrefix;
|
|
7
|
+
private ttl;
|
|
8
|
+
constructor(streamName: string, client: RedisClientType, ttl?: number);
|
|
9
|
+
private makeGroupKey;
|
|
10
|
+
get(groupId: string, id: string): Promise<BaseStreamItem<TData> | null>;
|
|
11
|
+
set(groupId: string, id: string, data: TData): Promise<BaseStreamItem<TData>>;
|
|
12
|
+
delete(groupId: string, id: string): Promise<BaseStreamItem<TData> | null>;
|
|
13
|
+
getGroup(groupId: string): Promise<BaseStreamItem<TData>[]>;
|
|
14
|
+
send<T>(channel: StateStreamEventChannel, event: StateStreamEvent<T>): Promise<void>;
|
|
15
|
+
clear(groupId: string): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=redis-trace-stream-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-trace-stream-adapter.d.ts","sourceRoot":"","sources":["../../../src/observability/redis-trace-stream-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAA;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAIhG,qBAAa,uBAAuB,CAAC,KAAK,CAAE,SAAQ,aAAa,CAAC,KAAK,CAAC;IACtE,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyB;IACnD,OAAO,CAAC,GAAG,CAAQ;gBAEP,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,GAAE,MAA0B;IAMxF,OAAO,CAAC,YAAY;IAId,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAMvE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAiB7E,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAa1E,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;IAc3D,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAOpF,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAI5C"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisTraceStreamAdapter = void 0;
|
|
4
|
+
const stream_adapter_interface_1 = require("../adapters/interfaces/stream-adapter.interface");
|
|
5
|
+
const TRACE_TTL_SECONDS = 3 * 24 * 60 * 60;
|
|
6
|
+
class RedisTraceStreamAdapter extends stream_adapter_interface_1.StreamAdapter {
|
|
7
|
+
constructor(streamName, client, ttl = TRACE_TTL_SECONDS) {
|
|
8
|
+
super(streamName);
|
|
9
|
+
this.keyPrefix = 'motia:trace:';
|
|
10
|
+
this.client = client;
|
|
11
|
+
this.ttl = ttl;
|
|
12
|
+
}
|
|
13
|
+
makeGroupKey(groupId) {
|
|
14
|
+
return `${this.keyPrefix}${groupId}`;
|
|
15
|
+
}
|
|
16
|
+
async get(groupId, id) {
|
|
17
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
18
|
+
const value = await this.client.hGet(hashKey, id);
|
|
19
|
+
return value ? JSON.parse(value) : null;
|
|
20
|
+
}
|
|
21
|
+
async set(groupId, id, data) {
|
|
22
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
23
|
+
const item = { ...data, id };
|
|
24
|
+
const itemJson = JSON.stringify(item);
|
|
25
|
+
const existed = await this.client.hExists(hashKey, id);
|
|
26
|
+
const eventType = existed ? 'update' : 'create';
|
|
27
|
+
await Promise.all([
|
|
28
|
+
this.client.hSet(hashKey, id, itemJson),
|
|
29
|
+
this.send({ groupId, id }, { type: eventType, data: item }),
|
|
30
|
+
this.client.expire(hashKey, this.ttl),
|
|
31
|
+
]);
|
|
32
|
+
return item;
|
|
33
|
+
}
|
|
34
|
+
async delete(groupId, id) {
|
|
35
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
36
|
+
const value = await this.client.hGet(hashKey, id);
|
|
37
|
+
if (!value)
|
|
38
|
+
return null;
|
|
39
|
+
const item = JSON.parse(value);
|
|
40
|
+
await Promise.all([this.client.hDel(hashKey, id), this.send({ groupId, id }, { type: 'delete', data: item })]);
|
|
41
|
+
return item;
|
|
42
|
+
}
|
|
43
|
+
async getGroup(groupId) {
|
|
44
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
45
|
+
const values = await this.client.hGetAll(hashKey);
|
|
46
|
+
const items = Object.values(values).map((v) => JSON.parse(v));
|
|
47
|
+
const sortDesc = (a, b) => {
|
|
48
|
+
const aTime = a.startTime || 0;
|
|
49
|
+
const bTime = b.startTime || 0;
|
|
50
|
+
return aTime - bTime;
|
|
51
|
+
};
|
|
52
|
+
return items.sort(sortDesc);
|
|
53
|
+
}
|
|
54
|
+
async send(channel, event) {
|
|
55
|
+
const channelKey = channel.id
|
|
56
|
+
? `${this.keyPrefix}events:${this.streamName}:${channel.groupId}:${channel.id}`
|
|
57
|
+
: `${this.keyPrefix}events:${this.streamName}:${channel.groupId}`;
|
|
58
|
+
await this.client.publish(channelKey, JSON.stringify(event));
|
|
59
|
+
}
|
|
60
|
+
async clear(groupId) {
|
|
61
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
62
|
+
await this.client.del(hashKey);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.RedisTraceStreamAdapter = RedisTraceStreamAdapter;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Logger } from '../logger';
|
|
2
|
+
import type { Step } from '../types';
|
|
3
|
+
import type { Tracer } from '.';
|
|
4
|
+
import type { TraceManager } from './trace-manager';
|
|
5
|
+
import type { StateOperation, StreamOperation, Trace, TraceError, TraceGroup } from './types';
|
|
6
|
+
export declare class StreamTracer implements Tracer {
|
|
7
|
+
private readonly manager;
|
|
8
|
+
private readonly traceGroup;
|
|
9
|
+
private readonly trace;
|
|
10
|
+
constructor(manager: TraceManager, traceGroup: TraceGroup, trace: Trace, logger: Logger);
|
|
11
|
+
end(err?: TraceError): void;
|
|
12
|
+
stateOperation(operation: StateOperation, input: unknown): void;
|
|
13
|
+
emitOperation(topic: string, data: unknown, success: boolean): void;
|
|
14
|
+
streamOperation(streamName: string, operation: StreamOperation, input: {
|
|
15
|
+
groupId: string;
|
|
16
|
+
id: string;
|
|
17
|
+
data?: unknown;
|
|
18
|
+
}): void;
|
|
19
|
+
child(step: Step, logger: Logger): StreamTracer;
|
|
20
|
+
private addEvent;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=stream-tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-tracer.d.ts","sourceRoot":"","sources":["../../../src/observability/stream-tracer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,GAAG,CAAA;AAE/B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAc,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzG,qBAAa,YAAa,YAAW,MAAM;IAEvC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EAC7B,MAAM,EAAE,MAAM;IAahB,GAAG,CAAC,GAAG,CAAC,EAAE,UAAU;IA4BpB,cAAc,CAAC,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO;IASxD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAU5D,eAAe,CACb,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE;IAkCxD,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAOhC,OAAO,CAAC,QAAQ;CAOjB"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamTracer = void 0;
|
|
4
|
+
const create_trace_1 = require("./create-trace");
|
|
5
|
+
class StreamTracer {
|
|
6
|
+
constructor(manager, traceGroup, trace, logger) {
|
|
7
|
+
this.manager = manager;
|
|
8
|
+
this.traceGroup = traceGroup;
|
|
9
|
+
this.trace = trace;
|
|
10
|
+
logger.addListener((level, msg, args) => {
|
|
11
|
+
this.addEvent({
|
|
12
|
+
type: 'log',
|
|
13
|
+
timestamp: Date.now(),
|
|
14
|
+
level,
|
|
15
|
+
message: msg,
|
|
16
|
+
metadata: args,
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
end(err) {
|
|
21
|
+
if (this.trace.endTime) {
|
|
22
|
+
// avoiding updating twice
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
this.trace.status = err ? 'failed' : 'completed';
|
|
26
|
+
this.trace.endTime = Date.now();
|
|
27
|
+
this.trace.error = err;
|
|
28
|
+
this.traceGroup.metadata.completedSteps++;
|
|
29
|
+
this.traceGroup.metadata.activeSteps--;
|
|
30
|
+
if (this.traceGroup.metadata.activeSteps === 0) {
|
|
31
|
+
if (this.traceGroup.status === 'running') {
|
|
32
|
+
this.traceGroup.status = 'completed';
|
|
33
|
+
}
|
|
34
|
+
this.traceGroup.endTime = Date.now();
|
|
35
|
+
}
|
|
36
|
+
if (err) {
|
|
37
|
+
this.traceGroup.status = 'failed';
|
|
38
|
+
}
|
|
39
|
+
this.manager.updateTrace();
|
|
40
|
+
this.manager.updateTraceGroup();
|
|
41
|
+
}
|
|
42
|
+
stateOperation(operation, input) {
|
|
43
|
+
this.addEvent({
|
|
44
|
+
type: 'state',
|
|
45
|
+
timestamp: Date.now(),
|
|
46
|
+
operation,
|
|
47
|
+
data: input,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
emitOperation(topic, data, success) {
|
|
51
|
+
this.addEvent({
|
|
52
|
+
type: 'emit',
|
|
53
|
+
timestamp: Date.now(),
|
|
54
|
+
topic,
|
|
55
|
+
success,
|
|
56
|
+
data,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
streamOperation(streamName, operation, input) {
|
|
60
|
+
if (operation === 'set') {
|
|
61
|
+
const lastEvent = this.trace.events[this.trace.events.length - 1];
|
|
62
|
+
if (lastEvent &&
|
|
63
|
+
lastEvent.type === 'stream' &&
|
|
64
|
+
lastEvent.streamName === streamName &&
|
|
65
|
+
lastEvent.data.groupId === input.groupId &&
|
|
66
|
+
lastEvent.data.id === input.id) {
|
|
67
|
+
lastEvent.calls++;
|
|
68
|
+
lastEvent.data.data = input.data;
|
|
69
|
+
lastEvent.maxTimestamp = Date.now();
|
|
70
|
+
this.traceGroup.lastActivity = lastEvent.maxTimestamp;
|
|
71
|
+
this.manager.updateTrace();
|
|
72
|
+
this.manager.updateTraceGroup();
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
this.addEvent({
|
|
77
|
+
type: 'stream',
|
|
78
|
+
timestamp: Date.now(),
|
|
79
|
+
operation,
|
|
80
|
+
data: input,
|
|
81
|
+
streamName,
|
|
82
|
+
calls: 1,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
child(step, logger) {
|
|
86
|
+
const trace = (0, create_trace_1.createTrace)(this.traceGroup, step);
|
|
87
|
+
const manager = this.manager.child(trace);
|
|
88
|
+
return new StreamTracer(manager, this.traceGroup, trace, logger);
|
|
89
|
+
}
|
|
90
|
+
addEvent(event) {
|
|
91
|
+
this.trace.events.push(event);
|
|
92
|
+
this.traceGroup.lastActivity = event.timestamp;
|
|
93
|
+
this.manager.updateTrace();
|
|
94
|
+
this.manager.updateTraceGroup();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.StreamTracer = StreamTracer;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { MotiaStream } from '../types-stream';
|
|
2
|
+
import type { Trace, TraceGroup } from './types';
|
|
3
|
+
export declare class TraceManager {
|
|
4
|
+
private readonly traceStream;
|
|
5
|
+
private readonly traceGroupStream;
|
|
6
|
+
private readonly traceGroup;
|
|
7
|
+
private readonly trace;
|
|
8
|
+
constructor(traceStream: MotiaStream<Trace>, traceGroupStream: MotiaStream<TraceGroup>, traceGroup: TraceGroup, trace: Trace);
|
|
9
|
+
updateTrace(): void;
|
|
10
|
+
updateTraceGroup(): void;
|
|
11
|
+
child(trace: Trace): TraceManager;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=trace-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-manager.d.ts","sourceRoot":"","sources":["../../../src/observability/trace-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEhD,qBAAa,YAAY;IAErB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAHL,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,EAC/B,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,EACzC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK;IAM/B,WAAW;IAIX,gBAAgB;IAIhB,KAAK,CAAC,KAAK,EAAE,KAAK;CAGnB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TraceManager = void 0;
|
|
4
|
+
class TraceManager {
|
|
5
|
+
constructor(traceStream, traceGroupStream, traceGroup, trace) {
|
|
6
|
+
this.traceStream = traceStream;
|
|
7
|
+
this.traceGroupStream = traceGroupStream;
|
|
8
|
+
this.traceGroup = traceGroup;
|
|
9
|
+
this.trace = trace;
|
|
10
|
+
this.updateTrace();
|
|
11
|
+
this.updateTraceGroup();
|
|
12
|
+
}
|
|
13
|
+
updateTrace() {
|
|
14
|
+
this.traceStream.set(this.traceGroup.id, this.trace.id, this.trace);
|
|
15
|
+
}
|
|
16
|
+
updateTraceGroup() {
|
|
17
|
+
this.traceGroupStream.set('default', this.traceGroup.id, this.traceGroup);
|
|
18
|
+
}
|
|
19
|
+
child(trace) {
|
|
20
|
+
return new TraceManager(this.traceStream, this.traceGroupStream, this.traceGroup, trace);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.TraceManager = TraceManager;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { LockedData } from '../locked-data';
|
|
2
|
+
import type { Logger } from '../logger';
|
|
3
|
+
import type { Step } from '../types';
|
|
4
|
+
import type { MotiaStream } from '../types-stream';
|
|
5
|
+
import type { TracerFactory } from '.';
|
|
6
|
+
import { StreamTracer } from './stream-tracer';
|
|
7
|
+
import type { Trace, TraceGroup } from './types';
|
|
8
|
+
export declare class BaseTracerFactory implements TracerFactory {
|
|
9
|
+
private readonly traceStream;
|
|
10
|
+
private readonly traceGroupStream;
|
|
11
|
+
constructor(traceStream: MotiaStream<Trace>, traceGroupStream: MotiaStream<TraceGroup>);
|
|
12
|
+
private getAllGroups;
|
|
13
|
+
private deleteGroup;
|
|
14
|
+
clear(): Promise<void>;
|
|
15
|
+
createTracer(traceId: string, step: Step, logger: Logger): Promise<StreamTracer>;
|
|
16
|
+
attachToTrace(traceId: string, step: Step, logger: Logger): Promise<StreamTracer>;
|
|
17
|
+
}
|
|
18
|
+
export declare const createTracerFactory: (lockedData: LockedData) => TracerFactory;
|
|
19
|
+
//# sourceMappingURL=tracer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/observability/tracer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACvC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AACpC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,GAAG,CAAA;AAGtC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9C,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMhD,qBAAa,iBAAkB,YAAW,aAAa;IAEnD,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADhB,WAAW,EAAE,WAAW,CAAC,KAAK,CAAC,EAC/B,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC;YAG9C,YAAY;YAIZ,WAAW;IASnB,KAAK;IAQL,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAiCxD,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;CAYhE;AAED,eAAO,MAAM,mBAAmB,GAAI,YAAY,UAAU,KAAG,aA+B5D,CAAA"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTracerFactory = exports.BaseTracerFactory = void 0;
|
|
4
|
+
const create_trace_1 = require("./create-trace");
|
|
5
|
+
const redis_trace_stream_adapter_1 = require("./redis-trace-stream-adapter");
|
|
6
|
+
const stream_tracer_1 = require("./stream-tracer");
|
|
7
|
+
const trace_manager_1 = require("./trace-manager");
|
|
8
|
+
const MAX_TRACE_GROUPS = process.env.MOTIA_MAX_TRACE_GROUPS //
|
|
9
|
+
? Number.parseInt(process.env.MOTIA_MAX_TRACE_GROUPS, 10)
|
|
10
|
+
: 50;
|
|
11
|
+
class BaseTracerFactory {
|
|
12
|
+
constructor(traceStream, traceGroupStream) {
|
|
13
|
+
this.traceStream = traceStream;
|
|
14
|
+
this.traceGroupStream = traceGroupStream;
|
|
15
|
+
}
|
|
16
|
+
async getAllGroups() {
|
|
17
|
+
return await this.traceGroupStream.getGroup('default');
|
|
18
|
+
}
|
|
19
|
+
async deleteGroup(group) {
|
|
20
|
+
const traces = await this.traceStream.getGroup(group.id);
|
|
21
|
+
for (const trace of traces) {
|
|
22
|
+
await this.traceStream.delete(group.id, trace.id);
|
|
23
|
+
}
|
|
24
|
+
await this.traceGroupStream.delete('default', group.id);
|
|
25
|
+
}
|
|
26
|
+
async clear() {
|
|
27
|
+
const groups = await this.getAllGroups();
|
|
28
|
+
for (const group of groups) {
|
|
29
|
+
await this.deleteGroup(group);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
async createTracer(traceId, step, logger) {
|
|
33
|
+
const traceGroup = {
|
|
34
|
+
id: traceId,
|
|
35
|
+
name: step.config.name,
|
|
36
|
+
lastActivity: Date.now(),
|
|
37
|
+
metadata: {
|
|
38
|
+
completedSteps: 0,
|
|
39
|
+
activeSteps: 0,
|
|
40
|
+
totalSteps: 0,
|
|
41
|
+
},
|
|
42
|
+
correlationId: undefined,
|
|
43
|
+
status: 'running',
|
|
44
|
+
startTime: Date.now(),
|
|
45
|
+
};
|
|
46
|
+
const groups = await this.getAllGroups();
|
|
47
|
+
if (groups.length >= MAX_TRACE_GROUPS) {
|
|
48
|
+
const groupsToDelete = groups
|
|
49
|
+
.sort((a, b) => a.startTime - b.startTime) // date ascending
|
|
50
|
+
.slice(0, groups.length - MAX_TRACE_GROUPS + 1);
|
|
51
|
+
for (const group of groupsToDelete) {
|
|
52
|
+
await this.deleteGroup(group);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const trace = (0, create_trace_1.createTrace)(traceGroup, step);
|
|
56
|
+
const manager = new trace_manager_1.TraceManager(this.traceStream, this.traceGroupStream, traceGroup, trace);
|
|
57
|
+
return new stream_tracer_1.StreamTracer(manager, traceGroup, trace, logger);
|
|
58
|
+
}
|
|
59
|
+
async attachToTrace(traceId, step, logger) {
|
|
60
|
+
const existingGroup = await this.traceGroupStream.get('default', traceId);
|
|
61
|
+
if (!existingGroup) {
|
|
62
|
+
return this.createTracer(traceId, step, logger);
|
|
63
|
+
}
|
|
64
|
+
const trace = (0, create_trace_1.createTrace)(existingGroup, step);
|
|
65
|
+
const manager = new trace_manager_1.TraceManager(this.traceStream, this.traceGroupStream, existingGroup, trace);
|
|
66
|
+
return new stream_tracer_1.StreamTracer(manager, existingGroup, trace, logger);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
exports.BaseTracerFactory = BaseTracerFactory;
|
|
70
|
+
const createTracerFactory = (lockedData) => {
|
|
71
|
+
const traceStreamName = 'motia-trace';
|
|
72
|
+
const traceStreamAdapter = new redis_trace_stream_adapter_1.RedisTraceStreamAdapter(traceStreamName, lockedData.redisClient);
|
|
73
|
+
const traceStream = lockedData.createStream({
|
|
74
|
+
filePath: traceStreamName,
|
|
75
|
+
hidden: true,
|
|
76
|
+
config: {
|
|
77
|
+
name: traceStreamName,
|
|
78
|
+
baseConfig: { storageType: 'custom', factory: () => traceStreamAdapter },
|
|
79
|
+
schema: null,
|
|
80
|
+
},
|
|
81
|
+
})();
|
|
82
|
+
const traceGroupName = 'motia-trace-group';
|
|
83
|
+
const traceGroupStreamAdapter = new redis_trace_stream_adapter_1.RedisTraceStreamAdapter(traceGroupName, lockedData.redisClient);
|
|
84
|
+
const traceGroupStream = lockedData.createStream({
|
|
85
|
+
filePath: traceGroupName,
|
|
86
|
+
hidden: true,
|
|
87
|
+
config: {
|
|
88
|
+
name: traceGroupName,
|
|
89
|
+
baseConfig: { storageType: 'custom', factory: () => traceGroupStreamAdapter },
|
|
90
|
+
schema: null,
|
|
91
|
+
},
|
|
92
|
+
})();
|
|
93
|
+
return new BaseTracerFactory(traceStream, traceGroupStream);
|
|
94
|
+
};
|
|
95
|
+
exports.createTracerFactory = createTracerFactory;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { StepConfig } from '../types';
|
|
2
|
+
export interface TraceGroup {
|
|
3
|
+
id: string;
|
|
4
|
+
correlationId: string | undefined;
|
|
5
|
+
name: string;
|
|
6
|
+
status: 'running' | 'completed' | 'failed';
|
|
7
|
+
startTime: number;
|
|
8
|
+
endTime?: number;
|
|
9
|
+
lastActivity: number;
|
|
10
|
+
metadata: {
|
|
11
|
+
completedSteps: number;
|
|
12
|
+
activeSteps: number;
|
|
13
|
+
totalSteps: number;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export type TraceError = {
|
|
17
|
+
message: string;
|
|
18
|
+
code?: string | number;
|
|
19
|
+
stack?: string;
|
|
20
|
+
};
|
|
21
|
+
export interface Trace {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
correlationId?: string;
|
|
25
|
+
parentTraceId?: string;
|
|
26
|
+
status: 'running' | 'completed' | 'failed';
|
|
27
|
+
startTime: number;
|
|
28
|
+
endTime?: number;
|
|
29
|
+
error?: TraceError;
|
|
30
|
+
entryPoint: {
|
|
31
|
+
type: StepConfig['type'];
|
|
32
|
+
stepName: string;
|
|
33
|
+
};
|
|
34
|
+
events: TraceEvent[];
|
|
35
|
+
}
|
|
36
|
+
export type TraceEvent = StateEvent | EmitEvent | StreamEvent | LogEntry;
|
|
37
|
+
export type StateOperation = 'get' | 'getGroup' | 'set' | 'delete' | 'clear';
|
|
38
|
+
export type StreamOperation = 'get' | 'getGroup' | 'set' | 'delete' | 'clear' | 'send';
|
|
39
|
+
export interface StateEvent {
|
|
40
|
+
type: 'state';
|
|
41
|
+
timestamp: number;
|
|
42
|
+
operation: 'get' | 'getGroup' | 'set' | 'delete' | 'clear';
|
|
43
|
+
key?: string;
|
|
44
|
+
duration?: number;
|
|
45
|
+
data: unknown;
|
|
46
|
+
}
|
|
47
|
+
export interface EmitEvent {
|
|
48
|
+
type: 'emit';
|
|
49
|
+
timestamp: number;
|
|
50
|
+
topic: string;
|
|
51
|
+
success: boolean;
|
|
52
|
+
data: unknown;
|
|
53
|
+
}
|
|
54
|
+
export interface StreamEvent {
|
|
55
|
+
type: 'stream';
|
|
56
|
+
timestamp: number;
|
|
57
|
+
operation: StreamOperation;
|
|
58
|
+
streamName: string;
|
|
59
|
+
duration?: number;
|
|
60
|
+
maxTimestamp?: number;
|
|
61
|
+
data: {
|
|
62
|
+
groupId: string;
|
|
63
|
+
id: string;
|
|
64
|
+
data?: unknown;
|
|
65
|
+
};
|
|
66
|
+
calls: number;
|
|
67
|
+
}
|
|
68
|
+
export interface LogEntry {
|
|
69
|
+
type: 'log';
|
|
70
|
+
timestamp: number;
|
|
71
|
+
level: string;
|
|
72
|
+
message: string;
|
|
73
|
+
metadata?: unknown;
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/observability/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAE1C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,aAAa,EAAE,MAAM,GAAG,SAAS,CAAA;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE;QACR,cAAc,EAAE,MAAM,CAAA;QACtB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;CACF;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;IAC1C,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE;QAAE,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1D,MAAM,EAAE,UAAU,EAAE,CAAA;CACrB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;AAExE,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;AAC5E,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;AAEtF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;IAChB,IAAI,EAAE,OAAO,CAAA;CACd;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,eAAe,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;IACrD,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,KAAK,CAAA;IACX,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pretty-print.d.ts","sourceRoot":"","sources":["../../src/pretty-print.ts"],"names":[],"mappings":"AA0DA,eAAO,MAAM,WAAW,GAAI,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,wBAAsB,KAAG,IAW/E,CAAA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.prettyPrint = void 0;
|
|
7
|
+
const colors_1 = __importDefault(require("colors"));
|
|
8
|
+
const stepTag = (step) => colors_1.default.bold(colors_1.default.cyan(step));
|
|
9
|
+
const timestampTag = (timestamp) => colors_1.default.gray(timestamp);
|
|
10
|
+
const traceIdTag = (traceId) => colors_1.default.gray(traceId);
|
|
11
|
+
const levelTags = {
|
|
12
|
+
error: colors_1.default.red('[ERROR]'),
|
|
13
|
+
info: colors_1.default.blue('[INFO]'),
|
|
14
|
+
warn: colors_1.default.yellow('[WARN]'),
|
|
15
|
+
debug: colors_1.default.gray('[DEBUG]'),
|
|
16
|
+
trace: colors_1.default.gray('[TRACE]'),
|
|
17
|
+
};
|
|
18
|
+
const numericTag = (value) => colors_1.default.green(value);
|
|
19
|
+
const stringTag = (value) => colors_1.default.cyan(value);
|
|
20
|
+
const booleanTag = (value) => colors_1.default.blue(value);
|
|
21
|
+
const arrayBrackets = ['[', ']'].map((s) => colors_1.default.gray(s));
|
|
22
|
+
const objectBrackets = ['{', '}'].map((s) => colors_1.default.gray(s));
|
|
23
|
+
const prettyPrintObject = (obj, depth = 0, parentIsLast = false, prefix = '') => {
|
|
24
|
+
const tab = prefix + (depth === 0 ? '' : parentIsLast ? '│ ' : '│ ');
|
|
25
|
+
if (depth > 2) {
|
|
26
|
+
return `${tab} └ ${colors_1.default.gray('[...]')}`;
|
|
27
|
+
}
|
|
28
|
+
const entries = Object.entries(obj);
|
|
29
|
+
return entries
|
|
30
|
+
.map(([key, value], index) => {
|
|
31
|
+
const isLast = index === entries.length - 1;
|
|
32
|
+
const isObject = typeof value === 'object' && value !== null;
|
|
33
|
+
const prefix = isLast && !isObject ? '└' : '├';
|
|
34
|
+
if (isObject) {
|
|
35
|
+
const subObject = prettyPrintObject(value, depth + 1, isLast, tab);
|
|
36
|
+
const [start, end] = Array.isArray(value) ? arrayBrackets : objectBrackets;
|
|
37
|
+
return `${tab}${prefix} ${key}: ${start}\n${subObject}\n${tab}${isLast ? '└' : '│'} ${end}`;
|
|
38
|
+
}
|
|
39
|
+
let printedValue = value;
|
|
40
|
+
if (typeof value === 'number') {
|
|
41
|
+
printedValue = numericTag(String(value));
|
|
42
|
+
}
|
|
43
|
+
else if (typeof value === 'boolean') {
|
|
44
|
+
printedValue = booleanTag(String(value));
|
|
45
|
+
}
|
|
46
|
+
else if (typeof value === 'string') {
|
|
47
|
+
printedValue = stringTag(value);
|
|
48
|
+
}
|
|
49
|
+
return `${tab}${prefix} ${key}: ${printedValue}`;
|
|
50
|
+
})
|
|
51
|
+
.join('\n');
|
|
52
|
+
};
|
|
53
|
+
const prettyPrint = (json, excludeDetails = false) => {
|
|
54
|
+
const { time, traceId, msg, flows, level, step, ...details } = json;
|
|
55
|
+
const levelTag = levelTags[level];
|
|
56
|
+
const timestamp = timestampTag(`[${new Date(time).toLocaleTimeString()}]`);
|
|
57
|
+
const objectHasKeys = Object.keys(details).length > 0;
|
|
58
|
+
console.log(`${timestamp} ${traceIdTag(traceId)} ${levelTag} ${stepTag(step)} ${msg}`);
|
|
59
|
+
if (objectHasKeys && !excludeDetails) {
|
|
60
|
+
console.log(prettyPrintObject(details));
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.prettyPrint = prettyPrint;
|