@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,241 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MemoryDb = 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 ramda_1 = require("ramda");
|
|
8
|
+
const database_1 = require("../../../ports/database");
|
|
9
|
+
const utils_1 = require("../../../utils");
|
|
10
|
+
const MemoryDb = () => {
|
|
11
|
+
let _db = {};
|
|
12
|
+
const changeEmitters = {};
|
|
13
|
+
const uniqueIndexes = {};
|
|
14
|
+
const start = async () => {
|
|
15
|
+
};
|
|
16
|
+
const stop = async () => {
|
|
17
|
+
};
|
|
18
|
+
const getCollection = (collection) => {
|
|
19
|
+
const coll = _db[collection] ||= {};
|
|
20
|
+
const validateIndex = (data) => {
|
|
21
|
+
if (!uniqueIndexes[collection])
|
|
22
|
+
return;
|
|
23
|
+
const duplicatedIndex = Object.keys(uniqueIndexes[collection]).find(index => {
|
|
24
|
+
const properties = uniqueIndexes[collection][index];
|
|
25
|
+
const recordComparison = Object.values(coll).find((d) => {
|
|
26
|
+
const valueComparison = properties.every(p => {
|
|
27
|
+
return (0, ramda_1.path)(p.split('.'), d) === (0, ramda_1.path)(p.split('.'), data);
|
|
28
|
+
});
|
|
29
|
+
return valueComparison;
|
|
30
|
+
});
|
|
31
|
+
return recordComparison;
|
|
32
|
+
});
|
|
33
|
+
return duplicatedIndex && {
|
|
34
|
+
index: duplicatedIndex,
|
|
35
|
+
properties: uniqueIndexes[collection][duplicatedIndex]
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
const readById = async (id) => {
|
|
39
|
+
return coll[id] || null;
|
|
40
|
+
};
|
|
41
|
+
const filterData = (results, filter) => {
|
|
42
|
+
const shouldFilter = (row, filter) => filter.every(f => {
|
|
43
|
+
if (f.AND) {
|
|
44
|
+
return f.AND.every(andFilters => shouldFilter(row, [andFilters]));
|
|
45
|
+
}
|
|
46
|
+
if (f.OR) {
|
|
47
|
+
return f.OR.some(orFilters => shouldFilter(row, [orFilters]));
|
|
48
|
+
}
|
|
49
|
+
return pv3_types_1.filterOpMap[f.op]((0, ramda_1.path)([f.field], row), f.value);
|
|
50
|
+
});
|
|
51
|
+
return results.filter(row => shouldFilter(row, filter));
|
|
52
|
+
};
|
|
53
|
+
const hashId = (id) => {
|
|
54
|
+
let intId = Number(id);
|
|
55
|
+
if (!isNaN(intId))
|
|
56
|
+
return intId;
|
|
57
|
+
const factor = 2;
|
|
58
|
+
let hash = 0;
|
|
59
|
+
for (let i = 0; i < id.length; i++) {
|
|
60
|
+
hash = hash * factor + id.charCodeAt(i);
|
|
61
|
+
}
|
|
62
|
+
return Math.abs(hash);
|
|
63
|
+
};
|
|
64
|
+
const query = async (queryParams) => {
|
|
65
|
+
const { limit, filter, sort, after, select } = queryParams;
|
|
66
|
+
let result = Object.values(coll);
|
|
67
|
+
if (after) {
|
|
68
|
+
const sortedKeys = Object.keys(coll).map((key) => [key, hashId(key)])
|
|
69
|
+
.sort((a, b) => a[1] - b[1])
|
|
70
|
+
.map((a) => a[0]);
|
|
71
|
+
const index = sortedKeys.indexOf(after.toString());
|
|
72
|
+
result = (0, ramda_1.props)(sortedKeys.slice(index + 1), coll);
|
|
73
|
+
}
|
|
74
|
+
result = !filter ? result : filterData(result, filter);
|
|
75
|
+
result = !sort ? result : sort
|
|
76
|
+
.reduce((result, sort) => {
|
|
77
|
+
return result.sort((a, b) => {
|
|
78
|
+
return sort.direction === 'desc'
|
|
79
|
+
? (a[sort.field] < b[sort.field] ? 1 : -1)
|
|
80
|
+
: (a[sort.field] >= b[sort.field] ? 1 : -1);
|
|
81
|
+
});
|
|
82
|
+
}, result);
|
|
83
|
+
result = !limit ? result : result.slice(0, limit);
|
|
84
|
+
result = !select ? result : result.map((0, ramda_1.pick)((0, bett3r_utils_1.ensureArray)(select)));
|
|
85
|
+
return result;
|
|
86
|
+
};
|
|
87
|
+
const forEach = async (queryParams, callback) => {
|
|
88
|
+
let shouldStop = false;
|
|
89
|
+
const stop = () => {
|
|
90
|
+
shouldStop = true;
|
|
91
|
+
};
|
|
92
|
+
await query(queryParams)
|
|
93
|
+
.then(async (records) => {
|
|
94
|
+
for (let index = 0; index < records.length; index++) {
|
|
95
|
+
const element = records[index];
|
|
96
|
+
if (shouldStop)
|
|
97
|
+
return;
|
|
98
|
+
await callback(element, stop);
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
const upsert = async (id, data) => {
|
|
103
|
+
const _data = (0, ramda_1.clone)(data);
|
|
104
|
+
const changeType = coll[id] ? 'update' : 'insert';
|
|
105
|
+
if (changeType === 'insert') {
|
|
106
|
+
const index = validateIndex(_data);
|
|
107
|
+
if (index)
|
|
108
|
+
return Promise.reject((0, utils_1.createError)((0, database_1.DuplicatedValueInIndex)(), {
|
|
109
|
+
details: index.properties.reduce((details, p) => {
|
|
110
|
+
details[p] = (0, ramda_1.path)(p.split('.'), _data);
|
|
111
|
+
return details;
|
|
112
|
+
}, {})
|
|
113
|
+
}));
|
|
114
|
+
}
|
|
115
|
+
const previous = (0, ramda_1.clone)(coll[id]);
|
|
116
|
+
const formatedData = Object.keys(_data).reduce((response, key) => {
|
|
117
|
+
return (0, ramda_1.assocPath)(key.split('.'), _data[key], response);
|
|
118
|
+
}, (0, ramda_1.clone)(coll[id]) || {});
|
|
119
|
+
coll[id] = { ...formatedData, id };
|
|
120
|
+
changeEmitters[collection]?.emit('change', { changeType, data: coll[id], previous });
|
|
121
|
+
return coll[id];
|
|
122
|
+
};
|
|
123
|
+
const destroyById = async (id) => {
|
|
124
|
+
const previous = coll[id];
|
|
125
|
+
changeEmitters[collection]?.emit('change', { changeType: 'delete', previous });
|
|
126
|
+
delete coll[id];
|
|
127
|
+
};
|
|
128
|
+
const createMany = async (documents) => {
|
|
129
|
+
return documents.map(data => {
|
|
130
|
+
const _data = (0, ramda_1.clone)(data);
|
|
131
|
+
validateIndex(_data);
|
|
132
|
+
coll[_data.id] = _data;
|
|
133
|
+
changeEmitters[collection]?.emit('change', { changeType: 'insert', data: _data });
|
|
134
|
+
return _data;
|
|
135
|
+
});
|
|
136
|
+
};
|
|
137
|
+
const updateMany = async (filter, data) => {
|
|
138
|
+
return Object.keys(coll)
|
|
139
|
+
.reduce((response, rowId) => {
|
|
140
|
+
if (filter.every(f => pv3_types_1.filterOpMap[f.op]((0, ramda_1.path)([f.field], coll[rowId]), f.value))) {
|
|
141
|
+
const previous = coll[rowId];
|
|
142
|
+
coll[rowId] = { ...coll[rowId], ...(0, ramda_1.clone)(data) };
|
|
143
|
+
changeEmitters[collection]?.emit('change', { changeType: 'update', previous, data: coll[rowId] });
|
|
144
|
+
response.push(coll[rowId]);
|
|
145
|
+
}
|
|
146
|
+
return response;
|
|
147
|
+
}, []);
|
|
148
|
+
};
|
|
149
|
+
const destroyMany = async (filter) => {
|
|
150
|
+
return Object.keys(coll)
|
|
151
|
+
.reduce((response, rowId) => {
|
|
152
|
+
if (filter.every(f => pv3_types_1.filterOpMap[f.op]((0, ramda_1.path)([f.field], coll[rowId]), f.value))) {
|
|
153
|
+
const previous = coll[rowId];
|
|
154
|
+
delete coll[rowId];
|
|
155
|
+
changeEmitters[collection]?.emit('change', { changeType: 'delete', previous });
|
|
156
|
+
response.push(rowId);
|
|
157
|
+
}
|
|
158
|
+
return response;
|
|
159
|
+
}, [])
|
|
160
|
+
.length;
|
|
161
|
+
};
|
|
162
|
+
const atomicIncrement = async (name, filter, amount = 1) => {
|
|
163
|
+
const fnMap = pv3_types_1.filterOpMap[filter.op];
|
|
164
|
+
const key = Object.keys(coll).find(id => fnMap((0, ramda_1.path)([filter.field], coll[id]), filter.value));
|
|
165
|
+
if (!key) {
|
|
166
|
+
const id = (0, crypto_1.randomUUID)();
|
|
167
|
+
coll[id] = {
|
|
168
|
+
[filter.field]: filter.value,
|
|
169
|
+
[name]: amount
|
|
170
|
+
};
|
|
171
|
+
changeEmitters[collection]?.emit('change', { changeType: 'insert', data: coll[id] });
|
|
172
|
+
return amount;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
const previous = coll[key];
|
|
176
|
+
coll[key][name] = (coll[key][name] || 0) + amount;
|
|
177
|
+
changeEmitters[collection]?.emit('change', { changeType: 'update', data: coll[key], previous });
|
|
178
|
+
return coll[key][name];
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
const ensureIndex = async (properties, options = {}) => {
|
|
182
|
+
if (options.isUnique === true) {
|
|
183
|
+
uniqueIndexes[collection] ||= {};
|
|
184
|
+
uniqueIndexes[collection][properties.join('_')] = properties;
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
const destroyIndex = async (properties) => {
|
|
188
|
+
if (uniqueIndexes[collection] && uniqueIndexes[collection][properties.join('_')]) {
|
|
189
|
+
delete uniqueIndexes[collection][properties.join('_')];
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const watch = (changeTypes = ['insert'], onData, onError) => {
|
|
193
|
+
changeEmitters[collection] ||= new bett3r_utils_1.TypedEventEmitter();
|
|
194
|
+
const callback = (change) => {
|
|
195
|
+
if (changeTypes.includes(change.changeType))
|
|
196
|
+
onData(change);
|
|
197
|
+
};
|
|
198
|
+
changeEmitters[collection].on('change', callback);
|
|
199
|
+
return Promise.resolve({
|
|
200
|
+
close: () => changeEmitters[collection].off('change', callback)
|
|
201
|
+
});
|
|
202
|
+
};
|
|
203
|
+
return {
|
|
204
|
+
readById,
|
|
205
|
+
query,
|
|
206
|
+
upsert,
|
|
207
|
+
forEach,
|
|
208
|
+
destroyById,
|
|
209
|
+
createMany,
|
|
210
|
+
updateMany,
|
|
211
|
+
destroyMany,
|
|
212
|
+
atomicIncrement,
|
|
213
|
+
ensureIndex,
|
|
214
|
+
destroyIndex,
|
|
215
|
+
watch
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
const initTransaction = (operations) => {
|
|
219
|
+
let backupDb = (0, ramda_1.clone)(_db);
|
|
220
|
+
const commitTransaction = async (docs) => {
|
|
221
|
+
return docs || null;
|
|
222
|
+
};
|
|
223
|
+
const rollbackTransaction = async (error) => {
|
|
224
|
+
_db = backupDb;
|
|
225
|
+
return Promise.reject(error);
|
|
226
|
+
};
|
|
227
|
+
return operations(getCollection)
|
|
228
|
+
.then(commitTransaction)
|
|
229
|
+
.catch(rollbackTransaction);
|
|
230
|
+
};
|
|
231
|
+
return {
|
|
232
|
+
_adapter: () => _db,
|
|
233
|
+
name: 'memoryDb',
|
|
234
|
+
start,
|
|
235
|
+
stop,
|
|
236
|
+
getCollection,
|
|
237
|
+
initTransaction
|
|
238
|
+
};
|
|
239
|
+
};
|
|
240
|
+
exports.MemoryDb = MemoryDb;
|
|
241
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/database/memory/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { EndpointsAdapter } from '@bett3r-dev/pv3-types';
|
|
2
|
+
/**
|
|
3
|
+
* Adds the user object to the request context
|
|
4
|
+
* @param customTokenAttributes - Object with key as the path to the attribute in the token and value as the name of the attribute in the user object
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare const AddAuthUserToRequest: (customTokenAttributes: Record<string, string>) => EndpointsAdapter;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/endpoints/addAuthUser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAYzF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,0BAA4B,OAAO,MAAM,EAAE,MAAM,CAAC,KAAI,gBAqCtF,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddAuthUserToRequest = void 0;
|
|
4
|
+
const ramda_1 = require("ramda");
|
|
5
|
+
const __1 = require("../../..");
|
|
6
|
+
const propMapper = (map, object) => {
|
|
7
|
+
const result = {};
|
|
8
|
+
Object.keys(map).forEach(key => {
|
|
9
|
+
result[map[key]] = (0, ramda_1.path)(key.split('.'), object);
|
|
10
|
+
});
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Adds the user object to the request context
|
|
15
|
+
* @param customTokenAttributes - Object with key as the path to the attribute in the token and value as the name of the attribute in the user object
|
|
16
|
+
* @returns
|
|
17
|
+
*/
|
|
18
|
+
const AddAuthUserToRequest = (customTokenAttributes) => {
|
|
19
|
+
const addUserToContext = async (params) => {
|
|
20
|
+
const token = params.context?.req?.headers?.authorization || params.query?.access_token;
|
|
21
|
+
if (!token)
|
|
22
|
+
return params;
|
|
23
|
+
try {
|
|
24
|
+
const payload = JSON.parse(Buffer.from(token.split('.')[1], 'base64').toString());
|
|
25
|
+
if (!params.context)
|
|
26
|
+
params.context = {};
|
|
27
|
+
params.context.token = token.slice(token.lastIndexOf(' ') + 1);
|
|
28
|
+
params.context.user = propMapper({
|
|
29
|
+
'email': 'email',
|
|
30
|
+
'realm_access.roles': 'roles',
|
|
31
|
+
'app_id': 'id',
|
|
32
|
+
...customTokenAttributes
|
|
33
|
+
}, payload);
|
|
34
|
+
return Promise.resolve(params);
|
|
35
|
+
}
|
|
36
|
+
catch (err) {
|
|
37
|
+
return Promise.reject((0, __1.createError)((0, __1.AuthenticationError)(), { description: 'Invalid Token' }));
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const registerEndpoint = (endpoint) => {
|
|
41
|
+
const originalAction = endpoint.action;
|
|
42
|
+
endpoint.action = (params) => {
|
|
43
|
+
return addUserToContext(params)
|
|
44
|
+
.then(originalAction);
|
|
45
|
+
};
|
|
46
|
+
return endpoint;
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
_adapter: () => { },
|
|
50
|
+
name: 'addAuthUser',
|
|
51
|
+
start: async () => { },
|
|
52
|
+
stop: async () => { },
|
|
53
|
+
registerEndpoint
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
exports.AddAuthUserToRequest = AddAuthUserToRequest;
|
|
57
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/endpoints/addAuthUser/index.ts"],"names":[],"mappings":";;;AACA,iCAA6B;AAC7B,gCAA4D;AAE5D,MAAM,UAAU,GAAG,CAAE,GAA2B,EAAE,MAA2B,EAAG,EAAE;IAChF,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,MAAM,CAAC,IAAI,CAAE,GAAG,CAAE,CAAC,OAAO,CAAE,GAAG,CAAC,EAAE;QAChC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAA,YAAI,EAAE,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,EAAE,MAAM,CAAE,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;GAIG;AACI,MAAM,oBAAoB,GAAG,CAAE,qBAA6C,EAAqB,EAAE;IACxG,MAAM,gBAAgB,GAAG,KAAK,EAAG,MAA4B,EAAkC,EAAE;QAC/F,MAAM,KAAK,GAAW,MAAM,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,aAAuB,IAAI,MAAM,CAAC,KAAK,EAAE,YAAY,CAAC;QAC1G,IAAK,CAAC,KAAK;YAAG,OAAO,MAAM,CAAC;QAC5B,IAAG;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAE,MAAM,CAAC,IAAI,CAAE,KAAK,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvF,IAAK,CAAC,MAAM,CAAC,OAAO;gBAClB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAE,KAAK,CAAC,WAAW,CAAE,GAAG,CAAE,GAAG,CAAC,CAAE,CAAC;YACnE,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC;gBAC/B,OAAO,EAAE,OAAO;gBAChB,oBAAoB,EAAE,OAAO;gBAC7B,QAAQ,EAAE,IAAI;gBACd,GAAG,qBAAqB;aACzB,EAAE,OAAO,CAAE,CAAC;YACb,OAAO,OAAO,CAAC,OAAO,CAAE,MAAM,CAAE,CAAC;SAClC;QAAC,OAAQ,GAAG,EAAG;YACd,OAAO,OAAO,CAAC,MAAM,CAAE,IAAA,eAAW,EAAE,IAAA,uBAAmB,GAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;SAC/F;IACH,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAE,QAAkB,EAAG,EAAE;QAChD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QACvC,QAAQ,CAAC,MAAM,GAAG,CAAE,MAA2C,EAAG,EAAE;YAClE,OAAO,gBAAgB,CAAE,MAAM,CAAE;iBAC9B,IAAI,CAAE,cAAc,CAAE,CAAC;QAC5B,CAAC,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,KAAK,IAAE,EAAE,GAAC,CAAC;QAClB,IAAI,EAAE,KAAK,IAAE,EAAE,GAAC,CAAC;QACjB,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,oBAAoB,wBAqC/B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BaseSchema } from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
import { Endpoint, EndpointsAdapter } from '@bett3r-dev/pv3-types';
|
|
3
|
+
export declare const EndpointValidation: (validateSchema: <T>(schema: BaseSchema<T, true, Readonly<import("@bett3r-dev/jsonschema-definer/dist/base").BaseJsonSchema>>) => (value: T) => T, onError?: (err: any, endpoint: Endpoint) => void) => EndpointsAdapter;
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/endpoints/endpointValidation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAwB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzF,eAAO,MAAM,kBAAkB,qKAAsF,GAAG,YAAY,QAAQ,KAAM,IAAI,KAAc,gBAqBnK,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EndpointValidation = void 0;
|
|
4
|
+
const validation_1 = require("../../../libraries/validation");
|
|
5
|
+
const EndpointValidation = (validateSchema, onError = () => { }) => {
|
|
6
|
+
const registerEndpoint = (endpoint) => {
|
|
7
|
+
if (endpoint.shouldValidate === false)
|
|
8
|
+
return endpoint;
|
|
9
|
+
const originalAction = endpoint.action;
|
|
10
|
+
endpoint.action = (params) => (0, validation_1.validateEndpoint)(validateSchema, endpoint.schemas)(params)
|
|
11
|
+
.catch(e => {
|
|
12
|
+
onError(e, endpoint);
|
|
13
|
+
return Promise.reject(e);
|
|
14
|
+
})
|
|
15
|
+
.then(originalAction);
|
|
16
|
+
return endpoint;
|
|
17
|
+
};
|
|
18
|
+
return {
|
|
19
|
+
_adapter: () => { },
|
|
20
|
+
name: 'endpointValidation',
|
|
21
|
+
start: async () => { },
|
|
22
|
+
stop: async () => { },
|
|
23
|
+
registerEndpoint
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.EndpointValidation = EndpointValidation;
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/endpoints/endpointValidation/index.ts"],"names":[],"mappings":";;;AAEA,8DAAiE;AAE1D,MAAM,kBAAkB,GAAG,CAAE,cAAgE,EAAE,UAAmD,GAAG,EAAE,GAAE,CAAC,EAAoB,EAAE;IACrL,MAAM,gBAAgB,GAAG,CAAE,QAAkB,EAAG,EAAE;QAChD,IAAK,QAAQ,CAAC,cAAc,KAAK,KAAK;YAAG,OAAO,QAAQ,CAAC;QACzD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QACvC,QAAQ,CAAC,MAAM,GAAG,CAAE,MAA4B,EAAG,EAAE,CACnD,IAAA,6BAAgB,EAAE,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAE,CAAE,MAAM,CAAE;aAC3D,KAAK,CAAE,CAAC,CAAC,EAAE;YACV,OAAO,CAAE,CAAC,EAAE,QAAQ,CAAE,CAAC;YACvB,OAAO,OAAO,CAAC,MAAM,CAAE,CAAC,CAAE,CAAC;QAC7B,CAAC,CAAC;aACD,IAAI,CAAE,cAAc,CAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,IAAI,EAAE,oBAAoB;QAC1B,KAAK,EAAE,KAAK,IAAE,EAAE,GAAC,CAAC;QAClB,IAAI,EAAE,KAAK,IAAE,EAAE,GAAC,CAAC;QACjB,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,kBAAkB,sBAqB7B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AAErC,cAAc,eAAe,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("./addAuthUser"), exports);
|
|
18
|
+
__exportStar(require("./endpointValidation"), exports);
|
|
19
|
+
// export * from './localAuthorization';
|
|
20
|
+
__exportStar(require("./userSession"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/endpoints/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,uDAAqC;AACrC,wCAAwC;AACxC,gDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/endpoints/localAuthorization/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// import S from '@bett3r-dev/jsonschema-definer';
|
|
2
|
+
// import { compose, mergeRight } from 'ramda';
|
|
3
|
+
// import { AuthenticationPort, /* EndpointMarkedAsPublicSchema, EndpointRolesUpsertedSchema, RouteManagerEndpointAuth */ } from '../../../ports/authentication';
|
|
4
|
+
// import { DatabasePort } from '../../../ports/database';
|
|
5
|
+
// import { Endpoint, EndpointActionParams, EndpointsAdapter, EndpointsPort } from '../../../ports/endpoints';
|
|
6
|
+
// export type LocalAuthorizationType = EndpointsAdapter & {
|
|
7
|
+
// registerRouteManagementEndpoints: ( endpoints: EndpointsPort ) => void;
|
|
8
|
+
// }
|
|
9
|
+
// /**
|
|
10
|
+
// * Performs a local authorization of the incoming request by validating the JWT and performing RBAC authorization
|
|
11
|
+
// * @param authentication Authentication Port
|
|
12
|
+
// * @returns
|
|
13
|
+
// */
|
|
14
|
+
// export const LocalAuthorization = ( authentication: AuthenticationPort, database: DatabasePort ): LocalAuthorizationType => {
|
|
15
|
+
// const routeManager = authentication.RouteManager( database );
|
|
16
|
+
// const _authorizeRequest = authentication.authorizeRequest( routeManager );
|
|
17
|
+
// const authorizeRequest = async ( params: EndpointActionParams<any, any, any> ) => {
|
|
18
|
+
// await _authorizeRequest( params.context.token!, params.context.req?.method!, params.context.req?.route! );
|
|
19
|
+
// return params;
|
|
20
|
+
// };
|
|
21
|
+
// const registerEndpoint = ( endpoint: Endpoint ) => {
|
|
22
|
+
// const originalAction = endpoint.action;
|
|
23
|
+
// endpoint.action = ( params: EndpointActionParams<any, any, any> ) => {
|
|
24
|
+
// return authorizeRequest( params )
|
|
25
|
+
// .then( originalAction );
|
|
26
|
+
// };
|
|
27
|
+
// return endpoint;
|
|
28
|
+
// };
|
|
29
|
+
// const registerRouteManagementEndpoints = ( endpoints: EndpointsPort ) => {
|
|
30
|
+
// const upsertEndpointAuth = ( patchValue?: Partial<RouteManagerEndpointAuth> ) => ({ body } : {body: {id: string}[]}) => {
|
|
31
|
+
// return Promise.all( body.map( compose(
|
|
32
|
+
// routeManager.upsertRoute,
|
|
33
|
+
// mergeRight( patchValue || {})
|
|
34
|
+
// )));
|
|
35
|
+
// };
|
|
36
|
+
// endpoints.registerEndpoint({
|
|
37
|
+
// module: 'Authorization',
|
|
38
|
+
// name: 'Mark as Public',
|
|
39
|
+
// description: 'Mark an endpoint as public',
|
|
40
|
+
// route: '/authorization/mark-as-public',
|
|
41
|
+
// method: 'POST',
|
|
42
|
+
// schemas: {
|
|
43
|
+
// body: S.array().items( EndpointMarkedAsPublicSchema )
|
|
44
|
+
// },
|
|
45
|
+
// action: upsertEndpointAuth({ isPublic:true })
|
|
46
|
+
// });
|
|
47
|
+
// endpoints.registerEndpoint({
|
|
48
|
+
// module: 'Authorization',
|
|
49
|
+
// name: 'Upsert Roles',
|
|
50
|
+
// description: 'Upsert roles for endpoint',
|
|
51
|
+
// route: '/authorization/upsert-roles',
|
|
52
|
+
// method: 'POST',
|
|
53
|
+
// schemas: {
|
|
54
|
+
// body: S.array().items( EndpointRolesUpsertedSchema )
|
|
55
|
+
// },
|
|
56
|
+
// action: upsertEndpointAuth()
|
|
57
|
+
// });
|
|
58
|
+
// };
|
|
59
|
+
// return {
|
|
60
|
+
// _adapter: () => {},
|
|
61
|
+
// name: 'localAuthorization',
|
|
62
|
+
// registerRouteManagementEndpoints,
|
|
63
|
+
// start: async()=>{},
|
|
64
|
+
// stop: async()=>{},
|
|
65
|
+
// registerEndpoint
|
|
66
|
+
// };
|
|
67
|
+
// };
|
|
68
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/endpoints/localAuthorization/index.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,+CAA+C;AAC/C,iKAAiK;AACjK,0DAA0D;AAC1D,8GAA8G;AAE9G,4DAA4D;AAC5D,4EAA4E;AAC5E,IAAI;AAEJ,MAAM;AACN,oHAAoH;AACpH,+CAA+C;AAC/C,cAAc;AACd,MAAM;AACN,gIAAgI;AAChI,kEAAkE;AAClE,+EAA+E;AAE/E,wFAAwF;AACxF,iHAAiH;AACjH,qBAAqB;AACrB,OAAO;AAEP,yDAAyD;AACzD,8CAA8C;AAC9C,6EAA6E;AAC7E,0CAA0C;AAC1C,mCAAmC;AACnC,SAAS;AACT,uBAAuB;AACvB,OAAO;AAEP,+EAA+E;AAC/E,gIAAgI;AAChI,+CAA+C;AAC/C,oCAAoC;AACpC,wCAAwC;AACxC,aAAa;AACb,SAAS;AAET,mCAAmC;AACnC,iCAAiC;AACjC,gCAAgC;AAChC,mDAAmD;AACnD,gDAAgD;AAChD,wBAAwB;AACxB,mBAAmB;AACnB,gEAAgE;AAChE,WAAW;AACX,sDAAsD;AACtD,UAAU;AAEV,mCAAmC;AACnC,iCAAiC;AACjC,8BAA8B;AAC9B,kDAAkD;AAClD,8CAA8C;AAC9C,wBAAwB;AACxB,mBAAmB;AACnB,+DAA+D;AAC/D,WAAW;AACX,qCAAqC;AACrC,UAAU;AACV,OAAO;AAEP,aAAa;AACb,0BAA0B;AAC1B,kCAAkC;AAClC,wCAAwC;AACxC,0BAA0B;AAC1B,yBAAyB;AACzB,uBAAuB;AACvB,OAAO;AACP,KAAK"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/endpoints/tcpConsumer/index.ts"],"names":[],"mappings":"AACA,OAAO,EACa,iBAAiB,EAEnC,gBAAgB,EAAE,UAAU,EAE7B,MAAM,uBAAuB,CAAC;AAS/B,eAAO,MAAM,WAAW,kBAAoB,iBAAiB,cAAc,UAAU,KAAI,gBAqDxF,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
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.TcpConsumer = void 0;
|
|
7
|
+
const jsonschema_definer_1 = __importDefault(require("@bett3r-dev/jsonschema-definer"));
|
|
8
|
+
const tcp_1 = require("../../../libraries/tcp");
|
|
9
|
+
const TcpConsumerConfigSchema = jsonschema_definer_1.default.shape({
|
|
10
|
+
port: jsonschema_definer_1.default.number().optional().default(9520),
|
|
11
|
+
});
|
|
12
|
+
const TcpConsumer = (configuration, loggerPort) => {
|
|
13
|
+
const { config } = configuration.getModuleConfig('tcpConsumer', TcpConsumerConfigSchema.optional());
|
|
14
|
+
const logger = loggerPort.createLoggerInstance('TcpConsumer');
|
|
15
|
+
const tcp = (0, tcp_1.Tcp)(loggerPort);
|
|
16
|
+
let server;
|
|
17
|
+
const endpointMap = new Map();
|
|
18
|
+
const registerEndpoint = (endpoint) => {
|
|
19
|
+
const { route, module, action } = endpoint;
|
|
20
|
+
logger.log('Registering TCP Consumer endpoint:', module, route);
|
|
21
|
+
endpointMap.set(route, action);
|
|
22
|
+
return endpoint;
|
|
23
|
+
};
|
|
24
|
+
const start = async (port = config.port || 9520) => {
|
|
25
|
+
tcp.createTCPServer(port).then(_server => {
|
|
26
|
+
server = _server;
|
|
27
|
+
let broker;
|
|
28
|
+
logger.info('TCP server listening on port', port);
|
|
29
|
+
server.connectedStream.map(({ socket }) => broker = socket);
|
|
30
|
+
server.dataStream.map(({ message }) => {
|
|
31
|
+
const { endpoint, event } = JSON.parse(message);
|
|
32
|
+
const action = endpointMap.get(endpoint);
|
|
33
|
+
if (!action)
|
|
34
|
+
logger.error('No endpoint found for', endpoint);
|
|
35
|
+
action({
|
|
36
|
+
body: event,
|
|
37
|
+
params: {},
|
|
38
|
+
query: {},
|
|
39
|
+
// TODO: Contemplar el contexto que viene del event?
|
|
40
|
+
context: {},
|
|
41
|
+
})
|
|
42
|
+
.then(() => {
|
|
43
|
+
broker.write(JSON.stringify({ id: event.id, status: 200 }));
|
|
44
|
+
})
|
|
45
|
+
.catch((e) => {
|
|
46
|
+
broker.write(JSON.stringify({ id: event.id, status: e.status, error: e.message }));
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
const stop = () => new Promise((resolve, reject) => {
|
|
52
|
+
return server.close();
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
name: 'express',
|
|
56
|
+
adapterType: 'httpHandler',
|
|
57
|
+
_adapter: () => { },
|
|
58
|
+
registerEndpoint,
|
|
59
|
+
start,
|
|
60
|
+
stop,
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
exports.TcpConsumer = TcpConsumer;
|
|
64
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/endpoints/tcpConsumer/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CachePort, EndpointsAdapter, LoggerPort } from '@bett3r-dev/pv3-types';
|
|
2
|
+
/**
|
|
3
|
+
* Adds the user session object to the request context
|
|
4
|
+
* @param customTokenAttributes - Object with key as the path to the attribute in the token and value as the name of the attribute in the user object
|
|
5
|
+
* @returns
|
|
6
|
+
*/
|
|
7
|
+
export declare const UserSession: (logger: LoggerPort, cache: CachePort, keyFormatter?: (user: Record<string, any>) => string) => EndpointsAdapter;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/adapters/endpoints/userSession/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAkC,gBAAgB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEhH;;;;GAIG;AACH,eAAO,MAAM,WAAW,WAAa,UAAU,SAAS,SAAS,wBAAwB,OAAO,MAAM,EAAE,GAAG,CAAC,KAAM,MAAM,KAA0B,gBAgCjJ,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserSession = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Adds the user session object to the request context
|
|
6
|
+
* @param customTokenAttributes - Object with key as the path to the attribute in the token and value as the name of the attribute in the user object
|
|
7
|
+
* @returns
|
|
8
|
+
*/
|
|
9
|
+
const UserSession = (logger, cache, keyFormatter = (user) => user.id) => {
|
|
10
|
+
const log = logger.createLoggerInstance('UserSessionEndpointsAdapter');
|
|
11
|
+
const addUserSessionToContext = async (params) => {
|
|
12
|
+
if (!params.context?.user)
|
|
13
|
+
return params;
|
|
14
|
+
try {
|
|
15
|
+
const key = keyFormatter(params.context.user);
|
|
16
|
+
const session = await cache.get(key);
|
|
17
|
+
if (!params.context)
|
|
18
|
+
params.context = {};
|
|
19
|
+
params.context.session = session;
|
|
20
|
+
}
|
|
21
|
+
catch (err) {
|
|
22
|
+
log.error(err);
|
|
23
|
+
}
|
|
24
|
+
return Promise.resolve(params);
|
|
25
|
+
};
|
|
26
|
+
const registerEndpoint = (endpoint) => {
|
|
27
|
+
const originalAction = endpoint.action;
|
|
28
|
+
endpoint.action = (params) => {
|
|
29
|
+
return addUserSessionToContext(params)
|
|
30
|
+
.then(originalAction);
|
|
31
|
+
};
|
|
32
|
+
return endpoint;
|
|
33
|
+
};
|
|
34
|
+
return {
|
|
35
|
+
_adapter: () => { },
|
|
36
|
+
name: 'addUserSessionToContext',
|
|
37
|
+
start: async () => { },
|
|
38
|
+
stop: async () => { },
|
|
39
|
+
registerEndpoint
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
exports.UserSession = UserSession;
|
|
43
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/adapters/endpoints/userSession/index.ts"],"names":[],"mappings":";;;AAEA;;;;GAIG;AACI,MAAM,WAAW,GAAG,CAAE,MAAkB,EAAE,KAAgB,EAAE,eAAwD,CAAE,IAAI,EAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAqB,EAAE;IACnK,MAAM,GAAG,GAAG,MAAM,CAAC,oBAAoB,CAAE,6BAA6B,CAAE,CAAC;IACzE,MAAM,uBAAuB,GAAG,KAAK,EAAG,MAA4B,EAAkC,EAAE;QACtG,IAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI;YAAG,OAAO,MAAM,CAAC;QAC3C,IAAG;YACD,MAAM,GAAG,GAAG,YAAY,CAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAE,CAAC;YAChD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAE,GAAG,CAAE,CAAC;YACvC,IAAK,CAAC,MAAM,CAAC,OAAO;gBAClB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;YACtB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;SAClC;QAAC,OAAQ,GAAG,EAAG;YACd,GAAG,CAAC,KAAK,CAAE,GAAG,CAAE,CAAC;SAClB;QACD,OAAO,OAAO,CAAC,OAAO,CAAE,MAAM,CAAE,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAE,QAAkB,EAAG,EAAE;QAChD,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC;QACvC,QAAQ,CAAC,MAAM,GAAG,CAAE,MAA2C,EAAG,EAAE;YAClE,OAAO,uBAAuB,CAAE,MAAM,CAAE;iBACrC,IAAI,CAAE,cAAc,CAAE,CAAC;QAC5B,CAAC,CAAC;QACF,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;QAClB,IAAI,EAAE,yBAAyB;QAC/B,KAAK,EAAE,KAAK,IAAE,EAAE,GAAC,CAAC;QAClB,IAAI,EAAE,KAAK,IAAE,EAAE,GAAC,CAAC;QACjB,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AAhCW,QAAA,WAAW,eAgCtB"}
|