@motiadev/core 0.13.0-beta.162-846200 → 0.13.1-beta.162
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +93 -21
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/jest.config.d.ts +8 -0
- package/dist/jest.config.d.ts.map +1 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +13 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +53 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +15 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +49 -0
- package/dist/src/adapters/defaults/index.d.ts +9 -0
- package/dist/src/adapters/defaults/index.d.ts.map +1 -0
- package/dist/src/adapters/defaults/index.js +19 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts +23 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.js +149 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts +16 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.js +69 -0
- package/dist/src/adapters/defaults/state/utils.d.ts +4 -0
- package/dist/src/adapters/defaults/state/utils.d.ts.map +1 -0
- package/dist/src/adapters/defaults/state/utils.js +66 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +9 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +14 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts +22 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.js +125 -0
- package/dist/src/adapters/defaults/stream/index.d.ts +5 -0
- package/dist/src/adapters/defaults/stream/index.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/index.js +11 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +6 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +10 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts +16 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +55 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +29 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +15 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/index.d.ts +7 -0
- package/dist/src/adapters/interfaces/index.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/index.js +5 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +23 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts +24 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.js +2 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +6 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +2 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +22 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.js +16 -0
- package/dist/src/analytics/utils.d.ts +6 -0
- package/dist/src/analytics/utils.d.ts.map +1 -0
- package/dist/src/analytics/utils.js +51 -0
- package/dist/src/call-step-file.d.ts +16 -0
- package/dist/src/call-step-file.d.ts.map +1 -0
- package/dist/src/call-step-file.js +194 -0
- package/dist/src/config.d.ts +3 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +5 -0
- package/dist/src/config.types.d.ts +17 -0
- package/dist/src/config.types.d.ts.map +1 -0
- package/dist/src/config.types.js +2 -0
- package/dist/src/cron-handler.d.ts +14 -0
- package/dist/src/cron-handler.d.ts.map +1 -0
- package/dist/src/cron-handler.js +132 -0
- package/dist/src/endpoints/analytics-endpoint.d.ts +3 -0
- package/dist/src/endpoints/analytics-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/analytics-endpoint.js +28 -0
- package/dist/src/endpoints/flows-config-endpoint.d.ts +4 -0
- package/dist/src/endpoints/flows-config-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/flows-config-endpoint.js +34 -0
- package/dist/src/endpoints/flows-endpoint.d.ts +3 -0
- package/dist/src/endpoints/flows-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/flows-endpoint.js +29 -0
- package/dist/src/endpoints/step-endpoint.d.ts +4 -0
- package/dist/src/endpoints/step-endpoint.d.ts.map +1 -0
- package/dist/src/endpoints/step-endpoint.js +45 -0
- package/dist/src/generate-trace-id.d.ts +3 -0
- package/dist/src/generate-trace-id.d.ts.map +1 -0
- package/dist/src/generate-trace-id.js +14 -0
- package/dist/src/get-step-config.d.ts +5 -0
- package/dist/src/get-step-config.d.ts.map +1 -0
- package/dist/src/get-step-config.js +68 -0
- package/dist/src/get-step-language.d.ts +2 -0
- package/dist/src/get-step-language.d.ts.map +1 -0
- package/dist/src/get-step-language.js +27 -0
- package/dist/src/guards.d.ts +6 -0
- package/dist/src/guards.d.ts.map +1 -0
- package/dist/src/guards.js +11 -0
- package/dist/src/helper/flows-helper.d.ts +6 -0
- package/dist/src/helper/flows-helper.d.ts.map +1 -0
- package/dist/src/helper/flows-helper.js +143 -0
- package/dist/src/infrastructure-validator/defaults.d.ts +4 -0
- package/dist/src/infrastructure-validator/defaults.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/defaults.js +16 -0
- package/dist/src/infrastructure-validator/index.d.ts +4 -0
- package/dist/src/infrastructure-validator/index.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/index.js +13 -0
- package/dist/src/infrastructure-validator/schemas.d.ts +45 -0
- package/dist/src/infrastructure-validator/schemas.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/schemas.js +100 -0
- package/dist/src/infrastructure-validator/types.d.ts +21 -0
- package/dist/src/infrastructure-validator/types.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/types.js +2 -0
- package/dist/src/infrastructure-validator/validations.d.ts +4 -0
- package/dist/src/infrastructure-validator/validations.d.ts.map +1 -0
- package/dist/src/infrastructure-validator/validations.js +62 -0
- package/dist/src/language-runner.d.ts +15 -0
- package/dist/src/language-runner.d.ts.map +1 -0
- package/dist/src/language-runner.js +31 -0
- package/dist/src/locked-data.d.ts +78 -0
- package/dist/src/locked-data.d.ts.map +1 -0
- package/dist/src/locked-data.js +284 -0
- package/dist/src/logger-factory.d.ts +19 -0
- package/dist/src/logger-factory.d.ts.map +1 -0
- package/dist/src/logger-factory.js +27 -0
- package/dist/src/logger.d.ts +26 -0
- package/dist/src/logger.d.ts.map +1 -0
- package/dist/src/logger.js +60 -0
- package/dist/src/mermaid-generator.d.ts +5 -0
- package/dist/src/mermaid-generator.d.ts.map +1 -0
- package/dist/src/mermaid-generator.js +203 -0
- package/dist/src/motia.d.ts +32 -0
- package/dist/src/motia.d.ts.map +1 -0
- package/dist/src/motia.js +4 -0
- package/dist/src/node/can-access.d.ts +2 -0
- package/dist/src/node/can-access.d.ts.map +1 -0
- package/dist/src/node/can-access.js +44 -0
- package/dist/src/node/get-config.d.ts +2 -0
- package/dist/src/node/get-config.d.ts.map +1 -0
- package/dist/src/node/get-config.js +64 -0
- package/dist/src/node/logger.d.ts +16 -0
- package/dist/src/node/logger.d.ts.map +1 -0
- package/dist/src/node/logger.js +48 -0
- package/dist/src/node/middleware-compose.d.ts +2 -0
- package/dist/src/node/middleware-compose.d.ts.map +1 -0
- package/dist/src/node/middleware-compose.js +10 -0
- package/dist/src/node/node-runner.d.ts +2 -0
- package/dist/src/node/node-runner.d.ts.map +1 -0
- package/dist/src/node/node-runner.js +83 -0
- package/dist/src/node/rpc-state-manager.d.ts +12 -0
- package/dist/src/node/rpc-state-manager.d.ts.map +1 -0
- package/dist/src/node/rpc-state-manager.js +24 -0
- package/dist/src/node/rpc.d.ts +10 -0
- package/dist/src/node/rpc.d.ts.map +1 -0
- package/dist/src/node/rpc.js +50 -0
- package/dist/src/observability/create-trace.d.ts +4 -0
- package/dist/src/observability/create-trace.d.ts.map +1 -0
- package/dist/src/observability/create-trace.js +22 -0
- package/dist/src/observability/index.d.ts +4 -0
- package/dist/src/observability/index.d.ts.map +1 -0
- package/dist/src/observability/index.js +2 -0
- package/dist/src/observability/no-tracer.d.ts +10 -0
- package/dist/src/observability/no-tracer.d.ts.map +1 -0
- package/dist/src/observability/no-tracer.js +14 -0
- package/dist/src/observability/redis-trace-stream-adapter.d.ts +17 -0
- package/dist/src/observability/redis-trace-stream-adapter.d.ts.map +1 -0
- package/dist/src/observability/redis-trace-stream-adapter.js +65 -0
- package/dist/src/observability/stream-tracer.d.ts +22 -0
- package/dist/src/observability/stream-tracer.d.ts.map +1 -0
- package/dist/src/observability/stream-tracer.js +97 -0
- package/dist/src/observability/trace-manager.d.ts +13 -0
- package/dist/src/observability/trace-manager.d.ts.map +1 -0
- package/dist/src/observability/trace-manager.js +23 -0
- package/dist/src/observability/tracer.d.ts +19 -0
- package/dist/src/observability/tracer.d.ts.map +1 -0
- package/dist/src/observability/tracer.js +95 -0
- package/dist/src/observability/types.d.ts +75 -0
- package/dist/src/observability/types.d.ts.map +1 -0
- package/dist/src/observability/types.js +2 -0
- package/dist/src/pretty-print.d.ts +2 -0
- package/dist/src/pretty-print.d.ts.map +1 -0
- package/dist/src/pretty-print.js +63 -0
- package/dist/src/printer.d.ts +61 -0
- package/dist/src/printer.d.ts.map +1 -0
- package/dist/src/printer.js +164 -0
- package/dist/src/process-communication/communication-config.d.ts +8 -0
- package/dist/src/process-communication/communication-config.d.ts.map +1 -0
- package/dist/src/process-communication/communication-config.js +18 -0
- package/dist/src/process-communication/process-manager.d.ts +32 -0
- package/dist/src/process-communication/process-manager.d.ts.map +1 -0
- package/dist/src/process-communication/process-manager.js +88 -0
- package/dist/src/process-communication/rpc-processor-interface.d.ts +10 -0
- package/dist/src/process-communication/rpc-processor-interface.d.ts.map +1 -0
- package/dist/src/process-communication/rpc-processor-interface.js +2 -0
- package/dist/src/queue-manager.d.ts +42 -0
- package/dist/src/queue-manager.d.ts.map +1 -0
- package/dist/src/queue-manager.js +252 -0
- package/dist/src/ruby/get-ruby-config.d.ts +3 -0
- package/dist/src/ruby/get-ruby-config.d.ts.map +1 -0
- package/dist/src/ruby/get-ruby-config.js +34 -0
- package/dist/src/run-stream-can-access.d.ts +10 -0
- package/dist/src/run-stream-can-access.d.ts.map +1 -0
- package/dist/src/run-stream-can-access.js +59 -0
- package/dist/src/schema-utils.d.ts +9 -0
- package/dist/src/schema-utils.d.ts.map +1 -0
- package/dist/src/schema-utils.js +80 -0
- package/dist/src/server.d.ts +37 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +318 -0
- package/dist/src/socket-server/helpers.d.ts +53 -0
- package/dist/src/socket-server/helpers.d.ts.map +1 -0
- package/dist/src/socket-server/helpers.js +28 -0
- package/dist/src/socket-server.d.ts +21 -0
- package/dist/src/socket-server.d.ts.map +1 -0
- package/dist/src/socket-server.js +127 -0
- package/dist/src/state/create-state-adapter.d.ts +8 -0
- package/dist/src/state/create-state-adapter.d.ts.map +1 -0
- package/dist/src/state/create-state-adapter.js +8 -0
- package/dist/src/step-handler-rpc-processor.d.ts +22 -0
- package/dist/src/step-handler-rpc-processor.d.ts.map +1 -0
- package/dist/src/step-handler-rpc-processor.js +63 -0
- package/dist/src/step-handler-rpc-stdin-processor.d.ts +23 -0
- package/dist/src/step-handler-rpc-stdin-processor.d.ts.map +1 -0
- package/dist/src/step-handler-rpc-stdin-processor.js +83 -0
- package/dist/src/step-handlers.d.ts +9 -0
- package/dist/src/step-handlers.d.ts.map +1 -0
- package/dist/src/step-handlers.js +77 -0
- package/dist/src/step-validator.d.ts +15 -0
- package/dist/src/step-validator.d.ts.map +1 -0
- package/dist/src/step-validator.js +135 -0
- package/dist/src/steps/emit.step.d.ts +12 -0
- package/dist/src/steps/emit.step.d.ts.map +1 -0
- package/dist/src/steps/emit.step.js +27 -0
- package/dist/src/steps/index.d.ts +3 -0
- package/dist/src/steps/index.d.ts.map +1 -0
- package/dist/src/steps/index.js +16 -0
- package/dist/src/streams/flows-config-stream.d.ts +14 -0
- package/dist/src/streams/flows-config-stream.d.ts.map +1 -0
- package/dist/src/streams/flows-config-stream.js +49 -0
- package/dist/src/streams/flows-stream.d.ts +12 -0
- package/dist/src/streams/flows-stream.d.ts.map +1 -0
- package/dist/src/streams/flows-stream.js +35 -0
- package/dist/src/streams/redis-logs-stream.d.ts +31 -0
- package/dist/src/streams/redis-logs-stream.d.ts.map +1 -0
- package/dist/src/streams/redis-logs-stream.js +84 -0
- package/dist/src/streams/stream-factory.d.ts +3 -0
- package/dist/src/streams/stream-factory.d.ts.map +1 -0
- package/dist/src/streams/stream-factory.js +2 -0
- package/dist/src/types/app-config-types.d.ts +44 -0
- package/dist/src/types/app-config-types.d.ts.map +1 -0
- package/dist/src/types/app-config-types.js +2 -0
- package/dist/src/types/flows-config-types.d.ts +10 -0
- package/dist/src/types/flows-config-types.d.ts.map +1 -0
- package/dist/src/types/flows-config-types.js +2 -0
- package/dist/src/types/flows-types.d.ts +39 -0
- package/dist/src/types/flows-types.d.ts.map +1 -0
- package/dist/src/types/flows-types.js +2 -0
- package/dist/src/types/generate-type-from-schema.d.ts +3 -0
- package/dist/src/types/generate-type-from-schema.d.ts.map +1 -0
- package/dist/src/types/generate-type-from-schema.js +49 -0
- package/dist/src/types/generate-types-from-response.d.ts +3 -0
- package/dist/src/types/generate-types-from-response.d.ts.map +1 -0
- package/dist/src/types/generate-types-from-response.js +13 -0
- package/dist/src/types/generate-types.d.ts +13 -0
- package/dist/src/types/generate-types.d.ts.map +1 -0
- package/dist/src/types/generate-types.js +127 -0
- package/dist/src/types/merge-schemas.d.ts +5 -0
- package/dist/src/types/merge-schemas.d.ts.map +1 -0
- package/dist/src/types/merge-schemas.js +183 -0
- package/dist/src/types/schema.types.d.ts +9 -0
- package/dist/src/types/schema.types.d.ts.map +1 -0
- package/dist/src/types/schema.types.js +14 -0
- package/dist/src/types-stream.d.ts +42 -0
- package/dist/src/types-stream.d.ts.map +1 -0
- package/dist/src/types-stream.js +2 -0
- package/dist/src/types.d.ts +184 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +17 -0
- package/dist/src/utils.d.ts +3 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/dist/src/utils.js +12 -0
- package/dist/src/validate-event-input.d.ts +3 -0
- package/dist/src/validate-event-input.d.ts.map +1 -0
- package/dist/src/validate-event-input.js +74 -0
- package/package.json +8 -22
- package/dist/index.d.mts +0 -38
- package/dist/index.mjs +0 -30
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts +0 -17
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs +0 -51
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts +0 -19
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs +0 -54
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/index.d.mts +0 -8
- package/dist/src/adapters/defaults/index.mjs +0 -10
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts +0 -27
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs +0 -105
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts +0 -20
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs +0 -58
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/state/utils.mjs +0 -40
- package/dist/src/adapters/defaults/state/utils.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts +0 -13
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs +0 -16
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts +0 -24
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs +0 -84
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts +0 -10
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs +0 -12
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts +0 -20
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs +0 -58
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs.map +0 -1
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts +0 -32
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts +0 -19
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts +0 -27
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts +0 -28
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts +0 -10
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts +0 -26
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs +0 -17
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs.map +0 -1
- package/dist/src/analytics/utils.d.mts +0 -9
- package/dist/src/analytics/utils.d.mts.map +0 -1
- package/dist/src/analytics/utils.mjs +0 -35
- package/dist/src/analytics/utils.mjs.map +0 -1
- package/dist/src/call-step-file.mjs +0 -213
- package/dist/src/call-step-file.mjs.map +0 -1
- package/dist/src/config.d.mts +0 -7
- package/dist/src/config.d.mts.map +0 -1
- package/dist/src/config.mjs +0 -6
- package/dist/src/config.mjs.map +0 -1
- package/dist/src/cron-handler.d.mts +0 -18
- package/dist/src/cron-handler.d.mts.map +0 -1
- package/dist/src/cron-handler.mjs +0 -103
- package/dist/src/cron-handler.mjs.map +0 -1
- package/dist/src/endpoints/analytics-endpoint.mjs +0 -29
- package/dist/src/endpoints/analytics-endpoint.mjs.map +0 -1
- package/dist/src/endpoints/flows-config-endpoint.mjs +0 -38
- package/dist/src/endpoints/flows-config-endpoint.mjs.map +0 -1
- package/dist/src/endpoints/flows-endpoint.mjs +0 -39
- package/dist/src/endpoints/flows-endpoint.mjs.map +0 -1
- package/dist/src/endpoints/step-endpoint.mjs +0 -41
- package/dist/src/endpoints/step-endpoint.mjs.map +0 -1
- package/dist/src/generate-trace-id.mjs +0 -13
- package/dist/src/generate-trace-id.mjs.map +0 -1
- package/dist/src/get-step-config.d.mts +0 -9
- package/dist/src/get-step-config.d.mts.map +0 -1
- package/dist/src/get-step-config.mjs +0 -63
- package/dist/src/get-step-config.mjs.map +0 -1
- package/dist/src/get-step-language.mjs +0 -14
- package/dist/src/get-step-language.mjs.map +0 -1
- package/dist/src/guards.d.mts +0 -10
- package/dist/src/guards.d.mts.map +0 -1
- package/dist/src/guards.mjs +0 -9
- package/dist/src/guards.mjs.map +0 -1
- package/dist/src/helper/flows-helper.mjs +0 -126
- package/dist/src/helper/flows-helper.mjs.map +0 -1
- package/dist/src/infrastructure-validator/defaults.mjs +0 -17
- package/dist/src/infrastructure-validator/defaults.mjs.map +0 -1
- package/dist/src/infrastructure-validator/index.d.mts +0 -3
- package/dist/src/infrastructure-validator/index.mjs +0 -4
- package/dist/src/infrastructure-validator/schemas.d.mts +0 -1
- package/dist/src/infrastructure-validator/schemas.mjs +0 -77
- package/dist/src/infrastructure-validator/schemas.mjs.map +0 -1
- package/dist/src/infrastructure-validator/types.d.mts +0 -14
- package/dist/src/infrastructure-validator/types.d.mts.map +0 -1
- package/dist/src/infrastructure-validator/validations.d.mts +0 -7
- package/dist/src/infrastructure-validator/validations.d.mts.map +0 -1
- package/dist/src/infrastructure-validator/validations.mjs +0 -29
- package/dist/src/infrastructure-validator/validations.mjs.map +0 -1
- package/dist/src/language-runner.mjs +0 -53
- package/dist/src/language-runner.mjs.map +0 -1
- package/dist/src/locked-data.d.mts +0 -81
- package/dist/src/locked-data.d.mts.map +0 -1
- package/dist/src/locked-data.mjs +0 -223
- package/dist/src/locked-data.mjs.map +0 -1
- package/dist/src/logger-factory.d.mts +0 -16
- package/dist/src/logger-factory.d.mts.map +0 -1
- package/dist/src/logger-factory.mjs +0 -33
- package/dist/src/logger-factory.mjs.map +0 -1
- package/dist/src/logger.d.mts +0 -28
- package/dist/src/logger.d.mts.map +0 -1
- package/dist/src/logger.mjs +0 -64
- package/dist/src/logger.mjs.map +0 -1
- package/dist/src/mermaid-generator.d.mts +0 -9
- package/dist/src/mermaid-generator.d.mts.map +0 -1
- package/dist/src/mermaid-generator.mjs +0 -126
- package/dist/src/mermaid-generator.mjs.map +0 -1
- package/dist/src/motia.d.mts +0 -36
- package/dist/src/motia.d.mts.map +0 -1
- package/dist/src/motia.mjs +0 -6
- package/dist/src/motia.mjs.map +0 -1
- package/dist/src/node/can-access.d.mts +0 -1
- package/dist/src/node/can-access.mjs +0 -36
- package/dist/src/node/can-access.mjs.map +0 -1
- package/dist/src/node/get-config.d.mts +0 -1
- package/dist/src/node/get-config.mjs +0 -49
- package/dist/src/node/get-config.mjs.map +0 -1
- package/dist/src/node/logger.mjs +0 -47
- package/dist/src/node/logger.mjs.map +0 -1
- package/dist/src/node/middleware-compose.mjs +0 -10
- package/dist/src/node/middleware-compose.mjs.map +0 -1
- package/dist/src/node/node-runner.d.mts +0 -1
- package/dist/src/node/node-runner.mjs +0 -94
- package/dist/src/node/node-runner.mjs.map +0 -1
- package/dist/src/node/rpc-state-manager.mjs +0 -35
- package/dist/src/node/rpc-state-manager.mjs.map +0 -1
- package/dist/src/node/rpc.mjs +0 -55
- package/dist/src/node/rpc.mjs.map +0 -1
- package/dist/src/observability/create-trace.mjs +0 -26
- package/dist/src/observability/create-trace.mjs.map +0 -1
- package/dist/src/observability/index.d.mts +0 -7
- package/dist/src/observability/index.d.mts.map +0 -1
- package/dist/src/observability/no-tracer.d.mts +0 -15
- package/dist/src/observability/no-tracer.d.mts.map +0 -1
- package/dist/src/observability/no-tracer.mjs +0 -15
- package/dist/src/observability/no-tracer.mjs.map +0 -1
- package/dist/src/observability/redis-trace-stream-adapter.mjs +0 -76
- package/dist/src/observability/redis-trace-stream-adapter.mjs.map +0 -1
- package/dist/src/observability/stream-tracer.mjs +0 -87
- package/dist/src/observability/stream-tracer.mjs.map +0 -1
- package/dist/src/observability/trace-manager.mjs +0 -24
- package/dist/src/observability/trace-manager.mjs.map +0 -1
- package/dist/src/observability/tracer.mjs +0 -87
- package/dist/src/observability/tracer.mjs.map +0 -1
- package/dist/src/observability/types.d.mts +0 -14
- package/dist/src/observability/types.d.mts.map +0 -1
- package/dist/src/pretty-print.mjs +0 -50
- package/dist/src/pretty-print.mjs.map +0 -1
- package/dist/src/printer.d.mts +0 -65
- package/dist/src/printer.d.mts.map +0 -1
- package/dist/src/printer.mjs +0 -147
- package/dist/src/printer.mjs.map +0 -1
- package/dist/src/process-communication/communication-config.mjs +0 -26
- package/dist/src/process-communication/communication-config.mjs.map +0 -1
- package/dist/src/process-communication/process-manager.mjs +0 -67
- package/dist/src/process-communication/process-manager.mjs.map +0 -1
- package/dist/src/queue-manager.d.mts +0 -37
- package/dist/src/queue-manager.d.mts.map +0 -1
- package/dist/src/queue-manager.mjs +0 -209
- package/dist/src/queue-manager.mjs.map +0 -1
- package/dist/src/run-stream-can-access.mjs +0 -59
- package/dist/src/run-stream-can-access.mjs.map +0 -1
- package/dist/src/schema-utils.mjs +0 -30
- package/dist/src/schema-utils.mjs.map +0 -1
- package/dist/src/server.d.mts +0 -40
- package/dist/src/server.d.mts.map +0 -1
- package/dist/src/server.mjs +0 -332
- package/dist/src/server.mjs.map +0 -1
- package/dist/src/socket-server/helpers.mjs +0 -35
- package/dist/src/socket-server/helpers.mjs.map +0 -1
- package/dist/src/socket-server.mjs +0 -127
- package/dist/src/socket-server.mjs.map +0 -1
- package/dist/src/state/create-state-adapter.d.mts +0 -11
- package/dist/src/state/create-state-adapter.d.mts.map +0 -1
- package/dist/src/state/create-state-adapter.mjs +0 -11
- package/dist/src/state/create-state-adapter.mjs.map +0 -1
- package/dist/src/step-handler-rpc-processor.mjs +0 -56
- package/dist/src/step-handler-rpc-processor.mjs.map +0 -1
- package/dist/src/step-handler-rpc-stdin-processor.mjs +0 -71
- package/dist/src/step-handler-rpc-stdin-processor.mjs.map +0 -1
- package/dist/src/step-handlers.d.mts +0 -13
- package/dist/src/step-handlers.d.mts.map +0 -1
- package/dist/src/step-handlers.mjs +0 -93
- package/dist/src/step-handlers.mjs.map +0 -1
- package/dist/src/step-validator.d.mts +0 -15
- package/dist/src/step-validator.d.mts.map +0 -1
- package/dist/src/step-validator.mjs +0 -118
- package/dist/src/step-validator.mjs.map +0 -1
- package/dist/src/steps/emit.step.mjs +0 -20
- package/dist/src/steps/emit.step.mjs.map +0 -1
- package/dist/src/steps/index.mjs +0 -14
- package/dist/src/steps/index.mjs.map +0 -1
- package/dist/src/streams/flows-config-stream.mjs +0 -46
- package/dist/src/streams/flows-config-stream.mjs.map +0 -1
- package/dist/src/streams/flows-stream.mjs +0 -33
- package/dist/src/streams/flows-stream.mjs.map +0 -1
- package/dist/src/streams/redis-logs-stream.d.mts +0 -3
- package/dist/src/streams/redis-logs-stream.mjs +0 -97
- package/dist/src/streams/redis-logs-stream.mjs.map +0 -1
- package/dist/src/streams/stream-factory.d.mts +0 -7
- package/dist/src/streams/stream-factory.d.mts.map +0 -1
- package/dist/src/types/app-config-types.d.mts +0 -48
- package/dist/src/types/app-config-types.d.mts.map +0 -1
- package/dist/src/types/generate-type-from-schema.mjs +0 -30
- package/dist/src/types/generate-type-from-schema.mjs.map +0 -1
- package/dist/src/types/generate-types-from-response.mjs +0 -12
- package/dist/src/types/generate-types-from-response.mjs.map +0 -1
- package/dist/src/types/generate-types.mjs +0 -101
- package/dist/src/types/generate-types.mjs.map +0 -1
- package/dist/src/types/merge-schemas.mjs +0 -102
- package/dist/src/types/merge-schemas.mjs.map +0 -1
- package/dist/src/types/schema.types.d.mts +0 -13
- package/dist/src/types/schema.types.d.mts.map +0 -1
- package/dist/src/types/schema.types.mjs +0 -14
- package/dist/src/types/schema.types.mjs.map +0 -1
- package/dist/src/types-stream.d.mts +0 -46
- package/dist/src/types-stream.d.mts.map +0 -1
- package/dist/src/types.d.mts +0 -188
- package/dist/src/types.d.mts.map +0 -1
- package/dist/src/utils.mjs +0 -13
- package/dist/src/utils.mjs.map +0 -1
- package/dist/src/validate-event-input.mjs +0 -76
- package/dist/src/validate-event-input.mjs.map +0 -1
- package/jest.config.cjs +0 -20
- package/tsdown.config.ts +0 -54
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createMermaidGenerator = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const guards_1 = require("./guards");
|
|
10
|
+
// Pure function to ensure diagrams directory exists
|
|
11
|
+
const ensureDiagramsDirectory = (diagramsDir) => {
|
|
12
|
+
if (!fs_1.default.existsSync(diagramsDir)) {
|
|
13
|
+
fs_1.default.mkdirSync(diagramsDir, { recursive: true });
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
// Pure function to get node ID
|
|
17
|
+
const getNodeId = (step, baseDir) => {
|
|
18
|
+
// Get relative path from the base directory
|
|
19
|
+
const relativePath = path_1.default.relative(baseDir, step.filePath);
|
|
20
|
+
// Remove common file extensions
|
|
21
|
+
const pathWithoutExtension = relativePath.replace(/\.(ts|js|tsx|jsx)$/, '');
|
|
22
|
+
// Replace slashes with underscores and dots with underscores
|
|
23
|
+
// Only keep alphanumeric characters and underscores
|
|
24
|
+
return pathWithoutExtension.replace(/[^a-zA-Z0-9]/g, '_');
|
|
25
|
+
};
|
|
26
|
+
// Pure function to get node label
|
|
27
|
+
const getNodeLabel = (step) => {
|
|
28
|
+
// Get display name for node
|
|
29
|
+
const displayName = step.config.name || path_1.default.basename(step.filePath, path_1.default.extname(step.filePath));
|
|
30
|
+
// Add node type prefix to help distinguish types
|
|
31
|
+
let prefix = '';
|
|
32
|
+
if ((0, guards_1.isApiStep)(step))
|
|
33
|
+
prefix = '🌐 ';
|
|
34
|
+
else if ((0, guards_1.isEventStep)(step))
|
|
35
|
+
prefix = '⚡ ';
|
|
36
|
+
else if ((0, guards_1.isCronStep)(step))
|
|
37
|
+
prefix = '⏰ ';
|
|
38
|
+
else if ((0, guards_1.isNoopStep)(step))
|
|
39
|
+
prefix = '⚙️ ';
|
|
40
|
+
// Create a node label with the step name
|
|
41
|
+
return `["${prefix}${displayName}"]`;
|
|
42
|
+
};
|
|
43
|
+
// Pure function to get node style
|
|
44
|
+
const getNodeStyle = (step) => {
|
|
45
|
+
// Apply style class based on step type
|
|
46
|
+
if ((0, guards_1.isApiStep)(step))
|
|
47
|
+
return ':::apiStyle';
|
|
48
|
+
if ((0, guards_1.isEventStep)(step))
|
|
49
|
+
return ':::eventStyle';
|
|
50
|
+
if ((0, guards_1.isCronStep)(step))
|
|
51
|
+
return ':::cronStyle';
|
|
52
|
+
if ((0, guards_1.isNoopStep)(step))
|
|
53
|
+
return ':::noopStyle';
|
|
54
|
+
return '';
|
|
55
|
+
};
|
|
56
|
+
// Pure function to generate connections
|
|
57
|
+
const generateConnections = (emits, sourceStep, steps, sourceId, baseDir) => {
|
|
58
|
+
const connections = [];
|
|
59
|
+
if (!emits || !Array.isArray(emits) || emits.length === 0) {
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
// Helper function to check if a step subscribes to a topic
|
|
63
|
+
const stepSubscribesToTopic = (step, topic) => {
|
|
64
|
+
// Event steps use regular subscribes
|
|
65
|
+
if ((0, guards_1.isEventStep)(step) &&
|
|
66
|
+
step.config.subscribes &&
|
|
67
|
+
Array.isArray(step.config.subscribes) &&
|
|
68
|
+
step.config.subscribes.includes(topic)) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
// Noop and API steps use virtualSubscribes
|
|
72
|
+
if (((0, guards_1.isNoopStep)(step) || (0, guards_1.isApiStep)(step)) &&
|
|
73
|
+
step.config.virtualSubscribes &&
|
|
74
|
+
Array.isArray(step.config.virtualSubscribes) &&
|
|
75
|
+
step.config.virtualSubscribes.includes(topic)) {
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
return false;
|
|
79
|
+
};
|
|
80
|
+
emits.forEach((emit) => {
|
|
81
|
+
const topic = typeof emit === 'string' ? emit : emit.topic;
|
|
82
|
+
const label = typeof emit === 'string' ? topic : emit.label || topic;
|
|
83
|
+
steps.forEach((targetStep) => {
|
|
84
|
+
if (stepSubscribesToTopic(targetStep, topic)) {
|
|
85
|
+
const targetId = getNodeId(targetStep, baseDir);
|
|
86
|
+
connections.push(` ${sourceId} -->|${label}| ${targetId}`);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
return connections.join('\n');
|
|
91
|
+
};
|
|
92
|
+
// Pure function to generate flow diagram
|
|
93
|
+
const generateFlowDiagram = (flowName, steps, baseDir) => {
|
|
94
|
+
// Start mermaid flowchart with top-down direction
|
|
95
|
+
let diagram = `flowchart TD\n`;
|
|
96
|
+
// Add class definitions for styling with explicit text color
|
|
97
|
+
const classDefinitions = [
|
|
98
|
+
` classDef apiStyle fill:#f96,stroke:#333,stroke-width:2px,color:#fff`,
|
|
99
|
+
` classDef eventStyle fill:#69f,stroke:#333,stroke-width:2px,color:#fff`,
|
|
100
|
+
` classDef cronStyle fill:#9c6,stroke:#333,stroke-width:2px,color:#fff`,
|
|
101
|
+
` classDef noopStyle fill:#3f3a50,stroke:#333,stroke-width:2px,color:#fff`,
|
|
102
|
+
];
|
|
103
|
+
diagram += classDefinitions.join('\n') + '\n';
|
|
104
|
+
// Check if we have any steps
|
|
105
|
+
if (!steps || steps.length === 0) {
|
|
106
|
+
return diagram + ' empty[No steps in this flow]';
|
|
107
|
+
}
|
|
108
|
+
// Create node definitions with proper format
|
|
109
|
+
steps.forEach((step) => {
|
|
110
|
+
const nodeId = getNodeId(step, baseDir);
|
|
111
|
+
const nodeLabel = getNodeLabel(step);
|
|
112
|
+
const nodeStyle = getNodeStyle(step);
|
|
113
|
+
diagram += ` ${nodeId}${nodeLabel}${nodeStyle}\n`;
|
|
114
|
+
});
|
|
115
|
+
// Create connections between nodes
|
|
116
|
+
let connectionsStr = '';
|
|
117
|
+
steps.forEach((sourceStep) => {
|
|
118
|
+
const sourceId = getNodeId(sourceStep, baseDir);
|
|
119
|
+
// Helper function to process emissions if they exist
|
|
120
|
+
function processEmissions(emissionsArray, stepSource, stepsCollection, sourceIdentifier) {
|
|
121
|
+
if (emissionsArray && Array.isArray(emissionsArray)) {
|
|
122
|
+
return generateConnections(emissionsArray, stepSource, stepsCollection, sourceIdentifier, baseDir);
|
|
123
|
+
}
|
|
124
|
+
return '';
|
|
125
|
+
}
|
|
126
|
+
// Semantic variables to clarify which step types support which emission types
|
|
127
|
+
const supportsEmits = (0, guards_1.isApiStep)(sourceStep) || (0, guards_1.isEventStep)(sourceStep) || (0, guards_1.isCronStep)(sourceStep);
|
|
128
|
+
const supportsVirtualEmits = supportsEmits || (0, guards_1.isNoopStep)(sourceStep);
|
|
129
|
+
// Process regular emissions if supported
|
|
130
|
+
if (supportsEmits) {
|
|
131
|
+
const emitConnections = processEmissions(sourceStep.config.emits, sourceStep, steps, sourceId);
|
|
132
|
+
if (emitConnections) {
|
|
133
|
+
connectionsStr += emitConnections + '\n';
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Process virtual emissions if supported
|
|
137
|
+
if (supportsVirtualEmits) {
|
|
138
|
+
const virtualEmitConnections = processEmissions(sourceStep.config.virtualEmits, sourceStep, steps, sourceId);
|
|
139
|
+
if (virtualEmitConnections) {
|
|
140
|
+
connectionsStr += virtualEmitConnections + '\n';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
// Add connections to the diagram
|
|
145
|
+
diagram += connectionsStr;
|
|
146
|
+
return diagram;
|
|
147
|
+
};
|
|
148
|
+
// Function to save a diagram to a file
|
|
149
|
+
const saveDiagram = (diagramsDir, flowName, diagram) => {
|
|
150
|
+
const filePath = path_1.default.join(diagramsDir, `${flowName}.mmd`);
|
|
151
|
+
fs_1.default.writeFileSync(filePath, diagram);
|
|
152
|
+
};
|
|
153
|
+
// Function to remove a diagram file
|
|
154
|
+
const removeDiagram = (diagramsDir, flowName) => {
|
|
155
|
+
const filePath = path_1.default.join(diagramsDir, `${flowName}.mmd`);
|
|
156
|
+
if (fs_1.default.existsSync(filePath)) {
|
|
157
|
+
fs_1.default.unlinkSync(filePath);
|
|
158
|
+
}
|
|
159
|
+
};
|
|
160
|
+
// Function to generate and save a diagram
|
|
161
|
+
const generateAndSaveDiagram = (diagramsDir, flowName, flow, baseDir) => {
|
|
162
|
+
const diagram = generateFlowDiagram(flowName, flow.steps, baseDir);
|
|
163
|
+
saveDiagram(diagramsDir, flowName, diagram);
|
|
164
|
+
};
|
|
165
|
+
// Main exported function that creates the mermaid generator
|
|
166
|
+
const createMermaidGenerator = (baseDir) => {
|
|
167
|
+
const diagramsDir = path_1.default.join(baseDir, '.mermaid');
|
|
168
|
+
ensureDiagramsDirectory(diagramsDir);
|
|
169
|
+
// Event handlers
|
|
170
|
+
const handleFlowCreated = (flowName, flow) => {
|
|
171
|
+
generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir);
|
|
172
|
+
};
|
|
173
|
+
const handleFlowUpdated = (flowName, flow) => {
|
|
174
|
+
generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir);
|
|
175
|
+
};
|
|
176
|
+
const handleFlowRemoved = (flowName) => {
|
|
177
|
+
removeDiagram(diagramsDir, flowName);
|
|
178
|
+
};
|
|
179
|
+
// Initialize function to hook into LockedData events
|
|
180
|
+
const initialize = (lockedData) => {
|
|
181
|
+
// Hook into flow events
|
|
182
|
+
lockedData.on('flow-created', (flowName) => {
|
|
183
|
+
handleFlowCreated(flowName, lockedData.flows[flowName]);
|
|
184
|
+
});
|
|
185
|
+
lockedData.on('flow-updated', (flowName) => {
|
|
186
|
+
handleFlowUpdated(flowName, lockedData.flows[flowName]);
|
|
187
|
+
});
|
|
188
|
+
lockedData.on('flow-removed', (flowName) => {
|
|
189
|
+
handleFlowRemoved(flowName);
|
|
190
|
+
});
|
|
191
|
+
// Generate diagrams for all existing flows
|
|
192
|
+
if (lockedData.flows && typeof lockedData.flows === 'object') {
|
|
193
|
+
Object.entries(lockedData.flows).forEach(([flowName, flow]) => {
|
|
194
|
+
generateAndSaveDiagram(diagramsDir, flowName, flow, baseDir);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
// Return the public API
|
|
199
|
+
return {
|
|
200
|
+
initialize,
|
|
201
|
+
};
|
|
202
|
+
};
|
|
203
|
+
exports.createMermaidGenerator = createMermaidGenerator;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Express } from 'express';
|
|
2
|
+
import type { EventAdapter } from './adapters/interfaces/event-adapter.interface';
|
|
3
|
+
import type { StateAdapter } from './adapters/interfaces/state-adapter.interface';
|
|
4
|
+
import type { LockedData } from './locked-data';
|
|
5
|
+
import type { LoggerFactory } from './logger-factory';
|
|
6
|
+
import type { TracerFactory } from './observability';
|
|
7
|
+
import type { Printer } from './printer';
|
|
8
|
+
import type { ApiResponse, ApiRouteConfig, ApiRouteHandler, InternalStateManager } from './types';
|
|
9
|
+
export type Motia = {
|
|
10
|
+
loggerFactory: LoggerFactory;
|
|
11
|
+
eventAdapter: EventAdapter;
|
|
12
|
+
state: InternalStateManager;
|
|
13
|
+
lockedData: LockedData;
|
|
14
|
+
printer: Printer;
|
|
15
|
+
tracerFactory: TracerFactory;
|
|
16
|
+
app: Express;
|
|
17
|
+
stateAdapter: StateAdapter;
|
|
18
|
+
};
|
|
19
|
+
export type PluginApiConfig = {
|
|
20
|
+
method: ApiRouteConfig['method'];
|
|
21
|
+
path: string;
|
|
22
|
+
};
|
|
23
|
+
export type UnregisterMotiaPluginApi = () => void;
|
|
24
|
+
export type MotiaPluginContext = {
|
|
25
|
+
printer: Printer;
|
|
26
|
+
state: StateAdapter;
|
|
27
|
+
lockedData: LockedData;
|
|
28
|
+
tracerFactory: TracerFactory;
|
|
29
|
+
registerApi: <TRequestBody = unknown, TResponseBody extends ApiResponse<number, unknown> = ApiResponse<number, unknown>, TEmitData = never>(config: PluginApiConfig, handler: ApiRouteHandler<TRequestBody, TResponseBody, TEmitData>) => UnregisterMotiaPluginApi;
|
|
30
|
+
};
|
|
31
|
+
export declare const PLUGIN_FLOW_ID = "_plugin";
|
|
32
|
+
//# sourceMappingURL=motia.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"motia.d.ts","sourceRoot":"","sources":["../../src/motia.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAA;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+CAA+C,CAAA;AACjF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAEjG,MAAM,MAAM,KAAK,GAAG;IAClB,aAAa,EAAE,aAAa,CAAA;IAC5B,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IAChB,aAAa,EAAE,aAAa,CAAA;IAE5B,GAAG,EAAE,OAAO,CAAA;IACZ,YAAY,EAAE,YAAY,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IAChC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAA;AAEjD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,YAAY,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,aAAa,EAAE,aAAa,CAAA;IAC5B,WAAW,EAAE,CACX,YAAY,GAAG,OAAO,EACtB,aAAa,SAAS,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EACjF,SAAS,GAAG,KAAK,EAEjB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,SAAS,CAAC,KAC7D,wBAAwB,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,cAAc,YAAY,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"can-access.d.ts","sourceRoot":"","sources":["../../../src/node/can-access.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
7
|
+
require('dotenv').config();
|
|
8
|
+
require('ts-node').register({
|
|
9
|
+
transpileOnly: true,
|
|
10
|
+
compilerOptions: { module: 'commonjs' },
|
|
11
|
+
});
|
|
12
|
+
function parsePayload(arg) {
|
|
13
|
+
try {
|
|
14
|
+
return JSON.parse(arg);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
throw new Error('Invalid payload for canAccess evaluation');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function runCanAccess(filePath, payload) {
|
|
21
|
+
const module = require(node_path_1.default.resolve(filePath));
|
|
22
|
+
if (!module?.config) {
|
|
23
|
+
throw new Error(`Config not found in module ${filePath}`);
|
|
24
|
+
}
|
|
25
|
+
const canAccess = module.config.canAccess;
|
|
26
|
+
if (typeof canAccess !== 'function') {
|
|
27
|
+
process.send?.(true);
|
|
28
|
+
process.exit(0);
|
|
29
|
+
}
|
|
30
|
+
const result = await canAccess(payload.subscription, payload.authContext);
|
|
31
|
+
process.send?.(Boolean(result));
|
|
32
|
+
process.exit(0);
|
|
33
|
+
}
|
|
34
|
+
const [, , filePath, payloadArg] = process.argv;
|
|
35
|
+
if (!filePath || !payloadArg) {
|
|
36
|
+
console.error('Usage: node can-access.js <file-path> <payload>');
|
|
37
|
+
process.exit(1);
|
|
38
|
+
}
|
|
39
|
+
runCanAccess(filePath, parsePayload(payloadArg))
|
|
40
|
+
.then(() => process.exit(0))
|
|
41
|
+
.catch((error) => {
|
|
42
|
+
console.error('Error evaluating canAccess:', error);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-config.d.ts","sourceRoot":"","sources":["../../../src/node/get-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
7
|
+
const schema_utils_1 = require("../schema-utils");
|
|
8
|
+
require('ts-node').register({
|
|
9
|
+
transpileOnly: true,
|
|
10
|
+
compilerOptions: { module: 'commonjs' },
|
|
11
|
+
});
|
|
12
|
+
async function getConfig(filePath) {
|
|
13
|
+
try {
|
|
14
|
+
const module = require(node_path_1.default.resolve(filePath));
|
|
15
|
+
if (!module.config) {
|
|
16
|
+
throw new Error(`Config not found in module ${filePath}`);
|
|
17
|
+
}
|
|
18
|
+
if (module.config.input) {
|
|
19
|
+
const converted = (0, schema_utils_1.schemaToJsonSchema)(module.config.input);
|
|
20
|
+
if (converted) {
|
|
21
|
+
module.config.input = converted;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (module.config.bodySchema) {
|
|
25
|
+
const converted = (0, schema_utils_1.schemaToJsonSchema)(module.config.bodySchema);
|
|
26
|
+
if (converted) {
|
|
27
|
+
module.config.bodySchema = converted;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (module.config.responseSchema) {
|
|
31
|
+
for (const [status, schema] of Object.entries(module.config.responseSchema)) {
|
|
32
|
+
const converted = (0, schema_utils_1.schemaToJsonSchema)(schema);
|
|
33
|
+
if (converted) {
|
|
34
|
+
module.config.responseSchema[status] = converted;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (module.config.schema) {
|
|
39
|
+
const converted = (0, schema_utils_1.schemaToJsonSchema)(module.config.schema);
|
|
40
|
+
if (converted) {
|
|
41
|
+
module.config.schema = converted;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (typeof module.config.canAccess === 'function') {
|
|
45
|
+
module.config.__motia_hasCanAccess = !!module.config.canAccess;
|
|
46
|
+
delete module.config.canAccess;
|
|
47
|
+
}
|
|
48
|
+
process.send?.(module.config);
|
|
49
|
+
process.exit(0);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error('Error running TypeScript module:', error);
|
|
53
|
+
process.exit(1);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
const [, , filePath] = process.argv;
|
|
57
|
+
if (!filePath) {
|
|
58
|
+
console.error('Usage: node get-config.js <file-path>');
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
getConfig(filePath).catch((err) => {
|
|
62
|
+
console.error('Error:', err);
|
|
63
|
+
process.exit(1);
|
|
64
|
+
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { RpcSender } from './rpc';
|
|
2
|
+
export type LogListener = (level: string, message: string, args?: unknown) => void;
|
|
3
|
+
export declare class Logger {
|
|
4
|
+
private readonly traceId;
|
|
5
|
+
private readonly flows;
|
|
6
|
+
private readonly sender;
|
|
7
|
+
private readonly listeners;
|
|
8
|
+
constructor(traceId: string, flows: string[], sender: RpcSender);
|
|
9
|
+
private _log;
|
|
10
|
+
info(message: string, args?: Record<string, unknown>): void;
|
|
11
|
+
error(message: string, args?: Record<string, unknown>): void;
|
|
12
|
+
debug(message: string, args?: Record<string, unknown>): void;
|
|
13
|
+
warn(message: string, args?: Record<string, unknown>): void;
|
|
14
|
+
addListener(listener: LogListener): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/node/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,MAAM,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;AAElF,qBAAa,MAAM;IAIf,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;gBAG3B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,SAAS;IAGpC,OAAO,CAAC,IAAI;IA0BZ,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI5D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI3D,WAAW,CAAC,QAAQ,EAAE,WAAW;CAGlC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Logger = void 0;
|
|
4
|
+
class Logger {
|
|
5
|
+
constructor(traceId, flows, sender) {
|
|
6
|
+
this.traceId = traceId;
|
|
7
|
+
this.flows = flows;
|
|
8
|
+
this.sender = sender;
|
|
9
|
+
this.listeners = [];
|
|
10
|
+
}
|
|
11
|
+
_log(level, message, args) {
|
|
12
|
+
const argsCopy = args ? { ...args } : {};
|
|
13
|
+
if (argsCopy.error && argsCopy.error instanceof Error) {
|
|
14
|
+
argsCopy.error = {
|
|
15
|
+
...argsCopy.error,
|
|
16
|
+
message: argsCopy.error.message,
|
|
17
|
+
stack: argsCopy.error.stack,
|
|
18
|
+
name: argsCopy.error.name,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const logEntry = {
|
|
22
|
+
...argsCopy,
|
|
23
|
+
level,
|
|
24
|
+
time: Date.now(),
|
|
25
|
+
traceId: this.traceId,
|
|
26
|
+
flows: this.flows,
|
|
27
|
+
msg: message,
|
|
28
|
+
};
|
|
29
|
+
this.sender.sendNoWait('log', logEntry);
|
|
30
|
+
this.listeners.forEach((listener) => listener(level, message, args));
|
|
31
|
+
}
|
|
32
|
+
info(message, args) {
|
|
33
|
+
this._log('info', message, args);
|
|
34
|
+
}
|
|
35
|
+
error(message, args) {
|
|
36
|
+
this._log('error', message, args);
|
|
37
|
+
}
|
|
38
|
+
debug(message, args) {
|
|
39
|
+
this._log('debug', message, args);
|
|
40
|
+
}
|
|
41
|
+
warn(message, args) {
|
|
42
|
+
this._log('warn', message, args);
|
|
43
|
+
}
|
|
44
|
+
addListener(listener) {
|
|
45
|
+
this.listeners.push(listener);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.Logger = Logger;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware-compose.d.ts","sourceRoot":"","sources":["../../../src/node/middleware-compose.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,GAAI,GAAG,aAAa,GAAG,EAAE,MACvC,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,SAAS,MAAM,OAAO,CAAC,GAAG,CAAC,KAAG,OAAO,CAAC,GAAG,CAQ5E,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.composeMiddleware = void 0;
|
|
4
|
+
const composeMiddleware = (...middlewares) => {
|
|
5
|
+
return async (req, ctx, handler) => {
|
|
6
|
+
const composedHandler = middlewares.reduceRight((nextHandler, middleware) => () => middleware(req, ctx, nextHandler), handler);
|
|
7
|
+
return composedHandler();
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
exports.composeMiddleware = composeMiddleware;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node-runner.d.ts","sourceRoot":"","sources":["../../../src/node/node-runner.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const path_1 = __importDefault(require("path"));
|
|
7
|
+
const logger_1 = require("./logger");
|
|
8
|
+
const middleware_compose_1 = require("./middleware-compose");
|
|
9
|
+
const rpc_1 = require("./rpc");
|
|
10
|
+
const rpc_state_manager_1 = require("./rpc-state-manager");
|
|
11
|
+
require('dotenv').config();
|
|
12
|
+
// Add ts-node registration before dynamic imports
|
|
13
|
+
require('ts-node').register({
|
|
14
|
+
transpileOnly: true,
|
|
15
|
+
compilerOptions: { module: 'commonjs' },
|
|
16
|
+
});
|
|
17
|
+
function parseArgs(arg) {
|
|
18
|
+
try {
|
|
19
|
+
return JSON.parse(arg);
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return arg;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function runTypescriptModule(filePath, event) {
|
|
26
|
+
const sender = new rpc_1.RpcSender(process);
|
|
27
|
+
try {
|
|
28
|
+
const module = require(path_1.default.resolve(filePath));
|
|
29
|
+
// Check if the specified function exists in the module
|
|
30
|
+
if (typeof module.handler !== 'function') {
|
|
31
|
+
throw new Error(`Function handler not found in module ${filePath}`);
|
|
32
|
+
}
|
|
33
|
+
const { traceId, flows, contextInFirstArg } = event;
|
|
34
|
+
const logger = new logger_1.Logger(traceId, flows, sender);
|
|
35
|
+
const state = new rpc_state_manager_1.RpcStateManager(sender);
|
|
36
|
+
const emit = async (data) => sender.send('emit', data);
|
|
37
|
+
const streamsConfig = event.streams;
|
|
38
|
+
const streams = (streamsConfig ?? []).reduce((acc, streams) => {
|
|
39
|
+
acc[streams.name] = {
|
|
40
|
+
get: (groupId, id) => sender.send(`streams.${streams.name}.get`, { groupId, id }),
|
|
41
|
+
set: (groupId, id, data) => sender.send(`streams.${streams.name}.set`, { groupId, id, data }),
|
|
42
|
+
delete: (groupId, id) => sender.send(`streams.${streams.name}.delete`, { groupId, id }),
|
|
43
|
+
getGroup: (groupId) => sender.send(`streams.${streams.name}.getGroup`, { groupId }),
|
|
44
|
+
send: (channel, event) => sender.send(`streams.${streams.name}.send`, { channel, event }),
|
|
45
|
+
};
|
|
46
|
+
return acc;
|
|
47
|
+
}, {});
|
|
48
|
+
const context = { traceId, flows, logger, state, emit, streams };
|
|
49
|
+
sender.init();
|
|
50
|
+
const middlewares = Array.isArray(module.config.middleware) ? module.config.middleware : [];
|
|
51
|
+
const composedMiddleware = (0, middleware_compose_1.composeMiddleware)(...middlewares);
|
|
52
|
+
const handlerFn = () => {
|
|
53
|
+
return contextInFirstArg ? module.handler(context) : module.handler(event.data, context);
|
|
54
|
+
};
|
|
55
|
+
const result = await composedMiddleware(event.data, context, handlerFn);
|
|
56
|
+
await sender.send('result', result);
|
|
57
|
+
await sender.close();
|
|
58
|
+
process.exit(0);
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
const stack = err.stack?.split('\n') ?? [];
|
|
62
|
+
if (stack) {
|
|
63
|
+
const index = stack.findIndex((line) => line.includes('src/node/node-runner'));
|
|
64
|
+
stack.splice(index, stack.length - index);
|
|
65
|
+
stack.splice(0, 1); // remove first line which has the error message
|
|
66
|
+
}
|
|
67
|
+
const error = {
|
|
68
|
+
message: err.message || '',
|
|
69
|
+
code: err.code || null,
|
|
70
|
+
stack: stack.join('\n'),
|
|
71
|
+
};
|
|
72
|
+
sender.sendNoWait('close', error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const [, , filePath, arg] = process.argv;
|
|
76
|
+
if (!filePath) {
|
|
77
|
+
console.error('Usage: node nodeRunner.js <file-path> <arg>');
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
runTypescriptModule(filePath, parseArgs(arg)).catch((err) => {
|
|
81
|
+
console.error('Error:', err);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { InternalStateManager } from '../types';
|
|
2
|
+
import type { RpcSender } from './rpc';
|
|
3
|
+
export declare class RpcStateManager implements InternalStateManager {
|
|
4
|
+
private readonly sender;
|
|
5
|
+
constructor(sender: RpcSender);
|
|
6
|
+
get<T>(traceId: string, key: string): Promise<T>;
|
|
7
|
+
set<T>(traceId: string, key: string, value: T): Promise<T>;
|
|
8
|
+
delete<T>(traceId: string, key: string): Promise<T | null>;
|
|
9
|
+
clear(traceId: string): Promise<void>;
|
|
10
|
+
getGroup<T>(groupId: string): Promise<T[]>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=rpc-state-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-state-manager.d.ts","sourceRoot":"","sources":["../../../src/node/rpc-state-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,qBAAa,eAAgB,YAAW,oBAAoB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAExC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAInC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAI7C,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAI1D,KAAK,CAAC,OAAO,EAAE,MAAM;IAIrB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;CAGjD"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RpcStateManager = void 0;
|
|
4
|
+
class RpcStateManager {
|
|
5
|
+
constructor(sender) {
|
|
6
|
+
this.sender = sender;
|
|
7
|
+
}
|
|
8
|
+
async get(traceId, key) {
|
|
9
|
+
return this.sender.send('state.get', { traceId, key });
|
|
10
|
+
}
|
|
11
|
+
async set(traceId, key, value) {
|
|
12
|
+
return this.sender.send('state.set', { traceId, key, value });
|
|
13
|
+
}
|
|
14
|
+
async delete(traceId, key) {
|
|
15
|
+
return this.sender.send('state.delete', { traceId, key });
|
|
16
|
+
}
|
|
17
|
+
async clear(traceId) {
|
|
18
|
+
await this.sender.send('state.clear', { traceId });
|
|
19
|
+
}
|
|
20
|
+
async getGroup(groupId) {
|
|
21
|
+
return this.sender.send('state.getGroup', { groupId });
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.RpcStateManager = RpcStateManager;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare class RpcSender {
|
|
2
|
+
private readonly process;
|
|
3
|
+
private readonly pendingRequests;
|
|
4
|
+
constructor(process: NodeJS.Process);
|
|
5
|
+
close(): Promise<void>;
|
|
6
|
+
send<T>(method: string, args: unknown): Promise<T>;
|
|
7
|
+
sendNoWait(method: string, args: unknown): void;
|
|
8
|
+
init(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=rpc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.d.ts","sourceRoot":"","sources":["../../../src/node/rpc.ts"],"names":[],"mappings":"AAUA,qBAAa,SAAS;IAMR,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG1B;gBAEuB,OAAO,EAAE,MAAM,CAAC,OAAO;IAE9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IASlD,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO;IAIxC,IAAI;CAkBL"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.RpcSender = void 0;
|
|
7
|
+
/// <reference types="node" />
|
|
8
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
9
|
+
class RpcSender {
|
|
10
|
+
constructor(process) {
|
|
11
|
+
this.process = process;
|
|
12
|
+
this.pendingRequests = {};
|
|
13
|
+
}
|
|
14
|
+
async close() {
|
|
15
|
+
const outstandingRequests = Object.values(this.pendingRequests);
|
|
16
|
+
if (outstandingRequests.length > 0) {
|
|
17
|
+
console.error('Process ended while there are some promises outstanding');
|
|
18
|
+
this.process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
send(method, args) {
|
|
22
|
+
return new Promise((resolve, reject) => {
|
|
23
|
+
const id = crypto_1.default.randomUUID();
|
|
24
|
+
this.pendingRequests[id] = { resolve, reject, method, args };
|
|
25
|
+
this.process.send?.({ type: 'rpc_request', id, method, args });
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
sendNoWait(method, args) {
|
|
29
|
+
this.process.send?.({ type: 'rpc_request', method, args });
|
|
30
|
+
}
|
|
31
|
+
init() {
|
|
32
|
+
this.process.on('message', (msg) => {
|
|
33
|
+
if (msg.type === 'rpc_response') {
|
|
34
|
+
const { id, result, error } = msg;
|
|
35
|
+
const callbacks = this.pendingRequests[id];
|
|
36
|
+
if (!callbacks) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
else if (error) {
|
|
40
|
+
callbacks.reject(error);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
callbacks.resolve(result);
|
|
44
|
+
}
|
|
45
|
+
delete this.pendingRequests[id];
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.RpcSender = RpcSender;
|