@motiadev/core 0.13.0-beta.162-846200 → 0.13.0-beta.162-415452
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 +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 +321 -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 +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,61 @@
|
|
|
1
|
+
import type { ValidationError } from './step-validator';
|
|
2
|
+
import type { Step } from './types';
|
|
3
|
+
import type { Stream } from './types-stream';
|
|
4
|
+
export declare class Printer {
|
|
5
|
+
private readonly baseDir;
|
|
6
|
+
constructor(baseDir: string);
|
|
7
|
+
stepTag: string;
|
|
8
|
+
flowTag: string;
|
|
9
|
+
registered: string;
|
|
10
|
+
building: string;
|
|
11
|
+
built: string;
|
|
12
|
+
updated: string;
|
|
13
|
+
removed: string;
|
|
14
|
+
printEventInputValidationError(emit: {
|
|
15
|
+
topic: string;
|
|
16
|
+
}, details: {
|
|
17
|
+
missingFields?: string[];
|
|
18
|
+
extraFields?: string[];
|
|
19
|
+
typeMismatches?: string[];
|
|
20
|
+
}): void;
|
|
21
|
+
printInvalidEmit(step: Step, emit: string): void;
|
|
22
|
+
printStepCreated(step: Step): void;
|
|
23
|
+
printStepUpdated(step: Step): void;
|
|
24
|
+
printStepRemoved(step: Step): void;
|
|
25
|
+
printFlowCreated(flowName: string): void;
|
|
26
|
+
printFlowUpdated(flowName: string): void;
|
|
27
|
+
printFlowRemoved(flowName: string): void;
|
|
28
|
+
printStreamCreated(stream: Stream): void;
|
|
29
|
+
printStreamUpdated(stream: Stream): void;
|
|
30
|
+
printStreamRemoved(stream: Stream): void;
|
|
31
|
+
printInvalidEmitConfiguration(step: Step, emit: string): void;
|
|
32
|
+
printInvalidSchema(topic: string, step: Step[]): void;
|
|
33
|
+
printValidationError(stepPath: string, validationError: ValidationError): void;
|
|
34
|
+
getRelativePath(filePath: string): string;
|
|
35
|
+
getStepType(step: Step): string;
|
|
36
|
+
getStepPath(step: Step): string;
|
|
37
|
+
getStreamPath(stream: Stream): string;
|
|
38
|
+
printPluginLog(message: string): void;
|
|
39
|
+
printPluginWarn(message: string): void;
|
|
40
|
+
printPluginError(message: string, ...args: unknown[]): void;
|
|
41
|
+
}
|
|
42
|
+
export declare class NoPrinter extends Printer {
|
|
43
|
+
constructor();
|
|
44
|
+
printEventInputValidationError(): void;
|
|
45
|
+
printInvalidEmit(): void;
|
|
46
|
+
printStepCreated(): void;
|
|
47
|
+
printStepUpdated(): void;
|
|
48
|
+
printStepRemoved(): void;
|
|
49
|
+
printFlowCreated(): void;
|
|
50
|
+
printFlowUpdated(): void;
|
|
51
|
+
printFlowRemoved(): void;
|
|
52
|
+
printStepType(): void;
|
|
53
|
+
printStepPath(): void;
|
|
54
|
+
printStreamCreated(): void;
|
|
55
|
+
printStreamUpdated(): void;
|
|
56
|
+
printStreamRemoved(): void;
|
|
57
|
+
printPluginLog(): void;
|
|
58
|
+
printPluginWarn(): void;
|
|
59
|
+
printPluginError(): void;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=printer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printer.d.ts","sourceRoot":"","sources":["../../src/printer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AACvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAiB5C,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,MAAM;IAE5C,OAAO,SAAU;IACjB,OAAO,SAAU;IACjB,UAAU,SAAa;IACvB,QAAQ,SAAW;IACnB,KAAK,SAAQ;IACb,OAAO,SAAU;IACjB,OAAO,SAAU;IAEjB,8BAA8B,CAC5B,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IA6B1F,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;IAMzC,gBAAgB,CAAC,IAAI,EAAE,IAAI;IAI3B,gBAAgB,CAAC,IAAI,EAAE,IAAI;IAI3B,gBAAgB,CAAC,IAAI,EAAE,IAAI;IAI3B,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAIjC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAIjC,gBAAgB,CAAC,QAAQ,EAAE,MAAM;IAIjC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,6BAA6B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM;IAMtD,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;IAO9C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAcvE,eAAe,CAAC,QAAQ,EAAE,MAAM;IAIhC,WAAW,CAAC,IAAI,EAAE,IAAI;IAStB,WAAW,CAAC,IAAI,EAAE,IAAI;IAKtB,aAAa,CAAC,MAAM,EAAE,MAAM;IAK5B,cAAc,CAAC,OAAO,EAAE,MAAM;IAK9B,eAAe,CAAC,OAAO,EAAE,MAAM;IAK/B,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE;CAIrD;AAED,qBAAa,SAAU,SAAQ,OAAO;;IAKpC,8BAA8B;IAE9B,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,aAAa;IACb,aAAa;IAEb,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAElB,cAAc;IACd,eAAe;IACf,gBAAgB;CACjB"}
|
|
@@ -0,0 +1,164 @@
|
|
|
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.NoPrinter = exports.Printer = void 0;
|
|
7
|
+
const colors_1 = __importDefault(require("colors"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const guards_1 = require("./guards");
|
|
10
|
+
const stepTag = colors_1.default.bold(colors_1.default.magenta('Step'));
|
|
11
|
+
const flowTag = colors_1.default.bold(colors_1.default.blue('Flow'));
|
|
12
|
+
const streamTag = colors_1.default.bold(colors_1.default.green('Stream'));
|
|
13
|
+
const registered = colors_1.default.green('➜ [REGISTERED]');
|
|
14
|
+
const building = colors_1.default.yellow('⚡ [BUILDING]');
|
|
15
|
+
const built = colors_1.default.green('✓ [BUILT]');
|
|
16
|
+
const updated = colors_1.default.yellow('➜ [UPDATED]');
|
|
17
|
+
const removed = colors_1.default.red('➜ [REMOVED]');
|
|
18
|
+
const invalidEmit = colors_1.default.red('➜ [INVALID EMIT]');
|
|
19
|
+
const error = colors_1.default.red('[ERROR]');
|
|
20
|
+
const warning = colors_1.default.yellow('[WARNING]');
|
|
21
|
+
const warnIcon = colors_1.default.yellow('⚠');
|
|
22
|
+
const infoIcon = colors_1.default.blue('ℹ');
|
|
23
|
+
const errorIcon = colors_1.default.red('✖');
|
|
24
|
+
class Printer {
|
|
25
|
+
constructor(baseDir) {
|
|
26
|
+
this.baseDir = baseDir;
|
|
27
|
+
this.stepTag = stepTag;
|
|
28
|
+
this.flowTag = flowTag;
|
|
29
|
+
this.registered = registered;
|
|
30
|
+
this.building = building;
|
|
31
|
+
this.built = built;
|
|
32
|
+
this.updated = updated;
|
|
33
|
+
this.removed = removed;
|
|
34
|
+
}
|
|
35
|
+
printEventInputValidationError(emit, details) {
|
|
36
|
+
const emitPath = colors_1.default.bold(colors_1.default.cyan(`Emit ${emit.topic}`));
|
|
37
|
+
console.log(`${warnIcon} ${warning} ${emitPath} validation issues:`);
|
|
38
|
+
const hasAny = details.missingFields?.length || details.extraFields?.length || details.typeMismatches?.length;
|
|
39
|
+
if (!hasAny) {
|
|
40
|
+
console.log(`${colors_1.default.yellow('│')} No issues found.`);
|
|
41
|
+
console.log(`${colors_1.default.yellow('└─')} Validation passed.`);
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
if (details.missingFields?.length) {
|
|
45
|
+
console.log(`${colors_1.default.yellow('│')} ${colors_1.default.yellow(`⚠ Missing fields: ${details.missingFields.join(', ')}`)}`);
|
|
46
|
+
}
|
|
47
|
+
if (details.extraFields?.length) {
|
|
48
|
+
console.log(`${colors_1.default.yellow('│')} ${colors_1.default.yellow(`⚠ Extra fields: ${details.extraFields.join(', ')}`)}`);
|
|
49
|
+
}
|
|
50
|
+
if (details.typeMismatches?.length) {
|
|
51
|
+
console.log(`${colors_1.default.yellow('│')} ${colors_1.default.yellow(`⚠ Type mismatches: ${details.typeMismatches.join(', ')}`)}`);
|
|
52
|
+
}
|
|
53
|
+
console.log(`${colors_1.default.yellow('└─')} ${colors_1.default.yellow('Payload does not match schema.')}`);
|
|
54
|
+
}
|
|
55
|
+
printInvalidEmit(step, emit) {
|
|
56
|
+
console.log(`${invalidEmit} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} tried to emit an event not defined in the step config: ${colors_1.default.yellow(emit)}`);
|
|
57
|
+
}
|
|
58
|
+
printStepCreated(step) {
|
|
59
|
+
console.log(`${registered} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} registered`);
|
|
60
|
+
}
|
|
61
|
+
printStepUpdated(step) {
|
|
62
|
+
console.log(`${updated} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} updated`);
|
|
63
|
+
}
|
|
64
|
+
printStepRemoved(step) {
|
|
65
|
+
console.log(`${removed} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} removed`);
|
|
66
|
+
}
|
|
67
|
+
printFlowCreated(flowName) {
|
|
68
|
+
console.log(`${registered} ${flowTag} ${colors_1.default.bold(colors_1.default.cyan(flowName))} registered`);
|
|
69
|
+
}
|
|
70
|
+
printFlowUpdated(flowName) {
|
|
71
|
+
console.log(`${updated} ${flowTag} ${colors_1.default.bold(colors_1.default.cyan(flowName))} updated`);
|
|
72
|
+
}
|
|
73
|
+
printFlowRemoved(flowName) {
|
|
74
|
+
console.log(`${removed} ${flowTag} ${colors_1.default.bold(colors_1.default.cyan(flowName))} removed`);
|
|
75
|
+
}
|
|
76
|
+
printStreamCreated(stream) {
|
|
77
|
+
console.log(`${registered} ${streamTag} ${this.getStreamPath(stream)} registered`);
|
|
78
|
+
}
|
|
79
|
+
printStreamUpdated(stream) {
|
|
80
|
+
console.log(`${updated} ${streamTag} ${this.getStreamPath(stream)} updated`);
|
|
81
|
+
}
|
|
82
|
+
printStreamRemoved(stream) {
|
|
83
|
+
console.log(`${removed} ${streamTag} ${this.getStreamPath(stream)} removed`);
|
|
84
|
+
}
|
|
85
|
+
printInvalidEmitConfiguration(step, emit) {
|
|
86
|
+
console.log(`${warnIcon} ${warning} ${stepTag} ${this.getStepType(step)} ${this.getStepPath(step)} emits to ${colors_1.default.yellow(emit)}, but there is no subscriber defined`);
|
|
87
|
+
}
|
|
88
|
+
printInvalidSchema(topic, step) {
|
|
89
|
+
console.log(`${error} Topic ${colors_1.default.bold(colors_1.default.blue(topic))} has incompatible schemas in the following steps:`);
|
|
90
|
+
step.forEach((step) => {
|
|
91
|
+
console.log(`${colors_1.default.red(' ✖')} ${this.getStepPath(step)}`);
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
printValidationError(stepPath, validationError) {
|
|
95
|
+
const relativePath = this.getRelativePath(stepPath);
|
|
96
|
+
console.log(`${error} ${colors_1.default.bold(colors_1.default.cyan(relativePath))}`);
|
|
97
|
+
validationError.errors?.forEach((error) => {
|
|
98
|
+
if (error.path) {
|
|
99
|
+
console.log(`${colors_1.default.red('│')} ${colors_1.default.yellow(`✖ ${error.path}`)}: ${error.message}`);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
console.log(`${colors_1.default.red('│')} ${colors_1.default.yellow('✖')} ${error.message}`);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
console.log(`${colors_1.default.red('└─')} ${colors_1.default.red(validationError.error)} `);
|
|
106
|
+
}
|
|
107
|
+
getRelativePath(filePath) {
|
|
108
|
+
return path_1.default.relative(this.baseDir, filePath);
|
|
109
|
+
}
|
|
110
|
+
getStepType(step) {
|
|
111
|
+
if ((0, guards_1.isApiStep)(step))
|
|
112
|
+
return colors_1.default.gray('(API)');
|
|
113
|
+
if ((0, guards_1.isEventStep)(step))
|
|
114
|
+
return colors_1.default.gray('(Event)');
|
|
115
|
+
if ((0, guards_1.isCronStep)(step))
|
|
116
|
+
return colors_1.default.gray('(Cron)');
|
|
117
|
+
if ((0, guards_1.isNoopStep)(step))
|
|
118
|
+
return colors_1.default.gray('(Noop)');
|
|
119
|
+
return colors_1.default.gray('(Unknown)');
|
|
120
|
+
}
|
|
121
|
+
getStepPath(step) {
|
|
122
|
+
const stepPath = this.getRelativePath(step.filePath);
|
|
123
|
+
return colors_1.default.bold(colors_1.default.cyan(stepPath));
|
|
124
|
+
}
|
|
125
|
+
getStreamPath(stream) {
|
|
126
|
+
const streamPath = this.getRelativePath(stream.filePath);
|
|
127
|
+
return colors_1.default.bold(colors_1.default.magenta(streamPath));
|
|
128
|
+
}
|
|
129
|
+
printPluginLog(message) {
|
|
130
|
+
const pluginTag = colors_1.default.bold(colors_1.default.cyan('[motia-plugins]'));
|
|
131
|
+
console.log(`${infoIcon} ${pluginTag} ${message}`);
|
|
132
|
+
}
|
|
133
|
+
printPluginWarn(message) {
|
|
134
|
+
const pluginTag = colors_1.default.bold(colors_1.default.cyan('[motia-plugins]'));
|
|
135
|
+
console.warn(`${warnIcon} ${pluginTag} ${colors_1.default.yellow(message)}`);
|
|
136
|
+
}
|
|
137
|
+
printPluginError(message, ...args) {
|
|
138
|
+
const pluginTag = colors_1.default.bold(colors_1.default.cyan('[motia-plugins]'));
|
|
139
|
+
console.error(`${errorIcon} ${pluginTag} ${colors_1.default.red(message)}`, ...args);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
exports.Printer = Printer;
|
|
143
|
+
class NoPrinter extends Printer {
|
|
144
|
+
constructor() {
|
|
145
|
+
super('');
|
|
146
|
+
}
|
|
147
|
+
printEventInputValidationError() { }
|
|
148
|
+
printInvalidEmit() { }
|
|
149
|
+
printStepCreated() { }
|
|
150
|
+
printStepUpdated() { }
|
|
151
|
+
printStepRemoved() { }
|
|
152
|
+
printFlowCreated() { }
|
|
153
|
+
printFlowUpdated() { }
|
|
154
|
+
printFlowRemoved() { }
|
|
155
|
+
printStepType() { }
|
|
156
|
+
printStepPath() { }
|
|
157
|
+
printStreamCreated() { }
|
|
158
|
+
printStreamUpdated() { }
|
|
159
|
+
printStreamRemoved() { }
|
|
160
|
+
printPluginLog() { }
|
|
161
|
+
printPluginWarn() { }
|
|
162
|
+
printPluginError() { }
|
|
163
|
+
}
|
|
164
|
+
exports.NoPrinter = NoPrinter;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SpawnOptions } from 'child_process';
|
|
2
|
+
export type CommunicationType = 'rpc' | 'ipc';
|
|
3
|
+
export interface CommunicationConfig {
|
|
4
|
+
type: CommunicationType;
|
|
5
|
+
spawnOptions: SpawnOptions;
|
|
6
|
+
}
|
|
7
|
+
export declare function createCommunicationConfig(command: string, projectRoot?: string): CommunicationConfig;
|
|
8
|
+
//# sourceMappingURL=communication-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication-config.d.ts","sourceRoot":"","sources":["../../../src/process-communication/communication-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,CAAA;AAE7C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,iBAAiB,CAAA;IACvB,YAAY,EAAE,YAAY,CAAA;CAC3B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,mBAAmB,CAkBpG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createCommunicationConfig = createCommunicationConfig;
|
|
4
|
+
function createCommunicationConfig(command, projectRoot) {
|
|
5
|
+
const type = command === 'python' && process.platform === 'win32' ? 'rpc' : 'ipc';
|
|
6
|
+
const spawnOptions = {
|
|
7
|
+
stdio: type === 'rpc'
|
|
8
|
+
? ['pipe', 'pipe', 'inherit'] // RPC: capture stdout
|
|
9
|
+
: ['inherit', 'inherit', 'inherit', 'ipc'], // IPC: include IPC channel
|
|
10
|
+
};
|
|
11
|
+
if (command === 'python') {
|
|
12
|
+
spawnOptions.env = {
|
|
13
|
+
...process.env,
|
|
14
|
+
PYTHONPATH: projectRoot || process.cwd(),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
return { type, spawnOptions };
|
|
18
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type ChildProcess } from 'child_process';
|
|
2
|
+
import type { Logger } from '../logger';
|
|
3
|
+
import { type CommunicationType } from './communication-config';
|
|
4
|
+
import type { MessageCallback, RpcHandler } from './rpc-processor-interface';
|
|
5
|
+
export interface ProcessManagerOptions {
|
|
6
|
+
command: string;
|
|
7
|
+
args: string[];
|
|
8
|
+
logger: Logger;
|
|
9
|
+
context?: string;
|
|
10
|
+
projectRoot?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare class ProcessManager {
|
|
13
|
+
private options;
|
|
14
|
+
private child?;
|
|
15
|
+
private processor?;
|
|
16
|
+
private communicationType?;
|
|
17
|
+
constructor(options: ProcessManagerOptions);
|
|
18
|
+
spawn(): Promise<ChildProcess>;
|
|
19
|
+
handler<TInput, TOutput = unknown>(method: string, handler: RpcHandler<TInput, TOutput>): void;
|
|
20
|
+
onMessage<T = unknown>(callback: MessageCallback<T>): void;
|
|
21
|
+
onProcessClose(callback: (code: number | null) => void): void;
|
|
22
|
+
onProcessError(callback: (error: Error & {
|
|
23
|
+
code?: string;
|
|
24
|
+
}) => void): void;
|
|
25
|
+
onStderr(callback: (data: Buffer) => void): void;
|
|
26
|
+
onStdout(callback: (data: Buffer) => void): void;
|
|
27
|
+
kill(): void;
|
|
28
|
+
close(): void;
|
|
29
|
+
get process(): ChildProcess | undefined;
|
|
30
|
+
get commType(): CommunicationType | undefined;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=process-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-manager.d.ts","sourceRoot":"","sources":["../../../src/process-communication/process-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAS,MAAM,eAAe,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAGvC,OAAO,EAAE,KAAK,iBAAiB,EAA6B,MAAM,wBAAwB,CAAA;AAC1F,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAyB,MAAM,2BAA2B,CAAA;AAEnG,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,qBAAa,cAAc;IAKb,OAAO,CAAC,OAAO;IAJ3B,OAAO,CAAC,KAAK,CAAC,CAAc;IAC5B,OAAO,CAAC,SAAS,CAAC,CAAuB;IACzC,OAAO,CAAC,iBAAiB,CAAC,CAAmB;gBAEzB,OAAO,EAAE,qBAAqB;IAE5C,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;IAyBpC,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAO9F,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAO1D,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI;IAO7D,cAAc,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,GAAG,IAAI;IAO1E,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAOhD,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAUhD,IAAI,IAAI,IAAI;IAMZ,KAAK,IAAI,IAAI;IAQb,IAAI,OAAO,IAAI,YAAY,GAAG,SAAS,CAEtC;IAED,IAAI,QAAQ,IAAI,iBAAiB,GAAG,SAAS,CAE5C;CACF"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ProcessManager = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
5
|
+
const step_handler_rpc_processor_1 = require("../step-handler-rpc-processor");
|
|
6
|
+
const step_handler_rpc_stdin_processor_1 = require("../step-handler-rpc-stdin-processor");
|
|
7
|
+
const communication_config_1 = require("./communication-config");
|
|
8
|
+
class ProcessManager {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
}
|
|
12
|
+
async spawn() {
|
|
13
|
+
const { command, args, logger, context = 'Process', projectRoot } = this.options;
|
|
14
|
+
// Get communication configuration
|
|
15
|
+
const commConfig = (0, communication_config_1.createCommunicationConfig)(command, projectRoot);
|
|
16
|
+
this.communicationType = commConfig.type;
|
|
17
|
+
logger.debug(`[${context}] Spawning process`, {
|
|
18
|
+
command,
|
|
19
|
+
args,
|
|
20
|
+
communicationType: this.communicationType,
|
|
21
|
+
});
|
|
22
|
+
// Spawn the process
|
|
23
|
+
this.child = (0, child_process_1.spawn)(command, args, commConfig.spawnOptions);
|
|
24
|
+
// Create appropriate processor based on communication type
|
|
25
|
+
this.processor = this.communicationType === 'rpc' ? new step_handler_rpc_stdin_processor_1.RpcStdinProcessor(this.child) : new step_handler_rpc_processor_1.RpcProcessor(this.child);
|
|
26
|
+
// Initialize the processor
|
|
27
|
+
await this.processor.init();
|
|
28
|
+
return this.child;
|
|
29
|
+
}
|
|
30
|
+
handler(method, handler) {
|
|
31
|
+
if (!this.processor) {
|
|
32
|
+
throw new Error('Process not spawned yet. Call spawn() first.');
|
|
33
|
+
}
|
|
34
|
+
this.processor.handler(method, handler);
|
|
35
|
+
}
|
|
36
|
+
onMessage(callback) {
|
|
37
|
+
if (!this.processor) {
|
|
38
|
+
throw new Error('Process not spawned yet. Call spawn() first.');
|
|
39
|
+
}
|
|
40
|
+
this.processor.onMessage(callback);
|
|
41
|
+
}
|
|
42
|
+
onProcessClose(callback) {
|
|
43
|
+
if (!this.child) {
|
|
44
|
+
throw new Error('Process not spawned yet. Call spawn() first.');
|
|
45
|
+
}
|
|
46
|
+
this.child.on('close', callback);
|
|
47
|
+
}
|
|
48
|
+
onProcessError(callback) {
|
|
49
|
+
if (!this.child) {
|
|
50
|
+
throw new Error('Process not spawned yet. Call spawn() first.');
|
|
51
|
+
}
|
|
52
|
+
this.child.on('error', callback);
|
|
53
|
+
}
|
|
54
|
+
onStderr(callback) {
|
|
55
|
+
if (!this.child) {
|
|
56
|
+
throw new Error('Process not spawned yet. Call spawn() first.');
|
|
57
|
+
}
|
|
58
|
+
this.child.stderr?.on('data', callback);
|
|
59
|
+
}
|
|
60
|
+
onStdout(callback) {
|
|
61
|
+
if (!this.child) {
|
|
62
|
+
throw new Error('Process not spawned yet. Call spawn() first.');
|
|
63
|
+
}
|
|
64
|
+
// Only for non-RPC mode (in RPC mode, stdout is used for communication)
|
|
65
|
+
if (this.communicationType !== 'rpc') {
|
|
66
|
+
this.child.stdout?.on('data', callback);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
kill() {
|
|
70
|
+
if (this.child) {
|
|
71
|
+
this.child.kill('SIGKILL');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
close() {
|
|
75
|
+
if (this.processor) {
|
|
76
|
+
this.processor.close();
|
|
77
|
+
}
|
|
78
|
+
this.processor = undefined;
|
|
79
|
+
this.child = undefined;
|
|
80
|
+
}
|
|
81
|
+
get process() {
|
|
82
|
+
return this.child;
|
|
83
|
+
}
|
|
84
|
+
get commType() {
|
|
85
|
+
return this.communicationType;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.ProcessManager = ProcessManager;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type RpcHandler<TInput, TOutput> = (input: TInput) => Promise<TOutput>;
|
|
2
|
+
export type MessageCallback<T = unknown> = (message: T) => void;
|
|
3
|
+
export interface RpcProcessorInterface {
|
|
4
|
+
handler<TInput, TOutput = unknown>(method: string, handler: RpcHandler<TInput, TOutput>): void;
|
|
5
|
+
handle(method: string, input: unknown): Promise<unknown>;
|
|
6
|
+
onMessage<T = unknown>(callback: MessageCallback<T>): void;
|
|
7
|
+
init(): Promise<void>;
|
|
8
|
+
close(): void;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=rpc-processor-interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc-processor-interface.d.ts","sourceRoot":"","sources":["../../../src/process-communication/rpc-processor-interface.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAC7E,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,IAAI,CAAA;AAE/D,MAAM,WAAW,qBAAqB;IACpC,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;IAC9F,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACxD,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IAC1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACrB,KAAK,IAAI,IAAI,CAAA;CACd"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type Logger } from './logger';
|
|
2
|
+
import type { Event, Handler, QueueConfig } from './types';
|
|
3
|
+
export declare class QueueError extends Error {
|
|
4
|
+
constructor(message: string);
|
|
5
|
+
}
|
|
6
|
+
export declare class HandlerTimeoutError extends QueueError {
|
|
7
|
+
constructor(message: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class MaxRetriesError extends QueueError {
|
|
10
|
+
readonly attempts: number;
|
|
11
|
+
constructor(message: string, attempts: number);
|
|
12
|
+
}
|
|
13
|
+
export type QueueMetrics = {
|
|
14
|
+
queueDepth: number;
|
|
15
|
+
processingCount: number;
|
|
16
|
+
retriesCount: number;
|
|
17
|
+
dlqCount: number;
|
|
18
|
+
};
|
|
19
|
+
export declare class QueueManager {
|
|
20
|
+
private logger;
|
|
21
|
+
private queues;
|
|
22
|
+
private subscriptions;
|
|
23
|
+
private lockedGroups;
|
|
24
|
+
private queueEmitter;
|
|
25
|
+
private scheduledTimeouts;
|
|
26
|
+
private metrics;
|
|
27
|
+
private processingMessages;
|
|
28
|
+
constructor(logger?: Logger);
|
|
29
|
+
private initMetrics;
|
|
30
|
+
private updateMetric;
|
|
31
|
+
private processQueue;
|
|
32
|
+
private processMessage;
|
|
33
|
+
private removeMessageFromQueue;
|
|
34
|
+
private scheduleProcessing;
|
|
35
|
+
enqueue<TData>(topic: string, event: Event<TData>, messageGroupId?: string): Promise<void>;
|
|
36
|
+
subscribe(topic: string, handler: Handler, queueConfig: QueueConfig, subscriptionId: string): void;
|
|
37
|
+
unsubscribe(topic: string, handler: Handler): void;
|
|
38
|
+
getMetrics(topic: string): QueueMetrics | undefined;
|
|
39
|
+
getAllMetrics(): Record<string, QueueMetrics>;
|
|
40
|
+
reset(): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=queue-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue-manager.d.ts","sourceRoot":"","sources":["../../src/queue-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1D,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,eAAgB,SAAQ,UAAU;aAG3B,QAAQ,EAAE,MAAM;gBADhC,OAAO,EAAE,MAAM,EACC,QAAQ,EAAE,MAAM;CAKnC;AAoBD,MAAM,MAAM,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,MAAM,CAAsC;IACpD,OAAO,CAAC,aAAa,CAA0C;IAC/D,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,iBAAiB,CAAyC;IAClE,OAAO,CAAC,OAAO,CAAuC;IACtD,OAAO,CAAC,kBAAkB,CAAyB;gBAEvC,MAAM,CAAC,EAAE,MAAM;IAO3B,OAAO,CAAC,WAAW;IAWnB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,YAAY;YA0BN,cAAc;IAwE5B,OAAO,CAAC,sBAAsB;IAiB9B,OAAO,CAAC,kBAAkB;IAcpB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmChG,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAuBlG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAoBlD,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAInD,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAQ7C,KAAK,IAAI,IAAI;CAUd"}
|