@motiadev/core 0.13.2-beta.164-110989 → 0.14.0-beta.164
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.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 +198 -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 +33 -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 +22 -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 +23 -0
- package/dist/src/observability/stream-tracer.d.ts.map +1 -0
- package/dist/src/observability/stream-tracer.js +114 -0
- package/dist/src/observability/trace-manager.d.ts +14 -0
- package/dist/src/observability/trace-manager.d.ts.map +1 -0
- package/dist/src/observability/trace-manager.js +26 -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 +98 -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 +344 -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 +45 -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 +190 -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 -21
- 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 -55
- 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 -352
- 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 -194
- 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 -53
package/dist/src/logger.d.mts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
//#region src/logger.d.ts
|
|
2
|
-
type LogListener = (level: string, msg: string, args?: unknown) => void;
|
|
3
|
-
declare class Logger {
|
|
4
|
-
readonly isVerbose: boolean;
|
|
5
|
-
private readonly meta;
|
|
6
|
-
private readonly coreListeners;
|
|
7
|
-
/**
|
|
8
|
-
* Why do we need two level of listeners?
|
|
9
|
-
*
|
|
10
|
-
* Core listeners pass along to children loggers.
|
|
11
|
-
*
|
|
12
|
-
* However, base listeners do not pass along to children loggers.
|
|
13
|
-
* Those are specific to each logger in the hierarchy.
|
|
14
|
-
*/
|
|
15
|
-
private readonly listeners;
|
|
16
|
-
constructor(isVerbose?: boolean, meta?: Record<string, unknown>, coreListeners?: LogListener[]);
|
|
17
|
-
child(meta: Record<string, unknown>): Logger;
|
|
18
|
-
private _log;
|
|
19
|
-
info(message: string, args?: unknown): void;
|
|
20
|
-
error(message: string, args?: unknown): void;
|
|
21
|
-
debug(message: string, args?: unknown): void;
|
|
22
|
-
warn(message: string, args?: unknown): void;
|
|
23
|
-
log(args: any): void;
|
|
24
|
-
addListener(listener: LogListener): void;
|
|
25
|
-
}
|
|
26
|
-
//#endregion
|
|
27
|
-
export { Logger };
|
|
28
|
-
//# sourceMappingURL=logger.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.mts","names":[],"sources":["../../src/logger.ts"],"sourcesContent":[],"mappings":";KAQY,WAAA;AAAA,cAEC,MAAA,CAFU;EAEV,SAAM,SAAA,EAAA,OAAA;EAaQ,iBAAA,IAAA;EACS,iBAAA,aAAA;EAGtB;;;;;;;;;0CAJa,yCACS;cAGtB,0BAA0B;;;;;;;wBAuChB"}
|
package/dist/src/logger.mjs
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { prettyPrint } from "./pretty-print.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/logger.ts
|
|
4
|
-
const logLevel = process.env.LOG_LEVEL ?? "info";
|
|
5
|
-
const isDebugEnabled = logLevel === "debug";
|
|
6
|
-
const isInfoEnabled = ["info", "debug"].includes(logLevel);
|
|
7
|
-
const isWarnEnabled = [
|
|
8
|
-
"warn",
|
|
9
|
-
"info",
|
|
10
|
-
"debug",
|
|
11
|
-
"trace"
|
|
12
|
-
].includes(logLevel);
|
|
13
|
-
var Logger = class Logger {
|
|
14
|
-
constructor(isVerbose = false, meta = {}, coreListeners = []) {
|
|
15
|
-
this.isVerbose = isVerbose;
|
|
16
|
-
this.meta = meta;
|
|
17
|
-
this.coreListeners = coreListeners;
|
|
18
|
-
this.listeners = [];
|
|
19
|
-
}
|
|
20
|
-
child(meta) {
|
|
21
|
-
return new Logger(this.isVerbose, {
|
|
22
|
-
...this.meta,
|
|
23
|
-
...meta
|
|
24
|
-
}, this.coreListeners);
|
|
25
|
-
}
|
|
26
|
-
_log(level, msg, args) {
|
|
27
|
-
const time = Date.now();
|
|
28
|
-
const meta = {
|
|
29
|
-
...this.meta,
|
|
30
|
-
...args ?? {}
|
|
31
|
-
};
|
|
32
|
-
prettyPrint({
|
|
33
|
-
level,
|
|
34
|
-
time,
|
|
35
|
-
msg,
|
|
36
|
-
...meta
|
|
37
|
-
}, !this.isVerbose);
|
|
38
|
-
this.coreListeners.forEach((listener) => listener(level, msg, meta));
|
|
39
|
-
this.listeners.forEach((listener) => listener(level, msg, meta));
|
|
40
|
-
}
|
|
41
|
-
info(message, args) {
|
|
42
|
-
if (isInfoEnabled) this._log("info", message, args);
|
|
43
|
-
}
|
|
44
|
-
error(message, args) {
|
|
45
|
-
this._log("error", message, args);
|
|
46
|
-
}
|
|
47
|
-
debug(message, args) {
|
|
48
|
-
if (isDebugEnabled) this._log("debug", message, args);
|
|
49
|
-
}
|
|
50
|
-
warn(message, args) {
|
|
51
|
-
if (isWarnEnabled) this._log("warn", message, args);
|
|
52
|
-
}
|
|
53
|
-
log(args) {
|
|
54
|
-
this._log(args.level ?? "info", args.msg, args);
|
|
55
|
-
}
|
|
56
|
-
addListener(listener) {
|
|
57
|
-
this.listeners.push(listener);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
const globalLogger = new Logger();
|
|
61
|
-
|
|
62
|
-
//#endregion
|
|
63
|
-
export { Logger, globalLogger };
|
|
64
|
-
//# sourceMappingURL=logger.mjs.map
|
package/dist/src/logger.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.mjs","names":["isVerbose: boolean","meta: Record<string, unknown>","coreListeners: LogListener[]"],"sources":["../../src/logger.ts"],"sourcesContent":["import { prettyPrint } from './pretty-print'\n\nconst logLevel = process.env.LOG_LEVEL ?? 'info'\n\nconst isDebugEnabled = logLevel === 'debug'\nconst isInfoEnabled = ['info', 'debug'].includes(logLevel)\nconst isWarnEnabled = ['warn', 'info', 'debug', 'trace'].includes(logLevel)\n\nexport type LogListener = (level: string, msg: string, args?: unknown) => void\n\nexport class Logger {\n /**\n * Why do we need two level of listeners?\n *\n * Core listeners pass along to children loggers.\n *\n * However, base listeners do not pass along to children loggers.\n * Those are specific to each logger in the hierarchy.\n */\n private readonly listeners: LogListener[] = []\n\n constructor(\n readonly isVerbose: boolean = false,\n private readonly meta: Record<string, unknown> = {},\n private readonly coreListeners: LogListener[] = [],\n ) {}\n\n child(meta: Record<string, unknown>): Logger {\n return new Logger(this.isVerbose, { ...this.meta, ...meta }, this.coreListeners)\n }\n\n private _log(level: string, msg: string, args?: any) {\n const time = Date.now()\n const meta = { ...this.meta, ...(args ?? {}) }\n prettyPrint({ level, time, msg, ...meta }, !this.isVerbose)\n\n this.coreListeners.forEach((listener) => listener(level, msg, meta))\n this.listeners.forEach((listener) => listener(level, msg, meta))\n }\n\n info(message: string, args?: unknown) {\n if (isInfoEnabled) {\n this._log('info', message, args)\n }\n }\n\n error(message: string, args?: unknown) {\n this._log('error', message, args)\n }\n\n debug(message: string, args?: unknown) {\n if (isDebugEnabled) {\n this._log('debug', message, args)\n }\n }\n\n warn(message: string, args?: unknown) {\n if (isWarnEnabled) {\n this._log('warn', message, args)\n }\n }\n\n log(args: any) {\n this._log(args.level ?? 'info', args.msg, args)\n }\n\n addListener(listener: LogListener) {\n this.listeners.push(listener)\n }\n}\n\nexport const globalLogger = new Logger()\n"],"mappings":";;;AAEA,MAAM,WAAW,QAAQ,IAAI,aAAa;AAE1C,MAAM,iBAAiB,aAAa;AACpC,MAAM,gBAAgB,CAAC,QAAQ,QAAQ,CAAC,SAAS,SAAS;AAC1D,MAAM,gBAAgB;CAAC;CAAQ;CAAQ;CAAS;CAAQ,CAAC,SAAS,SAAS;AAI3E,IAAa,SAAb,MAAa,OAAO;CAWlB,YACE,AAASA,YAAqB,OAC9B,AAAiBC,OAAgC,EAAE,EACnD,AAAiBC,gBAA+B,EAAE,EAClD;EAHS;EACQ;EACA;mBALyB,EAAE;;CAQ9C,MAAM,MAAuC;AAC3C,SAAO,IAAI,OAAO,KAAK,WAAW;GAAE,GAAG,KAAK;GAAM,GAAG;GAAM,EAAE,KAAK,cAAc;;CAGlF,AAAQ,KAAK,OAAe,KAAa,MAAY;EACnD,MAAM,OAAO,KAAK,KAAK;EACvB,MAAM,OAAO;GAAE,GAAG,KAAK;GAAM,GAAI,QAAQ,EAAE;GAAG;AAC9C,cAAY;GAAE;GAAO;GAAM;GAAK,GAAG;GAAM,EAAE,CAAC,KAAK,UAAU;AAE3D,OAAK,cAAc,SAAS,aAAa,SAAS,OAAO,KAAK,KAAK,CAAC;AACpE,OAAK,UAAU,SAAS,aAAa,SAAS,OAAO,KAAK,KAAK,CAAC;;CAGlE,KAAK,SAAiB,MAAgB;AACpC,MAAI,cACF,MAAK,KAAK,QAAQ,SAAS,KAAK;;CAIpC,MAAM,SAAiB,MAAgB;AACrC,OAAK,KAAK,SAAS,SAAS,KAAK;;CAGnC,MAAM,SAAiB,MAAgB;AACrC,MAAI,eACF,MAAK,KAAK,SAAS,SAAS,KAAK;;CAIrC,KAAK,SAAiB,MAAgB;AACpC,MAAI,cACF,MAAK,KAAK,QAAQ,SAAS,KAAK;;CAIpC,IAAI,MAAW;AACb,OAAK,KAAK,KAAK,SAAS,QAAQ,KAAK,KAAK,KAAK;;CAGjD,YAAY,UAAuB;AACjC,OAAK,UAAU,KAAK,SAAS;;;AAIjC,MAAa,eAAe,IAAI,QAAQ"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { LockedData } from "./locked-data.mjs";
|
|
2
|
-
|
|
3
|
-
//#region src/mermaid-generator.d.ts
|
|
4
|
-
declare const createMermaidGenerator: (baseDir: string) => {
|
|
5
|
-
initialize: (lockedData: LockedData) => void;
|
|
6
|
-
};
|
|
7
|
-
//#endregion
|
|
8
|
-
export { createMermaidGenerator };
|
|
9
|
-
//# sourceMappingURL=mermaid-generator.d.mts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid-generator.d.mts","names":[],"sources":["../../src/mermaid-generator.ts"],"sourcesContent":[],"mappings":";;;cAwMa;2BAkBqB;AAlBlC,CAAA"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { isApiStep, isCronStep, isEventStep, isNoopStep } from "./guards.mjs";
|
|
2
|
-
import fs from "fs";
|
|
3
|
-
import path from "path";
|
|
4
|
-
|
|
5
|
-
//#region src/mermaid-generator.ts
|
|
6
|
-
const ensureDiagramsDirectory = (diagramsDir) => {
|
|
7
|
-
if (!fs.existsSync(diagramsDir)) fs.mkdirSync(diagramsDir, { recursive: true });
|
|
8
|
-
};
|
|
9
|
-
const getNodeId = (step, baseDir) => {
|
|
10
|
-
return path.relative(baseDir, step.filePath).replace(/\.(ts|js|tsx|jsx)$/, "").replace(/[^a-zA-Z0-9]/g, "_");
|
|
11
|
-
};
|
|
12
|
-
const getNodeLabel = (step) => {
|
|
13
|
-
const displayName = step.config.name || path.basename(step.filePath, path.extname(step.filePath));
|
|
14
|
-
let prefix = "";
|
|
15
|
-
if (isApiStep(step)) prefix = "🌐 ";
|
|
16
|
-
else if (isEventStep(step)) prefix = "⚡ ";
|
|
17
|
-
else if (isCronStep(step)) prefix = "⏰ ";
|
|
18
|
-
else if (isNoopStep(step)) prefix = "⚙️ ";
|
|
19
|
-
return `["${prefix}${displayName}"]`;
|
|
20
|
-
};
|
|
21
|
-
const getNodeStyle = (step) => {
|
|
22
|
-
if (isApiStep(step)) return ":::apiStyle";
|
|
23
|
-
if (isEventStep(step)) return ":::eventStyle";
|
|
24
|
-
if (isCronStep(step)) return ":::cronStyle";
|
|
25
|
-
if (isNoopStep(step)) return ":::noopStyle";
|
|
26
|
-
return "";
|
|
27
|
-
};
|
|
28
|
-
const generateConnections = (emits, sourceStep, steps, sourceId, baseDir) => {
|
|
29
|
-
const connections = [];
|
|
30
|
-
if (!emits || !Array.isArray(emits) || emits.length === 0) return "";
|
|
31
|
-
const stepSubscribesToTopic = (step, topic) => {
|
|
32
|
-
if (isEventStep(step) && step.config.subscribes && Array.isArray(step.config.subscribes) && step.config.subscribes.includes(topic)) return true;
|
|
33
|
-
if ((isNoopStep(step) || isApiStep(step)) && step.config.virtualSubscribes && Array.isArray(step.config.virtualSubscribes) && step.config.virtualSubscribes.includes(topic)) return true;
|
|
34
|
-
return false;
|
|
35
|
-
};
|
|
36
|
-
emits.forEach((emit) => {
|
|
37
|
-
const topic = typeof emit === "string" ? emit : emit.topic;
|
|
38
|
-
const label = typeof emit === "string" ? topic : emit.label || topic;
|
|
39
|
-
steps.forEach((targetStep) => {
|
|
40
|
-
if (stepSubscribesToTopic(targetStep, topic)) {
|
|
41
|
-
const targetId = getNodeId(targetStep, baseDir);
|
|
42
|
-
connections.push(` ${sourceId} -->|${label}| ${targetId}`);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
});
|
|
46
|
-
return connections.join("\n");
|
|
47
|
-
};
|
|
48
|
-
const generateFlowDiagram = (flowName, steps, baseDir) => {
|
|
49
|
-
let diagram = `flowchart TD\n`;
|
|
50
|
-
diagram += [
|
|
51
|
-
` classDef apiStyle fill:#f96,stroke:#333,stroke-width:2px,color:#fff`,
|
|
52
|
-
` classDef eventStyle fill:#69f,stroke:#333,stroke-width:2px,color:#fff`,
|
|
53
|
-
` classDef cronStyle fill:#9c6,stroke:#333,stroke-width:2px,color:#fff`,
|
|
54
|
-
` classDef noopStyle fill:#3f3a50,stroke:#333,stroke-width:2px,color:#fff`
|
|
55
|
-
].join("\n") + "\n";
|
|
56
|
-
if (!steps || steps.length === 0) return diagram + " empty[No steps in this flow]";
|
|
57
|
-
steps.forEach((step) => {
|
|
58
|
-
const nodeId = getNodeId(step, baseDir);
|
|
59
|
-
const nodeLabel = getNodeLabel(step);
|
|
60
|
-
const nodeStyle = getNodeStyle(step);
|
|
61
|
-
diagram += ` ${nodeId}${nodeLabel}${nodeStyle}\n`;
|
|
62
|
-
});
|
|
63
|
-
let connectionsStr = "";
|
|
64
|
-
steps.forEach((sourceStep) => {
|
|
65
|
-
const sourceId = getNodeId(sourceStep, baseDir);
|
|
66
|
-
function processEmissions(emissionsArray, stepSource, stepsCollection, sourceIdentifier) {
|
|
67
|
-
if (emissionsArray && Array.isArray(emissionsArray)) return generateConnections(emissionsArray, stepSource, stepsCollection, sourceIdentifier, baseDir);
|
|
68
|
-
return "";
|
|
69
|
-
}
|
|
70
|
-
const supportsEmits = isApiStep(sourceStep) || isEventStep(sourceStep) || isCronStep(sourceStep);
|
|
71
|
-
const supportsVirtualEmits = supportsEmits || isNoopStep(sourceStep);
|
|
72
|
-
if (supportsEmits) {
|
|
73
|
-
const emitConnections = processEmissions(sourceStep.config.emits, sourceStep, steps, sourceId);
|
|
74
|
-
if (emitConnections) connectionsStr += emitConnections + "\n";
|
|
75
|
-
}
|
|
76
|
-
if (supportsVirtualEmits) {
|
|
77
|
-
const virtualEmitConnections = processEmissions(sourceStep.config.virtualEmits, sourceStep, steps, sourceId);
|
|
78
|
-
if (virtualEmitConnections) connectionsStr += virtualEmitConnections + "\n";
|
|
79
|
-
}
|
|
80
|
-
});
|
|
81
|
-
diagram += connectionsStr;
|
|
82
|
-
return diagram;
|
|
83
|
-
};
|
|
84
|
-
const saveDiagram = (diagramsDir, flowName, diagram) => {
|
|
85
|
-
const filePath = path.join(diagramsDir, `${flowName}.mmd`);
|
|
86
|
-
fs.writeFileSync(filePath, diagram);
|
|
87
|
-
};
|
|
88
|
-
const removeDiagram = (diagramsDir, flowName) => {
|
|
89
|
-
const filePath = path.join(diagramsDir, `${flowName}.mmd`);
|
|
90
|
-
if (fs.existsSync(filePath)) fs.unlinkSync(filePath);
|
|
91
|
-
};
|
|
92
|
-
const generateAndSaveDiagram = (diagramsDir, flowName, flow, baseDir) => {
|
|
93
|
-
saveDiagram(diagramsDir, flowName, generateFlowDiagram(flowName, flow.steps, baseDir));
|
|
94
|
-
};
|
|
95
|
-
const createMermaidGenerator = (baseDir) => {
|
|
96
|
-
const diagramsDir = path.join(baseDir, ".mermaid");
|
|
97
|
-
ensureDiagramsDirectory(diagramsDir);
|
|
98
|
-
const handleFlowCreated = (flowName, flow) => {
|
|
99
|
-
generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir);
|
|
100
|
-
};
|
|
101
|
-
const handleFlowUpdated = (flowName, flow) => {
|
|
102
|
-
generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir);
|
|
103
|
-
};
|
|
104
|
-
const handleFlowRemoved = (flowName) => {
|
|
105
|
-
removeDiagram(diagramsDir, flowName);
|
|
106
|
-
};
|
|
107
|
-
const initialize = (lockedData) => {
|
|
108
|
-
lockedData.on("flow-created", (flowName) => {
|
|
109
|
-
handleFlowCreated(flowName, lockedData.flows[flowName]);
|
|
110
|
-
});
|
|
111
|
-
lockedData.on("flow-updated", (flowName) => {
|
|
112
|
-
handleFlowUpdated(flowName, lockedData.flows[flowName]);
|
|
113
|
-
});
|
|
114
|
-
lockedData.on("flow-removed", (flowName) => {
|
|
115
|
-
handleFlowRemoved(flowName);
|
|
116
|
-
});
|
|
117
|
-
if (lockedData.flows && typeof lockedData.flows === "object") Object.entries(lockedData.flows).forEach(([flowName, flow]) => {
|
|
118
|
-
generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir);
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
return { initialize };
|
|
122
|
-
};
|
|
123
|
-
|
|
124
|
-
//#endregion
|
|
125
|
-
export { createMermaidGenerator };
|
|
126
|
-
//# sourceMappingURL=mermaid-generator.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mermaid-generator.mjs","names":["connections: string[]"],"sources":["../../src/mermaid-generator.ts"],"sourcesContent":["import fs from 'fs'\nimport path from 'path'\nimport { isApiStep, isCronStep, isEventStep, isNoopStep } from './guards'\nimport type { LockedData } from './locked-data'\nimport type { Flow, Step } from './types'\n\n// Pure function to ensure diagrams directory exists\nconst ensureDiagramsDirectory = (diagramsDir: string): void => {\n if (!fs.existsSync(diagramsDir)) {\n fs.mkdirSync(diagramsDir, { recursive: true })\n }\n}\n\n// Pure function to get node ID\nconst getNodeId = (step: Step, baseDir: string): string => {\n // Get relative path from the base directory\n const relativePath = path.relative(baseDir, step.filePath)\n\n // Remove common file extensions\n const pathWithoutExtension = relativePath.replace(/\\.(ts|js|tsx|jsx)$/, '')\n\n // Replace slashes with underscores and dots with underscores\n // Only keep alphanumeric characters and underscores\n return pathWithoutExtension.replace(/[^a-zA-Z0-9]/g, '_')\n}\n\n// Pure function to get node label\nconst getNodeLabel = (step: Step): string => {\n // Get display name for node\n const displayName = step.config.name || path.basename(step.filePath, path.extname(step.filePath))\n\n // Add node type prefix to help distinguish types\n let prefix = ''\n if (isApiStep(step)) prefix = '🌐 '\n else if (isEventStep(step)) prefix = '⚡ '\n else if (isCronStep(step)) prefix = '⏰ '\n else if (isNoopStep(step)) prefix = '⚙️ '\n\n // Create a node label with the step name\n return `[\"${prefix}${displayName}\"]`\n}\n\n// Pure function to get node style\nconst getNodeStyle = (step: Step): string => {\n // Apply style class based on step type\n if (isApiStep(step)) return ':::apiStyle'\n if (isEventStep(step)) return ':::eventStyle'\n if (isCronStep(step)) return ':::cronStyle'\n if (isNoopStep(step)) return ':::noopStyle'\n return ''\n}\n\n// Pure function to generate connections\nconst generateConnections = (\n emits: Array<string | { topic: string; label?: string }>,\n sourceStep: Step,\n steps: Step[],\n sourceId: string,\n baseDir: string,\n): string => {\n const connections: string[] = []\n\n if (!emits || !Array.isArray(emits) || emits.length === 0) {\n return ''\n }\n\n // Helper function to check if a step subscribes to a topic\n const stepSubscribesToTopic = (step: Step, topic: string): boolean => {\n // Event steps use regular subscribes\n if (\n isEventStep(step) &&\n step.config.subscribes &&\n Array.isArray(step.config.subscribes) &&\n step.config.subscribes.includes(topic)\n ) {\n return true\n }\n\n // Noop and API steps use virtualSubscribes\n if (\n (isNoopStep(step) || isApiStep(step)) &&\n step.config.virtualSubscribes &&\n Array.isArray(step.config.virtualSubscribes) &&\n step.config.virtualSubscribes.includes(topic)\n ) {\n return true\n }\n\n return false\n }\n\n emits.forEach((emit) => {\n const topic = typeof emit === 'string' ? emit : emit.topic\n const label = typeof emit === 'string' ? topic : emit.label || topic\n\n steps.forEach((targetStep) => {\n if (stepSubscribesToTopic(targetStep, topic)) {\n const targetId = getNodeId(targetStep, baseDir)\n connections.push(` ${sourceId} -->|${label}| ${targetId}`)\n }\n })\n })\n\n return connections.join('\\n')\n}\n\n// Pure function to generate flow diagram\nconst generateFlowDiagram = (flowName: string, steps: Step[], baseDir: string): string => {\n // Start mermaid flowchart with top-down direction\n let diagram = `flowchart TD\\n`\n\n // Add class definitions for styling with explicit text color\n const classDefinitions = [\n ` classDef apiStyle fill:#f96,stroke:#333,stroke-width:2px,color:#fff`,\n ` classDef eventStyle fill:#69f,stroke:#333,stroke-width:2px,color:#fff`,\n ` classDef cronStyle fill:#9c6,stroke:#333,stroke-width:2px,color:#fff`,\n ` classDef noopStyle fill:#3f3a50,stroke:#333,stroke-width:2px,color:#fff`,\n ]\n diagram += classDefinitions.join('\\n') + '\\n'\n\n // Check if we have any steps\n if (!steps || steps.length === 0) {\n return diagram + ' empty[No steps in this flow]'\n }\n\n // Create node definitions with proper format\n steps.forEach((step) => {\n const nodeId = getNodeId(step, baseDir)\n const nodeLabel = getNodeLabel(step)\n const nodeStyle = getNodeStyle(step)\n diagram += ` ${nodeId}${nodeLabel}${nodeStyle}\\n`\n })\n\n // Create connections between nodes\n let connectionsStr = ''\n\n steps.forEach((sourceStep) => {\n const sourceId = getNodeId(sourceStep, baseDir)\n\n // Helper function to process emissions if they exist\n function processEmissions(\n emissionsArray: Array<string | { topic: string; label?: string }> | undefined,\n stepSource: Step,\n stepsCollection: Step[],\n sourceIdentifier: string,\n ): string {\n if (emissionsArray && Array.isArray(emissionsArray)) {\n return generateConnections(emissionsArray, stepSource, stepsCollection, sourceIdentifier, baseDir)\n }\n return ''\n }\n\n // Semantic variables to clarify which step types support which emission types\n const supportsEmits = isApiStep(sourceStep) || isEventStep(sourceStep) || isCronStep(sourceStep)\n const supportsVirtualEmits = supportsEmits || isNoopStep(sourceStep)\n\n // Process regular emissions if supported\n if (supportsEmits) {\n const emitConnections = processEmissions(sourceStep.config.emits, sourceStep, steps, sourceId)\n if (emitConnections) {\n connectionsStr += emitConnections + '\\n'\n }\n }\n\n // Process virtual emissions if supported\n if (supportsVirtualEmits) {\n const virtualEmitConnections = processEmissions(sourceStep.config.virtualEmits, sourceStep, steps, sourceId)\n if (virtualEmitConnections) {\n connectionsStr += virtualEmitConnections + '\\n'\n }\n }\n })\n\n // Add connections to the diagram\n diagram += connectionsStr\n\n return diagram\n}\n\n// Function to save a diagram to a file\nconst saveDiagram = (diagramsDir: string, flowName: string, diagram: string): void => {\n const filePath = path.join(diagramsDir, `${flowName}.mmd`)\n fs.writeFileSync(filePath, diagram)\n}\n\n// Function to remove a diagram file\nconst removeDiagram = (diagramsDir: string, flowName: string): void => {\n const filePath = path.join(diagramsDir, `${flowName}.mmd`)\n if (fs.existsSync(filePath)) {\n fs.unlinkSync(filePath)\n }\n}\n\n// Function to generate and save a diagram\nconst generateAndSaveDiagram = (diagramsDir: string, flowName: string, flow: Flow, baseDir: string): void => {\n const diagram = generateFlowDiagram(flowName, flow.steps, baseDir)\n saveDiagram(diagramsDir, flowName, diagram)\n}\n\n// Main exported function that creates the mermaid generator\nexport const createMermaidGenerator = (baseDir: string) => {\n const diagramsDir = path.join(baseDir, '.mermaid')\n ensureDiagramsDirectory(diagramsDir)\n\n // Event handlers\n const handleFlowCreated = (flowName: string, flow: Flow): void => {\n generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir)\n }\n\n const handleFlowUpdated = (flowName: string, flow: Flow): void => {\n generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir)\n }\n\n const handleFlowRemoved = (flowName: string): void => {\n removeDiagram(diagramsDir, flowName)\n }\n\n // Initialize function to hook into LockedData events\n const initialize = (lockedData: LockedData): void => {\n // Hook into flow events\n lockedData.on('flow-created', (flowName: string) => {\n handleFlowCreated(flowName, lockedData.flows[flowName])\n })\n\n lockedData.on('flow-updated', (flowName: string) => {\n handleFlowUpdated(flowName, lockedData.flows[flowName])\n })\n\n lockedData.on('flow-removed', (flowName: string) => {\n handleFlowRemoved(flowName)\n })\n\n // Generate diagrams for all existing flows\n if (lockedData.flows && typeof lockedData.flows === 'object') {\n Object.entries(lockedData.flows).forEach(([flowName, flow]) => {\n generateAndSaveDiagram(diagramsDir, flowName, flow as Flow, baseDir)\n })\n }\n }\n\n // Return the public API\n return {\n initialize,\n }\n}\n"],"mappings":";;;;;AAOA,MAAM,2BAA2B,gBAA8B;AAC7D,KAAI,CAAC,GAAG,WAAW,YAAY,CAC7B,IAAG,UAAU,aAAa,EAAE,WAAW,MAAM,CAAC;;AAKlD,MAAM,aAAa,MAAY,YAA4B;AASzD,QAPqB,KAAK,SAAS,SAAS,KAAK,SAAS,CAGhB,QAAQ,sBAAsB,GAAG,CAI/C,QAAQ,iBAAiB,IAAI;;AAI3D,MAAM,gBAAgB,SAAuB;CAE3C,MAAM,cAAc,KAAK,OAAO,QAAQ,KAAK,SAAS,KAAK,UAAU,KAAK,QAAQ,KAAK,SAAS,CAAC;CAGjG,IAAI,SAAS;AACb,KAAI,UAAU,KAAK,CAAE,UAAS;UACrB,YAAY,KAAK,CAAE,UAAS;UAC5B,WAAW,KAAK,CAAE,UAAS;UAC3B,WAAW,KAAK,CAAE,UAAS;AAGpC,QAAO,KAAK,SAAS,YAAY;;AAInC,MAAM,gBAAgB,SAAuB;AAE3C,KAAI,UAAU,KAAK,CAAE,QAAO;AAC5B,KAAI,YAAY,KAAK,CAAE,QAAO;AAC9B,KAAI,WAAW,KAAK,CAAE,QAAO;AAC7B,KAAI,WAAW,KAAK,CAAE,QAAO;AAC7B,QAAO;;AAIT,MAAM,uBACJ,OACA,YACA,OACA,UACA,YACW;CACX,MAAMA,cAAwB,EAAE;AAEhC,KAAI,CAAC,SAAS,CAAC,MAAM,QAAQ,MAAM,IAAI,MAAM,WAAW,EACtD,QAAO;CAIT,MAAM,yBAAyB,MAAY,UAA2B;AAEpE,MACE,YAAY,KAAK,IACjB,KAAK,OAAO,cACZ,MAAM,QAAQ,KAAK,OAAO,WAAW,IACrC,KAAK,OAAO,WAAW,SAAS,MAAM,CAEtC,QAAO;AAIT,OACG,WAAW,KAAK,IAAI,UAAU,KAAK,KACpC,KAAK,OAAO,qBACZ,MAAM,QAAQ,KAAK,OAAO,kBAAkB,IAC5C,KAAK,OAAO,kBAAkB,SAAS,MAAM,CAE7C,QAAO;AAGT,SAAO;;AAGT,OAAM,SAAS,SAAS;EACtB,MAAM,QAAQ,OAAO,SAAS,WAAW,OAAO,KAAK;EACrD,MAAM,QAAQ,OAAO,SAAS,WAAW,QAAQ,KAAK,SAAS;AAE/D,QAAM,SAAS,eAAe;AAC5B,OAAI,sBAAsB,YAAY,MAAM,EAAE;IAC5C,MAAM,WAAW,UAAU,YAAY,QAAQ;AAC/C,gBAAY,KAAK,OAAO,SAAS,OAAO,MAAM,IAAI,WAAW;;IAE/D;GACF;AAEF,QAAO,YAAY,KAAK,KAAK;;AAI/B,MAAM,uBAAuB,UAAkB,OAAe,YAA4B;CAExF,IAAI,UAAU;AASd,YANyB;EACvB;EACA;EACA;EACA;EACD,CAC2B,KAAK,KAAK,GAAG;AAGzC,KAAI,CAAC,SAAS,MAAM,WAAW,EAC7B,QAAO,UAAU;AAInB,OAAM,SAAS,SAAS;EACtB,MAAM,SAAS,UAAU,MAAM,QAAQ;EACvC,MAAM,YAAY,aAAa,KAAK;EACpC,MAAM,YAAY,aAAa,KAAK;AACpC,aAAW,OAAO,SAAS,YAAY,UAAU;GACjD;CAGF,IAAI,iBAAiB;AAErB,OAAM,SAAS,eAAe;EAC5B,MAAM,WAAW,UAAU,YAAY,QAAQ;EAG/C,SAAS,iBACP,gBACA,YACA,iBACA,kBACQ;AACR,OAAI,kBAAkB,MAAM,QAAQ,eAAe,CACjD,QAAO,oBAAoB,gBAAgB,YAAY,iBAAiB,kBAAkB,QAAQ;AAEpG,UAAO;;EAIT,MAAM,gBAAgB,UAAU,WAAW,IAAI,YAAY,WAAW,IAAI,WAAW,WAAW;EAChG,MAAM,uBAAuB,iBAAiB,WAAW,WAAW;AAGpE,MAAI,eAAe;GACjB,MAAM,kBAAkB,iBAAiB,WAAW,OAAO,OAAO,YAAY,OAAO,SAAS;AAC9F,OAAI,gBACF,mBAAkB,kBAAkB;;AAKxC,MAAI,sBAAsB;GACxB,MAAM,yBAAyB,iBAAiB,WAAW,OAAO,cAAc,YAAY,OAAO,SAAS;AAC5G,OAAI,uBACF,mBAAkB,yBAAyB;;GAG/C;AAGF,YAAW;AAEX,QAAO;;AAIT,MAAM,eAAe,aAAqB,UAAkB,YAA0B;CACpF,MAAM,WAAW,KAAK,KAAK,aAAa,GAAG,SAAS,MAAM;AAC1D,IAAG,cAAc,UAAU,QAAQ;;AAIrC,MAAM,iBAAiB,aAAqB,aAA2B;CACrE,MAAM,WAAW,KAAK,KAAK,aAAa,GAAG,SAAS,MAAM;AAC1D,KAAI,GAAG,WAAW,SAAS,CACzB,IAAG,WAAW,SAAS;;AAK3B,MAAM,0BAA0B,aAAqB,UAAkB,MAAY,YAA0B;AAE3G,aAAY,aAAa,UADT,oBAAoB,UAAU,KAAK,OAAO,QAAQ,CACvB;;AAI7C,MAAa,0BAA0B,YAAoB;CACzD,MAAM,cAAc,KAAK,KAAK,SAAS,WAAW;AAClD,yBAAwB,YAAY;CAGpC,MAAM,qBAAqB,UAAkB,SAAqB;AAChE,yBAAuB,aAAa,UAAU,MAAM,QAAQ;;CAG9D,MAAM,qBAAqB,UAAkB,SAAqB;AAChE,yBAAuB,aAAa,UAAU,MAAM,QAAQ;;CAG9D,MAAM,qBAAqB,aAA2B;AACpD,gBAAc,aAAa,SAAS;;CAItC,MAAM,cAAc,eAAiC;AAEnD,aAAW,GAAG,iBAAiB,aAAqB;AAClD,qBAAkB,UAAU,WAAW,MAAM,UAAU;IACvD;AAEF,aAAW,GAAG,iBAAiB,aAAqB;AAClD,qBAAkB,UAAU,WAAW,MAAM,UAAU;IACvD;AAEF,aAAW,GAAG,iBAAiB,aAAqB;AAClD,qBAAkB,SAAS;IAC3B;AAGF,MAAI,WAAW,SAAS,OAAO,WAAW,UAAU,SAClD,QAAO,QAAQ,WAAW,MAAM,CAAC,SAAS,CAAC,UAAU,UAAU;AAC7D,0BAAuB,aAAa,UAAU,MAAc,QAAQ;IACpE;;AAKN,QAAO,EACL,YACD"}
|
package/dist/src/motia.d.mts
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { TracerFactory } from "./observability/index.mjs";
|
|
2
|
-
import { EventAdapter } from "./adapters/interfaces/event-adapter.interface.mjs";
|
|
3
|
-
import { StateAdapter } from "./adapters/interfaces/state-adapter.interface.mjs";
|
|
4
|
-
import { Printer } from "./printer.mjs";
|
|
5
|
-
import { LockedData } from "./locked-data.mjs";
|
|
6
|
-
import { LoggerFactory } from "./logger-factory.mjs";
|
|
7
|
-
import { ApiResponse, ApiRouteConfig, ApiRouteHandler, InternalStateManager } from "./types.mjs";
|
|
8
|
-
import { Express } from "express";
|
|
9
|
-
|
|
10
|
-
//#region src/motia.d.ts
|
|
11
|
-
type Motia = {
|
|
12
|
-
loggerFactory: LoggerFactory;
|
|
13
|
-
eventAdapter: EventAdapter;
|
|
14
|
-
state: InternalStateManager;
|
|
15
|
-
lockedData: LockedData;
|
|
16
|
-
printer: Printer;
|
|
17
|
-
tracerFactory: TracerFactory;
|
|
18
|
-
app: Express;
|
|
19
|
-
stateAdapter: StateAdapter;
|
|
20
|
-
};
|
|
21
|
-
type PluginApiConfig = {
|
|
22
|
-
method: ApiRouteConfig['method'];
|
|
23
|
-
path: string;
|
|
24
|
-
};
|
|
25
|
-
type UnregisterMotiaPluginApi = () => void;
|
|
26
|
-
type MotiaPluginContext = {
|
|
27
|
-
printer: Printer;
|
|
28
|
-
state: StateAdapter;
|
|
29
|
-
lockedData: LockedData;
|
|
30
|
-
tracerFactory: TracerFactory;
|
|
31
|
-
registerApi: <TRequestBody = unknown, TResponseBody extends ApiResponse<number, unknown> = ApiResponse<number, unknown>, TEmitData = never>(config: PluginApiConfig, handler: ApiRouteHandler<TRequestBody, TResponseBody, TEmitData>) => UnregisterMotiaPluginApi;
|
|
32
|
-
};
|
|
33
|
-
declare const PLUGIN_FLOW_ID = "_plugin";
|
|
34
|
-
//#endregion
|
|
35
|
-
export { Motia, MotiaPluginContext, PLUGIN_FLOW_ID, PluginApiConfig, UnregisterMotiaPluginApi };
|
|
36
|
-
//# sourceMappingURL=motia.d.mts.map
|
package/dist/src/motia.d.mts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"motia.d.mts","names":[],"sources":["../../src/motia.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;KASY,KAAA;iBACK;EADL,YAAK,EAED,YAFC;EACA,KAAA,EAER,oBAFQ;EACD,UAAA,EAEF,UAFE;EACP,OAAA,EAEE,OAFF;EACK,aAAA,EAEG,aAFH;EACH,GAAA,EAGJ,OAHI;EACM,YAAA,EAGD,YAHC;CAEV;AACS,KAGJ,eAAA,GAHI;EAAY,MAAA,EAIlB,cAJkB,CAAA,QAAA,CAAA;EAGhB,IAAA,EAAA,MAAA;AAKZ,CAAA;AAEY,KAFA,wBAAA,GAEkB,GAAA,GAAA,IAAA;AACnB,KADC,kBAAA,GACD;EACF,OAAA,EADE,OACF;EACK,KAAA,EADL,YACK;EACG,UAAA,EADH,UACG;EAGS,aAAA,EAHT,aAGS;EAA+B,WAAA,EAAA,CAAA,eAAA,OAAA,EAAA,sBAA/B,WAA+B,CAAA,MAAA,EAAA,OAAA,CAAA,GAAA,WAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,YAAA,KAAA,CAAA,CAAA,MAAA,EAG7C,eAH6C,EAAA,OAAA,EAI5C,eAJ4C,CAI5B,YAJ4B,EAId,aAJc,EAIC,SAJD,CAAA,EAAA,GAKlD,wBALkD;CAG7C;AACiB,cAIhB,cAAA,GAJgB,SAAA"}
|
package/dist/src/motia.mjs
DELETED
package/dist/src/motia.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1,36 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1,49 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/src/node/logger.mjs
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { };
|
|
@@ -1,94 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|