@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,83 @@
|
|
|
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.compareWithReadmodel = exports.compareWithValue = exports.comparePaths = void 0;
|
|
7
|
+
const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
|
|
8
|
+
const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
|
|
9
|
+
const pv3_types_1 = require("@bett3r-dev/pv3-types");
|
|
10
|
+
const ramda_1 = require("ramda");
|
|
11
|
+
const _1 = require(".");
|
|
12
|
+
const compareCheck = (val1, val2, op) => {
|
|
13
|
+
return pv3_types_1.filterOpMap[op](val1, val2);
|
|
14
|
+
};
|
|
15
|
+
const comparePaths = (params) => {
|
|
16
|
+
const { path1, path2, op } = params;
|
|
17
|
+
return (0, _1.createInvariant)(async (handlerState) => {
|
|
18
|
+
const path1Value = typeof path1 === 'string' ? (0, ramda_1.path)(path1.split('.'), handlerState) : path1(handlerState);
|
|
19
|
+
const path2Value = path2 && (typeof path2 === 'string' ? (0, ramda_1.path)(path2.split('.'), handlerState) : path2(handlerState));
|
|
20
|
+
return (0, bett3r_utils_1.safePromise)((0, ramda_1.equals)(true), compareCheck(path1Value, path2Value, op)).then(bett3r_utils_1.noop);
|
|
21
|
+
}, {
|
|
22
|
+
name: 'Invariant Error',
|
|
23
|
+
description: `Comparison failed on paths for operation ${op}`,
|
|
24
|
+
details: { path1, path2 },
|
|
25
|
+
type: 'BadRequestError',
|
|
26
|
+
schema: jsonschema_definer_1.default.shape({
|
|
27
|
+
path1: jsonschema_definer_1.default.string(),
|
|
28
|
+
path2: jsonschema_definer_1.default.string(),
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
exports.comparePaths = comparePaths;
|
|
33
|
+
const compareWithValue = (params) => {
|
|
34
|
+
const { path: path1, value, op } = params;
|
|
35
|
+
return (0, _1.createInvariant)(async (handlerState) => {
|
|
36
|
+
const path1Value = (0, ramda_1.path)(path1.split('.'), handlerState);
|
|
37
|
+
return (0, bett3r_utils_1.safePromise)((0, ramda_1.equals)(true), compareCheck(path1Value, value, op)).then(bett3r_utils_1.noop);
|
|
38
|
+
}, {
|
|
39
|
+
name: 'Invariant Error',
|
|
40
|
+
description: `Comparison failed with value ${value} for operation ${op}`,
|
|
41
|
+
details: { path: path1 },
|
|
42
|
+
type: 'BadRequestError',
|
|
43
|
+
schema: jsonschema_definer_1.default.shape({
|
|
44
|
+
path: jsonschema_definer_1.default.string()
|
|
45
|
+
})
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
exports.compareWithValue = compareWithValue;
|
|
49
|
+
const checkReadmodelFilter = (pathValue, readmodelValue, filter) => {
|
|
50
|
+
if (filter.OR) {
|
|
51
|
+
return filter.OR.some((_filter) => checkReadmodelFilter(pathValue, readmodelValue, _filter));
|
|
52
|
+
}
|
|
53
|
+
else if (filter.AND) {
|
|
54
|
+
return filter.AND.every((_filter) => checkReadmodelFilter(pathValue, readmodelValue, _filter));
|
|
55
|
+
}
|
|
56
|
+
return compareCheck(pathValue, readmodelValue, filter.op);
|
|
57
|
+
};
|
|
58
|
+
const compareWithReadmodel = (params) => {
|
|
59
|
+
const { endpoints, readmodelBaseUrl, comparisons, url } = params;
|
|
60
|
+
return (0, _1.createInvariant)(async (handlerState) => {
|
|
61
|
+
const requestPath = `${readmodelBaseUrl}${url(handlerState)}`;
|
|
62
|
+
return endpoints.get(requestPath).then((response) => {
|
|
63
|
+
if (!response || !response.length || !comparisons.every((comparison) => {
|
|
64
|
+
const dataValue = (0, ramda_1.path)(comparison.path.split('.'), handlerState);
|
|
65
|
+
return checkReadmodelFilter(dataValue, (0, ramda_1.path)(comparison.readmodelPath.split('.'), response[0]), comparison);
|
|
66
|
+
}))
|
|
67
|
+
return Promise.reject({
|
|
68
|
+
details: { readmodelUrl: requestPath },
|
|
69
|
+
description: `Comparison failed with readmodel ${requestPath}`
|
|
70
|
+
});
|
|
71
|
+
return Promise.resolve();
|
|
72
|
+
});
|
|
73
|
+
}, {
|
|
74
|
+
name: 'Invariant Error',
|
|
75
|
+
description: 'Invariant Validation Failed',
|
|
76
|
+
type: 'BadRequestError',
|
|
77
|
+
schema: jsonschema_definer_1.default.shape({
|
|
78
|
+
readmodelUrl: jsonschema_definer_1.default.string(),
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
exports.compareWithReadmodel = compareWithReadmodel;
|
|
83
|
+
//# sourceMappingURL=comparisons.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comparisons.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/invariants/comparisons.ts"],"names":[],"mappings":";;;;;;AAAA,2DAA6D;AAC7D,wFAA+C;AAC/C,qDAAmK;AACnK,iCAAqC;AACrC,wBAAoC;AAEpC,MAAM,YAAY,GAAG,CAAE,IAAQ,EAAE,IAAQ,EAAE,EAAe,EAAG,EAAE;IAC7D,OAAO,uBAAW,CAAC,EAAE,CAAC,CAAE,IAAI,EAAE,IAAI,CAAE,CAAC;AACvC,CAAC,CAAC;AAEK,MAAM,YAAY,GAAG,CAAE,MAAgK,EAAiB,EAAE;IAC/M,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IACpC,OAAO,IAAA,kBAAe,EACpB,KAAK,EAAG,YAAiC,EAAG,EAAE;QAC5C,MAAM,UAAU,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,YAAI,EAAE,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAC,CAAC,CAAC,KAAK,CAAE,YAAY,CAAE,CAAC;QAChH,MAAM,UAAU,GAAG,KAAK,IAAI,CAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,YAAI,EAAE,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAC,CAAC,CAAC,KAAK,CAAE,YAAY,CAAE,CAAC,CAAC;QAC5H,OAAO,IAAA,0BAAW,EAAE,IAAA,cAAM,EAAE,IAAI,CAAE,EAAE,YAAY,CAAE,UAAU,EAAE,UAAU,EAAE,EAAE,CAAE,CAAC,CAAC,IAAI,CAAE,mBAAI,CAAE,CAAE;IAChG,CAAC,EAAE;QACD,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,4CAA4C,EAAE,EAAE;QAC7D,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;QACzB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,4BAAC,CAAC,KAAK,CAAC;YACd,KAAK,EAAE,4BAAC,CAAC,MAAM,EAAE;YACjB,KAAK,EAAE,4BAAC,CAAC,MAAM,EAAE;SAClB,CAAC;KACH,CACF,CAAC;AACJ,CAAC,CAAC;AAlBW,QAAA,YAAY,gBAkBvB;AAEK,MAAM,gBAAgB,GAAG,CAAE,MAAuE,EAAiB,EAAE;IAC1H,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,MAAM,CAAC;IAC1C,OAAO,IAAA,kBAAe,EACpB,KAAK,EAAG,YAAiC,EAAG,EAAE;QAC5C,MAAM,UAAU,GAAG,IAAA,YAAI,EAAE,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAC;QAC5D,OAAO,IAAA,0BAAW,EAAE,IAAA,cAAM,EAAE,IAAI,CAAE,EAAE,YAAY,CAAE,UAAU,EAAE,KAAK,EAAE,EAAE,CAAE,CAAC,CAAC,IAAI,CAAE,mBAAI,CAAE,CAAE;IAC3F,CAAC,EAAE;QACD,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,gCAAgC,KAAK,kBAAkB,EAAE,EAAE;QACxE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;QACxB,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,4BAAC,CAAC,KAAK,CAAC;YACd,IAAI,EAAE,4BAAC,CAAC,MAAM,EAAE;SACjB,CAAC;KACH,CACF,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,gBAAgB,oBAgB3B;AAEF,MAAM,oBAAoB,GAAG,CAAE,SAAc,EAAE,cAAkB,EAAE,MAAoC,EAAG,EAAE;IAC1G,IAAK,MAAM,CAAC,EAAE,EAAG;QACf,OAAO,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAE,OAAO,EAAG,EAAE,CAAC,oBAAoB,CAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAE,CAAC,CAAC;KAClG;SACI,IAAK,MAAM,CAAC,GAAG,EAAG;QACrB,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAE,OAAO,EAAG,EAAE,CAAC,oBAAoB,CAAE,SAAS,EAAE,cAAc,EAAE,OAAO,CAAE,CAAC,CAAC;KACpG;IACD,OAAO,YAAY,CAAE,SAAS,EAAE,cAAc,EAAE,MAAM,CAAC,EAAG,CAAE,CAAC;AAC/D,CAAC,CAAC;AAEK,MAAM,oBAAoB,GAAG,CAAE,MAKrC,EACgB,EAAE;IACjB,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;IACjE,OAAO,IAAA,kBAAe,EACpB,KAAK,EAAG,YAAiC,EAAG,EAAE;QAC5C,MAAM,WAAW,GAAG,GAAG,gBAAgB,GAAG,GAAG,CAAE,YAAY,CAAE,EAAE,CAAC;QAChE,OAAO,SAAS,CAAC,GAAG,CAAE,WAAW,CAAE,CAAC,IAAI,CAAC,CAAE,QAAe,EAAE,EAAE;YAC5D,IAAK,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAE,UAAU,EAAG,EAAE;gBACxE,MAAM,SAAS,GAAG,IAAA,YAAI,EAAG,UAAU,CAAC,IAAgB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,YAAY,CAAE,CAAC;gBAClF,OAAO,oBAAoB,CAAE,SAAS,EAAE,IAAA,YAAI,EAAG,UAAU,CAAC,aAAyB,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,UAAU,CAAE,CAAC;YAC/H,CAAC,CAAC;gBACA,OAAO,OAAO,CAAC,MAAM,CAAC;oBACpB,OAAO,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;oBACtC,WAAW,EAAE,oCAAoC,WAAW,EAAE;iBAC/D,CAAC,CAAC;YACL,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,EAAE;QACD,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,6BAA6B;QAC1C,IAAI,EAAE,iBAAiB;QACvB,MAAM,EAAE,4BAAC,CAAC,KAAK,CAAC;YACd,YAAY,EAAE,4BAAC,CAAC,MAAM,EAAE;SACzB,CAAC;KACH,CACF,CAAC;AACJ,CAAC,CAAC;AA/BW,QAAA,oBAAoB,wBA+B/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/invariants/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./common"), exports);
|
|
18
|
+
__exportStar(require("./combinators"), exports);
|
|
19
|
+
__exportStar(require("./comparisons"), exports);
|
|
20
|
+
__exportStar(require("./stateExistance"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/invariants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,gDAA8B;AAC9B,gDAA8B;AAC9B,mDAAiC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InvariantParams, InvariantType } from '@bett3r-dev/pv3-types';
|
|
2
|
+
export declare const stateExists: (params?: InvariantParams) => InvariantType;
|
|
3
|
+
export declare const stateNotExists: (params?: InvariantParams) => InvariantType;
|
|
4
|
+
//# sourceMappingURL=stateExistance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateExistance.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/invariants/stateExistance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGvE,eAAO,MAAM,WAAW,YAAc,eAAe,KAAI,aAcxD,CAAC;AAEF,eAAO,MAAM,cAAc,YAAc,eAAe,KAAI,aAc3D,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stateNotExists = exports.stateExists = void 0;
|
|
4
|
+
const _1 = require(".");
|
|
5
|
+
const stateExists = (params) => {
|
|
6
|
+
return (0, _1.createInvariant)(async (handlerState) => {
|
|
7
|
+
return handlerState.state
|
|
8
|
+
? Promise.resolve()
|
|
9
|
+
: Promise.reject({
|
|
10
|
+
description: `Expected State in aggregate ${handlerState.commandHandler.name}`,
|
|
11
|
+
details: { requested: handlerState.stream }
|
|
12
|
+
});
|
|
13
|
+
}, {
|
|
14
|
+
name: params?.errorName || `State Does Not Exists`,
|
|
15
|
+
type: params?.errorType || 'BadRequestError'
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
exports.stateExists = stateExists;
|
|
19
|
+
const stateNotExists = (params) => {
|
|
20
|
+
return (0, _1.createInvariant)(async (handlerState) => {
|
|
21
|
+
return !handlerState.state
|
|
22
|
+
? Promise.resolve()
|
|
23
|
+
: Promise.reject({
|
|
24
|
+
description: `Unexpected State in aggregate ${handlerState.commandHandler.name}`,
|
|
25
|
+
details: { requested: handlerState.stream },
|
|
26
|
+
});
|
|
27
|
+
}, {
|
|
28
|
+
name: params?.errorName || `Unexpected State`,
|
|
29
|
+
type: params?.errorType || 'BadRequestError'
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
exports.stateNotExists = stateNotExists;
|
|
33
|
+
//# sourceMappingURL=stateExistance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stateExistance.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/invariants/stateExistance.ts"],"names":[],"mappings":";;;AACA,wBAAoC;AAE7B,MAAM,WAAW,GAAG,CAAE,MAAwB,EAAkB,EAAE;IACvE,OAAO,IAAA,kBAAe,EACpB,KAAK,EAAG,YAAY,EAAG,EAAE;QACvB,OAAO,YAAY,CAAC,KAAK;YACvB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;YACnB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACf,WAAW,EAAE,+BAA+B,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE;gBAC9E,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE;aAC5C,CAAC,CAAC;IACP,CAAC,EAAC;QACA,IAAI,EAAE,MAAM,EAAE,SAAS,IAAI,uBAAuB;QAClD,IAAI,EAAE,MAAM,EAAE,SAAS,IAAI,iBAAiB;KAC7C,CACF,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,WAAW,eActB;AAEK,MAAM,cAAc,GAAG,CAAE,MAAwB,EAAkB,EAAE;IAC1E,OAAO,IAAA,kBAAe,EACpB,KAAK,EAAG,YAAY,EAAG,EAAE;QACvB,OAAO,CAAC,YAAY,CAAC,KAAK;YACxB,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE;YACnB,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;gBACf,WAAW,EAAE,iCAAiC,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE;gBAChF,OAAO,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,EAAE;aAC5C,CAAC,CAAC;IACP,CAAC,EAAC;QACA,IAAI,EAAE,MAAM,EAAE,SAAS,IAAI,kBAAkB;QAC7C,IAAI,EAAE,MAAM,EAAE,SAAS,IAAI,iBAAiB;KAC7C,CACF,CAAC;AACJ,CAAC,CAAC;AAdW,QAAA,cAAc,kBAczB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/subscriptions/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./sseSubscriptions"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/subscriptions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sseSubscriptions.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/subscriptions/sseSubscriptions.ts"],"names":[],"mappings":"AACA,OAAO,EAA6J,gCAAgC,EAAoD,MAAM,uBAAuB,CAAC;AAGtR,eAAO,MAAM,gBAAgB,QAAO,gCAiGnC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SSESubscriptions = void 0;
|
|
4
|
+
const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
|
|
5
|
+
const pv3_types_1 = require("@bett3r-dev/pv3-types");
|
|
6
|
+
const crypto_1 = require("crypto");
|
|
7
|
+
const SSESubscriptions = () => {
|
|
8
|
+
const subscriptions = {};
|
|
9
|
+
const readModelSubscriptionCloseEmitter = new pv3_types_1.TypedEventEmitter();
|
|
10
|
+
const send = (logger, id, change, collection, res, data) => {
|
|
11
|
+
logger.log('Sending SSE event in subscription', id, 'for', change.changeType, collection, change.data.id || change.previous.id);
|
|
12
|
+
res.raw.write(`data: ${data}\n\n`);
|
|
13
|
+
};
|
|
14
|
+
const subscriptionIncludes = (s, data) => {
|
|
15
|
+
return (!s.filter ||
|
|
16
|
+
s.filter.every((filter) => pv3_types_1.filterOpMap[filter.op](data[filter.field], filter.value)));
|
|
17
|
+
};
|
|
18
|
+
const notifySubscriptions = (logger, collection) => (change, subscriptionId) => {
|
|
19
|
+
if (!change.data)
|
|
20
|
+
return;
|
|
21
|
+
setImmediate(() => {
|
|
22
|
+
const message = JSON.stringify({
|
|
23
|
+
type: change.changeType,
|
|
24
|
+
data: change.data,
|
|
25
|
+
});
|
|
26
|
+
// if ( subscriptionId ){
|
|
27
|
+
// }
|
|
28
|
+
Object.values(subscriptions).forEach((s) => {
|
|
29
|
+
if ((change.changeType === 'delete' && subscriptionIncludes(s, change.previous))
|
|
30
|
+
|| (['insert', 'update'].includes(change.changeType) && subscriptionIncludes(s, change.data))
|
|
31
|
+
|| (change.changeType === 'update' && subscriptionIncludes(s, change.previous))) {
|
|
32
|
+
send(logger, s.id, change, collection, s.res, message);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
const initSubscription = (req, res, id) => {
|
|
38
|
+
const headers = {
|
|
39
|
+
'Content-Type': 'text/event-stream',
|
|
40
|
+
'Connection': 'keep-alive',
|
|
41
|
+
'Cache-Control': 'no-cache',
|
|
42
|
+
'X-Accel-Buffering': 'no'
|
|
43
|
+
};
|
|
44
|
+
// FIXME: Como puedo detectar que el request viene de nginx?
|
|
45
|
+
if (!req.headers['asdf']) {
|
|
46
|
+
headers['Access-Control-Allow-Origin'] = '*';
|
|
47
|
+
}
|
|
48
|
+
res.raw.writeHead(200, headers);
|
|
49
|
+
res.raw.write(`data: Connected\n\n`);
|
|
50
|
+
req.raw.on('close', () => {
|
|
51
|
+
readModelSubscriptionCloseEmitter.emit('close', id);
|
|
52
|
+
delete subscriptions[id];
|
|
53
|
+
});
|
|
54
|
+
};
|
|
55
|
+
const createSubscription = (res, conditions) => {
|
|
56
|
+
const id = (0, crypto_1.randomUUID)();
|
|
57
|
+
const newSubscription = {
|
|
58
|
+
id: id,
|
|
59
|
+
res,
|
|
60
|
+
filter: conditions.filter || []
|
|
61
|
+
};
|
|
62
|
+
subscriptions[id] = newSubscription;
|
|
63
|
+
return id;
|
|
64
|
+
};
|
|
65
|
+
const startSubscription = (projectionParams, req, res) => {
|
|
66
|
+
if ((0, bett3r_utils_1.ensureArray)(req?.headers?.accept).includes('text/event-stream')) {
|
|
67
|
+
const id = createSubscription(res, projectionParams);
|
|
68
|
+
initSubscription(req, res, id);
|
|
69
|
+
return id;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
type: 'SSE',
|
|
74
|
+
startSubscription,
|
|
75
|
+
notifySubscriptions,
|
|
76
|
+
readModelSubscriptionCloseEmitter,
|
|
77
|
+
send
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
exports.SSESubscriptions = SSESubscriptions;
|
|
81
|
+
//# sourceMappingURL=sseSubscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sseSubscriptions.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/subscriptions/sseSubscriptions.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AACvD,qDAAsR;AACtR,mCAAoC;AAE7B,MAAM,gBAAgB,GAAG,GAAqC,EAAE;IACrE,MAAM,aAAa,GAA0C,EAAE,CAAC;IAChE,MAAM,iCAAiC,GAAG,IAAI,6BAAiB,EAA2C,CAAC;IAE3G,MAAM,IAAI,GAAG,CAAE,MAAiB,EAAE,EAAU,EAAE,MAAqB,EAAC,UAAkB,EAAE,GAAmB,EAAE,IAAY,EAAS,EAAE;QAClI,MAAM,CAAC,GAAG,CAAE,mCAAmC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAE,CAAC;QAClI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,SAAS,IAAI,MAAM,CAAE,CAAC;IACvC,CAAC,CAAC;IAEF,MAAM,oBAAoB,GAAG,CAAE,CAAwB,EAAE,IAAS,EAAG,EAAE;QACrE,OAAO,CACL,CAAC,CAAC,CAAC,MAAM;YACT,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAE,MAAM,EAAG,EAAE,CAC1B,uBAAW,CAAC,MAAM,CAAC,EAAY,CAAC,CAAE,IAAI,CAAC,MAAM,CAAC,KAAe,CAAC,EAAE,MAAM,CAAC,KAAK,CAAE,CAC/E,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAE,MAAkB,EAAE,UAAkB,EAAG,EAAE,CAAC,CAAK,MAAsB,EAAE,cAAuB,EAAG,EAAE;QACjI,IAAK,CAAC,MAAM,CAAC,IAAI;YAAG,OAAO;QAC3B,YAAY,CAAC,GAAG,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC7B,IAAI,EAAE,MAAM,CAAC,UAAU;gBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;aACM,CAAE,CAAC;YAC5B,yBAAyB;YAEzB,IAAI;YACJ,MAAM,CAAC,MAAM,CAAE,aAAa,CAAE,CAAC,OAAO,CAAC,CAAE,CAAC,EAAG,EAAE;gBAC7C,IAAI,CAAE,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,oBAAoB,CAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAE,CAAC;uBAC9E,CAAC,CAAE,QAAQ,EAAE,QAAQ,CAAE,CAAC,QAAQ,CAAE,MAAM,CAAC,UAAU,CAAE,IAAI,oBAAoB,CAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAE,CAAC;uBAChG,CAAE,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,oBAAoB,CAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAE,CAAC,EACnF;oBACC,IAAI,CAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAE,CAAC;iBAC1D;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CACvB,GAAkB,EAClB,GAAmB,EACnB,EAAU,EACJ,EAAE;QACR,MAAM,OAAO,GAAG;YACd,cAAc,EAAE,mBAAmB;YACnC,YAAY,EAAE,YAAY;YAC1B,eAAe,EAAE,UAAU;YAC3B,mBAAmB,EAAE,IAAI;SAC1B,CAAC;QAEF,4DAA4D;QAC5D,IAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAC;YACxB,OAAO,CAAC,6BAA6B,CAAC,GAAG,GAAG,CAAC;SAC9C;QAED,GAAG,CAAC,GAAG,CAAC,SAAS,CAAE,GAAG,EAAE,OAAO,CAAE,CAAC;QAClC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAE,qBAAqB,CAAE,CAAC;QACvC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAE,OAAO,EAAE,GAAG,EAAE;YACxB,iCAAiC,CAAC,IAAI,CAAE,OAAO,EAAE,EAAE,CAAE,CAAC;YACtD,OAAO,aAAa,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,kBAAkB,GAAG,CACzB,GAAmB,EACnB,UAAwC,EAChC,EAAE;QACV,MAAM,EAAE,GAAG,IAAA,mBAAU,GAAE,CAAC;QACxB,MAAM,eAAe,GAA0B;YAC7C,EAAE,EAAE,EAAE;YACN,GAAG;YACH,MAAM,EAAE,UAAU,CAAC,MAAM,IAAI,EAAE;SAChC,CAAC;QACF,aAAa,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC;QACpC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,gBAA8C,EAC9C,GAAkB,EAClB,GAAmB,EACnB,EAAE;QACF,IAAK,IAAA,0BAAW,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAE,CAAC,QAAQ,CAAE,mBAAmB,CAAE,EAAC;YACvE,MAAM,EAAE,GAAG,kBAAkB,CAAE,GAAG,EAAE,gBAAgB,CAAE,CAAC;YACvD,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,CAAC;YACjC,OAAO,EAAE,CAAC;SACX;IACH,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,KAAK;QACX,iBAAiB;QACjB,mBAAmB;QACnB,iCAAiC;QACjC,IAAI;KACL,CAAC;AACJ,CAAC,CAAC;AAjGW,QAAA,gBAAgB,oBAiG3B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
import { Aggregate, AggregateBuilderType, EventFactory } from '@bett3r-dev/pv3-types';
|
|
3
|
+
export declare const AggregateBuilder: <Model, EVENTS extends Record<string, EventFactory>>(schema: BaseSchema<Model, true, Readonly<import("@bett3r-dev/jsonschema-definer/dist/base").BaseJsonSchema>>, events: EVENTS, aggregate?: Aggregate) => AggregateBuilderType<Model, EVENTS>;
|
|
4
|
+
//# sourceMappingURL=aggregateBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregateBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/aggregateBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,oBAAoB,EAAyB,YAAY,EAAiB,MAAM,uBAAuB,CAAC;AAG5H,eAAO,MAAM,gBAAgB,kPA4C5B,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateBuilder = void 0;
|
|
4
|
+
const externalSystemBuilder_1 = require("./externalSystemBuilder");
|
|
5
|
+
const AggregateBuilder = (schema, events, aggregate = {}) => {
|
|
6
|
+
const { system, ...builder } = (0, externalSystemBuilder_1.ExternalSystemBuilder)(events, schema, aggregate);
|
|
7
|
+
aggregate = system;
|
|
8
|
+
aggregate.schema = schema;
|
|
9
|
+
aggregate.initialValue = () => undefined;
|
|
10
|
+
const notEventsourced = (database, collection) => {
|
|
11
|
+
aggregate.isEventsourced = false;
|
|
12
|
+
aggregate.outboxDatabase = database;
|
|
13
|
+
aggregate.outboxCollection = collection;
|
|
14
|
+
return _builder;
|
|
15
|
+
};
|
|
16
|
+
const withCommandTemplate = (command) => {
|
|
17
|
+
builder.withCommandTemplate(command);
|
|
18
|
+
return _builder;
|
|
19
|
+
};
|
|
20
|
+
const initialValue = (init) => {
|
|
21
|
+
aggregate.initialValue = init;
|
|
22
|
+
return {
|
|
23
|
+
withEventReducers: withEventReducers(events),
|
|
24
|
+
withCommands: _builder.withCommands
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
const withEventReducers = (events) => (eventReducers) => {
|
|
28
|
+
aggregate.eventReducers = eventReducers;
|
|
29
|
+
return {
|
|
30
|
+
withCommands: _builder.withCommands
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const _builder = {
|
|
34
|
+
...builder,
|
|
35
|
+
notEventsourced,
|
|
36
|
+
withCommandTemplate,
|
|
37
|
+
withEventReducers: withEventReducers(events),
|
|
38
|
+
withCommands: builder.withCommands,
|
|
39
|
+
initialValue,
|
|
40
|
+
system: aggregate
|
|
41
|
+
};
|
|
42
|
+
return _builder;
|
|
43
|
+
};
|
|
44
|
+
exports.AggregateBuilder = AggregateBuilder;
|
|
45
|
+
//# sourceMappingURL=aggregateBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregateBuilder.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/aggregateBuilder.ts"],"names":[],"mappings":";;;AAEA,mEAAgE;AAEzD,MAAM,gBAAgB,GAAG,CAAsD,MAAyB,EAAE,MAAc,EAAE,YAAY,EAAe,EAAwC,EAAE;IACpM,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,GAAG,IAAA,6CAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAE,CAAC;IAClF,SAAS,GAAG,MAAmB,CAAC;IAChC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC;IAEzC,MAAM,eAAe,GAAG,CAAE,QAAsB,EAAE,UAAkB,EAAG,EAAE;QACvE,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC;QACjC,SAAS,CAAC,cAAc,GAAG,QAAQ,CAAC;QACpC,SAAS,CAAC,gBAAgB,GAAG,UAAU,CAAC;QACxC,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAAE,OAAgB,EAAG,EAAE;QACjD,OAAO,CAAC,mBAAmB,CAAE,OAAO,CAAE,CAAC;QACvC,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,CAAE,IAAiD,EAAE,EAAE;QAC1E,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC;QAC9B,OAAO;YACL,iBAAiB,EAAE,iBAAiB,CAAE,MAAM,CAAE;YAC9C,YAAY,EAAE,QAAQ,CAAC,YAAY;SACpC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAA+C,MAAc,EAAG,EAAE,CAAC,CAAE,aAA2C,EAAG,EAAE;QAC7I,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;QACxC,OAAO;YACL,YAAY,EAAE,QAAQ,CAAC,YAAY;SACpC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG;QACf,GAAG,OAAO;QACV,eAAe;QACf,mBAAmB;QACnB,iBAAiB,EAAE,iBAAiB,CAAE,MAAM,CAAE;QAC9C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY;QACZ,MAAM,EAAE,SAAS;KAClB,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AA5CW,QAAA,gBAAgB,oBA4C3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/commandBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAuJ,MAAM,uBAAuB,CAAC;AAEzN,eAAO,MAAM,cAAc,qBAAuB,KAAK,OAAO,EAAE,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC,KAAI,kBA6GnG,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommandBuilder = void 0;
|
|
4
|
+
const CommandBuilder = (systemLevelInit) => (init) => {
|
|
5
|
+
const command = {
|
|
6
|
+
...systemLevelInit,
|
|
7
|
+
...init
|
|
8
|
+
};
|
|
9
|
+
const withDescription = (description) => {
|
|
10
|
+
command.description = description;
|
|
11
|
+
return builder;
|
|
12
|
+
};
|
|
13
|
+
const allowingActors = (actors) => {
|
|
14
|
+
command.actors = actors;
|
|
15
|
+
return builder;
|
|
16
|
+
};
|
|
17
|
+
const withDataPropertyId = (dataPath) => {
|
|
18
|
+
command.dataPropertyId = dataPath;
|
|
19
|
+
return builder;
|
|
20
|
+
};
|
|
21
|
+
const withSchema = (schema) => {
|
|
22
|
+
command.schema = schema;
|
|
23
|
+
return {
|
|
24
|
+
withInvariant: withInvariant(schema),
|
|
25
|
+
produces: produces(schema),
|
|
26
|
+
withResultFormatFunction: withResultFormatFunction(schema),
|
|
27
|
+
withLoadFunction: withLoadFunction(schema),
|
|
28
|
+
withCommitFunction: withCommitFunction(schema),
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
const withInvariant = (schema) => (invariant) => {
|
|
32
|
+
command.events = [...(command.events || []), ...(invariant.events || [])];
|
|
33
|
+
command.invariants = [...(command.invariants || []), invariant];
|
|
34
|
+
return {
|
|
35
|
+
withInvariant: withInvariant(schema),
|
|
36
|
+
produces: produces(schema),
|
|
37
|
+
withLoadFunction: withLoadFunction(schema),
|
|
38
|
+
withCommitFunction: withCommitFunction(schema),
|
|
39
|
+
withResultFormatFunction: withResultFormatFunction(schema),
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
const withLoadFunction = (schema) => (loadFunction) => {
|
|
43
|
+
command.load = loadFunction;
|
|
44
|
+
return {
|
|
45
|
+
withLoadFunction: withLoadFunction(schema),
|
|
46
|
+
withCommitFunction: withCommitFunction(schema),
|
|
47
|
+
withResultFormatFunction: withResultFormatFunction(schema),
|
|
48
|
+
produces: produces(schema),
|
|
49
|
+
withInvariant: withInvariant(schema),
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
const withCommitFunction = (schema) => (commitFunction) => {
|
|
53
|
+
command.commit = commitFunction;
|
|
54
|
+
return {
|
|
55
|
+
withLoadFunction: withLoadFunction(schema),
|
|
56
|
+
withCommitFunction: withCommitFunction(schema),
|
|
57
|
+
withResultFormatFunction: withResultFormatFunction(schema),
|
|
58
|
+
produces: produces(schema),
|
|
59
|
+
withInvariant: withInvariant(schema),
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
const withResultFormatFunction = (schema) => (resultFormatFunction) => {
|
|
63
|
+
command.format = resultFormatFunction;
|
|
64
|
+
return {
|
|
65
|
+
withLoadFunction: withLoadFunction(schema),
|
|
66
|
+
withCommitFunction: withCommitFunction(schema),
|
|
67
|
+
withResultFormatFunction: withResultFormatFunction(schema),
|
|
68
|
+
produces: produces(schema),
|
|
69
|
+
withInvariant: withInvariant(schema),
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
const produces = (schema) => (events) => {
|
|
73
|
+
command.events = [...(command.events || []), ...events];
|
|
74
|
+
return {
|
|
75
|
+
withHandler: withHandler(events)(schema),
|
|
76
|
+
withErrorHandler: withErrorHandler(events)(schema),
|
|
77
|
+
build: () => command
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
const withHandler = (events) => (schema) => (handler) => {
|
|
81
|
+
command.handler = handler;
|
|
82
|
+
return {
|
|
83
|
+
withErrorHandler: withErrorHandler(events)(schema),
|
|
84
|
+
build: () => command
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
const withErrorHandler = (events) => (schema) => (onErrorHandler) => {
|
|
88
|
+
command.onErrorHandler = onErrorHandler;
|
|
89
|
+
return {
|
|
90
|
+
build: () => command
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
const builder = {
|
|
94
|
+
withSchema,
|
|
95
|
+
withDataPropertyId,
|
|
96
|
+
allowingActors,
|
|
97
|
+
withDescription,
|
|
98
|
+
};
|
|
99
|
+
return builder;
|
|
100
|
+
};
|
|
101
|
+
exports.CommandBuilder = CommandBuilder;
|
|
102
|
+
//# sourceMappingURL=commandBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandBuilder.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/commandBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { EventFactory, EventHandler, EventHandlerBuilderType, Policy, ReadModel } from '@bett3r-dev/pv3-types';
|
|
2
|
+
export declare const eventHandlerBuilder: <EVENTS extends Record<string, EventFactory>, T extends Policy | ReadModel>(eventHandler?: EventHandler<EVENTS>) => EventHandlerBuilderType<EVENTS, T>;
|
|
3
|
+
//# sourceMappingURL=eventHandlerBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHandlerBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/eventHandlerBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAA8C,YAAY,EAAE,YAAY,EAAE,uBAAuB,EAAkB,MAAM,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE3K,eAAO,MAAM,mBAAmB,wJAkB/B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eventHandlerBuilder = void 0;
|
|
4
|
+
const eventHandlerBuilder = (eventHandler = {}) => {
|
|
5
|
+
const withErrorHandlers = (errorHandlers) => {
|
|
6
|
+
eventHandler.errorHandlers = errorHandlers;
|
|
7
|
+
return { build };
|
|
8
|
+
};
|
|
9
|
+
const build = () => eventHandler;
|
|
10
|
+
// const build = () => eventHandler;
|
|
11
|
+
const builder = {
|
|
12
|
+
eventHandler,
|
|
13
|
+
withErrorHandlers,
|
|
14
|
+
build
|
|
15
|
+
};
|
|
16
|
+
return builder;
|
|
17
|
+
};
|
|
18
|
+
exports.eventHandlerBuilder = eventHandlerBuilder;
|
|
19
|
+
//# sourceMappingURL=eventHandlerBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventHandlerBuilder.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/eventHandlerBuilder.ts"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,GAAG,CAA6E,eAAe,EAA0B,EAAuC,EAAE;IAChM,MAAM,iBAAiB,GAAG,CAAE,aAE3B,EAAE,EAAE;QACH,YAAY,CAAC,aAAa,GAAG,aAAa,CAAC;QAC3C,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,YAAwM,CAAC;IAC7N,oCAAoC;IAEpC,MAAM,OAAO,GAAuC;QAClD,YAAY;QACZ,iBAAiB;QACjB,KAAK;KACN,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAlBW,QAAA,mBAAmB,uBAkB9B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
import { EventFactory, ExternalSystemBuilderType, System } from '@bett3r-dev/pv3-types';
|
|
3
|
+
export declare const ExternalSystemBuilder: <Model, EVENTS extends Record<string, EventFactory>>(events: EVENTS, schema?: BaseSchema<Model, true, Readonly<import("@bett3r-dev/jsonschema-definer/dist/base").BaseJsonSchema>> | undefined, system?: System) => ExternalSystemBuilderType<Model, EVENTS>;
|
|
4
|
+
//# sourceMappingURL=externalSystemBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externalSystemBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/externalSystemBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAwC,YAAY,EAAE,yBAAyB,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAK9H,eAAO,MAAM,qBAAqB,8PAmCjC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExternalSystemBuilder = void 0;
|
|
4
|
+
const utils_1 = require("../../../utils");
|
|
5
|
+
const commandBuilder_1 = require("./commandBuilder");
|
|
6
|
+
const _1 = require(".");
|
|
7
|
+
const ExternalSystemBuilder = (events, schema, system = {}) => {
|
|
8
|
+
const isAggregate = !!schema;
|
|
9
|
+
const name = (0, _1.getStackTrace)();
|
|
10
|
+
system = { ...system, name, events, isAggregate, isStreamable: isAggregate || system.isStreamable };
|
|
11
|
+
system.isEventsourced = true;
|
|
12
|
+
const withCommandTemplate = (command) => {
|
|
13
|
+
system.templateCommand = command;
|
|
14
|
+
return builder;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* This is the last function that builds the aggregate, the last function you'll call
|
|
18
|
+
*/
|
|
19
|
+
const withCommands = (commands) => {
|
|
20
|
+
system.commands = commands({
|
|
21
|
+
commandBuilder: (0, commandBuilder_1.CommandBuilder)(system.templateCommand),
|
|
22
|
+
createEvent: (0, utils_1.createEvent)(system),
|
|
23
|
+
});
|
|
24
|
+
return system;
|
|
25
|
+
};
|
|
26
|
+
const builder = {
|
|
27
|
+
system,
|
|
28
|
+
withCommandTemplate,
|
|
29
|
+
withCommands
|
|
30
|
+
};
|
|
31
|
+
return builder;
|
|
32
|
+
};
|
|
33
|
+
exports.ExternalSystemBuilder = ExternalSystemBuilder;
|
|
34
|
+
//# sourceMappingURL=externalSystemBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"externalSystemBuilder.js","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/externalSystemBuilder.ts"],"names":[],"mappings":";;;AAEA,0CAA6C;AAC7C,qDAAkD;AAClD,wBAAkC;AAE3B,MAAM,qBAAqB,GAAG,CAAsD,MAAc,EAAE,MAA0B,EAAE,SAAS,EAAY,EAA6C,EAAE;IACzM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAA,gBAAa,GAAE,CAAC;IAC7B,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,IAAI,MAAM,CAAC,YAAY,EAAY,CAAC;IAC9G,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IAE7B,MAAM,mBAAmB,GAAG,CAAE,OAAgB,EAAG,EAAE;QACjD,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF;;OAEG;IACH,MAAM,YAAY,GAAG,CAGjB,QAGU,EAA6B,EAAE;QAC3C,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACzB,cAAc,EAAE,IAAA,+BAAc,EAAE,MAAM,CAAC,eAAe,CAAE;YACxD,WAAW,EAAE,IAAA,mBAAW,EAAuB,MAAM,CAAE;SACxD,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,MAAM;QACN,mBAAmB;QACnB,YAAY;KACb,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAnCW,QAAA,qBAAqB,yBAmChC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/// <reference types="ramda/node_modules/ts-toolbelt" />
|
|
2
|
+
export * from './aggregateBuilder';
|
|
3
|
+
export * from './commandBuilder';
|
|
4
|
+
export * from './externalSystemBuilder';
|
|
5
|
+
export * from './policyBuilder';
|
|
6
|
+
export * from './readmodelBuilder';
|
|
7
|
+
export declare const formatStream: import("Function/Curry").Curry<(aggreateOrSystem: string, id: string) => string>;
|
|
8
|
+
export declare const getIdFromStream: (stream: string) => string;
|
|
9
|
+
export declare const extractIdFromEventStream: (event: {
|
|
10
|
+
stream: string;
|
|
11
|
+
}) => string;
|
|
12
|
+
export declare const getStackTrace: () => string;
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ports/eventsourcing/utils/index.ts"],"names":[],"mappings":";AAGA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AAEnC,eAAO,MAAM,YAAY,oDAA4B,MAAM,MAAM,MAAM,YAAmD,CAAC;AAC3H,eAAO,MAAM,eAAe,WAAa,MAAM,WAA+C,CAAC;AAC/F,eAAO,MAAM,wBAAwB,UAAY;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,WAAoC,CAAC;AAGtG,eAAO,MAAM,aAAa,cAUzB,CAAC"}
|