@ddd-ts-kit/di 0.0.0-stage → 0.1.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/README.md +1075 -2
- package/dist/application/application-options.d.ts +19 -0
- package/dist/application/application-options.d.ts.map +1 -0
- package/dist/application/application-options.js +2 -0
- package/dist/application/application-options.js.map +1 -0
- package/dist/application/application.d.ts +22 -0
- package/dist/application/application.d.ts.map +1 -0
- package/dist/application/application.js +2 -0
- package/dist/application/application.js.map +1 -0
- package/dist/application/assemble.d.ts +6 -0
- package/dist/application/assemble.d.ts.map +1 -0
- package/dist/application/assemble.js +16 -0
- package/dist/application/assemble.js.map +1 -0
- package/dist/application/binding-info.d.ts +10 -0
- package/dist/application/binding-info.d.ts.map +1 -0
- package/dist/application/binding-info.js +2 -0
- package/dist/application/binding-info.js.map +1 -0
- package/dist/application/bound-ports.d.ts +8 -0
- package/dist/application/bound-ports.d.ts.map +1 -0
- package/dist/application/bound-ports.js +2 -0
- package/dist/application/bound-ports.js.map +1 -0
- package/dist/application/consumer-subscriptions.d.ts +21 -0
- package/dist/application/consumer-subscriptions.d.ts.map +1 -0
- package/dist/application/consumer-subscriptions.js +59 -0
- package/dist/application/consumer-subscriptions.js.map +1 -0
- package/dist/application/container-application.d.ts +44 -0
- package/dist/application/container-application.d.ts.map +1 -0
- package/dist/application/container-application.js +224 -0
- package/dist/application/container-application.js.map +1 -0
- package/dist/application/create-application.d.ts +10 -0
- package/dist/application/create-application.d.ts.map +1 -0
- package/dist/application/create-application.js +12 -0
- package/dist/application/create-application.js.map +1 -0
- package/dist/application/decorate.d.ts +8 -0
- package/dist/application/decorate.d.ts.map +1 -0
- package/dist/application/decorate.js +2 -0
- package/dist/application/decorate.js.map +1 -0
- package/dist/application/delegating-applications.d.ts +7 -0
- package/dist/application/delegating-applications.d.ts.map +1 -0
- package/dist/application/delegating-applications.js +6 -0
- package/dist/application/delegating-applications.js.map +1 -0
- package/dist/application/failures-of.d.ts +3 -0
- package/dist/application/failures-of.d.ts.map +1 -0
- package/dist/application/failures-of.js +13 -0
- package/dist/application/failures-of.js.map +1 -0
- package/dist/application/is-handler-registry.d.ts +9 -0
- package/dist/application/is-handler-registry.d.ts.map +1 -0
- package/dist/application/is-handler-registry.js +5 -0
- package/dist/application/is-handler-registry.js.map +1 -0
- package/dist/application/job-lifecycle.d.ts +16 -0
- package/dist/application/job-lifecycle.d.ts.map +1 -0
- package/dist/application/job-lifecycle.js +48 -0
- package/dist/application/job-lifecycle.js.map +1 -0
- package/dist/application/override-for-tests.d.ts +8 -0
- package/dist/application/override-for-tests.d.ts.map +1 -0
- package/dist/application/override-for-tests.js +14 -0
- package/dist/application/override-for-tests.js.map +1 -0
- package/dist/application/override.d.ts +5 -0
- package/dist/application/override.d.ts.map +1 -0
- package/dist/application/override.js +5 -0
- package/dist/application/override.js.map +1 -0
- package/dist/application/with-binding-aspects.d.ts +8 -0
- package/dist/application/with-binding-aspects.d.ts.map +1 -0
- package/dist/application/with-binding-aspects.js +26 -0
- package/dist/application/with-binding-aspects.js.map +1 -0
- package/dist/authorization/assert-authorization-declared.d.ts +5 -0
- package/dist/authorization/assert-authorization-declared.d.ts.map +1 -0
- package/dist/authorization/assert-authorization-declared.js +28 -0
- package/dist/authorization/assert-authorization-declared.js.map +1 -0
- package/dist/authorization/authorization-mode.d.ts +3 -0
- package/dist/authorization/authorization-mode.d.ts.map +1 -0
- package/dist/authorization/authorization-mode.js +2 -0
- package/dist/authorization/authorization-mode.js.map +1 -0
- package/dist/authorization/declarations-of.d.ts +4 -0
- package/dist/authorization/declarations-of.d.ts.map +1 -0
- package/dist/authorization/declarations-of.js +4 -0
- package/dist/authorization/declarations-of.js.map +1 -0
- package/dist/authorization/declared-policies.d.ts +10 -0
- package/dist/authorization/declared-policies.d.ts.map +1 -0
- package/dist/authorization/declared-policies.js +8 -0
- package/dist/authorization/declared-policies.js.map +1 -0
- package/dist/authorization/declared-requirement.d.ts +5 -0
- package/dist/authorization/declared-requirement.d.ts.map +1 -0
- package/dist/authorization/declared-requirement.js +16 -0
- package/dist/authorization/declared-requirement.js.map +1 -0
- package/dist/authorization/pass-every-message.d.ts +3 -0
- package/dist/authorization/pass-every-message.d.ts.map +1 -0
- package/dist/authorization/pass-every-message.js +2 -0
- package/dist/authorization/pass-every-message.js.map +1 -0
- package/dist/authorization/protected-requirement.d.ts +6 -0
- package/dist/authorization/protected-requirement.d.ts.map +1 -0
- package/dist/authorization/protected-requirement.js +9 -0
- package/dist/authorization/protected-requirement.js.map +1 -0
- package/dist/authorization/requirement-options.d.ts +8 -0
- package/dist/authorization/requirement-options.d.ts.map +1 -0
- package/dist/authorization/requirement-options.js +2 -0
- package/dist/authorization/requirement-options.js.map +1 -0
- package/dist/authorization/requirement.d.ts +5 -0
- package/dist/authorization/requirement.d.ts.map +1 -0
- package/dist/authorization/requirement.js +2 -0
- package/dist/authorization/requirement.js.map +1 -0
- package/dist/authorization/use-case-access.d.ts +2 -0
- package/dist/authorization/use-case-access.d.ts.map +1 -0
- package/dist/authorization/use-case-access.js +2 -0
- package/dist/authorization/use-case-access.js.map +1 -0
- package/dist/authorization/use-case-declaration.d.ts +14 -0
- package/dist/authorization/use-case-declaration.d.ts.map +1 -0
- package/dist/authorization/use-case-declaration.js +2 -0
- package/dist/authorization/use-case-declaration.js.map +1 -0
- package/dist/authorization/use-case-declarations.d.ts +7 -0
- package/dist/authorization/use-case-declarations.d.ts.map +1 -0
- package/dist/authorization/use-case-declarations.js +5 -0
- package/dist/authorization/use-case-declarations.js.map +1 -0
- package/dist/authorization/use-case-guard-middleware.d.ts +5 -0
- package/dist/authorization/use-case-guard-middleware.d.ts.map +1 -0
- package/dist/authorization/use-case-guard-middleware.js +6 -0
- package/dist/authorization/use-case-guard-middleware.js.map +1 -0
- package/dist/authorization/use-case-guard.d.ts +10 -0
- package/dist/authorization/use-case-guard.d.ts.map +1 -0
- package/dist/authorization/use-case-guard.js +8 -0
- package/dist/authorization/use-case-guard.js.map +1 -0
- package/dist/checks/assert-sound.d.ts +5 -0
- package/dist/checks/assert-sound.d.ts.map +1 -0
- package/dist/checks/assert-sound.js +74 -0
- package/dist/checks/assert-sound.js.map +1 -0
- package/dist/checks/cycle-error.d.ts +4 -0
- package/dist/checks/cycle-error.d.ts.map +1 -0
- package/dist/checks/cycle-error.js +6 -0
- package/dist/checks/cycle-error.js.map +1 -0
- package/dist/consumer/consumer-options.d.ts +14 -0
- package/dist/consumer/consumer-options.d.ts.map +1 -0
- package/dist/consumer/consumer-options.js +2 -0
- package/dist/consumer/consumer-options.js.map +1 -0
- package/dist/consumer/consumer-runtime.d.ts +9 -0
- package/dist/consumer/consumer-runtime.d.ts.map +1 -0
- package/dist/consumer/consumer-runtime.js +2 -0
- package/dist/consumer/consumer-runtime.js.map +1 -0
- package/dist/consumer/observed-projection.d.ts +19 -0
- package/dist/consumer/observed-projection.d.ts.map +1 -0
- package/dist/consumer/observed-projection.js +44 -0
- package/dist/consumer/observed-projection.js.map +1 -0
- package/dist/consumer/receive.d.ts +21 -0
- package/dist/consumer/receive.d.ts.map +1 -0
- package/dist/consumer/receive.js +40 -0
- package/dist/consumer/receive.js.map +1 -0
- package/dist/consumer/unreadable-event-error.d.ts +9 -0
- package/dist/consumer/unreadable-event-error.d.ts.map +1 -0
- package/dist/consumer/unreadable-event-error.js +15 -0
- package/dist/consumer/unreadable-event-error.js.map +1 -0
- package/dist/declared/apply-through.d.ts +3 -0
- package/dist/declared/apply-through.d.ts.map +1 -0
- package/dist/declared/apply-through.js +11 -0
- package/dist/declared/apply-through.js.map +1 -0
- package/dist/declared/consumption-of.d.ts +15 -0
- package/dist/declared/consumption-of.d.ts.map +1 -0
- package/dist/declared/consumption-of.js +15 -0
- package/dist/declared/consumption-of.js.map +1 -0
- package/dist/declared/context-module.d.ts +10 -0
- package/dist/declared/context-module.d.ts.map +1 -0
- package/dist/declared/context-module.js +16 -0
- package/dist/declared/context-module.js.map +1 -0
- package/dist/declared/declared-source.d.ts +7 -0
- package/dist/declared/declared-source.d.ts.map +1 -0
- package/dist/declared/declared-source.js +2 -0
- package/dist/declared/declared-source.js.map +1 -0
- package/dist/declared/discovered-files.d.ts +6 -0
- package/dist/declared/discovered-files.d.ts.map +1 -0
- package/dist/declared/discovered-files.js +10 -0
- package/dist/declared/discovered-files.js.map +1 -0
- package/dist/declared/include-declared.d.ts +10 -0
- package/dist/declared/include-declared.d.ts.map +1 -0
- package/dist/declared/include-declared.js +173 -0
- package/dist/declared/include-declared.js.map +1 -0
- package/dist/declared/projection-of.d.ts +24 -0
- package/dist/declared/projection-of.d.ts.map +1 -0
- package/dist/declared/projection-of.js +73 -0
- package/dist/declared/projection-of.js.map +1 -0
- package/dist/description/describe-wiring.d.ts +6 -0
- package/dist/description/describe-wiring.d.ts.map +1 -0
- package/dist/description/describe-wiring.js +77 -0
- package/dist/description/describe-wiring.js.map +1 -0
- package/dist/description/wiring-description.d.ts +98 -0
- package/dist/description/wiring-description.d.ts.map +1 -0
- package/dist/description/wiring-description.js +2 -0
- package/dist/description/wiring-description.js.map +1 -0
- package/dist/discovery/discover-context.d.ts +27 -0
- package/dist/discovery/discover-context.d.ts.map +1 -0
- package/dist/discovery/discover-context.js +69 -0
- package/dist/discovery/discover-context.js.map +1 -0
- package/dist/discovery/role-files-of.d.ts +16 -0
- package/dist/discovery/role-files-of.d.ts.map +1 -0
- package/dist/discovery/role-files-of.js +63 -0
- package/dist/discovery/role-files-of.js.map +1 -0
- package/dist/discovery/role-rule.d.ts +10 -0
- package/dist/discovery/role-rule.d.ts.map +1 -0
- package/dist/discovery/role-rule.js +23 -0
- package/dist/discovery/role-rule.js.map +1 -0
- package/dist/discovery.d.ts +2 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +2 -0
- package/dist/discovery.js.map +1 -0
- package/dist/errors/wiring-error.d.ts +7 -0
- package/dist/errors/wiring-error.d.ts.map +1 -0
- package/dist/errors/wiring-error.js +10 -0
- package/dist/errors/wiring-error.js.map +1 -0
- package/dist/index.d.ts +52 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +20 -0
- package/dist/index.js.map +1 -0
- package/dist/jobs/definition-of.d.ts +7 -0
- package/dist/jobs/definition-of.d.ts.map +1 -0
- package/dist/jobs/definition-of.js +11 -0
- package/dist/jobs/definition-of.js.map +1 -0
- package/dist/jobs/effective-job.d.ts +7 -0
- package/dist/jobs/effective-job.d.ts.map +1 -0
- package/dist/jobs/effective-job.js +2 -0
- package/dist/jobs/effective-job.js.map +1 -0
- package/dist/jobs/effective-jobs.d.ts +6 -0
- package/dist/jobs/effective-jobs.d.ts.map +1 -0
- package/dist/jobs/effective-jobs.js +33 -0
- package/dist/jobs/effective-jobs.js.map +1 -0
- package/dist/jobs/jobs-options.d.ts +16 -0
- package/dist/jobs/jobs-options.d.ts.map +1 -0
- package/dist/jobs/jobs-options.js +2 -0
- package/dist/jobs/jobs-options.js.map +1 -0
- package/dist/jobs/readable.d.ts +3 -0
- package/dist/jobs/readable.d.ts.map +1 -0
- package/dist/jobs/readable.js +15 -0
- package/dist/jobs/readable.js.map +1 -0
- package/dist/jobs/written-job.d.ts +11 -0
- package/dist/jobs/written-job.d.ts.map +1 -0
- package/dist/jobs/written-job.js +8 -0
- package/dist/jobs/written-job.js.map +1 -0
- package/dist/kernel/guarded-query-bus.d.ts +5 -0
- package/dist/kernel/guarded-query-bus.d.ts.map +1 -0
- package/dist/kernel/guarded-query-bus.js +9 -0
- package/dist/kernel/guarded-query-bus.js.map +1 -0
- package/dist/kernel/instrumentation.d.ts +37 -0
- package/dist/kernel/instrumentation.d.ts.map +1 -0
- package/dist/kernel/instrumentation.js +9 -0
- package/dist/kernel/instrumentation.js.map +1 -0
- package/dist/kernel/kernel-module-options.d.ts +57 -0
- package/dist/kernel/kernel-module-options.d.ts.map +1 -0
- package/dist/kernel/kernel-module-options.js +2 -0
- package/dist/kernel/kernel-module-options.js.map +1 -0
- package/dist/kernel/kernel-module.d.ts +14 -0
- package/dist/kernel/kernel-module.d.ts.map +1 -0
- package/dist/kernel/kernel-module.js +133 -0
- package/dist/kernel/kernel-module.js.map +1 -0
- package/dist/kernel/kernel-ports.d.ts +4 -0
- package/dist/kernel/kernel-ports.d.ts.map +1 -0
- package/dist/kernel/kernel-ports.js +25 -0
- package/dist/kernel/kernel-ports.js.map +1 -0
- package/dist/kernel/lazy-error-reporter.d.ts +8 -0
- package/dist/kernel/lazy-error-reporter.d.ts.map +1 -0
- package/dist/kernel/lazy-error-reporter.js +14 -0
- package/dist/kernel/lazy-error-reporter.js.map +1 -0
- package/dist/kernel/provided.d.ts +4 -0
- package/dist/kernel/provided.d.ts.map +1 -0
- package/dist/kernel/provided.js +2 -0
- package/dist/kernel/provided.js.map +1 -0
- package/dist/kernel/reported-failures.d.ts +5 -0
- package/dist/kernel/reported-failures.d.ts.map +1 -0
- package/dist/kernel/reported-failures.js +9 -0
- package/dist/kernel/reported-failures.js.map +1 -0
- package/dist/kernel/transactional-command-bus.d.ts +10 -0
- package/dist/kernel/transactional-command-bus.d.ts.map +1 -0
- package/dist/kernel/transactional-command-bus.js +17 -0
- package/dist/kernel/transactional-command-bus.js.map +1 -0
- package/dist/module/binding-options-of.d.ts +5 -0
- package/dist/module/binding-options-of.d.ts.map +1 -0
- package/dist/module/binding-options-of.js +23 -0
- package/dist/module/binding-options-of.js.map +1 -0
- package/dist/module/binding-options.d.ts +8 -0
- package/dist/module/binding-options.d.ts.map +1 -0
- package/dist/module/binding-options.js +2 -0
- package/dist/module/binding-options.js.map +1 -0
- package/dist/module/binding-target.d.ts +15 -0
- package/dist/module/binding-target.d.ts.map +1 -0
- package/dist/module/binding-target.js +2 -0
- package/dist/module/binding-target.js.map +1 -0
- package/dist/module/collect-wiring.d.ts +5 -0
- package/dist/module/collect-wiring.d.ts.map +1 -0
- package/dist/module/collect-wiring.js +13 -0
- package/dist/module/collect-wiring.js.map +1 -0
- package/dist/module/context-module.d.ts +10 -0
- package/dist/module/context-module.d.ts.map +1 -0
- package/dist/module/context-module.js +2 -0
- package/dist/module/context-module.js.map +1 -0
- package/dist/module/define-context-module.d.ts +4 -0
- package/dist/module/define-context-module.d.ts.map +1 -0
- package/dist/module/define-context-module.js +5 -0
- package/dist/module/define-context-module.js.map +1 -0
- package/dist/module/factory-made-handlers.d.ts +6 -0
- package/dist/module/factory-made-handlers.d.ts.map +1 -0
- package/dist/module/factory-made-handlers.js +24 -0
- package/dist/module/factory-made-handlers.js.map +1 -0
- package/dist/module/handler-target.d.ts +11 -0
- package/dist/module/handler-target.d.ts.map +1 -0
- package/dist/module/handler-target.js +2 -0
- package/dist/module/handler-target.js.map +1 -0
- package/dist/module/module-builder.d.ts +50 -0
- package/dist/module/module-builder.d.ts.map +1 -0
- package/dist/module/module-builder.js +2 -0
- package/dist/module/module-builder.js.map +1 -0
- package/dist/module/module-context.d.ts +5 -0
- package/dist/module/module-context.d.ts.map +1 -0
- package/dist/module/module-context.js +2 -0
- package/dist/module/module-context.js.map +1 -0
- package/dist/module/module-recorder.d.ts +31 -0
- package/dist/module/module-recorder.d.ts.map +1 -0
- package/dist/module/module-recorder.js +133 -0
- package/dist/module/module-recorder.js.map +1 -0
- package/dist/module/protected-use-case-target.d.ts +14 -0
- package/dist/module/protected-use-case-target.d.ts.map +1 -0
- package/dist/module/protected-use-case-target.js +2 -0
- package/dist/module/protected-use-case-target.js.map +1 -0
- package/dist/module/use-case-target.d.ts +8 -0
- package/dist/module/use-case-target.d.ts.map +1 -0
- package/dist/module/use-case-target.js +2 -0
- package/dist/module/use-case-target.js.map +1 -0
- package/dist/module/value-binding-options.d.ts +13 -0
- package/dist/module/value-binding-options.d.ts.map +1 -0
- package/dist/module/value-binding-options.js +2 -0
- package/dist/module/value-binding-options.js.map +1 -0
- package/dist/testing/create-test-application.d.ts +12 -0
- package/dist/testing/create-test-application.d.ts.map +1 -0
- package/dist/testing/create-test-application.js +89 -0
- package/dist/testing/create-test-application.js.map +1 -0
- package/dist/testing/create-test-kernel.d.ts +6 -0
- package/dist/testing/create-test-kernel.d.ts.map +1 -0
- package/dist/testing/create-test-kernel.js +65 -0
- package/dist/testing/create-test-kernel.js.map +1 -0
- package/dist/testing/fake.d.ts +5 -0
- package/dist/testing/fake.d.ts.map +1 -0
- package/dist/testing/fake.js +6 -0
- package/dist/testing/fake.js.map +1 -0
- package/dist/testing/test-application-of.d.ts +10 -0
- package/dist/testing/test-application-of.d.ts.map +1 -0
- package/dist/testing/test-application-of.js +49 -0
- package/dist/testing/test-application-of.js.map +1 -0
- package/dist/testing/test-application-options.d.ts +35 -0
- package/dist/testing/test-application-options.d.ts.map +1 -0
- package/dist/testing/test-application-options.js +2 -0
- package/dist/testing/test-application-options.js.map +1 -0
- package/dist/testing/test-application.d.ts +15 -0
- package/dist/testing/test-application.d.ts.map +1 -0
- package/dist/testing/test-application.js +2 -0
- package/dist/testing/test-application.js.map +1 -0
- package/dist/testing/test-jobs.d.ts +16 -0
- package/dist/testing/test-jobs.d.ts.map +1 -0
- package/dist/testing/test-jobs.js +2 -0
- package/dist/testing/test-jobs.js.map +1 -0
- package/dist/testing/test-kernel.d.ts +39 -0
- package/dist/testing/test-kernel.d.ts.map +1 -0
- package/dist/testing/test-kernel.js +2 -0
- package/dist/testing/test-kernel.js.map +1 -0
- package/dist/token/same-token.d.ts +3 -0
- package/dist/token/same-token.d.ts.map +1 -0
- package/dist/token/same-token.js +5 -0
- package/dist/token/same-token.js.map +1 -0
- package/dist/token/token-map.d.ts +14 -0
- package/dist/token/token-map.d.ts.map +1 -0
- package/dist/token/token-map.js +24 -0
- package/dist/token/token-map.js.map +1 -0
- package/dist/token/token-set.d.ts +9 -0
- package/dist/token/token-set.d.ts.map +1 -0
- package/dist/token/token-set.js +19 -0
- package/dist/token/token-set.js.map +1 -0
- package/dist/wiring/any-message-handler.d.ts +5 -0
- package/dist/wiring/any-message-handler.d.ts.map +1 -0
- package/dist/wiring/any-message-handler.js +2 -0
- package/dist/wiring/any-message-handler.js.map +1 -0
- package/dist/wiring/assert-port.d.ts +4 -0
- package/dist/wiring/assert-port.d.ts.map +1 -0
- package/dist/wiring/assert-port.js +10 -0
- package/dist/wiring/assert-port.js.map +1 -0
- package/dist/wiring/binding-source.d.ts +2 -0
- package/dist/wiring/binding-source.d.ts.map +1 -0
- package/dist/wiring/binding-source.js +2 -0
- package/dist/wiring/binding-source.js.map +1 -0
- package/dist/wiring/binding.d.ts +22 -0
- package/dist/wiring/binding.d.ts.map +1 -0
- package/dist/wiring/binding.js +2 -0
- package/dist/wiring/binding.js.map +1 -0
- package/dist/wiring/declarer.d.ts +6 -0
- package/dist/wiring/declarer.d.ts.map +1 -0
- package/dist/wiring/declarer.js +2 -0
- package/dist/wiring/declarer.js.map +1 -0
- package/dist/wiring/domain-event-handling.d.ts +20 -0
- package/dist/wiring/domain-event-handling.d.ts.map +1 -0
- package/dist/wiring/domain-event-handling.js +2 -0
- package/dist/wiring/domain-event-handling.js.map +1 -0
- package/dist/wiring/event-consumption.d.ts +17 -0
- package/dist/wiring/event-consumption.d.ts.map +1 -0
- package/dist/wiring/event-consumption.js +2 -0
- package/dist/wiring/event-consumption.js.map +1 -0
- package/dist/wiring/job-registration.d.ts +14 -0
- package/dist/wiring/job-registration.d.ts.map +1 -0
- package/dist/wiring/job-registration.js +2 -0
- package/dist/wiring/job-registration.js.map +1 -0
- package/dist/wiring/kind-aspect.d.ts +11 -0
- package/dist/wiring/kind-aspect.d.ts.map +1 -0
- package/dist/wiring/kind-aspect.js +2 -0
- package/dist/wiring/kind-aspect.js.map +1 -0
- package/dist/wiring/lifetime.d.ts +2 -0
- package/dist/wiring/lifetime.d.ts.map +1 -0
- package/dist/wiring/lifetime.js +2 -0
- package/dist/wiring/lifetime.js.map +1 -0
- package/dist/wiring/message-handling.d.ts +15 -0
- package/dist/wiring/message-handling.d.ts.map +1 -0
- package/dist/wiring/message-handling.js +2 -0
- package/dist/wiring/message-handling.js.map +1 -0
- package/dist/wiring/natural-kind.d.ts +9 -0
- package/dist/wiring/natural-kind.d.ts.map +1 -0
- package/dist/wiring/natural-kind.js +11 -0
- package/dist/wiring/natural-kind.js.map +1 -0
- package/dist/wiring/policy-binding.d.ts +11 -0
- package/dist/wiring/policy-binding.d.ts.map +1 -0
- package/dist/wiring/policy-binding.js +2 -0
- package/dist/wiring/policy-binding.js.map +1 -0
- package/dist/wiring/projection-registration.d.ts +22 -0
- package/dist/wiring/projection-registration.d.ts.map +1 -0
- package/dist/wiring/projection-registration.js +2 -0
- package/dist/wiring/projection-registration.js.map +1 -0
- package/dist/wiring/recipe.d.ts +9 -0
- package/dist/wiring/recipe.d.ts.map +1 -0
- package/dist/wiring/recipe.js +15 -0
- package/dist/wiring/recipe.js.map +1 -0
- package/dist/wiring/resolve.d.ts +3 -0
- package/dist/wiring/resolve.d.ts.map +1 -0
- package/dist/wiring/resolve.js +2 -0
- package/dist/wiring/resolve.js.map +1 -0
- package/dist/wiring/where-of.d.ts +9 -0
- package/dist/wiring/where-of.d.ts.map +1 -0
- package/dist/wiring/where-of.js +9 -0
- package/dist/wiring/where-of.js.map +1 -0
- package/dist/wiring/wiring-draft.d.ts +31 -0
- package/dist/wiring/wiring-draft.d.ts.map +1 -0
- package/dist/wiring/wiring-draft.js +83 -0
- package/dist/wiring/wiring-draft.js.map +1 -0
- package/dist/wiring/wiring.d.ts +23 -0
- package/dist/wiring/wiring.d.ts.map +1 -0
- package/dist/wiring/wiring.js +2 -0
- package/dist/wiring/wiring.js.map +1 -0
- package/package.json +42 -4
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** Runs every attempt, whatever the previous ones did, and answers what they threw. */
|
|
2
|
+
export function failuresOf(attempts) {
|
|
3
|
+
return attempts.flatMap((attempt) => {
|
|
4
|
+
try {
|
|
5
|
+
attempt();
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
return [error];
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=failures-of.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failures-of.js","sourceRoot":"","sources":["../../src/application/failures-of.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,UAAU,UAAU,CAAC,QAAiC;IAC1D,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC;YAEV,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { HandlerRegistration, Message, MessageType } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { AnyMessageHandler } from '../wiring/any-message-handler.js';
|
|
3
|
+
interface HandlerRegistry {
|
|
4
|
+
register(type: MessageType<Message>, handler: AnyMessageHandler, registration?: HandlerRegistration): unknown;
|
|
5
|
+
}
|
|
6
|
+
/** A bus the declared handlers can be attached to: the in-process ones, not a remote transport. */
|
|
7
|
+
export declare function isHandlerRegistry(bus: unknown): bus is HandlerRegistry;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=is-handler-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-handler-registry.d.ts","sourceRoot":"","sources":["../../src/application/is-handler-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,UAAU,eAAe;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,YAAY,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC;CAC/G;AAED,mGAAmG;AACnG,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,eAAe,CAEtE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/** A bus the declared handlers can be attached to: the in-process ones, not a remote transport. */
|
|
2
|
+
export function isHandlerRegistry(bus) {
|
|
3
|
+
return typeof bus === 'object' && bus !== null && 'register' in bus && typeof bus.register === 'function';
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=is-handler-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-handler-registry.js","sourceRoot":"","sources":["../../src/application/is-handler-registry.ts"],"names":[],"mappings":"AAOA,mGAAmG;AACnG,MAAM,UAAU,iBAAiB,CAAC,GAAY;IAC5C,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,UAAU,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,CAAC;AAC5G,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { EffectiveJob } from '../jobs/effective-job.js';
|
|
2
|
+
import type { BoundPorts } from './bound-ports.js';
|
|
3
|
+
/** The declared jobs on the job scheduler: registered at creation, run by time while the application runs. */
|
|
4
|
+
export declare class JobLifecycle {
|
|
5
|
+
readonly jobs: readonly EffectiveJob[];
|
|
6
|
+
private readonly ports;
|
|
7
|
+
private readonly runsByTime;
|
|
8
|
+
private started;
|
|
9
|
+
constructor(jobs: readonly EffectiveJob[], ports: BoundPorts, runsByTime: boolean);
|
|
10
|
+
/** Leaves the scheduler alone, unbuilt, in an application without job. */
|
|
11
|
+
register(): void;
|
|
12
|
+
start(): Promise<void>;
|
|
13
|
+
/** Answers what failed, for the application to go on stopping the rest. */
|
|
14
|
+
stop(): Promise<unknown[]>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=job-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-lifecycle.d.ts","sourceRoot":"","sources":["../../src/application/job-lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,8GAA8G;AAC9G,qBAAa,YAAY;IAIrB,QAAQ,CAAC,IAAI,EAAE,SAAS,YAAY,EAAE;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAL7B,OAAO,CAAC,OAAO,CAAS;IAExB,YACW,IAAI,EAAE,SAAS,YAAY,EAAE,EACrB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,OAAO,EAClC;IAEJ,0EAA0E;IAC1E,QAAQ,IAAI,IAAI,CAWf;IAEK,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAO3B;IAED,2EAA2E;IACrE,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAc/B;CACF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { JobScheduler } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import { definitionOf } from '../jobs/definition-of.js';
|
|
3
|
+
import { Instrumentation } from '../kernel/instrumentation.js';
|
|
4
|
+
/** The declared jobs on the job scheduler: registered at creation, run by time while the application runs. */
|
|
5
|
+
export class JobLifecycle {
|
|
6
|
+
jobs;
|
|
7
|
+
ports;
|
|
8
|
+
runsByTime;
|
|
9
|
+
started = false;
|
|
10
|
+
constructor(jobs, ports, runsByTime) {
|
|
11
|
+
this.jobs = jobs;
|
|
12
|
+
this.ports = ports;
|
|
13
|
+
this.runsByTime = runsByTime;
|
|
14
|
+
}
|
|
15
|
+
/** Leaves the scheduler alone, unbuilt, in an application without job. */
|
|
16
|
+
register() {
|
|
17
|
+
if (this.jobs.length === 0) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const scheduler = this.ports.resolve(JobScheduler);
|
|
21
|
+
const instrument = this.ports.isBound(Instrumentation) ? this.ports.resolve(Instrumentation).job : undefined;
|
|
22
|
+
for (const job of this.jobs) {
|
|
23
|
+
scheduler.register(definitionOf(job, this.ports.resolve, instrument));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
async start() {
|
|
27
|
+
if (!this.runsByTime || this.jobs.length === 0 || this.started) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.started = true;
|
|
31
|
+
await this.ports.resolve(JobScheduler).start();
|
|
32
|
+
}
|
|
33
|
+
/** Answers what failed, for the application to go on stopping the rest. */
|
|
34
|
+
async stop() {
|
|
35
|
+
if (!this.started) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
this.started = false;
|
|
39
|
+
try {
|
|
40
|
+
await this.ports.resolve(JobScheduler).stop();
|
|
41
|
+
return [];
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
return [error];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=job-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"job-lifecycle.js","sourceRoot":"","sources":["../../src/application/job-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,8GAA8G;AAC9G,MAAM,OAAO,YAAY;IAIZ,IAAI;IACI,KAAK;IACL,UAAU;IALrB,OAAO,GAAG,KAAK,CAAC;IAExB,YACW,IAA6B,EACrB,KAAiB,EACjB,UAAmB;oBAF3B,IAAI;qBACI,KAAK;0BACL,UAAU;IAC1B,CAAC;IAEJ,0EAA0E;IAC1E,QAAQ;QACN,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;QAE7G,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/D,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;IACjD,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QAErB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;YAE9C,OAAO,EAAE,CAAC;QACZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Token } from '@ddd-ts-kit/kernel/declarations';
|
|
2
|
+
import type { Application } from './application.js';
|
|
3
|
+
/**
|
|
4
|
+
* Swaps a binding for a fake after the application was created. Call it before the
|
|
5
|
+
* first `resolve`: a singleton already built keeps the dependency it was given.
|
|
6
|
+
*/
|
|
7
|
+
export declare function overrideForTests<T>(application: Application, target: Token<T>, value: T): void;
|
|
8
|
+
//# sourceMappingURL=override-for-tests.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-for-tests.d.ts","sourceRoot":"","sources":["../../src/application/override-for-tests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAQ9F"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ContainerApplication } from './container-application.js';
|
|
2
|
+
import { delegatingApplications } from './delegating-applications.js';
|
|
3
|
+
/**
|
|
4
|
+
* Swaps a binding for a fake after the application was created. Call it before the
|
|
5
|
+
* first `resolve`: a singleton already built keeps the dependency it was given.
|
|
6
|
+
*/
|
|
7
|
+
export function overrideForTests(application, target, value) {
|
|
8
|
+
const made = delegatingApplications.get(application) ?? application;
|
|
9
|
+
if (!(made instanceof ContainerApplication)) {
|
|
10
|
+
throw new TypeError('Not an application made by createApplication.');
|
|
11
|
+
}
|
|
12
|
+
made.replace(target, value);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=override-for-tests.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override-for-tests.js","sourceRoot":"","sources":["../../src/application/override-for-tests.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAI,WAAwB,EAAE,MAAgB,EAAE,KAAQ;IACtF,MAAM,IAAI,GAAG,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC;IAEpE,IAAI,CAAC,CAAC,IAAI,YAAY,oBAAoB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Token } from '@ddd-ts-kit/kernel/declarations';
|
|
2
|
+
export type Override = readonly [token: Token<unknown>, value: unknown];
|
|
3
|
+
/** A type-checked override pair for `createApplication({ overrides })`: `override(Clock, new FixedClock())`. */
|
|
4
|
+
export declare function override<T>(target: Token<T>, value: T): Override;
|
|
5
|
+
//# sourceMappingURL=override.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override.d.ts","sourceRoot":"","sources":["../../src/application/override.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAExE,gHAAgH;AAChH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,QAAQ,CAEhE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"override.js","sourceRoot":"","sources":["../../src/application/override.ts"],"names":[],"mappings":"AAIA,gHAAgH;AAChH,MAAM,UAAU,QAAQ,CAAI,MAAgB,EAAE,KAAQ;IACpD,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type BindingAspect } from '@ddd-ts-kit/kernel/declarations';
|
|
2
|
+
import type { Binding } from '../wiring/binding.js';
|
|
3
|
+
/**
|
|
4
|
+
* The instance inside the aspects of its binding, then inside the ones the modules put around
|
|
5
|
+
* its kind: of each list, the first aspect is outermost.
|
|
6
|
+
*/
|
|
7
|
+
export declare function withBindingAspects(instance: unknown, binding: Binding, aroundKind: readonly BindingAspect[]): unknown;
|
|
8
|
+
//# sourceMappingURL=with-binding-aspects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-binding-aspects.d.ts","sourceRoot":"","sources":["../../src/application/with-binding-aspects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,aAAa,EAA0B,MAAM,iCAAiC,CAAC;AAC5G,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,aAAa,EAAE,GAAG,OAAO,CAerH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { describeToken } from '@ddd-ts-kit/kernel/declarations';
|
|
2
|
+
/**
|
|
3
|
+
* The instance inside the aspects of its binding, then inside the ones the modules put around
|
|
4
|
+
* its kind: of each list, the first aspect is outermost.
|
|
5
|
+
*/
|
|
6
|
+
export function withBindingAspects(instance, binding, aroundKind) {
|
|
7
|
+
const aspects = [...aroundKind, ...binding.aspects];
|
|
8
|
+
if (aspects.length === 0 || typeof instance !== 'object' || instance === null) {
|
|
9
|
+
return instance;
|
|
10
|
+
}
|
|
11
|
+
const info = {
|
|
12
|
+
className: binding.implementation ?? constructorNameOf(instance),
|
|
13
|
+
context: binding.module,
|
|
14
|
+
token: describeToken(binding.token),
|
|
15
|
+
...(binding.kind === undefined ? {} : { kind: binding.kind }),
|
|
16
|
+
};
|
|
17
|
+
return aspects.reduceRight((wrapped, aspect) => aspect(wrapped, info), instance);
|
|
18
|
+
}
|
|
19
|
+
function constructorNameOf(instance) {
|
|
20
|
+
const prototype = Object.getPrototypeOf(instance);
|
|
21
|
+
const constructor = typeof prototype === 'object' && prototype !== null && 'constructor' in prototype
|
|
22
|
+
? prototype.constructor
|
|
23
|
+
: undefined;
|
|
24
|
+
return typeof constructor === 'function' ? constructor.name : 'Object';
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=with-binding-aspects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-binding-aspects.js","sourceRoot":"","sources":["../../src/application/with-binding-aspects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA8C,MAAM,iCAAiC,CAAC;AAG5G;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAiB,EAAE,OAAgB,EAAE,UAAoC;IAC1G,MAAM,OAAO,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAsB;QAC9B,SAAS,EAAE,OAAO,CAAC,cAAc,IAAI,iBAAiB,CAAC,QAAQ,CAAC;QAChE,OAAO,EAAE,OAAO,CAAC,MAAM;QACvB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC;QACnC,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC9D,CAAC;IAEF,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,SAAS,GAAY,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,WAAW,GACf,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,aAAa,IAAI,SAAS;QAC/E,CAAC,CAAC,SAAS,CAAC,WAAW;QACvB,CAAC,CAAC,SAAS,CAAC;IAEhB,OAAO,OAAO,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;AACzE,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TokenSet } from '../token/token-set.js';
|
|
2
|
+
import type { Wiring } from '../wiring/wiring.js';
|
|
3
|
+
/** Deny by default at wiring time: no use case becomes reachable because nobody said who may reach it. */
|
|
4
|
+
export declare function assertAuthorizationDeclared(wiring: Wiring, overridden: TokenSet): void;
|
|
5
|
+
//# sourceMappingURL=assert-authorization-declared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-authorization-declared.d.ts","sourceRoot":"","sources":["../../src/authorization/assert-authorization-declared.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,0GAA0G;AAC1G,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAoBtF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { describeToken } from '@ddd-ts-kit/kernel/declarations';
|
|
2
|
+
import { WiringError } from '../errors/wiring-error.js';
|
|
3
|
+
import { whereOf } from '../wiring/where-of.js';
|
|
4
|
+
import { UseCaseGuard } from './use-case-guard.js';
|
|
5
|
+
/** Deny by default at wiring time: no use case becomes reachable because nobody said who may reach it. */
|
|
6
|
+
export function assertAuthorizationDeclared(wiring, overridden) {
|
|
7
|
+
const undeclared = wiring.handlings.filter((handling) => handling.requirement.access === undefined);
|
|
8
|
+
if (undeclared.length > 0) {
|
|
9
|
+
const names = undeclared.map(({ kind, message, ...where }) => `the ${kind} "${message.name}" (${whereOf(where)})`);
|
|
10
|
+
throw new WiringError('UNDECLARED_AUTHORIZATION', `Authorization is required and ${names.join(', ')} declare${undeclared.length === 1 ? 's' : ''} no access. ${remedyFor(undeclared)}`);
|
|
11
|
+
}
|
|
12
|
+
if (wiring.bindings.has(UseCaseGuard) || overridden.has(UseCaseGuard)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
throw new WiringError('AUTHORIZATION_NOT_ENFORCED', `Authorization is required but no module binds "${describeToken(UseCaseGuard)}": the declared permissions would never be checked. Add an authorization module to the modules.`);
|
|
16
|
+
}
|
|
17
|
+
function remedyFor(undeclared) {
|
|
18
|
+
const remedies = [
|
|
19
|
+
...(undeclared.some(({ declaredBy }) => declaredBy === undefined)
|
|
20
|
+
? ['Write .requires(permission) or .public() before handledBy.']
|
|
21
|
+
: []),
|
|
22
|
+
...(undeclared.some(({ declaredBy }) => declaredBy !== undefined)
|
|
23
|
+
? ['Decorate the message class with @Requires(permission) or @Public().']
|
|
24
|
+
: []),
|
|
25
|
+
];
|
|
26
|
+
return remedies.join(' ');
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=assert-authorization-declared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-authorization-declared.js","sourceRoot":"","sources":["../../src/authorization/assert-authorization-declared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,0GAA0G;AAC1G,MAAM,UAAU,2BAA2B,CAAC,MAAc,EAAE,UAAoB;IAC9E,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAEpG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,OAAO,CAAC,IAAI,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnH,MAAM,IAAI,WAAW,CACnB,0BAA0B,EAC1B,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,SAAS,CAAC,UAAU,CAAC,EAAE,CACrI,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACtE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,WAAW,CACnB,4BAA4B,EAC5B,kDAAkD,aAAa,CAAC,YAAY,CAAC,iGAAiG,CAC/K,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,UAAsC;IACvD,MAAM,QAAQ,GAAG;QACf,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;YAC/D,CAAC,CAAC,CAAC,4DAA4D,CAAC;YAChE,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;YAC/D,CAAC,CAAC,CAAC,qEAAqE,CAAC;YACzE,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-mode.d.ts","sourceRoot":"","sources":["../../src/authorization/authorization-mode.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorization-mode.js","sourceRoot":"","sources":["../../src/authorization/authorization-mode.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declarations-of.d.ts","sourceRoot":"","sources":["../../src/authorization/declarations-of.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,kBAAkB,EAAE,CAE5E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declarations-of.js","sourceRoot":"","sources":["../../src/authorization/declarations-of.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC;AACvH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PolicyBinding } from '../wiring/policy-binding.js';
|
|
2
|
+
/**
|
|
3
|
+
* The policy classes the contexts declared with `@Policy`, each resolved by its class. An
|
|
4
|
+
* authorization module evaluates them next to the policies it was given.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class DeclaredPolicies {
|
|
7
|
+
static readonly tokenKey = "di.DeclaredPolicies";
|
|
8
|
+
abstract readonly list: readonly PolicyBinding[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=declared-policies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-policies.d.ts","sourceRoot":"","sources":["../../src/authorization/declared-policies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE;;;GAGG;AACH,8BAAsB,gBAAgB;IACpC,MAAM,CAAC,QAAQ,CAAC,QAAQ,yBAAyB;IAEjD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,aAAa,EAAE,CAAC;CAClD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The policy classes the contexts declared with `@Policy`, each resolved by its class. An
|
|
3
|
+
* authorization module evaluates them next to the policies it was given.
|
|
4
|
+
*/
|
|
5
|
+
export class DeclaredPolicies {
|
|
6
|
+
static tokenKey = 'di.DeclaredPolicies';
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=declared-policies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-policies.js","sourceRoot":"","sources":["../../src/authorization/declared-policies.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAgB,gBAAgB;IACpC,MAAM,CAAU,QAAQ,GAAG,qBAAqB,CAAC;CAGlD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Message, MessageType } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { Requirement } from './requirement.js';
|
|
3
|
+
/** What the message says of itself with `@Requires` or `@Public`; nothing for an undecorated one. */
|
|
4
|
+
export declare function declaredRequirement(type: MessageType<Message>): Requirement;
|
|
5
|
+
//# sourceMappingURL=declared-requirement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-requirement.d.ts","sourceRoot":"","sources":["../../src/authorization/declared-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,qGAAqG;AACrG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,WAAW,CAe3E"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { declarationOf } from '@ddd-ts-kit/kernel/declarations';
|
|
2
|
+
/** What the message says of itself with `@Requires` or `@Public`; nothing for an undecorated one. */
|
|
3
|
+
export function declaredRequirement(type) {
|
|
4
|
+
const declaration = declarationOf(type);
|
|
5
|
+
if (declaration?.role !== 'message') {
|
|
6
|
+
return {};
|
|
7
|
+
}
|
|
8
|
+
const { access, permission, resourceOf, contextOf } = declaration;
|
|
9
|
+
return {
|
|
10
|
+
access,
|
|
11
|
+
...(permission === undefined ? {} : { permission }),
|
|
12
|
+
...(resourceOf === undefined ? {} : { resourceOf }),
|
|
13
|
+
...(contextOf === undefined ? {} : { contextOf }),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=declared-requirement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"declared-requirement.js","sourceRoot":"","sources":["../../src/authorization/declared-requirement.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAGhE,qGAAqG;AACrG,MAAM,UAAU,mBAAmB,CAAC,IAA0B;IAC5D,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAExC,IAAI,WAAW,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC;IAElE,OAAO;QACL,MAAM;QACN,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC;QACnD,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pass-every-message.d.ts","sourceRoot":"","sources":["../../src/authorization/pass-every-message.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,eAAO,MAAM,gBAAgB,EAAE,YAAoD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pass-every-message.js","sourceRoot":"","sources":["../../src/authorization/pass-every-message.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,gBAAgB,GAAiB,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Message, MessageType } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { PermissionRef } from '@ddd-ts-kit/kernel/declarations';
|
|
3
|
+
import type { RequirementOptions } from './requirement-options.js';
|
|
4
|
+
import type { Requirement } from './requirement.js';
|
|
5
|
+
export declare function protectedRequirement<M extends Message>(type: MessageType<M>, permission: PermissionRef, options?: RequirementOptions<M>): Requirement;
|
|
6
|
+
//# sourceMappingURL=protected-requirement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protected-requirement.d.ts","sourceRoot":"","sources":["../../src/authorization/protected-requirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,OAAO,EACpD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,EACpB,UAAU,EAAE,aAAa,EACzB,OAAO,GAAE,kBAAkB,CAAC,CAAC,CAAM,GAClC,WAAW,CAOb"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export function protectedRequirement(type, permission, options = {}) {
|
|
2
|
+
return {
|
|
3
|
+
access: 'protected',
|
|
4
|
+
permission,
|
|
5
|
+
resourceOf: (message) => (message instanceof type ? options.resource?.(message) : undefined),
|
|
6
|
+
contextOf: (message) => (message instanceof type ? options.context?.(message) : undefined),
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=protected-requirement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protected-requirement.js","sourceRoot":"","sources":["../../src/authorization/protected-requirement.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,oBAAoB,CAClC,IAAoB,EACpB,UAAyB,EACzB,OAAO,GAA0B,EAAE;IAEnC,OAAO;QACL,MAAM,EAAE,WAAW;QACnB,UAAU;QACV,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5F,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;KAC3F,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ResourcePointer } from '@ddd-ts-kit/kernel/declarations';
|
|
2
|
+
export interface RequirementOptions<M> {
|
|
3
|
+
/** The element the message is about, when the right depends on it. */
|
|
4
|
+
readonly resource?: (message: M) => ResourcePointer;
|
|
5
|
+
/** Facts of the message the authorizer may need, such as the tenant it targets. */
|
|
6
|
+
readonly context?: (message: M) => Readonly<Record<string, unknown>>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=requirement-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement-options.d.ts","sourceRoot":"","sources":["../../src/authorization/requirement-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAEvE,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,eAAe,CAAC;IACpD,mFAAmF;IACnF,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement-options.js","sourceRoot":"","sources":["../../src/authorization/requirement-options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { UseCaseDeclaration } from './use-case-declaration.js';
|
|
2
|
+
/** What a use case asks of whoever reaches it. Empty when nothing was declared. */
|
|
3
|
+
export type Requirement = Pick<UseCaseDeclaration, 'access' | 'permission' | 'resourceOf' | 'contextOf'>;
|
|
4
|
+
export declare const PUBLIC_REQUIREMENT: Requirement;
|
|
5
|
+
//# sourceMappingURL=requirement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement.d.ts","sourceRoot":"","sources":["../../src/authorization/requirement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,YAAY,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;AAEzG,eAAO,MAAM,kBAAkB,EAAE,WAAkC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requirement.js","sourceRoot":"","sources":["../../src/authorization/requirement.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,kBAAkB,GAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-access.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-access.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-access.js","sourceRoot":"","sources":["../../src/authorization/use-case-access.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Message, MessageInfo, MessageType } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { PermissionRef, ResourcePointer } from '@ddd-ts-kit/kernel/declarations';
|
|
3
|
+
import type { UseCaseAccess } from './use-case-access.js';
|
|
4
|
+
export interface UseCaseDeclaration {
|
|
5
|
+
readonly kind: MessageInfo['kind'];
|
|
6
|
+
readonly message: MessageType<Message>;
|
|
7
|
+
readonly module: string;
|
|
8
|
+
/** Absent when neither the module (`.requires(...)`, `.public()`) nor the message (`@Requires`, `@Public`) said it. */
|
|
9
|
+
readonly access?: UseCaseAccess;
|
|
10
|
+
readonly permission?: PermissionRef;
|
|
11
|
+
readonly resourceOf?: (message: Message) => ResourcePointer | undefined;
|
|
12
|
+
readonly contextOf?: (message: Message) => Readonly<Record<string, unknown>> | undefined;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=use-case-declaration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-declaration.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-declaration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,uHAAuH;IACvH,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,GAAG,SAAS,CAAC;IACxE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;CAC1F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-declaration.js","sourceRoot":"","sources":["../../src/authorization/use-case-declaration.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { UseCaseDeclaration } from './use-case-declaration.js';
|
|
2
|
+
/** What every module declared about the access to its commands and queries, as data. */
|
|
3
|
+
export declare abstract class UseCaseDeclarations {
|
|
4
|
+
static readonly tokenKey = "di.UseCaseDeclarations";
|
|
5
|
+
abstract readonly list: readonly UseCaseDeclaration[];
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=use-case-declarations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-declarations.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-declarations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wFAAwF;AACxF,8BAAsB,mBAAmB;IACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,4BAA4B;IAEpD,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,kBAAkB,EAAE,CAAC;CACvD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-declarations.js","sourceRoot":"","sources":["../../src/authorization/use-case-declarations.ts"],"names":[],"mappings":"AAEA,wFAAwF;AACxF,MAAM,OAAgB,mBAAmB;IACvC,MAAM,CAAU,QAAQ,GAAG,wBAAwB,CAAC;CAGrD"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { BusMiddleware } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { Resolve } from '../wiring/resolve.js';
|
|
3
|
+
/** Resolved at each message, so the guard may be bound, rebound or faked after the bus exists. */
|
|
4
|
+
export declare function useCaseGuardMiddleware(resolve: Resolve): BusMiddleware;
|
|
5
|
+
//# sourceMappingURL=use-case-guard-middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-guard-middleware.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-guard-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAGpD,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAEtE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { UseCaseGuard } from './use-case-guard.js';
|
|
2
|
+
/** Resolved at each message, so the guard may be bound, rebound or faked after the bus exists. */
|
|
3
|
+
export function useCaseGuardMiddleware(resolve) {
|
|
4
|
+
return (message, next, info) => resolve(UseCaseGuard).check(message, next, info);
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=use-case-guard-middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-guard-middleware.js","sourceRoot":"","sources":["../../src/authorization/use-case-guard-middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,kGAAkG;AAClG,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACnF,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Message, MessageInfo } from '@ddd-ts-kit/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* What the kernel buses ask before anything else, the unit of work included. Unbound, every
|
|
4
|
+
* message passes; an authorization module binds the guard that asks its authorizer.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class UseCaseGuard {
|
|
7
|
+
static readonly tokenKey = "di.UseCaseGuard";
|
|
8
|
+
abstract check(message: Message, next: () => Promise<unknown>, info: MessageInfo): Promise<unknown>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=use-case-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-guard.d.ts","sourceRoot":"","sources":["../../src/authorization/use-case-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/D;;;GAGG;AACH,8BAAsB,YAAY;IAChC,MAAM,CAAC,QAAQ,CAAC,QAAQ,qBAAqB;IAE7C,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACrG"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* What the kernel buses ask before anything else, the unit of work included. Unbound, every
|
|
3
|
+
* message passes; an authorization module binds the guard that asks its authorizer.
|
|
4
|
+
*/
|
|
5
|
+
export class UseCaseGuard {
|
|
6
|
+
static tokenKey = 'di.UseCaseGuard';
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=use-case-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-case-guard.js","sourceRoot":"","sources":["../../src/authorization/use-case-guard.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,OAAgB,YAAY;IAChC,MAAM,CAAU,QAAQ,GAAG,iBAAiB,CAAC;CAG9C"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TokenSet } from '../token/token-set.js';
|
|
2
|
+
import type { Wiring } from '../wiring/wiring.js';
|
|
3
|
+
/** Everything that can be known wrong before a single instance is created. */
|
|
4
|
+
export declare function assertSound(wiring: Wiring, overridden: TokenSet): void;
|
|
5
|
+
//# sourceMappingURL=assert-sound.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert-sound.d.ts","sourceRoot":"","sources":["../../src/checks/assert-sound.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,GAAG,IAAI,CAItE"}
|