@bett3r-dev/pv3 1.0.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/build/adapters/cache/index.d.ts +2 -0
- package/build/adapters/cache/index.d.ts.map +1 -0
- package/build/adapters/cache/index.js +18 -0
- package/build/adapters/cache/index.js.map +1 -0
- package/build/adapters/cache/memory/__tests__/memoryCache.test.d.ts +1 -0
- package/build/adapters/cache/memory/__tests__/memoryCache.test.d.ts.map +1 -0
- package/build/adapters/cache/memory/__tests__/memoryCache.test.js +6 -0
- package/build/adapters/cache/memory/__tests__/memoryCache.test.js.map +1 -0
- package/build/adapters/cache/memory/index.d.ts +3 -0
- package/build/adapters/cache/memory/index.d.ts.map +1 -0
- package/build/adapters/cache/memory/index.js +119 -0
- package/build/adapters/cache/memory/index.js.map +1 -0
- package/build/adapters/configuration/__tests__/dotEnv.test.d.ts +2 -0
- package/build/adapters/configuration/__tests__/dotEnv.test.d.ts.map +1 -0
- package/build/adapters/configuration/__tests__/dotEnv.test.js +43 -0
- package/build/adapters/configuration/__tests__/dotEnv.test.js.map +1 -0
- package/build/adapters/configuration/dotEnv.d.ts +3 -0
- package/build/adapters/configuration/dotEnv.d.ts.map +1 -0
- package/build/adapters/configuration/dotEnv.js +35 -0
- package/build/adapters/configuration/dotEnv.js.map +1 -0
- package/build/adapters/configuration/index.d.ts +2 -0
- package/build/adapters/configuration/index.d.ts.map +1 -0
- package/build/adapters/configuration/index.js +18 -0
- package/build/adapters/configuration/index.js.map +1 -0
- package/build/adapters/database/index.d.ts +2 -0
- package/build/adapters/database/index.d.ts.map +1 -0
- package/build/adapters/database/index.js +18 -0
- package/build/adapters/database/index.js.map +1 -0
- package/build/adapters/database/memory/__tests__/memoryDb.test.d.ts +1 -0
- package/build/adapters/database/memory/__tests__/memoryDb.test.d.ts.map +1 -0
- package/build/adapters/database/memory/__tests__/memoryDb.test.js +36 -0
- package/build/adapters/database/memory/__tests__/memoryDb.test.js.map +1 -0
- package/build/adapters/database/memory/index.d.ts +3 -0
- package/build/adapters/database/memory/index.d.ts.map +1 -0
- package/build/adapters/database/memory/index.js +241 -0
- package/build/adapters/database/memory/index.js.map +1 -0
- package/build/adapters/endpoints/addAuthUser/index.d.ts +8 -0
- package/build/adapters/endpoints/addAuthUser/index.d.ts.map +1 -0
- package/build/adapters/endpoints/addAuthUser/index.js +57 -0
- package/build/adapters/endpoints/addAuthUser/index.js.map +1 -0
- package/build/adapters/endpoints/endpointValidation/index.d.ts +4 -0
- package/build/adapters/endpoints/endpointValidation/index.d.ts.map +1 -0
- package/build/adapters/endpoints/endpointValidation/index.js +27 -0
- package/build/adapters/endpoints/endpointValidation/index.js.map +1 -0
- package/build/adapters/endpoints/index.d.ts +4 -0
- package/build/adapters/endpoints/index.d.ts.map +1 -0
- package/build/adapters/endpoints/index.js +21 -0
- package/build/adapters/endpoints/index.js.map +1 -0
- package/build/adapters/endpoints/localAuthorization/index.d.ts +1 -0
- package/build/adapters/endpoints/localAuthorization/index.d.ts.map +1 -0
- package/build/adapters/endpoints/localAuthorization/index.js +68 -0
- package/build/adapters/endpoints/localAuthorization/index.js.map +1 -0
- package/build/adapters/endpoints/tcpConsumer/index.d.ts +3 -0
- package/build/adapters/endpoints/tcpConsumer/index.d.ts.map +1 -0
- package/build/adapters/endpoints/tcpConsumer/index.js +64 -0
- package/build/adapters/endpoints/tcpConsumer/index.js.map +1 -0
- package/build/adapters/endpoints/userSession/index.d.ts +8 -0
- package/build/adapters/endpoints/userSession/index.d.ts.map +1 -0
- package/build/adapters/endpoints/userSession/index.js +43 -0
- package/build/adapters/endpoints/userSession/index.js.map +1 -0
- package/build/adapters/eventstore/database.d.ts +3 -0
- package/build/adapters/eventstore/database.d.ts.map +1 -0
- package/build/adapters/eventstore/database.js +156 -0
- package/build/adapters/eventstore/database.js.map +1 -0
- package/build/adapters/eventstore/index.d.ts +2 -0
- package/build/adapters/eventstore/index.d.ts.map +1 -0
- package/build/adapters/eventstore/index.js +18 -0
- package/build/adapters/eventstore/index.js.map +1 -0
- package/build/adapters/infrastructure/index.d.ts +2 -0
- package/build/adapters/infrastructure/index.d.ts.map +1 -0
- package/build/adapters/infrastructure/index.js +18 -0
- package/build/adapters/infrastructure/index.js.map +1 -0
- package/build/adapters/infrastructure/local/index.d.ts +4 -0
- package/build/adapters/infrastructure/local/index.d.ts.map +1 -0
- package/build/adapters/infrastructure/local/index.js +37 -0
- package/build/adapters/infrastructure/local/index.js.map +1 -0
- package/build/adapters/logger/console.d.ts +3 -0
- package/build/adapters/logger/console.d.ts.map +1 -0
- package/build/adapters/logger/console.js +38 -0
- package/build/adapters/logger/console.js.map +1 -0
- package/build/adapters/logger/index.d.ts +2 -0
- package/build/adapters/logger/index.d.ts.map +1 -0
- package/build/adapters/logger/index.js +18 -0
- package/build/adapters/logger/index.js.map +1 -0
- package/build/index.d.ts +23 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +39 -0
- package/build/index.js.map +1 -0
- package/build/libraries/modules/fs.d.ts +12 -0
- package/build/libraries/modules/fs.d.ts.map +1 -0
- package/build/libraries/modules/fs.js +103 -0
- package/build/libraries/modules/fs.js.map +1 -0
- package/build/libraries/modules/index.d.ts +2 -0
- package/build/libraries/modules/index.d.ts.map +1 -0
- package/build/libraries/modules/index.js +18 -0
- package/build/libraries/modules/index.js.map +1 -0
- package/build/libraries/openApi/index.d.ts +2 -0
- package/build/libraries/openApi/index.d.ts.map +1 -0
- package/build/libraries/openApi/index.js +18 -0
- package/build/libraries/openApi/index.js.map +1 -0
- package/build/libraries/openApi/pruneUnusedRef.d.ts +3 -0
- package/build/libraries/openApi/pruneUnusedRef.d.ts.map +1 -0
- package/build/libraries/openApi/pruneUnusedRef.js +30 -0
- package/build/libraries/openApi/pruneUnusedRef.js.map +1 -0
- package/build/libraries/tcp/index.d.ts +8 -0
- package/build/libraries/tcp/index.d.ts.map +1 -0
- package/build/libraries/tcp/index.js +108 -0
- package/build/libraries/tcp/index.js.map +1 -0
- package/build/libraries/tcp/types.d.ts +45 -0
- package/build/libraries/tcp/types.d.ts.map +1 -0
- package/build/libraries/tcp/types.js +3 -0
- package/build/libraries/tcp/types.js.map +1 -0
- package/build/libraries/validation/__tests__/validation.test.d.ts +2 -0
- package/build/libraries/validation/__tests__/validation.test.d.ts.map +1 -0
- package/build/libraries/validation/__tests__/validation.test.js +53 -0
- package/build/libraries/validation/__tests__/validation.test.js.map +1 -0
- package/build/libraries/validation/index.d.ts +8 -0
- package/build/libraries/validation/index.d.ts.map +1 -0
- package/build/libraries/validation/index.js +51 -0
- package/build/libraries/validation/index.js.map +1 -0
- package/build/ports/authentication/index.d.ts +12 -0
- package/build/ports/authentication/index.d.ts.map +1 -0
- package/build/ports/authentication/index.js +23 -0
- package/build/ports/authentication/index.js.map +1 -0
- package/build/ports/base.d.ts +7 -0
- package/build/ports/base.d.ts.map +1 -0
- package/build/ports/base.js +25 -0
- package/build/ports/base.js.map +1 -0
- package/build/ports/cache/index.d.ts +3 -0
- package/build/ports/cache/index.d.ts.map +1 -0
- package/build/ports/cache/index.js +19 -0
- package/build/ports/cache/index.js.map +1 -0
- package/build/ports/configuration/__tests__/configurationPort.test.d.ts +2 -0
- package/build/ports/configuration/__tests__/configurationPort.test.d.ts.map +1 -0
- package/build/ports/configuration/__tests__/configurationPort.test.js +51 -0
- package/build/ports/configuration/__tests__/configurationPort.test.js.map +1 -0
- package/build/ports/configuration/args.d.ts +57 -0
- package/build/ports/configuration/args.d.ts.map +1 -0
- package/build/ports/configuration/args.js +44 -0
- package/build/ports/configuration/args.js.map +1 -0
- package/build/ports/configuration/common.d.ts +2 -0
- package/build/ports/configuration/common.d.ts.map +1 -0
- package/build/ports/configuration/common.js +19 -0
- package/build/ports/configuration/common.js.map +1 -0
- package/build/ports/configuration/index.d.ts +10 -0
- package/build/ports/configuration/index.d.ts.map +1 -0
- package/build/ports/configuration/index.js +96 -0
- package/build/ports/configuration/index.js.map +1 -0
- package/build/ports/configuration/localConfig.d.ts +3 -0
- package/build/ports/configuration/localConfig.d.ts.map +1 -0
- package/build/ports/configuration/localConfig.js +108 -0
- package/build/ports/configuration/localConfig.js.map +1 -0
- package/build/ports/database/index.d.ts +4 -0
- package/build/ports/database/index.d.ts.map +1 -0
- package/build/ports/database/index.js +27 -0
- package/build/ports/database/index.js.map +1 -0
- package/build/ports/endpoints/__tests__/endpointsCall.test.d.ts +2 -0
- package/build/ports/endpoints/__tests__/endpointsCall.test.d.ts.map +1 -0
- package/build/ports/endpoints/__tests__/endpointsCall.test.js +21 -0
- package/build/ports/endpoints/__tests__/endpointsCall.test.js.map +1 -0
- package/build/ports/endpoints/__tests__/test-client-library/base.d.ts +77 -0
- package/build/ports/endpoints/__tests__/test-client-library/base.d.ts.map +1 -0
- package/build/ports/endpoints/__tests__/test-client-library/base.js +91 -0
- package/build/ports/endpoints/__tests__/test-client-library/base.js.map +1 -0
- package/build/ports/endpoints/__tests__/test-client-library/index.d.ts +29 -0
- package/build/ports/endpoints/__tests__/test-client-library/index.d.ts.map +1 -0
- package/build/ports/endpoints/__tests__/test-client-library/index.js +43 -0
- package/build/ports/endpoints/__tests__/test-client-library/index.js.map +1 -0
- package/build/ports/endpoints/__tests__/test-client-library/services/service.d.ts +106 -0
- package/build/ports/endpoints/__tests__/test-client-library/services/service.d.ts.map +1 -0
- package/build/ports/endpoints/__tests__/test-client-library/services/service.js +62 -0
- package/build/ports/endpoints/__tests__/test-client-library/services/service.js.map +1 -0
- package/build/ports/endpoints/__tests__/utils.test.d.ts +1 -0
- package/build/ports/endpoints/__tests__/utils.test.d.ts.map +1 -0
- package/build/ports/endpoints/__tests__/utils.test.js +53 -0
- package/build/ports/endpoints/__tests__/utils.test.js.map +1 -0
- package/build/ports/endpoints/index.d.ts +29 -0
- package/build/ports/endpoints/index.d.ts.map +1 -0
- package/build/ports/endpoints/index.js +263 -0
- package/build/ports/endpoints/index.js.map +1 -0
- package/build/ports/endpoints/openApi.d.ts +16 -0
- package/build/ports/endpoints/openApi.d.ts.map +1 -0
- package/build/ports/endpoints/openApi.js +187 -0
- package/build/ports/endpoints/openApi.js.map +1 -0
- package/build/ports/endpoints/utils.d.ts +17 -0
- package/build/ports/endpoints/utils.d.ts.map +1 -0
- package/build/ports/endpoints/utils.js +31 -0
- package/build/ports/endpoints/utils.js.map +1 -0
- package/build/ports/eventsourcing/__tests__/eventhandlers.test.d.ts +2 -0
- package/build/ports/eventsourcing/__tests__/eventhandlers.test.d.ts.map +1 -0
- package/build/ports/eventsourcing/__tests__/eventhandlers.test.js +35 -0
- package/build/ports/eventsourcing/__tests__/eventhandlers.test.js.map +1 -0
- package/build/ports/eventsourcing/__tests__/invariants.test.d.ts +2 -0
- package/build/ports/eventsourcing/__tests__/invariants.test.d.ts.map +1 -0
- package/build/ports/eventsourcing/__tests__/invariants.test.js +210 -0
- package/build/ports/eventsourcing/__tests__/invariants.test.js.map +1 -0
- package/build/ports/eventsourcing/commandHandlers/index.d.ts +25 -0
- package/build/ports/eventsourcing/commandHandlers/index.d.ts.map +1 -0
- package/build/ports/eventsourcing/commandHandlers/index.js +392 -0
- package/build/ports/eventsourcing/commandHandlers/index.js.map +1 -0
- package/build/ports/eventsourcing/commandTemplates/index.d.ts +3 -0
- package/build/ports/eventsourcing/commandTemplates/index.d.ts.map +1 -0
- package/build/ports/eventsourcing/commandTemplates/index.js +19 -0
- package/build/ports/eventsourcing/commandTemplates/index.js.map +1 -0
- package/build/ports/eventsourcing/commandTemplates/multiStream.d.ts +4 -0
- package/build/ports/eventsourcing/commandTemplates/multiStream.d.ts.map +1 -0
- package/build/ports/eventsourcing/commandTemplates/multiStream.js +73 -0
- package/build/ports/eventsourcing/commandTemplates/multiStream.js.map +1 -0
- package/build/ports/eventsourcing/commandTemplates/snapshot.d.ts +9 -0
- package/build/ports/eventsourcing/commandTemplates/snapshot.d.ts.map +1 -0
- package/build/ports/eventsourcing/commandTemplates/snapshot.js +39 -0
- package/build/ports/eventsourcing/commandTemplates/snapshot.js.map +1 -0
- package/build/ports/eventsourcing/eventHandlers/index.d.ts +33 -0
- package/build/ports/eventsourcing/eventHandlers/index.d.ts.map +1 -0
- package/build/ports/eventsourcing/eventHandlers/index.js +276 -0
- package/build/ports/eventsourcing/eventHandlers/index.js.map +1 -0
- package/build/ports/eventsourcing/index.d.ts +9 -0
- package/build/ports/eventsourcing/index.d.ts.map +1 -0
- package/build/ports/eventsourcing/index.js +101 -0
- package/build/ports/eventsourcing/index.js.map +1 -0
- package/build/ports/eventsourcing/invariants/combinators.d.ts +4 -0
- package/build/ports/eventsourcing/invariants/combinators.d.ts.map +1 -0
- package/build/ports/eventsourcing/invariants/combinators.js +20 -0
- package/build/ports/eventsourcing/invariants/combinators.js.map +1 -0
- package/build/ports/eventsourcing/invariants/common.d.ts +10 -0
- package/build/ports/eventsourcing/invariants/common.d.ts.map +1 -0
- package/build/ports/eventsourcing/invariants/common.js +37 -0
- package/build/ports/eventsourcing/invariants/common.js.map +1 -0
- package/build/ports/eventsourcing/invariants/comparisons.d.ts +19 -0
- package/build/ports/eventsourcing/invariants/comparisons.d.ts.map +1 -0
- package/build/ports/eventsourcing/invariants/comparisons.js +83 -0
- package/build/ports/eventsourcing/invariants/comparisons.js.map +1 -0
- package/build/ports/eventsourcing/invariants/index.d.ts +5 -0
- package/build/ports/eventsourcing/invariants/index.d.ts.map +1 -0
- package/build/ports/eventsourcing/invariants/index.js +21 -0
- package/build/ports/eventsourcing/invariants/index.js.map +1 -0
- package/build/ports/eventsourcing/invariants/stateExistance.d.ts +4 -0
- package/build/ports/eventsourcing/invariants/stateExistance.d.ts.map +1 -0
- package/build/ports/eventsourcing/invariants/stateExistance.js +33 -0
- package/build/ports/eventsourcing/invariants/stateExistance.js.map +1 -0
- package/build/ports/eventsourcing/subscriptions/index.d.ts +2 -0
- package/build/ports/eventsourcing/subscriptions/index.d.ts.map +1 -0
- package/build/ports/eventsourcing/subscriptions/index.js +18 -0
- package/build/ports/eventsourcing/subscriptions/index.js.map +1 -0
- package/build/ports/eventsourcing/subscriptions/sseSubscriptions.d.ts +3 -0
- package/build/ports/eventsourcing/subscriptions/sseSubscriptions.d.ts.map +1 -0
- package/build/ports/eventsourcing/subscriptions/sseSubscriptions.js +81 -0
- package/build/ports/eventsourcing/subscriptions/sseSubscriptions.js.map +1 -0
- package/build/ports/eventsourcing/utils/aggregateBuilder.d.ts +4 -0
- package/build/ports/eventsourcing/utils/aggregateBuilder.d.ts.map +1 -0
- package/build/ports/eventsourcing/utils/aggregateBuilder.js +45 -0
- package/build/ports/eventsourcing/utils/aggregateBuilder.js.map +1 -0
- package/build/ports/eventsourcing/utils/commandBuilder.d.ts +3 -0
- package/build/ports/eventsourcing/utils/commandBuilder.d.ts.map +1 -0
- package/build/ports/eventsourcing/utils/commandBuilder.js +102 -0
- package/build/ports/eventsourcing/utils/commandBuilder.js.map +1 -0
- package/build/ports/eventsourcing/utils/eventHandlerBuilder.d.ts +3 -0
- package/build/ports/eventsourcing/utils/eventHandlerBuilder.d.ts.map +1 -0
- package/build/ports/eventsourcing/utils/eventHandlerBuilder.js +19 -0
- package/build/ports/eventsourcing/utils/eventHandlerBuilder.js.map +1 -0
- package/build/ports/eventsourcing/utils/externalSystemBuilder.d.ts +4 -0
- package/build/ports/eventsourcing/utils/externalSystemBuilder.d.ts.map +1 -0
- package/build/ports/eventsourcing/utils/externalSystemBuilder.js +34 -0
- package/build/ports/eventsourcing/utils/externalSystemBuilder.js.map +1 -0
- package/build/ports/eventsourcing/utils/index.d.ts +13 -0
- package/build/ports/eventsourcing/utils/index.d.ts.map +1 -0
- package/build/ports/eventsourcing/utils/index.js +45 -0
- package/build/ports/eventsourcing/utils/index.js.map +1 -0
- package/build/ports/eventsourcing/utils/policyBuilder.d.ts +3 -0
- package/build/ports/eventsourcing/utils/policyBuilder.d.ts.map +1 -0
- package/build/ports/eventsourcing/utils/policyBuilder.js +29 -0
- package/build/ports/eventsourcing/utils/policyBuilder.js.map +1 -0
- package/build/ports/eventsourcing/utils/readmodelBuilder.d.ts +5 -0
- package/build/ports/eventsourcing/utils/readmodelBuilder.d.ts.map +1 -0
- package/build/ports/eventsourcing/utils/readmodelBuilder.js +45 -0
- package/build/ports/eventsourcing/utils/readmodelBuilder.js.map +1 -0
- package/build/ports/eventstore/index.d.ts +3 -0
- package/build/ports/eventstore/index.d.ts.map +1 -0
- package/build/ports/eventstore/index.js +13 -0
- package/build/ports/eventstore/index.js.map +1 -0
- package/build/ports/infrastructure/__tests__/fixture/index.d.ts +3 -0
- package/build/ports/infrastructure/__tests__/fixture/index.d.ts.map +1 -0
- package/build/ports/infrastructure/__tests__/fixture/index.js +19 -0
- package/build/ports/infrastructure/__tests__/fixture/index.js.map +1 -0
- package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.d.ts +19 -0
- package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.d.ts.map +1 -0
- package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.js +76 -0
- package/build/ports/infrastructure/__tests__/fixture/infrastructureServices.js.map +1 -0
- package/build/ports/infrastructure/__tests__/fixture/structureState.d.ts +177 -0
- package/build/ports/infrastructure/__tests__/fixture/structureState.d.ts.map +1 -0
- package/build/ports/infrastructure/__tests__/fixture/structureState.js +258 -0
- package/build/ports/infrastructure/__tests__/fixture/structureState.js.map +1 -0
- package/build/ports/infrastructure/__tests__/infrastructure.test.d.ts +2 -0
- package/build/ports/infrastructure/__tests__/infrastructure.test.d.ts.map +1 -0
- package/build/ports/infrastructure/__tests__/infrastructure.test.js +11 -0
- package/build/ports/infrastructure/__tests__/infrastructure.test.js.map +1 -0
- package/build/ports/infrastructure/index.d.ts +53 -0
- package/build/ports/infrastructure/index.d.ts.map +1 -0
- package/build/ports/infrastructure/index.js +149 -0
- package/build/ports/infrastructure/index.js.map +1 -0
- package/build/ports/infrastructure/utils.d.ts +14 -0
- package/build/ports/infrastructure/utils.d.ts.map +1 -0
- package/build/ports/infrastructure/utils.js +126 -0
- package/build/ports/infrastructure/utils.js.map +1 -0
- package/build/ports/logger/index.d.ts +3 -0
- package/build/ports/logger/index.d.ts.map +1 -0
- package/build/ports/logger/index.js +32 -0
- package/build/ports/logger/index.js.map +1 -0
- package/build/utils/index.d.ts +35 -0
- package/build/utils/index.d.ts.map +1 -0
- package/build/utils/index.js +190 -0
- package/build/utils/index.js.map +1 -0
- package/package.json +28 -0
- package/src/adapters/cache/index.ts +1 -0
- package/src/adapters/cache/memory/__tests__/memoryCache.test.ts +6 -0
- package/src/adapters/cache/memory/index.ts +142 -0
- package/src/adapters/configuration/__tests__/.env +4 -0
- package/src/adapters/configuration/__tests__/dotEnv.test.ts +38 -0
- package/src/adapters/configuration/dotEnv.ts +33 -0
- package/src/adapters/configuration/index.ts +1 -0
- package/src/adapters/database/index.ts +1 -0
- package/src/adapters/database/memory/__tests__/memoryDb.test.ts +37 -0
- package/src/adapters/database/memory/index.ts +279 -0
- package/src/adapters/endpoints/addAuthUser/index.ts +55 -0
- package/src/adapters/endpoints/endpointValidation/index.ts +26 -0
- package/src/adapters/endpoints/index.ts +4 -0
- package/src/adapters/endpoints/localAuthorization/index.ts +75 -0
- package/src/adapters/endpoints/tcpConsumer/index.ts +69 -0
- package/src/adapters/endpoints/userSession/index.ts +40 -0
- package/src/adapters/eventstore/database.ts +178 -0
- package/src/adapters/eventstore/index.ts +1 -0
- package/src/adapters/infrastructure/index.ts +1 -0
- package/src/adapters/infrastructure/local/index.ts +40 -0
- package/src/adapters/logger/console.ts +42 -0
- package/src/adapters/logger/index.ts +1 -0
- package/src/index.ts +25 -0
- package/src/libraries/modules/fs.ts +88 -0
- package/src/libraries/modules/index.ts +1 -0
- package/src/libraries/openApi/index.ts +1 -0
- package/src/libraries/openApi/pruneUnusedRef.ts +35 -0
- package/src/libraries/tcp/index.ts +98 -0
- package/src/libraries/tcp/types.ts +43 -0
- package/src/libraries/validation/__tests__/validation.test.ts +25 -0
- package/src/libraries/validation/index.ts +48 -0
- package/src/ports/authentication/index.ts +25 -0
- package/src/ports/base.ts +20 -0
- package/src/ports/cache/index.ts +17 -0
- package/src/ports/configuration/__tests__/configurationPort.test.ts +47 -0
- package/src/ports/configuration/args.ts +39 -0
- package/src/ports/configuration/common.ts +12 -0
- package/src/ports/configuration/index.ts +110 -0
- package/src/ports/configuration/localConfig.ts +117 -0
- package/src/ports/database/index.ts +25 -0
- package/src/ports/endpoints/__tests__/endpointsCall.test.ts +20 -0
- package/src/ports/endpoints/__tests__/test-client-library/base.ts +167 -0
- package/src/ports/endpoints/__tests__/test-client-library/index.ts +23 -0
- package/src/ports/endpoints/__tests__/test-client-library/services/service.ts +181 -0
- package/src/ports/endpoints/__tests__/utils.test.ts +54 -0
- package/src/ports/endpoints/index.ts +272 -0
- package/src/ports/endpoints/openApi.ts +191 -0
- package/src/ports/endpoints/utils.ts +31 -0
- package/src/ports/eventsourcing/__tests__/eventhandlers.test.ts +30 -0
- package/src/ports/eventsourcing/__tests__/invariants.test.ts +213 -0
- package/src/ports/eventsourcing/commandHandlers/index.ts +625 -0
- package/src/ports/eventsourcing/commandTemplates/index.ts +2 -0
- package/src/ports/eventsourcing/commandTemplates/multiStream.ts +70 -0
- package/src/ports/eventsourcing/commandTemplates/snapshot.ts +43 -0
- package/src/ports/eventsourcing/eventHandlers/index.ts +429 -0
- package/src/ports/eventsourcing/index.ts +98 -0
- package/src/ports/eventsourcing/invariants/combinators.ts +25 -0
- package/src/ports/eventsourcing/invariants/common.ts +42 -0
- package/src/ports/eventsourcing/invariants/comparisons.ts +90 -0
- package/src/ports/eventsourcing/invariants/index.ts +4 -0
- package/src/ports/eventsourcing/invariants/stateExistance.ts +34 -0
- package/src/ports/eventsourcing/subscriptions/index.ts +1 -0
- package/src/ports/eventsourcing/subscriptions/sseSubscriptions.ts +103 -0
- package/src/ports/eventsourcing/utils/aggregateBuilder.ts +49 -0
- package/src/ports/eventsourcing/utils/commandBuilder.ts +113 -0
- package/src/ports/eventsourcing/utils/eventHandlerBuilder.ts +22 -0
- package/src/ports/eventsourcing/utils/externalSystemBuilder.ts +42 -0
- package/src/ports/eventsourcing/utils/index.ts +25 -0
- package/src/ports/eventsourcing/utils/policyBuilder.ts +31 -0
- package/src/ports/eventsourcing/utils/readmodelBuilder.ts +52 -0
- package/src/ports/eventstore/index.ts +11 -0
- package/src/ports/infrastructure/__tests__/fixture/index.ts +2 -0
- package/src/ports/infrastructure/__tests__/fixture/infrastructureServices.ts +72 -0
- package/src/ports/infrastructure/__tests__/fixture/structureState.ts +254 -0
- package/src/ports/infrastructure/__tests__/infrastructure.test.ts +11 -0
- package/src/ports/infrastructure/index.ts +162 -0
- package/src/ports/infrastructure/utils.ts +130 -0
- package/src/ports/logger/index.ts +34 -0
- package/src/utils/index.ts +186 -0
- package/tsconfig.json +19 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/endpoints/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Endpoint } from '../../../../pv3-types/src/endpoints';
|
|
2
|
+
import { JSONSchema7 } from 'json-schema';
|
|
3
|
+
import { OpenAPIV3_1 } from 'openapi-types';
|
|
4
|
+
import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
|
|
5
|
+
export declare const registerOpenApiSchema: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, name: string, schema: JSONSchema7, tags: string[]) => Record<string, OpenAPIV3_1.SchemaObject>;
|
|
6
|
+
export declare const registerAggregateState: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, name: string, schema: JSONSchema7) => Record<string, OpenAPIV3_1.SchemaObject>;
|
|
7
|
+
export declare const registerCommandSchema: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, name: string, schema: BaseSchema) => Record<string, OpenAPIV3_1.SchemaObject>;
|
|
8
|
+
export declare const registerProducerEventSchemas: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, schema: BaseSchema) => void;
|
|
9
|
+
export declare const registerConsumerEventsSchemas: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, schema: BaseSchema) => void;
|
|
10
|
+
export declare const registerReadmodelSchema: (schemas: Record<string, OpenAPIV3_1.SchemaObject>, schema: JSONSchema7) => void;
|
|
11
|
+
export declare const registerOpenApiEndpoint: (paths: OpenAPIV3_1.PathsObject, endpoint: Endpoint) => OpenAPIV3_1.PathsObject<{}, {}>;
|
|
12
|
+
export declare const generateOpenApiDocument: (paths: OpenAPIV3_1.PathsObject, schemas: Record<string, OpenAPIV3_1.SchemaObject>, packageJson: {
|
|
13
|
+
name: string;
|
|
14
|
+
version: string;
|
|
15
|
+
}, _tags?: string[]) => OpenAPIV3_1.Document;
|
|
16
|
+
//# sourceMappingURL=openApi.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openApi.d.ts","sourceRoot":"","sources":["../../../src/ports/endpoints/openApi.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAiD5D,eAAO,MAAM,qBAAqB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,QAAO,MAAM,UAAU,WAAW,QAAQ,MAAM,EAAE,6CAKzI,CAAC;AAEF,eAAO,MAAM,sBAAsB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,QAAO,MAAM,UAAU,WAAW,6CAE1H,CAAC;AAEF,eAAO,MAAM,qBAAqB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,QAAO,MAAM,UAAU,UAAU,6CAExH,CAAC;AAEF,eAAO,MAAM,4BAA4B,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,UAAU,UAAU,SAKlH,CAAC;AACF,eAAO,MAAM,6BAA6B,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,UAAU,UAAU,SAKnH,CAAC;AAEF,eAAO,MAAM,uBAAuB,YAAc,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,UAAU,WAAW,SAE9G,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAY,YAAY,WAAW,YAAY,QAAQ,oCAwF1F,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAY,YAAY,WAAW,WAAW,OAAO,MAAM,EAAE,YAAY,YAAY,CAAC,eAAe;IAAC,MAAK,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAC,UAAS,MAAM,EAAE,KAAS,oBAehM,CAAC"}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.generateOpenApiDocument = exports.registerOpenApiEndpoint = exports.registerReadmodelSchema = exports.registerConsumerEventsSchemas = exports.registerProducerEventSchemas = exports.registerCommandSchema = exports.registerAggregateState = exports.registerOpenApiSchema = void 0;
|
|
7
|
+
const json_schema_for_openapi_1 = __importDefault(require("json-schema-for-openapi"));
|
|
8
|
+
const ramda_1 = require("ramda");
|
|
9
|
+
const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
|
|
10
|
+
const http_1 = __importDefault(require("http"));
|
|
11
|
+
const convert = (schema) => {
|
|
12
|
+
return json_schema_for_openapi_1.default.convert(schema, 'main').schemas.main;
|
|
13
|
+
};
|
|
14
|
+
const getBodySchema = (schema) => {
|
|
15
|
+
if (schema) {
|
|
16
|
+
if (schema.anyOf) {
|
|
17
|
+
return {
|
|
18
|
+
anyOf: schema.anyOf.map((s) => getBodySchema(s))
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else if (schema.properties?.data) {
|
|
22
|
+
const _schema = (0, ramda_1.clone)(schema);
|
|
23
|
+
_schema.properties.data = getBodySchema(_schema.properties.data);
|
|
24
|
+
return convert(_schema);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return schema.$id
|
|
28
|
+
? { $ref: `#/components/schemas/${schema.$id}` }
|
|
29
|
+
: convert(schema);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const getCommandHandlerResponseSchema = (responseInstance) => {
|
|
34
|
+
//REVIEW: Only place not so abstract: Conditional for Systems and Aggregates
|
|
35
|
+
// READMODELS
|
|
36
|
+
if (responseInstance?.schema?.plain?.oneOf) {
|
|
37
|
+
const ref = `#/components/schemas/${responseInstance.schema.plain.oneOf[0].$id}`;
|
|
38
|
+
responseInstance.schema.plain.oneOf[0] = { $ref: ref };
|
|
39
|
+
responseInstance.schema.plain.oneOf[1].items = { $ref: ref };
|
|
40
|
+
}
|
|
41
|
+
// COMMAND HANDLERS
|
|
42
|
+
if (responseInstance?.schema?.plain?.properties?.state) {
|
|
43
|
+
responseInstance.schema.plain.properties.state = { $ref: `#/components/schemas/${responseInstance?.schema?.plain?.properties?.state.$id}` };
|
|
44
|
+
}
|
|
45
|
+
if (responseInstance?.schema?.plain?.properties?.events)
|
|
46
|
+
for (let index = 0; index < responseInstance.schema.plain.properties.events.properties.data.anyOf.length; index++) {
|
|
47
|
+
const element = responseInstance.schema.plain.properties.events.properties.data.anyOf[index];
|
|
48
|
+
responseInstance.schema.plain.properties.events.properties.data.anyOf[index] = { $ref: `#/components/schemas/${element.$id}` };
|
|
49
|
+
}
|
|
50
|
+
// DEFAULT
|
|
51
|
+
return convert(responseInstance.schema.plain);
|
|
52
|
+
};
|
|
53
|
+
const registerOpenApiSchema = (schemas, name, schema, tags) => {
|
|
54
|
+
const openApiSchema = convert(schema);
|
|
55
|
+
openApiSchema.tags = tags.map((t) => ({ name: t }));
|
|
56
|
+
schemas[name] = openApiSchema;
|
|
57
|
+
return schemas;
|
|
58
|
+
};
|
|
59
|
+
exports.registerOpenApiSchema = registerOpenApiSchema;
|
|
60
|
+
const registerAggregateState = (schemas, name, schema) => {
|
|
61
|
+
return (0, exports.registerOpenApiSchema)(schemas, name, schema, ['AggregateState']);
|
|
62
|
+
};
|
|
63
|
+
exports.registerAggregateState = registerAggregateState;
|
|
64
|
+
const registerCommandSchema = (schemas, name, schema) => {
|
|
65
|
+
return (0, exports.registerOpenApiSchema)(schemas, name, schema.plain, ['Commands']);
|
|
66
|
+
};
|
|
67
|
+
exports.registerCommandSchema = registerCommandSchema;
|
|
68
|
+
const registerProducerEventSchemas = (schemas, schema) => {
|
|
69
|
+
schema.plain.properties.events.properties.data.anyOf?.map((schema) => {
|
|
70
|
+
(0, exports.registerOpenApiSchema)(schemas, schema.$id, schema, ['Events']);
|
|
71
|
+
});
|
|
72
|
+
schema.plain.properties.state && (0, exports.registerAggregateState)(schemas, schema.plain.properties.state.$id, schema.plain.properties.state);
|
|
73
|
+
};
|
|
74
|
+
exports.registerProducerEventSchemas = registerProducerEventSchemas;
|
|
75
|
+
const registerConsumerEventsSchemas = (schemas, schema) => {
|
|
76
|
+
schema.plain.anyOf?.map((s) => {
|
|
77
|
+
const schema = s.properties.data;
|
|
78
|
+
(0, exports.registerOpenApiSchema)(schemas, schema.$id, schema, ['Events']);
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
exports.registerConsumerEventsSchemas = registerConsumerEventsSchemas;
|
|
82
|
+
const registerReadmodelSchema = (schemas, schema) => {
|
|
83
|
+
(0, exports.registerOpenApiSchema)(schemas, schema.$id, schema, ['Readmodel']);
|
|
84
|
+
};
|
|
85
|
+
exports.registerReadmodelSchema = registerReadmodelSchema;
|
|
86
|
+
const registerOpenApiEndpoint = (paths, endpoint) => {
|
|
87
|
+
let endpointParams = [];
|
|
88
|
+
const paramsSchemas = endpoint.schemas?.params?.plain && endpoint.schemas.params.plain.properties;
|
|
89
|
+
if (paramsSchemas) {
|
|
90
|
+
endpointParams = Object.keys(paramsSchemas).reduce((acc, paramSchemaKey) => {
|
|
91
|
+
acc.push({
|
|
92
|
+
in: 'path',
|
|
93
|
+
name: paramSchemaKey,
|
|
94
|
+
description: paramsSchemas[paramSchemaKey].flags?.description || 'No description provided',
|
|
95
|
+
schema: { type: paramsSchemas[paramSchemaKey].type },
|
|
96
|
+
required: paramsSchemas[paramSchemaKey].preferences?.presence || false
|
|
97
|
+
});
|
|
98
|
+
return acc;
|
|
99
|
+
}, endpointParams);
|
|
100
|
+
}
|
|
101
|
+
const querySchemas = endpoint.schemas?.query && endpoint.schemas.query.plain.properties;
|
|
102
|
+
if (querySchemas) {
|
|
103
|
+
endpointParams = Object.keys(querySchemas).reduce((acc, paramSchemaKey) => {
|
|
104
|
+
const schema = convert(querySchemas[paramSchemaKey]);
|
|
105
|
+
acc.push({
|
|
106
|
+
in: 'query',
|
|
107
|
+
name: paramSchemaKey,
|
|
108
|
+
description: querySchemas[paramSchemaKey].flags?.description || 'No description provided',
|
|
109
|
+
schema,
|
|
110
|
+
});
|
|
111
|
+
return acc;
|
|
112
|
+
}, endpointParams);
|
|
113
|
+
}
|
|
114
|
+
const route = endpoint.route;
|
|
115
|
+
paths[route.replace('/:id', '/{id}')] = {
|
|
116
|
+
parameters: endpointParams.length ? endpointParams : [],
|
|
117
|
+
...paths[route.replace('/:id', '/{id}')],
|
|
118
|
+
[(endpoint.method || 'GET').toLocaleLowerCase()]: { operationId: endpoint.name,
|
|
119
|
+
description: endpoint.description,
|
|
120
|
+
tags: [endpoint.module, ...(endpoint.tags || [])],
|
|
121
|
+
...endpoint.method !== 'GET' && endpoint.schemas?.body && {
|
|
122
|
+
requestBody: {
|
|
123
|
+
required: true,
|
|
124
|
+
content: { 'application/json': {
|
|
125
|
+
schema: getBodySchema(endpoint.schemas.body.plain)
|
|
126
|
+
}, ...(!endpoint.multipartProperties ? {} : {
|
|
127
|
+
'application/json': {
|
|
128
|
+
schema: convert(endpoint.schemas.body.plain)
|
|
129
|
+
.then((schema) => {
|
|
130
|
+
for (const prop of endpoint.multipartProperties) {
|
|
131
|
+
delete schema.properties[prop];
|
|
132
|
+
}
|
|
133
|
+
return schema;
|
|
134
|
+
})
|
|
135
|
+
},
|
|
136
|
+
'multipart/form-data': {
|
|
137
|
+
schema: convert(endpoint.schemas.body.plain)
|
|
138
|
+
}
|
|
139
|
+
}) }
|
|
140
|
+
}
|
|
141
|
+
}, responses: {
|
|
142
|
+
...(0, bett3r_utils_1.reduce)((acc, response, status) => {
|
|
143
|
+
if (status === 204) {
|
|
144
|
+
acc[status] = {
|
|
145
|
+
description: 'No Content'
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
acc[status] = {
|
|
150
|
+
description: `Response Status Message: ${http_1.default.STATUS_CODES[status]}`,
|
|
151
|
+
content: {
|
|
152
|
+
'application/json': {
|
|
153
|
+
schema: response.length === 1
|
|
154
|
+
? getCommandHandlerResponseSchema(response[0])
|
|
155
|
+
: {
|
|
156
|
+
anyOf: (response.map(getCommandHandlerResponseSchema))
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
return acc;
|
|
163
|
+
}, {}, { ...endpoint.schemas?.responses, ...endpoint.schemas?.errors }),
|
|
164
|
+
500: { description: 'Internal Server Error' }
|
|
165
|
+
} }
|
|
166
|
+
};
|
|
167
|
+
return paths;
|
|
168
|
+
};
|
|
169
|
+
exports.registerOpenApiEndpoint = registerOpenApiEndpoint;
|
|
170
|
+
const generateOpenApiDocument = (paths, schemas, packageJson, _tags = []) => {
|
|
171
|
+
const tags = _tags.map((0, ramda_1.objOf)('name'));
|
|
172
|
+
return {
|
|
173
|
+
openapi: '3.0.3',
|
|
174
|
+
tags,
|
|
175
|
+
info: {
|
|
176
|
+
title: packageJson.name || 'Title',
|
|
177
|
+
version: packageJson.version || '0.1.1',
|
|
178
|
+
},
|
|
179
|
+
servers: [{ url: 'http://localhost:1984' }],
|
|
180
|
+
components: {
|
|
181
|
+
schemas
|
|
182
|
+
},
|
|
183
|
+
paths
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
exports.generateOpenApiDocument = generateOpenApiDocument;
|
|
187
|
+
//# sourceMappingURL=openApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openApi.js","sourceRoot":"","sources":["../../../src/ports/endpoints/openApi.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type FetchResponse<T = any> = Omit<Response, 'body'> & {
|
|
2
|
+
body: T;
|
|
3
|
+
};
|
|
4
|
+
export declare const parseResponseBody: (type: 'json' | 'text', response: Response, method: 'reject' | 'resolve') => Promise<FetchResponse>;
|
|
5
|
+
export declare const processFetchResponse: <T = any>(response: Response) => Promise<FetchResponse<T>>;
|
|
6
|
+
export declare const getTokenFromHeader: (req: {
|
|
7
|
+
headers: Record<string, string | string[]>;
|
|
8
|
+
}) => string;
|
|
9
|
+
export declare const getTokenFromEndpointParams: (params: {
|
|
10
|
+
context: {
|
|
11
|
+
req: any;
|
|
12
|
+
};
|
|
13
|
+
query: {
|
|
14
|
+
token: string;
|
|
15
|
+
};
|
|
16
|
+
}) => string;
|
|
17
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ports/endpoints/utils.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAC,MAAM,CAAC,GAAG;IAC3D,IAAI,EAAE,CAAC,CAAC;CACT,CAAA;AAED,eAAO,MAAM,iBAAiB,SAAU,MAAM,GAAC,MAAM,YAAY,QAAQ,UAAU,QAAQ,GAAE,SAAS,KAAI,QAAQ,aAAa,CAQ9H,CAAC;AACF,eAAO,MAAM,oBAAoB,sBAAwB,QAAQ,8BAKhE,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAU;IAAC,OAAO,EAAE,OAAO,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;CAAC,WAGpF,CAAC;AAEF,eAAO,MAAM,0BAA0B,WAAa;IAAC,OAAO,EAAC;QAAC,GAAG,EAAC,GAAG,CAAA;KAAC,CAAC;IAAC,KAAK,EAAC;QAAC,KAAK,EAAC,MAAM,CAAA;KAAC,CAAA;CAAC,WAE5F,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTokenFromEndpointParams = exports.getTokenFromHeader = exports.processFetchResponse = exports.parseResponseBody = void 0;
|
|
4
|
+
const ramda_1 = require("ramda");
|
|
5
|
+
const parseResponseBody = (type, response, method) => {
|
|
6
|
+
return response[type]()
|
|
7
|
+
.then(body => {
|
|
8
|
+
return Promise[method]({
|
|
9
|
+
...(0, ramda_1.omit)(['body'], response),
|
|
10
|
+
body
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
exports.parseResponseBody = parseResponseBody;
|
|
15
|
+
const processFetchResponse = (response) => {
|
|
16
|
+
if (response.ok === true)
|
|
17
|
+
return (0, exports.parseResponseBody)('json', response, 'resolve');
|
|
18
|
+
else
|
|
19
|
+
return (0, exports.parseResponseBody)('json', response, 'reject');
|
|
20
|
+
};
|
|
21
|
+
exports.processFetchResponse = processFetchResponse;
|
|
22
|
+
const getTokenFromHeader = (req) => {
|
|
23
|
+
const authHeader = req.headers['authorization'];
|
|
24
|
+
return authHeader && authHeader.split(' ')[1];
|
|
25
|
+
};
|
|
26
|
+
exports.getTokenFromHeader = getTokenFromHeader;
|
|
27
|
+
const getTokenFromEndpointParams = (params) => {
|
|
28
|
+
return params?.context?.req ? (0, exports.getTokenFromHeader)(params.context.req) : params?.query?.token;
|
|
29
|
+
};
|
|
30
|
+
exports.getTokenFromEndpointParams = getTokenFromEndpointParams;
|
|
31
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/ports/endpoints/utils.ts"],"names":[],"mappings":";;;AAAA,iCAA6B;AAOtB,MAAM,iBAAiB,GAAG,CAAE,IAAkB,EAAE,QAAkB,EAAE,MAA2B,EAA2B,EAAE;IACjI,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE;SACpB,IAAI,CAAE,IAAI,CAAC,EAAE;QACZ,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;YACrB,GAAG,IAAA,YAAI,EAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAE;YAC5B,IAAI;SACL,CAA2B,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AARW,QAAA,iBAAiB,qBAQ5B;AACK,MAAM,oBAAoB,GAAG,CAAW,QAAkB,EAA8B,EAAE;IAC/F,IAAK,QAAQ,CAAC,EAAE,KAAK,IAAI;QACvB,OAAO,IAAA,yBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAE,CAAC;;QAExD,OAAO,IAAA,yBAAiB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAE,CAAC;AAC3D,CAAC,CAAC;AALW,QAAA,oBAAoB,wBAK/B;AAEK,MAAM,kBAAkB,GAAG,CAAE,GAAiD,EAAE,EAAE;IACvF,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAW,CAAC;IAC1D,OAAO,UAAU,IAAI,UAAU,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC,CAAC;AAHW,QAAA,kBAAkB,sBAG7B;AAEK,MAAM,0BAA0B,GAAG,CAAE,MAAiD,EAAE,EAAE;IAC/F,OAAO,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,IAAA,0BAAkB,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC;AAChG,CAAC,CAAC;AAFW,QAAA,0BAA0B,8BAErC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventhandlers.test.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/eventhandlers.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
|
|
7
|
+
const eventHandlers_1 = require("../eventHandlers");
|
|
8
|
+
describe('Readmodels helper functions', () => {
|
|
9
|
+
describe('formatFilter', () => {
|
|
10
|
+
const schema = jsonschema_definer_1.default.shape({
|
|
11
|
+
id: jsonschema_definer_1.default.string(),
|
|
12
|
+
string: jsonschema_definer_1.default.string(),
|
|
13
|
+
number: jsonschema_definer_1.default.number(),
|
|
14
|
+
boolean: jsonschema_definer_1.default.boolean()
|
|
15
|
+
});
|
|
16
|
+
it.each([
|
|
17
|
+
['EQ', 'string,eq,someString', [{ field: 'string', op: 'eq', value: 'someString' }]],
|
|
18
|
+
['NEQ', 'boolean,neq,true', [{ field: 'boolean', op: 'neq', value: true }]],
|
|
19
|
+
['LT', 'number,lt,3', [{ field: 'number', op: 'lt', value: 3 }]],
|
|
20
|
+
['GT', 'string,gt,someString,fdsa', [{ field: 'string', op: 'gt', value: 'someString' }]],
|
|
21
|
+
['LTE', 'string,lte,someString', [{ field: 'string', op: 'lte', value: 'someString' }]],
|
|
22
|
+
['GTE', 'string,gte,someString', [{ field: 'string', op: 'gte', value: 'someString' }]],
|
|
23
|
+
['IN', 'string,in,someString,maria', [{ field: 'string', op: 'in', value: ['someString', 'maria'] }]],
|
|
24
|
+
['IN', 'number,in,5,8', [{ field: 'number', op: 'in', value: [5, 8] }]],
|
|
25
|
+
['NIN', 'string,nin,someString,maria', [{ field: 'string', op: 'nin', value: ['someString', 'maria'] }]],
|
|
26
|
+
['NIN', 'boolean,nin,true,false', [{ field: 'boolean', op: 'nin', value: [true, false] }]],
|
|
27
|
+
['EXISTS', 'string,exists', [{ field: 'string', op: 'exists', value: undefined }]],
|
|
28
|
+
['NOTEXISTS', 'string,notExists,asdf', [{ field: 'string', op: 'notExists', value: undefined }]],
|
|
29
|
+
])('transforms the query params of a %s filter', (name, query, expected) => {
|
|
30
|
+
const filter = (0, eventHandlers_1.formatFilter)([query], schema);
|
|
31
|
+
expect(filter).toEqual(expected);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//# sourceMappingURL=eventhandlers.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventhandlers.test.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/eventhandlers.test.ts"],"names":[],"mappings":";;;;;AAAA,wFAA+C;AAC/C,oDAAgD;AAEhD,QAAQ,CAAE,6BAA6B,EAAE,GAAG,EAAE;IAC5C,QAAQ,CAAE,cAAc,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,4BAAC,CAAC,KAAK,CAAC;YACrB,EAAE,EAAE,4BAAC,CAAC,MAAM,EAAE;YACd,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE;YAClB,MAAM,EAAE,4BAAC,CAAC,MAAM,EAAE;YAClB,OAAO,EAAE,4BAAC,CAAC,OAAO,EAAE;SACrB,CAAC,CAAC;QACH,EAAE,CAAC,IAAI,CAAC;YACN,CAAE,IAAI,EAAC,sBAAsB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACpF,CAAE,KAAK,EAAC,kBAAkB,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,CAAE,IAAI,EAAC,aAAa,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAChE,CAAE,IAAI,EAAC,2BAA2B,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACzF,CAAE,KAAK,EAAC,uBAAuB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACvF,CAAE,KAAK,EAAC,uBAAuB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC;YACvF,CAAE,IAAI,EAAC,4BAA4B,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAC,CAAC,CAAC;YACtG,CAAE,IAAI,EAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAE,CAAC,EAAE,CAAC,CAAE,EAAC,CAAC,CAAC;YACxE,CAAE,KAAK,EAAC,6BAA6B,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,YAAY,EAAE,OAAO,CAAE,EAAC,CAAC,CAAC;YACzG,CAAE,KAAK,EAAC,wBAAwB,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAE,IAAI,EAAE,KAAK,CAAE,EAAC,CAAC,CAAC;YAC3F,CAAE,QAAQ,EAAC,eAAe,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAClF,CAAE,WAAW,EAAC,uBAAuB,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;SACjG,CAAC,CAAE,4CAA4C,EAAE,CAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAG,EAAE;YAC5E,MAAM,MAAM,GAAG,IAAA,4BAAY,EAAC,CAAC,KAAK,CAAC,EAAE,MAAM,CAAE,CAAC;YAC9C,MAAM,CAAE,MAAM,CAAE,CAAC,OAAO,CAAE,QAAQ,CAAE,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariants.test.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/invariants.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const invariants_1 = require("../invariants");
|
|
4
|
+
const mockState = {
|
|
5
|
+
commandHandler: { name: 'SomeAggregate' },
|
|
6
|
+
command: {},
|
|
7
|
+
query: {},
|
|
8
|
+
stream: '',
|
|
9
|
+
context: {},
|
|
10
|
+
events: [],
|
|
11
|
+
params: {},
|
|
12
|
+
state: null,
|
|
13
|
+
data: null
|
|
14
|
+
};
|
|
15
|
+
describe('invariants', () => {
|
|
16
|
+
describe('StateExists', () => {
|
|
17
|
+
test('returns the commandHandlerState when state exists', async () => {
|
|
18
|
+
const result = await (0, invariants_1.stateExists)().check({
|
|
19
|
+
...mockState,
|
|
20
|
+
state: { name: 'lucas' },
|
|
21
|
+
});
|
|
22
|
+
expect(result).toEqual({
|
|
23
|
+
...mockState,
|
|
24
|
+
state: { name: 'lucas' },
|
|
25
|
+
});
|
|
26
|
+
});
|
|
27
|
+
test('returns an error when state does not exists', async () => {
|
|
28
|
+
try {
|
|
29
|
+
await (0, invariants_1.stateExists)().check(mockState);
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
expect(err.name).toEqual('State Does Not Exists');
|
|
33
|
+
expect(err.type).toEqual('BadRequestError');
|
|
34
|
+
expect(err.description).toEqual('Expected State in aggregate SomeAggregate');
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('StateNotExists', () => {
|
|
39
|
+
test('returns an Error when state exists', async () => {
|
|
40
|
+
const result = await (0, invariants_1.stateNotExists)().check(mockState);
|
|
41
|
+
expect(result).toEqual(mockState);
|
|
42
|
+
});
|
|
43
|
+
test('returns the commandHandlerState when state does not exists', async () => {
|
|
44
|
+
try {
|
|
45
|
+
await (0, invariants_1.stateNotExists)().check({
|
|
46
|
+
...mockState,
|
|
47
|
+
state: { name: 'lucas' },
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
expect(err.name).toEqual('Unexpected State');
|
|
52
|
+
expect(err.type).toEqual('BadRequestError');
|
|
53
|
+
expect(err.description).toEqual('Unexpected State in aggregate SomeAggregate');
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
describe('ComparePaths', () => {
|
|
58
|
+
test.each([
|
|
59
|
+
{ op: 'eq', state: { prop: 'john' }, data: { prop: 'john' }, path1: '' },
|
|
60
|
+
{ op: 'neq', state: { prop: 'john' }, data: { prop: 'tom' }, path1: '' },
|
|
61
|
+
{ op: 'lt', state: { prop: 3 }, data: { prop: 5 }, path1: '' },
|
|
62
|
+
{ op: 'gt', state: { prop: 5 }, data: { prop: 3 }, path1: '' },
|
|
63
|
+
{ op: 'lte', state: { prop: 3 }, data: { prop: 3 }, path1: '' },
|
|
64
|
+
{ op: 'gte', state: { prop: 5 }, data: { prop: 3 }, path1: '' },
|
|
65
|
+
{ op: 'in', state: { prop: 5 }, data: { prop: [3, 5] }, path1: '' },
|
|
66
|
+
{ op: 'nin', state: { prop: 2 }, data: { prop: [3, 5] }, path1: '' },
|
|
67
|
+
{ op: 'contains', state: { prop: [3, 5] }, data: { prop: 5 }, path1: '' },
|
|
68
|
+
{ op: 'containsKey', state: { prop: [3, 5] }, data: { prop: 'prop' }, path1: 'state' },
|
|
69
|
+
{ op: 'notContains', state: { prop: [3, 5] }, data: { prop: 6 }, path1: '' },
|
|
70
|
+
{ op: 'notContainsKey', state: { prop: [3, 5] }, data: { prop: 'propNot' }, path1: 'state' },
|
|
71
|
+
{ op: 'some', state: { prop: [3, 5] }, data: { prop: [6, 3] }, path1: '' },
|
|
72
|
+
{ op: 'every', state: { prop: [3, 5] }, data: { prop: [5, 3, 2] }, path1: '' },
|
|
73
|
+
{ op: 'exists', state: { prop: 'john' }, data: { prop: undefined }, path1: '' },
|
|
74
|
+
{ op: 'notExists', state: { prop: 'john' }, data: {}, path1: 'state.name' }
|
|
75
|
+
])('returns the commandHandlerState when path comparison is ok for operation $op', async (values) => {
|
|
76
|
+
const result = await (0, invariants_1.comparePaths)({ path1: values.path1 || 'state.prop', path2: 'data.prop', op: values.op }).check({
|
|
77
|
+
...mockState,
|
|
78
|
+
state: values.state,
|
|
79
|
+
data: values.data
|
|
80
|
+
});
|
|
81
|
+
expect(result).toEqual({
|
|
82
|
+
...mockState,
|
|
83
|
+
state: values.state,
|
|
84
|
+
data: values.data
|
|
85
|
+
});
|
|
86
|
+
});
|
|
87
|
+
test('returns an error when ComparePath is not ok', async () => {
|
|
88
|
+
try {
|
|
89
|
+
await (0, invariants_1.comparePaths)({ path1: 'state.name', path2: 'data.name', op: 'eq' }).check({
|
|
90
|
+
...mockState,
|
|
91
|
+
state: { name: 'lucas' },
|
|
92
|
+
data: { name: 'tomas' },
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch (err) {
|
|
96
|
+
expect(err.name).toEqual('Invariant Error');
|
|
97
|
+
expect(err.type).toEqual('BadRequestError');
|
|
98
|
+
expect(err.description).toEqual('Comparison failed on paths for operation eq');
|
|
99
|
+
expect(err.details).toEqual({ path1: 'state.name', path2: 'data.name' });
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
describe('CompareWithValue', () => {
|
|
104
|
+
test.each([
|
|
105
|
+
{ op: 'eq', state: { prop: 'john' }, data: 'john', path1: '' },
|
|
106
|
+
{ op: 'neq', state: { prop: 'john' }, data: 'tom', path1: '' },
|
|
107
|
+
{ op: 'lt', state: { prop: 3 }, data: 5, path1: '' },
|
|
108
|
+
{ op: 'gt', state: { prop: 5 }, data: 3, path1: '' },
|
|
109
|
+
{ op: 'lte', state: { prop: 3 }, data: 3, path1: '' },
|
|
110
|
+
{ op: 'gte', state: { prop: 5 }, data: 3, path1: '' },
|
|
111
|
+
{ op: 'in', state: { prop: 5 }, data: [3, 5], path1: '' },
|
|
112
|
+
{ op: 'nin', state: { prop: 2 }, data: [3, 5], path1: '' },
|
|
113
|
+
{ op: 'contains', state: { prop: [3, 5] }, data: 5, path1: '' },
|
|
114
|
+
{ op: 'notContains', state: { prop: [3, 5] }, data: 6, path1: '' },
|
|
115
|
+
{ op: 'some', state: { prop: [3, 5] }, data: [6, 3], path1: '' },
|
|
116
|
+
{ op: 'every', state: { prop: [3, 5] }, data: [5, 3], path1: '' },
|
|
117
|
+
{ op: 'exists', state: { prop: 'john' }, data: undefined, path1: '' },
|
|
118
|
+
{ op: 'notExists', state: { prop: 'john' }, data: {}, path1: 'state.name' }
|
|
119
|
+
])('returns the commandHandlerState when path comparison is ok for operation $op', async (values) => {
|
|
120
|
+
const result = await (0, invariants_1.compareWithValue)({ path: values.path1 || 'state.prop', value: values.data, op: values.op }).check({
|
|
121
|
+
...mockState,
|
|
122
|
+
state: values.state,
|
|
123
|
+
data: values.data
|
|
124
|
+
});
|
|
125
|
+
expect(result).toEqual({
|
|
126
|
+
...mockState,
|
|
127
|
+
state: values.state,
|
|
128
|
+
data: values.data
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
test('returns an error when CompareValue is not ok', async () => {
|
|
132
|
+
try {
|
|
133
|
+
await (0, invariants_1.compareWithValue)({ path: 'state.name', value: 'tomas', op: 'eq' }).check({
|
|
134
|
+
...mockState,
|
|
135
|
+
state: { name: 'lucas' },
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
catch (err) {
|
|
139
|
+
expect(err.name).toEqual('Invariant Error');
|
|
140
|
+
expect(err.type).toEqual('BadRequestError');
|
|
141
|
+
expect(err.description).toEqual('Comparison failed with value tomas for operation eq');
|
|
142
|
+
expect(err.details).toEqual({ path: 'state.name' });
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
});
|
|
146
|
+
describe('CompareWithReadmodel', () => {
|
|
147
|
+
const mockGet = jest.fn().mockResolvedValue([{ name: 'lucas' }]);
|
|
148
|
+
const mockEndpoints = {
|
|
149
|
+
get: mockGet,
|
|
150
|
+
};
|
|
151
|
+
test('returns the commandHandlerState when readmodel comparison is ok for operation eq', async () => {
|
|
152
|
+
const result = await (0, invariants_1.compareWithReadmodel)({ endpoints: mockEndpoints, readmodelBaseUrl: 'baseUrl',
|
|
153
|
+
url: () => '/someUrl?query=1',
|
|
154
|
+
comparisons: [
|
|
155
|
+
{ path: 'state.name', readmodelPath: 'name', op: 'eq' }
|
|
156
|
+
] }).check({
|
|
157
|
+
...mockState,
|
|
158
|
+
state: { name: 'lucas' }
|
|
159
|
+
});
|
|
160
|
+
expect(result).toEqual({
|
|
161
|
+
...mockState,
|
|
162
|
+
state: { name: 'lucas' }
|
|
163
|
+
});
|
|
164
|
+
expect(mockGet).toHaveBeenCalledWith('baseUrl/someUrl?query=1');
|
|
165
|
+
});
|
|
166
|
+
test('returns an error when CompareWithReadmodel is not ok', async () => {
|
|
167
|
+
try {
|
|
168
|
+
await (0, invariants_1.compareWithReadmodel)({ endpoints: mockEndpoints, readmodelBaseUrl: 'baseUrl',
|
|
169
|
+
url: () => 'someUrl',
|
|
170
|
+
comparisons: [
|
|
171
|
+
{ path: 'state.name', readmodelPath: 'name', op: 'eq' }
|
|
172
|
+
] }).check({
|
|
173
|
+
...mockState,
|
|
174
|
+
state: { name: 'tomas' }
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
catch (err) {
|
|
178
|
+
expect(err.name).toEqual('Invariant Error');
|
|
179
|
+
expect(err.type).toEqual('BadRequestError');
|
|
180
|
+
expect(err.description).toEqual('Comparison failed with readmodel baseUrlsomeUrl');
|
|
181
|
+
expect(err.details).toEqual({ readmodelUrl: 'baseUrlsomeUrl' });
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
describe('OR', () => {
|
|
186
|
+
test('returns true when any of the conditions is ok', async () => {
|
|
187
|
+
const result = await (0, invariants_1.or)((0, invariants_1.compareWithValue)({ path: 'state.name', value: 'lucas', op: 'eq' }), (0, invariants_1.compareWithValue)({ path: 'state.name', value: 'tomas', op: 'eq' })).check({
|
|
188
|
+
...mockState,
|
|
189
|
+
state: { name: 'lucas' },
|
|
190
|
+
});
|
|
191
|
+
expect(result).toEqual({
|
|
192
|
+
...mockState,
|
|
193
|
+
state: { name: 'lucas' },
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
describe('AND', () => {
|
|
198
|
+
test('returns true when any of the conditions is ok', async () => {
|
|
199
|
+
const result = await (0, invariants_1.and)((0, invariants_1.compareWithValue)({ path: 'state.name', value: 'lucas', op: 'eq' }), (0, invariants_1.compareWithValue)({ path: 'state.lastName', value: 'ruiz', op: 'eq' })).check({
|
|
200
|
+
...mockState,
|
|
201
|
+
state: { name: 'lucas', lastName: 'ruiz' },
|
|
202
|
+
});
|
|
203
|
+
expect(result).toEqual({
|
|
204
|
+
...mockState,
|
|
205
|
+
state: { name: 'lucas', lastName: 'ruiz' },
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
});
|
|
209
|
+
});
|
|
210
|
+
//# sourceMappingURL=invariants.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invariants.test.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/__tests__/invariants.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Aggregate, AggregateReducedState, CommandExecutionResponse, CommandHandlerFunction, CommandHandlerState, CommittedEvent, DatabasePort, DatabaseTransaction, EndpointsPort, EventFactory, EventSourcingCommandHandlers, EventStorePort, EventToCommit, InvariantType, LoggerType, ReadStreamOptions, SystemGetQueryType } from '@bett3r-dev/pv3-types';
|
|
2
|
+
export declare const formatAggregateGetQueryParams: (params: SystemGetQueryType) => ReadStreamOptions;
|
|
3
|
+
export declare const getEventReducers: (aggregate: Aggregate, reducedState?: AggregateReducedState) => (event: EventToCommit) => AggregateReducedState;
|
|
4
|
+
export declare const appendEventsToStream: (eventstore: EventStorePort, expectedVersion?: number, transaction?: DatabaseTransaction) => (events: EventToCommit[]) => Promise<CommittedEvent<unknown>[]>;
|
|
5
|
+
export declare const addMetadata: ({ metadata, context, stream }: CommandHandlerState) => (event: ReturnType<EventFactory>) => EventToCommit;
|
|
6
|
+
export declare const prepareEventsToCommit: (handlerState: CommandHandlerState) => Promise<EventToCommit[]>;
|
|
7
|
+
export declare const commitEvents: (eventstore: EventStorePort) => (handlerState: CommandHandlerState, transaction?: DatabaseTransaction) => Promise<CommandHandlerState>;
|
|
8
|
+
export declare const getStreamReducer: (state?: Record<string, any>) => (event: CommittedEvent) => Record<string, any>;
|
|
9
|
+
export declare const loadStream: (eventstore: EventStorePort) => (stream: string, options?: ReadStreamOptions) => Promise<CommittedEvent[] | undefined>;
|
|
10
|
+
export declare const loadAggregateState: (eventstore: EventStorePort) => (system: Aggregate, stream: string, options?: ReadStreamOptions, state?: any) => Promise<AggregateReducedState | null>;
|
|
11
|
+
export declare const domainModelLoad: (database: DatabasePort, collection: string) => (handlerState: CommandHandlerState) => Promise<CommandHandlerState>;
|
|
12
|
+
export declare const domainModelCommit: (eventstore: EventStorePort) => (database: DatabasePort, collection: string) => (handlerState: CommandHandlerState) => Promise<CommandHandlerState>;
|
|
13
|
+
export declare const defaultHandler: (eventsProducedByCommand: string[]) => CommandHandlerFunction;
|
|
14
|
+
export declare const defaultCommit: (eventstore: EventStorePort) => (state: CommandHandlerState) => Promise<CommandHandlerState>;
|
|
15
|
+
export declare const reduceEventsIntoState: (initialState: any, commandHandler: Aggregate, events: EventToCommit[]) => {
|
|
16
|
+
events: EventToCommit[];
|
|
17
|
+
state: any;
|
|
18
|
+
};
|
|
19
|
+
export declare const formatDomainModelCommandResponse: (handlerState: CommandHandlerState) => Promise<CommandExecutionResponse>;
|
|
20
|
+
export declare const formatEventSourcedCommandResponse: (handlerState: CommandHandlerState) => Promise<CommandExecutionResponse>;
|
|
21
|
+
export declare const validateInvariants: (invariants: InvariantType[]) => (state: CommandHandlerState) => Promise<CommandHandlerState<any, any, any, any> | CommandHandlerState>;
|
|
22
|
+
export declare const defaultEventsourcingLoad: (eventstore: EventStorePort) => (handlerState: CommandHandlerState, options?: ReadStreamOptions, state?: any) => Promise<CommandHandlerState>;
|
|
23
|
+
export declare const handleCommand: (handler: CommandHandlerFunction) => (handlerState: CommandHandlerState) => Promise<CommandHandlerState>;
|
|
24
|
+
export declare function createCommandHandlers(logger: LoggerType, endpoint: EndpointsPort, eventstore: EventStorePort): EventSourcingCommandHandlers;
|
|
25
|
+
//# sourceMappingURL=index.d.ts.map
|