@effect-app/infra 4.0.0-beta.25 → 4.0.0-beta.250
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 +1892 -0
- package/_check.sh +1 -1
- package/dist/CUPS.d.ts +30 -11
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +35 -14
- package/dist/ContextProvider.d.ts +34 -0
- package/dist/ContextProvider.d.ts.map +1 -0
- package/dist/ContextProvider.js +40 -0
- package/dist/Emailer/Sendgrid.d.ts +111 -147
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +24 -19
- package/dist/Emailer/fake.d.ts +2 -2
- package/dist/Emailer/fake.d.ts.map +1 -1
- package/dist/Emailer/fake.js +4 -4
- package/dist/MainFiberSet.d.ts +12 -9
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +10 -6
- package/dist/QueueMaker/SQLQueue.d.ts +8 -9
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +138 -120
- package/dist/QueueMaker/errors.d.ts +5 -3
- package/dist/QueueMaker/errors.d.ts.map +1 -1
- package/dist/QueueMaker/errors.js +4 -2
- package/dist/QueueMaker/memQueue.d.ts +10 -6
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +84 -68
- package/dist/QueueMaker/sbqueue.d.ts +9 -5
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +60 -58
- package/dist/RequestFiberSet.d.ts +10 -7
- package/dist/RequestFiberSet.d.ts.map +1 -1
- package/dist/RequestFiberSet.js +13 -8
- package/dist/SQL/Model.d.ts +468 -0
- package/dist/SQL/Model.d.ts.map +1 -0
- package/dist/SQL/Model.js +469 -0
- package/dist/SQL.d.ts +2 -0
- package/dist/SQL.d.ts.map +1 -0
- package/dist/{adapters/SQL.js → SQL.js} +1 -1
- package/dist/ServiceBus.d.ts +61 -0
- package/dist/ServiceBus.d.ts.map +1 -0
- package/dist/ServiceBus.js +108 -0
- package/dist/Store/Cosmos/query.d.ts +15 -4
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +179 -41
- package/dist/Store/Cosmos.d.ts +3 -3
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +345 -246
- package/dist/Store/Disk.d.ts +5 -5
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +77 -37
- package/dist/Store/Memory.d.ts +9 -6
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +328 -63
- package/dist/Store/SQL/Pg.d.ts +4 -0
- package/dist/Store/SQL/Pg.d.ts.map +1 -0
- package/dist/Store/SQL/Pg.js +233 -0
- package/dist/Store/SQL/query.d.ts +49 -0
- package/dist/Store/SQL/query.d.ts.map +1 -0
- package/dist/Store/SQL/query.js +527 -0
- package/dist/Store/SQL.d.ts +21 -0
- package/dist/Store/SQL.d.ts.map +1 -0
- package/dist/Store/SQL.js +450 -0
- package/dist/Store/codeFilter.d.ts +5 -5
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +6 -3
- package/dist/Store/index.d.ts +7 -5
- package/dist/Store/index.d.ts.map +1 -1
- package/dist/Store/index.js +18 -5
- package/dist/Store/utils.d.ts +4 -3
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +5 -5
- package/dist/arbs.d.ts +2 -2
- package/dist/arbs.d.ts.map +1 -1
- package/dist/arbs.js +5 -3
- package/dist/codec.d.ts +5 -0
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +5 -0
- package/dist/cosmos-client.d.ts +16 -0
- package/dist/cosmos-client.d.ts.map +1 -0
- package/dist/cosmos-client.js +11 -0
- package/dist/errorReporter.d.ts +7 -5
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +23 -27
- package/dist/errors.d.ts +1 -1
- package/dist/fileUtil.d.ts +2 -2
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/fileUtil.js +2 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/internal/RequestContextMiddleware.d.ts +5 -0
- package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
- package/dist/internal/RequestContextMiddleware.js +46 -0
- package/dist/internal/auth.d.ts +53 -0
- package/dist/internal/auth.d.ts.map +1 -0
- package/dist/internal/auth.js +180 -0
- package/dist/internal/events.d.ts +11 -0
- package/dist/internal/events.d.ts.map +1 -0
- package/dist/internal/events.js +49 -0
- package/dist/internal/health.d.ts +3 -0
- package/dist/internal/health.d.ts.map +1 -0
- package/dist/internal/health.js +5 -0
- package/dist/layerUtils.d.ts +32 -0
- package/dist/layerUtils.d.ts.map +1 -0
- package/dist/layerUtils.js +17 -0
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +5 -3
- package/dist/logger/logFmtLogger.d.ts +2 -2
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +3 -3
- package/dist/logger/shared.d.ts +3 -3
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +4 -4
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/memQueue.d.ts +15 -0
- package/dist/memQueue.d.ts.map +1 -0
- package/dist/memQueue.js +21 -0
- package/dist/middlewares.d.ts +10 -0
- package/dist/middlewares.d.ts.map +1 -0
- package/dist/{api/middlewares.js → middlewares.js} +1 -1
- package/dist/mongo-client.d.ts +11 -0
- package/dist/mongo-client.d.ts.map +1 -0
- package/dist/mongo-client.js +15 -0
- package/dist/otel.d.ts +75 -0
- package/dist/otel.d.ts.map +1 -0
- package/dist/otel.js +65 -0
- package/dist/rateLimit.d.ts +12 -4
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +7 -12
- package/dist/redis-client.d.ts +42 -0
- package/dist/redis-client.d.ts.map +1 -0
- package/dist/redis-client.js +98 -0
- package/dist/reportError.d.ts +4 -0
- package/dist/reportError.d.ts.map +1 -0
- package/dist/reportError.js +28 -0
- package/dist/routing/middleware/RouterMiddleware.d.ts +16 -0
- package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
- package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
- package/dist/routing/middleware/middleware.d.ts +48 -0
- package/dist/routing/middleware/middleware.d.ts.map +1 -0
- package/dist/routing/middleware/middleware.js +128 -0
- package/dist/routing/middleware.d.ts +3 -0
- package/dist/routing/middleware.d.ts.map +1 -0
- package/dist/{api/routing → routing}/middleware.js +1 -2
- package/dist/routing/schema/jwt.d.ts +4 -0
- package/dist/routing/schema/jwt.d.ts.map +1 -0
- package/dist/routing/schema/jwt.js +13 -0
- package/dist/routing/tsort.d.ts +8 -0
- package/dist/routing/tsort.d.ts.map +1 -0
- package/dist/routing/tsort.js +51 -0
- package/dist/routing/utils.d.ts +19 -0
- package/dist/routing/utils.d.ts.map +1 -0
- package/dist/routing/utils.js +45 -0
- package/dist/routing.d.ts +184 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/routing.js +236 -0
- package/dist/setupRequest.d.ts +19 -0
- package/dist/setupRequest.d.ts.map +1 -0
- package/dist/setupRequest.js +70 -0
- package/dist/test.d.ts +3 -3
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +2 -2
- package/dist/util.d.ts +3 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +14 -0
- package/dist/vitest.d.ts +1 -1
- package/examples/query.ts +47 -39
- package/package.json +123 -234
- package/src/CUPS.ts +52 -13
- package/src/{api/ContextProvider.ts → ContextProvider.ts} +19 -16
- package/src/Emailer/Sendgrid.ts +82 -59
- package/src/Emailer/fake.ts +3 -3
- package/src/MainFiberSet.ts +12 -10
- package/src/QueueMaker/SQLQueue.ts +153 -156
- package/src/QueueMaker/errors.ts +3 -1
- package/src/QueueMaker/memQueue.ts +113 -107
- package/src/QueueMaker/sbqueue.ts +78 -90
- package/src/RequestFiberSet.ts +13 -8
- package/src/{adapters/SQL → SQL}/Model.ts +42 -41
- package/src/ServiceBus.ts +219 -0
- package/src/Store/Cosmos/query.ts +216 -52
- package/src/Store/Cosmos.ts +494 -353
- package/src/Store/Disk.ts +108 -68
- package/src/Store/Memory.ts +367 -93
- package/src/Store/SQL/Pg.ts +364 -0
- package/src/Store/SQL/query.ts +603 -0
- package/src/Store/SQL.ts +736 -0
- package/src/Store/codeFilter.ts +8 -5
- package/src/Store/index.ts +21 -6
- package/src/Store/utils.ts +26 -24
- package/src/arbs.ts +5 -3
- package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +5 -3
- package/src/errorReporter.ts +66 -76
- package/src/fileUtil.ts +1 -1
- package/src/index.ts +2 -1
- package/src/internal/RequestContextMiddleware.ts +60 -0
- package/src/internal/auth.ts +272 -0
- package/src/{api/internal → internal}/events.ts +22 -13
- package/src/{api/layerUtils.ts → layerUtils.ts} +14 -10
- package/src/logger/jsonLogger.ts +4 -2
- package/src/logger/logFmtLogger.ts +2 -2
- package/src/logger/shared.ts +4 -3
- package/src/{adapters/memQueue.ts → memQueue.ts} +5 -4
- package/src/{adapters/mongo-client.ts → mongo-client.ts} +4 -2
- package/src/otel.ts +152 -0
- package/src/rateLimit.ts +34 -23
- package/src/{adapters/redis-client.ts → redis-client.ts} +7 -3
- package/src/{api/reportError.ts → reportError.ts} +3 -2
- package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +5 -4
- package/src/{api/routing → routing}/middleware/middleware.ts +62 -17
- package/src/routing/middleware.ts +4 -0
- package/src/{api/routing → routing}/schema/jwt.ts +2 -1
- package/src/{api/routing → routing}/utils.ts +2 -1
- package/src/routing.ts +768 -0
- package/src/setupRequest.ts +135 -0
- package/src/test.ts +2 -2
- package/test/auth.test.ts +101 -0
- package/test/contextProvider.test.ts +15 -12
- package/test/controller.test.ts +28 -32
- package/test/cosmos-query.test.ts +159 -0
- package/test/dist/auth.test.d.ts.map +1 -0
- package/test/dist/contextProvider.test.d.ts.map +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/cosmos-query.test.d.ts.map +1 -0
- package/test/dist/date-query.test.d.ts.map +1 -0
- package/test/dist/fixtures.d.ts +30 -12
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +17 -10
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/dist/repository-ext.test.d.ts.map +1 -0
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/router-generator.test.d.ts.map +1 -0
- package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
- package/test/dist/rpc-context-map-streaming.test.d.ts.map +1 -0
- package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
- package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
- package/test/dist/sql-store.test.d.ts.map +1 -0
- package/test/fixtures.ts +16 -9
- package/test/layerUtils.test.ts +2 -2
- package/test/query.test.ts +903 -40
- package/test/rawQuery.test.ts +340 -22
- package/test/repository-ext.test.ts +62 -0
- package/test/requires.test.ts +10 -5
- package/test/router-generator.test.ts +187 -0
- package/test/routing-interruptibility.test.ts +66 -0
- package/test/rpc-context-map-streaming.test.ts +262 -0
- package/test/rpc-e2e-invalidation.test.ts +256 -0
- package/test/rpc-multi-middleware.test.ts +85 -10
- package/test/rpc-stream-fullstack.test.ts +304 -0
- package/test/sql-store.test.ts +1711 -0
- package/test/validateSample.test.ts +19 -14
- package/tsconfig.examples.json +1 -1
- package/tsconfig.json +2 -1
- package/tsconfig.json.bak +2 -2
- package/tsconfig.src.json +35 -35
- package/tsconfig.test.json +2 -2
- package/dist/Emailer/service.d.ts +0 -55
- package/dist/Emailer/service.d.ts.map +0 -1
- package/dist/Emailer/service.js +0 -6
- package/dist/Emailer.d.ts +0 -2
- package/dist/Emailer.d.ts.map +0 -1
- package/dist/Emailer.js +0 -2
- package/dist/Model/Repository/ext.d.ts +0 -41
- package/dist/Model/Repository/ext.d.ts.map +0 -1
- package/dist/Model/Repository/ext.js +0 -65
- package/dist/Model/Repository/internal/internal.d.ts +0 -59
- package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
- package/dist/Model/Repository/internal/internal.js +0 -316
- package/dist/Model/Repository/legacy.d.ts +0 -19
- package/dist/Model/Repository/legacy.d.ts.map +0 -1
- package/dist/Model/Repository/legacy.js +0 -2
- package/dist/Model/Repository/makeRepo.d.ts +0 -49
- package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
- package/dist/Model/Repository/makeRepo.js +0 -24
- package/dist/Model/Repository/service.d.ts +0 -89
- package/dist/Model/Repository/service.d.ts.map +0 -1
- package/dist/Model/Repository/service.js +0 -2
- package/dist/Model/Repository/validation.d.ts +0 -42
- package/dist/Model/Repository/validation.d.ts.map +0 -1
- package/dist/Model/Repository/validation.js +0 -32
- package/dist/Model/Repository.d.ts +0 -6
- package/dist/Model/Repository.d.ts.map +0 -1
- package/dist/Model/Repository.js +0 -6
- package/dist/Model/dsl.d.ts +0 -32
- package/dist/Model/dsl.d.ts.map +0 -1
- package/dist/Model/dsl.js +0 -44
- package/dist/Model/filter/filterApi.d.ts +0 -30
- package/dist/Model/filter/filterApi.d.ts.map +0 -1
- package/dist/Model/filter/filterApi.js +0 -2
- package/dist/Model/filter/types/errors.d.ts +0 -29
- package/dist/Model/filter/types/errors.d.ts.map +0 -1
- package/dist/Model/filter/types/errors.js +0 -2
- package/dist/Model/filter/types/fields.d.ts +0 -15
- package/dist/Model/filter/types/fields.d.ts.map +0 -1
- package/dist/Model/filter/types/fields.js +0 -2
- package/dist/Model/filter/types/path/common.d.ts +0 -316
- package/dist/Model/filter/types/path/common.d.ts.map +0 -1
- package/dist/Model/filter/types/path/common.js +0 -2
- package/dist/Model/filter/types/path/eager.d.ts +0 -95
- package/dist/Model/filter/types/path/eager.d.ts.map +0 -1
- package/dist/Model/filter/types/path/eager.js +0 -31
- package/dist/Model/filter/types/path/index.d.ts +0 -4
- package/dist/Model/filter/types/path/index.d.ts.map +0 -1
- package/dist/Model/filter/types/path/index.js +0 -3
- package/dist/Model/filter/types/utils.d.ts +0 -79
- package/dist/Model/filter/types/utils.d.ts.map +0 -1
- package/dist/Model/filter/types/utils.js +0 -2
- package/dist/Model/filter/types/validator.d.ts +0 -30
- package/dist/Model/filter/types/validator.d.ts.map +0 -1
- package/dist/Model/filter/types/validator.js +0 -2
- package/dist/Model/filter/types.d.ts +0 -5
- package/dist/Model/filter/types.d.ts.map +0 -1
- package/dist/Model/filter/types.js +0 -7
- package/dist/Model/query/dsl.d.ts +0 -248
- package/dist/Model/query/dsl.d.ts.map +0 -1
- package/dist/Model/query/dsl.js +0 -104
- package/dist/Model/query/new-kid-interpreter.d.ts +0 -28
- package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
- package/dist/Model/query/new-kid-interpreter.js +0 -165
- package/dist/Model/query.d.ts +0 -15
- package/dist/Model/query.d.ts.map +0 -1
- package/dist/Model/query.js +0 -3
- package/dist/Model.d.ts +0 -4
- package/dist/Model.d.ts.map +0 -1
- package/dist/Model.js +0 -4
- package/dist/Operations.d.ts +0 -55
- package/dist/Operations.d.ts.map +0 -1
- package/dist/Operations.js +0 -102
- package/dist/OperationsRepo.d.ts +0 -41
- package/dist/OperationsRepo.d.ts.map +0 -1
- package/dist/OperationsRepo.js +0 -14
- package/dist/QueueMaker/service.d.ts +0 -11
- package/dist/QueueMaker/service.d.ts.map +0 -1
- package/dist/QueueMaker/service.js +0 -4
- package/dist/RequestContext.d.ts +0 -63
- package/dist/RequestContext.d.ts.map +0 -1
- package/dist/RequestContext.js +0 -49
- package/dist/Store/ContextMapContainer.d.ts +0 -14
- package/dist/Store/ContextMapContainer.d.ts.map +0 -1
- package/dist/Store/ContextMapContainer.js +0 -16
- package/dist/Store/service.d.ts +0 -108
- package/dist/Store/service.d.ts.map +0 -1
- package/dist/Store/service.js +0 -71
- package/dist/Store.d.ts +0 -2
- package/dist/Store.d.ts.map +0 -1
- package/dist/Store.js +0 -2
- package/dist/adapters/SQL/Model.d.ts +0 -479
- package/dist/adapters/SQL/Model.d.ts.map +0 -1
- package/dist/adapters/SQL/Model.js +0 -478
- package/dist/adapters/SQL.d.ts +0 -2
- package/dist/adapters/SQL.d.ts.map +0 -1
- package/dist/adapters/ServiceBus.d.ts +0 -58
- package/dist/adapters/ServiceBus.d.ts.map +0 -1
- package/dist/adapters/ServiceBus.js +0 -99
- package/dist/adapters/cosmos-client.d.ts +0 -14
- package/dist/adapters/cosmos-client.d.ts.map +0 -1
- package/dist/adapters/cosmos-client.js +0 -9
- package/dist/adapters/index.d.ts +0 -2
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -2
- package/dist/adapters/logger.d.ts +0 -9
- package/dist/adapters/logger.d.ts.map +0 -1
- package/dist/adapters/logger.js +0 -3
- package/dist/adapters/memQueue.d.ts +0 -13
- package/dist/adapters/memQueue.d.ts.map +0 -1
- package/dist/adapters/memQueue.js +0 -20
- package/dist/adapters/mongo-client.d.ts +0 -10
- package/dist/adapters/mongo-client.d.ts.map +0 -1
- package/dist/adapters/mongo-client.js +0 -13
- package/dist/adapters/redis-client.d.ts +0 -39
- package/dist/adapters/redis-client.d.ts.map +0 -1
- package/dist/adapters/redis-client.js +0 -94
- package/dist/api/ContextProvider.d.ts +0 -31
- package/dist/api/ContextProvider.d.ts.map +0 -1
- package/dist/api/ContextProvider.js +0 -38
- package/dist/api/codec.d.ts +0 -5
- package/dist/api/codec.d.ts.map +0 -1
- package/dist/api/codec.js +0 -5
- package/dist/api/internal/RequestContextMiddleware.d.ts +0 -5
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
- package/dist/api/internal/RequestContextMiddleware.js +0 -35
- package/dist/api/internal/auth.d.ts +0 -15
- package/dist/api/internal/auth.d.ts.map +0 -1
- package/dist/api/internal/auth.js +0 -47
- package/dist/api/internal/events.d.ts +0 -9
- package/dist/api/internal/events.d.ts.map +0 -1
- package/dist/api/internal/events.js +0 -42
- package/dist/api/internal/health.d.ts +0 -3
- package/dist/api/internal/health.d.ts.map +0 -1
- package/dist/api/internal/health.js +0 -5
- package/dist/api/layerUtils.d.ts +0 -24
- package/dist/api/layerUtils.d.ts.map +0 -1
- package/dist/api/layerUtils.js +0 -16
- package/dist/api/middlewares.d.ts +0 -10
- package/dist/api/middlewares.d.ts.map +0 -1
- package/dist/api/reportError.d.ts +0 -4
- package/dist/api/reportError.d.ts.map +0 -1
- package/dist/api/reportError.js +0 -27
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +0 -15
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/middleware.d.ts +0 -9
- package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/middleware.js +0 -92
- package/dist/api/routing/middleware.d.ts +0 -4
- package/dist/api/routing/middleware.d.ts.map +0 -1
- package/dist/api/routing/schema/jwt.d.ts +0 -4
- package/dist/api/routing/schema/jwt.d.ts.map +0 -1
- package/dist/api/routing/schema/jwt.js +0 -12
- package/dist/api/routing/tsort.d.ts +0 -8
- package/dist/api/routing/tsort.d.ts.map +0 -1
- package/dist/api/routing/tsort.js +0 -51
- package/dist/api/routing/utils.d.ts +0 -19
- package/dist/api/routing/utils.d.ts.map +0 -1
- package/dist/api/routing/utils.js +0 -44
- package/dist/api/routing.d.ts +0 -138
- package/dist/api/routing.d.ts.map +0 -1
- package/dist/api/routing.js +0 -166
- package/dist/api/setupRequest.d.ts +0 -12
- package/dist/api/setupRequest.d.ts.map +0 -1
- package/dist/api/setupRequest.js +0 -44
- package/dist/api/util.d.ts +0 -3
- package/dist/api/util.d.ts.map +0 -1
- package/dist/api/util.js +0 -14
- package/eslint.config.mjs +0 -24
- package/src/Emailer/service.ts +0 -52
- package/src/Emailer.ts +0 -1
- package/src/Model/Repository/ext.ts +0 -283
- package/src/Model/Repository/internal/internal.ts +0 -577
- package/src/Model/Repository/legacy.ts +0 -27
- package/src/Model/Repository/makeRepo.ts +0 -139
- package/src/Model/Repository/service.ts +0 -627
- package/src/Model/Repository/validation.ts +0 -31
- package/src/Model/Repository.ts +0 -5
- package/src/Model/dsl.ts +0 -128
- package/src/Model/filter/filterApi.ts +0 -60
- package/src/Model/filter/types/errors.ts +0 -47
- package/src/Model/filter/types/fields.ts +0 -50
- package/src/Model/filter/types/path/common.ts +0 -404
- package/src/Model/filter/types/path/eager.ts +0 -298
- package/src/Model/filter/types/path/index.ts +0 -4
- package/src/Model/filter/types/utils.ts +0 -128
- package/src/Model/filter/types/validator.ts +0 -46
- package/src/Model/filter/types.ts +0 -6
- package/src/Model/query/dsl.ts +0 -2110
- package/src/Model/query/new-kid-interpreter.ts +0 -210
- package/src/Model/query.ts +0 -13
- package/src/Model.ts +0 -3
- package/src/Operations.ts +0 -235
- package/src/OperationsRepo.ts +0 -16
- package/src/QueueMaker/service.ts +0 -17
- package/src/RequestContext.ts +0 -63
- package/src/Store/ContextMapContainer.ts +0 -20
- package/src/Store/service.ts +0 -184
- package/src/Store.ts +0 -1
- package/src/adapters/ServiceBus.ts +0 -209
- package/src/adapters/index.ts +0 -0
- package/src/adapters/logger.ts +0 -3
- package/src/api/internal/RequestContextMiddleware.ts +0 -42
- package/src/api/internal/auth.ts +0 -68
- package/src/api/routing/middleware.ts +0 -6
- package/src/api/routing.ts +0 -598
- package/src/api/setupRequest.ts +0 -84
- /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
- /package/src/{api/codec.ts → codec.ts} +0 -0
- /package/src/{api/internal → internal}/health.ts +0 -0
- /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
- /package/src/{api/routing → routing}/tsort.ts +0 -0
- /package/src/{api/util.ts → util.ts} +0 -0
|
@@ -1,627 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import type { Effect, Option, PubSub, S } from "effect-app"
|
|
3
|
-
import type { InvalidStateError, NotFoundError, OptimisticConcurrencyException } from "effect-app/client/errors"
|
|
4
|
-
import type { NonNegativeInt } from "effect-app/Schema/numbers"
|
|
5
|
-
import type { FieldValues, IsNever, ResolveFirstLevel } from "../filter/types.js"
|
|
6
|
-
import type { QAll, Query, QueryProjection, RawQuery } from "../query.js"
|
|
7
|
-
import type { Mapped } from "./legacy.js"
|
|
8
|
-
import type { ValidationResult } from "./validation.js"
|
|
9
|
-
|
|
10
|
-
export interface Repository<
|
|
11
|
-
T,
|
|
12
|
-
Encoded extends FieldValues,
|
|
13
|
-
Evt,
|
|
14
|
-
ItemType extends string,
|
|
15
|
-
IdKey extends keyof T,
|
|
16
|
-
RSchema,
|
|
17
|
-
RPublish
|
|
18
|
-
> {
|
|
19
|
-
readonly itemType: ItemType
|
|
20
|
-
readonly idKey: IdKey
|
|
21
|
-
readonly find: (id: T[IdKey]) => Effect.Effect<Option.Option<T>, never, RSchema>
|
|
22
|
-
readonly all: Effect.Effect<T[], never, RSchema>
|
|
23
|
-
readonly saveAndPublish: (
|
|
24
|
-
items: Iterable<T>,
|
|
25
|
-
events?: Iterable<Evt>
|
|
26
|
-
) => Effect.Effect<void, InvalidStateError | OptimisticConcurrencyException, RSchema | RPublish>
|
|
27
|
-
readonly changeFeed: PubSub.PubSub<[T[], "save" | "remove"]>
|
|
28
|
-
readonly removeAndPublish: (
|
|
29
|
-
items: Iterable<T>,
|
|
30
|
-
events?: Iterable<Evt>
|
|
31
|
-
) => Effect.Effect<void, never, RSchema | RPublish>
|
|
32
|
-
|
|
33
|
-
readonly removeById: (...id: readonly T[IdKey][]) => Effect.Effect<void, never, RSchema>
|
|
34
|
-
|
|
35
|
-
readonly queryRaw: <T, Out, R>(
|
|
36
|
-
schema: S.Codec<T, Out, R>,
|
|
37
|
-
raw: RawQuery<Encoded, Out>
|
|
38
|
-
) => Effect.Effect<readonly T[], S.SchemaError, R>
|
|
39
|
-
|
|
40
|
-
readonly query: {
|
|
41
|
-
// ending with projection
|
|
42
|
-
<
|
|
43
|
-
A,
|
|
44
|
-
R,
|
|
45
|
-
From extends FieldValues,
|
|
46
|
-
TType extends "one" | "many" | "count" = "many",
|
|
47
|
-
E extends boolean = false
|
|
48
|
-
>(
|
|
49
|
-
q: (
|
|
50
|
-
initial: Query<Encoded>
|
|
51
|
-
) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
52
|
-
): Effect.Effect<
|
|
53
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
54
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
55
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
56
|
-
R | RSchema
|
|
57
|
-
>
|
|
58
|
-
<
|
|
59
|
-
A,
|
|
60
|
-
R,
|
|
61
|
-
From extends FieldValues,
|
|
62
|
-
TType extends "one" | "many" | "count" = "many",
|
|
63
|
-
$A = never,
|
|
64
|
-
E extends boolean = false
|
|
65
|
-
>(
|
|
66
|
-
q1: (
|
|
67
|
-
initial: Query<Encoded>
|
|
68
|
-
) => $A,
|
|
69
|
-
q2: (
|
|
70
|
-
_: $A
|
|
71
|
-
) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
72
|
-
): Effect.Effect<
|
|
73
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
74
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
75
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
76
|
-
R | RSchema
|
|
77
|
-
>
|
|
78
|
-
<
|
|
79
|
-
A,
|
|
80
|
-
R,
|
|
81
|
-
From extends FieldValues,
|
|
82
|
-
TType extends "one" | "many" | "count" = "many",
|
|
83
|
-
$A = never,
|
|
84
|
-
$B = never,
|
|
85
|
-
E extends boolean = false
|
|
86
|
-
>(
|
|
87
|
-
q1: (
|
|
88
|
-
initial: Query<Encoded>
|
|
89
|
-
) => $A,
|
|
90
|
-
q2: (_: $A) => $B,
|
|
91
|
-
q3: (
|
|
92
|
-
_: $B
|
|
93
|
-
) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
94
|
-
): Effect.Effect<
|
|
95
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
96
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
97
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
98
|
-
R | RSchema
|
|
99
|
-
>
|
|
100
|
-
<
|
|
101
|
-
A,
|
|
102
|
-
R,
|
|
103
|
-
From extends FieldValues,
|
|
104
|
-
TType extends "one" | "many" | "count" = "many",
|
|
105
|
-
$A = never,
|
|
106
|
-
$B = never,
|
|
107
|
-
$C = never,
|
|
108
|
-
E extends boolean = false
|
|
109
|
-
>(
|
|
110
|
-
q1: (
|
|
111
|
-
initial: Query<Encoded>
|
|
112
|
-
) => $A,
|
|
113
|
-
q2: (_: $A) => $B,
|
|
114
|
-
q3: (_: $B) => $C,
|
|
115
|
-
q4: (
|
|
116
|
-
_: $C
|
|
117
|
-
) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
118
|
-
): Effect.Effect<
|
|
119
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
120
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
121
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
122
|
-
R | RSchema
|
|
123
|
-
>
|
|
124
|
-
<
|
|
125
|
-
A,
|
|
126
|
-
R,
|
|
127
|
-
From extends FieldValues,
|
|
128
|
-
TType extends "one" | "many" | "count" = "many",
|
|
129
|
-
$A = never,
|
|
130
|
-
$B = never,
|
|
131
|
-
$C = never,
|
|
132
|
-
$D = never,
|
|
133
|
-
E extends boolean = false
|
|
134
|
-
>(
|
|
135
|
-
q1: (
|
|
136
|
-
initial: Query<Encoded>
|
|
137
|
-
) => $A,
|
|
138
|
-
q2: (_: $A) => $B,
|
|
139
|
-
q3: (_: $B) => $C,
|
|
140
|
-
q4: (_: $C) => $D,
|
|
141
|
-
q5: (
|
|
142
|
-
_: $D
|
|
143
|
-
) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
144
|
-
): Effect.Effect<
|
|
145
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
146
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
147
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
148
|
-
R | RSchema
|
|
149
|
-
>
|
|
150
|
-
<
|
|
151
|
-
A,
|
|
152
|
-
R,
|
|
153
|
-
From extends FieldValues,
|
|
154
|
-
TType extends "one" | "many" | "count" = "many",
|
|
155
|
-
$A = never,
|
|
156
|
-
$B = never,
|
|
157
|
-
$C = never,
|
|
158
|
-
$D = never,
|
|
159
|
-
$E = never,
|
|
160
|
-
E extends boolean = false
|
|
161
|
-
>(
|
|
162
|
-
q1: (
|
|
163
|
-
initial: Query<Encoded>
|
|
164
|
-
) => $A,
|
|
165
|
-
q2: (_: $A) => $B,
|
|
166
|
-
q3: (_: $B) => $C,
|
|
167
|
-
q4: (_: $C) => $D,
|
|
168
|
-
q5: (_: $D) => $E,
|
|
169
|
-
q6: (_: $E) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
170
|
-
): Effect.Effect<
|
|
171
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
172
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
173
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
174
|
-
R | RSchema
|
|
175
|
-
>
|
|
176
|
-
<
|
|
177
|
-
A,
|
|
178
|
-
R,
|
|
179
|
-
From extends FieldValues,
|
|
180
|
-
TType extends "one" | "many" | "count" = "many",
|
|
181
|
-
$A = never,
|
|
182
|
-
$B = never,
|
|
183
|
-
$C = never,
|
|
184
|
-
$D = never,
|
|
185
|
-
$E = never,
|
|
186
|
-
$F = never,
|
|
187
|
-
E extends boolean = false
|
|
188
|
-
>(
|
|
189
|
-
q1: (
|
|
190
|
-
initial: Query<Encoded>
|
|
191
|
-
) => $A,
|
|
192
|
-
q2: (_: $A) => $B,
|
|
193
|
-
q3: (_: $B) => $C,
|
|
194
|
-
q4: (_: $C) => $D,
|
|
195
|
-
q5: (_: $D) => $E,
|
|
196
|
-
q6: (_: $E) => $F,
|
|
197
|
-
q7: (_: $F) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
198
|
-
): Effect.Effect<
|
|
199
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
200
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
201
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
202
|
-
R | RSchema
|
|
203
|
-
>
|
|
204
|
-
<
|
|
205
|
-
A,
|
|
206
|
-
R,
|
|
207
|
-
From extends FieldValues,
|
|
208
|
-
TType extends "one" | "many" | "count" = "many",
|
|
209
|
-
$A = never,
|
|
210
|
-
$B = never,
|
|
211
|
-
$C = never,
|
|
212
|
-
$D = never,
|
|
213
|
-
$E = never,
|
|
214
|
-
$F = never,
|
|
215
|
-
$G = never,
|
|
216
|
-
E extends boolean = false
|
|
217
|
-
>(
|
|
218
|
-
q1: (
|
|
219
|
-
initial: Query<Encoded>
|
|
220
|
-
) => $A,
|
|
221
|
-
q2: (_: $A) => $B,
|
|
222
|
-
q3: (_: $B) => $C,
|
|
223
|
-
q4: (_: $C) => $D,
|
|
224
|
-
q5: (_: $D) => $E,
|
|
225
|
-
q6: (_: $E) => $F,
|
|
226
|
-
q7: (_: $F) => $G,
|
|
227
|
-
q8: (_: $G) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
228
|
-
): Effect.Effect<
|
|
229
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
230
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
231
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
232
|
-
R | RSchema
|
|
233
|
-
>
|
|
234
|
-
<
|
|
235
|
-
A,
|
|
236
|
-
R,
|
|
237
|
-
From extends FieldValues,
|
|
238
|
-
TType extends "one" | "many" | "count" = "many",
|
|
239
|
-
$A = never,
|
|
240
|
-
$B = never,
|
|
241
|
-
$C = never,
|
|
242
|
-
$D = never,
|
|
243
|
-
$E = never,
|
|
244
|
-
$F = never,
|
|
245
|
-
$G = never,
|
|
246
|
-
$H = never,
|
|
247
|
-
E extends boolean = false
|
|
248
|
-
>(
|
|
249
|
-
q1: (
|
|
250
|
-
initial: Query<Encoded>
|
|
251
|
-
) => $A,
|
|
252
|
-
q2: (_: $A) => $B,
|
|
253
|
-
q3: (_: $B) => $C,
|
|
254
|
-
q4: (_: $C) => $D,
|
|
255
|
-
q5: (_: $D) => $E,
|
|
256
|
-
q6: (_: $E) => $F,
|
|
257
|
-
q7: (_: $F) => $G,
|
|
258
|
-
q8: (_: $G) => $H,
|
|
259
|
-
q9: (_: $H) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
260
|
-
): Effect.Effect<
|
|
261
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
262
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
263
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
264
|
-
R | RSchema
|
|
265
|
-
>
|
|
266
|
-
<
|
|
267
|
-
A,
|
|
268
|
-
R,
|
|
269
|
-
From extends FieldValues,
|
|
270
|
-
TType extends "one" | "many" | "count" = "many",
|
|
271
|
-
$A = never,
|
|
272
|
-
$B = never,
|
|
273
|
-
$C = never,
|
|
274
|
-
$D = never,
|
|
275
|
-
$E = never,
|
|
276
|
-
$F = never,
|
|
277
|
-
$G = never,
|
|
278
|
-
$H = never,
|
|
279
|
-
$I = never,
|
|
280
|
-
E extends boolean = false
|
|
281
|
-
>(
|
|
282
|
-
q1: (
|
|
283
|
-
initial: Query<Encoded>
|
|
284
|
-
) => $A,
|
|
285
|
-
q2: (_: $A) => $B,
|
|
286
|
-
q3: (_: $B) => $C,
|
|
287
|
-
q4: (_: $C) => $D,
|
|
288
|
-
q5: (_: $D) => $E,
|
|
289
|
-
q6: (_: $E) => $F,
|
|
290
|
-
q7: (_: $F) => $G,
|
|
291
|
-
q8: (_: $G) => $H,
|
|
292
|
-
q9: (_: $H) => $I,
|
|
293
|
-
q10: (_: $I) => QueryProjection<From extends Encoded ? From : never, A, R, TType, E>
|
|
294
|
-
): Effect.Effect<
|
|
295
|
-
TType extends "many" ? readonly A[] : TType extends "count" ? NonNegativeInt : A,
|
|
296
|
-
| (TType extends "many" ? never : NotFoundError<ItemType>)
|
|
297
|
-
| (TType extends "count" ? never : S.SchemaError),
|
|
298
|
-
R | RSchema
|
|
299
|
-
>
|
|
300
|
-
|
|
301
|
-
// ending with generic query
|
|
302
|
-
<
|
|
303
|
-
R = never,
|
|
304
|
-
TType extends "one" | "many" = "many",
|
|
305
|
-
EncodedRefined extends Encoded = Encoded,
|
|
306
|
-
E extends boolean = false
|
|
307
|
-
>(
|
|
308
|
-
q: (initial: Query<Encoded>) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
309
|
-
): Effect.Effect<
|
|
310
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>,
|
|
311
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
312
|
-
R | RSchema
|
|
313
|
-
>
|
|
314
|
-
<
|
|
315
|
-
R = never,
|
|
316
|
-
TType extends "one" | "many" = "many",
|
|
317
|
-
EncodedRefined extends Encoded = Encoded,
|
|
318
|
-
$A = never,
|
|
319
|
-
E extends boolean = false
|
|
320
|
-
>(
|
|
321
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
322
|
-
q2: (
|
|
323
|
-
_: $A
|
|
324
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
325
|
-
): Effect.Effect<
|
|
326
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>,
|
|
327
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
328
|
-
R | RSchema
|
|
329
|
-
>
|
|
330
|
-
<
|
|
331
|
-
R = never,
|
|
332
|
-
TType extends "one" | "many" = "many",
|
|
333
|
-
EncodedRefined extends Encoded = Encoded,
|
|
334
|
-
$A = never,
|
|
335
|
-
$B = never,
|
|
336
|
-
E extends boolean = false
|
|
337
|
-
>(
|
|
338
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
339
|
-
q2: (
|
|
340
|
-
_: $A
|
|
341
|
-
) => $B,
|
|
342
|
-
q3: (
|
|
343
|
-
_: $B
|
|
344
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
345
|
-
): Effect.Effect<
|
|
346
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>,
|
|
347
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
348
|
-
R | RSchema
|
|
349
|
-
>
|
|
350
|
-
<
|
|
351
|
-
R = never,
|
|
352
|
-
TType extends "one" | "many" = "many",
|
|
353
|
-
EncodedRefined extends Encoded = Encoded,
|
|
354
|
-
$A = never,
|
|
355
|
-
$B = never,
|
|
356
|
-
$C = never,
|
|
357
|
-
E extends boolean = false
|
|
358
|
-
>(
|
|
359
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
360
|
-
q2: (_: $A) => $B,
|
|
361
|
-
q3: (_: $B) => $C,
|
|
362
|
-
q4: (
|
|
363
|
-
_: $C
|
|
364
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
365
|
-
): Effect.Effect<
|
|
366
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>,
|
|
367
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
368
|
-
R | RSchema
|
|
369
|
-
>
|
|
370
|
-
<
|
|
371
|
-
R = never,
|
|
372
|
-
TType extends "one" | "many" = "many",
|
|
373
|
-
EncodedRefined extends Encoded = Encoded,
|
|
374
|
-
$A = never,
|
|
375
|
-
$B = never,
|
|
376
|
-
$C = never,
|
|
377
|
-
$D = never,
|
|
378
|
-
E extends boolean = false
|
|
379
|
-
>(
|
|
380
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
381
|
-
q2: (_: $A) => $B,
|
|
382
|
-
q3: (_: $B) => $C,
|
|
383
|
-
q4: (_: $C) => $D,
|
|
384
|
-
q5: (
|
|
385
|
-
_: $D
|
|
386
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
387
|
-
): Effect.Effect<
|
|
388
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>,
|
|
389
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
390
|
-
R | RSchema
|
|
391
|
-
>
|
|
392
|
-
<
|
|
393
|
-
R = never,
|
|
394
|
-
TType extends "one" | "many" = "many",
|
|
395
|
-
EncodedRefined extends Encoded = Encoded,
|
|
396
|
-
$A = never,
|
|
397
|
-
$B = never,
|
|
398
|
-
$C = never,
|
|
399
|
-
$D = never,
|
|
400
|
-
$E = never,
|
|
401
|
-
E extends boolean = false
|
|
402
|
-
>(
|
|
403
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
404
|
-
q2: (_: $A) => $B,
|
|
405
|
-
q3: (_: $B) => $C,
|
|
406
|
-
q4: (_: $C) => $D,
|
|
407
|
-
q5: (_: $D) => $E,
|
|
408
|
-
q6: (
|
|
409
|
-
_: $E
|
|
410
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
411
|
-
): Effect.Effect<
|
|
412
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>,
|
|
413
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
414
|
-
R | RSchema
|
|
415
|
-
>
|
|
416
|
-
<
|
|
417
|
-
R = never,
|
|
418
|
-
TType extends "one" | "many" = "many",
|
|
419
|
-
EncodedRefined extends Encoded = Encoded,
|
|
420
|
-
$A = never,
|
|
421
|
-
$B = never,
|
|
422
|
-
$C = never,
|
|
423
|
-
$D = never,
|
|
424
|
-
$E = never,
|
|
425
|
-
$F = never,
|
|
426
|
-
E extends boolean = false
|
|
427
|
-
>(
|
|
428
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
429
|
-
q2: (_: $A) => $B,
|
|
430
|
-
q3: (_: $B) => $C,
|
|
431
|
-
q4: (_: $C) => $D,
|
|
432
|
-
q5: (_: $D) => $E,
|
|
433
|
-
q6: (_: $E) => $F,
|
|
434
|
-
q7: (
|
|
435
|
-
_: $F
|
|
436
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
437
|
-
): Effect.Effect<
|
|
438
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined> : RefineTHelper<T, EncodedRefined>,
|
|
439
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
440
|
-
R | RSchema
|
|
441
|
-
>
|
|
442
|
-
<
|
|
443
|
-
R = never,
|
|
444
|
-
TType extends "one" | "many" = "many",
|
|
445
|
-
EncodedRefined extends Encoded = Encoded,
|
|
446
|
-
$A = never,
|
|
447
|
-
$B = never,
|
|
448
|
-
$C = never,
|
|
449
|
-
$D = never,
|
|
450
|
-
$E = never,
|
|
451
|
-
$F = never,
|
|
452
|
-
$G = never,
|
|
453
|
-
E extends boolean = false
|
|
454
|
-
>(
|
|
455
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
456
|
-
q2: (_: $A) => $B,
|
|
457
|
-
q3: (_: $B) => $C,
|
|
458
|
-
q4: (_: $C) => $D,
|
|
459
|
-
q5: (_: $D) => $E,
|
|
460
|
-
q6: (_: $E) => $F,
|
|
461
|
-
q7: (_: $F) => $G,
|
|
462
|
-
q8: (
|
|
463
|
-
_: $G
|
|
464
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
465
|
-
): Effect.Effect<
|
|
466
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined>
|
|
467
|
-
: RefineTHelper<T, EncodedRefined>,
|
|
468
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
469
|
-
R | RSchema
|
|
470
|
-
>
|
|
471
|
-
<
|
|
472
|
-
R = never,
|
|
473
|
-
TType extends "one" | "many" = "many",
|
|
474
|
-
EncodedRefined extends Encoded = Encoded,
|
|
475
|
-
$A = never,
|
|
476
|
-
$B = never,
|
|
477
|
-
$C = never,
|
|
478
|
-
$D = never,
|
|
479
|
-
$E = never,
|
|
480
|
-
$F = never,
|
|
481
|
-
$G = never,
|
|
482
|
-
$H = never,
|
|
483
|
-
E extends boolean = false
|
|
484
|
-
>(
|
|
485
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
486
|
-
q2: (_: $A) => $B,
|
|
487
|
-
q3: (_: $B) => $C,
|
|
488
|
-
q4: (_: $C) => $D,
|
|
489
|
-
q5: (_: $D) => $E,
|
|
490
|
-
q6: (_: $E) => $F,
|
|
491
|
-
q7: (_: $F) => $G,
|
|
492
|
-
q8: (_: $G) => $H,
|
|
493
|
-
q9: (
|
|
494
|
-
_: $H
|
|
495
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
496
|
-
): Effect.Effect<
|
|
497
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined>
|
|
498
|
-
: RefineTHelper<T, EncodedRefined>,
|
|
499
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
500
|
-
R | RSchema
|
|
501
|
-
>
|
|
502
|
-
<
|
|
503
|
-
R = never,
|
|
504
|
-
TType extends "one" | "many" = "many",
|
|
505
|
-
EncodedRefined extends Encoded = Encoded,
|
|
506
|
-
$A = never,
|
|
507
|
-
$B = never,
|
|
508
|
-
$C = never,
|
|
509
|
-
$D = never,
|
|
510
|
-
$E = never,
|
|
511
|
-
$F = never,
|
|
512
|
-
$G = never,
|
|
513
|
-
$H = never,
|
|
514
|
-
$I = never,
|
|
515
|
-
E extends boolean = false
|
|
516
|
-
>(
|
|
517
|
-
q1: (initial: Query<Encoded>) => $A,
|
|
518
|
-
q2: (_: $A) => $B,
|
|
519
|
-
q3: (_: $B) => $C,
|
|
520
|
-
q4: (_: $C) => $D,
|
|
521
|
-
q5: (_: $D) => $E,
|
|
522
|
-
q6: (_: $E) => $F,
|
|
523
|
-
q7: (_: $F) => $G,
|
|
524
|
-
q8: (_: $G) => $H,
|
|
525
|
-
q9: (_: $H) => $I,
|
|
526
|
-
q10: (
|
|
527
|
-
_: $I
|
|
528
|
-
) => QAll<Encoded, EncodedRefined, RefineTHelper<T, EncodedRefined>, R, TType, E>
|
|
529
|
-
): Effect.Effect<
|
|
530
|
-
TType extends "many" ? DistributeQueryIfExclusiveOnArray<E, T, EncodedRefined>
|
|
531
|
-
: RefineTHelper<T, EncodedRefined>,
|
|
532
|
-
TType extends "many" ? never : NotFoundError<ItemType>,
|
|
533
|
-
R | RSchema
|
|
534
|
-
>
|
|
535
|
-
}
|
|
536
|
-
|
|
537
|
-
/** @deprecated use query */
|
|
538
|
-
readonly mapped: Mapped<Encoded>
|
|
539
|
-
|
|
540
|
-
/**
|
|
541
|
-
* Validates a random sample of repository items by applying jitM and schema decode.
|
|
542
|
-
* Useful for testing that migrations and schema changes work correctly on existing data.
|
|
543
|
-
*/
|
|
544
|
-
readonly validateSample: (options?: {
|
|
545
|
-
/** percentage of items to sample (0.0-1.0), default 0.1 (10%) */
|
|
546
|
-
percentage?: number
|
|
547
|
-
/** optional maximum number of items to sample */
|
|
548
|
-
maxItems?: number
|
|
549
|
-
}) => Effect.Effect<ValidationResult, never, RSchema>
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
type DistributeQueryIfExclusiveOnArray<Exclusive extends boolean, T, EncodedRefined> = [Exclusive] extends [true]
|
|
553
|
-
? T extends any ? RefineTHelper<T, EncodedRefined> extends infer R ? IsNever<R> extends true ? never
|
|
554
|
-
: readonly R[]
|
|
555
|
-
: never
|
|
556
|
-
: never
|
|
557
|
-
: readonly RefineTHelper<T, EncodedRefined>[]
|
|
558
|
-
|
|
559
|
-
type NullableRefined<T, EncodedRefined> = {
|
|
560
|
-
// EncodedRefined may be a union, so if you just keyof you'll get just common keys
|
|
561
|
-
// p.s. NullableRefined is homomorphic in T so it distributes itself over T
|
|
562
|
-
[k in keyof T]: [null] extends [T[k]] ? [null] extends [Extract<EncodedRefined, { [j in k]: any }>[k]] ? T[k]
|
|
563
|
-
: Exclude<T[k], null>
|
|
564
|
-
: T[k]
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
// for DX purposes
|
|
568
|
-
type ShouldRecursiveExtractTagged<T, EncodedRefined> = true extends {
|
|
569
|
-
[k in keyof T]: "_tag" extends keyof T[k]
|
|
570
|
-
? k extends keyof EncodedRefined ? "_tag" extends keyof EncodedRefined[k] ? true
|
|
571
|
-
: false
|
|
572
|
-
: false
|
|
573
|
-
: false
|
|
574
|
-
}[keyof T] ? true
|
|
575
|
-
: false
|
|
576
|
-
|
|
577
|
-
// support is not 100% but we have to make compromises
|
|
578
|
-
type RecursiveExtractTagged<T, EncodedRefined> = ShouldRecursiveExtractTagged<T, EncodedRefined> extends true ? {
|
|
579
|
-
[k in keyof T]: "_tag" extends keyof T[k]
|
|
580
|
-
? k extends keyof EncodedRefined ? "_tag" extends keyof EncodedRefined[k] ? ExtractTagged<T[k], EncodedRefined[k]>
|
|
581
|
-
: T[k]
|
|
582
|
-
: T[k]
|
|
583
|
-
: T[k]
|
|
584
|
-
}
|
|
585
|
-
: T
|
|
586
|
-
|
|
587
|
-
type ExtractTagged_<T, EncodedRefined> = EncodedRefined extends { _tag: string }
|
|
588
|
-
? T extends { _tag: string } ? Extract<T, { _tag: EncodedRefined["_tag"] }>
|
|
589
|
-
: T
|
|
590
|
-
: T
|
|
591
|
-
|
|
592
|
-
type ExtractTagged<T, EncodedRefined> = ExtractTagged_<T, EncodedRefined> extends infer R
|
|
593
|
-
? RecursiveExtractTagged<RecusiveExtractIded<R, EncodedRefined>, EncodedRefined>
|
|
594
|
-
: never
|
|
595
|
-
|
|
596
|
-
type ShouldRecursiveExtractIded<T, EncodedRefined> = true extends {
|
|
597
|
-
[k in keyof T]: "id" extends keyof T[k] ? k extends keyof EncodedRefined ? "id" extends keyof EncodedRefined[k] ? true
|
|
598
|
-
: false
|
|
599
|
-
: false
|
|
600
|
-
: false
|
|
601
|
-
}[keyof T] ? true
|
|
602
|
-
: false
|
|
603
|
-
|
|
604
|
-
type RecusiveExtractIded<T, EncodedRefined> = ShouldRecursiveExtractIded<T, EncodedRefined> extends true ? {
|
|
605
|
-
[k in keyof T]: "id" extends keyof T[k]
|
|
606
|
-
? k extends keyof EncodedRefined ? "id" extends keyof EncodedRefined[k] ? ExtractIded<T[k], EncodedRefined[k]>
|
|
607
|
-
: T[k]
|
|
608
|
-
: T[k]
|
|
609
|
-
: T[k]
|
|
610
|
-
}
|
|
611
|
-
: T
|
|
612
|
-
|
|
613
|
-
type ExtractIded_<T, EncodedRefined> = EncodedRefined extends { id: string }
|
|
614
|
-
? T extends { id: string } ? Extract<T, { id: EncodedRefined["id"] }>
|
|
615
|
-
: T
|
|
616
|
-
: T
|
|
617
|
-
|
|
618
|
-
type ExtractIded<T, EncodedRefined> = ExtractIded_<T, EncodedRefined> extends infer R
|
|
619
|
-
? RecusiveExtractIded<RecursiveExtractTagged<R, EncodedRefined>, EncodedRefined>
|
|
620
|
-
: never
|
|
621
|
-
|
|
622
|
-
export type RefineTHelper<T, EncodedRefined> = ResolveFirstLevel<
|
|
623
|
-
NullableRefined<
|
|
624
|
-
ExtractIded<ExtractTagged<T, EncodedRefined>, EncodedRefined>,
|
|
625
|
-
EncodedRefined
|
|
626
|
-
>
|
|
627
|
-
>
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { S } from "effect-app"
|
|
2
|
-
import { NonNegativeInt } from "effect-app/Schema"
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Represents a single validation error when decoding a repository item.
|
|
6
|
-
* Contains full context for debugging: raw data, jitM result, and decode error.
|
|
7
|
-
*/
|
|
8
|
-
export class ValidationError extends S.Class<ValidationError>("@effect-app/infra/ValidationError")({
|
|
9
|
-
/** the id of the item that failed validation */
|
|
10
|
-
id: S.Unknown,
|
|
11
|
-
/** the raw data from the database before jitM */
|
|
12
|
-
rawData: S.Unknown,
|
|
13
|
-
/** the data after applying jitM transformation */
|
|
14
|
-
jitMResult: S.Unknown,
|
|
15
|
-
/** the S.SchemaError from schema decode */
|
|
16
|
-
error: S.Unknown
|
|
17
|
-
}) {}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Result of validating a sample of repository items.
|
|
21
|
-
*/
|
|
22
|
-
export class ValidationResult extends S.Class<ValidationResult>("@effect-app/infra/ValidationResult")({
|
|
23
|
-
/** total number of items in the repository */
|
|
24
|
-
total: NonNegativeInt,
|
|
25
|
-
/** number of items that were sampled for validation */
|
|
26
|
-
sampled: NonNegativeInt,
|
|
27
|
-
/** number of items that passed validation */
|
|
28
|
-
valid: NonNegativeInt,
|
|
29
|
-
/** list of validation errors with full context */
|
|
30
|
-
errors: S.Array(ValidationError)
|
|
31
|
-
}) {}
|