@motiadev/core 0.13.2-beta.163 → 0.13.2-beta.164-562802
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/index.d.mts +38 -0
- package/dist/index.mjs +30 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts +17 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs +51 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts +19 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs +54 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/index.d.mts +8 -0
- package/dist/src/adapters/defaults/index.mjs +10 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts +27 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs +105 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts +20 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs +58 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/state/utils.mjs +40 -0
- package/dist/src/adapters/defaults/state/utils.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts +13 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs +16 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts +24 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs +84 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts +10 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs +12 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts +20 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs +58 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs.map +1 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts +32 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts +19 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts +27 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts +28 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts +10 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts +26 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs +17 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs.map +1 -0
- package/dist/src/analytics/utils.d.mts +9 -0
- package/dist/src/analytics/utils.d.mts.map +1 -0
- package/dist/src/analytics/utils.mjs +35 -0
- package/dist/src/analytics/utils.mjs.map +1 -0
- package/dist/src/call-step-file.mjs +213 -0
- package/dist/src/call-step-file.mjs.map +1 -0
- package/dist/src/config.d.mts +7 -0
- package/dist/src/config.d.mts.map +1 -0
- package/dist/src/config.mjs +6 -0
- package/dist/src/config.mjs.map +1 -0
- package/dist/src/cron-handler.d.mts +18 -0
- package/dist/src/cron-handler.d.mts.map +1 -0
- package/dist/src/cron-handler.mjs +103 -0
- package/dist/src/cron-handler.mjs.map +1 -0
- package/dist/src/endpoints/analytics-endpoint.mjs +29 -0
- package/dist/src/endpoints/analytics-endpoint.mjs.map +1 -0
- package/dist/src/endpoints/flows-config-endpoint.mjs +38 -0
- package/dist/src/endpoints/flows-config-endpoint.mjs.map +1 -0
- package/dist/src/endpoints/flows-endpoint.mjs +39 -0
- package/dist/src/endpoints/flows-endpoint.mjs.map +1 -0
- package/dist/src/endpoints/step-endpoint.mjs +41 -0
- package/dist/src/endpoints/step-endpoint.mjs.map +1 -0
- package/dist/src/generate-trace-id.mjs +13 -0
- package/dist/src/generate-trace-id.mjs.map +1 -0
- package/dist/src/get-step-config.d.mts +9 -0
- package/dist/src/get-step-config.d.mts.map +1 -0
- package/dist/src/get-step-config.mjs +63 -0
- package/dist/src/get-step-config.mjs.map +1 -0
- package/dist/src/get-step-language.mjs +14 -0
- package/dist/src/get-step-language.mjs.map +1 -0
- package/dist/src/guards.d.mts +10 -0
- package/dist/src/guards.d.mts.map +1 -0
- package/dist/src/guards.mjs +9 -0
- package/dist/src/guards.mjs.map +1 -0
- package/dist/src/helper/flows-helper.mjs +126 -0
- package/dist/src/helper/flows-helper.mjs.map +1 -0
- package/dist/src/infrastructure-validator/defaults.mjs +17 -0
- package/dist/src/infrastructure-validator/defaults.mjs.map +1 -0
- package/dist/src/infrastructure-validator/index.d.mts +3 -0
- package/dist/src/infrastructure-validator/index.mjs +4 -0
- package/dist/src/infrastructure-validator/schemas.d.mts +1 -0
- package/dist/src/infrastructure-validator/schemas.mjs +77 -0
- package/dist/src/infrastructure-validator/schemas.mjs.map +1 -0
- package/dist/src/infrastructure-validator/types.d.mts +14 -0
- package/dist/src/infrastructure-validator/types.d.mts.map +1 -0
- package/dist/src/infrastructure-validator/validations.d.mts +7 -0
- package/dist/src/infrastructure-validator/validations.d.mts.map +1 -0
- package/dist/src/infrastructure-validator/validations.mjs +29 -0
- package/dist/src/infrastructure-validator/validations.mjs.map +1 -0
- package/dist/src/language-runner.mjs +55 -0
- package/dist/src/language-runner.mjs.map +1 -0
- package/dist/src/locked-data.d.mts +81 -0
- package/dist/src/locked-data.d.mts.map +1 -0
- package/dist/src/locked-data.mjs +223 -0
- package/dist/src/locked-data.mjs.map +1 -0
- package/dist/src/logger-factory.d.mts +16 -0
- package/dist/src/logger-factory.d.mts.map +1 -0
- package/dist/src/logger-factory.mjs +33 -0
- package/dist/src/logger-factory.mjs.map +1 -0
- package/dist/src/logger.d.mts +28 -0
- package/dist/src/logger.d.mts.map +1 -0
- package/dist/src/logger.mjs +64 -0
- package/dist/src/logger.mjs.map +1 -0
- package/dist/src/mermaid-generator.d.mts +9 -0
- package/dist/src/mermaid-generator.d.mts.map +1 -0
- package/dist/src/mermaid-generator.mjs +126 -0
- package/dist/src/mermaid-generator.mjs.map +1 -0
- package/dist/src/motia.d.mts +36 -0
- package/dist/src/motia.d.mts.map +1 -0
- package/dist/src/motia.mjs +6 -0
- package/dist/src/motia.mjs.map +1 -0
- package/dist/src/node/can-access.d.mts +1 -0
- package/dist/src/node/can-access.mjs +36 -0
- package/dist/src/node/can-access.mjs.map +1 -0
- package/dist/src/node/get-config.d.mts +1 -0
- package/dist/src/node/get-config.mjs +49 -0
- package/dist/src/node/get-config.mjs.map +1 -0
- package/dist/src/node/logger.mjs +47 -0
- package/dist/src/node/logger.mjs.map +1 -0
- package/dist/src/node/middleware-compose.mjs +10 -0
- package/dist/src/node/middleware-compose.mjs.map +1 -0
- package/dist/src/node/node-runner.d.mts +1 -0
- package/dist/src/node/node-runner.mjs +94 -0
- package/dist/src/node/node-runner.mjs.map +1 -0
- package/dist/src/node/rpc-state-manager.mjs +35 -0
- package/dist/src/node/rpc-state-manager.mjs.map +1 -0
- package/dist/src/node/rpc.mjs +55 -0
- package/dist/src/node/rpc.mjs.map +1 -0
- package/dist/src/observability/create-trace.mjs +26 -0
- package/dist/src/observability/create-trace.mjs.map +1 -0
- package/dist/src/observability/index.d.mts +7 -0
- package/dist/src/observability/index.d.mts.map +1 -0
- package/dist/src/observability/no-tracer.d.mts +15 -0
- package/dist/src/observability/no-tracer.d.mts.map +1 -0
- package/dist/src/observability/no-tracer.mjs +15 -0
- package/dist/src/observability/no-tracer.mjs.map +1 -0
- package/dist/src/observability/redis-trace-stream-adapter.mjs +76 -0
- package/dist/src/observability/redis-trace-stream-adapter.mjs.map +1 -0
- package/dist/src/observability/stream-tracer.mjs +87 -0
- package/dist/src/observability/stream-tracer.mjs.map +1 -0
- package/dist/src/observability/trace-manager.mjs +24 -0
- package/dist/src/observability/trace-manager.mjs.map +1 -0
- package/dist/src/observability/tracer.mjs +87 -0
- package/dist/src/observability/tracer.mjs.map +1 -0
- package/dist/src/observability/types.d.mts +14 -0
- package/dist/src/observability/types.d.mts.map +1 -0
- package/dist/src/pretty-print.mjs +50 -0
- package/dist/src/pretty-print.mjs.map +1 -0
- package/dist/src/printer.d.mts +65 -0
- package/dist/src/printer.d.mts.map +1 -0
- package/dist/src/printer.mjs +147 -0
- package/dist/src/printer.mjs.map +1 -0
- package/dist/src/process-communication/communication-config.mjs +26 -0
- package/dist/src/process-communication/communication-config.mjs.map +1 -0
- package/dist/src/process-communication/process-manager.mjs +67 -0
- package/dist/src/process-communication/process-manager.mjs.map +1 -0
- package/dist/src/queue-manager.d.mts +37 -0
- package/dist/src/queue-manager.d.mts.map +1 -0
- package/dist/src/queue-manager.mjs +209 -0
- package/dist/src/queue-manager.mjs.map +1 -0
- package/dist/src/run-stream-can-access.mjs +59 -0
- package/dist/src/run-stream-can-access.mjs.map +1 -0
- package/dist/src/schema-utils.mjs +30 -0
- package/dist/src/schema-utils.mjs.map +1 -0
- package/dist/src/server.d.mts +40 -0
- package/dist/src/server.d.mts.map +1 -0
- package/dist/src/server.mjs +332 -0
- package/dist/src/server.mjs.map +1 -0
- package/dist/src/socket-server/helpers.mjs +35 -0
- package/dist/src/socket-server/helpers.mjs.map +1 -0
- package/dist/src/socket-server.mjs +127 -0
- package/dist/src/socket-server.mjs.map +1 -0
- package/dist/src/state/create-state-adapter.d.mts +11 -0
- package/dist/src/state/create-state-adapter.d.mts.map +1 -0
- package/dist/src/state/create-state-adapter.mjs +11 -0
- package/dist/src/state/create-state-adapter.mjs.map +1 -0
- package/dist/src/step-handler-rpc-processor.mjs +56 -0
- package/dist/src/step-handler-rpc-processor.mjs.map +1 -0
- package/dist/src/step-handler-rpc-stdin-processor.mjs +71 -0
- package/dist/src/step-handler-rpc-stdin-processor.mjs.map +1 -0
- package/dist/src/step-handlers.d.mts +13 -0
- package/dist/src/step-handlers.d.mts.map +1 -0
- package/dist/src/step-handlers.mjs +93 -0
- package/dist/src/step-handlers.mjs.map +1 -0
- package/dist/src/step-validator.d.mts +15 -0
- package/dist/src/step-validator.d.mts.map +1 -0
- package/dist/src/step-validator.mjs +118 -0
- package/dist/src/step-validator.mjs.map +1 -0
- package/dist/src/steps/emit.step.mjs +20 -0
- package/dist/src/steps/emit.step.mjs.map +1 -0
- package/dist/src/steps/index.mjs +14 -0
- package/dist/src/steps/index.mjs.map +1 -0
- package/dist/src/streams/flows-config-stream.mjs +46 -0
- package/dist/src/streams/flows-config-stream.mjs.map +1 -0
- package/dist/src/streams/flows-stream.mjs +33 -0
- package/dist/src/streams/flows-stream.mjs.map +1 -0
- package/dist/src/streams/redis-logs-stream.d.mts +3 -0
- package/dist/src/streams/redis-logs-stream.mjs +97 -0
- package/dist/src/streams/redis-logs-stream.mjs.map +1 -0
- package/dist/src/streams/stream-factory.d.mts +7 -0
- package/dist/src/streams/stream-factory.d.mts.map +1 -0
- package/dist/src/types/app-config-types.d.mts +48 -0
- package/dist/src/types/app-config-types.d.mts.map +1 -0
- package/dist/src/types/generate-type-from-schema.mjs +30 -0
- package/dist/src/types/generate-type-from-schema.mjs.map +1 -0
- package/dist/src/types/generate-types-from-response.mjs +12 -0
- package/dist/src/types/generate-types-from-response.mjs.map +1 -0
- package/dist/src/types/generate-types.mjs +101 -0
- package/dist/src/types/generate-types.mjs.map +1 -0
- package/dist/src/types/merge-schemas.mjs +102 -0
- package/dist/src/types/merge-schemas.mjs.map +1 -0
- package/dist/src/types/schema.types.d.mts +13 -0
- package/dist/src/types/schema.types.d.mts.map +1 -0
- package/dist/src/types/schema.types.mjs +14 -0
- package/dist/src/types/schema.types.mjs.map +1 -0
- package/dist/src/types-stream.d.mts +46 -0
- package/dist/src/types-stream.d.mts.map +1 -0
- package/dist/src/types.d.mts +188 -0
- package/dist/src/types.d.mts.map +1 -0
- package/dist/src/utils.mjs +13 -0
- package/dist/src/utils.mjs.map +1 -0
- package/dist/src/validate-event-input.mjs +76 -0
- package/dist/src/validate-event-input.mjs.map +1 -0
- package/jest.config.cjs +20 -0
- package/package.json +21 -8
- package/tsdown.config.ts +53 -0
- package/dist/index.d.ts +0 -30
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -72
- package/dist/jest.config.d.ts +0 -8
- package/dist/jest.config.d.ts.map +0 -1
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +0 -13
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +0 -53
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +0 -15
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +0 -49
- package/dist/src/adapters/defaults/index.d.ts +0 -9
- package/dist/src/adapters/defaults/index.d.ts.map +0 -1
- package/dist/src/adapters/defaults/index.js +0 -19
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts +0 -23
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/state/file-state-adapter.js +0 -149
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts +0 -16
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/state/memory-state-adapter.js +0 -69
- package/dist/src/adapters/defaults/state/utils.d.ts +0 -4
- package/dist/src/adapters/defaults/state/utils.d.ts.map +0 -1
- package/dist/src/adapters/defaults/state/utils.js +0 -66
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +0 -9
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +0 -14
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts +0 -22
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter.js +0 -125
- package/dist/src/adapters/defaults/stream/index.d.ts +0 -5
- package/dist/src/adapters/defaults/stream/index.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/index.js +0 -11
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +0 -6
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +0 -10
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts +0 -16
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +0 -55
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +0 -29
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/cron-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +0 -15
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/event-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/index.d.ts +0 -7
- package/dist/src/adapters/interfaces/index.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/index.js +0 -5
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +0 -23
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/observability-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts +0 -24
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/state-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +0 -6
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +0 -2
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +0 -22
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter.interface.js +0 -16
- package/dist/src/analytics/utils.d.ts +0 -6
- package/dist/src/analytics/utils.d.ts.map +0 -1
- package/dist/src/analytics/utils.js +0 -51
- package/dist/src/call-step-file.d.ts +0 -16
- package/dist/src/call-step-file.d.ts.map +0 -1
- package/dist/src/call-step-file.js +0 -194
- package/dist/src/config.d.ts +0 -3
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -5
- package/dist/src/config.types.d.ts +0 -17
- package/dist/src/config.types.d.ts.map +0 -1
- package/dist/src/config.types.js +0 -2
- package/dist/src/cron-handler.d.ts +0 -14
- package/dist/src/cron-handler.d.ts.map +0 -1
- package/dist/src/cron-handler.js +0 -132
- package/dist/src/endpoints/analytics-endpoint.d.ts +0 -3
- package/dist/src/endpoints/analytics-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/analytics-endpoint.js +0 -28
- package/dist/src/endpoints/flows-config-endpoint.d.ts +0 -4
- package/dist/src/endpoints/flows-config-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/flows-config-endpoint.js +0 -34
- package/dist/src/endpoints/flows-endpoint.d.ts +0 -3
- package/dist/src/endpoints/flows-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/flows-endpoint.js +0 -29
- package/dist/src/endpoints/step-endpoint.d.ts +0 -4
- package/dist/src/endpoints/step-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/step-endpoint.js +0 -45
- package/dist/src/generate-trace-id.d.ts +0 -3
- package/dist/src/generate-trace-id.d.ts.map +0 -1
- package/dist/src/generate-trace-id.js +0 -14
- package/dist/src/get-step-config.d.ts +0 -5
- package/dist/src/get-step-config.d.ts.map +0 -1
- package/dist/src/get-step-config.js +0 -68
- package/dist/src/get-step-language.d.ts +0 -2
- package/dist/src/get-step-language.d.ts.map +0 -1
- package/dist/src/get-step-language.js +0 -27
- package/dist/src/guards.d.ts +0 -6
- package/dist/src/guards.d.ts.map +0 -1
- package/dist/src/guards.js +0 -11
- package/dist/src/helper/flows-helper.d.ts +0 -6
- package/dist/src/helper/flows-helper.d.ts.map +0 -1
- package/dist/src/helper/flows-helper.js +0 -143
- package/dist/src/infrastructure-validator/defaults.d.ts +0 -4
- package/dist/src/infrastructure-validator/defaults.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/defaults.js +0 -16
- package/dist/src/infrastructure-validator/index.d.ts +0 -4
- package/dist/src/infrastructure-validator/index.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/index.js +0 -13
- package/dist/src/infrastructure-validator/schemas.d.ts +0 -45
- package/dist/src/infrastructure-validator/schemas.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/schemas.js +0 -100
- package/dist/src/infrastructure-validator/types.d.ts +0 -21
- package/dist/src/infrastructure-validator/types.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/types.js +0 -2
- package/dist/src/infrastructure-validator/validations.d.ts +0 -4
- package/dist/src/infrastructure-validator/validations.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/validations.js +0 -62
- package/dist/src/language-runner.d.ts +0 -15
- package/dist/src/language-runner.d.ts.map +0 -1
- package/dist/src/language-runner.js +0 -31
- package/dist/src/locked-data.d.ts +0 -78
- package/dist/src/locked-data.d.ts.map +0 -1
- package/dist/src/locked-data.js +0 -284
- package/dist/src/logger-factory.d.ts +0 -19
- package/dist/src/logger-factory.d.ts.map +0 -1
- package/dist/src/logger-factory.js +0 -27
- package/dist/src/logger.d.ts +0 -26
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -60
- package/dist/src/mermaid-generator.d.ts +0 -5
- package/dist/src/mermaid-generator.d.ts.map +0 -1
- package/dist/src/mermaid-generator.js +0 -203
- package/dist/src/motia.d.ts +0 -32
- package/dist/src/motia.d.ts.map +0 -1
- package/dist/src/motia.js +0 -4
- package/dist/src/node/can-access.d.ts +0 -2
- package/dist/src/node/can-access.d.ts.map +0 -1
- package/dist/src/node/can-access.js +0 -44
- package/dist/src/node/get-config.d.ts +0 -2
- package/dist/src/node/get-config.d.ts.map +0 -1
- package/dist/src/node/get-config.js +0 -64
- package/dist/src/node/logger.d.ts +0 -16
- package/dist/src/node/logger.d.ts.map +0 -1
- package/dist/src/node/logger.js +0 -48
- package/dist/src/node/middleware-compose.d.ts +0 -2
- package/dist/src/node/middleware-compose.d.ts.map +0 -1
- package/dist/src/node/middleware-compose.js +0 -10
- package/dist/src/node/node-runner.d.ts +0 -2
- package/dist/src/node/node-runner.d.ts.map +0 -1
- package/dist/src/node/node-runner.js +0 -83
- package/dist/src/node/rpc-state-manager.d.ts +0 -12
- package/dist/src/node/rpc-state-manager.d.ts.map +0 -1
- package/dist/src/node/rpc-state-manager.js +0 -24
- package/dist/src/node/rpc.d.ts +0 -10
- package/dist/src/node/rpc.d.ts.map +0 -1
- package/dist/src/node/rpc.js +0 -50
- package/dist/src/observability/create-trace.d.ts +0 -4
- package/dist/src/observability/create-trace.d.ts.map +0 -1
- package/dist/src/observability/create-trace.js +0 -22
- package/dist/src/observability/index.d.ts +0 -4
- package/dist/src/observability/index.d.ts.map +0 -1
- package/dist/src/observability/index.js +0 -2
- package/dist/src/observability/no-tracer.d.ts +0 -10
- package/dist/src/observability/no-tracer.d.ts.map +0 -1
- package/dist/src/observability/no-tracer.js +0 -14
- package/dist/src/observability/redis-trace-stream-adapter.d.ts +0 -17
- package/dist/src/observability/redis-trace-stream-adapter.d.ts.map +0 -1
- package/dist/src/observability/redis-trace-stream-adapter.js +0 -65
- package/dist/src/observability/stream-tracer.d.ts +0 -22
- package/dist/src/observability/stream-tracer.d.ts.map +0 -1
- package/dist/src/observability/stream-tracer.js +0 -97
- package/dist/src/observability/trace-manager.d.ts +0 -13
- package/dist/src/observability/trace-manager.d.ts.map +0 -1
- package/dist/src/observability/trace-manager.js +0 -23
- package/dist/src/observability/tracer.d.ts +0 -19
- package/dist/src/observability/tracer.d.ts.map +0 -1
- package/dist/src/observability/tracer.js +0 -95
- package/dist/src/observability/types.d.ts +0 -75
- package/dist/src/observability/types.d.ts.map +0 -1
- package/dist/src/observability/types.js +0 -2
- package/dist/src/pretty-print.d.ts +0 -2
- package/dist/src/pretty-print.d.ts.map +0 -1
- package/dist/src/pretty-print.js +0 -63
- package/dist/src/printer.d.ts +0 -61
- package/dist/src/printer.d.ts.map +0 -1
- package/dist/src/printer.js +0 -164
- package/dist/src/process-communication/communication-config.d.ts +0 -8
- package/dist/src/process-communication/communication-config.d.ts.map +0 -1
- package/dist/src/process-communication/communication-config.js +0 -18
- package/dist/src/process-communication/process-manager.d.ts +0 -32
- package/dist/src/process-communication/process-manager.d.ts.map +0 -1
- package/dist/src/process-communication/process-manager.js +0 -88
- package/dist/src/process-communication/rpc-processor-interface.d.ts +0 -10
- package/dist/src/process-communication/rpc-processor-interface.d.ts.map +0 -1
- package/dist/src/process-communication/rpc-processor-interface.js +0 -2
- package/dist/src/queue-manager.d.ts +0 -42
- package/dist/src/queue-manager.d.ts.map +0 -1
- package/dist/src/queue-manager.js +0 -252
- package/dist/src/ruby/get-ruby-config.d.ts +0 -3
- package/dist/src/ruby/get-ruby-config.d.ts.map +0 -1
- package/dist/src/ruby/get-ruby-config.js +0 -34
- package/dist/src/run-stream-can-access.d.ts +0 -10
- package/dist/src/run-stream-can-access.d.ts.map +0 -1
- package/dist/src/run-stream-can-access.js +0 -59
- package/dist/src/schema-utils.d.ts +0 -9
- package/dist/src/schema-utils.d.ts.map +0 -1
- package/dist/src/schema-utils.js +0 -80
- package/dist/src/server.d.ts +0 -37
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -318
- package/dist/src/socket-server/helpers.d.ts +0 -53
- package/dist/src/socket-server/helpers.d.ts.map +0 -1
- package/dist/src/socket-server/helpers.js +0 -28
- package/dist/src/socket-server.d.ts +0 -21
- package/dist/src/socket-server.d.ts.map +0 -1
- package/dist/src/socket-server.js +0 -127
- package/dist/src/state/create-state-adapter.d.ts +0 -8
- package/dist/src/state/create-state-adapter.d.ts.map +0 -1
- package/dist/src/state/create-state-adapter.js +0 -8
- package/dist/src/step-handler-rpc-processor.d.ts +0 -22
- package/dist/src/step-handler-rpc-processor.d.ts.map +0 -1
- package/dist/src/step-handler-rpc-processor.js +0 -63
- package/dist/src/step-handler-rpc-stdin-processor.d.ts +0 -23
- package/dist/src/step-handler-rpc-stdin-processor.d.ts.map +0 -1
- package/dist/src/step-handler-rpc-stdin-processor.js +0 -83
- package/dist/src/step-handlers.d.ts +0 -9
- package/dist/src/step-handlers.d.ts.map +0 -1
- package/dist/src/step-handlers.js +0 -77
- package/dist/src/step-validator.d.ts +0 -15
- package/dist/src/step-validator.d.ts.map +0 -1
- package/dist/src/step-validator.js +0 -135
- package/dist/src/steps/emit.step.d.ts +0 -12
- package/dist/src/steps/emit.step.d.ts.map +0 -1
- package/dist/src/steps/emit.step.js +0 -27
- package/dist/src/steps/index.d.ts +0 -3
- package/dist/src/steps/index.d.ts.map +0 -1
- package/dist/src/steps/index.js +0 -16
- package/dist/src/streams/flows-config-stream.d.ts +0 -14
- package/dist/src/streams/flows-config-stream.d.ts.map +0 -1
- package/dist/src/streams/flows-config-stream.js +0 -49
- package/dist/src/streams/flows-stream.d.ts +0 -12
- package/dist/src/streams/flows-stream.d.ts.map +0 -1
- package/dist/src/streams/flows-stream.js +0 -35
- package/dist/src/streams/redis-logs-stream.d.ts +0 -31
- package/dist/src/streams/redis-logs-stream.d.ts.map +0 -1
- package/dist/src/streams/redis-logs-stream.js +0 -84
- package/dist/src/streams/stream-factory.d.ts +0 -3
- package/dist/src/streams/stream-factory.d.ts.map +0 -1
- package/dist/src/streams/stream-factory.js +0 -2
- package/dist/src/types/app-config-types.d.ts +0 -44
- package/dist/src/types/app-config-types.d.ts.map +0 -1
- package/dist/src/types/app-config-types.js +0 -2
- package/dist/src/types/flows-config-types.d.ts +0 -10
- package/dist/src/types/flows-config-types.d.ts.map +0 -1
- package/dist/src/types/flows-config-types.js +0 -2
- package/dist/src/types/flows-types.d.ts +0 -39
- package/dist/src/types/flows-types.d.ts.map +0 -1
- package/dist/src/types/flows-types.js +0 -2
- package/dist/src/types/generate-type-from-schema.d.ts +0 -3
- package/dist/src/types/generate-type-from-schema.d.ts.map +0 -1
- package/dist/src/types/generate-type-from-schema.js +0 -49
- package/dist/src/types/generate-types-from-response.d.ts +0 -3
- package/dist/src/types/generate-types-from-response.d.ts.map +0 -1
- package/dist/src/types/generate-types-from-response.js +0 -13
- package/dist/src/types/generate-types.d.ts +0 -13
- package/dist/src/types/generate-types.d.ts.map +0 -1
- package/dist/src/types/generate-types.js +0 -127
- package/dist/src/types/merge-schemas.d.ts +0 -5
- package/dist/src/types/merge-schemas.d.ts.map +0 -1
- package/dist/src/types/merge-schemas.js +0 -183
- package/dist/src/types/schema.types.d.ts +0 -9
- package/dist/src/types/schema.types.d.ts.map +0 -1
- package/dist/src/types/schema.types.js +0 -14
- package/dist/src/types-stream.d.ts +0 -42
- package/dist/src/types-stream.d.ts.map +0 -1
- package/dist/src/types-stream.js +0 -2
- package/dist/src/types.d.ts +0 -184
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -17
- package/dist/src/utils.d.ts +0 -3
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -12
- package/dist/src/validate-event-input.d.ts +0 -3
- package/dist/src/validate-event-input.d.ts.map +0 -1
- package/dist/src/validate-event-input.js +0 -74
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motia.mjs","names":[],"sources":["../../src/motia.ts"],"sourcesContent":["import type { Express } from 'express'\nimport type { EventAdapter } from './adapters/interfaces/event-adapter.interface'\nimport type { StateAdapter } from './adapters/interfaces/state-adapter.interface'\nimport type { LockedData } from './locked-data'\nimport type { LoggerFactory } from './logger-factory'\nimport type { TracerFactory } from './observability'\nimport type { Printer } from './printer'\nimport type { ApiResponse, ApiRouteConfig, ApiRouteHandler, InternalStateManager } from './types'\n\nexport type Motia = {\n loggerFactory: LoggerFactory\n eventAdapter: EventAdapter\n state: InternalStateManager\n lockedData: LockedData\n printer: Printer\n tracerFactory: TracerFactory\n\n app: Express\n stateAdapter: StateAdapter\n}\n\nexport type PluginApiConfig = {\n method: ApiRouteConfig['method']\n path: string\n}\n\nexport type UnregisterMotiaPluginApi = () => void\n\nexport type MotiaPluginContext = {\n printer: Printer\n state: StateAdapter\n lockedData: LockedData\n tracerFactory: TracerFactory\n registerApi: <\n TRequestBody = unknown,\n TResponseBody extends ApiResponse<number, unknown> = ApiResponse<number, unknown>,\n TEmitData = never,\n >(\n config: PluginApiConfig,\n handler: ApiRouteHandler<TRequestBody, TResponseBody, TEmitData>,\n ) => UnregisterMotiaPluginApi\n}\n\nexport const PLUGIN_FLOW_ID = '_plugin'\n"],"mappings":";AA2CA,MAAa,iBAAiB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
|
|
3
|
+
//#region src/node/can-access.ts
|
|
4
|
+
function parsePayload(arg) {
|
|
5
|
+
try {
|
|
6
|
+
return JSON.parse(arg);
|
|
7
|
+
} catch {
|
|
8
|
+
throw new Error("Invalid payload for canAccess evaluation");
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
async function runCanAccess(filePath$1, payload) {
|
|
12
|
+
const module = await import(path.resolve(filePath$1));
|
|
13
|
+
const config = module.config || module.default?.config;
|
|
14
|
+
if (!config) throw new Error(`Config not found in module ${filePath$1}`);
|
|
15
|
+
const canAccess = config.canAccess;
|
|
16
|
+
if (typeof canAccess !== "function") {
|
|
17
|
+
process.send?.(true);
|
|
18
|
+
process.exit(0);
|
|
19
|
+
}
|
|
20
|
+
const result = await canAccess(payload.subscription, payload.authContext);
|
|
21
|
+
process.send?.(Boolean(result));
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
const [, , filePath, payloadArg] = process.argv;
|
|
25
|
+
if (!filePath || !payloadArg) {
|
|
26
|
+
console.error("Usage: node can-access.mjs <file-path> <payload>");
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
runCanAccess(filePath, parsePayload(payloadArg)).then(() => process.exit(0)).catch((error) => {
|
|
30
|
+
console.error("Error evaluating canAccess:", error);
|
|
31
|
+
process.exit(1);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
//#endregion
|
|
35
|
+
export { };
|
|
36
|
+
//# sourceMappingURL=can-access.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-access.mjs","names":["filePath"],"sources":["../../../src/node/can-access.ts"],"sourcesContent":["import path from 'node:path'\n\ntype CanAccessPayload = {\n subscription: { groupId: string; id?: string }\n authContext?: unknown\n}\n\nfunction parsePayload(arg: string): CanAccessPayload {\n try {\n return JSON.parse(arg)\n } catch {\n throw new Error('Invalid payload for canAccess evaluation')\n }\n}\n\nasync function runCanAccess(filePath: string, payload: CanAccessPayload) {\n const module = await import(path.resolve(filePath))\n\n const config = module.config || module.default?.config\n\n if (!config) {\n throw new Error(`Config not found in module ${filePath}`)\n }\n\n const canAccess = config.canAccess\n\n if (typeof canAccess !== 'function') {\n process.send?.(true)\n process.exit(0)\n }\n\n const result = await canAccess(payload.subscription, payload.authContext)\n process.send?.(Boolean(result))\n process.exit(0)\n}\n\nconst [, , filePath, payloadArg] = process.argv\n\nif (!filePath || !payloadArg) {\n console.error('Usage: node can-access.mjs <file-path> <payload>')\n process.exit(1)\n}\n\nrunCanAccess(filePath, parsePayload(payloadArg))\n .then(() => process.exit(0))\n .catch((error) => {\n console.error('Error evaluating canAccess:', error)\n process.exit(1)\n })\n"],"mappings":";;;AAOA,SAAS,aAAa,KAA+B;AACnD,KAAI;AACF,SAAO,KAAK,MAAM,IAAI;SAChB;AACN,QAAM,IAAI,MAAM,2CAA2C;;;AAI/D,eAAe,aAAa,YAAkB,SAA2B;CACvE,MAAM,SAAS,MAAM,OAAO,KAAK,QAAQA,WAAS;CAElD,MAAM,SAAS,OAAO,UAAU,OAAO,SAAS;AAEhD,KAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8BA,aAAW;CAG3D,MAAM,YAAY,OAAO;AAEzB,KAAI,OAAO,cAAc,YAAY;AACnC,UAAQ,OAAO,KAAK;AACpB,UAAQ,KAAK,EAAE;;CAGjB,MAAM,SAAS,MAAM,UAAU,QAAQ,cAAc,QAAQ,YAAY;AACzE,SAAQ,OAAO,QAAQ,OAAO,CAAC;AAC/B,SAAQ,KAAK,EAAE;;AAGjB,MAAM,KAAK,UAAU,cAAc,QAAQ;AAE3C,IAAI,CAAC,YAAY,CAAC,YAAY;AAC5B,SAAQ,MAAM,mDAAmD;AACjE,SAAQ,KAAK,EAAE;;AAGjB,aAAa,UAAU,aAAa,WAAW,CAAC,CAC7C,WAAW,QAAQ,KAAK,EAAE,CAAC,CAC3B,OAAO,UAAU;AAChB,SAAQ,MAAM,+BAA+B,MAAM;AACnD,SAAQ,KAAK,EAAE;EACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { schemaToJsonSchema } from "../schema-utils.mjs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
//#region src/node/get-config.ts
|
|
5
|
+
async function getConfig(filePath$1) {
|
|
6
|
+
try {
|
|
7
|
+
const importedModule = await import(path.resolve(filePath$1));
|
|
8
|
+
const config = importedModule.config || importedModule.default?.config;
|
|
9
|
+
if (!config) throw new Error(`Config not found in module ${filePath$1}`);
|
|
10
|
+
if (config.input) {
|
|
11
|
+
const converted = schemaToJsonSchema(config.input);
|
|
12
|
+
if (converted) config.input = converted;
|
|
13
|
+
}
|
|
14
|
+
if (config.bodySchema) {
|
|
15
|
+
const converted = schemaToJsonSchema(config.bodySchema);
|
|
16
|
+
if (converted) config.bodySchema = converted;
|
|
17
|
+
}
|
|
18
|
+
if (config.responseSchema) for (const [status, schema] of Object.entries(config.responseSchema)) {
|
|
19
|
+
const converted = schemaToJsonSchema(schema);
|
|
20
|
+
if (converted) config.responseSchema[status] = converted;
|
|
21
|
+
}
|
|
22
|
+
if (config.schema) {
|
|
23
|
+
const converted = schemaToJsonSchema(config.schema);
|
|
24
|
+
if (converted) config.schema = converted;
|
|
25
|
+
}
|
|
26
|
+
if (typeof config.canAccess === "function") {
|
|
27
|
+
config.__motia_hasCanAccess = !!config.canAccess;
|
|
28
|
+
delete config.canAccess;
|
|
29
|
+
}
|
|
30
|
+
process.send?.(config);
|
|
31
|
+
process.exit(0);
|
|
32
|
+
} catch (error) {
|
|
33
|
+
console.error("Error running TypeScript module:", error);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const [, , filePath] = process.argv;
|
|
38
|
+
if (!filePath) {
|
|
39
|
+
console.error("Usage: node get-config.mjs <file-path>");
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
getConfig(filePath).catch((err) => {
|
|
43
|
+
console.error("Error:", err);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
//#endregion
|
|
48
|
+
export { };
|
|
49
|
+
//# sourceMappingURL=get-config.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-config.mjs","names":["filePath"],"sources":["../../../src/node/get-config.ts"],"sourcesContent":["import path from 'node:path'\nimport { type SchemaInput, schemaToJsonSchema } from '../schema-utils'\n\nasync function getConfig(filePath: string) {\n try {\n const importedModule = await import(path.resolve(filePath))\n const config = importedModule.config || importedModule.default?.config\n\n if (!config) {\n throw new Error(`Config not found in module ${filePath}`)\n }\n\n if (config.input) {\n const converted = schemaToJsonSchema(config.input)\n if (converted) {\n config.input = converted\n }\n }\n\n if (config.bodySchema) {\n const converted = schemaToJsonSchema(config.bodySchema)\n if (converted) {\n config.bodySchema = converted\n }\n }\n\n if (config.responseSchema) {\n for (const [status, schema] of Object.entries(config.responseSchema)) {\n const converted = schemaToJsonSchema(schema as SchemaInput)\n if (converted) {\n config.responseSchema[status] = converted\n }\n }\n }\n\n if (config.schema) {\n const converted = schemaToJsonSchema(config.schema)\n if (converted) {\n config.schema = converted\n }\n }\n\n if (typeof config.canAccess === 'function') {\n config.__motia_hasCanAccess = !!config.canAccess\n delete config.canAccess\n }\n\n process.send?.(config)\n\n process.exit(0)\n } catch (error) {\n console.error('Error running TypeScript module:', error)\n process.exit(1)\n }\n}\n\nconst [, , filePath] = process.argv\n\nif (!filePath) {\n console.error('Usage: node get-config.mjs <file-path>')\n process.exit(1)\n}\n\ngetConfig(filePath).catch((err) => {\n console.error('Error:', err)\n process.exit(1)\n})\n"],"mappings":";;;;AAGA,eAAe,UAAU,YAAkB;AACzC,KAAI;EACF,MAAM,iBAAiB,MAAM,OAAO,KAAK,QAAQA,WAAS;EAC1D,MAAM,SAAS,eAAe,UAAU,eAAe,SAAS;AAEhE,MAAI,CAAC,OACH,OAAM,IAAI,MAAM,8BAA8BA,aAAW;AAG3D,MAAI,OAAO,OAAO;GAChB,MAAM,YAAY,mBAAmB,OAAO,MAAM;AAClD,OAAI,UACF,QAAO,QAAQ;;AAInB,MAAI,OAAO,YAAY;GACrB,MAAM,YAAY,mBAAmB,OAAO,WAAW;AACvD,OAAI,UACF,QAAO,aAAa;;AAIxB,MAAI,OAAO,eACT,MAAK,MAAM,CAAC,QAAQ,WAAW,OAAO,QAAQ,OAAO,eAAe,EAAE;GACpE,MAAM,YAAY,mBAAmB,OAAsB;AAC3D,OAAI,UACF,QAAO,eAAe,UAAU;;AAKtC,MAAI,OAAO,QAAQ;GACjB,MAAM,YAAY,mBAAmB,OAAO,OAAO;AACnD,OAAI,UACF,QAAO,SAAS;;AAIpB,MAAI,OAAO,OAAO,cAAc,YAAY;AAC1C,UAAO,uBAAuB,CAAC,CAAC,OAAO;AACvC,UAAO,OAAO;;AAGhB,UAAQ,OAAO,OAAO;AAEtB,UAAQ,KAAK,EAAE;UACR,OAAO;AACd,UAAQ,MAAM,oCAAoC,MAAM;AACxD,UAAQ,KAAK,EAAE;;;AAInB,MAAM,KAAK,YAAY,QAAQ;AAE/B,IAAI,CAAC,UAAU;AACb,SAAQ,MAAM,yCAAyC;AACvD,SAAQ,KAAK,EAAE;;AAGjB,UAAU,SAAS,CAAC,OAAO,QAAQ;AACjC,SAAQ,MAAM,UAAU,IAAI;AAC5B,SAAQ,KAAK,EAAE;EACf"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
//#region src/node/logger.ts
|
|
2
|
+
var Logger = class {
|
|
3
|
+
constructor(traceId, flows, sender) {
|
|
4
|
+
this.traceId = traceId;
|
|
5
|
+
this.flows = flows;
|
|
6
|
+
this.sender = sender;
|
|
7
|
+
this.listeners = [];
|
|
8
|
+
}
|
|
9
|
+
_log(level, message, args) {
|
|
10
|
+
const argsCopy = args ? { ...args } : {};
|
|
11
|
+
if (argsCopy.error && argsCopy.error instanceof Error) argsCopy.error = {
|
|
12
|
+
...argsCopy.error,
|
|
13
|
+
message: argsCopy.error.message,
|
|
14
|
+
stack: argsCopy.error.stack,
|
|
15
|
+
name: argsCopy.error.name
|
|
16
|
+
};
|
|
17
|
+
const logEntry = {
|
|
18
|
+
...argsCopy,
|
|
19
|
+
level,
|
|
20
|
+
time: Date.now(),
|
|
21
|
+
traceId: this.traceId,
|
|
22
|
+
flows: this.flows,
|
|
23
|
+
msg: message
|
|
24
|
+
};
|
|
25
|
+
this.sender.sendNoWait("log", logEntry);
|
|
26
|
+
this.listeners.forEach((listener) => listener(level, message, args));
|
|
27
|
+
}
|
|
28
|
+
info(message, args) {
|
|
29
|
+
this._log("info", message, args);
|
|
30
|
+
}
|
|
31
|
+
error(message, args) {
|
|
32
|
+
this._log("error", message, args);
|
|
33
|
+
}
|
|
34
|
+
debug(message, args) {
|
|
35
|
+
this._log("debug", message, args);
|
|
36
|
+
}
|
|
37
|
+
warn(message, args) {
|
|
38
|
+
this._log("warn", message, args);
|
|
39
|
+
}
|
|
40
|
+
addListener(listener) {
|
|
41
|
+
this.listeners.push(listener);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//#endregion
|
|
46
|
+
export { Logger };
|
|
47
|
+
//# sourceMappingURL=logger.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.mjs","names":["traceId: string","flows: string[]","sender: RpcSender"],"sources":["../../../src/node/logger.ts"],"sourcesContent":["import type { RpcSender } from './rpc'\n\nexport type LogListener = (level: string, message: string, args?: unknown) => void\n\nexport class Logger {\n private readonly listeners: LogListener[] = []\n\n constructor(\n private readonly traceId: string,\n private readonly flows: string[],\n private readonly sender: RpcSender,\n ) {}\n\n private _log(level: string, message: string, args?: Record<string, unknown>): void {\n const argsCopy = args ? { ...args } : {}\n\n if (argsCopy.error && argsCopy.error instanceof Error) {\n argsCopy.error = {\n ...argsCopy.error,\n message: argsCopy.error.message,\n stack: argsCopy.error.stack,\n name: argsCopy.error.name,\n }\n }\n\n const logEntry = {\n ...argsCopy,\n level,\n time: Date.now(),\n traceId: this.traceId,\n flows: this.flows,\n msg: message,\n }\n\n this.sender.sendNoWait('log', logEntry)\n\n this.listeners.forEach((listener) => listener(level, message, args))\n }\n\n info(message: string, args?: Record<string, unknown>): void {\n this._log('info', message, args)\n }\n\n error(message: string, args?: Record<string, unknown>): void {\n this._log('error', message, args)\n }\n\n debug(message: string, args?: Record<string, unknown>): void {\n this._log('debug', message, args)\n }\n\n warn(message: string, args?: Record<string, unknown>): void {\n this._log('warn', message, args)\n }\n\n addListener(listener: LogListener) {\n this.listeners.push(listener)\n }\n}\n"],"mappings":";AAIA,IAAa,SAAb,MAAoB;CAGlB,YACE,AAAiBA,SACjB,AAAiBC,OACjB,AAAiBC,QACjB;EAHiB;EACA;EACA;mBALyB,EAAE;;CAQ9C,AAAQ,KAAK,OAAe,SAAiB,MAAsC;EACjF,MAAM,WAAW,OAAO,EAAE,GAAG,MAAM,GAAG,EAAE;AAExC,MAAI,SAAS,SAAS,SAAS,iBAAiB,MAC9C,UAAS,QAAQ;GACf,GAAG,SAAS;GACZ,SAAS,SAAS,MAAM;GACxB,OAAO,SAAS,MAAM;GACtB,MAAM,SAAS,MAAM;GACtB;EAGH,MAAM,WAAW;GACf,GAAG;GACH;GACA,MAAM,KAAK,KAAK;GAChB,SAAS,KAAK;GACd,OAAO,KAAK;GACZ,KAAK;GACN;AAED,OAAK,OAAO,WAAW,OAAO,SAAS;AAEvC,OAAK,UAAU,SAAS,aAAa,SAAS,OAAO,SAAS,KAAK,CAAC;;CAGtE,KAAK,SAAiB,MAAsC;AAC1D,OAAK,KAAK,QAAQ,SAAS,KAAK;;CAGlC,MAAM,SAAiB,MAAsC;AAC3D,OAAK,KAAK,SAAS,SAAS,KAAK;;CAGnC,MAAM,SAAiB,MAAsC;AAC3D,OAAK,KAAK,SAAS,SAAS,KAAK;;CAGnC,KAAK,SAAiB,MAAsC;AAC1D,OAAK,KAAK,QAAQ,SAAS,KAAK;;CAGlC,YAAY,UAAuB;AACjC,OAAK,UAAU,KAAK,SAAS"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/node/middleware-compose.ts
|
|
2
|
+
const composeMiddleware = (...middlewares) => {
|
|
3
|
+
return async (req, ctx, handler) => {
|
|
4
|
+
return middlewares.reduceRight((nextHandler, middleware) => () => middleware(req, ctx, nextHandler), handler)();
|
|
5
|
+
};
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
//#endregion
|
|
9
|
+
export { composeMiddleware };
|
|
10
|
+
//# sourceMappingURL=middleware-compose.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-compose.mjs","names":[],"sources":["../../../src/node/middleware-compose.ts"],"sourcesContent":["export const composeMiddleware = (...middlewares: any[]) => {\n return async (req: any, ctx: any, handler: () => Promise<any>): Promise<any> => {\n const composedHandler = middlewares.reduceRight<() => Promise<any>>(\n (nextHandler, middleware) => () => middleware(req, ctx, nextHandler),\n handler,\n )\n\n return composedHandler()\n }\n}\n"],"mappings":";AAAA,MAAa,qBAAqB,GAAG,gBAAuB;AAC1D,QAAO,OAAO,KAAU,KAAU,YAA8C;AAM9E,SALwB,YAAY,aACjC,aAAa,qBAAqB,WAAW,KAAK,KAAK,YAAY,EACpE,QACD,EAEuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { Logger } from "./logger.mjs";
|
|
2
|
+
import { composeMiddleware } from "./middleware-compose.mjs";
|
|
3
|
+
import { RpcSender } from "./rpc.mjs";
|
|
4
|
+
import { RpcStateManager } from "./rpc-state-manager.mjs";
|
|
5
|
+
import path from "path";
|
|
6
|
+
import dotenv from "dotenv";
|
|
7
|
+
|
|
8
|
+
//#region src/node/node-runner.ts
|
|
9
|
+
dotenv.config();
|
|
10
|
+
function parseArgs(arg$1) {
|
|
11
|
+
try {
|
|
12
|
+
return JSON.parse(arg$1);
|
|
13
|
+
} catch {
|
|
14
|
+
return arg$1;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async function runTypescriptModule(filePath$1, event) {
|
|
18
|
+
const sender = new RpcSender(process);
|
|
19
|
+
try {
|
|
20
|
+
const importedModule = await import(path.resolve(filePath$1));
|
|
21
|
+
const handler = importedModule.handler || importedModule.default?.handler;
|
|
22
|
+
const config = importedModule.config || importedModule.default?.config || {};
|
|
23
|
+
if (typeof handler !== "function") throw new Error(`Function handler not found in module ${filePath$1}`);
|
|
24
|
+
const { traceId, flows, contextInFirstArg } = event;
|
|
25
|
+
const logger = new Logger(traceId, flows, sender);
|
|
26
|
+
const state = new RpcStateManager(sender);
|
|
27
|
+
const emit = async (data) => sender.send("emit", data);
|
|
28
|
+
const context = {
|
|
29
|
+
traceId,
|
|
30
|
+
flows,
|
|
31
|
+
logger,
|
|
32
|
+
state,
|
|
33
|
+
emit,
|
|
34
|
+
streams: (event.streams ?? []).reduce((acc, streams) => {
|
|
35
|
+
acc[streams.name] = {
|
|
36
|
+
get: (groupId, id) => sender.send(`streams.${streams.name}.get`, {
|
|
37
|
+
groupId,
|
|
38
|
+
id
|
|
39
|
+
}),
|
|
40
|
+
set: (groupId, id, data) => sender.send(`streams.${streams.name}.set`, {
|
|
41
|
+
groupId,
|
|
42
|
+
id,
|
|
43
|
+
data
|
|
44
|
+
}),
|
|
45
|
+
delete: (groupId, id) => sender.send(`streams.${streams.name}.delete`, {
|
|
46
|
+
groupId,
|
|
47
|
+
id
|
|
48
|
+
}),
|
|
49
|
+
getGroup: (groupId) => sender.send(`streams.${streams.name}.getGroup`, { groupId }),
|
|
50
|
+
send: (channel, event$1) => sender.send(`streams.${streams.name}.send`, {
|
|
51
|
+
channel,
|
|
52
|
+
event: event$1
|
|
53
|
+
})
|
|
54
|
+
};
|
|
55
|
+
return acc;
|
|
56
|
+
}, {})
|
|
57
|
+
};
|
|
58
|
+
sender.init();
|
|
59
|
+
const composedMiddleware = composeMiddleware(...Array.isArray(config.middleware) ? config.middleware : []);
|
|
60
|
+
const handlerFn = () => {
|
|
61
|
+
return contextInFirstArg ? handler(context) : handler(event.data, context);
|
|
62
|
+
};
|
|
63
|
+
const result = await composedMiddleware(event.data, context, handlerFn);
|
|
64
|
+
await sender.send("result", result);
|
|
65
|
+
await sender.close();
|
|
66
|
+
process.exit(0);
|
|
67
|
+
} catch (err) {
|
|
68
|
+
const stack = err.stack?.split("\n") ?? [];
|
|
69
|
+
if (stack) {
|
|
70
|
+
const index = stack.findIndex((line) => line.includes("src/node/node-runner"));
|
|
71
|
+
stack.splice(index, stack.length - index);
|
|
72
|
+
stack.splice(0, 1);
|
|
73
|
+
}
|
|
74
|
+
const error = {
|
|
75
|
+
message: err.message || "",
|
|
76
|
+
code: err.code || null,
|
|
77
|
+
stack: stack.join("\n")
|
|
78
|
+
};
|
|
79
|
+
sender.sendNoWait("close", error);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const [, , filePath, arg] = process.argv;
|
|
83
|
+
if (!filePath) {
|
|
84
|
+
console.error("Usage: node node-runner.mjs <file-path> <arg>");
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
runTypescriptModule(filePath, parseArgs(arg)).catch((err) => {
|
|
88
|
+
console.error("Error:", err);
|
|
89
|
+
process.exit(1);
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
//#endregion
|
|
93
|
+
export { };
|
|
94
|
+
//# sourceMappingURL=node-runner.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-runner.mjs","names":["arg","filePath","err: any","stack: string[]"],"sources":["../../../src/node/node-runner.ts"],"sourcesContent":["import dotenv from 'dotenv'\nimport path from 'path'\nimport type { StateStreamEvent, StateStreamEventChannel, StreamConfig } from '../types-stream'\nimport { Logger } from './logger'\nimport { composeMiddleware } from './middleware-compose'\nimport { RpcSender } from './rpc'\nimport { RpcStateManager } from './rpc-state-manager'\n\ndotenv.config()\n\nfunction parseArgs(arg: string) {\n try {\n return JSON.parse(arg)\n } catch {\n return arg\n }\n}\n\nasync function runTypescriptModule(filePath: string, event: Record<string, unknown>) {\n const sender = new RpcSender(process)\n\n try {\n const importedModule = await import(path.resolve(filePath))\n const handler = importedModule.handler || importedModule.default?.handler\n const config = importedModule.config || importedModule.default?.config || {}\n\n // Check if the specified function exists in the module\n if (typeof handler !== 'function') {\n throw new Error(`Function handler not found in module ${filePath}`)\n }\n\n const { traceId, flows, contextInFirstArg } = event\n\n const logger = new Logger(traceId as string, flows as string[], sender)\n const state = new RpcStateManager(sender)\n\n const emit = async (data: unknown) => sender.send('emit', data)\n const streamsConfig = event.streams as StreamConfig[]\n const streams = (streamsConfig ?? []).reduce(\n (acc, streams) => {\n acc[streams.name] = {\n get: (groupId: string, id: string) => sender.send(`streams.${streams.name}.get`, { groupId, id }),\n set: (groupId: string, id: string, data: unknown) =>\n sender.send(`streams.${streams.name}.set`, { groupId, id, data }),\n delete: (groupId: string, id: string) => sender.send(`streams.${streams.name}.delete`, { groupId, id }),\n getGroup: (groupId: string) => sender.send(`streams.${streams.name}.getGroup`, { groupId }),\n send: (channel: StateStreamEventChannel, event: StateStreamEvent<unknown>) =>\n sender.send(`streams.${streams.name}.send`, { channel, event }),\n }\n return acc\n },\n {} as Record<string, unknown>,\n )\n\n const context = { traceId, flows, logger, state, emit, streams }\n\n sender.init()\n\n const middlewares = Array.isArray(config.middleware) ? config.middleware : []\n\n const composedMiddleware = composeMiddleware(...middlewares)\n const handlerFn = () => {\n return contextInFirstArg ? handler(context) : handler(event.data, context)\n }\n\n const result = await composedMiddleware(event.data, context, handlerFn)\n\n await sender.send('result', result)\n await sender.close()\n\n process.exit(0)\n } catch (err: any) {\n const stack: string[] = err.stack?.split('\\n') ?? []\n\n if (stack) {\n const index = stack.findIndex((line) => line.includes('src/node/node-runner'))\n stack.splice(index, stack.length - index)\n stack.splice(0, 1) // remove first line which has the error message\n }\n\n const error = {\n message: err.message || '',\n code: err.code || null,\n stack: stack.join('\\n'),\n }\n sender.sendNoWait('close', error)\n }\n}\n\nconst [, , filePath, arg] = process.argv\n\nif (!filePath) {\n console.error('Usage: node node-runner.mjs <file-path> <arg>')\n process.exit(1)\n}\n\nrunTypescriptModule(filePath, parseArgs(arg)).catch((err) => {\n console.error('Error:', err)\n process.exit(1)\n})\n"],"mappings":";;;;;;;;AAQA,OAAO,QAAQ;AAEf,SAAS,UAAU,OAAa;AAC9B,KAAI;AACF,SAAO,KAAK,MAAMA,MAAI;SAChB;AACN,SAAOA;;;AAIX,eAAe,oBAAoB,YAAkB,OAAgC;CACnF,MAAM,SAAS,IAAI,UAAU,QAAQ;AAErC,KAAI;EACF,MAAM,iBAAiB,MAAM,OAAO,KAAK,QAAQC,WAAS;EAC1D,MAAM,UAAU,eAAe,WAAW,eAAe,SAAS;EAClE,MAAM,SAAS,eAAe,UAAU,eAAe,SAAS,UAAU,EAAE;AAG5E,MAAI,OAAO,YAAY,WACrB,OAAM,IAAI,MAAM,wCAAwCA,aAAW;EAGrE,MAAM,EAAE,SAAS,OAAO,sBAAsB;EAE9C,MAAM,SAAS,IAAI,OAAO,SAAmB,OAAmB,OAAO;EACvE,MAAM,QAAQ,IAAI,gBAAgB,OAAO;EAEzC,MAAM,OAAO,OAAO,SAAkB,OAAO,KAAK,QAAQ,KAAK;EAkB/D,MAAM,UAAU;GAAE;GAAS;GAAO;GAAQ;GAAO;GAAM,UAjBjC,MAAM,WACM,EAAE,EAAE,QACnC,KAAK,YAAY;AAChB,QAAI,QAAQ,QAAQ;KAClB,MAAM,SAAiB,OAAe,OAAO,KAAK,WAAW,QAAQ,KAAK,OAAO;MAAE;MAAS;MAAI,CAAC;KACjG,MAAM,SAAiB,IAAY,SACjC,OAAO,KAAK,WAAW,QAAQ,KAAK,OAAO;MAAE;MAAS;MAAI;MAAM,CAAC;KACnE,SAAS,SAAiB,OAAe,OAAO,KAAK,WAAW,QAAQ,KAAK,UAAU;MAAE;MAAS;MAAI,CAAC;KACvG,WAAW,YAAoB,OAAO,KAAK,WAAW,QAAQ,KAAK,YAAY,EAAE,SAAS,CAAC;KAC3F,OAAO,SAAkC,YACvC,OAAO,KAAK,WAAW,QAAQ,KAAK,QAAQ;MAAE;MAAS;MAAO,CAAC;KAClE;AACD,WAAO;MAET,EAAE,CACH;GAE+D;AAEhE,SAAO,MAAM;EAIb,MAAM,qBAAqB,kBAAkB,GAFzB,MAAM,QAAQ,OAAO,WAAW,GAAG,OAAO,aAAa,EAAE,CAEjB;EAC5D,MAAM,kBAAkB;AACtB,UAAO,oBAAoB,QAAQ,QAAQ,GAAG,QAAQ,MAAM,MAAM,QAAQ;;EAG5E,MAAM,SAAS,MAAM,mBAAmB,MAAM,MAAM,SAAS,UAAU;AAEvE,QAAM,OAAO,KAAK,UAAU,OAAO;AACnC,QAAM,OAAO,OAAO;AAEpB,UAAQ,KAAK,EAAE;UACRC,KAAU;EACjB,MAAMC,QAAkB,IAAI,OAAO,MAAM,KAAK,IAAI,EAAE;AAEpD,MAAI,OAAO;GACT,MAAM,QAAQ,MAAM,WAAW,SAAS,KAAK,SAAS,uBAAuB,CAAC;AAC9E,SAAM,OAAO,OAAO,MAAM,SAAS,MAAM;AACzC,SAAM,OAAO,GAAG,EAAE;;EAGpB,MAAM,QAAQ;GACZ,SAAS,IAAI,WAAW;GACxB,MAAM,IAAI,QAAQ;GAClB,OAAO,MAAM,KAAK,KAAK;GACxB;AACD,SAAO,WAAW,SAAS,MAAM;;;AAIrC,MAAM,KAAK,UAAU,OAAO,QAAQ;AAEpC,IAAI,CAAC,UAAU;AACb,SAAQ,MAAM,gDAAgD;AAC9D,SAAQ,KAAK,EAAE;;AAGjB,oBAAoB,UAAU,UAAU,IAAI,CAAC,CAAC,OAAO,QAAQ;AAC3D,SAAQ,MAAM,UAAU,IAAI;AAC5B,SAAQ,KAAK,EAAE;EACf"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/node/rpc-state-manager.ts
|
|
2
|
+
var RpcStateManager = class {
|
|
3
|
+
constructor(sender) {
|
|
4
|
+
this.sender = sender;
|
|
5
|
+
}
|
|
6
|
+
async get(traceId, key) {
|
|
7
|
+
return this.sender.send("state.get", {
|
|
8
|
+
traceId,
|
|
9
|
+
key
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
async set(traceId, key, value) {
|
|
13
|
+
return this.sender.send("state.set", {
|
|
14
|
+
traceId,
|
|
15
|
+
key,
|
|
16
|
+
value
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
async delete(traceId, key) {
|
|
20
|
+
return this.sender.send("state.delete", {
|
|
21
|
+
traceId,
|
|
22
|
+
key
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async clear(traceId) {
|
|
26
|
+
await this.sender.send("state.clear", { traceId });
|
|
27
|
+
}
|
|
28
|
+
async getGroup(groupId) {
|
|
29
|
+
return this.sender.send("state.getGroup", { groupId });
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
//#endregion
|
|
34
|
+
export { RpcStateManager };
|
|
35
|
+
//# sourceMappingURL=rpc-state-manager.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-state-manager.mjs","names":["sender: RpcSender"],"sources":["../../../src/node/rpc-state-manager.ts"],"sourcesContent":["import type { InternalStateManager } from '../types'\nimport type { RpcSender } from './rpc'\n\nexport class RpcStateManager implements InternalStateManager {\n constructor(private readonly sender: RpcSender) {}\n\n async get<T>(traceId: string, key: string) {\n return this.sender.send<T>('state.get', { traceId, key })\n }\n\n async set<T>(traceId: string, key: string, value: T) {\n return this.sender.send<T>('state.set', { traceId, key, value })\n }\n\n async delete<T>(traceId: string, key: string): Promise<T | null> {\n return this.sender.send<T>('state.delete', { traceId, key })\n }\n\n async clear(traceId: string) {\n await this.sender.send('state.clear', { traceId })\n }\n\n async getGroup<T>(groupId: string): Promise<T[]> {\n return this.sender.send<T[]>('state.getGroup', { groupId })\n }\n}\n"],"mappings":";AAGA,IAAa,kBAAb,MAA6D;CAC3D,YAAY,AAAiBA,QAAmB;EAAnB;;CAE7B,MAAM,IAAO,SAAiB,KAAa;AACzC,SAAO,KAAK,OAAO,KAAQ,aAAa;GAAE;GAAS;GAAK,CAAC;;CAG3D,MAAM,IAAO,SAAiB,KAAa,OAAU;AACnD,SAAO,KAAK,OAAO,KAAQ,aAAa;GAAE;GAAS;GAAK;GAAO,CAAC;;CAGlE,MAAM,OAAU,SAAiB,KAAgC;AAC/D,SAAO,KAAK,OAAO,KAAQ,gBAAgB;GAAE;GAAS;GAAK,CAAC;;CAG9D,MAAM,MAAM,SAAiB;AAC3B,QAAM,KAAK,OAAO,KAAK,eAAe,EAAE,SAAS,CAAC;;CAGpD,MAAM,SAAY,SAA+B;AAC/C,SAAO,KAAK,OAAO,KAAU,kBAAkB,EAAE,SAAS,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import crypto from "crypto";
|
|
2
|
+
|
|
3
|
+
//#region src/node/rpc.ts
|
|
4
|
+
var RpcSender = class {
|
|
5
|
+
constructor(process) {
|
|
6
|
+
this.process = process;
|
|
7
|
+
this.pendingRequests = {};
|
|
8
|
+
}
|
|
9
|
+
async close() {
|
|
10
|
+
if (Object.values(this.pendingRequests).length > 0) {
|
|
11
|
+
console.error("Process ended while there are some promises outstanding");
|
|
12
|
+
this.process.exit(1);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
send(method, args) {
|
|
16
|
+
return new Promise((resolve, reject) => {
|
|
17
|
+
const id = crypto.randomUUID();
|
|
18
|
+
this.pendingRequests[id] = {
|
|
19
|
+
resolve,
|
|
20
|
+
reject,
|
|
21
|
+
method,
|
|
22
|
+
args
|
|
23
|
+
};
|
|
24
|
+
this.process.send?.({
|
|
25
|
+
type: "rpc_request",
|
|
26
|
+
id,
|
|
27
|
+
method,
|
|
28
|
+
args
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
sendNoWait(method, args) {
|
|
33
|
+
this.process.send?.({
|
|
34
|
+
type: "rpc_request",
|
|
35
|
+
method,
|
|
36
|
+
args
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
init() {
|
|
40
|
+
this.process.on("message", (msg) => {
|
|
41
|
+
if (msg.type === "rpc_response") {
|
|
42
|
+
const { id, result, error } = msg;
|
|
43
|
+
const callbacks = this.pendingRequests[id];
|
|
44
|
+
if (!callbacks) return;
|
|
45
|
+
else if (error) callbacks.reject(error);
|
|
46
|
+
else callbacks.resolve(result);
|
|
47
|
+
delete this.pendingRequests[id];
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
//#endregion
|
|
54
|
+
export { RpcSender };
|
|
55
|
+
//# sourceMappingURL=rpc.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.mjs","names":["process: NodeJS.Process"],"sources":["../../../src/node/rpc.ts"],"sourcesContent":["/// <reference types=\"node\" />\nimport crypto from 'crypto'\n\ntype RpcResponse = {\n type: 'rpc_response'\n id: string\n result: unknown\n error: unknown\n}\n\nexport class RpcSender {\n private readonly pendingRequests: Record<\n string,\n { resolve: (result: any) => void; reject: (error: any) => void; method: string; args: any }\n > = {}\n\n constructor(private readonly process: NodeJS.Process) {}\n\n async close(): Promise<void> {\n const outstandingRequests = Object.values(this.pendingRequests)\n\n if (outstandingRequests.length > 0) {\n console.error('Process ended while there are some promises outstanding')\n this.process.exit(1)\n }\n }\n\n send<T>(method: string, args: unknown): Promise<T> {\n return new Promise((resolve, reject) => {\n const id = crypto.randomUUID()\n this.pendingRequests[id] = { resolve, reject, method, args }\n\n this.process.send?.({ type: 'rpc_request', id, method, args })\n })\n }\n\n sendNoWait(method: string, args: unknown) {\n this.process.send?.({ type: 'rpc_request', method, args })\n }\n\n init() {\n this.process.on('message', (msg: RpcResponse) => {\n if (msg.type === 'rpc_response') {\n const { id, result, error } = msg\n const callbacks = this.pendingRequests[id]\n\n if (!callbacks) {\n return\n } else if (error) {\n callbacks.reject(error)\n } else {\n callbacks.resolve(result)\n }\n\n delete this.pendingRequests[id]\n }\n })\n }\n}\n"],"mappings":";;;AAUA,IAAa,YAAb,MAAuB;CAMrB,YAAY,AAAiBA,SAAyB;EAAzB;yBAFzB,EAAE;;CAIN,MAAM,QAAuB;AAG3B,MAF4B,OAAO,OAAO,KAAK,gBAAgB,CAEvC,SAAS,GAAG;AAClC,WAAQ,MAAM,0DAA0D;AACxE,QAAK,QAAQ,KAAK,EAAE;;;CAIxB,KAAQ,QAAgB,MAA2B;AACjD,SAAO,IAAI,SAAS,SAAS,WAAW;GACtC,MAAM,KAAK,OAAO,YAAY;AAC9B,QAAK,gBAAgB,MAAM;IAAE;IAAS;IAAQ;IAAQ;IAAM;AAE5D,QAAK,QAAQ,OAAO;IAAE,MAAM;IAAe;IAAI;IAAQ;IAAM,CAAC;IAC9D;;CAGJ,WAAW,QAAgB,MAAe;AACxC,OAAK,QAAQ,OAAO;GAAE,MAAM;GAAe;GAAQ;GAAM,CAAC;;CAG5D,OAAO;AACL,OAAK,QAAQ,GAAG,YAAY,QAAqB;AAC/C,OAAI,IAAI,SAAS,gBAAgB;IAC/B,MAAM,EAAE,IAAI,QAAQ,UAAU;IAC9B,MAAM,YAAY,KAAK,gBAAgB;AAEvC,QAAI,CAAC,UACH;aACS,MACT,WAAU,OAAO,MAAM;QAEvB,WAAU,QAAQ,OAAO;AAG3B,WAAO,KAAK,gBAAgB;;IAE9B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { randomUUID } from "crypto";
|
|
2
|
+
|
|
3
|
+
//#region src/observability/create-trace.ts
|
|
4
|
+
const createTrace = (traceGroup, step) => {
|
|
5
|
+
const trace = {
|
|
6
|
+
id: randomUUID(),
|
|
7
|
+
name: step.config.name,
|
|
8
|
+
correlationId: traceGroup.correlationId,
|
|
9
|
+
parentTraceId: traceGroup.id,
|
|
10
|
+
status: "running",
|
|
11
|
+
startTime: Date.now(),
|
|
12
|
+
endTime: void 0,
|
|
13
|
+
entryPoint: {
|
|
14
|
+
type: step.config.type,
|
|
15
|
+
stepName: step.config.name
|
|
16
|
+
},
|
|
17
|
+
events: []
|
|
18
|
+
};
|
|
19
|
+
traceGroup.metadata.totalSteps++;
|
|
20
|
+
traceGroup.metadata.activeSteps++;
|
|
21
|
+
return trace;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//#endregion
|
|
25
|
+
export { createTrace };
|
|
26
|
+
//# sourceMappingURL=create-trace.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-trace.mjs","names":["trace: Trace"],"sources":["../../../src/observability/create-trace.ts"],"sourcesContent":["import { randomUUID } from 'crypto'\nimport type { Step } from '../types'\nimport type { Trace, TraceGroup } from './types'\n\nexport const createTrace = (traceGroup: TraceGroup, step: Step) => {\n const id = randomUUID()\n const trace: Trace = {\n id,\n name: step.config.name,\n correlationId: traceGroup.correlationId,\n parentTraceId: traceGroup.id,\n status: 'running',\n startTime: Date.now(),\n endTime: undefined,\n entryPoint: { type: step.config.type, stepName: step.config.name },\n events: [],\n }\n\n traceGroup.metadata.totalSteps++\n traceGroup.metadata.activeSteps++\n\n return trace\n}\n"],"mappings":";;;AAIA,MAAa,eAAe,YAAwB,SAAe;CAEjE,MAAMA,QAAe;EACnB,IAFS,YAAY;EAGrB,MAAM,KAAK,OAAO;EAClB,eAAe,WAAW;EAC1B,eAAe,WAAW;EAC1B,QAAQ;EACR,WAAW,KAAK,KAAK;EACrB,SAAS;EACT,YAAY;GAAE,MAAM,KAAK,OAAO;GAAM,UAAU,KAAK,OAAO;GAAM;EAClE,QAAQ,EAAE;EACX;AAED,YAAW,SAAS;AACpB,YAAW,SAAS;AAEpB,QAAO"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ObservabilityAdapter, Tracer } from "../adapters/interfaces/observability-adapter.interface.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/observability/index.d.ts
|
|
4
|
+
type TracerFactory = ObservabilityAdapter;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { TracerFactory };
|
|
7
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/observability/index.ts"],"sourcesContent":[],"mappings":";;;KAGY,aAAA,GAAgB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Tracer } from "../adapters/interfaces/observability-adapter.interface.mjs";
|
|
2
|
+
import "./index.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/observability/no-tracer.d.ts
|
|
5
|
+
declare class NoTracer implements Tracer {
|
|
6
|
+
end(): void;
|
|
7
|
+
stateOperation(): void;
|
|
8
|
+
emitOperation(): void;
|
|
9
|
+
streamOperation(): void;
|
|
10
|
+
clear(): void;
|
|
11
|
+
child(): this;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { NoTracer };
|
|
15
|
+
//# sourceMappingURL=no-tracer.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-tracer.d.mts","names":[],"sources":["../../../src/observability/no-tracer.ts"],"sourcesContent":[],"mappings":";;;;cAEa,QAAA,YAAoB;;;EAApB,aAAS,CAAA,CAAA,EAAA,IAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/observability/no-tracer.ts
|
|
2
|
+
var NoTracer = class {
|
|
3
|
+
end() {}
|
|
4
|
+
stateOperation() {}
|
|
5
|
+
emitOperation() {}
|
|
6
|
+
streamOperation() {}
|
|
7
|
+
clear() {}
|
|
8
|
+
child() {
|
|
9
|
+
return this;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
//#endregion
|
|
14
|
+
export { NoTracer };
|
|
15
|
+
//# sourceMappingURL=no-tracer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-tracer.mjs","names":[],"sources":["../../../src/observability/no-tracer.ts"],"sourcesContent":["import type { Tracer } from '../observability/index'\n\nexport class NoTracer implements Tracer {\n end() {}\n stateOperation() {}\n emitOperation() {}\n streamOperation() {}\n clear() {}\n child() {\n return this\n }\n}\n"],"mappings":";AAEA,IAAa,WAAb,MAAwC;CACtC,MAAM;CACN,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,QAAQ;CACR,QAAQ;AACN,SAAO"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { StreamAdapter } from "../adapters/interfaces/stream-adapter.interface.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/observability/redis-trace-stream-adapter.ts
|
|
4
|
+
const TRACE_TTL_SECONDS = 4320 * 60;
|
|
5
|
+
var RedisTraceStreamAdapter = class extends StreamAdapter {
|
|
6
|
+
constructor(streamName, client, ttl = TRACE_TTL_SECONDS) {
|
|
7
|
+
super(streamName);
|
|
8
|
+
this.keyPrefix = "motia:trace:";
|
|
9
|
+
this.client = client;
|
|
10
|
+
this.ttl = ttl;
|
|
11
|
+
}
|
|
12
|
+
makeGroupKey(groupId) {
|
|
13
|
+
return `${this.keyPrefix}${groupId}`;
|
|
14
|
+
}
|
|
15
|
+
async get(groupId, id) {
|
|
16
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
17
|
+
const value = await this.client.hGet(hashKey, id);
|
|
18
|
+
return value ? JSON.parse(value) : null;
|
|
19
|
+
}
|
|
20
|
+
async set(groupId, id, data) {
|
|
21
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
22
|
+
const item = {
|
|
23
|
+
...data,
|
|
24
|
+
id
|
|
25
|
+
};
|
|
26
|
+
const itemJson = JSON.stringify(item);
|
|
27
|
+
const eventType = await this.client.hExists(hashKey, id) ? "update" : "create";
|
|
28
|
+
await Promise.all([
|
|
29
|
+
this.client.hSet(hashKey, id, itemJson),
|
|
30
|
+
this.send({
|
|
31
|
+
groupId,
|
|
32
|
+
id
|
|
33
|
+
}, {
|
|
34
|
+
type: eventType,
|
|
35
|
+
data: item
|
|
36
|
+
}),
|
|
37
|
+
this.client.expire(hashKey, this.ttl)
|
|
38
|
+
]);
|
|
39
|
+
return item;
|
|
40
|
+
}
|
|
41
|
+
async delete(groupId, id) {
|
|
42
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
43
|
+
const value = await this.client.hGet(hashKey, id);
|
|
44
|
+
if (!value) return null;
|
|
45
|
+
const item = JSON.parse(value);
|
|
46
|
+
await Promise.all([this.client.hDel(hashKey, id), this.send({
|
|
47
|
+
groupId,
|
|
48
|
+
id
|
|
49
|
+
}, {
|
|
50
|
+
type: "delete",
|
|
51
|
+
data: item
|
|
52
|
+
})]);
|
|
53
|
+
return item;
|
|
54
|
+
}
|
|
55
|
+
async getGroup(groupId) {
|
|
56
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
57
|
+
const values = await this.client.hGetAll(hashKey);
|
|
58
|
+
const items = Object.values(values).map((v) => JSON.parse(v));
|
|
59
|
+
const sortDesc = (a, b) => {
|
|
60
|
+
return (a.startTime || 0) - (b.startTime || 0);
|
|
61
|
+
};
|
|
62
|
+
return items.sort(sortDesc);
|
|
63
|
+
}
|
|
64
|
+
async send(channel, event) {
|
|
65
|
+
const channelKey = channel.id ? `${this.keyPrefix}events:${this.streamName}:${channel.groupId}:${channel.id}` : `${this.keyPrefix}events:${this.streamName}:${channel.groupId}`;
|
|
66
|
+
await this.client.publish(channelKey, JSON.stringify(event));
|
|
67
|
+
}
|
|
68
|
+
async clear(groupId) {
|
|
69
|
+
const hashKey = this.makeGroupKey(groupId);
|
|
70
|
+
await this.client.del(hashKey);
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
export { RedisTraceStreamAdapter };
|
|
76
|
+
//# sourceMappingURL=redis-trace-stream-adapter.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redis-trace-stream-adapter.mjs","names":["item: BaseStreamItem<TData>"],"sources":["../../../src/observability/redis-trace-stream-adapter.ts"],"sourcesContent":["import type { RedisClientType } from 'redis'\nimport { StreamAdapter } from '../adapters/interfaces/stream-adapter.interface'\nimport type { BaseStreamItem, StateStreamEvent, StateStreamEventChannel } from '../types-stream'\n\nconst TRACE_TTL_SECONDS = 3 * 24 * 60 * 60\n\nexport class RedisTraceStreamAdapter<TData> extends StreamAdapter<TData> {\n private client: RedisClientType\n private readonly keyPrefix: string = 'motia:trace:'\n private ttl: number\n\n constructor(streamName: string, client: RedisClientType, ttl: number = TRACE_TTL_SECONDS) {\n super(streamName)\n this.client = client\n this.ttl = ttl\n }\n\n private makeGroupKey(groupId: string): string {\n return `${this.keyPrefix}${groupId}`\n }\n\n async get(groupId: string, id: string): Promise<BaseStreamItem<TData> | null> {\n const hashKey = this.makeGroupKey(groupId)\n const value = await this.client.hGet(hashKey, id)\n return value ? JSON.parse(value) : null\n }\n\n async set(groupId: string, id: string, data: TData): Promise<BaseStreamItem<TData>> {\n const hashKey = this.makeGroupKey(groupId)\n const item: BaseStreamItem<TData> = { ...data, id } as BaseStreamItem<TData>\n const itemJson = JSON.stringify(item)\n\n const existed = await this.client.hExists(hashKey, id)\n const eventType = existed ? 'update' : 'create'\n\n await Promise.all([\n this.client.hSet(hashKey, id, itemJson),\n this.send({ groupId, id }, { type: eventType, data: item }),\n this.client.expire(hashKey, this.ttl),\n ])\n\n return item\n }\n\n async delete(groupId: string, id: string): Promise<BaseStreamItem<TData> | null> {\n const hashKey = this.makeGroupKey(groupId)\n const value = await this.client.hGet(hashKey, id)\n\n if (!value) return null\n\n const item = JSON.parse(value) as BaseStreamItem<TData>\n\n await Promise.all([this.client.hDel(hashKey, id), this.send({ groupId, id }, { type: 'delete', data: item })])\n\n return item\n }\n\n async getGroup(groupId: string): Promise<BaseStreamItem<TData>[]> {\n const hashKey = this.makeGroupKey(groupId)\n const values = await this.client.hGetAll(hashKey)\n\n const items = Object.values(values).map((v: string) => JSON.parse(v) as BaseStreamItem<TData>)\n\n const sortDesc = (a: BaseStreamItem<TData>, b: BaseStreamItem<TData>) => {\n const aTime = (a as { startTime?: number }).startTime || 0\n const bTime = (b as { startTime?: number }).startTime || 0\n return aTime - bTime\n }\n return items.sort(sortDesc)\n }\n\n async send<T>(channel: StateStreamEventChannel, event: StateStreamEvent<T>): Promise<void> {\n const channelKey = channel.id\n ? `${this.keyPrefix}events:${this.streamName}:${channel.groupId}:${channel.id}`\n : `${this.keyPrefix}events:${this.streamName}:${channel.groupId}`\n await this.client.publish(channelKey, JSON.stringify(event))\n }\n\n async clear(groupId: string): Promise<void> {\n const hashKey = this.makeGroupKey(groupId)\n await this.client.del(hashKey)\n }\n}\n"],"mappings":";;;AAIA,MAAM,oBAAoB,OAAc;AAExC,IAAa,0BAAb,cAAoD,cAAqB;CAKvE,YAAY,YAAoB,QAAyB,MAAc,mBAAmB;AACxF,QAAM,WAAW;mBAJkB;AAKnC,OAAK,SAAS;AACd,OAAK,MAAM;;CAGb,AAAQ,aAAa,SAAyB;AAC5C,SAAO,GAAG,KAAK,YAAY;;CAG7B,MAAM,IAAI,SAAiB,IAAmD;EAC5E,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,SAAS,GAAG;AACjD,SAAO,QAAQ,KAAK,MAAM,MAAM,GAAG;;CAGrC,MAAM,IAAI,SAAiB,IAAY,MAA6C;EAClF,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAMA,OAA8B;GAAE,GAAG;GAAM;GAAI;EACnD,MAAM,WAAW,KAAK,UAAU,KAAK;EAGrC,MAAM,YADU,MAAM,KAAK,OAAO,QAAQ,SAAS,GAAG,GAC1B,WAAW;AAEvC,QAAM,QAAQ,IAAI;GAChB,KAAK,OAAO,KAAK,SAAS,IAAI,SAAS;GACvC,KAAK,KAAK;IAAE;IAAS;IAAI,EAAE;IAAE,MAAM;IAAW,MAAM;IAAM,CAAC;GAC3D,KAAK,OAAO,OAAO,SAAS,KAAK,IAAI;GACtC,CAAC;AAEF,SAAO;;CAGT,MAAM,OAAO,SAAiB,IAAmD;EAC/E,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,SAAS,GAAG;AAEjD,MAAI,CAAC,MAAO,QAAO;EAEnB,MAAM,OAAO,KAAK,MAAM,MAAM;AAE9B,QAAM,QAAQ,IAAI,CAAC,KAAK,OAAO,KAAK,SAAS,GAAG,EAAE,KAAK,KAAK;GAAE;GAAS;GAAI,EAAE;GAAE,MAAM;GAAU,MAAM;GAAM,CAAC,CAAC,CAAC;AAE9G,SAAO;;CAGT,MAAM,SAAS,SAAmD;EAChE,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAM,SAAS,MAAM,KAAK,OAAO,QAAQ,QAAQ;EAEjD,MAAM,QAAQ,OAAO,OAAO,OAAO,CAAC,KAAK,MAAc,KAAK,MAAM,EAAE,CAA0B;EAE9F,MAAM,YAAY,GAA0B,MAA6B;AAGvE,WAFe,EAA6B,aAAa,MAC1C,EAA6B,aAAa;;AAG3D,SAAO,MAAM,KAAK,SAAS;;CAG7B,MAAM,KAAQ,SAAkC,OAA2C;EACzF,MAAM,aAAa,QAAQ,KACvB,GAAG,KAAK,UAAU,SAAS,KAAK,WAAW,GAAG,QAAQ,QAAQ,GAAG,QAAQ,OACzE,GAAG,KAAK,UAAU,SAAS,KAAK,WAAW,GAAG,QAAQ;AAC1D,QAAM,KAAK,OAAO,QAAQ,YAAY,KAAK,UAAU,MAAM,CAAC;;CAG9D,MAAM,MAAM,SAAgC;EAC1C,MAAM,UAAU,KAAK,aAAa,QAAQ;AAC1C,QAAM,KAAK,OAAO,IAAI,QAAQ"}
|