@effect-app/infra 2.7.0 → 2.8.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/CHANGELOG.md +19 -0
- package/_cjs/{services/CUPS.cjs → CUPS.cjs} +1 -1
- package/_cjs/CUPS.cjs.map +1 -0
- package/_cjs/{services/Emailer → Emailer}/Sendgrid.cjs +1 -1
- package/_cjs/Emailer/Sendgrid.cjs.map +1 -0
- package/_cjs/{services/Emailer → Emailer}/fake.cjs +1 -1
- package/_cjs/Emailer/fake.cjs.map +1 -0
- package/_cjs/Emailer/service.cjs.map +1 -0
- package/_cjs/Emailer.cjs.map +1 -0
- package/_cjs/{services/MainFiberSet.cjs → MainFiberSet.cjs} +1 -1
- package/_cjs/MainFiberSet.cjs.map +1 -0
- package/_cjs/{services → Model}/Repository/ext.cjs +1 -1
- package/_cjs/Model/Repository/ext.cjs.map +1 -0
- package/_cjs/{services → Model}/Repository/legacy.cjs +2 -3
- package/_cjs/Model/Repository/legacy.cjs.map +1 -0
- package/_cjs/{services/RepositoryBase.cjs → Model/Repository/makeRepo.cjs} +10 -12
- package/_cjs/Model/Repository/makeRepo.cjs.map +1 -0
- package/_cjs/Model/Repository/service.cjs.map +1 -0
- package/_cjs/{services → Model}/Repository.cjs +12 -10
- package/_cjs/Model/Repository.cjs.map +1 -0
- package/_cjs/Model/dsl.cjs.map +1 -0
- package/_cjs/Model/filter/filterApi.cjs +6 -0
- package/_cjs/Model/filter/filterApi.cjs.map +1 -0
- package/_cjs/Model/filter/types/errors.cjs.map +1 -0
- package/_cjs/Model/filter/types/fields.cjs.map +1 -0
- package/_cjs/Model/filter/types/path/common.cjs.map +1 -0
- package/_cjs/Model/filter/types/path/eager.cjs.map +1 -0
- package/_cjs/Model/filter/types/path/index.cjs.map +1 -0
- package/_cjs/Model/filter/types/utils.cjs.map +1 -0
- package/_cjs/Model/filter/types/validator.cjs.map +1 -0
- package/_cjs/Model/filter/types.cjs.map +1 -0
- package/_cjs/Model/query/dsl.cjs.map +1 -0
- package/_cjs/Model/query/new-kid-interpreter.cjs.map +1 -0
- package/_cjs/Model/query.cjs.map +1 -0
- package/_cjs/Model.cjs +23 -2
- package/_cjs/Model.cjs.map +1 -1
- package/_cjs/{services/Operations.cjs → Operations.cjs} +3 -3
- package/_cjs/Operations.cjs.map +1 -0
- package/_cjs/{services/OperationsRepo.cjs → OperationsRepo.cjs} +2 -2
- package/_cjs/OperationsRepo.cjs.map +1 -0
- package/_cjs/{services/QueueMaker → QueueMaker}/SQLQueue.cjs +3 -3
- package/_cjs/QueueMaker/SQLQueue.cjs.map +1 -0
- package/_cjs/QueueMaker/errors.cjs.map +1 -0
- package/_cjs/{services/QueueMaker → QueueMaker}/memQueue.cjs +2 -2
- package/_cjs/QueueMaker/memQueue.cjs.map +1 -0
- package/_cjs/{services/QueueMaker → QueueMaker}/sbqueue.cjs +2 -2
- package/_cjs/QueueMaker/sbqueue.cjs.map +1 -0
- package/_cjs/{services/QueueMaker → QueueMaker}/service.cjs +1 -1
- package/_cjs/QueueMaker/service.cjs.map +1 -0
- package/_cjs/{services/RequestFiberSet.cjs → RequestFiberSet.cjs} +2 -2
- package/_cjs/RequestFiberSet.cjs.map +1 -0
- package/_cjs/Store/ContextMapContainer.cjs.map +1 -0
- package/_cjs/{services/Store → Store}/Cosmos/query.cjs +1 -1
- package/_cjs/Store/Cosmos/query.cjs.map +1 -0
- package/_cjs/{services/Store → Store}/Cosmos.cjs +2 -2
- package/_cjs/Store/Cosmos.cjs.map +1 -0
- package/_cjs/{services/Store → Store}/Disk.cjs +1 -1
- package/_cjs/Store/Disk.cjs.map +1 -0
- package/_cjs/{services/Store → Store}/Memory.cjs +1 -1
- package/_cjs/Store/Memory.cjs.map +1 -0
- package/_cjs/Store/codeFilter.cjs.map +1 -0
- package/_cjs/Store/index.cjs.map +1 -0
- package/_cjs/Store/service.cjs.map +1 -0
- package/_cjs/{services/Store → Store}/utils.cjs +1 -1
- package/_cjs/Store/utils.cjs.map +1 -0
- package/_cjs/Store.cjs.map +1 -0
- package/_cjs/adapters/SQL/Model.cjs.map +1 -0
- package/_cjs/adapters/SQL.cjs.map +1 -0
- package/_cjs/adapters/ServiceBus.cjs.map +1 -0
- package/_cjs/adapters/cosmos-client.cjs.map +1 -0
- package/_cjs/adapters/index.cjs.map +1 -0
- package/_cjs/adapters/logger.cjs.map +1 -0
- package/_cjs/adapters/memQueue.cjs.map +1 -0
- package/_cjs/adapters/mongo-client.cjs.map +1 -0
- package/_cjs/adapters/redis-client.cjs.map +1 -0
- package/_cjs/api/setupRequest.cjs +2 -2
- package/_cjs/arbs.cjs.map +1 -0
- package/_cjs/logger/shared.cjs +1 -1
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/test.cjs +1 -1
- package/dist/CUPS.d.ts.map +1 -0
- package/dist/CUPS.js +116 -0
- package/dist/Emailer/Sendgrid.d.ts.map +1 -0
- package/dist/Emailer/Sendgrid.js +99 -0
- package/dist/Emailer/fake.d.ts.map +1 -0
- package/dist/Emailer/fake.js +18 -0
- package/dist/{services/Emailer → Emailer}/service.d.ts +1 -1
- package/dist/Emailer/service.d.ts.map +1 -0
- package/dist/{services/Emailer → Emailer}/service.js +1 -1
- package/dist/Emailer.d.ts.map +1 -0
- package/dist/{services/Emailer.js → Emailer.js} +1 -1
- package/dist/MainFiberSet.d.ts.map +1 -0
- package/dist/MainFiberSet.js +54 -0
- package/dist/{services → Model}/Repository/ext.d.ts +12 -12
- package/dist/Model/Repository/ext.d.ts.map +1 -0
- package/dist/Model/Repository/ext.js +61 -0
- package/dist/{services → Model}/Repository/legacy.d.ts +53 -53
- package/dist/Model/Repository/legacy.d.ts.map +1 -0
- package/dist/Model/Repository/legacy.js +123 -0
- package/dist/{services/RepositoryBase.d.ts → Model/Repository/makeRepo.d.ts} +22 -22
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -0
- package/dist/Model/Repository/makeRepo.js +254 -0
- package/dist/{services → Model}/Repository/service.d.ts +8 -8
- package/dist/Model/Repository/service.d.ts.map +1 -0
- package/dist/{services → Model}/Repository/service.js +1 -1
- package/dist/{services → Model}/Repository.d.ts +1 -1
- package/dist/Model/Repository.d.ts.map +1 -0
- package/dist/Model/Repository.js +5 -0
- package/dist/Model/dsl.d.ts.map +1 -0
- package/dist/Model/dsl.js +46 -0
- package/dist/{services/Store/filterApi/query.d.ts → Model/filter/filterApi.d.ts} +1 -1
- package/dist/Model/filter/filterApi.d.ts.map +1 -0
- package/dist/Model/filter/filterApi.js +2 -0
- package/dist/Model/filter/types/errors.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types/errors.js +1 -1
- package/dist/Model/filter/types/fields.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types/fields.js +1 -1
- package/dist/Model/filter/types/path/common.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types/path/common.js +1 -1
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types/path/eager.js +1 -1
- package/dist/Model/filter/types/path/index.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types/path/index.js +1 -1
- package/dist/Model/filter/types/utils.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types/utils.js +1 -1
- package/dist/Model/filter/types/validator.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types/validator.js +1 -1
- package/dist/Model/filter/types.d.ts.map +1 -0
- package/dist/{filter → Model/filter}/types.js +1 -1
- package/dist/{services → Model}/query/dsl.d.ts +6 -6
- package/dist/Model/query/dsl.d.ts.map +1 -0
- package/dist/Model/query/dsl.js +95 -0
- package/dist/{services → Model}/query/new-kid-interpreter.d.ts +4 -4
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -0
- package/dist/Model/query/new-kid-interpreter.js +133 -0
- package/dist/Model/query.d.ts.map +1 -0
- package/dist/{services → Model}/query.js +1 -1
- package/dist/Model.d.ts +3 -1
- package/dist/Model.d.ts.map +1 -1
- package/dist/Model.js +4 -2
- package/dist/Operations.d.ts.map +1 -0
- package/dist/Operations.js +102 -0
- package/dist/{services/OperationsRepo.d.ts → OperationsRepo.d.ts} +1 -1
- package/dist/OperationsRepo.d.ts.map +1 -0
- package/dist/OperationsRepo.js +14 -0
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -0
- package/dist/QueueMaker/SQLQueue.js +136 -0
- package/dist/QueueMaker/errors.d.ts.map +1 -0
- package/dist/QueueMaker/errors.js +20 -0
- package/dist/QueueMaker/memQueue.d.ts.map +1 -0
- package/dist/QueueMaker/memQueue.js +78 -0
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -0
- package/dist/QueueMaker/sbqueue.js +102 -0
- package/dist/{services/QueueMaker → QueueMaker}/service.d.ts +1 -1
- package/dist/QueueMaker/service.d.ts.map +1 -0
- package/dist/QueueMaker/service.js +4 -0
- package/dist/RequestFiberSet.d.ts.map +1 -0
- package/dist/RequestFiberSet.js +79 -0
- package/dist/Store/ContextMapContainer.d.ts.map +1 -0
- package/dist/{services/Store → Store}/ContextMapContainer.js +1 -1
- package/dist/{services/Store → Store}/Cosmos/query.d.ts +1 -1
- package/dist/Store/Cosmos/query.d.ts.map +1 -0
- package/dist/Store/Cosmos/query.js +164 -0
- package/dist/Store/Cosmos.d.ts.map +1 -0
- package/dist/Store/Cosmos.js +258 -0
- package/dist/Store/Disk.d.ts.map +1 -0
- package/dist/Store/Disk.js +109 -0
- package/dist/Store/Memory.d.ts.map +1 -0
- package/dist/Store/Memory.js +170 -0
- package/dist/{services/Store → Store}/codeFilter.d.ts +1 -1
- package/dist/Store/codeFilter.d.ts.map +1 -0
- package/dist/Store/codeFilter.js +117 -0
- package/dist/Store/index.d.ts.map +1 -0
- package/dist/Store/index.js +28 -0
- package/dist/{services/Store → Store}/service.d.ts +5 -5
- package/dist/Store/service.d.ts.map +1 -0
- package/dist/{services/Store → Store}/service.js +1 -1
- package/dist/{services/Store → Store}/utils.d.ts +1 -1
- package/dist/Store/utils.d.ts.map +1 -0
- package/dist/Store/utils.js +44 -0
- package/dist/Store.d.ts.map +1 -0
- package/dist/{services/Store.js → Store.js} +1 -1
- package/dist/{services/adapters → adapters}/SQL/Model.d.ts +23 -23
- package/dist/adapters/SQL/Model.d.ts.map +1 -0
- package/dist/adapters/SQL/Model.js +508 -0
- package/dist/adapters/SQL.d.ts.map +1 -0
- package/dist/{services/adapters → adapters}/SQL.js +1 -1
- package/dist/adapters/ServiceBus.d.ts.map +1 -0
- package/dist/adapters/ServiceBus.js +73 -0
- package/dist/adapters/cosmos-client.d.ts.map +1 -0
- package/dist/adapters/cosmos-client.js +8 -0
- package/dist/{services/adapters → adapters}/index.d.ts.map +1 -1
- package/dist/{services/adapters → adapters}/index.js +1 -1
- package/dist/adapters/logger.d.ts.map +1 -0
- package/dist/{services/adapters → adapters}/logger.js +1 -1
- package/dist/adapters/memQueue.d.ts.map +1 -0
- package/dist/adapters/memQueue.js +24 -0
- package/dist/adapters/mongo-client.d.ts.map +1 -0
- package/dist/adapters/mongo-client.js +12 -0
- package/dist/adapters/redis-client.d.ts.map +1 -0
- package/dist/adapters/redis-client.js +93 -0
- package/dist/api/setupRequest.js +3 -3
- package/dist/arbs.d.ts.map +1 -0
- package/dist/arbs.js +21 -0
- package/dist/logger/shared.js +2 -2
- package/dist/test.d.ts +1 -1
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +3 -3
- package/examples/query.ts +3 -3
- package/package.json +352 -362
- package/src/{services/CUPS.ts → CUPS.ts} +1 -1
- package/src/{services/Emailer → Emailer}/Sendgrid.ts +1 -1
- package/src/{services/Emailer → Emailer}/fake.ts +1 -1
- package/src/{services/MainFiberSet.ts → MainFiberSet.ts} +1 -1
- package/src/{services → Model}/Repository/ext.ts +23 -11
- package/src/{services → Model}/Repository/legacy.ts +78 -51
- package/src/{services/RepositoryBase.ts → Model/Repository/makeRepo.ts} +40 -38
- package/src/{services → Model}/Repository/service.ts +9 -8
- package/src/{services → Model}/Repository.ts +1 -1
- package/src/{services → Model}/query/dsl.ts +24 -6
- package/src/{services → Model}/query/new-kid-interpreter.ts +3 -3
- package/src/Model.ts +3 -1
- package/src/{services/Operations.ts → Operations.ts} +3 -3
- package/src/{services/OperationsRepo.ts → OperationsRepo.ts} +1 -1
- package/src/{services/QueueMaker → QueueMaker}/SQLQueue.ts +4 -4
- package/src/{services/QueueMaker → QueueMaker}/memQueue.ts +2 -2
- package/src/{services/QueueMaker → QueueMaker}/sbqueue.ts +2 -2
- package/src/{services/QueueMaker → QueueMaker}/service.ts +1 -1
- package/src/{services/RequestFiberSet.ts → RequestFiberSet.ts} +2 -2
- package/src/{services/Store → Store}/Cosmos/query.ts +2 -2
- package/src/{services/Store → Store}/Cosmos.ts +2 -2
- package/src/{services/Store → Store}/Disk.ts +1 -1
- package/src/{services/Store → Store}/Memory.ts +1 -1
- package/src/{services/Store → Store}/codeFilter.ts +1 -1
- package/src/{services/Store → Store}/service.ts +4 -4
- package/src/{services/Store → Store}/utils.ts +1 -1
- package/src/api/setupRequest.ts +2 -2
- package/src/logger/shared.ts +1 -1
- package/src/test.ts +2 -2
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/query.test.ts +32 -5
- package/_cjs/_ext/Array.cjs +0 -22
- package/_cjs/_ext/Array.cjs.map +0 -1
- package/_cjs/filter/types/errors.cjs.map +0 -1
- package/_cjs/filter/types/fields.cjs.map +0 -1
- package/_cjs/filter/types/path/common.cjs.map +0 -1
- package/_cjs/filter/types/path/eager.cjs.map +0 -1
- package/_cjs/filter/types/path/index.cjs.map +0 -1
- package/_cjs/filter/types/utils.cjs.map +0 -1
- package/_cjs/filter/types/validator.cjs.map +0 -1
- package/_cjs/filter/types.cjs.map +0 -1
- package/_cjs/services/CUPS.cjs.map +0 -1
- package/_cjs/services/Emailer/Sendgrid.cjs.map +0 -1
- package/_cjs/services/Emailer/fake.cjs.map +0 -1
- package/_cjs/services/Emailer/service.cjs.map +0 -1
- package/_cjs/services/Emailer.cjs.map +0 -1
- package/_cjs/services/MainFiberSet.cjs.map +0 -1
- package/_cjs/services/Operations.cjs.map +0 -1
- package/_cjs/services/OperationsRepo.cjs.map +0 -1
- package/_cjs/services/QueueMaker/SQLQueue.cjs.map +0 -1
- package/_cjs/services/QueueMaker/errors.cjs.map +0 -1
- package/_cjs/services/QueueMaker/memQueue.cjs.map +0 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +0 -1
- package/_cjs/services/QueueMaker/service.cjs.map +0 -1
- package/_cjs/services/Repository/dsl.cjs.map +0 -1
- package/_cjs/services/Repository/ext.cjs.map +0 -1
- package/_cjs/services/Repository/legacy.cjs.map +0 -1
- package/_cjs/services/Repository/service.cjs.map +0 -1
- package/_cjs/services/Repository.cjs.map +0 -1
- package/_cjs/services/RepositoryBase.cjs.map +0 -1
- package/_cjs/services/RequestFiberSet.cjs.map +0 -1
- package/_cjs/services/Store/ContextMapContainer.cjs.map +0 -1
- package/_cjs/services/Store/Cosmos/query.cjs.map +0 -1
- package/_cjs/services/Store/Cosmos.cjs.map +0 -1
- package/_cjs/services/Store/Disk.cjs.map +0 -1
- package/_cjs/services/Store/Memory.cjs.map +0 -1
- package/_cjs/services/Store/codeFilter.cjs.map +0 -1
- package/_cjs/services/Store/filterApi/query.cjs +0 -6
- package/_cjs/services/Store/filterApi/query.cjs.map +0 -1
- package/_cjs/services/Store/index.cjs.map +0 -1
- package/_cjs/services/Store/service.cjs.map +0 -1
- package/_cjs/services/Store/utils.cjs.map +0 -1
- package/_cjs/services/Store.cjs.map +0 -1
- package/_cjs/services/adapters/SQL/Model.cjs.map +0 -1
- package/_cjs/services/adapters/SQL.cjs.map +0 -1
- package/_cjs/services/adapters/ServiceBus.cjs.map +0 -1
- package/_cjs/services/adapters/cosmos-client.cjs.map +0 -1
- package/_cjs/services/adapters/index.cjs.map +0 -1
- package/_cjs/services/adapters/logger.cjs.map +0 -1
- package/_cjs/services/adapters/memQueue.cjs.map +0 -1
- package/_cjs/services/adapters/mongo-client.cjs.map +0 -1
- package/_cjs/services/adapters/redis-client.cjs.map +0 -1
- package/_cjs/services/query/dsl.cjs.map +0 -1
- package/_cjs/services/query/new-kid-interpreter.cjs.map +0 -1
- package/_cjs/services/query.cjs.map +0 -1
- package/_cjs/test/arbs.cjs.map +0 -1
- package/dist/_ext/Array.d.ts +0 -13
- package/dist/_ext/Array.d.ts.map +0 -1
- package/dist/_ext/Array.js +0 -15
- package/dist/filter/types/errors.d.ts.map +0 -1
- package/dist/filter/types/fields.d.ts.map +0 -1
- package/dist/filter/types/path/common.d.ts.map +0 -1
- package/dist/filter/types/path/eager.d.ts.map +0 -1
- package/dist/filter/types/path/index.d.ts.map +0 -1
- package/dist/filter/types/utils.d.ts.map +0 -1
- package/dist/filter/types/validator.d.ts.map +0 -1
- package/dist/filter/types.d.ts.map +0 -1
- package/dist/services/CUPS.d.ts.map +0 -1
- package/dist/services/CUPS.js +0 -116
- package/dist/services/Emailer/Sendgrid.d.ts.map +0 -1
- package/dist/services/Emailer/Sendgrid.js +0 -99
- package/dist/services/Emailer/fake.d.ts.map +0 -1
- package/dist/services/Emailer/fake.js +0 -18
- package/dist/services/Emailer/service.d.ts.map +0 -1
- package/dist/services/Emailer.d.ts.map +0 -1
- package/dist/services/MainFiberSet.d.ts.map +0 -1
- package/dist/services/MainFiberSet.js +0 -54
- package/dist/services/Operations.d.ts.map +0 -1
- package/dist/services/Operations.js +0 -102
- package/dist/services/OperationsRepo.d.ts.map +0 -1
- package/dist/services/OperationsRepo.js +0 -14
- package/dist/services/QueueMaker/SQLQueue.d.ts.map +0 -1
- package/dist/services/QueueMaker/SQLQueue.js +0 -136
- package/dist/services/QueueMaker/errors.d.ts.map +0 -1
- package/dist/services/QueueMaker/errors.js +0 -20
- package/dist/services/QueueMaker/memQueue.d.ts.map +0 -1
- package/dist/services/QueueMaker/memQueue.js +0 -78
- package/dist/services/QueueMaker/sbqueue.d.ts.map +0 -1
- package/dist/services/QueueMaker/sbqueue.js +0 -102
- package/dist/services/QueueMaker/service.d.ts.map +0 -1
- package/dist/services/QueueMaker/service.js +0 -4
- package/dist/services/Repository/dsl.d.ts.map +0 -1
- package/dist/services/Repository/dsl.js +0 -46
- package/dist/services/Repository/ext.d.ts.map +0 -1
- package/dist/services/Repository/ext.js +0 -61
- package/dist/services/Repository/legacy.d.ts.map +0 -1
- package/dist/services/Repository/legacy.js +0 -124
- package/dist/services/Repository/service.d.ts.map +0 -1
- package/dist/services/Repository.d.ts.map +0 -1
- package/dist/services/Repository.js +0 -5
- package/dist/services/RepositoryBase.d.ts.map +0 -1
- package/dist/services/RepositoryBase.js +0 -256
- package/dist/services/RequestFiberSet.d.ts.map +0 -1
- package/dist/services/RequestFiberSet.js +0 -79
- package/dist/services/Store/ContextMapContainer.d.ts.map +0 -1
- package/dist/services/Store/Cosmos/query.d.ts.map +0 -1
- package/dist/services/Store/Cosmos/query.js +0 -164
- package/dist/services/Store/Cosmos.d.ts.map +0 -1
- package/dist/services/Store/Cosmos.js +0 -258
- package/dist/services/Store/Disk.d.ts.map +0 -1
- package/dist/services/Store/Disk.js +0 -109
- package/dist/services/Store/Memory.d.ts.map +0 -1
- package/dist/services/Store/Memory.js +0 -170
- package/dist/services/Store/codeFilter.d.ts.map +0 -1
- package/dist/services/Store/codeFilter.js +0 -117
- package/dist/services/Store/filterApi/query.d.ts.map +0 -1
- package/dist/services/Store/filterApi/query.js +0 -2
- package/dist/services/Store/index.d.ts.map +0 -1
- package/dist/services/Store/index.js +0 -28
- package/dist/services/Store/service.d.ts.map +0 -1
- package/dist/services/Store/utils.d.ts.map +0 -1
- package/dist/services/Store/utils.js +0 -44
- package/dist/services/Store.d.ts.map +0 -1
- package/dist/services/adapters/SQL/Model.d.ts.map +0 -1
- package/dist/services/adapters/SQL/Model.js +0 -508
- package/dist/services/adapters/SQL.d.ts.map +0 -1
- package/dist/services/adapters/ServiceBus.d.ts.map +0 -1
- package/dist/services/adapters/ServiceBus.js +0 -73
- package/dist/services/adapters/cosmos-client.d.ts.map +0 -1
- package/dist/services/adapters/cosmos-client.js +0 -8
- package/dist/services/adapters/logger.d.ts.map +0 -1
- package/dist/services/adapters/memQueue.d.ts.map +0 -1
- package/dist/services/adapters/memQueue.js +0 -24
- package/dist/services/adapters/mongo-client.d.ts.map +0 -1
- package/dist/services/adapters/mongo-client.js +0 -12
- package/dist/services/adapters/redis-client.d.ts.map +0 -1
- package/dist/services/adapters/redis-client.js +0 -93
- package/dist/services/query/dsl.d.ts.map +0 -1
- package/dist/services/query/dsl.js +0 -95
- package/dist/services/query/new-kid-interpreter.d.ts.map +0 -1
- package/dist/services/query/new-kid-interpreter.js +0 -133
- package/dist/services/query.d.ts.map +0 -1
- package/dist/test/arbs.d.ts.map +0 -1
- package/dist/test/arbs.js +0 -21
- package/src/_ext/Array.ts +0 -22
- /package/_cjs/{services/Emailer → Emailer}/service.cjs +0 -0
- /package/_cjs/{services/Emailer.cjs → Emailer.cjs} +0 -0
- /package/_cjs/{services → Model}/Repository/service.cjs +0 -0
- /package/_cjs/{services/Repository → Model}/dsl.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types/errors.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types/fields.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types/path/common.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types/path/eager.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types/path/index.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types/utils.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types/validator.cjs +0 -0
- /package/_cjs/{filter → Model/filter}/types.cjs +0 -0
- /package/_cjs/{services → Model}/query/dsl.cjs +0 -0
- /package/_cjs/{services → Model}/query/new-kid-interpreter.cjs +0 -0
- /package/_cjs/{services → Model}/query.cjs +0 -0
- /package/_cjs/{services/QueueMaker → QueueMaker}/errors.cjs +0 -0
- /package/_cjs/{services/Store → Store}/ContextMapContainer.cjs +0 -0
- /package/_cjs/{services/Store → Store}/codeFilter.cjs +0 -0
- /package/_cjs/{services/Store → Store}/index.cjs +0 -0
- /package/_cjs/{services/Store → Store}/service.cjs +0 -0
- /package/_cjs/{services/Store.cjs → Store.cjs} +0 -0
- /package/_cjs/{services/adapters → adapters}/SQL/Model.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/SQL.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/ServiceBus.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/cosmos-client.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/index.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/logger.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/memQueue.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/mongo-client.cjs +0 -0
- /package/_cjs/{services/adapters → adapters}/redis-client.cjs +0 -0
- /package/_cjs/{test/arbs.cjs → arbs.cjs} +0 -0
- /package/dist/{services/CUPS.d.ts → CUPS.d.ts} +0 -0
- /package/dist/{services/Emailer → Emailer}/Sendgrid.d.ts +0 -0
- /package/dist/{services/Emailer → Emailer}/fake.d.ts +0 -0
- /package/dist/{services/Emailer.d.ts → Emailer.d.ts} +0 -0
- /package/dist/{services/MainFiberSet.d.ts → MainFiberSet.d.ts} +0 -0
- /package/dist/{services/Repository → Model}/dsl.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types/errors.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types/fields.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types/path/common.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types/path/eager.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types/path/index.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types/utils.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types/validator.d.ts +0 -0
- /package/dist/{filter → Model/filter}/types.d.ts +0 -0
- /package/dist/{services → Model}/query.d.ts +0 -0
- /package/dist/{services/Operations.d.ts → Operations.d.ts} +0 -0
- /package/dist/{services/QueueMaker → QueueMaker}/SQLQueue.d.ts +0 -0
- /package/dist/{services/QueueMaker → QueueMaker}/errors.d.ts +0 -0
- /package/dist/{services/QueueMaker → QueueMaker}/memQueue.d.ts +0 -0
- /package/dist/{services/QueueMaker → QueueMaker}/sbqueue.d.ts +0 -0
- /package/dist/{services/RequestFiberSet.d.ts → RequestFiberSet.d.ts} +0 -0
- /package/dist/{services/Store → Store}/ContextMapContainer.d.ts +0 -0
- /package/dist/{services/Store → Store}/Cosmos.d.ts +0 -0
- /package/dist/{services/Store → Store}/Disk.d.ts +0 -0
- /package/dist/{services/Store → Store}/Memory.d.ts +0 -0
- /package/dist/{services/Store → Store}/index.d.ts +0 -0
- /package/dist/{services/Store.d.ts → Store.d.ts} +0 -0
- /package/dist/{services/adapters → adapters}/SQL.d.ts +0 -0
- /package/dist/{services/adapters → adapters}/ServiceBus.d.ts +0 -0
- /package/dist/{services/adapters → adapters}/cosmos-client.d.ts +0 -0
- /package/dist/{services/adapters → adapters}/index.d.ts +0 -0
- /package/dist/{services/adapters → adapters}/logger.d.ts +0 -0
- /package/dist/{services/adapters → adapters}/memQueue.d.ts +0 -0
- /package/dist/{services/adapters → adapters}/mongo-client.d.ts +0 -0
- /package/dist/{services/adapters → adapters}/redis-client.d.ts +0 -0
- /package/dist/{test/arbs.d.ts → arbs.d.ts} +0 -0
- /package/src/{services/Emailer → Emailer}/service.ts +0 -0
- /package/src/{services/Emailer.ts → Emailer.ts} +0 -0
- /package/src/{services/Repository → Model}/dsl.ts +0 -0
- /package/src/{services/Store/filterApi/query.ts → Model/filter/filterApi.ts} +0 -0
- /package/src/{filter → Model/filter}/types/errors.ts +0 -0
- /package/src/{filter → Model/filter}/types/fields.ts +0 -0
- /package/src/{filter → Model/filter}/types/path/common.ts +0 -0
- /package/src/{filter → Model/filter}/types/path/eager.ts +0 -0
- /package/src/{filter → Model/filter}/types/path/index.ts +0 -0
- /package/src/{filter → Model/filter}/types/utils.ts +0 -0
- /package/src/{filter → Model/filter}/types/validator.ts +0 -0
- /package/src/{filter → Model/filter}/types.ts +0 -0
- /package/src/{services → Model}/query.ts +0 -0
- /package/src/{services/QueueMaker → QueueMaker}/errors.ts +0 -0
- /package/src/{services/Store → Store}/ContextMapContainer.ts +0 -0
- /package/src/{services/Store → Store}/index.test.ts.bak +0 -0
- /package/src/{services/Store → Store}/index.ts +0 -0
- /package/src/{services/Store.ts → Store.ts} +0 -0
- /package/src/{services/adapters → adapters}/SQL/Model.ts +0 -0
- /package/src/{services/adapters → adapters}/SQL.ts +0 -0
- /package/src/{services/adapters → adapters}/ServiceBus.ts +0 -0
- /package/src/{services/adapters → adapters}/cosmos-client.ts +0 -0
- /package/src/{services/adapters → adapters}/index.ts +0 -0
- /package/src/{services/adapters → adapters}/logger.ts +0 -0
- /package/src/{services/adapters → adapters}/memQueue.ts +0 -0
- /package/src/{services/adapters → adapters}/mongo-client.ts +0 -0
- /package/src/{services/adapters → adapters}/redis-client.ts +0 -0
- /package/src/{test/arbs.ts → arbs.ts} +0 -0
|
@@ -5,26 +5,24 @@
|
|
|
5
5
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
6
6
|
|
|
7
7
|
// import type { ParserEnv } from "effect-app/Schema/custom/Parser"
|
|
8
|
-
import { type Repository } from "./Repository.js"
|
|
9
|
-
import { StoreMaker } from "./Store.js"
|
|
10
|
-
import type { FilterArgs, PersistenceModelType, StoreConfig } from "./Store.js"
|
|
11
8
|
import type {} from "effect/Equal"
|
|
12
9
|
import type {} from "effect/Hash"
|
|
13
10
|
import type { NonEmptyReadonlyArray } from "effect-app"
|
|
14
11
|
import { Array, Chunk, Context, Effect, Equivalence, flow, Option, pipe, PubSub, S, Unify } from "effect-app"
|
|
15
12
|
import { toNonEmptyArray } from "effect-app/Array"
|
|
13
|
+
import { NotFoundError } from "effect-app/client"
|
|
16
14
|
import { flatMapOption } from "effect-app/Effect"
|
|
17
15
|
import type { Schema } from "effect-app/Schema"
|
|
18
16
|
import { NonNegativeInt } from "effect-app/Schema"
|
|
19
|
-
import { setupRequestContextFromCurrent } from "
|
|
20
|
-
import {
|
|
17
|
+
import { setupRequestContextFromCurrent } from "../../api/setupRequest.js"
|
|
18
|
+
import type { FilterArgs, PersistenceModelType, StoreConfig } from "../../Store.js"
|
|
19
|
+
import { StoreMaker } from "../../Store.js"
|
|
20
|
+
import { getContextMap } from "../../Store/ContextMapContainer.js"
|
|
21
21
|
import type { FieldValues } from "../filter/types.js"
|
|
22
|
-
import
|
|
23
|
-
import type {
|
|
24
|
-
import
|
|
25
|
-
import {
|
|
26
|
-
import type { ExtendedRepository } from "./Repository/ext.js"
|
|
27
|
-
import { getContextMap } from "./Store/ContextMapContainer.js"
|
|
22
|
+
import * as Q from "../query.js"
|
|
23
|
+
import type { ExtendedRepository } from "./ext.js"
|
|
24
|
+
import { extendRepo } from "./ext.js"
|
|
25
|
+
import type { Repository } from "./service.js"
|
|
28
26
|
|
|
29
27
|
const dedupe = Array.dedupeWith(Equivalence.string)
|
|
30
28
|
|
|
@@ -65,7 +63,7 @@ export function makeRepoInternal<
|
|
|
65
63
|
|
|
66
64
|
const mkStore = makeStore<Encoded>()(name, schema, mapTo)
|
|
67
65
|
|
|
68
|
-
function make<RInitial = never, E = never,
|
|
66
|
+
function make<RInitial = never, E = never, RPublish = never, RCtx = never>(
|
|
69
67
|
args: [Evt] extends [never] ? {
|
|
70
68
|
schemaContext?: Context.Context<RCtx>
|
|
71
69
|
makeInitial?: Effect<readonly T[], E, RInitial>
|
|
@@ -75,7 +73,7 @@ export function makeRepoInternal<
|
|
|
75
73
|
}
|
|
76
74
|
: {
|
|
77
75
|
schemaContext?: Context.Context<RCtx>
|
|
78
|
-
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never,
|
|
76
|
+
publishEvents: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, RPublish>
|
|
79
77
|
makeInitial?: Effect<readonly T[], E, RInitial>
|
|
80
78
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
81
79
|
partitionValue?: (a: Encoded) => string
|
|
@@ -104,9 +102,8 @@ export function makeRepoInternal<
|
|
|
104
102
|
set: (id: string, etag: string | undefined) => _.set(`${name}.${id}`, etag)
|
|
105
103
|
}))
|
|
106
104
|
|
|
107
|
-
const pubCfg = yield* Effect.context<R2>()
|
|
108
105
|
const pub = "publishEvents" in args
|
|
109
|
-
?
|
|
106
|
+
? args.publishEvents
|
|
110
107
|
: () => Effect.void
|
|
111
108
|
const changeFeed = yield* PubSub.unbounded<[T[], "save" | "remove"]>()
|
|
112
109
|
|
|
@@ -256,12 +253,12 @@ export function makeRepoInternal<
|
|
|
256
253
|
// TODO: For raw we should use S.from, and drop the R...
|
|
257
254
|
const query: {
|
|
258
255
|
<A, R, From extends FieldValues>(
|
|
259
|
-
q: QueryProjection<Encoded extends From ? From : never, A, R>
|
|
256
|
+
q: Q.QueryProjection<Encoded extends From ? From : never, A, R>
|
|
260
257
|
): Effect.Effect<readonly A[], S.ParseResult.ParseError, R>
|
|
261
258
|
<A, R, EncodedRefined extends Encoded = Encoded>(
|
|
262
|
-
q: QAll<NoInfer<Encoded>, NoInfer<EncodedRefined>, A, R>
|
|
259
|
+
q: Q.QAll<NoInfer<Encoded>, NoInfer<EncodedRefined>, A, R>
|
|
263
260
|
): Effect.Effect<readonly A[], never, R>
|
|
264
|
-
} = (<A, R, EncodedRefined extends Encoded = Encoded>(q: QAll<Encoded, EncodedRefined, A, R>) => {
|
|
261
|
+
} = (<A, R, EncodedRefined extends Encoded = Encoded>(q: Q.QAll<Encoded, EncodedRefined, A, R>) => {
|
|
265
262
|
const a = Q.toFilter(q)
|
|
266
263
|
const eff = a.mode === "project"
|
|
267
264
|
? filter(a)
|
|
@@ -313,7 +310,7 @@ export function makeRepoInternal<
|
|
|
313
310
|
)
|
|
314
311
|
}) as any
|
|
315
312
|
|
|
316
|
-
const r: Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<R, RCtx
|
|
313
|
+
const r: Repository<T, Encoded, Evt, ItemType, IdKey, Exclude<R, RCtx>, RPublish> = {
|
|
317
314
|
changeFeed,
|
|
318
315
|
itemType: name,
|
|
319
316
|
idKey,
|
|
@@ -321,7 +318,7 @@ export function makeRepoInternal<
|
|
|
321
318
|
all,
|
|
322
319
|
saveAndPublish,
|
|
323
320
|
removeAndPublish,
|
|
324
|
-
query: (q: any) => query(typeof q === "function" ? q(
|
|
321
|
+
query: (q: any) => query(typeof q === "function" ? q(Q.make()) : q) as any,
|
|
325
322
|
/**
|
|
326
323
|
* @internal
|
|
327
324
|
*/
|
|
@@ -446,10 +443,11 @@ export function makeStore<
|
|
|
446
443
|
export interface Repos<
|
|
447
444
|
T,
|
|
448
445
|
Encoded extends { id: string },
|
|
449
|
-
|
|
446
|
+
RSchema,
|
|
450
447
|
Evt,
|
|
451
448
|
ItemType extends string,
|
|
452
|
-
IdKey extends keyof T
|
|
449
|
+
IdKey extends keyof T,
|
|
450
|
+
RPublish
|
|
453
451
|
> {
|
|
454
452
|
make<RInitial = never, E = never, R2 = never>(
|
|
455
453
|
args: [Evt] extends [never] ? {
|
|
@@ -465,7 +463,7 @@ export interface Repos<
|
|
|
465
463
|
partitionValue?: (a: Encoded) => string
|
|
466
464
|
}
|
|
467
465
|
}
|
|
468
|
-
): Effect<Repository<T, Encoded, Evt, ItemType, IdKey,
|
|
466
|
+
): Effect<Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>, E, StoreMaker | RInitial | R2>
|
|
469
467
|
makeWith<Out, RInitial = never, E = never, R2 = never>(
|
|
470
468
|
args: [Evt] extends [never] ? {
|
|
471
469
|
makeInitial?: Effect<readonly T[], E, RInitial>
|
|
@@ -480,10 +478,10 @@ export interface Repos<
|
|
|
480
478
|
partitionValue?: (a: Encoded) => string
|
|
481
479
|
}
|
|
482
480
|
},
|
|
483
|
-
f: (r: Repository<T, Encoded, Evt, ItemType, IdKey,
|
|
481
|
+
f: (r: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>) => Out
|
|
484
482
|
): Effect<Out, E, StoreMaker | RInitial | R2>
|
|
485
483
|
readonly Q: ReturnType<typeof Q.make<Encoded>>
|
|
486
|
-
readonly type: Repository<T, Encoded, Evt, ItemType, IdKey,
|
|
484
|
+
readonly type: Repository<T, Encoded, Evt, ItemType, IdKey, RSchema, RPublish>
|
|
487
485
|
}
|
|
488
486
|
|
|
489
487
|
export type GetRepoType<T> = T extends { type: infer R } ? R : never
|
|
@@ -491,56 +489,60 @@ export type GetRepoType<T> = T extends { type: infer R } ? R : never
|
|
|
491
489
|
export const makeRepo: {
|
|
492
490
|
<
|
|
493
491
|
ItemType extends string,
|
|
494
|
-
|
|
492
|
+
RSchema,
|
|
495
493
|
Encoded extends { id: string },
|
|
496
494
|
T,
|
|
497
495
|
IdKey extends keyof T,
|
|
498
496
|
E = never,
|
|
499
|
-
RInitial = never,
|
|
500
|
-
R2 = never,
|
|
501
497
|
Evt = never,
|
|
498
|
+
RInitial = never,
|
|
499
|
+
RPublish = never,
|
|
502
500
|
RCtx = never
|
|
503
501
|
>(
|
|
504
502
|
itemType: ItemType,
|
|
505
|
-
schema: S.Schema<T, Encoded,
|
|
503
|
+
schema: S.Schema<T, Encoded, RSchema>,
|
|
506
504
|
options: {
|
|
507
505
|
idKey: IdKey
|
|
508
506
|
jitM?: (pm: Encoded) => Encoded
|
|
509
507
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
510
508
|
partitionValue?: (a: Encoded) => string
|
|
511
509
|
}
|
|
512
|
-
publishEvents?: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never,
|
|
510
|
+
publishEvents?: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, RPublish>
|
|
513
511
|
makeInitial?: Effect<readonly T[], E, RInitial>
|
|
514
512
|
schemaContext?: Context.Context<RCtx>
|
|
515
513
|
}
|
|
516
514
|
): Effect.Effect<
|
|
517
|
-
ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, Exclude<
|
|
515
|
+
ExtendedRepository<T, Encoded, Evt, ItemType, IdKey, Exclude<RSchema, RCtx>, RPublish>,
|
|
518
516
|
E,
|
|
519
|
-
RInitial |
|
|
517
|
+
RInitial | StoreMaker
|
|
520
518
|
>
|
|
521
519
|
<
|
|
522
520
|
ItemType extends string,
|
|
523
|
-
|
|
521
|
+
RSchema,
|
|
524
522
|
Encoded extends { id: string },
|
|
525
523
|
T extends { id: unknown },
|
|
526
524
|
E = never,
|
|
527
|
-
RInitial = never,
|
|
528
|
-
R2 = never,
|
|
529
525
|
Evt = never,
|
|
526
|
+
RInitial = never,
|
|
527
|
+
RPublish = never,
|
|
530
528
|
RCtx = never
|
|
531
529
|
>(
|
|
532
530
|
itemType: ItemType,
|
|
533
|
-
schema: S.Schema<T, Encoded,
|
|
531
|
+
schema: S.Schema<T, Encoded, RSchema>,
|
|
534
532
|
options: {
|
|
535
533
|
jitM?: (pm: Encoded) => Encoded
|
|
536
534
|
config?: Omit<StoreConfig<Encoded>, "partitionValue"> & {
|
|
537
535
|
partitionValue?: (a: Encoded) => string
|
|
538
536
|
}
|
|
539
|
-
publishEvents?: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never,
|
|
537
|
+
publishEvents?: (evt: NonEmptyReadonlyArray<Evt>) => Effect<void, never, RPublish>
|
|
540
538
|
makeInitial?: Effect<readonly T[], E, RInitial>
|
|
541
539
|
schemaContext?: Context.Context<RCtx>
|
|
542
540
|
}
|
|
543
|
-
): Effect.Effect<
|
|
541
|
+
): Effect.Effect<
|
|
542
|
+
ExtendedRepository<T, Encoded, Evt, ItemType, "id", Exclude<RSchema, RCtx>, RPublish>,
|
|
543
|
+
E,
|
|
544
|
+
RInitial | StoreMaker
|
|
545
|
+
>
|
|
544
546
|
} = <
|
|
545
547
|
ItemType extends string,
|
|
546
548
|
R,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Effect, Option, PubSub, S } from "effect-app"
|
|
2
2
|
import type { InvalidStateError, NotFoundError, OptimisticConcurrencyException } from "effect-app/client"
|
|
3
3
|
import type { NonNegativeInt } from "effect-app/Schema/numbers"
|
|
4
|
-
import type { FieldValues } from "
|
|
4
|
+
import type { FieldValues } from "../filter/types.js"
|
|
5
5
|
import type { QAll, Query, QueryProjection } from "../query.js"
|
|
6
6
|
import type { Mapped } from "./legacy.js"
|
|
7
7
|
|
|
@@ -14,21 +14,22 @@ export interface Repository<
|
|
|
14
14
|
Evt,
|
|
15
15
|
ItemType extends string,
|
|
16
16
|
IdKey extends keyof T,
|
|
17
|
-
|
|
17
|
+
RSchema,
|
|
18
|
+
RPublish
|
|
18
19
|
> {
|
|
19
20
|
readonly itemType: ItemType
|
|
20
21
|
readonly idKey: IdKey
|
|
21
|
-
readonly find: (id: T[IdKey]) => Effect<Option<T>, never,
|
|
22
|
-
readonly all: Effect<T[], never,
|
|
22
|
+
readonly find: (id: T[IdKey]) => Effect<Option<T>, never, RSchema>
|
|
23
|
+
readonly all: Effect<T[], never, RSchema>
|
|
23
24
|
readonly saveAndPublish: (
|
|
24
25
|
items: Iterable<T>,
|
|
25
26
|
events?: Iterable<Evt>
|
|
26
|
-
) => Effect<void, InvalidStateError | OptimisticConcurrencyException,
|
|
27
|
+
) => Effect<void, InvalidStateError | OptimisticConcurrencyException, RSchema | RPublish>
|
|
27
28
|
readonly changeFeed: PubSub.PubSub<[T[], "save" | "remove"]>
|
|
28
29
|
readonly removeAndPublish: (
|
|
29
30
|
items: Iterable<T>,
|
|
30
31
|
events?: Iterable<Evt>
|
|
31
|
-
) => Effect<void, never,
|
|
32
|
+
) => Effect<void, never, RSchema | RPublish>
|
|
32
33
|
|
|
33
34
|
readonly query: {
|
|
34
35
|
<A, R, From extends FieldValues, TType extends "one" | "many" | "count" = "many">(
|
|
@@ -39,7 +40,7 @@ export interface Repository<
|
|
|
39
40
|
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
40
41
|
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
41
42
|
| (TType extends "count" ? never : S.ParseResult.ParseError),
|
|
42
|
-
R
|
|
43
|
+
R | RSchema
|
|
43
44
|
>
|
|
44
45
|
<
|
|
45
46
|
R = never,
|
|
@@ -50,7 +51,7 @@ export interface Repository<
|
|
|
50
51
|
): Effect.Effect<
|
|
51
52
|
TType extends "many" ? readonly RefineTHelper<T, EncodedRefined>[] : RefineTHelper<T, EncodedRefined>,
|
|
52
53
|
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
53
|
-
R
|
|
54
|
+
R | RSchema
|
|
54
55
|
>
|
|
55
56
|
}
|
|
56
57
|
/** @deprecated use query */
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
|
-
import type { FieldValues } from "@effect-app/infra/filter/types"
|
|
5
|
-
import type { FieldPath, FieldPathValue } from "@effect-app/infra/filter/types/path/eager"
|
|
6
|
-
import type { Ops } from "@effect-app/infra/services/Store/filterApi/query"
|
|
7
4
|
import type { Option, S } from "effect-app"
|
|
8
5
|
import { Data, flow, Pipeable } from "effect-app"
|
|
9
6
|
import type { NonNegativeInt } from "effect-app/Schema"
|
|
10
7
|
import type { Covariant } from "effect/Types"
|
|
8
|
+
import type { Ops } from "../filter/filterApi.js"
|
|
9
|
+
import type { FieldValues } from "../filter/types.js"
|
|
10
|
+
import type { FieldPath, FieldPathValue } from "../filter/types/path/eager.js"
|
|
11
11
|
|
|
12
12
|
export type QAll<
|
|
13
13
|
TFieldValues extends FieldValues,
|
|
@@ -269,7 +269,13 @@ export const project: {
|
|
|
269
269
|
A = ExtractFieldValuesRefined<Q>,
|
|
270
270
|
R = never
|
|
271
271
|
>(
|
|
272
|
-
schema: S.Schema<
|
|
272
|
+
schema: S.Schema<
|
|
273
|
+
Option<A>,
|
|
274
|
+
{
|
|
275
|
+
[K in keyof I]: K extends keyof ExtractFieldValuesRefined<Q> ? I[K] : never
|
|
276
|
+
},
|
|
277
|
+
R
|
|
278
|
+
>,
|
|
273
279
|
mode: "collect"
|
|
274
280
|
): (
|
|
275
281
|
current: Q
|
|
@@ -281,7 +287,13 @@ export const project: {
|
|
|
281
287
|
A = ExtractFieldValuesRefined<Q>,
|
|
282
288
|
R = never
|
|
283
289
|
>(
|
|
284
|
-
schema: S.Schema<
|
|
290
|
+
schema: S.Schema<
|
|
291
|
+
A,
|
|
292
|
+
{
|
|
293
|
+
[K in keyof I]: K extends keyof ExtractFieldValuesRefined<Q> ? I[K] : never
|
|
294
|
+
},
|
|
295
|
+
R
|
|
296
|
+
>,
|
|
285
297
|
mode: "project"
|
|
286
298
|
): (
|
|
287
299
|
current: Q
|
|
@@ -292,7 +304,13 @@ export const project: {
|
|
|
292
304
|
A = ExtractFieldValuesRefined<Q>,
|
|
293
305
|
R = never
|
|
294
306
|
>(
|
|
295
|
-
schema: S.Schema<
|
|
307
|
+
schema: S.Schema<
|
|
308
|
+
A,
|
|
309
|
+
{
|
|
310
|
+
[K in keyof I]: K extends keyof ExtractFieldValuesRefined<Q> ? I[K] : never
|
|
311
|
+
},
|
|
312
|
+
R
|
|
313
|
+
>
|
|
296
314
|
): (
|
|
297
315
|
current: Q
|
|
298
316
|
) => QueryProjection<ExtractFieldValuesRefined<Q>, A, R, ExtractTType<Q>>
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import { Match, Option, pipe, S } from "effect-app"
|
|
4
4
|
import { toNonEmptyArray } from "effect-app/Array"
|
|
5
5
|
import { dropUndefinedT } from "effect-app/utils"
|
|
6
|
-
import type {
|
|
7
|
-
import type {
|
|
6
|
+
import type { FilterResult } from "../filter/filterApi.js"
|
|
7
|
+
import type { FieldValues } from "../filter/types.js"
|
|
8
|
+
import type { FieldPath } from "../filter/types/path/eager.js"
|
|
8
9
|
import { make, type Q, type QAll } from "../query/dsl.js"
|
|
9
|
-
import type { FilterResult } from "../Store/filterApi/query.js"
|
|
10
10
|
|
|
11
11
|
type Result<TFieldValues extends FieldValues, A = TFieldValues, R = never> = {
|
|
12
12
|
filter: FilterResult[]
|
package/src/Model.ts
CHANGED
|
@@ -8,11 +8,11 @@ import type { OperationProgress } from "effect-app/Operations"
|
|
|
8
8
|
import { Operation, OperationFailure, OperationId, OperationSuccess } from "effect-app/Operations"
|
|
9
9
|
import { NonEmptyString2k } from "effect-app/Schema"
|
|
10
10
|
import * as Scope from "effect/Scope"
|
|
11
|
-
import { setupRequestContextFromCurrent } from "
|
|
12
|
-
import { batch } from "../rateLimit.js"
|
|
11
|
+
import { setupRequestContextFromCurrent } from "./api/setupRequest.js"
|
|
13
12
|
import { MainFiberSet } from "./MainFiberSet.js"
|
|
13
|
+
import { where } from "./Model/query.js"
|
|
14
14
|
import { OperationsRepo } from "./OperationsRepo.js"
|
|
15
|
-
import {
|
|
15
|
+
import { batch } from "./rateLimit.js"
|
|
16
16
|
import { RequestFiberSet } from "./RequestFiberSet.js"
|
|
17
17
|
|
|
18
18
|
const reportAppError = reportError("Operations.Cleanup")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Effect } from "effect-app"
|
|
2
2
|
import { Operation } from "effect-app/Operations"
|
|
3
|
-
import { makeRepo } from "./
|
|
3
|
+
import { makeRepo } from "./Model.js"
|
|
4
4
|
|
|
5
5
|
export class OperationsRepo extends Effect.Service<OperationsRepo>()(
|
|
6
6
|
"OperationRepo",
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { getRequestContext, setupRequestContext } from "@effect-app/infra/api/setupRequest"
|
|
2
|
-
import { reportNonInterruptedFailure } from "@effect-app/infra/
|
|
3
|
-
import type { QueueBase } from "@effect-app/infra/
|
|
4
|
-
import { QueueMeta } from "@effect-app/infra/
|
|
2
|
+
import { reportNonInterruptedFailure } from "@effect-app/infra/QueueMaker/errors"
|
|
3
|
+
import type { QueueBase } from "@effect-app/infra/QueueMaker/service"
|
|
4
|
+
import { QueueMeta } from "@effect-app/infra/QueueMaker/service"
|
|
5
5
|
import { SqlClient } from "@effect/sql"
|
|
6
6
|
import { randomUUID } from "crypto"
|
|
7
7
|
import { subMinutes } from "date-fns"
|
|
8
8
|
import { Effect, Fiber, Option, S, Tracer } from "effect-app"
|
|
9
9
|
import type { NonEmptyString255 } from "effect-app/Schema"
|
|
10
10
|
import { pretty } from "effect-app/utils"
|
|
11
|
-
import { InfraLogger } from "../../logger.js"
|
|
12
11
|
import { SQLModel } from "../adapters/SQL.js"
|
|
12
|
+
import { InfraLogger } from "../logger.js"
|
|
13
13
|
|
|
14
14
|
export const QueueId = S.Number.pipe(S.brand("QueueId"))
|
|
15
15
|
export type QueueId = typeof QueueId.Type
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Tracer } from "effect"
|
|
2
2
|
import { Effect, Fiber, flow, S } from "effect-app"
|
|
3
3
|
import { pretty } from "effect-app/utils"
|
|
4
|
-
import { getRequestContext, setupRequestContext } from "../../api/setupRequest.js"
|
|
5
|
-
import { InfraLogger } from "../../logger.js"
|
|
6
4
|
import { MemQueue } from "../adapters/memQueue.js"
|
|
5
|
+
import { getRequestContext, setupRequestContext } from "../api/setupRequest.js"
|
|
6
|
+
import { InfraLogger } from "../logger.js"
|
|
7
7
|
import { reportNonInterruptedFailure } from "./errors.js"
|
|
8
8
|
import { type QueueBase, QueueMeta } from "./service.js"
|
|
9
9
|
|
|
@@ -3,8 +3,6 @@ import { Tracer } from "effect"
|
|
|
3
3
|
import { Cause, Effect, flow, Layer, S } from "effect-app"
|
|
4
4
|
import type { StringId } from "effect-app/Schema"
|
|
5
5
|
import { pretty } from "effect-app/utils"
|
|
6
|
-
import { getRequestContext, setupRequestContext } from "../../api/setupRequest.js"
|
|
7
|
-
import { InfraLogger } from "../../logger.js"
|
|
8
6
|
import {
|
|
9
7
|
LiveSender,
|
|
10
8
|
LiveServiceBusClient,
|
|
@@ -12,6 +10,8 @@ import {
|
|
|
12
10
|
ServiceBusReceiverFactory,
|
|
13
11
|
subscribe
|
|
14
12
|
} from "../adapters/ServiceBus.js"
|
|
13
|
+
import { getRequestContext, setupRequestContext } from "../api/setupRequest.js"
|
|
14
|
+
import { InfraLogger } from "../logger.js"
|
|
15
15
|
import { reportNonInterruptedFailure, reportNonInterruptedFailureCause, reportQueueError } from "./errors.js"
|
|
16
16
|
import { type QueueBase, QueueMeta } from "./service.js"
|
|
17
17
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
import type { Tracer } from "effect-app"
|
|
3
3
|
import { Context, Effect, Fiber, FiberSet, Option } from "effect-app"
|
|
4
|
-
import { reportRequestError, reportUnknownRequestError } from "
|
|
5
|
-
import { InfraLogger } from "
|
|
4
|
+
import { reportRequestError, reportUnknownRequestError } from "./api/reportError.js"
|
|
5
|
+
import { InfraLogger } from "./logger.js"
|
|
6
6
|
|
|
7
7
|
const getRootParentSpan = Effect.gen(function*() {
|
|
8
8
|
let span: Tracer.AnySpan | null = yield* Effect.currentSpan.pipe(
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { Array, Effect, Equivalence, pipe } from "effect-app"
|
|
3
3
|
import type { NonEmptyReadonlyArray } from "effect-app"
|
|
4
4
|
import { assertUnreachable } from "effect-app/utils"
|
|
5
|
-
import { InfraLogger } from "
|
|
6
|
-
import type { FilterR, FilterResult } from "
|
|
5
|
+
import { InfraLogger } from "../../logger.js"
|
|
6
|
+
import type { FilterR, FilterResult } from "../../Model/filter/filterApi.js"
|
|
7
7
|
import type { SupportedValues } from "../service.js"
|
|
8
8
|
|
|
9
9
|
export function logQuery(q: {
|
|
@@ -4,9 +4,9 @@ import { Array, Chunk, Duration, Effect, Layer, Option, pipe, Secret, Struct } f
|
|
|
4
4
|
import type { NonEmptyReadonlyArray } from "effect-app"
|
|
5
5
|
import { toNonEmptyArray } from "effect-app/Array"
|
|
6
6
|
import { dropUndefinedT } from "effect-app/utils"
|
|
7
|
-
import { OptimisticConcurrencyException } from "../../errors.js"
|
|
8
|
-
import { InfraLogger } from "../../logger.js"
|
|
9
7
|
import { CosmosClient, CosmosClientLayer } from "../adapters/cosmos-client.js"
|
|
8
|
+
import { OptimisticConcurrencyException } from "../errors.js"
|
|
9
|
+
import { InfraLogger } from "../logger.js"
|
|
10
10
|
import { buildWhereCosmosQuery3, logQuery } from "./Cosmos/query.js"
|
|
11
11
|
import { StoreMaker } from "./service.js"
|
|
12
12
|
import type { FilterArgs, PersistenceModelType, StorageConfig, Store, StoreConfig } from "./service.js"
|
|
@@ -4,7 +4,7 @@ import { Array, Effect, FiberRef, flow, Option, Order, pipe, Ref, Struct } from
|
|
|
4
4
|
import type { NonEmptyReadonlyArray } from "effect-app"
|
|
5
5
|
import { NonEmptyString255 } from "effect-app/Schema"
|
|
6
6
|
import { get } from "effect-app/utils"
|
|
7
|
-
import { InfraLogger } from "
|
|
7
|
+
import { InfraLogger } from "../logger.js"
|
|
8
8
|
import { codeFilter } from "./codeFilter.js"
|
|
9
9
|
import type { FilterArgs, PersistenceModelType, Store, StoreConfig } from "./service.js"
|
|
10
10
|
import { StoreMaker } from "./service.js"
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
3
|
import { Array, Option } from "effect-app"
|
|
4
4
|
import { assertUnreachable, get } from "effect-app/utils"
|
|
5
|
-
import type { FilterR, FilterResult } from "
|
|
5
|
+
import type { FilterR, FilterResult } from "../Model/filter/filterApi.js"
|
|
6
6
|
import type { Filter } from "./service.js"
|
|
7
7
|
import { compare, greaterThan, greaterThanExclusive, lowerThan, lowerThanExclusive } from "./utils.js"
|
|
8
8
|
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import type { UniqueKey } from "@azure/cosmos"
|
|
3
3
|
import { Context, Effect } from "effect-app"
|
|
4
4
|
import type { NonEmptyReadonlyArray, Option, Secret } from "effect-app"
|
|
5
|
-
import type { OptimisticConcurrencyException } from "
|
|
6
|
-
import type {
|
|
7
|
-
import type {
|
|
8
|
-
import type {
|
|
5
|
+
import type { OptimisticConcurrencyException } from "../errors.js"
|
|
6
|
+
import type { FilterResult } from "../Model/filter/filterApi.js"
|
|
7
|
+
import type { FieldValues } from "../Model/filter/types.js"
|
|
8
|
+
import type { FieldPath } from "../Model/filter/types/path/index.js"
|
|
9
9
|
|
|
10
10
|
export type StoreConfig<E> = {
|
|
11
11
|
uniqueKeys?: UniqueKey[]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Effect, Option } from "effect-app"
|
|
2
2
|
import objectHash from "object-hash"
|
|
3
|
-
import { OptimisticConcurrencyException } from "
|
|
3
|
+
import { OptimisticConcurrencyException } from "../errors.js"
|
|
4
4
|
import type { PersistenceModelType, SupportedValues2 } from "./service.js"
|
|
5
5
|
|
|
6
6
|
export const makeETag = <E extends PersistenceModelType<{}>>(
|
package/src/api/setupRequest.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Effect, FiberRef, Layer, Tracer } from "effect-app"
|
|
2
2
|
import { NonEmptyString255 } from "effect-app/Schema"
|
|
3
3
|
import { LocaleRef, RequestContext, spanAttributes } from "../RequestContext.js"
|
|
4
|
-
import { startContextMap } from "../
|
|
5
|
-
import { storeId } from "../
|
|
4
|
+
import { startContextMap } from "../Store/ContextMapContainer.js"
|
|
5
|
+
import { storeId } from "../Store/Memory.js"
|
|
6
6
|
|
|
7
7
|
export const getRequestContext = Effect
|
|
8
8
|
.all({
|
package/src/logger/shared.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Context, FiberRef, Option, Tracer } from "effect-app"
|
|
|
2
2
|
import { NonEmptyString255 } from "effect-app/Schema"
|
|
3
3
|
import * as FiberRefs from "effect/FiberRefs"
|
|
4
4
|
import { LocaleRef, RequestContext } from "../RequestContext.js"
|
|
5
|
-
import { storeId } from "../
|
|
5
|
+
import { storeId } from "../Store/Memory.js"
|
|
6
6
|
|
|
7
7
|
export function getRequestContextFromFiberRefs(fiberRefs: FiberRefs.FiberRefs) {
|
|
8
8
|
const context = FiberRefs.getOrDefault(fiberRefs, FiberRef.currentContext)
|
package/src/test.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { Arbitrary } from "effect"
|
|
|
2
2
|
import { Predicate, S } from "effect-app"
|
|
3
3
|
import { copy } from "effect-app/utils"
|
|
4
4
|
import type { PropertySignature } from "effect/Schema"
|
|
5
|
-
import { generate } from "./
|
|
5
|
+
import { generate } from "./arbs.js"
|
|
6
6
|
|
|
7
7
|
const isPropertySignature = (u: unknown): u is PropertySignature.All =>
|
|
8
8
|
Predicate.hasProperty(u, S.PropertySignatureTypeId)
|
|
@@ -49,4 +49,4 @@ export const createRandomInstanceI = <A extends object, I>(s: S.Schema<A, I, nev
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
export * from "./
|
|
52
|
+
export * from "./arbs.js"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAgB,CAAC,EAAU,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"query.test.d.ts","sourceRoot":"","sources":["../query.test.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAgB,CAAC,EAAU,MAAM,YAAY,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAalF,qBAAa,SAAU,SAAQ,cAK7B;CAAG;AACL,MAAM,CAAC,OAAO,WAAW,SAAS,CAAC;IAEjC,UAAiB,OAAQ,SAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,SAAS,CAAC;KAAG;CACvE;;;;;;;;;;;;;;;;;;;;;;;;;AAGD,qBAAa,WAAY,SAAQ,gBAAgE;CAAG"}
|
package/test/query.test.ts
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
import { Context, Effect, flow, Layer, Option, pipe, S, Struct } from "effect-app"
|
|
4
4
|
import { inspect } from "util"
|
|
5
5
|
import { expect, expectTypeOf, it } from "vitest"
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
6
|
+
import { setupRequestContextFromCurrent } from "../src/api/setupRequest.js"
|
|
7
|
+
import type { QueryEnd, QueryProjection, QueryWhere } from "../src/Model/query.js"
|
|
8
|
+
import { and, count, make, one, or, order, page, project, toFilter, where } from "../src/Model/query.js"
|
|
9
|
+
import { makeRepo } from "../src/Model/Repository.js"
|
|
10
|
+
import { memFilter, MemoryStoreLive } from "../src/Store/Memory.js"
|
|
10
11
|
|
|
11
12
|
const str = S.Struct({ _tag: S.Literal("string"), value: S.String })
|
|
12
13
|
const num = S.Struct({ _tag: S.Literal("number"), value: S.Number })
|
|
@@ -226,7 +227,7 @@ it(
|
|
|
226
227
|
expect(result).toEqual([])
|
|
227
228
|
expect(result2).toEqual([])
|
|
228
229
|
})
|
|
229
|
-
.pipe(Effect.provide(MemoryStoreLive), Effect.runPromise)
|
|
230
|
+
.pipe(Effect.provide(MemoryStoreLive), setupRequestContextFromCurrent(), Effect.runPromise)
|
|
230
231
|
)
|
|
231
232
|
|
|
232
233
|
it(
|
|
@@ -408,3 +409,29 @@ it(
|
|
|
408
409
|
})
|
|
409
410
|
.pipe(Effect.runPromise)
|
|
410
411
|
)
|
|
412
|
+
|
|
413
|
+
it(
|
|
414
|
+
"project",
|
|
415
|
+
() =>
|
|
416
|
+
Effect
|
|
417
|
+
.gen(function*() {
|
|
418
|
+
const schema = S.Struct({
|
|
419
|
+
id: S.String,
|
|
420
|
+
createdAt: S
|
|
421
|
+
.optional(S.Date)
|
|
422
|
+
.pipe(
|
|
423
|
+
S.withDefaults({ constructor: () => new Date(), decoding: () => new Date() })
|
|
424
|
+
)
|
|
425
|
+
})
|
|
426
|
+
const repo = yield* makeRepo(
|
|
427
|
+
"test",
|
|
428
|
+
schema,
|
|
429
|
+
{}
|
|
430
|
+
)
|
|
431
|
+
|
|
432
|
+
const result = yield* repo.query(flow(where("id", "123"), project(schema)))
|
|
433
|
+
|
|
434
|
+
expect(result).toEqual([])
|
|
435
|
+
})
|
|
436
|
+
.pipe(Effect.provide(MemoryStoreLive), setupRequestContextFromCurrent(), Effect.runPromise)
|
|
437
|
+
)
|