@mantajs/core 0.1.6 → 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 -5358
- package/.medusa/server/src/admin/index.mjs +0 -5356
- 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/middlewares.js +0 -8
- 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,50 @@
|
|
|
1
|
+
// SPEC-039 — defineMiddlewares() for HTTP pipeline configuration
|
|
2
|
+
// SPEC-V2 — defineMiddleware() (singular) for per-context overrides
|
|
3
|
+
export { defineMiddleware } from './define-middleware';
|
|
4
|
+
/**
|
|
5
|
+
* defineMiddlewares() — declares middleware pipeline configuration for routes.
|
|
6
|
+
*
|
|
7
|
+
* Returns the configurations for the IHttpPort adapter to apply
|
|
8
|
+
* as part of the 12-step pipeline.
|
|
9
|
+
*
|
|
10
|
+
* Usage:
|
|
11
|
+
* export default defineMiddlewares([
|
|
12
|
+
* {
|
|
13
|
+
* matcher: '/admin/products',
|
|
14
|
+
* method: 'POST',
|
|
15
|
+
* validators: { body: CreateProductSchema },
|
|
16
|
+
* },
|
|
17
|
+
* {
|
|
18
|
+
* matcher: '/store/*',
|
|
19
|
+
* rateLimit: { maxRequests: 200, windowMs: 60_000 },
|
|
20
|
+
* },
|
|
21
|
+
* ])
|
|
22
|
+
*/
|
|
23
|
+
export function defineMiddlewares(configs) {
|
|
24
|
+
return configs;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Error-to-HTTP-status mapping per SPEC-041.
|
|
28
|
+
*/
|
|
29
|
+
export const ERROR_STATUS_MAP = {
|
|
30
|
+
NOT_FOUND: 404,
|
|
31
|
+
INVALID_DATA: 400,
|
|
32
|
+
UNAUTHORIZED: 401,
|
|
33
|
+
FORBIDDEN: 403,
|
|
34
|
+
DUPLICATE_ERROR: 422,
|
|
35
|
+
CONFLICT: 409,
|
|
36
|
+
NOT_ALLOWED: 400,
|
|
37
|
+
DB_ERROR: 500,
|
|
38
|
+
UNEXPECTED_STATE: 500,
|
|
39
|
+
INVALID_STATE: 500,
|
|
40
|
+
UNKNOWN_MODULES: 500,
|
|
41
|
+
NOT_IMPLEMENTED: 501,
|
|
42
|
+
RESOURCE_EXHAUSTED: 429,
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Map a MantaError type to an HTTP status code.
|
|
46
|
+
*/
|
|
47
|
+
export function mapErrorToStatus(errorType) {
|
|
48
|
+
return ERROR_STATUS_MAP[errorType] ?? 500;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,oEAAoE;AAKpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAuBtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,SAAS,EAAE,GAAG;IACd,YAAY,EAAE,GAAG;IACjB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,eAAe,EAAE,GAAG;IACpB,QAAQ,EAAE,GAAG;IACb,WAAW,EAAE,GAAG;IAChB,QAAQ,EAAE,GAAG;IACb,gBAAgB,EAAE,GAAG;IACrB,aAAa,EAAE,GAAG;IAClB,eAAe,EAAE,GAAG;IACpB,eAAe,EAAE,GAAG;IACpB,kBAAkB,EAAE,GAAG;CACxB,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAkC;IACjE,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,GAAG,CAAA;AAC3C,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { MantaApp } from '../app';
|
|
2
|
+
/**
|
|
3
|
+
* Module lifecycle hooks.
|
|
4
|
+
*/
|
|
5
|
+
export interface ModuleLifecycleHooks {
|
|
6
|
+
onApplicationStart?: () => Promise<void> | void;
|
|
7
|
+
onApplicationShutdown?: () => Promise<void> | void;
|
|
8
|
+
onApplicationPrepareShutdown?: () => Promise<void> | void;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Module export contract — what each module must provide.
|
|
12
|
+
*/
|
|
13
|
+
export interface ModuleExports {
|
|
14
|
+
name: string;
|
|
15
|
+
service: new (...args: any[]) => unknown;
|
|
16
|
+
loaders?: Array<(app: MantaApp) => Promise<void>>;
|
|
17
|
+
runMigrations?: () => Promise<void>;
|
|
18
|
+
revertMigration?: () => Promise<void>;
|
|
19
|
+
generateMigration?: () => Promise<string>;
|
|
20
|
+
discoveryPath?: string;
|
|
21
|
+
version?: string;
|
|
22
|
+
hooks?: ModuleLifecycleHooks;
|
|
23
|
+
models?: Record<string, unknown>;
|
|
24
|
+
linkableKeys?: Record<string, string>;
|
|
25
|
+
linkable?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Module() factory — wraps a service class into a ModuleExports.
|
|
29
|
+
* Signature aligned with Medusa V2: Module(serviceName, { service, loaders })
|
|
30
|
+
*
|
|
31
|
+
* Usage:
|
|
32
|
+
* export default Module("product", {
|
|
33
|
+
* service: ProductModuleService,
|
|
34
|
+
* loaders: [...]
|
|
35
|
+
* })
|
|
36
|
+
*/
|
|
37
|
+
export declare function Module(serviceName: string, config: {
|
|
38
|
+
service: new (...args: any[]) => unknown;
|
|
39
|
+
loaders?: ModuleExports['loaders'];
|
|
40
|
+
hooks?: ModuleLifecycleHooks;
|
|
41
|
+
version?: string;
|
|
42
|
+
models?: Record<string, unknown>;
|
|
43
|
+
}): ModuleExports;
|
|
44
|
+
/**
|
|
45
|
+
* defineModule() — alias for Module() with explicit config object.
|
|
46
|
+
* Kept for backward compatibility.
|
|
47
|
+
*/
|
|
48
|
+
export declare function defineModule(config: {
|
|
49
|
+
service: new (...args: any[]) => unknown;
|
|
50
|
+
name: string;
|
|
51
|
+
loaders?: ModuleExports['loaders'];
|
|
52
|
+
hooks?: ModuleLifecycleHooks;
|
|
53
|
+
version?: string;
|
|
54
|
+
models?: Record<string, unknown>;
|
|
55
|
+
}): ModuleExports;
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AAEtC;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,kBAAkB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAC/C,qBAAqB,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IAClD,4BAA4B,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IAEZ,OAAO,EAAE,KACP,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAA;IACZ,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,eAAe,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACzC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,oBAAoB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AAED;;;;;;;;;GASG;AACH,wBAAgB,MAAM,CACpB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IAEN,OAAO,EAAE,KACP,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAA;IACZ,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAClC,KAAK,CAAC,EAAE,oBAAoB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC,GACA,aAAa,CAiCf;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IAEnC,OAAO,EAAE,KACP,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;IAClC,KAAK,CAAC,EAAE,oBAAoB,CAAA;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC,GAAG,aAAa,CAEhB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// SPEC-004 — Module system: Module() factory and ModuleExports
|
|
2
|
+
// Signature aligned with Medusa V2: Module(serviceName, { service, loaders })
|
|
3
|
+
/**
|
|
4
|
+
* Module() factory — wraps a service class into a ModuleExports.
|
|
5
|
+
* Signature aligned with Medusa V2: Module(serviceName, { service, loaders })
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* export default Module("product", {
|
|
9
|
+
* service: ProductModuleService,
|
|
10
|
+
* loaders: [...]
|
|
11
|
+
* })
|
|
12
|
+
*/
|
|
13
|
+
export function Module(serviceName, config) {
|
|
14
|
+
const linkableKeys = {};
|
|
15
|
+
if (config.models) {
|
|
16
|
+
for (const [key, model] of Object.entries(config.models)) {
|
|
17
|
+
const entityName = model.name ?? key;
|
|
18
|
+
linkableKeys[`${entityName.toLowerCase()}_id`] = entityName;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// Auto-generate linkable config from models
|
|
22
|
+
const linkable = {};
|
|
23
|
+
if (config.models) {
|
|
24
|
+
for (const [key, model] of Object.entries(config.models)) {
|
|
25
|
+
const entityName = model.name ?? key;
|
|
26
|
+
linkable[`${entityName.toLowerCase()}_id`] = {
|
|
27
|
+
serviceName,
|
|
28
|
+
entity: entityName,
|
|
29
|
+
primaryKey: 'id',
|
|
30
|
+
field: `${entityName.toLowerCase()}_id`,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
name: serviceName,
|
|
36
|
+
service: config.service,
|
|
37
|
+
loaders: config.loaders,
|
|
38
|
+
hooks: config.hooks,
|
|
39
|
+
version: config.version,
|
|
40
|
+
models: config.models,
|
|
41
|
+
linkableKeys: Object.keys(linkableKeys).length > 0 ? linkableKeys : undefined,
|
|
42
|
+
linkable: Object.keys(linkable).length > 0 ? linkable : undefined,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* defineModule() — alias for Module() with explicit config object.
|
|
47
|
+
* Kept for backward compatibility.
|
|
48
|
+
*/
|
|
49
|
+
export function defineModule(config) {
|
|
50
|
+
return Module(config.name, config);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,8EAA8E;AAkC9E;;;;;;;;;GASG;AACH,MAAM,UAAU,MAAM,CACpB,WAAmB,EACnB,MASC;IAED,MAAM,YAAY,GAA2B,EAAE,CAAA;IAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,UAAU,GAAI,KAA2B,CAAC,IAAI,IAAI,GAAG,CAAA;YAC3D,YAAY,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,UAAU,CAAA;QAC7D,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,MAAM,QAAQ,GAA4B,EAAE,CAAA;IAC5C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,MAAM,UAAU,GAAI,KAA2B,CAAC,IAAI,IAAI,GAAG,CAAA;YAC3D,QAAQ,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG;gBAC3C,WAAW;gBACX,MAAM,EAAE,UAAU;gBAClB,UAAU,EAAE,IAAI;gBAChB,KAAK,EAAE,GAAG,UAAU,CAAC,WAAW,EAAE,KAAK;aACxC,CAAA;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;QAC7E,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KAClE,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAU5B;IACC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;AACpC,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { ModuleExports } from './index';
|
|
2
|
+
export interface ModuleVersionStore {
|
|
3
|
+
getVersion(moduleName: string): Promise<string | null>;
|
|
4
|
+
setVersion(moduleName: string, version: string): Promise<void>;
|
|
5
|
+
}
|
|
6
|
+
export interface VersionMismatch {
|
|
7
|
+
name: string;
|
|
8
|
+
expected: string;
|
|
9
|
+
actual: string;
|
|
10
|
+
type: 'downgrade' | 'mismatch';
|
|
11
|
+
}
|
|
12
|
+
export interface VersionUpgrade {
|
|
13
|
+
name: string;
|
|
14
|
+
from: string;
|
|
15
|
+
to: string;
|
|
16
|
+
}
|
|
17
|
+
export interface VersionCheckResult {
|
|
18
|
+
ok: boolean;
|
|
19
|
+
mismatches: VersionMismatch[];
|
|
20
|
+
upgrades: VersionUpgrade[];
|
|
21
|
+
}
|
|
22
|
+
export declare class ModuleVersionChecker {
|
|
23
|
+
private _store;
|
|
24
|
+
constructor(_store: ModuleVersionStore);
|
|
25
|
+
checkModules(modules: ModuleExports[]): Promise<VersionCheckResult>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=versioning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning.d.ts","sourceRoot":"","sources":["../../src/module/versioning.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAA;IACtD,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,WAAW,GAAG,UAAU,CAAA;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAA;IACX,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B;AAED,qBAAa,oBAAoB;IACnB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAExC,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAgD1E"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// SPEC-135 -- Module versioning
|
|
2
|
+
// Checks module versions at boot, detects upgrades/downgrades
|
|
3
|
+
export class ModuleVersionChecker {
|
|
4
|
+
_store;
|
|
5
|
+
constructor(_store) {
|
|
6
|
+
this._store = _store;
|
|
7
|
+
}
|
|
8
|
+
async checkModules(modules) {
|
|
9
|
+
const mismatches = [];
|
|
10
|
+
const upgrades = [];
|
|
11
|
+
for (const mod of modules) {
|
|
12
|
+
if (!mod.version)
|
|
13
|
+
continue;
|
|
14
|
+
const storedVersion = await this._store.getVersion(mod.name);
|
|
15
|
+
if (!storedVersion) {
|
|
16
|
+
// First load -- store the version
|
|
17
|
+
await this._store.setVersion(mod.name, mod.version);
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
if (storedVersion === mod.version) {
|
|
21
|
+
// Matching -- all good
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
// Compare versions (simple semver comparison)
|
|
25
|
+
const comparison = compareSemver(mod.version, storedVersion);
|
|
26
|
+
if (comparison > 0) {
|
|
27
|
+
// Upgrade: code version > stored version
|
|
28
|
+
upgrades.push({
|
|
29
|
+
name: mod.name,
|
|
30
|
+
from: storedVersion,
|
|
31
|
+
to: mod.version,
|
|
32
|
+
});
|
|
33
|
+
await this._store.setVersion(mod.name, mod.version);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
// Downgrade: code version < stored version
|
|
37
|
+
mismatches.push({
|
|
38
|
+
name: mod.name,
|
|
39
|
+
expected: storedVersion,
|
|
40
|
+
actual: mod.version,
|
|
41
|
+
type: 'downgrade',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return {
|
|
46
|
+
ok: mismatches.length === 0,
|
|
47
|
+
mismatches,
|
|
48
|
+
upgrades,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
// Simple semver comparison: returns positive if a > b, negative if a < b, 0 if equal
|
|
53
|
+
function compareSemver(a, b) {
|
|
54
|
+
const partsA = a.split('.').map(Number);
|
|
55
|
+
const partsB = b.split('.').map(Number);
|
|
56
|
+
for (let i = 0; i < Math.max(partsA.length, partsB.length); i++) {
|
|
57
|
+
const va = partsA[i] ?? 0;
|
|
58
|
+
const vb = partsB[i] ?? 0;
|
|
59
|
+
if (va !== vb)
|
|
60
|
+
return va - vb;
|
|
61
|
+
}
|
|
62
|
+
return 0;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=versioning.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"versioning.js","sourceRoot":"","sources":["../../src/module/versioning.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,8DAA8D;AA4B9D,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,MAA0B;QAA1B,WAAM,GAAN,MAAM,CAAoB;IAAG,CAAC;IAElD,KAAK,CAAC,YAAY,CAAC,OAAwB;QACzC,MAAM,UAAU,GAAsB,EAAE,CAAA;QACxC,MAAM,QAAQ,GAAqB,EAAE,CAAA;QAErC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,SAAQ;YAE1B,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;YAE5D,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,kCAAkC;gBAClC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;gBACnD,SAAQ;YACV,CAAC;YAED,IAAI,aAAa,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC;gBAClC,uBAAuB;gBACvB,SAAQ;YACV,CAAC;YAED,8CAA8C;YAC9C,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAE5D,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,yCAAyC;gBACzC,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,IAAI,EAAE,aAAa;oBACnB,EAAE,EAAE,GAAG,CAAC,OAAO;iBAChB,CAAC,CAAA;gBACF,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;YACrD,CAAC;iBAAM,CAAC;gBACN,2CAA2C;gBAC3C,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,QAAQ,EAAE,aAAa;oBACvB,MAAM,EAAE,GAAG,CAAC,OAAO;oBACnB,IAAI,EAAE,WAAW;iBAClB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,EAAE,EAAE,UAAU,CAAC,MAAM,KAAK,CAAC;YAC3B,UAAU;YACV,QAAQ;SACT,CAAA;IACH,CAAC;CACF;AAED,qFAAqF;AACrF,SAAS,aAAa,CAAC,CAAS,EAAE,CAAS;IACzC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACvC,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAEvC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACzB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACzB,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAA;IAC/B,CAAC;IACD,OAAO,CAAC,CAAA;AACV,CAAC"}
|
package/dist/naming.d.ts
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PascalCase → camelCase: 'CustomerGroup' → 'customerGroup'
|
|
3
|
+
* Also handles snake_case input: 'customer_group' → 'customerGroup'
|
|
4
|
+
*/
|
|
5
|
+
export declare function toCamel(name: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Any format → PascalCase: 'customerGroup' → 'CustomerGroup', 'customer_group' → 'CustomerGroup'
|
|
8
|
+
*/
|
|
9
|
+
export declare function toPascal(name: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* PascalCase → snake_case: 'CustomerGroup' → 'customer_group'
|
|
12
|
+
* Used only for DB table columns and FK names.
|
|
13
|
+
*/
|
|
14
|
+
export declare function toSnake(name: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* PascalCase → kebab-case: 'CustomerGroup' → 'customer-group'
|
|
17
|
+
* Used only for URL routes.
|
|
18
|
+
*/
|
|
19
|
+
export declare function toKebab(name: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Pluralize a name: 'customerGroup' → 'customerGroups'
|
|
22
|
+
*/
|
|
23
|
+
export declare function pluralize(name: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* PascalCase → camelCase plural: 'CustomerGroup' → 'customerGroups'
|
|
26
|
+
* This is the Drizzle db.query key format.
|
|
27
|
+
*/
|
|
28
|
+
export declare function toTableKey(name: string): string;
|
|
29
|
+
/**
|
|
30
|
+
* Validate that an entity name is PascalCase.
|
|
31
|
+
* Throws a helpful error if it's not.
|
|
32
|
+
*/
|
|
33
|
+
export declare function validatePascalCase(name: string, context: string): void;
|
|
34
|
+
/**
|
|
35
|
+
* Validate that a name used in defineLink/query is camelCase.
|
|
36
|
+
* Throws if snake_case or other formats are used.
|
|
37
|
+
*/
|
|
38
|
+
export declare function validateCamelCase(name: string, context: string): void;
|
|
39
|
+
//# sourceMappingURL=naming.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.d.ts","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"AAaA;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO5C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK5C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ9C;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAQtE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmBrE"}
|
package/dist/naming.js
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// Entity naming conventions — single source of truth.
|
|
2
|
+
//
|
|
3
|
+
// The ONLY input is the PascalCase entity name from defineModel('CustomerGroup', {...}).
|
|
4
|
+
// Everything else is derived:
|
|
5
|
+
//
|
|
6
|
+
// PascalCase: CustomerGroup — defineModel() name (source of truth)
|
|
7
|
+
// camelCase: customerGroup — module keys, query resolvers, commands, step.command.*
|
|
8
|
+
// snake_case: customer_group — DB only (table columns, FK names)
|
|
9
|
+
// camelCase+s: customerGroups — Drizzle table key (db.query.customerGroups)
|
|
10
|
+
// kebab-case: customer-group — URL routes only (auto-converted)
|
|
11
|
+
import { MantaError } from './errors/manta-error';
|
|
12
|
+
/**
|
|
13
|
+
* PascalCase → camelCase: 'CustomerGroup' → 'customerGroup'
|
|
14
|
+
* Also handles snake_case input: 'customer_group' → 'customerGroup'
|
|
15
|
+
*/
|
|
16
|
+
export function toCamel(name) {
|
|
17
|
+
// If it's snake_case or kebab-case, convert to camelCase
|
|
18
|
+
if (name.includes('_') || name.includes('-')) {
|
|
19
|
+
return name.toLowerCase().replace(/[_-]([a-z])/g, (_, c) => c.toUpperCase());
|
|
20
|
+
}
|
|
21
|
+
// PascalCase → camelCase: just lowercase the first char
|
|
22
|
+
return name.charAt(0).toLowerCase() + name.slice(1);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Any format → PascalCase: 'customerGroup' → 'CustomerGroup', 'customer_group' → 'CustomerGroup'
|
|
26
|
+
*/
|
|
27
|
+
export function toPascal(name) {
|
|
28
|
+
const camel = toCamel(name);
|
|
29
|
+
return camel.charAt(0).toUpperCase() + camel.slice(1);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* PascalCase → snake_case: 'CustomerGroup' → 'customer_group'
|
|
33
|
+
* Used only for DB table columns and FK names.
|
|
34
|
+
*/
|
|
35
|
+
export function toSnake(name) {
|
|
36
|
+
return name
|
|
37
|
+
.replace(/([a-z])([A-Z])/g, '$1_$2')
|
|
38
|
+
.replace(/[\s-]+/g, '_')
|
|
39
|
+
.toLowerCase();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* PascalCase → kebab-case: 'CustomerGroup' → 'customer-group'
|
|
43
|
+
* Used only for URL routes.
|
|
44
|
+
*/
|
|
45
|
+
export function toKebab(name) {
|
|
46
|
+
return name
|
|
47
|
+
.replace(/([a-z])([A-Z])/g, '$1-$2')
|
|
48
|
+
.replace(/[\s_]+/g, '-')
|
|
49
|
+
.toLowerCase();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Pluralize a name: 'customerGroup' → 'customerGroups'
|
|
53
|
+
*/
|
|
54
|
+
export function pluralize(name) {
|
|
55
|
+
if (name.endsWith('s') || name.endsWith('x') || name.endsWith('ch') || name.endsWith('sh')) {
|
|
56
|
+
return `${name}es`;
|
|
57
|
+
}
|
|
58
|
+
if (name.endsWith('y') && !/[aeiou]y$/i.test(name)) {
|
|
59
|
+
return `${name.slice(0, -1)}ies`;
|
|
60
|
+
}
|
|
61
|
+
return `${name}s`;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* PascalCase → camelCase plural: 'CustomerGroup' → 'customerGroups'
|
|
65
|
+
* This is the Drizzle db.query key format.
|
|
66
|
+
*/
|
|
67
|
+
export function toTableKey(name) {
|
|
68
|
+
return pluralize(toCamel(name));
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Validate that an entity name is PascalCase.
|
|
72
|
+
* Throws a helpful error if it's not.
|
|
73
|
+
*/
|
|
74
|
+
export function validatePascalCase(name, context) {
|
|
75
|
+
if (!name || name[0] !== name[0].toUpperCase() || name[0] === name[0].toLowerCase()) {
|
|
76
|
+
throw new MantaError('INVALID_DATA', `${context}: entity name "${name}" must be PascalCase (e.g. "${toPascal(name)}"). ` +
|
|
77
|
+
`Got "${name}" which looks like ${name.includes('_') ? 'snake_case' : name.includes('-') ? 'kebab-case' : 'lowercase'}.`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Validate that a name used in defineLink/query is camelCase.
|
|
82
|
+
* Throws if snake_case or other formats are used.
|
|
83
|
+
*/
|
|
84
|
+
export function validateCamelCase(name, context) {
|
|
85
|
+
if (name.includes('_')) {
|
|
86
|
+
throw new MantaError('INVALID_DATA', `${context}: "${name}" must be camelCase, not snake_case. Use "${toCamel(name)}" instead.`);
|
|
87
|
+
}
|
|
88
|
+
if (name.includes('-')) {
|
|
89
|
+
throw new MantaError('INVALID_DATA', `${context}: "${name}" must be camelCase, not kebab-case. Use "${toCamel(name)}" instead.`);
|
|
90
|
+
}
|
|
91
|
+
if (name[0] === name[0].toUpperCase() && name[0] !== name[0].toLowerCase()) {
|
|
92
|
+
throw new MantaError('INVALID_DATA', `${context}: "${name}" must be camelCase, not PascalCase. Use "${toCamel(name)}" instead.`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=naming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naming.js","sourceRoot":"","sources":["../src/naming.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/ports/analytics.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/ports/analytics.ts"],"names":[],"mappings":"AAAA,oDAAoD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { AuthenticationInput, AuthenticationResponse } from '../auth/providers/types';
|
|
2
|
+
import type { AuthContext, AuthCredentials, SessionOptions } from '../auth/types';
|
|
3
|
+
/** SPEC-049 — Auth (crypto pure) */
|
|
4
|
+
export interface IAuthPort {
|
|
5
|
+
verifyJwt(token: string): AuthContext | null;
|
|
6
|
+
verifyApiKey(key: string): AuthContext | null;
|
|
7
|
+
createJwt(payload: AuthContext, options?: {
|
|
8
|
+
expiresIn?: string | number;
|
|
9
|
+
}): string;
|
|
10
|
+
}
|
|
11
|
+
/** SPEC-050 — Auth Module Service (business logic + sessions) */
|
|
12
|
+
export interface IAuthModuleService {
|
|
13
|
+
authenticate(provider: string, data: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
14
|
+
register(provider: string, data: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
15
|
+
validateCallback(provider: string, data: AuthenticationInput): Promise<AuthenticationResponse>;
|
|
16
|
+
createSession(authContext: AuthContext, options?: SessionOptions): Promise<{
|
|
17
|
+
sessionId: string;
|
|
18
|
+
expiresAt: Date;
|
|
19
|
+
}>;
|
|
20
|
+
destroySession(sessionId: string): Promise<void>;
|
|
21
|
+
verifySession(sessionId: string): Promise<AuthContext | null>;
|
|
22
|
+
}
|
|
23
|
+
/** SPEC-049b — Auth Gateway */
|
|
24
|
+
export interface IAuthGateway {
|
|
25
|
+
authenticate(credentials: AuthCredentials): Promise<AuthContext | null>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/ports/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAC1F,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEjF,oCAAoC;AACpC,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAA;IAC5C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAAA;IAC7C,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,GAAG,MAAM,CAAA;CACnF;AAED,iEAAiE;AACjE,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC1F,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IACtF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC9F,aAAa,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,IAAI,CAAA;KAAE,CAAC,CAAA;IAClH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChD,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;CAC9D;AAED,+BAA+B;AAC/B,MAAM,WAAW,YAAY;IAC3B,YAAY,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAAA;CACxE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/ports/auth.ts"],"names":[],"mappings":"AAAA,2CAA2C"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache port contract.
|
|
3
|
+
* Adapters: InMemoryCacheAdapter (dev), UpstashCacheAdapter (prod).
|
|
4
|
+
*/
|
|
5
|
+
export interface ICachePort {
|
|
6
|
+
/**
|
|
7
|
+
* Get a cached value by key.
|
|
8
|
+
* @param key - The cache key
|
|
9
|
+
* @returns The cached value, or null if not found / expired
|
|
10
|
+
*/
|
|
11
|
+
get(key: string): Promise<unknown>;
|
|
12
|
+
/**
|
|
13
|
+
* Set a value in the cache.
|
|
14
|
+
* @param key - The cache key
|
|
15
|
+
* @param data - The value to cache (strings stored as-is, objects JSON-serialized)
|
|
16
|
+
* @param ttl - Time-to-live in seconds (optional)
|
|
17
|
+
*/
|
|
18
|
+
set(key: string, data: unknown, ttl?: number): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* Invalidate a specific cache key (exact match, no patterns).
|
|
21
|
+
* @param key - The cache key to invalidate
|
|
22
|
+
*/
|
|
23
|
+
invalidate(key: string): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Clear all cached entries.
|
|
26
|
+
*/
|
|
27
|
+
clear(): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Optional readiness probe. Returns true if the cache backend is reachable.
|
|
30
|
+
* Used by /health/ready (BC-F22). If the adapter does not implement ping(),
|
|
31
|
+
* the readiness handler treats the cache as present but unprobed.
|
|
32
|
+
*/
|
|
33
|
+
ping?(): Promise<boolean>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/ports/cache.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IAElC;;;;;OAKG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE5D;;;OAGG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtC;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAEtB;;;;OAIG;IACH,IAAI,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/ports/cache.ts"],"names":[],"mappings":"AAAA,sCAAsC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { DatabaseConfig } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Database port contract.
|
|
4
|
+
* Adapters: DrizzlePgAdapter (dev/prod).
|
|
5
|
+
*/
|
|
6
|
+
export interface IDatabasePort {
|
|
7
|
+
/**
|
|
8
|
+
* Initialize the database connection.
|
|
9
|
+
* @param config - Database connection configuration
|
|
10
|
+
*/
|
|
11
|
+
initialize(config: DatabaseConfig): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Dispose the database connection and pool.
|
|
14
|
+
*/
|
|
15
|
+
dispose(): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Check if the database is healthy and reachable.
|
|
18
|
+
* @returns True if healthy
|
|
19
|
+
*/
|
|
20
|
+
healthCheck(): Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Get the underlying Drizzle client instance.
|
|
23
|
+
* @returns The database client
|
|
24
|
+
*/
|
|
25
|
+
getClient(): unknown;
|
|
26
|
+
/**
|
|
27
|
+
* Get the underlying connection pool.
|
|
28
|
+
* @returns The connection pool
|
|
29
|
+
*/
|
|
30
|
+
getPool(): unknown;
|
|
31
|
+
/** Execute raw parameterized SQL. Use $1, $2 placeholders. Escape hatch for complex queries. */
|
|
32
|
+
raw<T = Record<string, unknown>>(sql: string, params?: unknown[]): Promise<T[]>;
|
|
33
|
+
/**
|
|
34
|
+
* Optional: introspect the database schema.
|
|
35
|
+
* Used by manta db:diff for schema comparison.
|
|
36
|
+
* @returns Schema introspection result
|
|
37
|
+
*/
|
|
38
|
+
introspect?(): Promise<unknown>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/ports/database.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAEjD;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IAExB;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAE/B;;;OAGG;IACH,SAAS,IAAI,OAAO,CAAA;IAEpB;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAA;IAElB,gGAAgG;IAChG,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAA;IAE/E;;;;OAIG;IACH,UAAU,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAChC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/ports/database.ts"],"names":[],"mappings":"AAAA,qCAAqC"}
|