@ddd-ts-kit/testing 0.0.0-stage → 0.1.1
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 +549 -2
- package/dist/builders/buildable.d.ts +7 -0
- package/dist/builders/buildable.d.ts.map +1 -0
- package/dist/builders/buildable.js +2 -0
- package/dist/builders/buildable.js.map +1 -0
- package/dist/builders/builder.d.ts +33 -0
- package/dist/builders/builder.d.ts.map +1 -0
- package/dist/builders/builder.js +66 -0
- package/dist/builders/builder.js.map +1 -0
- package/dist/builders/defaults.d.ts +6 -0
- package/dist/builders/defaults.d.ts.map +1 -0
- package/dist/builders/defaults.js +2 -0
- package/dist/builders/defaults.js.map +1 -0
- package/dist/builders/define-builder.d.ts +14 -0
- package/dist/builders/define-builder.d.ts.map +1 -0
- package/dist/builders/define-builder.js +10 -0
- package/dist/builders/define-builder.js.map +1 -0
- package/dist/builders/generic-builder.d.ts +16 -0
- package/dist/builders/generic-builder.d.ts.map +1 -0
- package/dist/builders/generic-builder.js +23 -0
- package/dist/builders/generic-builder.js.map +1 -0
- package/dist/builders/is-resolvable.d.ts +3 -0
- package/dist/builders/is-resolvable.d.ts.map +1 -0
- package/dist/builders/is-resolvable.js +5 -0
- package/dist/builders/is-resolvable.js.map +1 -0
- package/dist/builders/lazy.d.ts +4 -0
- package/dist/builders/lazy.d.ts.map +1 -0
- package/dist/builders/lazy.js +15 -0
- package/dist/builders/lazy.js.map +1 -0
- package/dist/builders/resolvable.d.ts +6 -0
- package/dist/builders/resolvable.d.ts.map +1 -0
- package/dist/builders/resolvable.js +2 -0
- package/dist/builders/resolvable.js.map +1 -0
- package/dist/builders/resolve.d.ts +4 -0
- package/dist/builders/resolve.d.ts.map +1 -0
- package/dist/builders/resolve.js +7 -0
- package/dist/builders/resolve.js.map +1 -0
- package/dist/builders/sequence.d.ts +10 -0
- package/dist/builders/sequence.d.ts.map +1 -0
- package/dist/builders/sequence.js +14 -0
- package/dist/builders/sequence.js.map +1 -0
- package/dist/contracts/awaitable.d.ts +2 -0
- package/dist/contracts/awaitable.d.ts.map +1 -0
- package/dist/contracts/awaitable.js +2 -0
- package/dist/contracts/awaitable.js.map +1 -0
- package/dist/contracts/cache-contract.d.ts +13 -0
- package/dist/contracts/cache-contract.d.ts.map +1 -0
- package/dist/contracts/cache-contract.js +81 -0
- package/dist/contracts/cache-contract.js.map +1 -0
- package/dist/contracts/contract-runner.d.ts +16 -0
- package/dist/contracts/contract-runner.d.ts.map +1 -0
- package/dist/contracts/contract-runner.js +2 -0
- package/dist/contracts/contract-runner.js.map +1 -0
- package/dist/contracts/contract-suite.d.ts +23 -0
- package/dist/contracts/contract-suite.d.ts.map +1 -0
- package/dist/contracts/contract-suite.js +39 -0
- package/dist/contracts/contract-suite.js.map +1 -0
- package/dist/contracts/criteria/criteria-case.d.ts +11 -0
- package/dist/contracts/criteria/criteria-case.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-case.js +2 -0
- package/dist/contracts/criteria/criteria-case.js.map +1 -0
- package/dist/contracts/criteria/criteria-contract-definition.d.ts +5 -0
- package/dist/contracts/criteria/criteria-contract-definition.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-contract-definition.js +20 -0
- package/dist/contracts/criteria/criteria-contract-definition.js.map +1 -0
- package/dist/contracts/criteria/criteria-contract-row.d.ts +15 -0
- package/dist/contracts/criteria/criteria-contract-row.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-contract-row.js +2 -0
- package/dist/contracts/criteria/criteria-contract-row.js.map +1 -0
- package/dist/contracts/criteria/criteria-contract-rows.d.ts +9 -0
- package/dist/contracts/criteria/criteria-contract-rows.d.ts.map +1 -0
- package/dist/contracts/criteria/criteria-contract-rows.js +55 -0
- package/dist/contracts/criteria/criteria-contract-rows.js.map +1 -0
- package/dist/contracts/criteria/group-cases.d.ts +4 -0
- package/dist/contracts/criteria/group-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/group-cases.js +96 -0
- package/dist/contracts/criteria/group-cases.js.map +1 -0
- package/dist/contracts/criteria/operator-cases.d.ts +4 -0
- package/dist/contracts/criteria/operator-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/operator-cases.js +122 -0
- package/dist/contracts/criteria/operator-cases.js.map +1 -0
- package/dist/contracts/criteria/scope-cases.d.ts +4 -0
- package/dist/contracts/criteria/scope-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/scope-cases.js +73 -0
- package/dist/contracts/criteria/scope-cases.js.map +1 -0
- package/dist/contracts/criteria/sort-cases.d.ts +4 -0
- package/dist/contracts/criteria/sort-cases.d.ts.map +1 -0
- package/dist/contracts/criteria/sort-cases.js +54 -0
- package/dist/contracts/criteria/sort-cases.js.map +1 -0
- package/dist/contracts/criteria-contract.d.ts +20 -0
- package/dist/contracts/criteria-contract.d.ts.map +1 -0
- package/dist/contracts/criteria-contract.js +94 -0
- package/dist/contracts/criteria-contract.js.map +1 -0
- package/dist/contracts/event-bus-contract.d.ts +23 -0
- package/dist/contracts/event-bus-contract.d.ts.map +1 -0
- package/dist/contracts/event-bus-contract.js +122 -0
- package/dist/contracts/event-bus-contract.js.map +1 -0
- package/dist/contracts/failure-of.d.ts +3 -0
- package/dist/contracts/failure-of.d.ts.map +1 -0
- package/dist/contracts/failure-of.js +12 -0
- package/dist/contracts/failure-of.js.map +1 -0
- package/dist/contracts/full-envelope.d.ts +4 -0
- package/dist/contracts/full-envelope.d.ts.map +1 -0
- package/dist/contracts/full-envelope.js +12 -0
- package/dist/contracts/full-envelope.js.map +1 -0
- package/dist/contracts/job-scheduler-contract.d.ts +21 -0
- package/dist/contracts/job-scheduler-contract.d.ts.map +1 -0
- package/dist/contracts/job-scheduler-contract.js +181 -0
- package/dist/contracts/job-scheduler-contract.js.map +1 -0
- package/dist/contracts/lock-contract.d.ts +13 -0
- package/dist/contracts/lock-contract.d.ts.map +1 -0
- package/dist/contracts/lock-contract.js +90 -0
- package/dist/contracts/lock-contract.js.map +1 -0
- package/dist/contracts/logger/create-logger.d.ts +6 -0
- package/dist/contracts/logger/create-logger.d.ts.map +1 -0
- package/dist/contracts/logger/create-logger.js +2 -0
- package/dist/contracts/logger/create-logger.js.map +1 -0
- package/dist/contracts/logger/error-outline-of.d.ts +12 -0
- package/dist/contracts/logger/error-outline-of.d.ts.map +1 -0
- package/dist/contracts/logger/error-outline-of.js +27 -0
- package/dist/contracts/logger/error-outline-of.js.map +1 -0
- package/dist/contracts/logger/logged-line.d.ts +9 -0
- package/dist/contracts/logger/logged-line.d.ts.map +1 -0
- package/dist/contracts/logger/logged-line.js +2 -0
- package/dist/contracts/logger/logged-line.js.map +1 -0
- package/dist/contracts/logger/logger-contract-setup.d.ts +11 -0
- package/dist/contracts/logger/logger-contract-setup.d.ts.map +1 -0
- package/dist/contracts/logger/logger-contract-setup.js +2 -0
- package/dist/contracts/logger/logger-contract-setup.js.map +1 -0
- package/dist/contracts/logger/logger-entries-suite.d.ts +19 -0
- package/dist/contracts/logger/logger-entries-suite.d.ts.map +1 -0
- package/dist/contracts/logger/logger-entries-suite.js +177 -0
- package/dist/contracts/logger/logger-entries-suite.js.map +1 -0
- package/dist/contracts/logger/logger-shutdown-suite.d.ts +15 -0
- package/dist/contracts/logger/logger-shutdown-suite.d.ts.map +1 -0
- package/dist/contracts/logger/logger-shutdown-suite.js +98 -0
- package/dist/contracts/logger/logger-shutdown-suite.js.map +1 -0
- package/dist/contracts/logger/logger-under-contract.d.ts +9 -0
- package/dist/contracts/logger/logger-under-contract.d.ts.map +1 -0
- package/dist/contracts/logger/logger-under-contract.js +2 -0
- package/dist/contracts/logger/logger-under-contract.js.map +1 -0
- package/dist/contracts/logger/unreadable-total.d.ts +5 -0
- package/dist/contracts/logger/unreadable-total.d.ts.map +1 -0
- package/dist/contracts/logger/unreadable-total.js +9 -0
- package/dist/contracts/logger/unreadable-total.js.map +1 -0
- package/dist/contracts/logger-contract.d.ts +14 -0
- package/dist/contracts/logger-contract.d.ts.map +1 -0
- package/dist/contracts/logger-contract.js +12 -0
- package/dist/contracts/logger-contract.js.map +1 -0
- package/dist/contracts/outbox-store-contract.d.ts +36 -0
- package/dist/contracts/outbox-store-contract.d.ts.map +1 -0
- package/dist/contracts/outbox-store-contract.js +148 -0
- package/dist/contracts/outbox-store-contract.js.map +1 -0
- package/dist/contracts/processed-event-store-contract.d.ts +11 -0
- package/dist/contracts/processed-event-store-contract.d.ts.map +1 -0
- package/dist/contracts/processed-event-store-contract.js +40 -0
- package/dist/contracts/processed-event-store-contract.js.map +1 -0
- package/dist/contracts/rate-limiter-contract.d.ts +13 -0
- package/dist/contracts/rate-limiter-contract.d.ts.map +1 -0
- package/dist/contracts/rate-limiter-contract.js +86 -0
- package/dist/contracts/rate-limiter-contract.js.map +1 -0
- package/dist/contracts/read-model/everything.d.ts +5 -0
- package/dist/contracts/read-model/everything.d.ts.map +1 -0
- package/dist/contracts/read-model/everything.js +3 -0
- package/dist/contracts/read-model/everything.js.map +1 -0
- package/dist/contracts/read-model/read-model-store-suite.d.ts +14 -0
- package/dist/contracts/read-model/read-model-store-suite.d.ts.map +1 -0
- package/dist/contracts/read-model/read-model-store-suite.js +23 -0
- package/dist/contracts/read-model/read-model-store-suite.js.map +1 -0
- package/dist/contracts/read-model/read-model-store-under-contract.d.ts +11 -0
- package/dist/contracts/read-model/read-model-store-under-contract.d.ts.map +1 -0
- package/dist/contracts/read-model/read-model-store-under-contract.js +2 -0
- package/dist/contracts/read-model/read-model-store-under-contract.js.map +1 -0
- package/dist/contracts/read-model/rebuild-suite.d.ts +14 -0
- package/dist/contracts/read-model/rebuild-suite.d.ts.map +1 -0
- package/dist/contracts/read-model/rebuild-suite.js +116 -0
- package/dist/contracts/read-model/rebuild-suite.js.map +1 -0
- package/dist/contracts/read-model/row-of.d.ts +4 -0
- package/dist/contracts/read-model/row-of.d.ts.map +1 -0
- package/dist/contracts/read-model/row-of.js +10 -0
- package/dist/contracts/read-model/row-of.js.map +1 -0
- package/dist/contracts/read-model/rows-suite.d.ts +11 -0
- package/dist/contracts/read-model/rows-suite.d.ts.map +1 -0
- package/dist/contracts/read-model/rows-suite.js +122 -0
- package/dist/contracts/read-model/rows-suite.js.map +1 -0
- package/dist/contracts/read-model/source-of-truth.d.ts +17 -0
- package/dist/contracts/read-model/source-of-truth.d.ts.map +1 -0
- package/dist/contracts/read-model/source-of-truth.js +36 -0
- package/dist/contracts/read-model/source-of-truth.js.map +1 -0
- package/dist/contracts/read-model/stamped-at.d.ts +4 -0
- package/dist/contracts/read-model/stamped-at.d.ts.map +1 -0
- package/dist/contracts/read-model/stamped-at.js +5 -0
- package/dist/contracts/read-model/stamped-at.js.map +1 -0
- package/dist/contracts/read-model-store-contract.d.ts +15 -0
- package/dist/contracts/read-model-store-contract.d.ts.map +1 -0
- package/dist/contracts/read-model-store-contract.js +13 -0
- package/dist/contracts/read-model-store-contract.js.map +1 -0
- package/dist/contracts/repository-contract.d.ts +18 -0
- package/dist/contracts/repository-contract.d.ts.map +1 -0
- package/dist/contracts/repository-contract.js +103 -0
- package/dist/contracts/repository-contract.js.map +1 -0
- package/dist/contracts/unit-of-work/after-commit-suite.d.ts +12 -0
- package/dist/contracts/unit-of-work/after-commit-suite.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/after-commit-suite.js +79 -0
- package/dist/contracts/unit-of-work/after-commit-suite.js.map +1 -0
- package/dist/contracts/unit-of-work/dispatch-suite.d.ts +14 -0
- package/dist/contracts/unit-of-work/dispatch-suite.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/dispatch-suite.js +171 -0
- package/dist/contracts/unit-of-work/dispatch-suite.js.map +1 -0
- package/dist/contracts/unit-of-work/failure-suite.d.ts +17 -0
- package/dist/contracts/unit-of-work/failure-suite.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/failure-suite.js +114 -0
- package/dist/contracts/unit-of-work/failure-suite.js.map +1 -0
- package/dist/contracts/unit-of-work/parcel.d.ts +11 -0
- package/dist/contracts/unit-of-work/parcel.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/parcel.js +22 -0
- package/dist/contracts/unit-of-work/parcel.js.map +1 -0
- package/dist/contracts/unit-of-work/parcels.d.ts +10 -0
- package/dist/contracts/unit-of-work/parcels.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/parcels.js +14 -0
- package/dist/contracts/unit-of-work/parcels.js.map +1 -0
- package/dist/contracts/unit-of-work/shipping-bench.d.ts +25 -0
- package/dist/contracts/unit-of-work/shipping-bench.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/shipping-bench.js +58 -0
- package/dist/contracts/unit-of-work/shipping-bench.js.map +1 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.d.ts +22 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.d.ts.map +1 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.js +2 -0
- package/dist/contracts/unit-of-work/unit-of-work-under-contract.js.map +1 -0
- package/dist/contracts/unit-of-work-contract.d.ts +19 -0
- package/dist/contracts/unit-of-work-contract.d.ts.map +1 -0
- package/dist/contracts/unit-of-work-contract.js +19 -0
- package/dist/contracts/unit-of-work-contract.js.map +1 -0
- package/dist/contracts.d.ts +27 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +17 -0
- package/dist/contracts.js.map +1 -0
- package/dist/coverage/affected-contexts.d.ts +7 -0
- package/dist/coverage/affected-contexts.d.ts.map +1 -0
- package/dist/coverage/affected-contexts.js +15 -0
- package/dist/coverage/affected-contexts.js.map +1 -0
- package/dist/coverage/contexts-in.d.ts +3 -0
- package/dist/coverage/contexts-in.d.ts.map +1 -0
- package/dist/coverage/contexts-in.js +13 -0
- package/dist/coverage/contexts-in.js.map +1 -0
- package/dist/coverage/coverage-layer.d.ts +4 -0
- package/dist/coverage/coverage-layer.d.ts.map +1 -0
- package/dist/coverage/coverage-layer.js +2 -0
- package/dist/coverage/coverage-layer.js.map +1 -0
- package/dist/coverage/coverage-rates.d.ts +8 -0
- package/dist/coverage/coverage-rates.d.ts.map +1 -0
- package/dist/coverage/coverage-rates.js +2 -0
- package/dist/coverage/coverage-rates.js.map +1 -0
- package/dist/coverage/governed-coverage.d.ts +23 -0
- package/dist/coverage/governed-coverage.d.ts.map +1 -0
- package/dist/coverage/governed-coverage.js +27 -0
- package/dist/coverage/governed-coverage.js.map +1 -0
- package/dist/coverage/governed-jest-coverage.d.ts +18 -0
- package/dist/coverage/governed-jest-coverage.d.ts.map +1 -0
- package/dist/coverage/governed-jest-coverage.js +23 -0
- package/dist/coverage/governed-jest-coverage.js.map +1 -0
- package/dist/coverage/governed-settings.d.ts +13 -0
- package/dist/coverage/governed-settings.d.ts.map +1 -0
- package/dist/coverage/governed-settings.js +49 -0
- package/dist/coverage/governed-settings.js.map +1 -0
- package/dist/coverage/held-layers.d.ts +17 -0
- package/dist/coverage/held-layers.d.ts.map +1 -0
- package/dist/coverage/held-layers.js +30 -0
- package/dist/coverage/held-layers.js.map +1 -0
- package/dist/coverage/measured-files.d.ts +4 -0
- package/dist/coverage/measured-files.d.ts.map +1 -0
- package/dist/coverage/measured-files.js +7 -0
- package/dist/coverage/measured-files.js.map +1 -0
- package/dist/coverage/measured-layers.d.ts +8 -0
- package/dist/coverage/measured-layers.d.ts.map +1 -0
- package/dist/coverage/measured-layers.js +14 -0
- package/dist/coverage/measured-layers.js.map +1 -0
- package/dist/coverage/reference-coverage.d.ts +33 -0
- package/dist/coverage/reference-coverage.d.ts.map +1 -0
- package/dist/coverage/reference-coverage.js +13 -0
- package/dist/coverage/reference-coverage.js.map +1 -0
- package/dist/coverage/unaffected-contexts.d.ts +10 -0
- package/dist/coverage/unaffected-contexts.d.ts.map +1 -0
- package/dist/coverage/unaffected-contexts.js +23 -0
- package/dist/coverage/unaffected-contexts.js.map +1 -0
- package/dist/coverage.d.ts +7 -0
- package/dist/coverage.d.ts.map +1 -0
- package/dist/coverage.js +5 -0
- package/dist/coverage.js.map +1 -0
- package/dist/e2e/collect-events.d.ts +9 -0
- package/dist/e2e/collect-events.d.ts.map +1 -0
- package/dist/e2e/collect-events.js +9 -0
- package/dist/e2e/collect-events.js.map +1 -0
- package/dist/e2e/create-http-client.d.ts +4 -0
- package/dist/e2e/create-http-client.d.ts.map +1 -0
- package/dist/e2e/create-http-client.js +7 -0
- package/dist/e2e/create-http-client.js.map +1 -0
- package/dist/e2e/database-reset.d.ts +8 -0
- package/dist/e2e/database-reset.d.ts.map +1 -0
- package/dist/e2e/database-reset.js +2 -0
- package/dist/e2e/database-reset.js.map +1 -0
- package/dist/e2e/event-recorder.d.ts +12 -0
- package/dist/e2e/event-recorder.d.ts.map +1 -0
- package/dist/e2e/event-recorder.js +2 -0
- package/dist/e2e/event-recorder.js.map +1 -0
- package/dist/e2e/event-type.d.ts +5 -0
- package/dist/e2e/event-type.d.ts.map +1 -0
- package/dist/e2e/event-type.js +2 -0
- package/dist/e2e/event-type.js.map +1 -0
- package/dist/e2e/eventually.d.ts +13 -0
- package/dist/e2e/eventually.d.ts.map +1 -0
- package/dist/e2e/eventually.js +27 -0
- package/dist/e2e/eventually.js.map +1 -0
- package/dist/e2e/expect-problem.d.ts +13 -0
- package/dist/e2e/expect-problem.d.ts.map +1 -0
- package/dist/e2e/expect-problem.js +27 -0
- package/dist/e2e/expect-problem.js.map +1 -0
- package/dist/e2e/expect-status.d.ts +7 -0
- package/dist/e2e/expect-status.d.ts.map +1 -0
- package/dist/e2e/expect-status.js +18 -0
- package/dist/e2e/expect-status.js.map +1 -0
- package/dist/e2e/fetch-client.d.ts +18 -0
- package/dist/e2e/fetch-client.d.ts.map +1 -0
- package/dist/e2e/fetch-client.js +56 -0
- package/dist/e2e/fetch-client.js.map +1 -0
- package/dist/e2e/http-client.d.ts +17 -0
- package/dist/e2e/http-client.d.ts.map +1 -0
- package/dist/e2e/http-client.js +2 -0
- package/dist/e2e/http-client.js.map +1 -0
- package/dist/e2e/http-headers.d.ts +2 -0
- package/dist/e2e/http-headers.d.ts.map +1 -0
- package/dist/e2e/http-headers.js +2 -0
- package/dist/e2e/http-headers.js.map +1 -0
- package/dist/e2e/http-response.d.ts +9 -0
- package/dist/e2e/http-response.d.ts.map +1 -0
- package/dist/e2e/http-response.js +2 -0
- package/dist/e2e/http-response.js.map +1 -0
- package/dist/e2e/listen-on-random-port.d.ts +13 -0
- package/dist/e2e/listen-on-random-port.d.ts.map +1 -0
- package/dist/e2e/listen-on-random-port.js +21 -0
- package/dist/e2e/listen-on-random-port.js.map +1 -0
- package/dist/e2e/lower-cased.d.ts +3 -0
- package/dist/e2e/lower-cased.d.ts.map +1 -0
- package/dist/e2e/lower-cased.js +6 -0
- package/dist/e2e/lower-cased.js.map +1 -0
- package/dist/e2e/request-options.d.ts +6 -0
- package/dist/e2e/request-options.d.ts.map +1 -0
- package/dist/e2e/request-options.js +2 -0
- package/dist/e2e/request-options.js.map +1 -0
- package/dist/e2e/running-server.d.ts +6 -0
- package/dist/e2e/running-server.d.ts.map +1 -0
- package/dist/e2e/running-server.js +2 -0
- package/dist/e2e/running-server.js.map +1 -0
- package/dist/e2e/start-test-server.d.ts +18 -0
- package/dist/e2e/start-test-server.d.ts.map +1 -0
- package/dist/e2e/start-test-server.js +14 -0
- package/dist/e2e/start-test-server.js.map +1 -0
- package/dist/e2e/subscribed-recorder.d.ts +17 -0
- package/dist/e2e/subscribed-recorder.d.ts.map +1 -0
- package/dist/e2e/subscribed-recorder.js +45 -0
- package/dist/e2e/subscribed-recorder.js.map +1 -0
- package/dist/e2e/without-trailing-slashes.d.ts +3 -0
- package/dist/e2e/without-trailing-slashes.d.ts.map +1 -0
- package/dist/e2e/without-trailing-slashes.js +9 -0
- package/dist/e2e/without-trailing-slashes.js.map +1 -0
- package/dist/e2e.d.ts +16 -0
- package/dist/e2e.d.ts.map +1 -0
- package/dist/e2e.js +8 -0
- package/dist/e2e.js.map +1 -0
- package/dist/execution/a-session.d.ts +4 -0
- package/dist/execution/a-session.d.ts.map +1 -0
- package/dist/execution/a-session.js +7 -0
- package/dist/execution/a-session.js.map +1 -0
- package/dist/execution/a-test-user.d.ts +4 -0
- package/dist/execution/a-test-user.d.ts.map +1 -0
- package/dist/execution/a-test-user.js +9 -0
- package/dist/execution/a-test-user.js.map +1 -0
- package/dist/execution/an-execution-context.d.ts +4 -0
- package/dist/execution/an-execution-context.d.ts.map +1 -0
- package/dist/execution/an-execution-context.js +7 -0
- package/dist/execution/an-execution-context.js.map +1 -0
- package/dist/execution/execution-context-builder.d.ts +37 -0
- package/dist/execution/execution-context-builder.d.ts.map +1 -0
- package/dist/execution/execution-context-builder.js +67 -0
- package/dist/execution/execution-context-builder.js.map +1 -0
- package/dist/execution/scoped.d.ts +8 -0
- package/dist/execution/scoped.d.ts.map +1 -0
- package/dist/execution/scoped.js +9 -0
- package/dist/execution/scoped.js.map +1 -0
- package/dist/execution/session-builder.d.ts +37 -0
- package/dist/execution/session-builder.d.ts.map +1 -0
- package/dist/execution/session-builder.js +71 -0
- package/dist/execution/session-builder.js.map +1 -0
- package/dist/faker/create-data-generator.d.ts +15 -0
- package/dist/faker/create-data-generator.d.ts.map +1 -0
- package/dist/faker/create-data-generator.js +24 -0
- package/dist/faker/create-data-generator.js.map +1 -0
- package/dist/faker/current-data-generator.d.ts +9 -0
- package/dist/faker/current-data-generator.d.ts.map +1 -0
- package/dist/faker/current-data-generator.js +16 -0
- package/dist/faker/current-data-generator.js.map +1 -0
- package/dist/faker/data-generator.d.ts +9 -0
- package/dist/faker/data-generator.d.ts.map +1 -0
- package/dist/faker/data-generator.js +2 -0
- package/dist/faker/data-generator.js.map +1 -0
- package/dist/faker/generated.d.ts +8 -0
- package/dist/faker/generated.d.ts.map +1 -0
- package/dist/faker/generated.js +10 -0
- package/dist/faker/generated.js.map +1 -0
- package/dist/faker/replay-hint.d.ts +2 -0
- package/dist/faker/replay-hint.d.ts.map +1 -0
- package/dist/faker/replay-hint.js +4 -0
- package/dist/faker/replay-hint.js.map +1 -0
- package/dist/faker/report-seed-on-failure.d.ts +11 -0
- package/dist/faker/report-seed-on-failure.d.ts.map +1 -0
- package/dist/faker/report-seed-on-failure.js +12 -0
- package/dist/faker/report-seed-on-failure.js.map +1 -0
- package/dist/faker.d.ts +7 -0
- package/dist/faker.d.ts.map +1 -0
- package/dist/faker.js +6 -0
- package/dist/faker.js.map +1 -0
- package/dist/harness/create-test-buses.d.ts +49 -0
- package/dist/harness/create-test-buses.d.ts.map +1 -0
- package/dist/harness/create-test-buses.js +35 -0
- package/dist/harness/create-test-buses.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories/in-memory-repository.d.ts +30 -0
- package/dist/repositories/in-memory-repository.d.ts.map +1 -0
- package/dist/repositories/in-memory-repository.js +58 -0
- package/dist/repositories/in-memory-repository.js.map +1 -0
- package/dist/repositories/snapshot-codec.d.ts +6 -0
- package/dist/repositories/snapshot-codec.d.ts.map +1 -0
- package/dist/repositories/snapshot-codec.js +2 -0
- package/dist/repositories/snapshot-codec.js.map +1 -0
- package/dist/repositories/snapshots.d.ts +5 -0
- package/dist/repositories/snapshots.d.ts.map +1 -0
- package/dist/repositories/snapshots.js +9 -0
- package/dist/repositories/snapshots.js.map +1 -0
- package/dist/scenarios/act.d.ts +5 -0
- package/dist/scenarios/act.d.ts.map +1 -0
- package/dist/scenarios/act.js +21 -0
- package/dist/scenarios/act.js.map +1 -0
- package/dist/scenarios/async-outcome.d.ts +5 -0
- package/dist/scenarios/async-outcome.d.ts.map +1 -0
- package/dist/scenarios/async-outcome.js +2 -0
- package/dist/scenarios/async-outcome.js.map +1 -0
- package/dist/scenarios/async-scenario.d.ts +5 -0
- package/dist/scenarios/async-scenario.d.ts.map +1 -0
- package/dist/scenarios/async-scenario.js +2 -0
- package/dist/scenarios/async-scenario.js.map +1 -0
- package/dist/scenarios/deferred-outcome.d.ts +18 -0
- package/dist/scenarios/deferred-outcome.d.ts.map +1 -0
- package/dist/scenarios/deferred-outcome.js +34 -0
- package/dist/scenarios/deferred-outcome.js.map +1 -0
- package/dist/scenarios/describe-event.d.ts +3 -0
- package/dist/scenarios/describe-event.d.ts.map +1 -0
- package/dist/scenarios/describe-event.js +6 -0
- package/dist/scenarios/describe-event.js.map +1 -0
- package/dist/scenarios/error-class.d.ts +2 -0
- package/dist/scenarios/error-class.d.ts.map +1 -0
- package/dist/scenarios/error-class.js +2 -0
- package/dist/scenarios/error-class.js.map +1 -0
- package/dist/scenarios/event-matcher.d.ts +11 -0
- package/dist/scenarios/event-matcher.d.ts.map +1 -0
- package/dist/scenarios/event-matcher.js +2 -0
- package/dist/scenarios/event-matcher.js.map +1 -0
- package/dist/scenarios/event-mismatches.d.ts +5 -0
- package/dist/scenarios/event-mismatches.d.ts.map +1 -0
- package/dist/scenarios/event-mismatches.js +33 -0
- package/dist/scenarios/event-mismatches.js.map +1 -0
- package/dist/scenarios/event-source.d.ts +6 -0
- package/dist/scenarios/event-source.d.ts.map +1 -0
- package/dist/scenarios/event-source.js +2 -0
- package/dist/scenarios/event-source.js.map +1 -0
- package/dist/scenarios/given.d.ts +9 -0
- package/dist/scenarios/given.d.ts.map +1 -0
- package/dist/scenarios/given.js +10 -0
- package/dist/scenarios/given.js.map +1 -0
- package/dist/scenarios/immediate-outcome.d.ts +18 -0
- package/dist/scenarios/immediate-outcome.d.ts.map +1 -0
- package/dist/scenarios/immediate-outcome.js +147 -0
- package/dist/scenarios/immediate-outcome.js.map +1 -0
- package/dist/scenarios/is-promise-like.d.ts +2 -0
- package/dist/scenarios/is-promise-like.d.ts.map +1 -0
- package/dist/scenarios/is-promise-like.js +4 -0
- package/dist/scenarios/is-promise-like.js.map +1 -0
- package/dist/scenarios/outcome.d.ts +17 -0
- package/dist/scenarios/outcome.d.ts.map +1 -0
- package/dist/scenarios/outcome.js +2 -0
- package/dist/scenarios/outcome.js.map +1 -0
- package/dist/scenarios/recorded.d.ts +10 -0
- package/dist/scenarios/recorded.d.ts.map +1 -0
- package/dist/scenarios/recorded.js +2 -0
- package/dist/scenarios/recorded.js.map +1 -0
- package/dist/scenarios/scenario.d.ts +18 -0
- package/dist/scenarios/scenario.d.ts.map +1 -0
- package/dist/scenarios/scenario.js +17 -0
- package/dist/scenarios/scenario.js.map +1 -0
- package/dist/scenarios/show.d.ts +3 -0
- package/dist/scenarios/show.d.ts.map +1 -0
- package/dist/scenarios/show.js +6 -0
- package/dist/scenarios/show.js.map +1 -0
- package/dist/secrecy/expect-no-secret.d.ts +9 -0
- package/dist/secrecy/expect-no-secret.d.ts.map +1 -0
- package/dist/secrecy/expect-no-secret.js +55 -0
- package/dist/secrecy/expect-no-secret.js.map +1 -0
- package/dist/vitest/compiler-script.d.ts +3 -0
- package/dist/vitest/compiler-script.d.ts.map +1 -0
- package/dist/vitest/compiler-script.js +18 -0
- package/dist/vitest/compiler-script.js.map +1 -0
- package/dist/vitest/decorator-compiler.d.ts +21 -0
- package/dist/vitest/decorator-compiler.d.ts.map +1 -0
- package/dist/vitest/decorator-compiler.js +112 -0
- package/dist/vitest/decorator-compiler.js.map +1 -0
- package/dist/vitest/decorator-coverage.d.ts +27 -0
- package/dist/vitest/decorator-coverage.d.ts.map +1 -0
- package/dist/vitest/decorator-coverage.js +41 -0
- package/dist/vitest/decorator-coverage.js.map +1 -0
- package/dist/vitest/decorators.d.ts +41 -0
- package/dist/vitest/decorators.d.ts.map +1 -0
- package/dist/vitest/decorators.js +49 -0
- package/dist/vitest/decorators.js.map +1 -0
- package/dist/vitest/is-record.d.ts +2 -0
- package/dist/vitest/is-record.d.ts.map +1 -0
- package/dist/vitest/is-record.js +4 -0
- package/dist/vitest/is-record.js.map +1 -0
- package/dist/vitest/project-options.d.ts +3 -0
- package/dist/vitest/project-options.d.ts.map +1 -0
- package/dist/vitest/project-options.js +2 -0
- package/dist/vitest/project-options.js.map +1 -0
- package/dist/vitest/single-file-project.d.ts +3 -0
- package/dist/vitest/single-file-project.d.ts.map +1 -0
- package/dist/vitest/single-file-project.js +26 -0
- package/dist/vitest/single-file-project.js.map +1 -0
- package/dist/vitest/source-map-of.d.ts +3 -0
- package/dist/vitest/source-map-of.d.ts.map +1 -0
- package/dist/vitest/source-map-of.js +14 -0
- package/dist/vitest/source-map-of.js.map +1 -0
- package/dist/vitest.d.ts +3 -0
- package/dist/vitest.d.ts.map +1 -0
- package/dist/vitest.js +3 -0
- package/dist/vitest.js.map +1 -0
- package/package.json +62 -4
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { UnitOfWork } from '@ddd-ts-kit/kernel';
|
|
2
|
+
import type { Awaitable } from '../awaitable.js';
|
|
3
|
+
import type { OutboxStoreUnderContract } from '../outbox-store-contract.js';
|
|
4
|
+
/**
|
|
5
|
+
* A unit of work with one table of its database, empty, and the outbox store of that database
|
|
6
|
+
* bound to it. The table holds an identifier under a primary key, and a reference to a row of
|
|
7
|
+
* the same table that the database checks at commit only (a deferred constraint).
|
|
8
|
+
*/
|
|
9
|
+
export interface UnitOfWorkUnderContract {
|
|
10
|
+
readonly unitOfWork: UnitOfWork;
|
|
11
|
+
readonly outbox: Pick<OutboxStoreUnderContract, 'append' | 'claimBatch' | 'stats'>;
|
|
12
|
+
/** Writes a row through the unit of work: in its transaction inside `run`. Rejects when the id is taken. */
|
|
13
|
+
insert(id: string): Promise<void>;
|
|
14
|
+
/** Writes a row the database takes now and refuses when the transaction commits. */
|
|
15
|
+
insertRefusedAtCommit(id: string): Promise<void>;
|
|
16
|
+
/** The ids the unit of work sees, sorted: inside `run`, what its transaction wrote included. */
|
|
17
|
+
ids(): Promise<string[]>;
|
|
18
|
+
/** The ids another connection sees: committed rows only. Given where the database serves several connections. */
|
|
19
|
+
committedIds?(): Promise<string[]>;
|
|
20
|
+
close?(): Awaitable<void>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=unit-of-work-under-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-of-work-under-contract.d.ts","sourceRoot":"","sources":["../../../src/contracts/unit-of-work/unit-of-work-under-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAE5E;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,wBAAwB,EAAE,QAAQ,GAAG,YAAY,GAAG,OAAO,CAAC,CAAC;IACnF,4GAA4G;IAC5G,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClC,oFAAoF;IACpF,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjD,gGAAgG;IAChG,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACzB,iHAAiH;IACjH,YAAY,CAAC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-of-work-under-contract.js","sourceRoot":"","sources":["../../../src/contracts/unit-of-work/unit-of-work-under-contract.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Awaitable } from './awaitable.js';
|
|
2
|
+
import type { ContractRunner } from './contract-runner.js';
|
|
3
|
+
import type { UnitOfWorkUnderContract } from './unit-of-work/unit-of-work-under-contract.js';
|
|
4
|
+
export interface UnitOfWorkContractOptions {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
/** A unit of work over an empty table and an empty outbox; called before each test. */
|
|
7
|
+
createUnitOfWork(): Awaitable<UnitOfWorkUnderContract>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* What every `UnitOfWork` guarantees about domain events, whatever it runs on: an effect of a
|
|
11
|
+
* domain event exists only if the state change that recorded it is committed. Events wait for
|
|
12
|
+
* the end of the unit of work and are dispatched before the commit, so their handlers see every
|
|
13
|
+
* save and what they write commits or rolls back with it; a failure in a save, in the work, in
|
|
14
|
+
* a handler or in the commit leaves nothing behind; `after-commit` handlers run once the rows
|
|
15
|
+
* are committed, never otherwise. `run` is called directly, without a command bus: an adapter
|
|
16
|
+
* that does not build on `withinUnitOfWork` fails here.
|
|
17
|
+
*/
|
|
18
|
+
export declare function unitOfWorkContract(runner: ContractRunner, options: UnitOfWorkContractOptions): void;
|
|
19
|
+
//# sourceMappingURL=unit-of-work-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-of-work-contract.d.ts","sourceRoot":"","sources":["../../src/contracts/unit-of-work-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAE7F,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,gBAAgB,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAC;CACxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,yBAAyB,GAAG,IAAI,CAMnG"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AfterCommitSuite } from './unit-of-work/after-commit-suite.js';
|
|
2
|
+
import { DispatchSuite } from './unit-of-work/dispatch-suite.js';
|
|
3
|
+
import { FailureSuite } from './unit-of-work/failure-suite.js';
|
|
4
|
+
/**
|
|
5
|
+
* What every `UnitOfWork` guarantees about domain events, whatever it runs on: an effect of a
|
|
6
|
+
* domain event exists only if the state change that recorded it is committed. Events wait for
|
|
7
|
+
* the end of the unit of work and are dispatched before the commit, so their handlers see every
|
|
8
|
+
* save and what they write commits or rolls back with it; a failure in a save, in the work, in
|
|
9
|
+
* a handler or in the commit leaves nothing behind; `after-commit` handlers run once the rows
|
|
10
|
+
* are committed, never otherwise. `run` is called directly, without a command bus: an adapter
|
|
11
|
+
* that does not build on `withinUnitOfWork` fails here.
|
|
12
|
+
*/
|
|
13
|
+
export function unitOfWorkContract(runner, options) {
|
|
14
|
+
const create = () => options.createUnitOfWork();
|
|
15
|
+
new DispatchSuite(runner, create).describe(`${options.name} (unit of work contract: dispatch at the end)`);
|
|
16
|
+
new FailureSuite(runner, create).describe(`${options.name} (unit of work contract: nothing survives a failure)`);
|
|
17
|
+
new AfterCommitSuite(runner, create).describe(`${options.name} (unit of work contract: after the commit)`);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=unit-of-work-contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-of-work-contract.js","sourceRoot":"","sources":["../../src/contracts/unit-of-work-contract.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAS/D;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAsB,EAAE,OAAkC;IAC3F,MAAM,MAAM,GAAG,GAAuC,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAEpF,IAAI,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,+CAA+C,CAAC,CAAC;IAC3G,IAAI,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,sDAAsD,CAAC,CAAC;IACjH,IAAI,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,IAAI,4CAA4C,CAAC,CAAC;AAC7G,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type { Awaitable } from './contracts/awaitable.js';
|
|
2
|
+
export { cacheContract, type CacheContractOptions } from './contracts/cache-contract.js';
|
|
3
|
+
export type { ContractRunner } from './contracts/contract-runner.js';
|
|
4
|
+
export { ContractSuite } from './contracts/contract-suite.js';
|
|
5
|
+
export { criteriaContract, type CriteriaContractOptions, type ReadModelUnderContract, } from './contracts/criteria-contract.js';
|
|
6
|
+
export type { CriteriaCase } from './contracts/criteria/criteria-case.js';
|
|
7
|
+
export { criteriaContractDefinition } from './contracts/criteria/criteria-contract-definition.js';
|
|
8
|
+
export type { CriteriaContractRow } from './contracts/criteria/criteria-contract-row.js';
|
|
9
|
+
export { criteriaContractRows } from './contracts/criteria/criteria-contract-rows.js';
|
|
10
|
+
export { eventBusContract, type EventBusContractOptions, type EventBusUnderContract, } from './contracts/event-bus-contract.js';
|
|
11
|
+
export { jobSchedulerContract, type JobSchedulerContractOptions, type JobSchedulerUnderContract, } from './contracts/job-scheduler-contract.js';
|
|
12
|
+
export { lockContract, type LockContractOptions } from './contracts/lock-contract.js';
|
|
13
|
+
export { loggerContract, type LoggerContractOptions } from './contracts/logger-contract.js';
|
|
14
|
+
export type { CreateLogger } from './contracts/logger/create-logger.js';
|
|
15
|
+
export type { LoggedLine } from './contracts/logger/logged-line.js';
|
|
16
|
+
export type { LoggerContractSetup } from './contracts/logger/logger-contract-setup.js';
|
|
17
|
+
export type { LoggerUnderContract } from './contracts/logger/logger-under-contract.js';
|
|
18
|
+
export { outboxStoreContract, type OutboxStoreContractOptions, type OutboxStoreUnderContract, } from './contracts/outbox-store-contract.js';
|
|
19
|
+
export { processedEventStoreContract, type ProcessedEventStoreContractOptions, } from './contracts/processed-event-store-contract.js';
|
|
20
|
+
export { rateLimiterContract, type RateLimiterContractOptions } from './contracts/rate-limiter-contract.js';
|
|
21
|
+
export { readModelStoreContract, type ReadModelStoreContractOptions } from './contracts/read-model-store-contract.js';
|
|
22
|
+
export type { ReadModelStoreUnderContract } from './contracts/read-model/read-model-store-under-contract.js';
|
|
23
|
+
export { SourceOfTruth } from './contracts/read-model/source-of-truth.js';
|
|
24
|
+
export { repositoryContract, type RepositoryContractOptions } from './contracts/repository-contract.js';
|
|
25
|
+
export { unitOfWorkContract, type UnitOfWorkContractOptions } from './contracts/unit-of-work-contract.js';
|
|
26
|
+
export type { UnitOfWorkUnderContract } from './contracts/unit-of-work/unit-of-work-under-contract.js';
|
|
27
|
+
//# sourceMappingURL=contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACzF,YAAY,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAClG,YAAY,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,oBAAoB,EACpB,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5F,YAAY,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,YAAY,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,EACL,mBAAmB,EACnB,KAAK,0BAA0B,EAC/B,KAAK,wBAAwB,GAC9B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,2BAA2B,EAC3B,KAAK,kCAAkC,GACxC,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,KAAK,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAE,KAAK,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AACtH,YAAY,EAAE,2BAA2B,EAAE,MAAM,2DAA2D,CAAC;AAC7G,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,KAAK,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAC1G,YAAY,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { cacheContract } from './contracts/cache-contract.js';
|
|
2
|
+
export { ContractSuite } from './contracts/contract-suite.js';
|
|
3
|
+
export { criteriaContract, } from './contracts/criteria-contract.js';
|
|
4
|
+
export { criteriaContractDefinition } from './contracts/criteria/criteria-contract-definition.js';
|
|
5
|
+
export { criteriaContractRows } from './contracts/criteria/criteria-contract-rows.js';
|
|
6
|
+
export { eventBusContract, } from './contracts/event-bus-contract.js';
|
|
7
|
+
export { jobSchedulerContract, } from './contracts/job-scheduler-contract.js';
|
|
8
|
+
export { lockContract } from './contracts/lock-contract.js';
|
|
9
|
+
export { loggerContract } from './contracts/logger-contract.js';
|
|
10
|
+
export { outboxStoreContract, } from './contracts/outbox-store-contract.js';
|
|
11
|
+
export { processedEventStoreContract, } from './contracts/processed-event-store-contract.js';
|
|
12
|
+
export { rateLimiterContract } from './contracts/rate-limiter-contract.js';
|
|
13
|
+
export { readModelStoreContract } from './contracts/read-model-store-contract.js';
|
|
14
|
+
export { SourceOfTruth } from './contracts/read-model/source-of-truth.js';
|
|
15
|
+
export { repositoryContract } from './contracts/repository-contract.js';
|
|
16
|
+
export { unitOfWorkContract } from './contracts/unit-of-work-contract.js';
|
|
17
|
+
//# sourceMappingURL=contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA6B,MAAM,+BAA+B,CAAC;AAEzF,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,gBAAgB,GAGjB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,sDAAsD,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AACtF,OAAO,EACL,gBAAgB,GAGjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,oBAAoB,GAGrB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,YAAY,EAA4B,MAAM,8BAA8B,CAAC;AACtF,OAAO,EAAE,cAAc,EAA8B,MAAM,gCAAgC,CAAC;AAK5F,OAAO,EACL,mBAAmB,GAGpB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,2BAA2B,GAE5B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAmC,MAAM,sCAAsC,CAAC;AAC5G,OAAO,EAAE,sBAAsB,EAAsC,MAAM,0CAA0C,CAAC;AAEtH,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAkC,MAAM,oCAAoC,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAkC,MAAM,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The contexts a pull request reaches, as `ddd-ts-kit affected` computed them from the context
|
|
3
|
+
* map and the pipeline handed them over; undefined for a run of everything, which is what the
|
|
4
|
+
* default branch gets.
|
|
5
|
+
*/
|
|
6
|
+
export declare function affectedContexts(): readonly string[] | undefined;
|
|
7
|
+
//# sourceMappingURL=affected-contexts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affected-contexts.d.ts","sourceRoot":"","sources":["../../src/coverage/affected-contexts.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,SAAS,MAAM,EAAE,GAAG,SAAS,CAOhE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Names the bounded contexts a partial run covers, comma separated; unset or empty, the run covers every context. */
|
|
2
|
+
const AFFECTED = 'DDD_TS_KIT_AFFECTED';
|
|
3
|
+
/**
|
|
4
|
+
* The contexts a pull request reaches, as `ddd-ts-kit affected` computed them from the context
|
|
5
|
+
* map and the pipeline handed them over; undefined for a run of everything, which is what the
|
|
6
|
+
* default branch gets.
|
|
7
|
+
*/
|
|
8
|
+
export function affectedContexts() {
|
|
9
|
+
const names = (process.env[AFFECTED] ?? '')
|
|
10
|
+
.split(',')
|
|
11
|
+
.map((name) => name.trim())
|
|
12
|
+
.filter((name) => name !== '');
|
|
13
|
+
return names.length > 0 ? names : undefined;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=affected-contexts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"affected-contexts.js","sourceRoot":"","sources":["../../src/coverage/affected-contexts.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,MAAM,QAAQ,GAAG,qBAAqB,CAAC;AAEvC;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxC,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IAEjC,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts-in.d.ts","sourceRoot":"","sources":["../../src/coverage/contexts-in.ts"],"names":[],"mappings":"AAEA,yGAAyG;AACzG,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,CAUtD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
/** The bounded contexts of a project: the directories directly inside its contexts directory, sorted. */
|
|
3
|
+
export function contextsIn(directory) {
|
|
4
|
+
if (!fs.existsSync(directory)) {
|
|
5
|
+
return [];
|
|
6
|
+
}
|
|
7
|
+
return fs
|
|
8
|
+
.readdirSync(directory, { withFileTypes: true })
|
|
9
|
+
.filter((entry) => entry.isDirectory())
|
|
10
|
+
.map((entry) => entry.name)
|
|
11
|
+
.sort();
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=contexts-in.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contexts-in.js","sourceRoot":"","sources":["../../src/coverage/contexts-in.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,yGAAyG;AACzG,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,EAAE;SACN,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAC/C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;SACtC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;SAC1B,IAAI,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-layer.d.ts","sourceRoot":"","sources":["../../src/coverage/coverage-layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAElE,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,kBAAkB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-layer.js","sourceRoot":"","sources":["../../src/coverage/coverage-layer.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/** The four rates of a coverage report, each a percentage a layer must reach. */
|
|
2
|
+
export interface CoverageRates {
|
|
3
|
+
readonly statements: number;
|
|
4
|
+
readonly branches: number;
|
|
5
|
+
readonly functions: number;
|
|
6
|
+
readonly lines: number;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=coverage-rates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-rates.d.ts","sourceRoot":"","sources":["../../src/coverage/coverage-rates.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coverage-rates.js","sourceRoot":"","sources":["../../src/coverage/coverage-rates.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { CoverageRates } from './coverage-rates.js';
|
|
2
|
+
/** The part of the `coverage` options of Vitest that the config file of a project governs. */
|
|
3
|
+
export interface GovernedCoverage {
|
|
4
|
+
/** The measured layers of every context, the files no spec loads included. */
|
|
5
|
+
readonly include: string[];
|
|
6
|
+
/** One entry per context and layer that holds a source file: a context cannot hide behind another. */
|
|
7
|
+
readonly thresholds: Record<string, CoverageRates>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* What a Vitest run measures and the floor it is held to, read from the `coverage` key of
|
|
11
|
+
* `ddd-ts-kit.config.json` (the reference when the key is absent): the one place a threshold is
|
|
12
|
+
* written. `mode` is the mode of the run: `unit` measures domain, application and presentation,
|
|
13
|
+
* `integration` measures infrastructure, any other mode measures the four layers. A partial run
|
|
14
|
+
* (`DDD_TS_KIT_AFFECTED`) measures and holds the contexts it names, and no other.
|
|
15
|
+
*
|
|
16
|
+
* // vitest.config.ts
|
|
17
|
+
* import { governedCoverage } from '@ddd-ts-kit/testing/coverage';
|
|
18
|
+
* export default defineConfig(({ mode }) => ({
|
|
19
|
+
* test: { coverage: { provider: 'v8', ...governedCoverage(mode) } },
|
|
20
|
+
* }));
|
|
21
|
+
*/
|
|
22
|
+
export declare function governedCoverage(mode: string, root?: string): GovernedCoverage;
|
|
23
|
+
//# sourceMappingURL=governed-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-coverage.d.ts","sourceRoot":"","sources":["../../src/coverage/governed-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,8FAA8F;AAC9F,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAC3B,sGAAsG;IACtG,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CACpD;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAsB,GAAG,gBAAgB,CAW7F"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { measuredFiles } from './measured-files.js';
|
|
2
|
+
import { governedSettings } from './governed-settings.js';
|
|
3
|
+
import { heldLayers } from './held-layers.js';
|
|
4
|
+
import { measuredLayers } from './measured-layers.js';
|
|
5
|
+
/**
|
|
6
|
+
* What a Vitest run measures and the floor it is held to, read from the `coverage` key of
|
|
7
|
+
* `ddd-ts-kit.config.json` (the reference when the key is absent): the one place a threshold is
|
|
8
|
+
* written. `mode` is the mode of the run: `unit` measures domain, application and presentation,
|
|
9
|
+
* `integration` measures infrastructure, any other mode measures the four layers. A partial run
|
|
10
|
+
* (`DDD_TS_KIT_AFFECTED`) measures and holds the contexts it names, and no other.
|
|
11
|
+
*
|
|
12
|
+
* // vitest.config.ts
|
|
13
|
+
* import { governedCoverage } from '@ddd-ts-kit/testing/coverage';
|
|
14
|
+
* export default defineConfig(({ mode }) => ({
|
|
15
|
+
* test: { coverage: { provider: 'v8', ...governedCoverage(mode) } },
|
|
16
|
+
* }));
|
|
17
|
+
*/
|
|
18
|
+
export function governedCoverage(mode, root = process.cwd()) {
|
|
19
|
+
const { contextsDir, thresholds } = governedSettings(root);
|
|
20
|
+
const layers = measuredLayers(mode);
|
|
21
|
+
const held = heldLayers(root, contextsDir, layers);
|
|
22
|
+
return {
|
|
23
|
+
include: measuredFiles(contextsDir, layers),
|
|
24
|
+
thresholds: Object.fromEntries(held.map(({ layer, directory }) => [`${directory}/**/*.ts`, { ...thresholds[layer] }])),
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=governed-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-coverage.js","sourceRoot":"","sources":["../../src/coverage/governed-coverage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAUtD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAI,GAAW,OAAO,CAAC,GAAG,EAAE;IACzE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAEnD,OAAO;QACL,OAAO,EAAE,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC;QAC3C,UAAU,EAAE,MAAM,CAAC,WAAW,CAC5B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,UAAU,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CACvF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CoverageRates } from './coverage-rates.js';
|
|
2
|
+
/** The part of a Jest config that the config file of a project governs. */
|
|
3
|
+
export interface GovernedJestCoverage {
|
|
4
|
+
readonly collectCoverageFrom: string[];
|
|
5
|
+
/** One directory per context and layer that holds a source file: Jest sums the files under a directory. */
|
|
6
|
+
readonly coverageThreshold: Record<string, CoverageRates>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The same as `governedCoverage`, in the options of Jest, which runs every spec in one run: the
|
|
10
|
+
* four layers of every context are measured and held to the `coverage` key of
|
|
11
|
+
* `ddd-ts-kit.config.json`.
|
|
12
|
+
*
|
|
13
|
+
* // jest.config.js
|
|
14
|
+
* import { governedJestCoverage } from '@ddd-ts-kit/testing/coverage';
|
|
15
|
+
* export default { coverageProvider: 'v8', ...governedJestCoverage() };
|
|
16
|
+
*/
|
|
17
|
+
export declare function governedJestCoverage(root?: string): GovernedJestCoverage;
|
|
18
|
+
//# sourceMappingURL=governed-jest-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-jest-coverage.d.ts","sourceRoot":"","sources":["../../src/coverage/governed-jest-coverage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,EAAE,CAAC;IACvC,2GAA2G;IAC3G,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAC3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,GAAE,MAAsB,GAAG,oBAAoB,CAWvF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { governedSettings } from './governed-settings.js';
|
|
2
|
+
import { heldLayers } from './held-layers.js';
|
|
3
|
+
import { measuredFiles } from './measured-files.js';
|
|
4
|
+
import { measuredLayers } from './measured-layers.js';
|
|
5
|
+
/**
|
|
6
|
+
* The same as `governedCoverage`, in the options of Jest, which runs every spec in one run: the
|
|
7
|
+
* four layers of every context are measured and held to the `coverage` key of
|
|
8
|
+
* `ddd-ts-kit.config.json`.
|
|
9
|
+
*
|
|
10
|
+
* // jest.config.js
|
|
11
|
+
* import { governedJestCoverage } from '@ddd-ts-kit/testing/coverage';
|
|
12
|
+
* export default { coverageProvider: 'v8', ...governedJestCoverage() };
|
|
13
|
+
*/
|
|
14
|
+
export function governedJestCoverage(root = process.cwd()) {
|
|
15
|
+
const { contextsDir, thresholds } = governedSettings(root);
|
|
16
|
+
const layers = measuredLayers('all');
|
|
17
|
+
const held = heldLayers(root, contextsDir, layers);
|
|
18
|
+
return {
|
|
19
|
+
collectCoverageFrom: measuredFiles(contextsDir, layers).map((files) => `<rootDir>/${files}`),
|
|
20
|
+
coverageThreshold: Object.fromEntries(held.map(({ layer, directory }) => [`./${directory}/`, { ...thresholds[layer] }])),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=governed-jest-coverage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-jest-coverage.js","sourceRoot":"","sources":["../../src/coverage/governed-jest-coverage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAStD;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAI,GAAW,OAAO,CAAC,GAAG,EAAE;IAC/D,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAEnD,OAAO;QACL,mBAAmB,EAAE,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,KAAK,EAAE,CAAC;QAC5F,iBAAiB,EAAE,MAAM,CAAC,WAAW,CACnC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,GAAG,EAAE,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAClF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { CoverageLayer } from './coverage-layer.js';
|
|
2
|
+
import type { CoverageRates } from './coverage-rates.js';
|
|
3
|
+
/** What the config file of a project says about coverage: where its contexts are and the floor of each layer. */
|
|
4
|
+
export interface GovernedSettings {
|
|
5
|
+
readonly contextsDir: string;
|
|
6
|
+
readonly thresholds: Readonly<Record<CoverageLayer, CoverageRates>>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Reads `ddd-ts-kit.config.json` at `root`. A rate the file does not give, or gives as something
|
|
10
|
+
* that is not a percentage, is the reference: `ddd-ts-kit check` reports the second case.
|
|
11
|
+
*/
|
|
12
|
+
export declare function governedSettings(root: string): GovernedSettings;
|
|
13
|
+
//# sourceMappingURL=governed-settings.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-settings.d.ts","sourceRoot":"","sources":["../../src/coverage/governed-settings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAMzD,iHAAiH;AACjH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC;CACrE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,CAc/D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { isRecord } from '../vitest/is-record.js';
|
|
4
|
+
import { REFERENCE_COVERAGE } from './reference-coverage.js';
|
|
5
|
+
const CONFIG_FILE = 'ddd-ts-kit.config.json';
|
|
6
|
+
/**
|
|
7
|
+
* Reads `ddd-ts-kit.config.json` at `root`. A rate the file does not give, or gives as something
|
|
8
|
+
* that is not a percentage, is the reference: `ddd-ts-kit check` reports the second case.
|
|
9
|
+
*/
|
|
10
|
+
export function governedSettings(root) {
|
|
11
|
+
const config = readConfig(root);
|
|
12
|
+
const sourceRoot = textOf(config['sourceRoot'], 'src');
|
|
13
|
+
const written = isRecord(config['coverage']) ? config['coverage'] : {};
|
|
14
|
+
return {
|
|
15
|
+
contextsDir: textOf(config['contextsDir'], `${sourceRoot}/contexts`),
|
|
16
|
+
thresholds: {
|
|
17
|
+
domain: ratesOf(written['domain'], REFERENCE_COVERAGE.domain),
|
|
18
|
+
application: ratesOf(written['application'], REFERENCE_COVERAGE.application),
|
|
19
|
+
presentation: ratesOf(written['presentation'], REFERENCE_COVERAGE.presentation),
|
|
20
|
+
infrastructure: ratesOf(written['infrastructure'], REFERENCE_COVERAGE.infrastructure),
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
function readConfig(root) {
|
|
25
|
+
const file = path.join(root, CONFIG_FILE);
|
|
26
|
+
if (!fs.existsSync(file)) {
|
|
27
|
+
throw new Error(`${CONFIG_FILE} was not found in ${root}: the coverage thresholds of a project are read from it.`);
|
|
28
|
+
}
|
|
29
|
+
const parsed = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
30
|
+
return isRecord(parsed) ? parsed : {};
|
|
31
|
+
}
|
|
32
|
+
function textOf(value, fallback) {
|
|
33
|
+
return typeof value === 'string' && value !== '' ? value.replaceAll('\\', '/') : fallback;
|
|
34
|
+
}
|
|
35
|
+
function ratesOf(value, reference) {
|
|
36
|
+
const written = isRecord(value) ? value : {};
|
|
37
|
+
const rate = (metric) => {
|
|
38
|
+
const candidate = written[metric];
|
|
39
|
+
const valid = typeof candidate === 'number' && Number.isFinite(candidate) && candidate >= 0 && candidate <= 100;
|
|
40
|
+
return valid ? candidate : reference[metric];
|
|
41
|
+
};
|
|
42
|
+
return {
|
|
43
|
+
statements: rate('statements'),
|
|
44
|
+
branches: rate('branches'),
|
|
45
|
+
functions: rate('functions'),
|
|
46
|
+
lines: rate('lines'),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=governed-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governed-settings.js","sourceRoot":"","sources":["../../src/coverage/governed-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,GAAG,wBAAwB,CAAC;AAQ7C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEvE,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,UAAU,WAAW,CAAC;QACpE,UAAU,EAAE;YACV,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC;YAC7D,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC;YAC5E,YAAY,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC;YAC/E,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,cAAc,CAAC;SACtF;KACF,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,IAAY;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,qBAAqB,IAAI,0DAA0D,CAAC,CAAC;IACrH,CAAC;IAED,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAElE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAS,MAAM,CAAC,KAAc,EAAE,QAAgB;IAC9C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC5F,CAAC;AAED,SAAS,OAAO,CAAC,KAAc,EAAE,SAAwB;IACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG,CAAC,MAA2B,EAAU,EAAE;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,OAAO,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,IAAI,GAAG,CAAC;QAEhH,OAAO,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,OAAO;QACL,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC;QAC1B,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC;QAC5B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC;KACrB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { CoverageLayer } from './coverage-layer.js';
|
|
2
|
+
/** A layer of one context that holds at least one source file: the unit a threshold is applied to. */
|
|
3
|
+
export interface HeldLayer {
|
|
4
|
+
readonly context: string;
|
|
5
|
+
readonly layer: CoverageLayer;
|
|
6
|
+
/** Posix path of the layer directory from the root of the project. */
|
|
7
|
+
readonly directory: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The layers a threshold applies to, among `layers`: one per context that has a source file in
|
|
11
|
+
* it. An empty layer (a context with no route yet, a project just initialised) is held to nothing,
|
|
12
|
+
* and is held to its threshold from its first source file. A partial run (`DDD_TS_KIT_AFFECTED`)
|
|
13
|
+
* holds the contexts it names, each to its whole threshold, since it runs every spec of each;
|
|
14
|
+
* the others are measured by the run of everything.
|
|
15
|
+
*/
|
|
16
|
+
export declare function heldLayers(root: string, contextsDir: string, layers: readonly CoverageLayer[]): HeldLayer[];
|
|
17
|
+
//# sourceMappingURL=held-layers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"held-layers.d.ts","sourceRoot":"","sources":["../../src/coverage/held-layers.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD,sGAAsG;AACtG,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,sEAAsE;IACtE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,SAAS,EAAE,CAU3G"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { affectedContexts } from './affected-contexts.js';
|
|
4
|
+
import { contextsIn } from './contexts-in.js';
|
|
5
|
+
const SOURCE = /(?<!\.d)\.[cm]?ts$/;
|
|
6
|
+
const SPEC = /\.(?:spec|test)\.[cm]?ts$/;
|
|
7
|
+
/**
|
|
8
|
+
* The layers a threshold applies to, among `layers`: one per context that has a source file in
|
|
9
|
+
* it. An empty layer (a context with no route yet, a project just initialised) is held to nothing,
|
|
10
|
+
* and is held to its threshold from its first source file. A partial run (`DDD_TS_KIT_AFFECTED`)
|
|
11
|
+
* holds the contexts it names, each to its whole threshold, since it runs every spec of each;
|
|
12
|
+
* the others are measured by the run of everything.
|
|
13
|
+
*/
|
|
14
|
+
export function heldLayers(root, contextsDir, layers) {
|
|
15
|
+
const affected = affectedContexts();
|
|
16
|
+
return contextsIn(path.join(root, contextsDir))
|
|
17
|
+
.filter((context) => affected === undefined || affected.includes(context))
|
|
18
|
+
.flatMap((context) => layers
|
|
19
|
+
.map((layer) => ({ context, layer, directory: `${contextsDir}/${context}/${layer}` }))
|
|
20
|
+
.filter(({ directory }) => holdsASource(path.join(root, directory))));
|
|
21
|
+
}
|
|
22
|
+
function holdsASource(directory) {
|
|
23
|
+
if (!fs.existsSync(directory)) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
return fs
|
|
27
|
+
.readdirSync(directory, { withFileTypes: true, recursive: true })
|
|
28
|
+
.some((entry) => entry.isFile() && SOURCE.test(entry.name) && !SPEC.test(entry.name));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=held-layers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"held-layers.js","sourceRoot":"","sources":["../../src/coverage/held-layers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,MAAM,MAAM,GAAG,oBAAoB,CAAC;AACpC,MAAM,IAAI,GAAG,2BAA2B,CAAC;AAUzC;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,WAAmB,EAAE,MAAgC;IAC5F,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC;IAEpC,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC5C,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SACzE,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACnB,MAAM;SACH,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,WAAW,IAAI,OAAO,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;SACrF,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CACvE,CAAC;AACN,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,EAAE;SACN,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SAChE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CoverageLayer } from './coverage-layer.js';
|
|
2
|
+
/** The files a run measures: the given layers of every context, or of the contexts a partial run names; the files no spec loads are included. */
|
|
3
|
+
export declare function measuredFiles(contextsDir: string, layers: readonly CoverageLayer[]): string[];
|
|
4
|
+
//# sourceMappingURL=measured-files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measured-files.d.ts","sourceRoot":"","sources":["../../src/coverage/measured-files.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,iJAAiJ;AACjJ,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,MAAM,EAAE,CAI7F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { affectedContexts } from './affected-contexts.js';
|
|
2
|
+
/** The files a run measures: the given layers of every context, or of the contexts a partial run names; the files no spec loads are included. */
|
|
3
|
+
export function measuredFiles(contextsDir, layers) {
|
|
4
|
+
const contexts = affectedContexts() ?? ['*'];
|
|
5
|
+
return contexts.flatMap((context) => layers.map((layer) => `${contextsDir}/${context}/${layer}/**/*.ts`));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=measured-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measured-files.js","sourceRoot":"","sources":["../../src/coverage/measured-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,iJAAiJ;AACjJ,MAAM,UAAU,aAAa,CAAC,WAAmB,EAAE,MAAgC;IACjF,MAAM,QAAQ,GAAG,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAE7C,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,WAAW,IAAI,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;AAC5G,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CoverageLayer } from './coverage-layer.js';
|
|
2
|
+
/**
|
|
3
|
+
* The layers a run executes, so that it is never failed for one it does not: the unit specs
|
|
4
|
+
* exercise the inner layers (`--mode unit`), the integration specs the adapters
|
|
5
|
+
* (`--mode integration`), and a run of every spec, in any other mode, all four.
|
|
6
|
+
*/
|
|
7
|
+
export declare function measuredLayers(mode: string): readonly CoverageLayer[];
|
|
8
|
+
//# sourceMappingURL=measured-layers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measured-layers.d.ts","sourceRoot":"","sources":["../../src/coverage/measured-layers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKzD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,aAAa,EAAE,CAMrE"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const INNER = ['domain', 'application', 'presentation'];
|
|
2
|
+
const ADAPTERS = ['infrastructure'];
|
|
3
|
+
/**
|
|
4
|
+
* The layers a run executes, so that it is never failed for one it does not: the unit specs
|
|
5
|
+
* exercise the inner layers (`--mode unit`), the integration specs the adapters
|
|
6
|
+
* (`--mode integration`), and a run of every spec, in any other mode, all four.
|
|
7
|
+
*/
|
|
8
|
+
export function measuredLayers(mode) {
|
|
9
|
+
if (mode === 'unit') {
|
|
10
|
+
return INNER;
|
|
11
|
+
}
|
|
12
|
+
return mode === 'integration' ? ADAPTERS : [...INNER, ...ADAPTERS];
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=measured-layers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measured-layers.js","sourceRoot":"","sources":["../../src/coverage/measured-layers.ts"],"names":[],"mappings":"AAEA,MAAM,KAAK,GAA6B,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;AAClF,MAAM,QAAQ,GAA6B,CAAC,gBAAgB,CAAC,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,CAAC;AACrE,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The floors a project is held to when its config file says nothing, the same ones
|
|
3
|
+
* `ddd-ts-kit check` reads a lowered threshold against. The domain is the highest: it is pure and
|
|
4
|
+
* holds the rules of the business. The infrastructure is the lowest: the failure branches of a
|
|
5
|
+
* driver are not its to test, and its adapters are held by contract suites.
|
|
6
|
+
*/
|
|
7
|
+
export declare const REFERENCE_COVERAGE: {
|
|
8
|
+
readonly domain: {
|
|
9
|
+
readonly statements: 90;
|
|
10
|
+
readonly branches: 85;
|
|
11
|
+
readonly functions: 90;
|
|
12
|
+
readonly lines: 90;
|
|
13
|
+
};
|
|
14
|
+
readonly application: {
|
|
15
|
+
readonly statements: 85;
|
|
16
|
+
readonly branches: 80;
|
|
17
|
+
readonly functions: 85;
|
|
18
|
+
readonly lines: 85;
|
|
19
|
+
};
|
|
20
|
+
readonly presentation: {
|
|
21
|
+
readonly statements: 80;
|
|
22
|
+
readonly branches: 70;
|
|
23
|
+
readonly functions: 80;
|
|
24
|
+
readonly lines: 80;
|
|
25
|
+
};
|
|
26
|
+
readonly infrastructure: {
|
|
27
|
+
readonly statements: 70;
|
|
28
|
+
readonly branches: 60;
|
|
29
|
+
readonly functions: 70;
|
|
30
|
+
readonly lines: 70;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=reference-coverage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference-coverage.d.ts","sourceRoot":"","sources":["../../src/coverage/reference-coverage.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;iBACnB,UAAU,EAAE,EAAE;iBAAE,QAAQ,EAAE,EAAE;iBAAE,SAAS,EAAE,EAAE;iBAAE,KAAK,EAAE,EAAE;;;iBACjD,UAAU,EAAE,EAAE;iBAAE,QAAQ,EAAE,EAAE;iBAAE,SAAS,EAAE,EAAE;iBAAE,KAAK,EAAE,EAAE;;;iBACrD,UAAU,EAAE,EAAE;iBAAE,QAAQ,EAAE,EAAE;iBAAE,SAAS,EAAE,EAAE;iBAAE,KAAK,EAAE,EAAE;;;iBACpD,UAAU,EAAE,EAAE;iBAAE,QAAQ,EAAE,EAAE;iBAAE,SAAS,EAAE,EAAE;iBAAE,KAAK,EAAE,EAAE;;CACd,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The floors a project is held to when its config file says nothing, the same ones
|
|
3
|
+
* `ddd-ts-kit check` reads a lowered threshold against. The domain is the highest: it is pure and
|
|
4
|
+
* holds the rules of the business. The infrastructure is the lowest: the failure branches of a
|
|
5
|
+
* driver are not its to test, and its adapters are held by contract suites.
|
|
6
|
+
*/
|
|
7
|
+
export const REFERENCE_COVERAGE = {
|
|
8
|
+
domain: { statements: 90, branches: 85, functions: 90, lines: 90 },
|
|
9
|
+
application: { statements: 85, branches: 80, functions: 85, lines: 85 },
|
|
10
|
+
presentation: { statements: 80, branches: 70, functions: 80, lines: 80 },
|
|
11
|
+
infrastructure: { statements: 70, branches: 60, functions: 70, lines: 70 },
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=reference-coverage.js.map
|