@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,258 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.structureState = void 0;
|
|
4
|
+
exports.structureState = {
|
|
5
|
+
state: {
|
|
6
|
+
brokers: {
|
|
7
|
+
'10.0.0.13': {
|
|
8
|
+
subscriptions: {
|
|
9
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
10
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-0': {
|
|
11
|
+
host: '10.0.0.13',
|
|
12
|
+
index: 0,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
16
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-0': {
|
|
17
|
+
host: '10.0.0.13',
|
|
18
|
+
index: 0,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
'10.0.0.14': {
|
|
24
|
+
subscriptions: {
|
|
25
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
26
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-1': {
|
|
27
|
+
host: '10.0.0.14',
|
|
28
|
+
index: 1,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
32
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-1': {
|
|
33
|
+
host: '10.0.0.14',
|
|
34
|
+
index: 1,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
'10.0.0.15': {
|
|
40
|
+
subscriptions: {
|
|
41
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
42
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-2': {
|
|
43
|
+
host: '10.0.0.15',
|
|
44
|
+
index: 2,
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
48
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-2': {
|
|
49
|
+
host: '10.0.0.15',
|
|
50
|
+
index: 2,
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
'10.0.0.16': {
|
|
56
|
+
subscriptions: {
|
|
57
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
58
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-3': {
|
|
59
|
+
host: '10.0.0.16',
|
|
60
|
+
index: 3,
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
64
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-3': {
|
|
65
|
+
host: '10.0.0.16',
|
|
66
|
+
index: 3,
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
'10.0.0.18': {
|
|
72
|
+
subscriptions: {
|
|
73
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
74
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-4': {
|
|
75
|
+
host: '10.0.0.18',
|
|
76
|
+
index: 4,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
80
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-4': {
|
|
81
|
+
host: '10.0.0.18',
|
|
82
|
+
index: 4,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
'10.0.0.19': {
|
|
88
|
+
subscriptions: {
|
|
89
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
90
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-5': {
|
|
91
|
+
host: '10.0.0.19',
|
|
92
|
+
index: 5,
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
96
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-5': {
|
|
97
|
+
host: '10.0.0.19',
|
|
98
|
+
index: 5,
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
'10.0.0.20': {
|
|
104
|
+
subscriptions: {
|
|
105
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
106
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-6': {
|
|
107
|
+
host: '10.0.0.20',
|
|
108
|
+
index: 6,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
112
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-6': {
|
|
113
|
+
host: '10.0.0.20',
|
|
114
|
+
index: 6,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
'10.0.0.21': {
|
|
120
|
+
subscriptions: {
|
|
121
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
122
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel-7': {
|
|
123
|
+
host: '10.0.0.21',
|
|
124
|
+
index: 7,
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
128
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel-7': {
|
|
129
|
+
host: '10.0.0.21',
|
|
130
|
+
index: 7,
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
services: {
|
|
137
|
+
service0: {
|
|
138
|
+
port: 2013,
|
|
139
|
+
consumes: {
|
|
140
|
+
OperationCountByColorReadModel: [
|
|
141
|
+
'DividedBy_17',
|
|
142
|
+
'MultipliedBy_18',
|
|
143
|
+
'MultipliedBy_2',
|
|
144
|
+
'MultipliedBy_5',
|
|
145
|
+
'Subtracted_50',
|
|
146
|
+
'Added_20',
|
|
147
|
+
'Added_7',
|
|
148
|
+
'Added_3',
|
|
149
|
+
'DividedBy_3',
|
|
150
|
+
],
|
|
151
|
+
TotalByColorReadModel: [
|
|
152
|
+
'MultipliedBy_18',
|
|
153
|
+
'DividedBy_17',
|
|
154
|
+
'MultipliedBy_5',
|
|
155
|
+
'MultipliedBy_2',
|
|
156
|
+
'Subtracted_50',
|
|
157
|
+
'Added_20',
|
|
158
|
+
'Added_7',
|
|
159
|
+
'Added_3',
|
|
160
|
+
'DividedBy_3',
|
|
161
|
+
],
|
|
162
|
+
},
|
|
163
|
+
produces: {
|
|
164
|
+
ArithmeticOperationsAggregate: [
|
|
165
|
+
'DividedBy_17',
|
|
166
|
+
'Added_20',
|
|
167
|
+
'MultipliedBy_5',
|
|
168
|
+
'Added_3',
|
|
169
|
+
'Added_7',
|
|
170
|
+
'MultipliedBy_2',
|
|
171
|
+
'Subtracted_50',
|
|
172
|
+
'DividedBy_3',
|
|
173
|
+
'MultipliedBy_18',
|
|
174
|
+
],
|
|
175
|
+
},
|
|
176
|
+
isBroker: true,
|
|
177
|
+
isService: true,
|
|
178
|
+
endpoints: [
|
|
179
|
+
'GET:/arithmetic-operations-aggregate/{id}',
|
|
180
|
+
'GET:/arithmetic-operations-aggregate/{id}/stream',
|
|
181
|
+
'POST:/arithmetic-operations-aggregate/{id}/divide-by-17',
|
|
182
|
+
'POST:/arithmetic-operations-aggregate/{id}/add-20',
|
|
183
|
+
'POST:/arithmetic-operations-aggregate/{id}/multiply-by-5',
|
|
184
|
+
'POST:/arithmetic-operations-aggregate/{id}/add-3',
|
|
185
|
+
'POST:/arithmetic-operations-aggregate/{id}/add-7',
|
|
186
|
+
'POST:/arithmetic-operations-aggregate/{id}/multiply-by-2',
|
|
187
|
+
'POST:/arithmetic-operations-aggregate/{id}/subtract-50',
|
|
188
|
+
'POST:/arithmetic-operations-aggregate/{id}/divide-by-3',
|
|
189
|
+
'POST:/arithmetic-operations-aggregate/{id}/multiply-by-18',
|
|
190
|
+
'POST:/operation-count-by-color-read-model',
|
|
191
|
+
'GET:/operation-count-by-color-read-model/{id}?',
|
|
192
|
+
'POST:/total-by-color-read-model',
|
|
193
|
+
'GET:/total-by-color-read-model/{id}?',
|
|
194
|
+
],
|
|
195
|
+
possibleSubscriptions: [
|
|
196
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel',
|
|
197
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel',
|
|
198
|
+
],
|
|
199
|
+
hosts: [
|
|
200
|
+
'10.0.0.13',
|
|
201
|
+
'10.0.0.14',
|
|
202
|
+
'10.0.0.15',
|
|
203
|
+
'10.0.0.16',
|
|
204
|
+
'10.0.0.18',
|
|
205
|
+
'10.0.0.19',
|
|
206
|
+
'10.0.0.20',
|
|
207
|
+
'10.0.0.21',
|
|
208
|
+
],
|
|
209
|
+
},
|
|
210
|
+
},
|
|
211
|
+
subscriptions: {
|
|
212
|
+
'ArithmeticOperationsAggregate-OperationCountByColorReadModel': {
|
|
213
|
+
consumer: 'OperationCountByColorReadModel',
|
|
214
|
+
endpoint: '/operation-count-by-color-read-model',
|
|
215
|
+
events: [
|
|
216
|
+
'DividedBy_17',
|
|
217
|
+
'MultipliedBy_18',
|
|
218
|
+
'MultipliedBy_2',
|
|
219
|
+
'MultipliedBy_5',
|
|
220
|
+
'Subtracted_50',
|
|
221
|
+
'Added_20',
|
|
222
|
+
'Added_7',
|
|
223
|
+
'Added_3',
|
|
224
|
+
'DividedBy_3',
|
|
225
|
+
],
|
|
226
|
+
producer: 'ArithmeticOperationsAggregate',
|
|
227
|
+
dataSplits: {
|
|
228
|
+
manual: [],
|
|
229
|
+
custom: [],
|
|
230
|
+
automatic: [],
|
|
231
|
+
},
|
|
232
|
+
},
|
|
233
|
+
'ArithmeticOperationsAggregate-TotalByColorReadModel': {
|
|
234
|
+
consumer: 'OperationCountByColorReadModel',
|
|
235
|
+
endpoint: '/total-by-color-read-model',
|
|
236
|
+
events: [
|
|
237
|
+
'MultipliedBy_18',
|
|
238
|
+
'DividedBy_17',
|
|
239
|
+
'MultipliedBy_5',
|
|
240
|
+
'MultipliedBy_2',
|
|
241
|
+
'Subtracted_50',
|
|
242
|
+
'Added_20',
|
|
243
|
+
'Added_7',
|
|
244
|
+
'Added_3',
|
|
245
|
+
'DividedBy_3',
|
|
246
|
+
],
|
|
247
|
+
producer: 'ArithmeticOperationsAggregate',
|
|
248
|
+
dataSplits: {
|
|
249
|
+
manual: [],
|
|
250
|
+
custom: [],
|
|
251
|
+
automatic: [],
|
|
252
|
+
},
|
|
253
|
+
},
|
|
254
|
+
},
|
|
255
|
+
},
|
|
256
|
+
expectedVersion: 8,
|
|
257
|
+
};
|
|
258
|
+
//# sourceMappingURL=structureState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structureState.js","sourceRoot":"","sources":["../../../../../src/ports/infrastructure/__tests__/fixture/structureState.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infrastructure.test.d.ts","sourceRoot":"","sources":["../../../../src/ports/infrastructure/__tests__/infrastructure.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
describe('Infrastructure Port', () => {
|
|
4
|
+
describe('getStructureDifferences', () => {
|
|
5
|
+
it('works', async () => {
|
|
6
|
+
// const result = getStructureDifferences( structureState, infrastructureServices );
|
|
7
|
+
// result;//?
|
|
8
|
+
});
|
|
9
|
+
});
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=infrastructure.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"infrastructure.test.js","sourceRoot":"","sources":["../../../../src/ports/infrastructure/__tests__/infrastructure.test.ts"],"names":[],"mappings":";;AAGA,QAAQ,CAAE,qBAAqB,EAAE,GAAG,EAAE;IACpC,QAAQ,CAAE,yBAAyB,EAAE,GAAG,EAAE;QACxC,EAAE,CAAE,OAAO,EAAE,KAAK,IAAI,EAAE;YACtB,oFAAoF;YACpF,aAAa;QACf,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { EnvironmentServiceType, InfrastructureAdapterType, InfrastructureConfigType, InfrastructurePortType, InfrastructureServiceType, Ports } from '@bett3r-dev/pv3-types';
|
|
2
|
+
import { ClusterStructureType, StructureState } from '@bett3r-dev/pv3-types';
|
|
3
|
+
export { getThisServiceIps } from './utils';
|
|
4
|
+
export declare const getStructureDifferences: (structureState: StructureState, infra: InfrastructureServiceType[]) => {
|
|
5
|
+
upsertHosts: {
|
|
6
|
+
port?: number | undefined;
|
|
7
|
+
channel?: "http" | "tcp" | "local" | undefined;
|
|
8
|
+
isExternal?: boolean | undefined;
|
|
9
|
+
possibleSubscriptions?: string[] | undefined;
|
|
10
|
+
possibleModules?: {
|
|
11
|
+
[x: string]: string[];
|
|
12
|
+
} | undefined;
|
|
13
|
+
isService?: boolean | undefined;
|
|
14
|
+
isBroker?: boolean | undefined;
|
|
15
|
+
endpoints?: string[] | undefined;
|
|
16
|
+
openApiEndpoint?: string | undefined;
|
|
17
|
+
produces?: {
|
|
18
|
+
[x: string]: string[];
|
|
19
|
+
} | undefined;
|
|
20
|
+
consumes?: {
|
|
21
|
+
[x: string]: string[];
|
|
22
|
+
} | undefined;
|
|
23
|
+
host: string;
|
|
24
|
+
doNotRebalance?: boolean | undefined;
|
|
25
|
+
service: string;
|
|
26
|
+
}[];
|
|
27
|
+
removeHosts: string[];
|
|
28
|
+
subscriptions: {
|
|
29
|
+
[id: string]: {
|
|
30
|
+
events?: string[] | undefined;
|
|
31
|
+
endpoint?: string | undefined;
|
|
32
|
+
load?: number | undefined;
|
|
33
|
+
eventstore?: string | undefined;
|
|
34
|
+
manualDataSplits?: number | undefined;
|
|
35
|
+
mirrorDataSplitsWithConsumers?: boolean | undefined;
|
|
36
|
+
customDataSplits?: string[][] | undefined;
|
|
37
|
+
streams?: string | undefined;
|
|
38
|
+
retryAfterSecs?: number | undefined;
|
|
39
|
+
retryableStatuses?: number[] | undefined;
|
|
40
|
+
dataSplits?: {
|
|
41
|
+
custom?: (string | undefined)[] | undefined;
|
|
42
|
+
manual?: (string | undefined)[] | undefined;
|
|
43
|
+
automatic?: (string | undefined)[] | undefined;
|
|
44
|
+
} | undefined;
|
|
45
|
+
producers: string[];
|
|
46
|
+
module: string;
|
|
47
|
+
consumer: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
export declare const getInfrastructureServicesDefinition: (infraServices: EnvironmentServiceType[]) => Promise<InfrastructureServiceType[]>;
|
|
52
|
+
export declare const InfrastructurePort: (ports: Pick<Ports, 'logger' | 'endpoints' | 'configuration'>, config: InfrastructureConfigType, structure: ClusterStructureType, adapter?: InfrastructureAdapterType) => InfrastructurePortType;
|
|
53
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ports/infrastructure/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,yBAAyB,EAAiC,KAAK,EAAwB,MAAM,uBAAuB,CAAC;AAInO,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAyB,MAAM,uBAAuB,CAAC;AAGpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,uBAAuB,mBAAqB,cAAc,SAAS,yBAAyB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyB1G,CAAC;AA8CF,eAAO,MAAM,mCAAmC,kBAA0B,sBAAsB,EAAE,KAAG,QAAQ,yBAAyB,EAAE,CAUvI,CAAC;AAGF,eAAO,MAAM,kBAAkB,UAAY,KAAK,KAAK,EAAE,QAAQ,GAAC,WAAW,GAAC,eAAe,CAAC,UAAU,wBAAwB,aAAa,oBAAoB,YAAY,yBAAyB,KAAI,sBAkEvM,CAAC"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InfrastructurePort = exports.getInfrastructureServicesDefinition = exports.getStructureDifferences = exports.getThisServiceIps = void 0;
|
|
4
|
+
const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
|
|
5
|
+
const ramda_1 = require("ramda");
|
|
6
|
+
const infrastructure_1 = require("../../adapters/infrastructure");
|
|
7
|
+
const base_1 = require("../base");
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
var utils_2 = require("./utils");
|
|
10
|
+
Object.defineProperty(exports, "getThisServiceIps", { enumerable: true, get: function () { return utils_2.getThisServiceIps; } });
|
|
11
|
+
const getStructureDifferences = (structureState, infra) => {
|
|
12
|
+
const serviceHostsSet = new Set(Object.values(structureState.state.services).reduce((hosts, service) => hosts.concat(service.hosts), []));
|
|
13
|
+
const upsertHosts = [];
|
|
14
|
+
const infraServices = infra.reduce((services, service) => {
|
|
15
|
+
if (service.isService)
|
|
16
|
+
services[service.service] = service;
|
|
17
|
+
return services;
|
|
18
|
+
}, {});
|
|
19
|
+
const { subscriptions, servicesSubscriptions } = (0, utils_1.discoverSubscriptions)(infraServices);
|
|
20
|
+
for (const service of infra) {
|
|
21
|
+
for (const { host } of service.instances) {
|
|
22
|
+
serviceHostsSet.delete(host);
|
|
23
|
+
upsertHosts.push({
|
|
24
|
+
...(0, ramda_1.omit)(['instances'], service),
|
|
25
|
+
host,
|
|
26
|
+
possibleSubscriptions: servicesSubscriptions[service.service]
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
const removeHosts = Array.from(serviceHostsSet);
|
|
31
|
+
return {
|
|
32
|
+
upsertHosts,
|
|
33
|
+
removeHosts,
|
|
34
|
+
subscriptions
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
exports.getStructureDifferences = getStructureDifferences;
|
|
38
|
+
const checkInfrastructureIntegrity = (structure) => async (infra, retryBackoff = 100) => {
|
|
39
|
+
const structureState = await structure.getCurrentState();
|
|
40
|
+
const differences = (0, exports.getStructureDifferences)(structureState, infra);
|
|
41
|
+
console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ STRUCTURE DIFFERENCE Version', structureState.version, differences.upsertHosts.map(x => x.host));
|
|
42
|
+
await structure.SetStructure(differences, structureState.version)
|
|
43
|
+
.catch((e) => {
|
|
44
|
+
if (e.type !== 'ConcurrencyError')
|
|
45
|
+
throw e;
|
|
46
|
+
else {
|
|
47
|
+
console.log('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ CONCURRENCY ERROR', e);
|
|
48
|
+
return new Promise((resolve) => {
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
checkInfrastructureIntegrity(structure)(infra, retryBackoff * 2)
|
|
51
|
+
.then(resolve);
|
|
52
|
+
}, retryBackoff);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return infra;
|
|
57
|
+
};
|
|
58
|
+
const getCurrentServiceInfo = (services) => {
|
|
59
|
+
const ips = (0, utils_1.getThisServiceIps)();
|
|
60
|
+
const brokerHosts = services
|
|
61
|
+
.reduce((brokers, service, index) => {
|
|
62
|
+
if (!service.isBroker)
|
|
63
|
+
return brokers;
|
|
64
|
+
brokers.push(...service.instances.map((0, ramda_1.assoc)('serviceIndex', index)));
|
|
65
|
+
return brokers;
|
|
66
|
+
}, [])
|
|
67
|
+
.sort((a, b) => a.timeRunning - b.timeRunning);
|
|
68
|
+
const hostIndex = brokerHosts
|
|
69
|
+
.findIndex(host => ips.includes(host.host));
|
|
70
|
+
const brokerHost = brokerHosts[hostIndex];
|
|
71
|
+
if (hostIndex === -1)
|
|
72
|
+
throw new Error('Service not found in infrastructure');
|
|
73
|
+
return {
|
|
74
|
+
...services[brokerHost.serviceIndex],
|
|
75
|
+
host: brokerHost.host,
|
|
76
|
+
leadershipRank: hostIndex,
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
const getInfrastructureServicesDefinition = async (infraServices) => {
|
|
80
|
+
return infraServices.map((service) => {
|
|
81
|
+
return {
|
|
82
|
+
service: service.service,
|
|
83
|
+
port: service.port,
|
|
84
|
+
instances: service.instances,
|
|
85
|
+
openApiEndpoint: service.openApiEndpoint,
|
|
86
|
+
...(service.openApi ? (0, utils_1.getServiceDefinition)(service.openApi) : {})
|
|
87
|
+
};
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
exports.getInfrastructureServicesDefinition = getInfrastructureServicesDefinition;
|
|
91
|
+
const InfrastructurePort = (ports, config, structure, adapter) => {
|
|
92
|
+
let servicesOpenApiDocumentation = {};
|
|
93
|
+
let _adapter;
|
|
94
|
+
let thisService;
|
|
95
|
+
let adapters = (0, ramda_1.append)((0, infrastructure_1.LocalInfrastructure)(ports), adapter ? [adapter] : []);
|
|
96
|
+
const assignOpenApiDocumentation = (0, ramda_1.compose)((services) => servicesOpenApiDocumentation = services, (0, bett3r_utils_1.reduce)((docs, serviceDefinition) => (0, ramda_1.assoc)(serviceDefinition.service, serviceDefinition.openApi, docs), {}));
|
|
97
|
+
const setOpenApiDocs = (0, ramda_1.converge)((x, _) => x, [ramda_1.identity, assignOpenApiDocumentation]);
|
|
98
|
+
const start = async () => {
|
|
99
|
+
const _adapters = await Promise.allSettled(adapters.map(adapter => adapter.start()));
|
|
100
|
+
const index = _adapters.findIndex(adapter => adapter.status === 'fulfilled');
|
|
101
|
+
_adapter = adapters[index];
|
|
102
|
+
const checkInfrastructure = checkInfrastructureIntegrity(structure);
|
|
103
|
+
const infraServices = await _adapter.getServices().then(setOpenApiDocs);
|
|
104
|
+
const infraServicesDefinition = await (0, exports.getInfrastructureServicesDefinition)(infraServices);
|
|
105
|
+
thisService = getCurrentServiceInfo(infraServicesDefinition);
|
|
106
|
+
_adapter.listenForInfrastructureChanges((action, info) => {
|
|
107
|
+
console.log('LOS SERVICES QUE RECIBI --------- ', info.instances.map(i => i.host));
|
|
108
|
+
if (action === 'create' && info.openApi.tags?.find(tag => tag.name === 'pv3.outbox')) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
//TODO: Crear una mejor manera de manejar el exponential backoff. y operaciones idempotentes
|
|
112
|
+
setTimeout(() => {
|
|
113
|
+
_adapter.getServices()
|
|
114
|
+
// .then(( s ) => {
|
|
115
|
+
// const service = s.find( s=> s.service === info.service );
|
|
116
|
+
// if ( service?.openApi.tags?.find( tag => tag.name === 'pv3.outbox' )){
|
|
117
|
+
// return Promise.reject( 'IgnoringOutboxService' );
|
|
118
|
+
// }
|
|
119
|
+
// // return s.filter(( s ) => {
|
|
120
|
+
// // info.service === s.service
|
|
121
|
+
// // return s.openApi.tags?.find(( tag ) => tag.name !== 'pv3.outbox' );
|
|
122
|
+
// // });
|
|
123
|
+
// })
|
|
124
|
+
.then(x => { console.log('LOS SERVICES QUE VOY A AGREGAR --------- ', x.map(s => s.instances.map(i => i.host))); return x; })
|
|
125
|
+
.then(setOpenApiDocs)
|
|
126
|
+
.then(exports.getInfrastructureServicesDefinition)
|
|
127
|
+
.then(checkInfrastructure);
|
|
128
|
+
}, (config.infrastructureLeaderRandomBackoff || 1000) * (thisService.leadershipRank || 0));
|
|
129
|
+
});
|
|
130
|
+
await checkInfrastructure(infraServicesDefinition);
|
|
131
|
+
environments.isStarted = true;
|
|
132
|
+
environments.emitter.emit('started');
|
|
133
|
+
};
|
|
134
|
+
const environments = (0, base_1.createPort)({
|
|
135
|
+
_adapter: () => _adapter,
|
|
136
|
+
name: 'Infrastructure',
|
|
137
|
+
getServicesOpenApiDocumentation: () => servicesOpenApiDocumentation,
|
|
138
|
+
getThisServiceInfo: () => thisService,
|
|
139
|
+
getServices: () => _adapter.getServices(),
|
|
140
|
+
scaleService: (service, replicasCount) => _adapter.scaleService(service, replicasCount),
|
|
141
|
+
listenForInfrastructureChanges: (callback) => _adapter.listenForInfrastructureChanges(callback),
|
|
142
|
+
reloadLoadBalancer: () => _adapter.reloadLoadBalancer(),
|
|
143
|
+
start,
|
|
144
|
+
stop: async () => _adapter.stop()
|
|
145
|
+
});
|
|
146
|
+
return environments;
|
|
147
|
+
};
|
|
148
|
+
exports.InfrastructurePort = InfrastructurePort;
|
|
149
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ports/infrastructure/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { StructureServiceType, StructureSubscriptionType } from '@bett3r-dev/pv3-types';
|
|
2
|
+
import { OpenAPIV3_1 } from 'openapi-types';
|
|
3
|
+
export type DiscoveredSubscriptions = {
|
|
4
|
+
subscriptions: {
|
|
5
|
+
[id: string]: StructureSubscriptionType;
|
|
6
|
+
};
|
|
7
|
+
servicesSubscriptions: {
|
|
8
|
+
[host: string]: string[];
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare const getServiceDefinition: (swagger: OpenAPIV3_1.Document) => StructureServiceType;
|
|
12
|
+
export declare const discoverSubscriptions: (services: Record<string, Omit<StructureServiceType, 'hosts'>>) => DiscoveredSubscriptions;
|
|
13
|
+
export declare const getThisServiceIps: () => string[];
|
|
14
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/ports/infrastructure/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAExF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE;QACb,CAAC,EAAE,EAAE,MAAM,GAAG,yBAAyB,CAAC;KACzC,CAAC;IACF,qBAAqB,EAAE;QACrB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KACzB,CAAA;CACF,CAAA;AAWD,eAAO,MAAM,oBAAoB,YAAc,oBAAoB,KAAI,oBA8CtE,CAAC;AAEF,eAAO,MAAM,qBAAqB,aAAe,OAAO,MAAM,EAAE,KAAK,oBAAoB,EAAE,OAAO,CAAC,CAAC,KAAI,uBA+CvG,CAAC;AAEF,eAAO,MAAM,iBAAiB,gBAO7B,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
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.getThisServiceIps = exports.discoverSubscriptions = exports.getServiceDefinition = void 0;
|
|
7
|
+
const bett3r_utils_1 = require("@bett3r-dev/bett3r-utils");
|
|
8
|
+
const change_case_1 = require("change-case");
|
|
9
|
+
const os_1 = __importDefault(require("os"));
|
|
10
|
+
const ramda_1 = require("ramda");
|
|
11
|
+
const extractPathEndpoints = (path, url) => {
|
|
12
|
+
return ['post', 'get', 'put', 'delete', 'patch', 'head', 'options']
|
|
13
|
+
.reduce((endpoints, method) => {
|
|
14
|
+
if (path[method])
|
|
15
|
+
endpoints.push(`${method.toUpperCase()}:${url}`);
|
|
16
|
+
return endpoints;
|
|
17
|
+
}, []);
|
|
18
|
+
};
|
|
19
|
+
const getServiceDefinition = (swagger) => {
|
|
20
|
+
const producerTags = ['aggregate', 'system'];
|
|
21
|
+
const postSchemaProperty = 'responses';
|
|
22
|
+
const definition = Object.keys(swagger?.paths || {}).reduce((definition, url) => {
|
|
23
|
+
const path = swagger.paths[url];
|
|
24
|
+
if (path?.post?.tags?.some(t => producerTags.includes(t))) {
|
|
25
|
+
const postSchemaBase = path.post[postSchemaProperty];
|
|
26
|
+
const postSchema = postSchemaProperty === 'responses' ? postSchemaBase[200] : postSchemaBase;
|
|
27
|
+
const schema = postSchema.content['application/json'].schema;
|
|
28
|
+
let events;
|
|
29
|
+
if (schema.anyOf) {
|
|
30
|
+
events = schema.anyOf
|
|
31
|
+
.map(s => {
|
|
32
|
+
const ref = s.properties.data;
|
|
33
|
+
return ref.$ref.slice(ref.$ref.lastIndexOf('/') + 1);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
else if (schema.properties?.events?.properties?.data?.anyOf) {
|
|
37
|
+
events = schema.properties?.events?.properties?.data?.anyOf
|
|
38
|
+
.map(ref => {
|
|
39
|
+
return ref.$ref.slice(ref.$ref.lastIndexOf('/') + 1);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
events = [];
|
|
44
|
+
}
|
|
45
|
+
const handler = path.post?.tags?.filter(t => !producerTags.includes(t))[0];
|
|
46
|
+
definition.produces[handler] = [...(definition.produces[handler] || []), ...events];
|
|
47
|
+
}
|
|
48
|
+
else if (path?.post?.tags?.some(t => ['policy', 'readmodel'].includes(t))) {
|
|
49
|
+
const events = path.post.requestBody.content['application/json'].schema.anyOf.map(s => {
|
|
50
|
+
const ref = s.properties.data;
|
|
51
|
+
return ref.$ref.slice(ref.$ref.lastIndexOf('/') + 1);
|
|
52
|
+
});
|
|
53
|
+
const handler = path.post?.tags?.filter(t => !['policy', 'readmodel'].includes(t))[0];
|
|
54
|
+
definition.consumes[handler] = events;
|
|
55
|
+
}
|
|
56
|
+
return {
|
|
57
|
+
...definition,
|
|
58
|
+
endpoints: [...definition.endpoints, ...extractPathEndpoints(path, url)]
|
|
59
|
+
};
|
|
60
|
+
}, { consumes: {}, produces: {}, endpoints: [] });
|
|
61
|
+
return {
|
|
62
|
+
...(0, ramda_1.omit)(['endpoints'], definition),
|
|
63
|
+
isBroker: swagger.tags?.some(t => t.name === 'pv3.outbox'),
|
|
64
|
+
isService: swagger.tags?.some(t => t.name === 'pv3.service'),
|
|
65
|
+
possibleModules: JSON.parse((swagger.tags?.find(t => t.name.startsWith('modules')) || { name: 'modules={}' }).name.split('modules=')[1]),
|
|
66
|
+
endpoints: definition.endpoints
|
|
67
|
+
};
|
|
68
|
+
};
|
|
69
|
+
exports.getServiceDefinition = getServiceDefinition;
|
|
70
|
+
const discoverSubscriptions = (services) => {
|
|
71
|
+
const eventProducerMap = (0, bett3r_utils_1.reduce)((eventMap, { produces }, service) => {
|
|
72
|
+
const serviceMap = (0, bett3r_utils_1.reduce)((eventMap, events, system) => {
|
|
73
|
+
events.forEach(e => {
|
|
74
|
+
eventMap[e] = { system, service: service };
|
|
75
|
+
});
|
|
76
|
+
return eventMap;
|
|
77
|
+
}, {}, produces);
|
|
78
|
+
return { ...eventMap, ...serviceMap };
|
|
79
|
+
}, {}, services);
|
|
80
|
+
return (0, bett3r_utils_1.reduce)((maps, { consumes, possibleModules }, service) => {
|
|
81
|
+
const artifactModuleMap = Object.entries(possibleModules || {}).reduce((acc, [module, artifacts]) => {
|
|
82
|
+
artifacts.forEach((artifact) => {
|
|
83
|
+
acc[artifact.split('.')[0]] = module;
|
|
84
|
+
});
|
|
85
|
+
return acc;
|
|
86
|
+
}, {});
|
|
87
|
+
const serviceSubscriptions = !consumes ? {} : (0, bett3r_utils_1.reduce)((subscriptions, events, eventHandler) => {
|
|
88
|
+
const kebabHandler = (0, change_case_1.paramCase)(eventHandler);
|
|
89
|
+
const subscription = (0, bett3r_utils_1.reduce)((subscription, event) => {
|
|
90
|
+
const producer = eventProducerMap[event];
|
|
91
|
+
if (producer) {
|
|
92
|
+
subscription.events.push(event);
|
|
93
|
+
subscription.producers.add(producer.system);
|
|
94
|
+
}
|
|
95
|
+
return subscription;
|
|
96
|
+
}, { events: [], producers: new Set() }, events);
|
|
97
|
+
const id = `${subscription.producers.size > 1 ? 'multi' : Array.from(subscription.producers)[0]}-${eventHandler}`;
|
|
98
|
+
subscriptions[id] = {
|
|
99
|
+
consumer: eventHandler,
|
|
100
|
+
module: artifactModuleMap[eventHandler],
|
|
101
|
+
producers: Array.from(subscription.producers),
|
|
102
|
+
endpoint: `/${kebabHandler}`,
|
|
103
|
+
events: subscription.events,
|
|
104
|
+
};
|
|
105
|
+
return subscriptions;
|
|
106
|
+
}, {}, consumes);
|
|
107
|
+
return {
|
|
108
|
+
subscriptions: {
|
|
109
|
+
...maps.subscriptions, ...serviceSubscriptions
|
|
110
|
+
},
|
|
111
|
+
servicesSubscriptions: { ...maps.servicesSubscriptions, [service]: Object.keys(serviceSubscriptions) }
|
|
112
|
+
};
|
|
113
|
+
}, { subscriptions: {}, servicesSubscriptions: {} }, services);
|
|
114
|
+
};
|
|
115
|
+
exports.discoverSubscriptions = discoverSubscriptions;
|
|
116
|
+
const getThisServiceIps = () => {
|
|
117
|
+
const interfaces = os_1.default.networkInterfaces();
|
|
118
|
+
return Object.values(interfaces).reduce((ips, interfaceInfo) => {
|
|
119
|
+
if (interfaceInfo)
|
|
120
|
+
return ips.concat(interfaceInfo.filter(info => info.family === 'IPv4' && info.internal === false).map(info => info.address));
|
|
121
|
+
else
|
|
122
|
+
return ips;
|
|
123
|
+
}, []);
|
|
124
|
+
};
|
|
125
|
+
exports.getThisServiceIps = getThisServiceIps;
|
|
126
|
+
//# sourceMappingURL=utils.js.map
|