@mantajs/core 0.1.7 → 0.2.0-beta.0
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/adapters/auth-mock.d.ts +44 -0
- package/dist/adapters/auth-mock.d.ts.map +1 -0
- package/dist/adapters/auth-mock.js +160 -0
- package/dist/adapters/auth-mock.js.map +1 -0
- package/dist/adapters/cache-memory.d.ts +11 -0
- package/dist/adapters/cache-memory.d.ts.map +1 -0
- package/dist/adapters/cache-memory.js +32 -0
- package/dist/adapters/cache-memory.js.map +1 -0
- package/dist/adapters/database-memory.d.ts +24 -0
- package/dist/adapters/database-memory.d.ts.map +1 -0
- package/dist/adapters/database-memory.js +141 -0
- package/dist/adapters/database-memory.js.map +1 -0
- package/dist/adapters/eventbus-memory.d.ts +37 -0
- package/dist/adapters/eventbus-memory.d.ts.map +1 -0
- package/dist/adapters/eventbus-memory.js +166 -0
- package/dist/adapters/eventbus-memory.js.map +1 -0
- package/dist/adapters/file-memory.d.ts +24 -0
- package/dist/adapters/file-memory.d.ts.map +1 -0
- package/dist/adapters/file-memory.js +77 -0
- package/dist/adapters/file-memory.js.map +1 -0
- package/dist/adapters/http-memory.d.ts +23 -0
- package/dist/adapters/http-memory.d.ts.map +1 -0
- package/dist/adapters/http-memory.js +149 -0
- package/dist/adapters/http-memory.js.map +1 -0
- package/dist/adapters/index.d.ts +14 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +15 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/job-scheduler-memory.d.ts +20 -0
- package/dist/adapters/job-scheduler-memory.d.ts.map +1 -0
- package/dist/adapters/job-scheduler-memory.js +103 -0
- package/dist/adapters/job-scheduler-memory.js.map +1 -0
- package/dist/adapters/locking-memory.d.ts +20 -0
- package/dist/adapters/locking-memory.d.ts.map +1 -0
- package/dist/adapters/locking-memory.js +85 -0
- package/dist/adapters/locking-memory.js.map +1 -0
- package/dist/adapters/logger-test.d.ts +30 -0
- package/dist/adapters/logger-test.d.ts.map +1 -0
- package/dist/adapters/logger-test.js +77 -0
- package/dist/adapters/logger-test.js.map +1 -0
- package/dist/adapters/notification-memory.d.ts +27 -0
- package/dist/adapters/notification-memory.d.ts.map +1 -0
- package/dist/adapters/notification-memory.js +69 -0
- package/dist/adapters/notification-memory.js.map +1 -0
- package/dist/adapters/relational-query-memory.d.ts +47 -0
- package/dist/adapters/relational-query-memory.d.ts.map +1 -0
- package/dist/adapters/relational-query-memory.js +263 -0
- package/dist/adapters/relational-query-memory.js.map +1 -0
- package/dist/adapters/repository-factory-memory.d.ts +17 -0
- package/dist/adapters/repository-factory-memory.d.ts.map +1 -0
- package/dist/adapters/repository-factory-memory.js +32 -0
- package/dist/adapters/repository-factory-memory.js.map +1 -0
- package/dist/adapters/repository-memory.d.ts +30 -0
- package/dist/adapters/repository-memory.d.ts.map +1 -0
- package/dist/adapters/repository-memory.js +183 -0
- package/dist/adapters/repository-memory.js.map +1 -0
- package/dist/ai/index.d.ts +53 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +48 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/app/index.d.ts +97 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/index.js +217 -0
- package/dist/app/index.js.map +1 -0
- package/dist/app/request-context.d.ts +35 -0
- package/dist/app/request-context.d.ts.map +1 -0
- package/dist/app/request-context.js +32 -0
- package/dist/app/request-context.js.map +1 -0
- package/dist/auth/auth-module-service.d.ts +62 -0
- package/dist/auth/auth-module-service.d.ts.map +1 -0
- package/dist/auth/auth-module-service.js +210 -0
- package/dist/auth/auth-module-service.js.map +1 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +5 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/middleware.d.ts +19 -0
- package/dist/auth/middleware.d.ts.map +1 -0
- package/dist/auth/middleware.js +61 -0
- package/dist/auth/middleware.js.map +1 -0
- package/dist/auth/models/auth-identity.d.ts +11 -0
- package/dist/auth/models/auth-identity.d.ts.map +1 -0
- package/dist/auth/models/auth-identity.js +12 -0
- package/dist/auth/models/auth-identity.js.map +1 -0
- package/dist/auth/providers/emailpass.d.ts +7 -0
- package/dist/auth/providers/emailpass.d.ts.map +1 -0
- package/dist/auth/providers/emailpass.js +94 -0
- package/dist/auth/providers/emailpass.js.map +1 -0
- package/dist/auth/providers/types.d.ts +66 -0
- package/dist/auth/providers/types.d.ts.map +1 -0
- package/dist/auth/providers/types.js +3 -0
- package/dist/auth/providers/types.js.map +1 -0
- package/dist/auth/types.d.ts +36 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +3 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/command/define-command-graph.d.ts +63 -0
- package/dist/command/define-command-graph.d.ts.map +1 -0
- package/dist/command/define-command-graph.js +80 -0
- package/dist/command/define-command-graph.js.map +1 -0
- package/dist/command/dml-to-zod.d.ts +34 -0
- package/dist/command/dml-to-zod.d.ts.map +1 -0
- package/dist/command/dml-to-zod.js +140 -0
- package/dist/command/dml-to-zod.js.map +1 -0
- package/dist/command/generate-entity-commands.d.ts +68 -0
- package/dist/command/generate-entity-commands.d.ts.map +1 -0
- package/dist/command/generate-entity-commands.js +350 -0
- package/dist/command/generate-entity-commands.js.map +1 -0
- package/dist/command/index.d.ts +54 -0
- package/dist/command/index.d.ts.map +1 -0
- package/dist/command/index.js +338 -0
- package/dist/command/index.js.map +1 -0
- package/dist/command/types.d.ts +131 -0
- package/dist/command/types.d.ts.map +1 -0
- package/dist/command/types.js +2 -0
- package/dist/command/types.js.map +1 -0
- package/dist/config/built-in-presets.d.ts +20 -0
- package/dist/config/built-in-presets.d.ts.map +1 -0
- package/dist/config/built-in-presets.js +70 -0
- package/dist/config/built-in-presets.js.map +1 -0
- package/dist/config/config-manager.d.ts +117 -0
- package/dist/config/config-manager.d.ts.map +1 -0
- package/dist/config/config-manager.js +245 -0
- package/dist/config/config-manager.js.map +1 -0
- package/dist/config/define-config.d.ts +20 -0
- package/dist/config/define-config.d.ts.map +1 -0
- package/dist/config/define-config.js +64 -0
- package/dist/config/define-config.js.map +1 -0
- package/dist/config/feature-flags.d.ts +48 -0
- package/dist/config/feature-flags.d.ts.map +1 -0
- package/dist/config/feature-flags.js +97 -0
- package/dist/config/feature-flags.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +8 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/presets.d.ts +38 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +29 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/config/types.d.ts +707 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +112 -0
- package/dist/config/types.js.map +1 -0
- package/dist/context/index.d.ts +95 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +26 -0
- package/dist/context/index.js.map +1 -0
- package/dist/context/registry.d.ts +32 -0
- package/dist/context/registry.d.ts.map +1 -0
- package/dist/context/registry.js +142 -0
- package/dist/context/registry.js.map +1 -0
- package/dist/db/index.d.ts +2 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +4 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/schema.d.ts +839 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +106 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/dml/entity.d.ts +132 -0
- package/dist/dml/entity.d.ts.map +1 -0
- package/dist/dml/entity.js +110 -0
- package/dist/dml/entity.js.map +1 -0
- package/dist/dml/from-zod.d.ts +13 -0
- package/dist/dml/from-zod.d.ts.map +1 -0
- package/dist/dml/from-zod.js +81 -0
- package/dist/dml/from-zod.js.map +1 -0
- package/dist/dml/generator/index.d.ts +62 -0
- package/dist/dml/generator/index.d.ts.map +1 -0
- package/dist/dml/generator/index.js +208 -0
- package/dist/dml/generator/index.js.map +1 -0
- package/dist/dml/index.d.ts +11 -0
- package/dist/dml/index.d.ts.map +1 -0
- package/dist/dml/index.js +13 -0
- package/dist/dml/index.js.map +1 -0
- package/dist/dml/infer.d.ts +36 -0
- package/dist/dml/infer.d.ts.map +1 -0
- package/dist/dml/infer.js +5 -0
- package/dist/dml/infer.js.map +1 -0
- package/dist/dml/model.d.ts +58 -0
- package/dist/dml/model.d.ts.map +1 -0
- package/dist/dml/model.js +95 -0
- package/dist/dml/model.js.map +1 -0
- package/dist/dml/modifiers.d.ts +9 -0
- package/dist/dml/modifiers.d.ts.map +1 -0
- package/dist/dml/modifiers.js +25 -0
- package/dist/dml/modifiers.js.map +1 -0
- package/dist/dml/properties/array.d.ts +7 -0
- package/dist/dml/properties/array.d.ts.map +1 -0
- package/dist/dml/properties/array.js +5 -0
- package/dist/dml/properties/array.js.map +1 -0
- package/dist/dml/properties/autoincrement.d.ts +7 -0
- package/dist/dml/properties/autoincrement.d.ts.map +1 -0
- package/dist/dml/properties/autoincrement.js +5 -0
- package/dist/dml/properties/autoincrement.js.map +1 -0
- package/dist/dml/properties/base.d.ts +124 -0
- package/dist/dml/properties/base.d.ts.map +1 -0
- package/dist/dml/properties/base.js +76 -0
- package/dist/dml/properties/base.js.map +1 -0
- package/dist/dml/properties/big-number.d.ts +7 -0
- package/dist/dml/properties/big-number.d.ts.map +1 -0
- package/dist/dml/properties/big-number.js +5 -0
- package/dist/dml/properties/big-number.js.map +1 -0
- package/dist/dml/properties/boolean.d.ts +7 -0
- package/dist/dml/properties/boolean.d.ts.map +1 -0
- package/dist/dml/properties/boolean.js +5 -0
- package/dist/dml/properties/boolean.js.map +1 -0
- package/dist/dml/properties/computed.d.ts +9 -0
- package/dist/dml/properties/computed.d.ts.map +1 -0
- package/dist/dml/properties/computed.js +22 -0
- package/dist/dml/properties/computed.js.map +1 -0
- package/dist/dml/properties/date-time.d.ts +7 -0
- package/dist/dml/properties/date-time.d.ts.map +1 -0
- package/dist/dml/properties/date-time.js +5 -0
- package/dist/dml/properties/date-time.js.map +1 -0
- package/dist/dml/properties/enum.d.ts +12 -0
- package/dist/dml/properties/enum.d.ts.map +1 -0
- package/dist/dml/properties/enum.js +14 -0
- package/dist/dml/properties/enum.js.map +1 -0
- package/dist/dml/properties/float.d.ts +7 -0
- package/dist/dml/properties/float.d.ts.map +1 -0
- package/dist/dml/properties/float.js +5 -0
- package/dist/dml/properties/float.js.map +1 -0
- package/dist/dml/properties/index.d.ts +15 -0
- package/dist/dml/properties/index.d.ts.map +1 -0
- package/dist/dml/properties/index.js +15 -0
- package/dist/dml/properties/index.js.map +1 -0
- package/dist/dml/properties/json.d.ts +7 -0
- package/dist/dml/properties/json.d.ts.map +1 -0
- package/dist/dml/properties/json.js +6 -0
- package/dist/dml/properties/json.js.map +1 -0
- package/dist/dml/properties/nullable.d.ts +23 -0
- package/dist/dml/properties/nullable.d.ts.map +1 -0
- package/dist/dml/properties/nullable.js +46 -0
- package/dist/dml/properties/nullable.js.map +1 -0
- package/dist/dml/properties/number.d.ts +10 -0
- package/dist/dml/properties/number.d.ts.map +1 -0
- package/dist/dml/properties/number.js +13 -0
- package/dist/dml/properties/number.js.map +1 -0
- package/dist/dml/properties/primary-key.d.ts +14 -0
- package/dist/dml/properties/primary-key.d.ts.map +1 -0
- package/dist/dml/properties/primary-key.js +23 -0
- package/dist/dml/properties/primary-key.js.map +1 -0
- package/dist/dml/properties/text.d.ts +15 -0
- package/dist/dml/properties/text.d.ts.map +1 -0
- package/dist/dml/properties/text.js +19 -0
- package/dist/dml/properties/text.js.map +1 -0
- package/dist/dml/relations/belongs-to.d.ts +20 -0
- package/dist/dml/relations/belongs-to.d.ts.map +1 -0
- package/dist/dml/relations/belongs-to.js +29 -0
- package/dist/dml/relations/belongs-to.js.map +1 -0
- package/dist/dml/relations/has-many.d.ts +16 -0
- package/dist/dml/relations/has-many.d.ts.map +1 -0
- package/dist/dml/relations/has-many.js +25 -0
- package/dist/dml/relations/has-many.js.map +1 -0
- package/dist/dml/relations/has-one.d.ts +26 -0
- package/dist/dml/relations/has-one.d.ts.map +1 -0
- package/dist/dml/relations/has-one.js +46 -0
- package/dist/dml/relations/has-one.js.map +1 -0
- package/dist/dml/relations/many-to-many.d.ts +9 -0
- package/dist/dml/relations/many-to-many.d.ts.map +1 -0
- package/dist/dml/relations/many-to-many.js +11 -0
- package/dist/dml/relations/many-to-many.js.map +1 -0
- package/dist/errors/manta-error.d.ts +68 -0
- package/dist/errors/manta-error.d.ts.map +1 -0
- package/dist/errors/manta-error.js +80 -0
- package/dist/errors/manta-error.js.map +1 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events/index.js +3 -0
- package/dist/events/index.js.map +1 -0
- package/dist/events/message-aggregator.d.ts +25 -0
- package/dist/events/message-aggregator.d.ts.map +1 -0
- package/dist/events/message-aggregator.js +35 -0
- package/dist/events/message-aggregator.js.map +1 -0
- package/dist/events/types.d.ts +42 -0
- package/dist/events/types.d.ts.map +1 -0
- package/dist/events/types.js +3 -0
- package/dist/events/types.js.map +1 -0
- package/dist/index.d.ts +55 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/job/index.d.ts +52 -0
- package/dist/job/index.d.ts.map +1 -0
- package/dist/job/index.js +31 -0
- package/dist/job/index.js.map +1 -0
- package/dist/link/index.d.ts +97 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/index.js +185 -0
- package/dist/link/index.js.map +1 -0
- package/dist/middleware/define-middleware.d.ts +54 -0
- package/dist/middleware/define-middleware.d.ts.map +1 -0
- package/dist/middleware/define-middleware.js +40 -0
- package/dist/middleware/define-middleware.js.map +1 -0
- package/dist/middleware/index.d.ts +56 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +50 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/module/index.d.ts +56 -0
- package/dist/module/index.d.ts.map +1 -0
- package/dist/module/index.js +52 -0
- package/dist/module/index.js.map +1 -0
- package/dist/module/versioning.d.ts +27 -0
- package/dist/module/versioning.d.ts.map +1 -0
- package/dist/module/versioning.js +64 -0
- package/dist/module/versioning.js.map +1 -0
- package/dist/naming.d.ts +39 -0
- package/dist/naming.d.ts.map +1 -0
- package/dist/naming.js +95 -0
- package/dist/naming.js.map +1 -0
- package/dist/ports/analytics.d.ts +7 -0
- package/dist/ports/analytics.d.ts.map +1 -0
- package/dist/ports/analytics.js +3 -0
- package/dist/ports/analytics.js.map +1 -0
- package/dist/ports/auth.d.ts +27 -0
- package/dist/ports/auth.d.ts.map +1 -0
- package/dist/ports/auth.js +3 -0
- package/dist/ports/auth.js.map +1 -0
- package/dist/ports/cache.d.ts +35 -0
- package/dist/ports/cache.d.ts.map +1 -0
- package/dist/ports/cache.js +3 -0
- package/dist/ports/cache.js.map +1 -0
- package/dist/ports/database.d.ts +40 -0
- package/dist/ports/database.d.ts.map +1 -0
- package/dist/ports/database.js +3 -0
- package/dist/ports/database.js.map +1 -0
- package/dist/ports/event-bus.d.ts +85 -0
- package/dist/ports/event-bus.d.ts.map +1 -0
- package/dist/ports/event-bus.js +3 -0
- package/dist/ports/event-bus.js.map +1 -0
- package/dist/ports/file.d.ts +62 -0
- package/dist/ports/file.d.ts.map +1 -0
- package/dist/ports/file.js +3 -0
- package/dist/ports/file.js.map +1 -0
- package/dist/ports/http.d.ts +20 -0
- package/dist/ports/http.d.ts.map +1 -0
- package/dist/ports/http.js +3 -0
- package/dist/ports/http.js.map +1 -0
- package/dist/ports/in-memory-progress-channel.d.ts +9 -0
- package/dist/ports/in-memory-progress-channel.d.ts.map +1 -0
- package/dist/ports/in-memory-progress-channel.js +19 -0
- package/dist/ports/in-memory-progress-channel.js.map +1 -0
- package/dist/ports/in-memory-queue.d.ts +24 -0
- package/dist/ports/in-memory-queue.d.ts.map +1 -0
- package/dist/ports/in-memory-queue.js +63 -0
- package/dist/ports/in-memory-queue.js.map +1 -0
- package/dist/ports/index.d.ts +27 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +6 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/ports/job-scheduler.d.ts +42 -0
- package/dist/ports/job-scheduler.d.ts.map +1 -0
- package/dist/ports/job-scheduler.js +3 -0
- package/dist/ports/job-scheduler.js.map +1 -0
- package/dist/ports/locking.d.ts +43 -0
- package/dist/ports/locking.d.ts.map +1 -0
- package/dist/ports/locking.js +3 -0
- package/dist/ports/locking.js.map +1 -0
- package/dist/ports/logger.d.ts +65 -0
- package/dist/ports/logger.d.ts.map +1 -0
- package/dist/ports/logger.js +3 -0
- package/dist/ports/logger.js.map +1 -0
- package/dist/ports/notification.d.ts +71 -0
- package/dist/ports/notification.d.ts.map +1 -0
- package/dist/ports/notification.js +3 -0
- package/dist/ports/notification.js.map +1 -0
- package/dist/ports/progress-channel.d.ts +46 -0
- package/dist/ports/progress-channel.d.ts.map +1 -0
- package/dist/ports/progress-channel.js +6 -0
- package/dist/ports/progress-channel.js.map +1 -0
- package/dist/ports/queue.d.ts +21 -0
- package/dist/ports/queue.d.ts.map +1 -0
- package/dist/ports/queue.js +15 -0
- package/dist/ports/queue.js.map +1 -0
- package/dist/ports/relational-query.d.ts +37 -0
- package/dist/ports/relational-query.d.ts.map +1 -0
- package/dist/ports/relational-query.js +3 -0
- package/dist/ports/relational-query.js.map +1 -0
- package/dist/ports/repository-factory.d.ts +21 -0
- package/dist/ports/repository-factory.d.ts.map +1 -0
- package/dist/ports/repository-factory.js +4 -0
- package/dist/ports/repository-factory.js.map +1 -0
- package/dist/ports/repository.d.ts +73 -0
- package/dist/ports/repository.d.ts.map +1 -0
- package/dist/ports/repository.js +3 -0
- package/dist/ports/repository.js.map +1 -0
- package/dist/ports/schema-generator.d.ts +15 -0
- package/dist/ports/schema-generator.d.ts.map +1 -0
- package/dist/ports/schema-generator.js +4 -0
- package/dist/ports/schema-generator.js.map +1 -0
- package/dist/ports/search.d.ts +7 -0
- package/dist/ports/search.d.ts.map +1 -0
- package/dist/ports/search.js +3 -0
- package/dist/ports/search.js.map +1 -0
- package/dist/ports/types.d.ts +112 -0
- package/dist/ports/types.d.ts.map +1 -0
- package/dist/ports/types.js +26 -0
- package/dist/ports/types.js.map +1 -0
- package/dist/ports/workflow-store.d.ts +111 -0
- package/dist/ports/workflow-store.d.ts.map +1 -0
- package/dist/ports/workflow-store.js +5 -0
- package/dist/ports/workflow-store.js.map +1 -0
- package/dist/query/define-query-graph.d.ts +55 -0
- package/dist/query/define-query-graph.d.ts.map +1 -0
- package/dist/query/define-query-graph.js +59 -0
- package/dist/query/define-query-graph.js.map +1 -0
- package/dist/query/define-query.d.ts +79 -0
- package/dist/query/define-query.d.ts.map +1 -0
- package/dist/query/define-query.js +77 -0
- package/dist/query/define-query.js.map +1 -0
- package/dist/query/extend-query-graph.d.ts +36 -0
- package/dist/query/extend-query-graph.d.ts.map +1 -0
- package/dist/query/extend-query-graph.js +34 -0
- package/dist/query/extend-query-graph.js.map +1 -0
- package/dist/query/index.d.ts +181 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +288 -0
- package/dist/query/index.js.map +1 -0
- package/dist/service/define.d.ts +97 -0
- package/dist/service/define.d.ts.map +1 -0
- package/dist/service/define.js +45 -0
- package/dist/service/define.js.map +1 -0
- package/dist/service/index.d.ts +52 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service/index.js +281 -0
- package/dist/service/index.js.map +1 -0
- package/dist/service/instantiate.d.ts +15 -0
- package/dist/service/instantiate.d.ts.map +1 -0
- package/dist/service/instantiate.js +143 -0
- package/dist/service/instantiate.js.map +1 -0
- package/dist/service/snapshot-repository.d.ts +31 -0
- package/dist/service/snapshot-repository.d.ts.map +1 -0
- package/dist/service/snapshot-repository.js +114 -0
- package/dist/service/snapshot-repository.js.map +1 -0
- package/dist/service/types.d.ts +39 -0
- package/dist/service/types.d.ts.map +1 -0
- package/dist/service/types.js +3 -0
- package/dist/service/types.js.map +1 -0
- package/dist/strict-mode/index.d.ts +42 -0
- package/dist/strict-mode/index.d.ts.map +1 -0
- package/dist/strict-mode/index.js +84 -0
- package/dist/strict-mode/index.js.map +1 -0
- package/dist/subscriber/index.d.ts +117 -0
- package/dist/subscriber/index.d.ts.map +1 -0
- package/dist/subscriber/index.js +76 -0
- package/dist/subscriber/index.js.map +1 -0
- package/dist/testing/relational-query-suite.d.ts +22 -0
- package/dist/testing/relational-query-suite.d.ts.map +1 -0
- package/dist/testing/relational-query-suite.js +233 -0
- package/dist/testing/relational-query-suite.js.map +1 -0
- package/dist/user/auto-routes.d.ts +32 -0
- package/dist/user/auto-routes.d.ts.map +1 -0
- package/dist/user/auto-routes.js +424 -0
- package/dist/user/auto-routes.js.map +1 -0
- package/dist/user/define-user.d.ts +54 -0
- package/dist/user/define-user.d.ts.map +1 -0
- package/dist/user/define-user.js +103 -0
- package/dist/user/define-user.js.map +1 -0
- package/dist/user/index.d.ts +7 -0
- package/dist/user/index.d.ts.map +1 -0
- package/dist/user/index.js +5 -0
- package/dist/user/index.js.map +1 -0
- package/dist/user/models/user.d.ts +15 -0
- package/dist/user/models/user.d.ts.map +1 -0
- package/dist/user/models/user.js +16 -0
- package/dist/user/models/user.js.map +1 -0
- package/dist/user/user-module-service.d.ts +55 -0
- package/dist/user/user-module-service.d.ts.map +1 -0
- package/dist/user/user-module-service.js +100 -0
- package/dist/user/user-module-service.js.map +1 -0
- package/dist/workflows/ai-step.d.ts +2 -0
- package/dist/workflows/ai-step.d.ts.map +1 -0
- package/dist/workflows/ai-step.js +54 -0
- package/dist/workflows/ai-step.js.map +1 -0
- package/dist/workflows/create-step.d.ts +16 -0
- package/dist/workflows/create-step.d.ts.map +1 -0
- package/dist/workflows/create-step.js +194 -0
- package/dist/workflows/create-step.js.map +1 -0
- package/dist/workflows/create-workflow.d.ts +16 -0
- package/dist/workflows/create-workflow.d.ts.map +1 -0
- package/dist/workflows/create-workflow.js +21 -0
- package/dist/workflows/create-workflow.js.map +1 -0
- package/dist/workflows/define-workflow.d.ts +55 -0
- package/dist/workflows/define-workflow.d.ts.map +1 -0
- package/dist/workflows/define-workflow.js +72 -0
- package/dist/workflows/define-workflow.js.map +1 -0
- package/dist/workflows/emit-event-step.d.ts +17 -0
- package/dist/workflows/emit-event-step.d.ts.map +1 -0
- package/dist/workflows/emit-event-step.js +46 -0
- package/dist/workflows/emit-event-step.js.map +1 -0
- package/dist/workflows/for-each.d.ts +6 -0
- package/dist/workflows/for-each.d.ts.map +1 -0
- package/dist/workflows/for-each.js +79 -0
- package/dist/workflows/for-each.js.map +1 -0
- package/dist/workflows/index.d.ts +15 -0
- package/dist/workflows/index.d.ts.map +1 -0
- package/dist/workflows/index.js +12 -0
- package/dist/workflows/index.js.map +1 -0
- package/dist/workflows/manager.d.ts +99 -0
- package/dist/workflows/manager.d.ts.map +1 -0
- package/dist/workflows/manager.js +450 -0
- package/dist/workflows/manager.js.map +1 -0
- package/dist/workflows/orphan-reaper.d.ts +50 -0
- package/dist/workflows/orphan-reaper.d.ts.map +1 -0
- package/dist/workflows/orphan-reaper.js +69 -0
- package/dist/workflows/orphan-reaper.js.map +1 -0
- package/dist/workflows/progress-helper.d.ts +20 -0
- package/dist/workflows/progress-helper.d.ts.map +1 -0
- package/dist/workflows/progress-helper.js +48 -0
- package/dist/workflows/progress-helper.js.map +1 -0
- package/dist/workflows/step.d.ts +103 -0
- package/dist/workflows/step.d.ts.map +1 -0
- package/dist/workflows/step.js +949 -0
- package/dist/workflows/step.js.map +1 -0
- package/dist/workflows/types.d.ts +215 -0
- package/dist/workflows/types.d.ts.map +1 -0
- package/dist/workflows/types.js +9 -0
- package/dist/workflows/types.js.map +1 -0
- package/dist/workflows/yield.d.ts +12 -0
- package/dist/workflows/yield.d.ts.map +1 -0
- package/dist/workflows/yield.js +29 -0
- package/dist/workflows/yield.js.map +1 -0
- package/docs/00-overview.md +254 -0
- package/docs/01-getting-started.md +224 -0
- package/docs/02-models.md +163 -0
- package/docs/03-services.md +208 -0
- package/docs/04-users.md +165 -0
- package/docs/05-commands.md +501 -0
- package/docs/06-queries.md +342 -0
- package/docs/07-events.md +248 -0
- package/docs/08-links.md +182 -0
- package/docs/09-agents.md +142 -0
- package/docs/10-spa.md +327 -0
- package/docs/11-config.md +481 -0
- package/docs/12-constraints.md +183 -0
- package/docs/13-testing.md +345 -0
- package/docs/14-adapters.md +204 -0
- package/docs/15-hosts.md +163 -0
- package/docs/16-reference.md +274 -0
- package/docs/17-dashboard.md +619 -0
- package/docs/AGENT.md +501 -0
- package/package.json +49 -52
- package/.medusa/server/src/admin/index.js +0 -5493
- package/.medusa/server/src/admin/index.mjs +0 -5491
- package/.medusa/server/src/api/admin/companies/[id]/route.js +0 -39
- package/.medusa/server/src/api/admin/companies/middlewares.js +0 -41
- package/.medusa/server/src/api/admin/companies/route.js +0 -37
- package/.medusa/server/src/api/admin/companies/validators.js +0 -29
- package/.medusa/server/src/api/admin/employees/middlewares.js +0 -15
- package/.medusa/server/src/api/admin/employees/route.js +0 -21
- package/.medusa/server/src/api/middlewares.js +0 -9
- package/.medusa/server/src/index.js +0 -5
- package/.medusa/server/src/modules/company/index.js +0 -13
- package/.medusa/server/src/modules/company/migrations/Migration20260126141741.js +0 -26
- package/.medusa/server/src/modules/company/models/company.js +0 -24
- package/.medusa/server/src/modules/company/models/employee.js +0 -15
- package/.medusa/server/src/modules/company/models/index.js +0 -11
- package/.medusa/server/src/modules/company/service.js +0 -11
- package/.medusa/server/src/workflows/create-company.js +0 -10
- package/.medusa/server/src/workflows/delete-company.js +0 -10
- package/.medusa/server/src/workflows/steps/create-company.js +0 -16
- package/.medusa/server/src/workflows/steps/delete-company.js +0 -30
- package/.medusa/server/src/workflows/steps/update-company.js +0 -30
- package/.medusa/server/src/workflows/update-company.js +0 -10
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// defineWorkflow — Intra-module workflow definition.
|
|
2
|
+
//
|
|
3
|
+
// A workflow orchestrates multiple services WITHIN a module.
|
|
4
|
+
// It has compensation (like defineCommand) but NO auth context — it's pure business logic.
|
|
5
|
+
// It receives typed input via Zod and a scoped step proxy (only module entities).
|
|
6
|
+
//
|
|
7
|
+
// Called from commands via step.workflow.MODULE.NAME(input).
|
|
8
|
+
//
|
|
9
|
+
// Usage:
|
|
10
|
+
// // src/modules/customer/workflows/update-customer-with-address.ts
|
|
11
|
+
// export default defineWorkflow({
|
|
12
|
+
// name: 'update-customer-with-address',
|
|
13
|
+
// description: 'Update customer and their default address',
|
|
14
|
+
// input: z.object({
|
|
15
|
+
// id: z.string(),
|
|
16
|
+
// first_name: z.string().optional(),
|
|
17
|
+
// address: z.object({ city: z.string(), country: z.string() }).optional(),
|
|
18
|
+
// }),
|
|
19
|
+
// handler: async (input, { step }) => {
|
|
20
|
+
// if (input.first_name) {
|
|
21
|
+
// await step.service.customer.update(input.id, { first_name: input.first_name })
|
|
22
|
+
// }
|
|
23
|
+
// if (input.address) {
|
|
24
|
+
// await step.service.customerAddress.create({ customer_id: input.id, ...input.address })
|
|
25
|
+
// }
|
|
26
|
+
// },
|
|
27
|
+
// })
|
|
28
|
+
import { MantaError } from '../errors/manta-error';
|
|
29
|
+
/**
|
|
30
|
+
* Define an intra-module workflow — orchestrates multiple entity services within a module.
|
|
31
|
+
*
|
|
32
|
+
* Workflows have compensation (via step proxy) but NO auth context.
|
|
33
|
+
* They are called from commands via `step.workflow.MODULE.NAME(input)`.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* // src/modules/customer/workflows/merge-customers.ts
|
|
38
|
+
* export default defineWorkflow({
|
|
39
|
+
* name: 'merge-customers',
|
|
40
|
+
* description: 'Merge two customer records into one',
|
|
41
|
+
* input: z.object({ sourceId: z.string(), targetId: z.string() }),
|
|
42
|
+
* handler: async (input, { step }) => {
|
|
43
|
+
* // Move addresses from source to target
|
|
44
|
+
* const addresses = await step.service.customerAddress.find({ customer_id: input.sourceId })
|
|
45
|
+
* for (const addr of addresses) {
|
|
46
|
+
* await step.service.customerAddress.update(addr.id, { customer_id: input.targetId })
|
|
47
|
+
* }
|
|
48
|
+
* // Delete source customer
|
|
49
|
+
* await step.service.customer.delete(input.sourceId)
|
|
50
|
+
* return { mergedInto: input.targetId }
|
|
51
|
+
* },
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
export function defineWorkflow(config) {
|
|
56
|
+
if (!config.name)
|
|
57
|
+
throw new MantaError('INVALID_DATA', 'Workflow name is required');
|
|
58
|
+
if (!config.description)
|
|
59
|
+
throw new MantaError('INVALID_DATA', `Workflow "${config.name}" requires a description`);
|
|
60
|
+
if (!config.input)
|
|
61
|
+
throw new MantaError('INVALID_DATA', `Workflow "${config.name}" requires an input Zod schema`);
|
|
62
|
+
if (typeof config.handler !== 'function')
|
|
63
|
+
throw new MantaError('INVALID_DATA', `Workflow "${config.name}" handler must be a function`);
|
|
64
|
+
return {
|
|
65
|
+
__type: 'workflow',
|
|
66
|
+
name: config.name,
|
|
67
|
+
description: config.description,
|
|
68
|
+
input: config.input,
|
|
69
|
+
handler: config.handler,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=define-workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"define-workflow.js","sourceRoot":"","sources":["../../src/workflows/define-workflow.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,EAAE;AACF,6DAA6D;AAC7D,2FAA2F;AAC3F,kFAAkF;AAClF,EAAE;AACF,6DAA6D;AAC7D,EAAE;AACF,SAAS;AACT,sEAAsE;AACtE,oCAAoC;AACpC,4CAA4C;AAC5C,gEAAgE;AAChE,wBAAwB;AACxB,wBAAwB;AACxB,2CAA2C;AAC3C,iFAAiF;AACjF,UAAU;AACV,4CAA4C;AAC5C,gCAAgC;AAChC,yFAAyF;AACzF,UAAU;AACV,6BAA6B;AAC7B,iGAAiG;AACjG,UAAU;AACV,SAAS;AACT,OAAO;AAGP,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAyBlD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,cAAc,CAAkB,MAK/C;IACC,IAAI,CAAC,MAAM,CAAC,IAAI;QAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAA;IACnF,IAAI,CAAC,MAAM,CAAC,WAAW;QAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,aAAa,MAAM,CAAC,IAAI,0BAA0B,CAAC,CAAA;IACjH,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,aAAa,MAAM,CAAC,IAAI,gCAAgC,CAAC,CAAA;IACjH,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;QACtC,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,aAAa,MAAM,CAAC,IAAI,8BAA8B,CAAC,CAAA;IAE9F,OAAO;QACL,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { StepDefinition } from './types';
|
|
2
|
+
export interface EmitEventStepInput {
|
|
3
|
+
eventName: string;
|
|
4
|
+
data: unknown | unknown[];
|
|
5
|
+
options?: {
|
|
6
|
+
priority?: number;
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A workflow step that buffers events for emission after workflow success.
|
|
11
|
+
* Compatible with Medusa's emitEventStep API.
|
|
12
|
+
*
|
|
13
|
+
* Events are buffered via the workflow's event group (IEventBusPort grouped events).
|
|
14
|
+
* WorkflowManager releases the group on success, clears it on failure.
|
|
15
|
+
*/
|
|
16
|
+
export declare function emitEventStep(input: EmitEventStepInput): StepDefinition;
|
|
17
|
+
//# sourceMappingURL=emit-event-step.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-event-step.d.ts","sourceRoot":"","sources":["../../src/workflows/emit-event-step.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,SAAS,CAAA;AAEjE,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IACzB,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAA;KAClB,CAAA;CACF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,CA4BvE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// SPEC-034 — emitEventStep: Medusa-compatible buffered event emission
|
|
2
|
+
//
|
|
3
|
+
// The event is only emitted after the workflow has finished successfully.
|
|
4
|
+
// If the workflow fails, the event is NOT emitted at all.
|
|
5
|
+
//
|
|
6
|
+
// Uses IEventBusPort grouped events internally — events are buffered in the
|
|
7
|
+
// event bus (Redis in prod) and released by WorkflowManager on success.
|
|
8
|
+
//
|
|
9
|
+
// Usage (same as Medusa):
|
|
10
|
+
// emitEventStep({ eventName: 'order.created', data: { id: '123' } })
|
|
11
|
+
//
|
|
12
|
+
// For immediate emission (not buffered), use:
|
|
13
|
+
// app.infra.eventBus.emit(event) // direct
|
|
14
|
+
/**
|
|
15
|
+
* A workflow step that buffers events for emission after workflow success.
|
|
16
|
+
* Compatible with Medusa's emitEventStep API.
|
|
17
|
+
*
|
|
18
|
+
* Events are buffered via the workflow's event group (IEventBusPort grouped events).
|
|
19
|
+
* WorkflowManager releases the group on success, clears it on failure.
|
|
20
|
+
*/
|
|
21
|
+
export function emitEventStep(input) {
|
|
22
|
+
const stepName = `emit-event:${input.eventName}`;
|
|
23
|
+
return {
|
|
24
|
+
name: stepName,
|
|
25
|
+
handler: async (ctx) => {
|
|
26
|
+
const dataArray = Array.isArray(input.data) ? input.data : [input.data];
|
|
27
|
+
for (const data of dataArray) {
|
|
28
|
+
const message = {
|
|
29
|
+
eventName: input.eventName,
|
|
30
|
+
data,
|
|
31
|
+
metadata: {
|
|
32
|
+
timestamp: Date.now(),
|
|
33
|
+
source: 'workflow',
|
|
34
|
+
idempotencyKey: `${ctx.context?.transactionId ?? 'unknown'}:emit:${input.eventName}`,
|
|
35
|
+
},
|
|
36
|
+
};
|
|
37
|
+
// Buffer via __bufferEvent (WorkflowManager stores in grouped events)
|
|
38
|
+
if (ctx.context._bufferEvent) {
|
|
39
|
+
ctx.context._bufferEvent(message);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return { eventName: input.eventName, buffered: dataArray.length };
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=emit-event-step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-event-step.js","sourceRoot":"","sources":["../../src/workflows/emit-event-step.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,EAAE;AACF,0EAA0E;AAC1E,0DAA0D;AAC1D,EAAE;AACF,4EAA4E;AAC5E,wEAAwE;AACxE,EAAE;AACF,0BAA0B;AAC1B,uEAAuE;AACvE,EAAE;AACF,8CAA8C;AAC9C,8CAA8C;AAa9C;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,KAAyB;IACrD,MAAM,QAAQ,GAAG,cAAc,KAAK,CAAC,SAAS,EAAE,CAAA;IAEhD,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,KAAK,EAAE,GAAuB,EAAoB,EAAE;YAC3D,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAEvE,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,OAAO,GAAY;oBACvB,SAAS,EAAE,KAAK,CAAC,SAAS;oBAC1B,IAAI;oBACJ,QAAQ,EAAE;wBACR,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;wBACrB,MAAM,EAAE,UAAU;wBAClB,cAAc,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,SAAS,KAAK,CAAC,SAAS,EAAE;qBACrF;iBACF,CAAA;gBAED,sEAAsE;gBACtE,IAAI,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;oBAC7B,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;gBACnC,CAAC;YACH,CAAC;YAED,OAAO,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,CAAA;QACnE,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { StepContext, WorkflowContext } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Build a `ctx.forEach` function bound to a specific workflow run.
|
|
4
|
+
*/
|
|
5
|
+
export declare function createForEach(wfCtx: WorkflowContext): NonNullable<StepContext['forEach']>;
|
|
6
|
+
//# sourceMappingURL=for-each.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"for-each.d.ts","sourceRoot":"","sources":["../../src/workflows/for-each.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAe,WAAW,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAExE;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,eAAe,GAAG,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAyDzF"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// ctx.forEach — ergonomic batching + progress + cancel for iterative steps.
|
|
2
|
+
// See WORKFLOW_PROGRESS.md §6.4.
|
|
3
|
+
//
|
|
4
|
+
// Combines three concerns into one idiom:
|
|
5
|
+
// 1. Batch items (array or AsyncIterable) into chunks of `batchSize`.
|
|
6
|
+
// 2. Emit a progress snapshot after each batch completes (fire-and-forget).
|
|
7
|
+
// 3. Check `ctx.signal` between batches; throw CancelledError if aborted.
|
|
8
|
+
import { CancelledError } from './progress-helper';
|
|
9
|
+
/**
|
|
10
|
+
* Build a `ctx.forEach` function bound to a specific workflow run.
|
|
11
|
+
*/
|
|
12
|
+
export function createForEach(wfCtx) {
|
|
13
|
+
return async (items, opts, handler) => {
|
|
14
|
+
const isArray = Array.isArray(items);
|
|
15
|
+
const totalKnown = isArray ? items.length : null;
|
|
16
|
+
let done = 0;
|
|
17
|
+
let batchIndex = 0;
|
|
18
|
+
let buffer = [];
|
|
19
|
+
const flush = async () => {
|
|
20
|
+
if (buffer.length === 0)
|
|
21
|
+
return;
|
|
22
|
+
if (wfCtx.signal?.aborted)
|
|
23
|
+
throw new CancelledError();
|
|
24
|
+
const info = { done, total: totalKnown, batchIndex };
|
|
25
|
+
const batch = buffer;
|
|
26
|
+
buffer = [];
|
|
27
|
+
await handler(batch, info);
|
|
28
|
+
done += batch.length;
|
|
29
|
+
batchIndex += 1;
|
|
30
|
+
// Emit progress after the batch completes — fire-and-forget.
|
|
31
|
+
const channel = wfCtx.progressChannel;
|
|
32
|
+
if (channel) {
|
|
33
|
+
const stepName = wfCtx.stepName ?? 'unknown';
|
|
34
|
+
const message = opts.message ? safeFormat(opts.message, { done, total: totalKnown, batchIndex }) : undefined;
|
|
35
|
+
try {
|
|
36
|
+
const p = channel.set(wfCtx.runId, { stepName, current: done, total: totalKnown, message, at: Date.now() });
|
|
37
|
+
if (p && typeof p.catch === 'function') {
|
|
38
|
+
;
|
|
39
|
+
p.catch(() => {
|
|
40
|
+
/* swallow — progress is observability */
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
/* `.set` is never-throws; belt-and-suspenders */
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
// Guard before the very first iteration: if the signal is already aborted,
|
|
50
|
+
// fail immediately without touching items.
|
|
51
|
+
if (wfCtx.signal?.aborted)
|
|
52
|
+
throw new CancelledError();
|
|
53
|
+
if (isArray) {
|
|
54
|
+
for (const item of items) {
|
|
55
|
+
buffer.push(item);
|
|
56
|
+
if (buffer.length >= opts.batchSize)
|
|
57
|
+
await flush();
|
|
58
|
+
}
|
|
59
|
+
await flush();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
for await (const item of items) {
|
|
63
|
+
buffer.push(item);
|
|
64
|
+
if (buffer.length >= opts.batchSize)
|
|
65
|
+
await flush();
|
|
66
|
+
}
|
|
67
|
+
await flush();
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function safeFormat(fn, info) {
|
|
72
|
+
try {
|
|
73
|
+
return fn(info);
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=for-each.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"for-each.js","sourceRoot":"","sources":["../../src/workflows/for-each.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { createStep } from './create-step';
|
|
2
|
+
export { createWorkflow } from './create-workflow';
|
|
3
|
+
export type { ModuleWorkflowDefinition, WorkflowHandlerContext } from './define-workflow';
|
|
4
|
+
export { defineWorkflow } from './define-workflow';
|
|
5
|
+
export type { EmitEventStepInput } from './emit-event-step';
|
|
6
|
+
export { emitEventStep } from './emit-event-step';
|
|
7
|
+
export { createForEach } from './for-each';
|
|
8
|
+
export { WorkflowManager, type WorkflowStorage, workflowContextStorage } from './manager';
|
|
9
|
+
export { createOrphanReaperJob, DEFAULT_ORPHAN_REAP_LIMIT, DEFAULT_ORPHAN_THRESHOLD_MS, ORPHAN_REAPER_JOB_NAME, ORPHAN_REAPER_SCHEDULE, type OrphanReaperJobDescriptor, type OrphanReaperOptions, type OrphanReaperResult, WORKFLOW_ORPHANED_CODE, } from './orphan-reaper';
|
|
10
|
+
export { CancelledError, createProgress } from './progress-helper';
|
|
11
|
+
export type { ActionStepConfig, CrudStepConfig } from './step';
|
|
12
|
+
/** @internal */ export { ENTITY_TAG, step } from './step';
|
|
13
|
+
export type { CompletedStep, ForEachInfo, StepContext, StepDefinition, StepFn, StepHandlerContext, StepResolveContext, WorkflowContext, WorkflowDefinition, WorkflowResult, WorkflowRunOptions, WorkflowRunResult, } from './types';
|
|
14
|
+
export { isWorkflowYield, WorkflowYield } from './yield';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AACzF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACzF,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAClE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AAC9D,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAC1D,YAAY,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,cAAc,EACd,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Workflow system — public API
|
|
2
|
+
export { createStep } from './create-step';
|
|
3
|
+
export { createWorkflow } from './create-workflow';
|
|
4
|
+
export { defineWorkflow } from './define-workflow';
|
|
5
|
+
export { emitEventStep } from './emit-event-step';
|
|
6
|
+
export { createForEach } from './for-each';
|
|
7
|
+
export { WorkflowManager, workflowContextStorage } from './manager';
|
|
8
|
+
export { createOrphanReaperJob, DEFAULT_ORPHAN_REAP_LIMIT, DEFAULT_ORPHAN_THRESHOLD_MS, ORPHAN_REAPER_JOB_NAME, ORPHAN_REAPER_SCHEDULE, WORKFLOW_ORPHANED_CODE, } from './orphan-reaper';
|
|
9
|
+
export { CancelledError, createProgress } from './progress-helper';
|
|
10
|
+
/** @internal */ export { ENTITY_TAG, step } from './step';
|
|
11
|
+
export { isWorkflowYield, WorkflowYield } from './yield';
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/workflows/index.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,eAAe,EAAwB,sBAAsB,EAAE,MAAM,WAAW,CAAA;AACzF,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,2BAA2B,EAC3B,sBAAsB,EACtB,sBAAsB,EAItB,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAe1D,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import type { MantaApp } from '../app';
|
|
3
|
+
import type { IProgressChannelPort } from '../ports/progress-channel';
|
|
4
|
+
import type { IQueuePort } from '../ports/queue';
|
|
5
|
+
import type { IWorkflowStorePort, StepState } from '../ports/workflow-store';
|
|
6
|
+
import type { WorkflowContext, WorkflowDefinition, WorkflowRunOptions, WorkflowRunResult } from './types';
|
|
7
|
+
export declare const workflowContextStorage: AsyncLocalStorage<WorkflowContext>;
|
|
8
|
+
export interface WorkflowStorage {
|
|
9
|
+
save(transactionId: string, stepId: string, data: unknown): Promise<void>;
|
|
10
|
+
list(transactionId: string): Promise<Array<{
|
|
11
|
+
stepId: string;
|
|
12
|
+
data: unknown;
|
|
13
|
+
}>>;
|
|
14
|
+
delete(transactionId: string): Promise<void>;
|
|
15
|
+
/** Track workflow execution start (optional) */
|
|
16
|
+
trackStart?(transactionId: string, workflowName: string, input: unknown): Promise<void>;
|
|
17
|
+
/** Track workflow execution completion (optional) */
|
|
18
|
+
trackComplete?(transactionId: string, result: unknown): Promise<void>;
|
|
19
|
+
/** Track workflow execution failure (optional) */
|
|
20
|
+
trackFailed?(transactionId: string, error: string): Promise<void>;
|
|
21
|
+
}
|
|
22
|
+
export interface WorkflowManagerOptions {
|
|
23
|
+
storage?: WorkflowStorage;
|
|
24
|
+
/**
|
|
25
|
+
* Durable workflow run store — feeds `/admin/_runs/:runId`, `useCommand`
|
|
26
|
+
* polling, and cancellation. See WORKFLOW_PROGRESS.md §5.1 / §9.1.
|
|
27
|
+
*/
|
|
28
|
+
store?: IWorkflowStorePort;
|
|
29
|
+
/**
|
|
30
|
+
* Ephemeral progress channel — backs `ctx.progress` and `ctx.forEach`.
|
|
31
|
+
* See WORKFLOW_PROGRESS.md §5.2 / §9.2.
|
|
32
|
+
*/
|
|
33
|
+
progressChannel?: IProgressChannelPort;
|
|
34
|
+
/**
|
|
35
|
+
* Queue adapter used to schedule serverless continuations after a step
|
|
36
|
+
* calls `ctx.yield(state)`. When absent, paused workflows stay paused
|
|
37
|
+
* until someone calls `manager.resume(runId)` manually (tests / CLI).
|
|
38
|
+
*/
|
|
39
|
+
queue?: IQueuePort;
|
|
40
|
+
/**
|
|
41
|
+
* Builds the URL the queue should POST to resume a run. Typically wired
|
|
42
|
+
* in init-infra: `(runId) => \`${baseUrl}/api/${ctx}/_workflow/${runId}/resume\``.
|
|
43
|
+
* Called on every yield — cheap. When absent, queue.enqueue is skipped.
|
|
44
|
+
*/
|
|
45
|
+
resumeEndpoint?: (runId: string) => string;
|
|
46
|
+
/**
|
|
47
|
+
* Wall-clock budget (ms) propagated to every step via `ctx.budgetMs`.
|
|
48
|
+
* On Vercel Hobby this should be ~7000 (10s cap − 3s safety). On
|
|
49
|
+
* long-running Node hosts leave `undefined` (treated as Infinity).
|
|
50
|
+
*/
|
|
51
|
+
stepBudgetMs?: number;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* WorkflowManager — registers and runs imperative workflows.
|
|
55
|
+
* Steps access the workflow context via AsyncLocalStorage.
|
|
56
|
+
*/
|
|
57
|
+
export declare class WorkflowManager {
|
|
58
|
+
private _workflows;
|
|
59
|
+
private _logger;
|
|
60
|
+
private _eventBus;
|
|
61
|
+
private _locking;
|
|
62
|
+
private _storage;
|
|
63
|
+
private _store;
|
|
64
|
+
private _progressChannel;
|
|
65
|
+
private _queue;
|
|
66
|
+
private _resumeEndpoint;
|
|
67
|
+
private _stepBudgetMs;
|
|
68
|
+
private _app;
|
|
69
|
+
/** Per-run AbortControllers. Keyed by transactionId / runId. */
|
|
70
|
+
private _controllers;
|
|
71
|
+
constructor(app: MantaApp, options?: WorkflowManagerOptions);
|
|
72
|
+
register(workflow: WorkflowDefinition<any, any>): void;
|
|
73
|
+
run(workflowId: string, options?: WorkflowRunOptions): Promise<WorkflowRunResult>;
|
|
74
|
+
/**
|
|
75
|
+
* Resume a paused workflow run. Invoked by the HTTP handler for
|
|
76
|
+
* `POST /api/<ctx>/_workflow/:runId/resume` when the queue adapter
|
|
77
|
+
* delivers a continuation.
|
|
78
|
+
*
|
|
79
|
+
* Loads the run's original `command_name` and `input` from the store, then
|
|
80
|
+
* re-enters `run()` with the same `transactionId`. The normal resume
|
|
81
|
+
* machinery picks up:
|
|
82
|
+
* - completed steps (from workflow_checkpoints) — skipped at zero cost
|
|
83
|
+
* - paused steps (from workflow_runs.steps[].resume_state) — re-invoked
|
|
84
|
+
* with ctx.resumeState populated
|
|
85
|
+
*
|
|
86
|
+
* Idempotent: safe to call multiple times — if the run is already terminal,
|
|
87
|
+
* returns early without re-executing.
|
|
88
|
+
*/
|
|
89
|
+
resume(runId: string): Promise<WorkflowRunResult>;
|
|
90
|
+
/**
|
|
91
|
+
* Execute a single attempt. Throws on failure — the retry loop in run() handles retries.
|
|
92
|
+
* On the final attempt, compensates before re-throwing.
|
|
93
|
+
*/
|
|
94
|
+
private _execute;
|
|
95
|
+
private _compensate;
|
|
96
|
+
_reset(): void;
|
|
97
|
+
}
|
|
98
|
+
export type { StepState };
|
|
99
|
+
//# sourceMappingURL=manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/workflows/manager.ts"],"names":[],"mappings":"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"}
|