@motiadev/core 0.13.0-beta.161 → 0.13.0-beta.162-439402
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +38 -0
- package/dist/index.mjs +30 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts +17 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs +51 -0
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts +19 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs +54 -0
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/index.d.mts +8 -0
- package/dist/src/adapters/defaults/index.mjs +10 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts +27 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs +105 -0
- package/dist/src/adapters/defaults/state/file-state-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts +20 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs +58 -0
- package/dist/src/adapters/defaults/state/memory-state-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/state/utils.mjs +40 -0
- package/dist/src/adapters/defaults/state/utils.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts +13 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs +16 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts +24 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs +84 -0
- package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts +10 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs +12 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts +20 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts.map +1 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs +58 -0
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs.map +1 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts +32 -0
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts +19 -0
- package/dist/src/adapters/interfaces/event-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts +27 -0
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts +28 -0
- package/dist/src/adapters/interfaces/state-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts +10 -0
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts +26 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts.map +1 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs +17 -0
- package/dist/src/adapters/interfaces/stream-adapter.interface.mjs.map +1 -0
- package/dist/src/analytics/utils.d.mts +9 -0
- package/dist/src/analytics/utils.d.mts.map +1 -0
- package/dist/src/analytics/utils.mjs +35 -0
- package/dist/src/analytics/utils.mjs.map +1 -0
- package/dist/src/call-step-file.mjs +213 -0
- package/dist/src/call-step-file.mjs.map +1 -0
- package/dist/src/config.d.mts +7 -0
- package/dist/src/config.d.mts.map +1 -0
- package/dist/src/config.mjs +6 -0
- package/dist/src/config.mjs.map +1 -0
- package/dist/src/cron-handler.d.mts +18 -0
- package/dist/src/cron-handler.d.mts.map +1 -0
- package/dist/src/cron-handler.mjs +103 -0
- package/dist/src/cron-handler.mjs.map +1 -0
- package/dist/src/endpoints/analytics-endpoint.mjs +29 -0
- package/dist/src/endpoints/analytics-endpoint.mjs.map +1 -0
- package/dist/src/endpoints/flows-config-endpoint.mjs +38 -0
- package/dist/src/endpoints/flows-config-endpoint.mjs.map +1 -0
- package/dist/src/endpoints/flows-endpoint.mjs +39 -0
- package/dist/src/endpoints/flows-endpoint.mjs.map +1 -0
- package/dist/src/endpoints/step-endpoint.mjs +41 -0
- package/dist/src/endpoints/step-endpoint.mjs.map +1 -0
- package/dist/src/generate-trace-id.mjs +13 -0
- package/dist/src/generate-trace-id.mjs.map +1 -0
- package/dist/src/get-step-config.d.mts +9 -0
- package/dist/src/get-step-config.d.mts.map +1 -0
- package/dist/src/get-step-config.mjs +63 -0
- package/dist/src/get-step-config.mjs.map +1 -0
- package/dist/src/get-step-language.mjs +14 -0
- package/dist/src/get-step-language.mjs.map +1 -0
- package/dist/src/guards.d.mts +10 -0
- package/dist/src/guards.d.mts.map +1 -0
- package/dist/src/guards.mjs +9 -0
- package/dist/src/guards.mjs.map +1 -0
- package/dist/src/helper/flows-helper.mjs +126 -0
- package/dist/src/helper/flows-helper.mjs.map +1 -0
- package/dist/src/infrastructure-validator/defaults.mjs +17 -0
- package/dist/src/infrastructure-validator/defaults.mjs.map +1 -0
- package/dist/src/infrastructure-validator/index.d.mts +3 -0
- package/dist/src/infrastructure-validator/index.mjs +4 -0
- package/dist/src/infrastructure-validator/schemas.d.mts +1 -0
- package/dist/src/infrastructure-validator/schemas.mjs +77 -0
- package/dist/src/infrastructure-validator/schemas.mjs.map +1 -0
- package/dist/src/infrastructure-validator/types.d.mts +14 -0
- package/dist/src/infrastructure-validator/types.d.mts.map +1 -0
- package/dist/src/infrastructure-validator/validations.d.mts +7 -0
- package/dist/src/infrastructure-validator/validations.d.mts.map +1 -0
- package/dist/src/infrastructure-validator/validations.mjs +29 -0
- package/dist/src/infrastructure-validator/validations.mjs.map +1 -0
- package/dist/src/language-runner.mjs +44 -0
- package/dist/src/language-runner.mjs.map +1 -0
- package/dist/src/locked-data.d.mts +81 -0
- package/dist/src/locked-data.d.mts.map +1 -0
- package/dist/src/locked-data.mjs +223 -0
- package/dist/src/locked-data.mjs.map +1 -0
- package/dist/src/logger-factory.d.mts +16 -0
- package/dist/src/logger-factory.d.mts.map +1 -0
- package/dist/src/logger-factory.mjs +33 -0
- package/dist/src/logger-factory.mjs.map +1 -0
- package/dist/src/logger.d.mts +28 -0
- package/dist/src/logger.d.mts.map +1 -0
- package/dist/src/logger.mjs +64 -0
- package/dist/src/logger.mjs.map +1 -0
- package/dist/src/mermaid-generator.d.mts +9 -0
- package/dist/src/mermaid-generator.d.mts.map +1 -0
- package/dist/src/mermaid-generator.mjs +126 -0
- package/dist/src/mermaid-generator.mjs.map +1 -0
- package/dist/src/motia.d.mts +36 -0
- package/dist/src/motia.d.mts.map +1 -0
- package/dist/src/motia.mjs +6 -0
- package/dist/src/motia.mjs.map +1 -0
- package/dist/src/node/can-access.d.mts +1 -0
- package/dist/src/node/can-access.mjs +36 -0
- package/dist/src/node/can-access.mjs.map +1 -0
- package/dist/src/node/get-config.d.mts +1 -0
- package/dist/src/node/get-config.mjs +49 -0
- package/dist/src/node/get-config.mjs.map +1 -0
- package/dist/src/node/logger.mjs +47 -0
- package/dist/src/node/logger.mjs.map +1 -0
- package/dist/src/node/middleware-compose.mjs +10 -0
- package/dist/src/node/middleware-compose.mjs.map +1 -0
- package/dist/src/node/node-runner.d.mts +1 -0
- package/dist/src/node/node-runner.mjs +94 -0
- package/dist/src/node/node-runner.mjs.map +1 -0
- package/dist/src/node/rpc-state-manager.mjs +35 -0
- package/dist/src/node/rpc-state-manager.mjs.map +1 -0
- package/dist/src/node/rpc.mjs +55 -0
- package/dist/src/node/rpc.mjs.map +1 -0
- package/dist/src/observability/create-trace.mjs +26 -0
- package/dist/src/observability/create-trace.mjs.map +1 -0
- package/dist/src/observability/index.d.mts +7 -0
- package/dist/src/observability/index.d.mts.map +1 -0
- package/dist/src/observability/no-tracer.d.mts +15 -0
- package/dist/src/observability/no-tracer.d.mts.map +1 -0
- package/dist/src/observability/no-tracer.mjs +15 -0
- package/dist/src/observability/no-tracer.mjs.map +1 -0
- package/dist/src/observability/redis-trace-stream-adapter.mjs +76 -0
- package/dist/src/observability/redis-trace-stream-adapter.mjs.map +1 -0
- package/dist/src/observability/stream-tracer.mjs +87 -0
- package/dist/src/observability/stream-tracer.mjs.map +1 -0
- package/dist/src/observability/trace-manager.mjs +24 -0
- package/dist/src/observability/trace-manager.mjs.map +1 -0
- package/dist/src/observability/tracer.mjs +87 -0
- package/dist/src/observability/tracer.mjs.map +1 -0
- package/dist/src/observability/types.d.mts +14 -0
- package/dist/src/observability/types.d.mts.map +1 -0
- package/dist/src/pretty-print.mjs +50 -0
- package/dist/src/pretty-print.mjs.map +1 -0
- package/dist/src/printer.d.mts +65 -0
- package/dist/src/printer.d.mts.map +1 -0
- package/dist/src/printer.mjs +147 -0
- package/dist/src/printer.mjs.map +1 -0
- package/dist/src/process-communication/communication-config.mjs +26 -0
- package/dist/src/process-communication/communication-config.mjs.map +1 -0
- package/dist/src/process-communication/process-manager.mjs +67 -0
- package/dist/src/process-communication/process-manager.mjs.map +1 -0
- package/dist/src/queue-manager.d.mts +37 -0
- package/dist/src/queue-manager.d.mts.map +1 -0
- package/dist/src/queue-manager.mjs +209 -0
- package/dist/src/queue-manager.mjs.map +1 -0
- package/dist/src/run-stream-can-access.mjs +59 -0
- package/dist/src/run-stream-can-access.mjs.map +1 -0
- package/dist/src/schema-utils.mjs +30 -0
- package/dist/src/schema-utils.mjs.map +1 -0
- package/dist/src/server.d.mts +40 -0
- package/dist/src/server.d.mts.map +1 -0
- package/dist/src/server.mjs +332 -0
- package/dist/src/server.mjs.map +1 -0
- package/dist/src/socket-server/helpers.mjs +35 -0
- package/dist/src/socket-server/helpers.mjs.map +1 -0
- package/dist/src/socket-server.mjs +127 -0
- package/dist/src/socket-server.mjs.map +1 -0
- package/dist/src/state/create-state-adapter.d.mts +11 -0
- package/dist/src/state/create-state-adapter.d.mts.map +1 -0
- package/dist/src/state/create-state-adapter.mjs +11 -0
- package/dist/src/state/create-state-adapter.mjs.map +1 -0
- package/dist/src/step-handler-rpc-processor.mjs +56 -0
- package/dist/src/step-handler-rpc-processor.mjs.map +1 -0
- package/dist/src/step-handler-rpc-stdin-processor.mjs +71 -0
- package/dist/src/step-handler-rpc-stdin-processor.mjs.map +1 -0
- package/dist/src/step-handlers.d.mts +13 -0
- package/dist/src/step-handlers.d.mts.map +1 -0
- package/dist/src/step-handlers.mjs +93 -0
- package/dist/src/step-handlers.mjs.map +1 -0
- package/dist/src/step-validator.d.mts +15 -0
- package/dist/src/step-validator.d.mts.map +1 -0
- package/dist/src/step-validator.mjs +118 -0
- package/dist/src/step-validator.mjs.map +1 -0
- package/dist/src/steps/emit.step.mjs +20 -0
- package/dist/src/steps/emit.step.mjs.map +1 -0
- package/dist/src/steps/index.mjs +14 -0
- package/dist/src/steps/index.mjs.map +1 -0
- package/dist/src/streams/flows-config-stream.mjs +46 -0
- package/dist/src/streams/flows-config-stream.mjs.map +1 -0
- package/dist/src/streams/flows-stream.mjs +33 -0
- package/dist/src/streams/flows-stream.mjs.map +1 -0
- package/dist/src/streams/redis-logs-stream.d.mts +3 -0
- package/dist/src/streams/redis-logs-stream.mjs +97 -0
- package/dist/src/streams/redis-logs-stream.mjs.map +1 -0
- package/dist/src/streams/stream-factory.d.mts +7 -0
- package/dist/src/streams/stream-factory.d.mts.map +1 -0
- package/dist/src/types/app-config-types.d.mts +48 -0
- package/dist/src/types/app-config-types.d.mts.map +1 -0
- package/dist/src/types/generate-type-from-schema.mjs +30 -0
- package/dist/src/types/generate-type-from-schema.mjs.map +1 -0
- package/dist/src/types/generate-types-from-response.mjs +12 -0
- package/dist/src/types/generate-types-from-response.mjs.map +1 -0
- package/dist/src/types/generate-types.mjs +101 -0
- package/dist/src/types/generate-types.mjs.map +1 -0
- package/dist/src/types/merge-schemas.mjs +102 -0
- package/dist/src/types/merge-schemas.mjs.map +1 -0
- package/dist/src/types/schema.types.d.mts +13 -0
- package/dist/src/types/schema.types.d.mts.map +1 -0
- package/dist/src/types/schema.types.mjs +14 -0
- package/dist/src/types/schema.types.mjs.map +1 -0
- package/dist/src/types-stream.d.mts +46 -0
- package/dist/src/types-stream.d.mts.map +1 -0
- package/dist/src/types.d.mts +188 -0
- package/dist/src/types.d.mts.map +1 -0
- package/dist/src/utils.mjs +13 -0
- package/dist/src/utils.mjs.map +1 -0
- package/dist/src/validate-event-input.mjs +76 -0
- package/dist/src/validate-event-input.mjs.map +1 -0
- package/jest.config.cjs +20 -0
- package/package.json +20 -8
- package/tsdown.config.ts +52 -0
- package/dist/index.d.ts +0 -30
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -72
- package/dist/jest.config.d.ts +0 -8
- package/dist/jest.config.d.ts.map +0 -1
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +0 -13
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +0 -53
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +0 -15
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +0 -49
- package/dist/src/adapters/defaults/index.d.ts +0 -9
- package/dist/src/adapters/defaults/index.d.ts.map +0 -1
- package/dist/src/adapters/defaults/index.js +0 -19
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts +0 -23
- package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/state/file-state-adapter.js +0 -149
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts +0 -16
- package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/state/memory-state-adapter.js +0 -69
- package/dist/src/adapters/defaults/state/utils.d.ts +0 -4
- package/dist/src/adapters/defaults/state/utils.d.ts.map +0 -1
- package/dist/src/adapters/defaults/state/utils.js +0 -66
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +0 -9
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +0 -14
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts +0 -22
- package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/file-stream-adapter.js +0 -125
- package/dist/src/adapters/defaults/stream/index.d.ts +0 -5
- package/dist/src/adapters/defaults/stream/index.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/index.js +0 -11
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +0 -6
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +0 -10
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts +0 -16
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +0 -1
- package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +0 -55
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +0 -29
- package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/cron-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +0 -15
- package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/event-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/index.d.ts +0 -7
- package/dist/src/adapters/interfaces/index.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/index.js +0 -5
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +0 -23
- package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/observability-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts +0 -24
- package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/state-adapter.interface.js +0 -2
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +0 -6
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +0 -2
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +0 -22
- package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +0 -1
- package/dist/src/adapters/interfaces/stream-adapter.interface.js +0 -16
- package/dist/src/analytics/utils.d.ts +0 -6
- package/dist/src/analytics/utils.d.ts.map +0 -1
- package/dist/src/analytics/utils.js +0 -51
- package/dist/src/call-step-file.d.ts +0 -16
- package/dist/src/call-step-file.d.ts.map +0 -1
- package/dist/src/call-step-file.js +0 -194
- package/dist/src/config.d.ts +0 -3
- package/dist/src/config.d.ts.map +0 -1
- package/dist/src/config.js +0 -5
- package/dist/src/config.types.d.ts +0 -17
- package/dist/src/config.types.d.ts.map +0 -1
- package/dist/src/config.types.js +0 -2
- package/dist/src/cron-handler.d.ts +0 -14
- package/dist/src/cron-handler.d.ts.map +0 -1
- package/dist/src/cron-handler.js +0 -132
- package/dist/src/endpoints/analytics-endpoint.d.ts +0 -3
- package/dist/src/endpoints/analytics-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/analytics-endpoint.js +0 -28
- package/dist/src/endpoints/flows-config-endpoint.d.ts +0 -4
- package/dist/src/endpoints/flows-config-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/flows-config-endpoint.js +0 -34
- package/dist/src/endpoints/flows-endpoint.d.ts +0 -3
- package/dist/src/endpoints/flows-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/flows-endpoint.js +0 -29
- package/dist/src/endpoints/step-endpoint.d.ts +0 -4
- package/dist/src/endpoints/step-endpoint.d.ts.map +0 -1
- package/dist/src/endpoints/step-endpoint.js +0 -45
- package/dist/src/generate-trace-id.d.ts +0 -3
- package/dist/src/generate-trace-id.d.ts.map +0 -1
- package/dist/src/generate-trace-id.js +0 -14
- package/dist/src/get-step-config.d.ts +0 -5
- package/dist/src/get-step-config.d.ts.map +0 -1
- package/dist/src/get-step-config.js +0 -68
- package/dist/src/get-step-language.d.ts +0 -2
- package/dist/src/get-step-language.d.ts.map +0 -1
- package/dist/src/get-step-language.js +0 -27
- package/dist/src/guards.d.ts +0 -6
- package/dist/src/guards.d.ts.map +0 -1
- package/dist/src/guards.js +0 -11
- package/dist/src/helper/flows-helper.d.ts +0 -6
- package/dist/src/helper/flows-helper.d.ts.map +0 -1
- package/dist/src/helper/flows-helper.js +0 -143
- package/dist/src/infrastructure-validator/defaults.d.ts +0 -4
- package/dist/src/infrastructure-validator/defaults.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/defaults.js +0 -16
- package/dist/src/infrastructure-validator/index.d.ts +0 -4
- package/dist/src/infrastructure-validator/index.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/index.js +0 -13
- package/dist/src/infrastructure-validator/schemas.d.ts +0 -45
- package/dist/src/infrastructure-validator/schemas.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/schemas.js +0 -100
- package/dist/src/infrastructure-validator/types.d.ts +0 -21
- package/dist/src/infrastructure-validator/types.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/types.js +0 -2
- package/dist/src/infrastructure-validator/validations.d.ts +0 -4
- package/dist/src/infrastructure-validator/validations.d.ts.map +0 -1
- package/dist/src/infrastructure-validator/validations.js +0 -62
- package/dist/src/language-runner.d.ts +0 -15
- package/dist/src/language-runner.d.ts.map +0 -1
- package/dist/src/language-runner.js +0 -31
- package/dist/src/locked-data.d.ts +0 -78
- package/dist/src/locked-data.d.ts.map +0 -1
- package/dist/src/locked-data.js +0 -284
- package/dist/src/logger-factory.d.ts +0 -19
- package/dist/src/logger-factory.d.ts.map +0 -1
- package/dist/src/logger-factory.js +0 -27
- package/dist/src/logger.d.ts +0 -26
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -60
- package/dist/src/mermaid-generator.d.ts +0 -5
- package/dist/src/mermaid-generator.d.ts.map +0 -1
- package/dist/src/mermaid-generator.js +0 -203
- package/dist/src/motia.d.ts +0 -32
- package/dist/src/motia.d.ts.map +0 -1
- package/dist/src/motia.js +0 -4
- package/dist/src/node/can-access.d.ts +0 -2
- package/dist/src/node/can-access.d.ts.map +0 -1
- package/dist/src/node/can-access.js +0 -44
- package/dist/src/node/get-config.d.ts +0 -2
- package/dist/src/node/get-config.d.ts.map +0 -1
- package/dist/src/node/get-config.js +0 -64
- package/dist/src/node/logger.d.ts +0 -16
- package/dist/src/node/logger.d.ts.map +0 -1
- package/dist/src/node/logger.js +0 -48
- package/dist/src/node/middleware-compose.d.ts +0 -2
- package/dist/src/node/middleware-compose.d.ts.map +0 -1
- package/dist/src/node/middleware-compose.js +0 -10
- package/dist/src/node/node-runner.d.ts +0 -2
- package/dist/src/node/node-runner.d.ts.map +0 -1
- package/dist/src/node/node-runner.js +0 -83
- package/dist/src/node/rpc-state-manager.d.ts +0 -12
- package/dist/src/node/rpc-state-manager.d.ts.map +0 -1
- package/dist/src/node/rpc-state-manager.js +0 -24
- package/dist/src/node/rpc.d.ts +0 -10
- package/dist/src/node/rpc.d.ts.map +0 -1
- package/dist/src/node/rpc.js +0 -50
- package/dist/src/observability/create-trace.d.ts +0 -4
- package/dist/src/observability/create-trace.d.ts.map +0 -1
- package/dist/src/observability/create-trace.js +0 -22
- package/dist/src/observability/index.d.ts +0 -4
- package/dist/src/observability/index.d.ts.map +0 -1
- package/dist/src/observability/index.js +0 -2
- package/dist/src/observability/no-tracer.d.ts +0 -10
- package/dist/src/observability/no-tracer.d.ts.map +0 -1
- package/dist/src/observability/no-tracer.js +0 -14
- package/dist/src/observability/redis-trace-stream-adapter.d.ts +0 -17
- package/dist/src/observability/redis-trace-stream-adapter.d.ts.map +0 -1
- package/dist/src/observability/redis-trace-stream-adapter.js +0 -65
- package/dist/src/observability/stream-tracer.d.ts +0 -22
- package/dist/src/observability/stream-tracer.d.ts.map +0 -1
- package/dist/src/observability/stream-tracer.js +0 -97
- package/dist/src/observability/trace-manager.d.ts +0 -13
- package/dist/src/observability/trace-manager.d.ts.map +0 -1
- package/dist/src/observability/trace-manager.js +0 -23
- package/dist/src/observability/tracer.d.ts +0 -19
- package/dist/src/observability/tracer.d.ts.map +0 -1
- package/dist/src/observability/tracer.js +0 -95
- package/dist/src/observability/types.d.ts +0 -75
- package/dist/src/observability/types.d.ts.map +0 -1
- package/dist/src/observability/types.js +0 -2
- package/dist/src/pretty-print.d.ts +0 -2
- package/dist/src/pretty-print.d.ts.map +0 -1
- package/dist/src/pretty-print.js +0 -63
- package/dist/src/printer.d.ts +0 -61
- package/dist/src/printer.d.ts.map +0 -1
- package/dist/src/printer.js +0 -164
- package/dist/src/process-communication/communication-config.d.ts +0 -8
- package/dist/src/process-communication/communication-config.d.ts.map +0 -1
- package/dist/src/process-communication/communication-config.js +0 -18
- package/dist/src/process-communication/process-manager.d.ts +0 -32
- package/dist/src/process-communication/process-manager.d.ts.map +0 -1
- package/dist/src/process-communication/process-manager.js +0 -88
- package/dist/src/process-communication/rpc-processor-interface.d.ts +0 -10
- package/dist/src/process-communication/rpc-processor-interface.d.ts.map +0 -1
- package/dist/src/process-communication/rpc-processor-interface.js +0 -2
- package/dist/src/queue-manager.d.ts +0 -42
- package/dist/src/queue-manager.d.ts.map +0 -1
- package/dist/src/queue-manager.js +0 -252
- package/dist/src/ruby/get-ruby-config.d.ts +0 -3
- package/dist/src/ruby/get-ruby-config.d.ts.map +0 -1
- package/dist/src/ruby/get-ruby-config.js +0 -34
- package/dist/src/run-stream-can-access.d.ts +0 -10
- package/dist/src/run-stream-can-access.d.ts.map +0 -1
- package/dist/src/run-stream-can-access.js +0 -59
- package/dist/src/schema-utils.d.ts +0 -9
- package/dist/src/schema-utils.d.ts.map +0 -1
- package/dist/src/schema-utils.js +0 -80
- package/dist/src/server.d.ts +0 -37
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -318
- package/dist/src/socket-server/helpers.d.ts +0 -53
- package/dist/src/socket-server/helpers.d.ts.map +0 -1
- package/dist/src/socket-server/helpers.js +0 -28
- package/dist/src/socket-server.d.ts +0 -21
- package/dist/src/socket-server.d.ts.map +0 -1
- package/dist/src/socket-server.js +0 -127
- package/dist/src/state/create-state-adapter.d.ts +0 -8
- package/dist/src/state/create-state-adapter.d.ts.map +0 -1
- package/dist/src/state/create-state-adapter.js +0 -8
- package/dist/src/step-handler-rpc-processor.d.ts +0 -22
- package/dist/src/step-handler-rpc-processor.d.ts.map +0 -1
- package/dist/src/step-handler-rpc-processor.js +0 -63
- package/dist/src/step-handler-rpc-stdin-processor.d.ts +0 -23
- package/dist/src/step-handler-rpc-stdin-processor.d.ts.map +0 -1
- package/dist/src/step-handler-rpc-stdin-processor.js +0 -83
- package/dist/src/step-handlers.d.ts +0 -9
- package/dist/src/step-handlers.d.ts.map +0 -1
- package/dist/src/step-handlers.js +0 -77
- package/dist/src/step-validator.d.ts +0 -15
- package/dist/src/step-validator.d.ts.map +0 -1
- package/dist/src/step-validator.js +0 -135
- package/dist/src/steps/emit.step.d.ts +0 -12
- package/dist/src/steps/emit.step.d.ts.map +0 -1
- package/dist/src/steps/emit.step.js +0 -27
- package/dist/src/steps/index.d.ts +0 -3
- package/dist/src/steps/index.d.ts.map +0 -1
- package/dist/src/steps/index.js +0 -16
- package/dist/src/streams/flows-config-stream.d.ts +0 -14
- package/dist/src/streams/flows-config-stream.d.ts.map +0 -1
- package/dist/src/streams/flows-config-stream.js +0 -49
- package/dist/src/streams/flows-stream.d.ts +0 -12
- package/dist/src/streams/flows-stream.d.ts.map +0 -1
- package/dist/src/streams/flows-stream.js +0 -35
- package/dist/src/streams/redis-logs-stream.d.ts +0 -31
- package/dist/src/streams/redis-logs-stream.d.ts.map +0 -1
- package/dist/src/streams/redis-logs-stream.js +0 -84
- package/dist/src/streams/stream-factory.d.ts +0 -3
- package/dist/src/streams/stream-factory.d.ts.map +0 -1
- package/dist/src/streams/stream-factory.js +0 -2
- package/dist/src/types/app-config-types.d.ts +0 -44
- package/dist/src/types/app-config-types.d.ts.map +0 -1
- package/dist/src/types/app-config-types.js +0 -2
- package/dist/src/types/flows-config-types.d.ts +0 -10
- package/dist/src/types/flows-config-types.d.ts.map +0 -1
- package/dist/src/types/flows-config-types.js +0 -2
- package/dist/src/types/flows-types.d.ts +0 -39
- package/dist/src/types/flows-types.d.ts.map +0 -1
- package/dist/src/types/flows-types.js +0 -2
- package/dist/src/types/generate-type-from-schema.d.ts +0 -3
- package/dist/src/types/generate-type-from-schema.d.ts.map +0 -1
- package/dist/src/types/generate-type-from-schema.js +0 -49
- package/dist/src/types/generate-types-from-response.d.ts +0 -3
- package/dist/src/types/generate-types-from-response.d.ts.map +0 -1
- package/dist/src/types/generate-types-from-response.js +0 -13
- package/dist/src/types/generate-types.d.ts +0 -13
- package/dist/src/types/generate-types.d.ts.map +0 -1
- package/dist/src/types/generate-types.js +0 -127
- package/dist/src/types/merge-schemas.d.ts +0 -5
- package/dist/src/types/merge-schemas.d.ts.map +0 -1
- package/dist/src/types/merge-schemas.js +0 -183
- package/dist/src/types/schema.types.d.ts +0 -9
- package/dist/src/types/schema.types.d.ts.map +0 -1
- package/dist/src/types/schema.types.js +0 -14
- package/dist/src/types-stream.d.ts +0 -42
- package/dist/src/types-stream.d.ts.map +0 -1
- package/dist/src/types-stream.js +0 -2
- package/dist/src/types.d.ts +0 -184
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -17
- package/dist/src/utils.d.ts +0 -3
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -12
- package/dist/src/validate-event-input.d.ts +0 -3
- package/dist/src/validate-event-input.d.ts.map +0 -1
- package/dist/src/validate-event-input.js +0 -74
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { CronAdapter } from "../adapters/interfaces/cron-adapter.interface.mjs";
|
|
2
|
+
import { JsonSchema } from "./schema.types.mjs";
|
|
3
|
+
import { EventAdapter } from "../adapters/interfaces/event-adapter.interface.mjs";
|
|
4
|
+
import { StateAdapter } from "../adapters/interfaces/state-adapter.interface.mjs";
|
|
5
|
+
import { StreamAdapterManager } from "../adapters/interfaces/stream-adapter-manager.interface.mjs";
|
|
6
|
+
import { MotiaPluginContext } from "../motia.mjs";
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
import { Express } from "express";
|
|
9
|
+
|
|
10
|
+
//#region src/types/app-config-types.d.ts
|
|
11
|
+
type WorkbenchPlugin = {
|
|
12
|
+
packageName: string;
|
|
13
|
+
componentName?: string;
|
|
14
|
+
label?: string;
|
|
15
|
+
labelIcon?: string;
|
|
16
|
+
position?: 'bottom' | 'top';
|
|
17
|
+
cssImports?: string[];
|
|
18
|
+
props?: Record<string, any>;
|
|
19
|
+
};
|
|
20
|
+
type MotiaPlugin = {
|
|
21
|
+
workbench: WorkbenchPlugin[];
|
|
22
|
+
dirname?: string;
|
|
23
|
+
steps?: string[];
|
|
24
|
+
};
|
|
25
|
+
type MotiaPluginBuilder = (motia: MotiaPluginContext) => MotiaPlugin;
|
|
26
|
+
type AdapterConfig = {
|
|
27
|
+
state?: StateAdapter;
|
|
28
|
+
streams?: StreamAdapterManager;
|
|
29
|
+
events?: EventAdapter;
|
|
30
|
+
cron?: CronAdapter;
|
|
31
|
+
};
|
|
32
|
+
type StreamAuthRequest = {
|
|
33
|
+
headers: Record<string, string | string[] | undefined>;
|
|
34
|
+
url?: string;
|
|
35
|
+
};
|
|
36
|
+
type StreamAuthConfig<TSchema extends z.ZodTypeAny = z.ZodTypeAny> = {
|
|
37
|
+
contextSchema: JsonSchema;
|
|
38
|
+
authenticate: (request: StreamAuthRequest) => Promise<z.infer<TSchema> | null> | (z.infer<TSchema> | null);
|
|
39
|
+
};
|
|
40
|
+
type Config = {
|
|
41
|
+
app?: (app: Express) => void;
|
|
42
|
+
plugins?: MotiaPluginBuilder[];
|
|
43
|
+
adapters?: AdapterConfig;
|
|
44
|
+
streamAuth?: StreamAuthConfig;
|
|
45
|
+
};
|
|
46
|
+
//#endregion
|
|
47
|
+
export { AdapterConfig, Config, MotiaPlugin, MotiaPluginBuilder, StreamAuthConfig, StreamAuthRequest, WorkbenchPlugin };
|
|
48
|
+
//# sourceMappingURL=app-config-types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-config-types.d.mts","names":[],"sources":["../../../src/types/app-config-types.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;KASY,eAAA;;EAAA,aAAA,CAAA,EAAA,MAAe;EAWf,KAAA,CAAA,EAAA,MAAW;EAMX,SAAA,CAAA,EAAA,MAAA;EAEA,QAAA,CAAA,EAAA,QAAa,GAAA,KAAA;EACf,UAAA,CAAA,EAAA,MAAA,EAAA;EACE,KAAA,CAAA,EAbF,MAaE,CAAA,MAAA,EAAA,GAAA,CAAA;CACD;AACF,KAZG,WAAA,GAYH;EAAW,SAAA,EAXP,eAWO,EAAA;EAGR,OAAA,CAAA,EAAA,MAAA;EAKA,KAAA,CAAA,EAAA,MAAA,EAAA;CAAiC;AAAiB,KAdlD,kBAAA,GAckD,CAAA,KAAA,EAdrB,kBAcqB,EAAA,GAdE,WAcF;AAC7C,KAbL,aAAA,GAaK;EACS,KAAA,CAAA,EAbhB,YAagB;EAAsC,OAAA,CAAA,EAZpD,oBAYoD;EAAN,MAAA,CAAA,EAX/C,YAW+C;EAAV,IAAA,CAAA,EAVvC,WAUuC;CAA4C;AAAN,KAP1E,iBAAA,GAO0E;EAAK,OAAA,EANhF,MAMgF,CAAA,MAAA,EAAA,MAAA,GAAA,MAAA,EAAA,GAAA,SAAA,CAAA;EAG/E,GAAA,CAAA,EAAA,MAAM;CACJ;AACF,KAPA,gBAOA,CAAA,gBAPiC,CAAA,CAAE,UAOnC,GAPgD,CAAA,CAAE,UAOlD,CAAA,GAAA;EACC,aAAA,EAPI,UAOJ;EACE,YAAA,EAAA,CAAA,OAAA,EAPW,iBAOX,EAAA,GAPiC,OAOjC,CAPyC,CAAA,CAAE,KAO3C,CAPiD,OAOjD,CAAA,GAAA,IAAA,CAAA,GAAA,CAPqE,CAAA,CAAE,KAOvE,CAP6E,OAO7E,CAAA,GAAA,IAAA,CAAA;CAAgB;KAJnB,MAAA;cACE;YACF;aACC;eACE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { isAnyOf } from "./schema.types.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/generate-type-from-schema.ts
|
|
4
|
+
const generateTypeFromSchema = (schema) => {
|
|
5
|
+
if (!schema) return "unknown";
|
|
6
|
+
if (isAnyOf(schema)) return schema.anyOf.map(generateTypeFromSchema).join(" | ");
|
|
7
|
+
if (schema.type === "array") return `Array<${schema.items ? generateTypeFromSchema(schema.items) : "unknown"}>`;
|
|
8
|
+
if (schema.type === "object" && schema.properties) {
|
|
9
|
+
const props = Object.entries(schema.properties).map(([key, prop]) => {
|
|
10
|
+
const isRequired = schema.required?.includes(key);
|
|
11
|
+
const propType = generateTypeFromSchema(prop);
|
|
12
|
+
return `${key}${isRequired ? "" : "?"}: ${propType}`;
|
|
13
|
+
});
|
|
14
|
+
return props.length > 0 ? `{ ${props.join("; ")} }` : "{}";
|
|
15
|
+
} else if (schema.type === "object" && schema.additionalProperties) return `Record<string, ${generateTypeFromSchema(schema.additionalProperties)}>`;
|
|
16
|
+
if (schema.type === "string") {
|
|
17
|
+
if (schema.format === "binary") return "Buffer";
|
|
18
|
+
return schema.enum && schema.enum.length > 0 ? schema.enum.map((value) => `'${value}'`).join(" | ") : "string";
|
|
19
|
+
}
|
|
20
|
+
if (typeof schema === "object" && schema !== null && "not" in schema) return "undefined";
|
|
21
|
+
switch (schema.type) {
|
|
22
|
+
case "number": return "number";
|
|
23
|
+
case "boolean": return "boolean";
|
|
24
|
+
default: return "unknown";
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
//#endregion
|
|
29
|
+
export { generateTypeFromSchema };
|
|
30
|
+
//# sourceMappingURL=generate-type-from-schema.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-type-from-schema.mjs","names":[],"sources":["../../../src/types/generate-type-from-schema.ts"],"sourcesContent":["import type { JSONSchema } from 'zod/v4/core'\nimport { isAnyOf } from './schema.types'\n\nexport const generateTypeFromSchema = (schema: JSONSchema.BaseSchema): string => {\n if (!schema) {\n return 'unknown'\n }\n\n if (isAnyOf(schema)) {\n const types = schema.anyOf.map(generateTypeFromSchema)\n return types.join(' | ')\n }\n\n if (schema.type === 'array') {\n const itemType = schema.items ? generateTypeFromSchema(schema.items as JSONSchema.ArraySchema) : 'unknown'\n return `Array<${itemType}>`\n }\n\n if (schema.type === 'object' && schema.properties) {\n const props = Object.entries(schema.properties).map(([key, prop]) => {\n const isRequired = schema.required?.includes(key)\n const propType = generateTypeFromSchema(prop as JSONSchema.BaseSchema)\n return `${key}${isRequired ? '' : '?'}: ${propType}`\n })\n return props.length > 0 ? `{ ${props.join('; ')} }` : '{}'\n } else if (schema.type === 'object' && schema.additionalProperties) {\n const propType = generateTypeFromSchema(schema.additionalProperties as JSONSchema.BaseSchema)\n return `Record<string, ${propType}>`\n }\n\n if (schema.type === 'string') {\n if (schema.format === 'binary') {\n return 'Buffer'\n }\n return schema.enum && schema.enum.length > 0 // must have at least one enum value\n ? schema.enum.map((value) => `'${value}'`).join(' | ')\n : 'string'\n }\n\n if (typeof schema === 'object' && schema !== null && 'not' in schema) {\n return 'undefined'\n }\n\n switch (schema.type) {\n case 'number':\n return 'number'\n case 'boolean':\n return 'boolean'\n default:\n return 'unknown'\n }\n}\n"],"mappings":";;;AAGA,MAAa,0BAA0B,WAA0C;AAC/E,KAAI,CAAC,OACH,QAAO;AAGT,KAAI,QAAQ,OAAO,CAEjB,QADc,OAAO,MAAM,IAAI,uBAAuB,CACzC,KAAK,MAAM;AAG1B,KAAI,OAAO,SAAS,QAElB,QAAO,SADU,OAAO,QAAQ,uBAAuB,OAAO,MAAgC,GAAG,UACxE;AAG3B,KAAI,OAAO,SAAS,YAAY,OAAO,YAAY;EACjD,MAAM,QAAQ,OAAO,QAAQ,OAAO,WAAW,CAAC,KAAK,CAAC,KAAK,UAAU;GACnE,MAAM,aAAa,OAAO,UAAU,SAAS,IAAI;GACjD,MAAM,WAAW,uBAAuB,KAA8B;AACtE,UAAO,GAAG,MAAM,aAAa,KAAK,IAAI,IAAI;IAC1C;AACF,SAAO,MAAM,SAAS,IAAI,KAAK,MAAM,KAAK,KAAK,CAAC,MAAM;YAC7C,OAAO,SAAS,YAAY,OAAO,qBAE5C,QAAO,kBADU,uBAAuB,OAAO,qBAA8C,CAC3D;AAGpC,KAAI,OAAO,SAAS,UAAU;AAC5B,MAAI,OAAO,WAAW,SACpB,QAAO;AAET,SAAO,OAAO,QAAQ,OAAO,KAAK,SAAS,IACvC,OAAO,KAAK,KAAK,UAAU,IAAI,MAAM,GAAG,CAAC,KAAK,MAAM,GACpD;;AAGN,KAAI,OAAO,WAAW,YAAY,WAAW,QAAQ,SAAS,OAC5D,QAAO;AAGT,SAAQ,OAAO,MAAf;EACE,KAAK,SACH,QAAO;EACT,KAAK,UACH,QAAO;EACT,QACE,QAAO"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { generateTypeFromSchema } from "./generate-type-from-schema.mjs";
|
|
2
|
+
|
|
3
|
+
//#region src/types/generate-types-from-response.ts
|
|
4
|
+
const generateTypesFromResponse = (record) => {
|
|
5
|
+
return Object.entries(record).map(([status, schema]) => {
|
|
6
|
+
return `ApiResponse<${status}, ${generateTypeFromSchema(schema)}>`;
|
|
7
|
+
}).join(" | ");
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
//#endregion
|
|
11
|
+
export { generateTypesFromResponse };
|
|
12
|
+
//# sourceMappingURL=generate-types-from-response.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types-from-response.mjs","names":[],"sources":["../../../src/types/generate-types-from-response.ts"],"sourcesContent":["import { generateTypeFromSchema } from './generate-type-from-schema'\nimport type { JsonSchema } from './schema.types'\n\nexport const generateTypesFromResponse = (record: Record<number, JsonSchema>): string => {\n return Object.entries(record)\n .map(([status, schema]) => {\n const schemaType = generateTypeFromSchema(schema as JsonSchema)\n return `ApiResponse<${status}, ${schemaType}>`\n })\n .join(' | ')\n}\n"],"mappings":";;;AAGA,MAAa,6BAA6B,WAA+C;AACvF,QAAO,OAAO,QAAQ,OAAO,CAC1B,KAAK,CAAC,QAAQ,YAAY;AAEzB,SAAO,eAAe,OAAO,IADV,uBAAuB,OAAqB,CACnB;GAC5C,CACD,KAAK,MAAM"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { isApiStep, isCronStep, isEventStep } from "../guards.mjs";
|
|
2
|
+
import { generateTypeFromSchema } from "./generate-type-from-schema.mjs";
|
|
3
|
+
import { schemaToJsonSchema } from "../schema-utils.mjs";
|
|
4
|
+
import { generateTypesFromResponse } from "./generate-types-from-response.mjs";
|
|
5
|
+
import { mergeSchemas } from "./merge-schemas.mjs";
|
|
6
|
+
|
|
7
|
+
//#region src/types/generate-types.ts
|
|
8
|
+
const generateTypesString = (handlers, streams, streamAuthContextType) => {
|
|
9
|
+
return `/**
|
|
10
|
+
* Automatically generated types for motia
|
|
11
|
+
* Do NOT edit this file manually.
|
|
12
|
+
*
|
|
13
|
+
* Consider adding this file to .prettierignore and eslint ignore.
|
|
14
|
+
*/
|
|
15
|
+
import { EventHandler, ApiRouteHandler, ApiResponse, MotiaStream, CronHandler } from 'motia'
|
|
16
|
+
|
|
17
|
+
declare module 'motia' {
|
|
18
|
+
interface FlowContextStateStreams {
|
|
19
|
+
${Object.entries(streams).map(([key, value]) => `'${key}': MotiaStream<${value}>`).join("\n ").trim()}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
interface Handlers {
|
|
23
|
+
${Object.entries(handlers).map(([key, { type, generics }]) => `'${key}': ${type}<${generics.join(", ")}>`).join("\n ").trim()}
|
|
24
|
+
}
|
|
25
|
+
${streamAuthContextType ? `interface StreamAuthContext ${streamAuthContextType}` : ""}
|
|
26
|
+
}`;
|
|
27
|
+
};
|
|
28
|
+
const generateTypesFromSteps = (steps, printer) => {
|
|
29
|
+
const handlers = {};
|
|
30
|
+
const topics = {};
|
|
31
|
+
const topicsSchemas = {};
|
|
32
|
+
const topicsSteps = {};
|
|
33
|
+
const topicIsFifo = {};
|
|
34
|
+
for (const step of steps) if (isEventStep(step)) {
|
|
35
|
+
if (!step.config.input) {
|
|
36
|
+
for (const topic of step.config.subscribes) if (!topics[topic]) topics[topic] = "never";
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
for (const topic of step.config.subscribes) {
|
|
40
|
+
const existingSchema = topicsSchemas[topic];
|
|
41
|
+
topicsSteps[topic] = topicsSteps[topic] ?? [];
|
|
42
|
+
topicsSteps[topic].push(step);
|
|
43
|
+
if (step.config.infrastructure?.queue?.type === "fifo") topicIsFifo[topic] = true;
|
|
44
|
+
try {
|
|
45
|
+
const input = step.config.input;
|
|
46
|
+
const schema = existingSchema ? mergeSchemas(existingSchema, input) : schemaToJsonSchema(input) ?? input;
|
|
47
|
+
topics[topic] = generateTypeFromSchema(schema);
|
|
48
|
+
topicsSchemas[topic] = schema;
|
|
49
|
+
} catch (error) {
|
|
50
|
+
printer.printInvalidSchema(topic, topicsSteps[topic]);
|
|
51
|
+
topics[topic] = "never";
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const generateEmitData = (emit, step) => {
|
|
56
|
+
const emits = emit.reduce((acc, emit$1) => {
|
|
57
|
+
const topic = typeof emit$1 === "string" ? emit$1 : emit$1.topic;
|
|
58
|
+
const topicType = topics[topic];
|
|
59
|
+
if (topicType) if (topicIsFifo[topic]) acc.push(`{ topic: '${topic.replace(/'/g, "\\'")}'; data: ${topicType}; messageGroupId: string }`);
|
|
60
|
+
else acc.push(`{ topic: '${topic.replace(/'/g, "\\'")}'; data: ${topicType} }`);
|
|
61
|
+
else printer.printInvalidEmitConfiguration(step, topic);
|
|
62
|
+
return acc;
|
|
63
|
+
}, []).join(" | ");
|
|
64
|
+
return emits.length === 0 ? "never" : emits;
|
|
65
|
+
};
|
|
66
|
+
for (const step of steps) {
|
|
67
|
+
const emits = "emits" in step.config ? generateEmitData(step.config.emits, step) : "never";
|
|
68
|
+
if (isEventStep(step)) {
|
|
69
|
+
const input = step.config.input ? generateTypeFromSchema(step.config.input) : "never";
|
|
70
|
+
handlers[step.config.name] = {
|
|
71
|
+
type: "EventHandler",
|
|
72
|
+
generics: [input, emits]
|
|
73
|
+
};
|
|
74
|
+
} else if (isApiStep(step)) {
|
|
75
|
+
const input = step.config.bodySchema ? generateTypeFromSchema(step.config.bodySchema) : "Record<string, unknown>";
|
|
76
|
+
const result = step.config.responseSchema ? generateTypesFromResponse(step.config.responseSchema) : "unknown";
|
|
77
|
+
handlers[step.config.name] = {
|
|
78
|
+
type: "ApiRouteHandler",
|
|
79
|
+
generics: [
|
|
80
|
+
input,
|
|
81
|
+
result,
|
|
82
|
+
emits
|
|
83
|
+
]
|
|
84
|
+
};
|
|
85
|
+
} else if (isCronStep(step)) handlers[step.config.name] = {
|
|
86
|
+
type: "CronHandler",
|
|
87
|
+
generics: [emits]
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
return handlers;
|
|
91
|
+
};
|
|
92
|
+
const generateTypesFromStreams = (streams) => {
|
|
93
|
+
return Object.entries(streams).reduce((acc, [key, stream]) => {
|
|
94
|
+
if (!stream.hidden) acc[key] = generateTypeFromSchema(stream.config.schema);
|
|
95
|
+
return acc;
|
|
96
|
+
}, {});
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
//#endregion
|
|
100
|
+
export { generateTypesFromSteps, generateTypesFromStreams, generateTypesString };
|
|
101
|
+
//# sourceMappingURL=generate-types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-types.mjs","names":["handlers: HandlersMap","topics: Record<string, string>","topicsSchemas: Record<string, JsonSchema>","topicsSteps: Record<string, Step[]>","topicIsFifo: Record<string, boolean>","emit"],"sources":["../../../src/types/generate-types.ts"],"sourcesContent":["import { isApiStep, isCronStep, isEventStep } from '../guards'\nimport type { Printer } from '../printer'\nimport { schemaToJsonSchema } from '../schema-utils'\nimport type { Emit, Step } from '../types'\nimport type { Stream } from '../types-stream'\nimport { generateTypeFromSchema } from './generate-type-from-schema'\nimport { generateTypesFromResponse } from './generate-types-from-response'\nimport { mergeSchemas } from './merge-schemas'\nimport type { JsonSchema } from './schema.types'\n\ntype HandlersMap = Record<string, { type: string; generics: string[] }>\ntype StreamsMap = Record<string, string>\n\nexport const generateTypesString = (\n handlers: HandlersMap,\n streams: StreamsMap,\n streamAuthContextType?: string,\n): string => {\n return `/**\n * Automatically generated types for motia\n * Do NOT edit this file manually.\n * \n * Consider adding this file to .prettierignore and eslint ignore.\n */\nimport { EventHandler, ApiRouteHandler, ApiResponse, MotiaStream, CronHandler } from 'motia'\n\ndeclare module 'motia' {\n interface FlowContextStateStreams {\n ${Object.entries(streams)\n .map(([key, value]) => `'${key}': MotiaStream<${value}>`)\n .join('\\n ')\n .trim()}\n }\n\n interface Handlers {\n ${Object.entries(handlers)\n .map(([key, { type, generics }]) => `'${key}': ${type}<${generics.join(', ')}>`)\n .join('\\n ')\n .trim()}\n }\n ${streamAuthContextType ? `interface StreamAuthContext ${streamAuthContextType}` : ''}\n}`\n}\n\nexport const generateTypesFromSteps = (steps: Step[], printer: Printer): HandlersMap => {\n const handlers: HandlersMap = {}\n const topics: Record<string, string> = {}\n const topicsSchemas: Record<string, JsonSchema> = {}\n const topicsSteps: Record<string, Step[]> = {}\n const topicIsFifo: Record<string, boolean> = {}\n\n for (const step of steps) {\n if (isEventStep(step)) {\n if (!step.config.input) {\n for (const topic of step.config.subscribes) {\n if (!topics[topic]) {\n topics[topic] = 'never'\n }\n }\n continue\n }\n\n for (const topic of step.config.subscribes) {\n const existingSchema = topicsSchemas[topic]\n\n topicsSteps[topic] = topicsSteps[topic] ?? []\n topicsSteps[topic].push(step)\n\n const queueType = step.config.infrastructure?.queue?.type\n if (queueType === 'fifo') {\n topicIsFifo[topic] = true\n }\n\n try {\n const input = step.config.input\n const schema = existingSchema\n ? mergeSchemas(existingSchema, input)\n : (schemaToJsonSchema(input) ?? (input as JsonSchema))\n topics[topic] = generateTypeFromSchema(schema)\n topicsSchemas[topic] = schema\n } catch (error) {\n printer.printInvalidSchema(topic, topicsSteps[topic])\n topics[topic] = 'never'\n }\n }\n }\n }\n\n const generateEmitData = (emit: Emit[], step: Step): string => {\n const emits = emit\n .reduce((acc, emit) => {\n const topic = typeof emit === 'string' ? emit : emit.topic\n const topicType = topics[topic]\n\n if (topicType) {\n const isFifo = topicIsFifo[topic]\n if (isFifo) {\n acc.push(`{ topic: '${topic.replace(/'/g, \"\\\\'\")}'; data: ${topicType}; messageGroupId: string }`)\n } else {\n acc.push(`{ topic: '${topic.replace(/'/g, \"\\\\'\")}'; data: ${topicType} }`)\n }\n } else {\n printer.printInvalidEmitConfiguration(step, topic)\n }\n\n return acc\n }, [] as string[])\n .join(' | ')\n\n return emits.length === 0 ? 'never' : emits\n }\n\n for (const step of steps) {\n const emits = 'emits' in step.config ? generateEmitData(step.config.emits, step) : 'never'\n\n if (isEventStep(step)) {\n const input = step.config.input ? generateTypeFromSchema(step.config.input as never as JsonSchema) : 'never'\n handlers[step.config.name] = { type: 'EventHandler', generics: [input, emits] }\n } else if (isApiStep(step)) {\n const input = step.config.bodySchema\n ? generateTypeFromSchema(step.config.bodySchema as never as JsonSchema)\n : 'Record<string, unknown>'\n const result = step.config.responseSchema\n ? generateTypesFromResponse(step.config.responseSchema as never as Record<number, JsonSchema>)\n : 'unknown'\n handlers[step.config.name] = { type: 'ApiRouteHandler', generics: [input, result, emits] }\n } else if (isCronStep(step)) {\n handlers[step.config.name] = { type: 'CronHandler', generics: [emits] }\n }\n }\n\n return handlers\n}\n\nexport const generateTypesFromStreams = (streams: Record<string, Stream>): StreamsMap => {\n return Object.entries(streams).reduce((acc, [key, stream]) => {\n if (!stream.hidden) {\n acc[key] = generateTypeFromSchema(stream.config.schema as unknown as JsonSchema)\n }\n return acc\n }, {} as StreamsMap)\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { JsonSchemaError, isAnyOf } from "./schema.types.mjs";
|
|
2
|
+
import { isZodSchema, schemaToJsonSchema } from "../schema-utils.mjs";
|
|
3
|
+
import * as z$1 from "zod";
|
|
4
|
+
|
|
5
|
+
//#region src/types/merge-schemas.ts
|
|
6
|
+
const isJsonSchema = (value) => {
|
|
7
|
+
return typeof value === "object" && value !== null && !Array.isArray(value) && typeof value !== "boolean";
|
|
8
|
+
};
|
|
9
|
+
const isCompatible = (schema, otherSchema) => {
|
|
10
|
+
if (isAnyOf(schema)) return schema.anyOf.every((item) => isCompatible(item, otherSchema));
|
|
11
|
+
else if (isAnyOf(otherSchema)) return otherSchema.anyOf.every((item) => isCompatible(schema, item));
|
|
12
|
+
if (schema.type !== otherSchema.type) return false;
|
|
13
|
+
if (schema.type === "array" && otherSchema.type === "array") {
|
|
14
|
+
if (!schema.items || !otherSchema.items) return schema.items === otherSchema.items;
|
|
15
|
+
if (Array.isArray(schema.items) || Array.isArray(otherSchema.items)) return false;
|
|
16
|
+
if (isJsonSchema(schema.items) && isJsonSchema(otherSchema.items)) return isCompatible(schema.items, otherSchema.items);
|
|
17
|
+
return schema.items === otherSchema.items;
|
|
18
|
+
}
|
|
19
|
+
if (schema.type === "object" && otherSchema.type === "object") {
|
|
20
|
+
const schemaProps = schema.properties;
|
|
21
|
+
const otherSchemaProps = otherSchema.properties;
|
|
22
|
+
if (!schemaProps || !otherSchemaProps) return schemaProps === otherSchemaProps;
|
|
23
|
+
const keysFromSchema = Object.keys(schemaProps);
|
|
24
|
+
const keysFromOtherSchema = Object.keys(otherSchemaProps);
|
|
25
|
+
const commonKeys = keysFromSchema.filter((key) => keysFromOtherSchema.includes(key));
|
|
26
|
+
if (schema.required?.some((key) => !keysFromOtherSchema.includes(key))) return false;
|
|
27
|
+
else if (otherSchema.required?.some((key) => !keysFromSchema.includes(key))) return false;
|
|
28
|
+
if (commonKeys.length > 0) return commonKeys.every((key) => {
|
|
29
|
+
const prop1 = schemaProps[key];
|
|
30
|
+
const prop2 = otherSchemaProps[key];
|
|
31
|
+
if (isJsonSchema(prop1) && isJsonSchema(prop2)) return isCompatible(prop1, prop2);
|
|
32
|
+
return prop1 === prop2;
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
return true;
|
|
36
|
+
};
|
|
37
|
+
const mergeZodSchemas = (schema, otherSchema) => {
|
|
38
|
+
try {
|
|
39
|
+
return z$1.intersection(schema, otherSchema);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
throw new JsonSchemaError(`Cannot merge Zod schemas: ${error instanceof Error ? error.message : "Unknown error"}`);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
const mergeSchemas = (schema, otherSchema) => {
|
|
45
|
+
if (isZodSchema(schema) && isZodSchema(otherSchema)) {
|
|
46
|
+
const jsonSchema = schemaToJsonSchema(mergeZodSchemas(schema, otherSchema));
|
|
47
|
+
if (!jsonSchema) throw new JsonSchemaError("Failed to convert merged Zod schema to JSON Schema");
|
|
48
|
+
return jsonSchema;
|
|
49
|
+
}
|
|
50
|
+
const schemaJsonResult = schemaToJsonSchema(schema);
|
|
51
|
+
const otherSchemaJsonResult = schemaToJsonSchema(otherSchema);
|
|
52
|
+
if (!schemaJsonResult || !otherSchemaJsonResult) throw new JsonSchemaError("Cannot merge schemas: failed to convert to JSON Schema");
|
|
53
|
+
const schemaJson = schemaJsonResult;
|
|
54
|
+
const otherSchemaJson = otherSchemaJsonResult;
|
|
55
|
+
if (!isCompatible(schemaJson, otherSchemaJson)) throw new JsonSchemaError("Cannot merge schemas of different types");
|
|
56
|
+
if (isAnyOf(schemaJson)) return { anyOf: schemaJson.anyOf.map((item) => mergeSchemas(item, otherSchemaJson)) };
|
|
57
|
+
else if (isAnyOf(otherSchemaJson)) return { anyOf: otherSchemaJson.anyOf.map((item) => mergeSchemas(schemaJson, item)) };
|
|
58
|
+
if (schemaJson.type === "object" && otherSchemaJson.type === "object") {
|
|
59
|
+
const schemaProps = schemaJson.properties;
|
|
60
|
+
const otherSchemaProps = otherSchemaJson.properties;
|
|
61
|
+
if (!schemaProps || !otherSchemaProps) throw new JsonSchemaError("Cannot merge object schemas without properties");
|
|
62
|
+
const mergedProperties = {
|
|
63
|
+
...schemaProps,
|
|
64
|
+
...otherSchemaProps
|
|
65
|
+
};
|
|
66
|
+
const otherSchemaKeys = Object.keys(otherSchemaProps).reduce((acc, key) => {
|
|
67
|
+
acc[key] = true;
|
|
68
|
+
return acc;
|
|
69
|
+
}, {});
|
|
70
|
+
for (const key in schemaProps) if (otherSchemaKeys[key]) {
|
|
71
|
+
const prop1 = schemaProps[key];
|
|
72
|
+
const prop2 = otherSchemaProps[key];
|
|
73
|
+
if (isJsonSchema(prop1) && isJsonSchema(prop2)) mergedProperties[key] = mergeSchemas(prop1, prop2);
|
|
74
|
+
else mergedProperties[key] = prop2;
|
|
75
|
+
}
|
|
76
|
+
const schemaRequired = schemaJson.required;
|
|
77
|
+
const otherSchemaRequired = otherSchemaJson.required;
|
|
78
|
+
const mergedRequired = new Set([...schemaRequired ?? [], ...otherSchemaRequired ?? []]);
|
|
79
|
+
return {
|
|
80
|
+
type: "object",
|
|
81
|
+
properties: mergedProperties,
|
|
82
|
+
required: Array.from(mergedRequired)
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
if (schemaJson.type === "array" && otherSchemaJson.type === "array") {
|
|
86
|
+
if (!schemaJson.items || !otherSchemaJson.items) throw new JsonSchemaError("Cannot merge array schemas without items");
|
|
87
|
+
if (Array.isArray(schemaJson.items) || Array.isArray(otherSchemaJson.items)) throw new JsonSchemaError("Cannot merge array schemas with array items");
|
|
88
|
+
if (!isJsonSchema(schemaJson.items) || !isJsonSchema(otherSchemaJson.items)) throw new JsonSchemaError("Cannot merge array schemas with non-object items");
|
|
89
|
+
return {
|
|
90
|
+
type: "array",
|
|
91
|
+
items: mergeSchemas(schemaJson.items, otherSchemaJson.items)
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
type: schemaJson.type,
|
|
96
|
+
description: schemaJson.description ?? otherSchemaJson.description
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
export { mergeSchemas };
|
|
102
|
+
//# sourceMappingURL=merge-schemas.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-schemas.mjs","names":["z","mergedProperties: Record<string, JSONSchema._JSONSchema>"],"sources":["../../../src/types/merge-schemas.ts"],"sourcesContent":["import * as z from 'zod'\nimport type { JSONSchema } from 'zod/v4/core'\nimport { isZodSchema, type SchemaInput, schemaToJsonSchema } from '../schema-utils'\nimport { isAnyOf, type JsonSchema, JsonSchemaError } from './schema.types'\n\nconst isJsonSchema = (value: unknown): value is JsonSchema => {\n return typeof value === 'object' && value !== null && !Array.isArray(value) && typeof value !== 'boolean'\n}\n\nexport const isCompatible = (schema: JsonSchema, otherSchema: JsonSchema): boolean => {\n if (isAnyOf(schema)) {\n return schema.anyOf.every((item) => isCompatible(item, otherSchema))\n } else if (isAnyOf(otherSchema)) {\n return otherSchema.anyOf.every((item) => isCompatible(schema, item))\n }\n\n if (schema.type !== otherSchema.type) {\n return false\n }\n\n if (schema.type === 'array' && otherSchema.type === 'array') {\n if (!schema.items || !otherSchema.items) {\n return schema.items === otherSchema.items\n }\n if (Array.isArray(schema.items) || Array.isArray(otherSchema.items)) {\n return false\n }\n if (isJsonSchema(schema.items) && isJsonSchema(otherSchema.items)) {\n return isCompatible(schema.items, otherSchema.items)\n }\n return schema.items === otherSchema.items\n }\n\n if (schema.type === 'object' && otherSchema.type === 'object') {\n const schemaProps = schema.properties\n const otherSchemaProps = otherSchema.properties\n if (!schemaProps || !otherSchemaProps) {\n return schemaProps === otherSchemaProps\n }\n const keysFromSchema = Object.keys(schemaProps)\n const keysFromOtherSchema = Object.keys(otherSchemaProps)\n const commonKeys = keysFromSchema.filter((key) => keysFromOtherSchema.includes(key))\n\n if (schema.required?.some((key) => !keysFromOtherSchema.includes(key))) {\n return false\n } else if (otherSchema.required?.some((key) => !keysFromSchema.includes(key))) {\n return false\n }\n\n if (commonKeys.length > 0) {\n return commonKeys.every((key) => {\n const prop1 = schemaProps[key]\n const prop2 = otherSchemaProps[key]\n if (isJsonSchema(prop1) && isJsonSchema(prop2)) {\n return isCompatible(prop1, prop2)\n }\n return prop1 === prop2\n })\n }\n }\n\n return true\n}\n\nconst mergeZodSchemas = (schema: z.ZodType, otherSchema: z.ZodType): z.ZodType => {\n try {\n return z.intersection(schema, otherSchema)\n } catch (error) {\n throw new JsonSchemaError(`Cannot merge Zod schemas: ${error instanceof Error ? error.message : 'Unknown error'}`)\n }\n}\n\nexport const mergeSchemas = (schema: SchemaInput, otherSchema: SchemaInput): JsonSchema => {\n if (isZodSchema(schema) && isZodSchema(otherSchema)) {\n const mergedZodSchema = mergeZodSchemas(schema, otherSchema)\n const jsonSchema = schemaToJsonSchema(mergedZodSchema)\n if (!jsonSchema) {\n throw new JsonSchemaError('Failed to convert merged Zod schema to JSON Schema')\n }\n return jsonSchema as JsonSchema\n }\n\n const schemaJsonResult = schemaToJsonSchema(schema)\n const otherSchemaJsonResult = schemaToJsonSchema(otherSchema)\n\n if (!schemaJsonResult || !otherSchemaJsonResult) {\n throw new JsonSchemaError('Cannot merge schemas: failed to convert to JSON Schema')\n }\n\n const schemaJson = schemaJsonResult as JsonSchema\n const otherSchemaJson = otherSchemaJsonResult as JsonSchema\n\n if (!isCompatible(schemaJson, otherSchemaJson)) {\n throw new JsonSchemaError('Cannot merge schemas of different types')\n }\n\n if (isAnyOf(schemaJson)) {\n return {\n anyOf: schemaJson.anyOf.map((item) => mergeSchemas(item, otherSchemaJson)),\n }\n } else if (isAnyOf(otherSchemaJson)) {\n return {\n anyOf: otherSchemaJson.anyOf.map((item) => mergeSchemas(schemaJson, item)),\n }\n }\n\n if (schemaJson.type === 'object' && otherSchemaJson.type === 'object') {\n const schemaProps = schemaJson.properties as Record<string, JSONSchema._JSONSchema> | undefined\n const otherSchemaProps = otherSchemaJson.properties as Record<string, JSONSchema._JSONSchema> | undefined\n if (!schemaProps || !otherSchemaProps) {\n throw new JsonSchemaError('Cannot merge object schemas without properties')\n }\n const mergedProperties: Record<string, JSONSchema._JSONSchema> = { ...schemaProps, ...otherSchemaProps }\n const otherSchemaKeys = Object.keys(otherSchemaProps).reduce(\n (acc, key) => {\n acc[key] = true\n return acc\n },\n {} as Record<string, boolean>,\n )\n\n for (const key in schemaProps) {\n if (otherSchemaKeys[key]) {\n const prop1 = schemaProps[key]\n const prop2 = otherSchemaProps[key]\n if (isJsonSchema(prop1) && isJsonSchema(prop2)) {\n mergedProperties[key] = mergeSchemas(prop1, prop2)\n } else {\n mergedProperties[key] = prop2\n }\n }\n }\n\n const schemaRequired = schemaJson.required as string[] | undefined\n const otherSchemaRequired = otherSchemaJson.required as string[] | undefined\n const mergedRequired = new Set([...(schemaRequired ?? []), ...(otherSchemaRequired ?? [])])\n\n return {\n type: 'object',\n properties: mergedProperties,\n required: Array.from(mergedRequired),\n }\n }\n\n if (schemaJson.type === 'array' && otherSchemaJson.type === 'array') {\n if (!schemaJson.items || !otherSchemaJson.items) {\n throw new JsonSchemaError('Cannot merge array schemas without items')\n }\n if (Array.isArray(schemaJson.items) || Array.isArray(otherSchemaJson.items)) {\n throw new JsonSchemaError('Cannot merge array schemas with array items')\n }\n if (!isJsonSchema(schemaJson.items) || !isJsonSchema(otherSchemaJson.items)) {\n throw new JsonSchemaError('Cannot merge array schemas with non-object items')\n }\n return {\n type: 'array',\n items: mergeSchemas(schemaJson.items, otherSchemaJson.items),\n }\n }\n\n return {\n type: schemaJson.type as JSONSchema.BaseSchema['type'],\n description: (schemaJson.description ?? otherSchemaJson.description) as string | undefined,\n }\n}\n"],"mappings":";;;;;AAKA,MAAM,gBAAgB,UAAwC;AAC5D,QAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,MAAM,IAAI,OAAO,UAAU;;AAGlG,MAAa,gBAAgB,QAAoB,gBAAqC;AACpF,KAAI,QAAQ,OAAO,CACjB,QAAO,OAAO,MAAM,OAAO,SAAS,aAAa,MAAM,YAAY,CAAC;UAC3D,QAAQ,YAAY,CAC7B,QAAO,YAAY,MAAM,OAAO,SAAS,aAAa,QAAQ,KAAK,CAAC;AAGtE,KAAI,OAAO,SAAS,YAAY,KAC9B,QAAO;AAGT,KAAI,OAAO,SAAS,WAAW,YAAY,SAAS,SAAS;AAC3D,MAAI,CAAC,OAAO,SAAS,CAAC,YAAY,MAChC,QAAO,OAAO,UAAU,YAAY;AAEtC,MAAI,MAAM,QAAQ,OAAO,MAAM,IAAI,MAAM,QAAQ,YAAY,MAAM,CACjE,QAAO;AAET,MAAI,aAAa,OAAO,MAAM,IAAI,aAAa,YAAY,MAAM,CAC/D,QAAO,aAAa,OAAO,OAAO,YAAY,MAAM;AAEtD,SAAO,OAAO,UAAU,YAAY;;AAGtC,KAAI,OAAO,SAAS,YAAY,YAAY,SAAS,UAAU;EAC7D,MAAM,cAAc,OAAO;EAC3B,MAAM,mBAAmB,YAAY;AACrC,MAAI,CAAC,eAAe,CAAC,iBACnB,QAAO,gBAAgB;EAEzB,MAAM,iBAAiB,OAAO,KAAK,YAAY;EAC/C,MAAM,sBAAsB,OAAO,KAAK,iBAAiB;EACzD,MAAM,aAAa,eAAe,QAAQ,QAAQ,oBAAoB,SAAS,IAAI,CAAC;AAEpF,MAAI,OAAO,UAAU,MAAM,QAAQ,CAAC,oBAAoB,SAAS,IAAI,CAAC,CACpE,QAAO;WACE,YAAY,UAAU,MAAM,QAAQ,CAAC,eAAe,SAAS,IAAI,CAAC,CAC3E,QAAO;AAGT,MAAI,WAAW,SAAS,EACtB,QAAO,WAAW,OAAO,QAAQ;GAC/B,MAAM,QAAQ,YAAY;GAC1B,MAAM,QAAQ,iBAAiB;AAC/B,OAAI,aAAa,MAAM,IAAI,aAAa,MAAM,CAC5C,QAAO,aAAa,OAAO,MAAM;AAEnC,UAAO,UAAU;IACjB;;AAIN,QAAO;;AAGT,MAAM,mBAAmB,QAAmB,gBAAsC;AAChF,KAAI;AACF,SAAOA,IAAE,aAAa,QAAQ,YAAY;UACnC,OAAO;AACd,QAAM,IAAI,gBAAgB,6BAA6B,iBAAiB,QAAQ,MAAM,UAAU,kBAAkB;;;AAItH,MAAa,gBAAgB,QAAqB,gBAAyC;AACzF,KAAI,YAAY,OAAO,IAAI,YAAY,YAAY,EAAE;EAEnD,MAAM,aAAa,mBADK,gBAAgB,QAAQ,YAAY,CACN;AACtD,MAAI,CAAC,WACH,OAAM,IAAI,gBAAgB,qDAAqD;AAEjF,SAAO;;CAGT,MAAM,mBAAmB,mBAAmB,OAAO;CACnD,MAAM,wBAAwB,mBAAmB,YAAY;AAE7D,KAAI,CAAC,oBAAoB,CAAC,sBACxB,OAAM,IAAI,gBAAgB,yDAAyD;CAGrF,MAAM,aAAa;CACnB,MAAM,kBAAkB;AAExB,KAAI,CAAC,aAAa,YAAY,gBAAgB,CAC5C,OAAM,IAAI,gBAAgB,0CAA0C;AAGtE,KAAI,QAAQ,WAAW,CACrB,QAAO,EACL,OAAO,WAAW,MAAM,KAAK,SAAS,aAAa,MAAM,gBAAgB,CAAC,EAC3E;UACQ,QAAQ,gBAAgB,CACjC,QAAO,EACL,OAAO,gBAAgB,MAAM,KAAK,SAAS,aAAa,YAAY,KAAK,CAAC,EAC3E;AAGH,KAAI,WAAW,SAAS,YAAY,gBAAgB,SAAS,UAAU;EACrE,MAAM,cAAc,WAAW;EAC/B,MAAM,mBAAmB,gBAAgB;AACzC,MAAI,CAAC,eAAe,CAAC,iBACnB,OAAM,IAAI,gBAAgB,iDAAiD;EAE7E,MAAMC,mBAA2D;GAAE,GAAG;GAAa,GAAG;GAAkB;EACxG,MAAM,kBAAkB,OAAO,KAAK,iBAAiB,CAAC,QACnD,KAAK,QAAQ;AACZ,OAAI,OAAO;AACX,UAAO;KAET,EAAE,CACH;AAED,OAAK,MAAM,OAAO,YAChB,KAAI,gBAAgB,MAAM;GACxB,MAAM,QAAQ,YAAY;GAC1B,MAAM,QAAQ,iBAAiB;AAC/B,OAAI,aAAa,MAAM,IAAI,aAAa,MAAM,CAC5C,kBAAiB,OAAO,aAAa,OAAO,MAAM;OAElD,kBAAiB,OAAO;;EAK9B,MAAM,iBAAiB,WAAW;EAClC,MAAM,sBAAsB,gBAAgB;EAC5C,MAAM,iBAAiB,IAAI,IAAI,CAAC,GAAI,kBAAkB,EAAE,EAAG,GAAI,uBAAuB,EAAE,CAAE,CAAC;AAE3F,SAAO;GACL,MAAM;GACN,YAAY;GACZ,UAAU,MAAM,KAAK,eAAe;GACrC;;AAGH,KAAI,WAAW,SAAS,WAAW,gBAAgB,SAAS,SAAS;AACnE,MAAI,CAAC,WAAW,SAAS,CAAC,gBAAgB,MACxC,OAAM,IAAI,gBAAgB,2CAA2C;AAEvE,MAAI,MAAM,QAAQ,WAAW,MAAM,IAAI,MAAM,QAAQ,gBAAgB,MAAM,CACzE,OAAM,IAAI,gBAAgB,8CAA8C;AAE1E,MAAI,CAAC,aAAa,WAAW,MAAM,IAAI,CAAC,aAAa,gBAAgB,MAAM,CACzE,OAAM,IAAI,gBAAgB,mDAAmD;AAE/E,SAAO;GACL,MAAM;GACN,OAAO,aAAa,WAAW,OAAO,gBAAgB,MAAM;GAC7D;;AAGH,QAAO;EACL,MAAM,WAAW;EACjB,aAAc,WAAW,eAAe,gBAAgB;EACzD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { JSONSchema } from "zod/v4/core";
|
|
2
|
+
|
|
3
|
+
//#region src/types/schema.types.d.ts
|
|
4
|
+
type JsonSchema = JSONSchema.BaseSchema;
|
|
5
|
+
declare class JsonSchemaError extends Error {
|
|
6
|
+
constructor(message: string);
|
|
7
|
+
}
|
|
8
|
+
declare const isAnyOf: (schema: JsonSchema) => schema is JSONSchema.BaseSchema & {
|
|
9
|
+
anyOf: JSONSchema.BaseSchema[];
|
|
10
|
+
};
|
|
11
|
+
//#endregion
|
|
12
|
+
export { JsonSchema, JsonSchemaError, isAnyOf };
|
|
13
|
+
//# sourceMappingURL=schema.types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.types.d.mts","names":[],"sources":["../../../src/types/schema.types.ts"],"sourcesContent":[],"mappings":";;;KAEY,UAAA,GAAa,UAAA,CAAW;cAEvB,eAAA,SAAwB,KAAA;EAFzB,WAAA,CAAA,OAAU,EAAA,MAAG;AAEzB;AAOa,cAAA,OAEZ,EAAA,CAAA,MAAA,EAF+B,UAE/B,EAAA,GAAA,MAAA,IAFsD,UAAA,CAAW,UAEjE,GAAA;EAF+B,KAAA,EAAwD,UAAA,CAAW,UAAnE,EAAA;CAAuB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/types/schema.types.ts
|
|
2
|
+
var JsonSchemaError = class extends Error {
|
|
3
|
+
constructor(message) {
|
|
4
|
+
super(message);
|
|
5
|
+
this.name = "JsonSchemaError";
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
const isAnyOf = (schema) => {
|
|
9
|
+
return typeof schema === "object" && schema !== null && "anyOf" in schema;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
//#endregion
|
|
13
|
+
export { JsonSchemaError, isAnyOf };
|
|
14
|
+
//# sourceMappingURL=schema.types.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.types.mjs","names":[],"sources":["../../../src/types/schema.types.ts"],"sourcesContent":["import type { JSONSchema } from 'zod/v4/core'\n\nexport type JsonSchema = JSONSchema.BaseSchema\n\nexport class JsonSchemaError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'JsonSchemaError'\n }\n}\n\nexport const isAnyOf = (schema: JsonSchema): schema is JSONSchema.BaseSchema & { anyOf: JSONSchema.BaseSchema[] } => {\n return typeof schema === 'object' && schema !== null && 'anyOf' in schema\n}\n"],"mappings":";AAIA,IAAa,kBAAb,cAAqC,MAAM;CACzC,YAAY,SAAiB;AAC3B,QAAM,QAAQ;AACd,OAAK,OAAO;;;AAIhB,MAAa,WAAW,WAA6F;AACnH,QAAO,OAAO,WAAW,YAAY,WAAW,QAAQ,WAAW"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { StreamFactory } from "./streams/stream-factory.mjs";
|
|
2
|
+
import { StepSchemaInput } from "./types.mjs";
|
|
3
|
+
|
|
4
|
+
//#region src/types-stream.d.ts
|
|
5
|
+
type StreamSubscription = {
|
|
6
|
+
groupId: string;
|
|
7
|
+
id?: string;
|
|
8
|
+
};
|
|
9
|
+
interface StreamConfig {
|
|
10
|
+
name: string;
|
|
11
|
+
schema: StepSchemaInput;
|
|
12
|
+
baseConfig: {
|
|
13
|
+
storageType: 'default';
|
|
14
|
+
} | {
|
|
15
|
+
storageType: 'custom';
|
|
16
|
+
factory: () => MotiaStream<any>;
|
|
17
|
+
};
|
|
18
|
+
canAccess?: (subscription: StreamSubscription, authContext: any) => boolean | Promise<boolean>;
|
|
19
|
+
}
|
|
20
|
+
type StateStreamEventChannel = {
|
|
21
|
+
groupId: string;
|
|
22
|
+
id?: string;
|
|
23
|
+
};
|
|
24
|
+
type StateStreamEvent<TData> = {
|
|
25
|
+
type: string;
|
|
26
|
+
data: TData;
|
|
27
|
+
};
|
|
28
|
+
type BaseStreamItem<TData = unknown> = TData & {
|
|
29
|
+
id: string;
|
|
30
|
+
};
|
|
31
|
+
type Stream<TConfig extends StreamConfig = StreamConfig> = {
|
|
32
|
+
filePath: string;
|
|
33
|
+
config: TConfig;
|
|
34
|
+
hidden?: boolean;
|
|
35
|
+
factory: StreamFactory<unknown>;
|
|
36
|
+
};
|
|
37
|
+
interface MotiaStream<TData> {
|
|
38
|
+
get(groupId: string, id: string): Promise<BaseStreamItem<TData> | null>;
|
|
39
|
+
set(groupId: string, id: string, data: TData): Promise<BaseStreamItem<TData>>;
|
|
40
|
+
delete(groupId: string, id: string): Promise<BaseStreamItem<TData> | null>;
|
|
41
|
+
getGroup(groupId: string): Promise<BaseStreamItem<TData>[]>;
|
|
42
|
+
send<T>(channel: StateStreamEventChannel, event: StateStreamEvent<T>): Promise<void>;
|
|
43
|
+
}
|
|
44
|
+
//#endregion
|
|
45
|
+
export { BaseStreamItem, MotiaStream, StateStreamEvent, StateStreamEventChannel, Stream, StreamConfig, StreamSubscription };
|
|
46
|
+
//# sourceMappingURL=types-stream.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types-stream.d.mts","names":[],"sources":["../../src/types-stream.ts"],"sourcesContent":[],"mappings":";;;;KAGY,kBAAA;;EAAA,EAAA,CAAA,EAAA,MAAA;AAEZ,CAAA;AAEU,UAFO,YAAA,CAEP;EACyE,IAAA,EAAA,MAAA;EACtD,MAAA,EAFnB,eAEmB;EAAmD,UAAA,EAAA;IAAO,WAAA,EAAA,SAAA;EAG3E,CAAA,GAAA;IACA,WAAA,EAAA,QAAgB;IAEhB,OAAA,EAAA,GAAA,GAPuE,WAOzD,CAAA,GAAoB,CAAA;EAElC,CAAA;EAAuB,SAAA,CAAA,EAAA,CAAA,YAAA,EARN,kBAQM,EAAA,WAAA,EAAA,GAAA,EAAA,GAAA,OAAA,GAR6C,OAQ7C,CAAA,OAAA,CAAA;;AAEzB,KAPE,uBAAA,GAOF;EAEC,OAAA,EAAA,MAAA;EAAa,EAAA,CAAA,EAAA,MAAA;AAGxB,CAAA;AAC2D,KAZ/C,gBAY+C,CAAA,KAAA,CAAA,GAAA;EAAf,IAAA,EAAA,MAAA;EAAR,IAAA,EAZwB,KAYxB;CACK;AAA+B,KAX5D,cAW4D,CAAA,QAAA,OAAA,CAAA,GAX1B,KAW0B,GAAA;EAAf,EAAA,EAAA,MAAA;CAAR;AACa,KAVlD,MAUkD,CAAA,gBAV3B,YAU2B,GAVZ,YAUY,CAAA,GAAA;EAAf,QAAA,EAAA,MAAA;EAAR,MAAA,EAR7B,OAQ6B;EACa,MAAA,CAAA,EAAA,OAAA;EAAf,OAAA,EAP1B,aAO0B,CAAA,OAAA,CAAA;CAAR;AAEV,UANF,WAME,CAAA,KAAA,CAAA,CAAA;EAAiD,GAAA,CAAA,OAAA,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EALhC,OAKgC,CALxB,cAKwB,CALT,KAKS,CAAA,GAAA,IAAA,CAAA;EAAjB,GAAA,CAAA,OAAA,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,IAAA,EAJV,KAIU,CAAA,EAJF,OAIE,CAJM,cAIN,CAJqB,KAIrB,CAAA,CAAA;EAAsB,MAAA,CAAA,OAAA,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,CAAA,EAHlC,OAGkC,CAH1B,cAG0B,CAHX,KAGW,CAAA,GAAA,IAAA,CAAA;EAAO,QAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAFnD,OAEmD,CAF3C,cAE2C,CAF5B,KAE4B,CAAA,EAAA,CAAA;mBAA7D,gCAAgC,iBAAiB,KAAK"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { Logger } from "./logger.mjs";
|
|
2
|
+
import { Tracer } from "./adapters/interfaces/observability-adapter.interface.mjs";
|
|
3
|
+
import "./observability/index.mjs";
|
|
4
|
+
import { JsonSchema } from "./types/schema.types.mjs";
|
|
5
|
+
import { AdapterConfig, Config, MotiaPlugin, MotiaPluginBuilder, StreamAuthConfig, StreamAuthRequest, WorkbenchPlugin } from "./types/app-config-types.mjs";
|
|
6
|
+
import { ZodArray, ZodObject } from "zod";
|
|
7
|
+
|
|
8
|
+
//#region src/types.d.ts
|
|
9
|
+
type ZodInput = ZodObject<any> | ZodArray<any>;
|
|
10
|
+
type StepSchemaInput = ZodInput | JsonSchema;
|
|
11
|
+
type InternalStateManager = {
|
|
12
|
+
get<T>(groupId: string, key: string): Promise<T | null>;
|
|
13
|
+
set<T>(groupId: string, key: string, value: T): Promise<T>;
|
|
14
|
+
delete<T>(groupId: string, key: string): Promise<T | null>;
|
|
15
|
+
getGroup<T>(groupId: string): Promise<T[]>;
|
|
16
|
+
clear(groupId: string): Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
type EmitData = {
|
|
19
|
+
topic: '';
|
|
20
|
+
data: unknown;
|
|
21
|
+
messageGroupId?: string;
|
|
22
|
+
};
|
|
23
|
+
type Emitter<TData> = (event: TData) => Promise<void>;
|
|
24
|
+
interface FlowContextStateStreams {}
|
|
25
|
+
interface FlowContext<TEmitData = never> {
|
|
26
|
+
emit: Emitter<TEmitData>;
|
|
27
|
+
traceId: string;
|
|
28
|
+
state: InternalStateManager;
|
|
29
|
+
logger: Logger;
|
|
30
|
+
streams: FlowContextStateStreams;
|
|
31
|
+
}
|
|
32
|
+
type EventHandler<TInput, TEmitData> = (input: TInput, ctx: FlowContext<TEmitData>) => Promise<void>;
|
|
33
|
+
type Emit = string | {
|
|
34
|
+
topic: string;
|
|
35
|
+
label?: string;
|
|
36
|
+
conditional?: boolean;
|
|
37
|
+
};
|
|
38
|
+
type HandlerConfig = {
|
|
39
|
+
ram: number;
|
|
40
|
+
cpu?: number;
|
|
41
|
+
timeout: number;
|
|
42
|
+
};
|
|
43
|
+
type QueueConfig = {
|
|
44
|
+
type: 'fifo' | 'standard';
|
|
45
|
+
maxRetries: number;
|
|
46
|
+
visibilityTimeout: number;
|
|
47
|
+
delaySeconds: number;
|
|
48
|
+
};
|
|
49
|
+
type InfrastructureConfig = {
|
|
50
|
+
handler?: Partial<HandlerConfig>;
|
|
51
|
+
queue?: Partial<QueueConfig>;
|
|
52
|
+
};
|
|
53
|
+
type EventConfig = {
|
|
54
|
+
type: 'event';
|
|
55
|
+
name: string;
|
|
56
|
+
description?: string;
|
|
57
|
+
subscribes: string[];
|
|
58
|
+
emits: Emit[];
|
|
59
|
+
virtualEmits?: Emit[];
|
|
60
|
+
virtualSubscribes?: string[];
|
|
61
|
+
input?: StepSchemaInput;
|
|
62
|
+
flows?: string[];
|
|
63
|
+
/**
|
|
64
|
+
* Files to include in the step bundle.
|
|
65
|
+
* Needs to be relative to the step file.
|
|
66
|
+
*/
|
|
67
|
+
includeFiles?: string[];
|
|
68
|
+
infrastructure?: Partial<InfrastructureConfig>;
|
|
69
|
+
};
|
|
70
|
+
type NoopConfig = {
|
|
71
|
+
type: 'noop';
|
|
72
|
+
name: string;
|
|
73
|
+
description?: string;
|
|
74
|
+
virtualEmits: Emit[];
|
|
75
|
+
virtualSubscribes: string[];
|
|
76
|
+
flows?: string[];
|
|
77
|
+
};
|
|
78
|
+
type ApiRouteMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' | 'OPTIONS' | 'HEAD';
|
|
79
|
+
type ApiMiddleware<TBody = unknown, TEmitData = never, TResult = unknown> = (req: ApiRequest<TBody>, ctx: FlowContext<TEmitData>, next: () => Promise<ApiResponse<number, TResult>>) => Promise<ApiResponse<number, TResult>>;
|
|
80
|
+
interface QueryParam {
|
|
81
|
+
name: string;
|
|
82
|
+
description: string;
|
|
83
|
+
}
|
|
84
|
+
interface ApiRouteConfig {
|
|
85
|
+
type: 'api';
|
|
86
|
+
name: string;
|
|
87
|
+
description?: string;
|
|
88
|
+
path: string;
|
|
89
|
+
method: ApiRouteMethod;
|
|
90
|
+
emits: Emit[];
|
|
91
|
+
virtualEmits?: Emit[];
|
|
92
|
+
virtualSubscribes?: string[];
|
|
93
|
+
flows?: string[];
|
|
94
|
+
middleware?: ApiMiddleware<any, any, any>[];
|
|
95
|
+
bodySchema?: StepSchemaInput;
|
|
96
|
+
responseSchema?: Record<number, StepSchemaInput>;
|
|
97
|
+
queryParams?: QueryParam[];
|
|
98
|
+
/**
|
|
99
|
+
* Files to include in the step bundle.
|
|
100
|
+
* Needs to be relative to the step file.
|
|
101
|
+
*/
|
|
102
|
+
includeFiles?: string[];
|
|
103
|
+
}
|
|
104
|
+
interface ApiRequest<TBody = unknown> {
|
|
105
|
+
pathParams: Record<string, string>;
|
|
106
|
+
queryParams: Record<string, string | string[]>;
|
|
107
|
+
body: TBody;
|
|
108
|
+
headers: Record<string, string | string[]>;
|
|
109
|
+
}
|
|
110
|
+
type ApiResponse<TStatus extends number = number, TBody = string | Buffer | Record<string, unknown>> = {
|
|
111
|
+
status: TStatus;
|
|
112
|
+
headers?: Record<string, string>;
|
|
113
|
+
body: TBody;
|
|
114
|
+
};
|
|
115
|
+
type ApiRouteHandler<TRequestBody = unknown, TResponseBody extends ApiResponse<number, unknown> = ApiResponse<number, unknown>, TEmitData = never> = (req: ApiRequest<TRequestBody>, ctx: FlowContext<TEmitData>) => Promise<TResponseBody>;
|
|
116
|
+
type CronConfig = {
|
|
117
|
+
type: 'cron';
|
|
118
|
+
name: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
cron: string;
|
|
121
|
+
virtualEmits?: Emit[];
|
|
122
|
+
virtualSubscribes?: string[];
|
|
123
|
+
emits: Emit[];
|
|
124
|
+
flows?: string[];
|
|
125
|
+
/**
|
|
126
|
+
* Files to include in the step bundle.
|
|
127
|
+
* Needs to be relative to the step file.
|
|
128
|
+
*/
|
|
129
|
+
includeFiles?: string[];
|
|
130
|
+
};
|
|
131
|
+
type CronHandler<TEmitData = never> = (ctx: FlowContext<TEmitData>) => Promise<void>;
|
|
132
|
+
/**
|
|
133
|
+
* @deprecated Use `Handlers` instead.
|
|
134
|
+
*/
|
|
135
|
+
type StepHandler<T> = T extends EventConfig ? EventHandler<unknown, {
|
|
136
|
+
topic: string;
|
|
137
|
+
data: any;
|
|
138
|
+
}> : T extends ApiRouteConfig ? ApiRouteHandler<any, ApiResponse<number, any>, {
|
|
139
|
+
topic: string;
|
|
140
|
+
data: any;
|
|
141
|
+
}> : T extends CronConfig ? CronHandler<{
|
|
142
|
+
topic: string;
|
|
143
|
+
data: any;
|
|
144
|
+
}> : never;
|
|
145
|
+
type Event<TData = unknown> = {
|
|
146
|
+
topic: string;
|
|
147
|
+
data: TData;
|
|
148
|
+
traceId: string;
|
|
149
|
+
flows?: string[];
|
|
150
|
+
logger: Logger;
|
|
151
|
+
tracer: Tracer;
|
|
152
|
+
messageGroupId?: string;
|
|
153
|
+
};
|
|
154
|
+
type Handler<TData = unknown> = (event: Event<TData>) => Promise<void>;
|
|
155
|
+
type SubscribeConfig<TData> = {
|
|
156
|
+
event: string;
|
|
157
|
+
handlerName: string;
|
|
158
|
+
filePath: string;
|
|
159
|
+
handler: Handler<TData>;
|
|
160
|
+
};
|
|
161
|
+
type UnsubscribeConfig = {
|
|
162
|
+
filePath: string;
|
|
163
|
+
event: string;
|
|
164
|
+
};
|
|
165
|
+
type StepConfig = EventConfig | NoopConfig | ApiRouteConfig | CronConfig;
|
|
166
|
+
type Step<TConfig extends StepConfig = StepConfig> = {
|
|
167
|
+
filePath: string;
|
|
168
|
+
version: string;
|
|
169
|
+
config: TConfig;
|
|
170
|
+
};
|
|
171
|
+
type PluginStep<TConfig extends StepConfig = ApiRouteConfig> = Step<TConfig> & {
|
|
172
|
+
handler?: ApiRouteHandler<any, any, any>;
|
|
173
|
+
};
|
|
174
|
+
type Flow = {
|
|
175
|
+
name: string;
|
|
176
|
+
description?: string;
|
|
177
|
+
steps: Step[];
|
|
178
|
+
};
|
|
179
|
+
interface Handlers {}
|
|
180
|
+
declare module 'http' {
|
|
181
|
+
interface IncomingMessage {
|
|
182
|
+
authContext?: unknown | null;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=types.d.ts.map
|
|
186
|
+
//#endregion
|
|
187
|
+
export { ApiMiddleware, ApiRequest, ApiResponse, ApiRouteConfig, ApiRouteHandler, ApiRouteMethod, CronConfig, CronHandler, Emit, EmitData, Emitter, Event, EventConfig, EventHandler, Flow, FlowContext, FlowContextStateStreams, Handler, HandlerConfig, Handlers, InfrastructureConfig, InternalStateManager, NoopConfig, PluginStep, QueryParam, QueueConfig, Step, StepConfig, StepHandler, StepSchemaInput, SubscribeConfig, UnsubscribeConfig, ZodInput };
|
|
188
|
+
//# sourceMappingURL=types.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.mts","names":[],"sources":["../../src/types.ts"],"sourcesContent":[],"mappings":"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"}
|