@effect-app/infra 4.0.0-beta.99 → 4.0.1
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 +2901 -0
- package/_check.sh +1 -1
- package/dist/CUPS.d.ts +28 -9
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +35 -14
- package/dist/ClusterCosmos.d.ts +67 -0
- package/dist/ClusterCosmos.d.ts.map +1 -0
- package/dist/ClusterCosmos.js +588 -0
- package/dist/ClusterServiceBus.d.ts +67 -0
- package/dist/ClusterServiceBus.d.ts.map +1 -0
- package/dist/ClusterServiceBus.js +84 -0
- package/dist/{api/ContextProvider.d.ts → ContextProvider.d.ts} +7 -4
- package/dist/ContextProvider.d.ts.map +1 -0
- package/dist/ContextProvider.js +40 -0
- package/dist/Emailer/Sendgrid.d.ts +110 -146
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +24 -19
- package/dist/Emailer/fake.d.ts +1 -1
- package/dist/Emailer/fake.d.ts.map +1 -1
- package/dist/Emailer/fake.js +4 -4
- package/dist/MainFiberSet.d.ts +11 -7
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +22 -6
- package/dist/QueueMaker/errors.d.ts +3 -1
- package/dist/QueueMaker/errors.d.ts.map +1 -1
- package/dist/QueueMaker/errors.js +4 -2
- package/dist/{adapters/SQL → SQL}/Model.d.ts +34 -45
- package/dist/SQL/Model.d.ts.map +1 -0
- package/dist/SQL/Model.js +469 -0
- package/dist/SQL.d.ts.map +1 -0
- package/dist/{adapters/SQL.js → SQL.js} +1 -1
- package/dist/Store/Cosmos/query.d.ts +16 -4
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +240 -44
- package/dist/Store/Cosmos.d.ts +2 -2
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +394 -320
- package/dist/Store/Disk.d.ts +4 -4
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +91 -39
- package/dist/Store/Memory.d.ts +7 -10
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +347 -78
- package/dist/Store/SQL/Pg.d.ts +2 -2
- package/dist/Store/SQL/Pg.d.ts.map +1 -1
- package/dist/Store/SQL/Pg.js +230 -155
- package/dist/Store/SQL/query.d.ts +19 -3
- package/dist/Store/SQL/query.d.ts.map +1 -1
- package/dist/Store/SQL/query.js +308 -14
- package/dist/Store/SQL.d.ts +22 -5
- package/dist/Store/SQL.d.ts.map +1 -1
- package/dist/Store/SQL.js +370 -99
- package/dist/Store/codeFilter.d.ts +5 -5
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +72 -23
- package/dist/Store/index.d.ts +6 -4
- package/dist/Store/index.d.ts.map +1 -1
- package/dist/Store/index.js +9 -6
- package/dist/Store/jsonDocument.d.ts +67 -0
- package/dist/Store/jsonDocument.d.ts.map +1 -0
- package/dist/Store/jsonDocument.js +107 -0
- package/dist/Store/utils.d.ts +21 -2
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +253 -10
- package/dist/WorkflowEngineCosmos.d.ts +30 -0
- package/dist/WorkflowEngineCosmos.d.ts.map +1 -0
- package/dist/WorkflowEngineCosmos.js +542 -0
- package/dist/WorkflowEngineSqlite.d.ts +24 -0
- package/dist/WorkflowEngineSqlite.d.ts.map +1 -0
- package/dist/WorkflowEngineSqlite.js +550 -0
- package/dist/arbs.d.ts +6 -3
- package/dist/arbs.d.ts.map +1 -1
- package/dist/arbs.js +20 -4
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +5 -0
- package/dist/cosmos-client.d.ts +40 -0
- package/dist/cosmos-client.d.ts.map +1 -0
- package/dist/cosmos-client.js +41 -0
- package/dist/errorReporter.d.ts +6 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +23 -27
- package/dist/fileUtil.d.ts +1 -1
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/fileUtil.js +2 -2
- package/dist/index.d.ts +2 -1
- 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 +45 -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/{api/internal → internal}/health.d.ts +1 -1
- package/dist/internal/health.d.ts.map +1 -0
- package/dist/internal/health.js +5 -0
- package/dist/{api/layerUtils.d.ts → layerUtils.d.ts} +10 -2
- package/dist/layerUtils.d.ts.map +1 -0
- package/dist/layerUtils.js +17 -0
- package/dist/logger/jsonLogger.d.ts +1 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +5 -3
- package/dist/logger/logFmtLogger.d.ts +1 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +3 -3
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +6 -6
- package/dist/logger.d.ts.map +1 -1
- package/dist/middlewares.d.ts.map +1 -0
- package/dist/{api/middlewares.js → middlewares.js} +1 -1
- package/dist/{adapters/mongo-client.d.ts → mongo-client.d.ts} +2 -1
- 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 +84 -0
- package/dist/rateLimit.d.ts +11 -3
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +7 -12
- package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +4 -1
- package/dist/redis-client.d.ts.map +1 -0
- package/dist/redis-client.js +98 -0
- package/dist/{api/reportError.d.ts → reportError.d.ts} +1 -1
- package/dist/reportError.d.ts.map +1 -0
- package/dist/reportError.js +28 -0
- package/dist/{api/routing → routing}/middleware/RouterMiddleware.d.ts +2 -1
- package/dist/routing/middleware/RouterMiddleware.d.ts.map +1 -0
- package/dist/{api/routing → routing}/middleware/RouterMiddleware.js +1 -1
- package/dist/{api/routing → routing}/middleware/middleware.d.ts +11 -6
- package/dist/routing/middleware/middleware.d.ts.map +1 -0
- package/dist/routing/middleware/middleware.js +152 -0
- package/dist/{api/routing → routing}/middleware.d.ts +0 -1
- 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.map +1 -0
- package/dist/routing/schema/jwt.js +12 -0
- package/dist/routing/tsort.d.ts.map +1 -0
- package/dist/routing/tsort.js +51 -0
- package/dist/{api/routing → routing}/utils.d.ts +3 -3
- package/dist/routing/utils.d.ts.map +1 -0
- package/dist/routing/utils.js +45 -0
- package/dist/routing.d.ts +182 -0
- package/dist/routing.d.ts.map +1 -0
- package/dist/routing.js +257 -0
- package/dist/test.d.ts +2 -2
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +5 -5
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +14 -0
- package/docs/cluster-storage.md +26 -0
- package/docs/workflow-engine.md +262 -0
- package/examples/query.ts +23 -19
- package/package.json +36 -364
- package/src/CUPS.ts +53 -14
- package/src/ClusterCosmos.ts +1170 -0
- package/src/ClusterServiceBus.ts +244 -0
- package/src/{api/ContextProvider.ts → ContextProvider.ts} +10 -7
- package/src/Emailer/Sendgrid.ts +83 -60
- package/src/Emailer/fake.ts +4 -4
- package/src/MainFiberSet.ts +31 -12
- package/src/QueueMaker/errors.ts +3 -1
- package/src/{adapters/SQL → SQL}/Model.ts +48 -47
- package/src/SQL.ts +1 -0
- package/src/Store/Cosmos/query.ts +277 -57
- package/src/Store/Cosmos.ts +597 -512
- package/src/Store/Disk.ts +145 -71
- package/src/Store/Memory.ts +419 -115
- package/src/Store/SQL/Pg.ts +352 -269
- package/src/Store/SQL/query.ts +368 -22
- package/src/Store/SQL.ts +742 -294
- package/src/Store/codeFilter.ts +79 -29
- package/src/Store/index.ts +18 -13
- package/src/Store/jsonDocument.ts +143 -0
- package/src/Store/utils.ts +307 -30
- package/src/WorkflowEngineCosmos.ts +749 -0
- package/src/WorkflowEngineSqlite.ts +813 -0
- package/src/arbs.ts +25 -5
- package/src/cosmos-client.ts +72 -0
- package/src/errorReporter.ts +70 -78
- package/src/fileUtil.ts +1 -1
- package/src/index.ts +2 -1
- package/src/{api/internal → internal}/RequestContextMiddleware.ts +23 -6
- package/src/internal/auth.ts +272 -0
- package/src/{api/internal → internal}/events.ts +18 -9
- package/src/{api/layerUtils.ts → layerUtils.ts} +7 -3
- package/src/logger/jsonLogger.ts +5 -3
- package/src/logger/logFmtLogger.ts +3 -3
- package/src/logger/shared.ts +6 -5
- package/src/middlewares.ts +10 -0
- package/src/{adapters/mongo-client.ts → mongo-client.ts} +3 -1
- package/src/otel.ts +177 -0
- package/src/rateLimit.ts +35 -24
- package/src/{adapters/redis-client.ts → redis-client.ts} +6 -2
- package/src/{api/reportError.ts → reportError.ts} +3 -2
- package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +2 -1
- package/src/{api/routing → routing}/middleware/middleware.ts +75 -50
- package/src/routing/middleware.ts +4 -0
- package/src/{api/routing → routing}/schema/jwt.ts +2 -2
- package/src/{api/routing → routing}/utils.ts +2 -1
- package/src/routing.ts +827 -0
- package/src/test.ts +6 -6
- package/src/vitest.ts +1 -1
- package/test/arbs-magnitude.test.ts +33 -0
- package/test/arbs.test.ts +41 -0
- package/test/auth.test.ts +101 -0
- package/test/cluster-cosmos.test.ts +634 -0
- package/test/cluster-servicebus.test.ts +180 -0
- package/test/cluster-sqlite.test.ts +207 -0
- package/test/contextProvider.test.ts +11 -8
- package/test/controller.test.ts +23 -28
- package/test/cosmos-container-throughput.test.ts +80 -0
- package/test/cosmos-query.test.ts +368 -0
- package/test/dist/arbs-magnitude.test.d.ts.map +1 -0
- package/test/dist/arbs.test.d.ts.map +1 -0
- package/test/dist/auth.test.d.ts.map +1 -0
- package/test/dist/cluster-cosmos.test.d.ts.map +1 -0
- package/test/dist/cluster-servicebus.test.d.ts.map +1 -0
- package/test/dist/cluster-sqlite.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-container-throughput.test.d.ts.map +1 -0
- package/test/dist/cosmos-query.test.d.ts.map +1 -0
- package/test/dist/fixtures.d.ts +17 -9
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +8 -3
- package/test/dist/json-lower.test.d.ts.map +1 -0
- 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/repository-legacy-document.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/workflow-engine-cosmos.test.d.ts.map +1 -0
- package/test/dist/workflow-engine-sqlite.test.d.ts.map +1 -0
- package/test/fixtures.ts +7 -2
- package/test/json-lower.test.ts +129 -0
- package/test/layerUtils.test.ts +2 -2
- package/test/query.test.ts +1232 -42
- package/test/rawQuery.test.ts +432 -7
- package/test/repository-ext.test.ts +456 -0
- package/test/repository-legacy-document.test.ts +394 -0
- package/test/requires.test.ts +7 -3
- package/test/router-generator.test.ts +187 -0
- package/test/routing-interruptibility.test.ts +66 -0
- package/test/rpc-context-map-streaming.test.ts +265 -0
- package/test/rpc-e2e-invalidation.test.ts +421 -0
- package/test/rpc-multi-middleware.test.ts +17 -11
- package/test/rpc-stream-fullstack.test.ts +307 -0
- package/test/sql-store.test.ts +1202 -47
- package/test/validateSample.test.ts +70 -42
- package/test/workflow-engine-cosmos.test.ts +345 -0
- package/test/workflow-engine-sqlite.test.ts +297 -0
- package/tsconfig.examples.json +1 -1
- package/tsconfig.json +9 -1
- 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 -320
- 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 -43
- 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/SQLQueue.d.ts +0 -14
- package/dist/QueueMaker/SQLQueue.d.ts.map +0 -1
- package/dist/QueueMaker/SQLQueue.js +0 -132
- package/dist/QueueMaker/memQueue.d.ts +0 -11
- package/dist/QueueMaker/memQueue.d.ts.map +0 -1
- package/dist/QueueMaker/memQueue.js +0 -76
- package/dist/QueueMaker/sbqueue.d.ts +0 -12
- package/dist/QueueMaker/sbqueue.d.ts.map +0 -1
- package/dist/QueueMaker/sbqueue.js +0 -91
- 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 -68
- package/dist/RequestContext.d.ts.map +0 -1
- package/dist/RequestContext.js +0 -49
- package/dist/RequestFiberSet.d.ts +0 -36
- package/dist/RequestFiberSet.d.ts.map +0 -1
- package/dist/RequestFiberSet.js +0 -78
- package/dist/Store/ContextMapContainer.d.ts +0 -25
- package/dist/Store/ContextMapContainer.d.ts.map +0 -1
- package/dist/Store/ContextMapContainer.js +0 -77
- package/dist/Store/service.d.ts +0 -111
- package/dist/Store/service.d.ts.map +0 -1
- package/dist/Store/service.js +0 -79
- 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.map +0 -1
- package/dist/adapters/SQL/Model.js +0 -478
- 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.map +0 -1
- package/dist/adapters/mongo-client.js +0 -13
- package/dist/adapters/redis-client.d.ts.map +0 -1
- package/dist/adapters/redis-client.js +0 -94
- package/dist/api/ContextProvider.d.ts.map +0 -1
- package/dist/api/ContextProvider.js +0 -38
- 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.map +0 -1
- package/dist/api/internal/health.js +0 -5
- package/dist/api/layerUtils.d.ts.map +0 -1
- package/dist/api/layerUtils.js +0 -16
- package/dist/api/middlewares.d.ts.map +0 -1
- package/dist/api/reportError.d.ts.map +0 -1
- package/dist/api/reportError.js +0 -27
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/middleware.d.ts.map +0 -1
- package/dist/api/routing/middleware/middleware.js +0 -130
- package/dist/api/routing/middleware.d.ts.map +0 -1
- 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.map +0 -1
- package/dist/api/routing/tsort.js +0 -51
- 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 -134
- package/dist/api/routing.d.ts.map +0 -1
- package/dist/api/routing.js +0 -167
- package/dist/api/setupRequest.d.ts +0 -15
- package/dist/api/setupRequest.d.ts.map +0 -1
- package/dist/api/setupRequest.js +0 -49
- 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 -580
- 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/SQLQueue.ts +0 -190
- package/src/QueueMaker/memQueue.ts +0 -130
- package/src/QueueMaker/sbqueue.ts +0 -137
- package/src/QueueMaker/service.ts +0 -17
- package/src/RequestContext.ts +0 -63
- package/src/RequestFiberSet.ts +0 -105
- package/src/Store/ContextMapContainer.ts +0 -116
- package/src/Store/index.test.ts.bak +0 -112
- package/src/Store/service.ts +0 -193
- package/src/Store.ts +0 -1
- package/src/adapters/SQL.ts +0 -1
- package/src/adapters/ServiceBus.ts +0 -209
- package/src/adapters/cosmos-client.ts +0 -16
- package/src/adapters/index.ts +0 -0
- package/src/adapters/logger.ts +0 -3
- package/src/adapters/memQueue.ts +0 -21
- package/src/api/internal/auth.ts +0 -68
- package/src/api/middlewares.ts +0 -10
- package/src/api/routing/middleware.ts +0 -6
- package/src/api/routing.ts +0 -598
- package/src/api/setupRequest.ts +0 -104
- package/test/dist/date-query.test.d.ts.map +0 -1
- package/tsconfig.json.bak +0 -12
- /package/dist/{adapters/SQL.d.ts → SQL.d.ts} +0 -0
- /package/dist/{api/codec.d.ts → codec.d.ts} +0 -0
- /package/dist/{api/middlewares.d.ts → middlewares.d.ts} +0 -0
- /package/dist/{api/routing → routing}/schema/jwt.d.ts +0 -0
- /package/dist/{api/routing → routing}/tsort.d.ts +0 -0
- /package/dist/{api/util.d.ts → util.d.ts} +0 -0
- /package/src/{api/codec.ts → codec.ts} +0 -0
- /package/src/{api/internal → internal}/health.ts +0 -0
- /package/src/{api/routing → routing}/tsort.ts +0 -0
- /package/src/{api/util.ts → util.ts} +0 -0
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
2
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
3
|
-
import
|
|
4
|
-
import
|
|
3
|
+
import * as Array from "effect-app/Array";
|
|
4
|
+
import * as Effect from "effect-app/Effect";
|
|
5
|
+
import { absurd } from "effect/Function";
|
|
5
6
|
import { InfraLogger } from "../../logger.js";
|
|
6
7
|
import { isRelationCheck } from "../codeFilter.js";
|
|
8
|
+
import { jsonifyFilter } from "../utils.js";
|
|
7
9
|
export function logQuery(q) {
|
|
8
10
|
return InfraLogger
|
|
9
11
|
.logDebug("cosmos query")
|
|
@@ -19,8 +21,11 @@ const dottedToAccess = (path) => path
|
|
|
19
21
|
.split(".")
|
|
20
22
|
.map((p, i) => i === 0 ? p : `["${p}"]`)
|
|
21
23
|
.join("");
|
|
22
|
-
export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, select, order, skip, limit) {
|
|
23
|
-
|
|
24
|
+
export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, select, order, skip, limit, json) {
|
|
25
|
+
// defaultValues are already JSON-lowered at store construction; a second
|
|
26
|
+
// schema encode of an ISO Date string throws "Expected a valid Date".
|
|
27
|
+
filter = (json?.jsonifyFilter ?? jsonifyFilter)(filter);
|
|
28
|
+
const statement = (x, i) => {
|
|
24
29
|
if (x.path === idKey) {
|
|
25
30
|
x = { ...x, path: "id" };
|
|
26
31
|
}
|
|
@@ -32,7 +37,6 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
32
37
|
// would have to map id, but shouldnt allow id in defaultValues anyway..
|
|
33
38
|
k = x.path in defaultValues ? `(${k} ?? ${JSON.stringify(defaultValues[x.path])})` : k;
|
|
34
39
|
const v = "@v" + i;
|
|
35
|
-
const realValue = values[i];
|
|
36
40
|
switch (x.op) {
|
|
37
41
|
case "in":
|
|
38
42
|
return `ARRAY_CONTAINS(${v}, ${k})`;
|
|
@@ -43,13 +47,49 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
43
47
|
case "notIncludes":
|
|
44
48
|
return `(NOT ARRAY_CONTAINS(${k}, ${v}))`;
|
|
45
49
|
case "includes-any":
|
|
46
|
-
return `ARRAY_CONTAINS_ANY(${k}, ${
|
|
50
|
+
return `ARRAY_CONTAINS_ANY(${k}, ${x.value.map((_, i) => `${v}__${i}`).join(", ")})`;
|
|
47
51
|
case "notIncludes-any":
|
|
48
|
-
return `(NOT ARRAY_CONTAINS_ANY(${k}, ${
|
|
52
|
+
return `(NOT ARRAY_CONTAINS_ANY(${k}, ${x.value.map((_, i) => `${v}__${i}`).join(", ")}))`;
|
|
49
53
|
case "includes-all":
|
|
50
|
-
return `ARRAY_CONTAINS_ALL(${k}, ${
|
|
54
|
+
return `ARRAY_CONTAINS_ALL(${k}, ${x.value.map((_, i) => `${v}__${i}`).join(", ")})`;
|
|
51
55
|
case "notIncludes-all":
|
|
52
|
-
return `(NOT ARRAY_CONTAINS_ALL(${k}, ${
|
|
56
|
+
return `(NOT ARRAY_CONTAINS_ALL(${k}, ${x.value.map((_, i) => `${v}__${i}`).join(", ")}))`;
|
|
57
|
+
case "hasKey":
|
|
58
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = ${v})`;
|
|
59
|
+
case "notHasKey":
|
|
60
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = ${v}))`;
|
|
61
|
+
case "hasValue":
|
|
62
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = ${v})`;
|
|
63
|
+
case "notHasValue":
|
|
64
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = ${v}))`;
|
|
65
|
+
case "hasKeyValue":
|
|
66
|
+
return `ARRAY_CONTAINS(${k}, ${v})`;
|
|
67
|
+
case "notHasKeyValue":
|
|
68
|
+
return `(NOT ARRAY_CONTAINS(${k}, ${v}))`;
|
|
69
|
+
case "hasKey-any":
|
|
70
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[0]))`;
|
|
71
|
+
case "notHasKey-any":
|
|
72
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[0])))`;
|
|
73
|
+
case "hasKey-all":
|
|
74
|
+
return `(NOT EXISTS(SELECT VALUE key FROM key IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = key)))`;
|
|
75
|
+
case "notHasKey-all":
|
|
76
|
+
return `EXISTS(SELECT VALUE key FROM key IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[0] = key))`;
|
|
77
|
+
case "hasValue-any":
|
|
78
|
+
return `EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[1]))`;
|
|
79
|
+
case "notHasValue-any":
|
|
80
|
+
return `(NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE ARRAY_CONTAINS(${v}, p[1])))`;
|
|
81
|
+
case "hasValue-all":
|
|
82
|
+
return `(NOT EXISTS(SELECT VALUE val FROM val IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = val)))`;
|
|
83
|
+
case "notHasValue-all":
|
|
84
|
+
return `EXISTS(SELECT VALUE val FROM val IN ${v} WHERE NOT EXISTS(SELECT VALUE p FROM p IN ${k} WHERE p[1] = val))`;
|
|
85
|
+
case "hasKeyValue-any":
|
|
86
|
+
return `EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE ARRAY_CONTAINS(${k}, pair))`;
|
|
87
|
+
case "notHasKeyValue-any":
|
|
88
|
+
return `(NOT EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE ARRAY_CONTAINS(${k}, pair)))`;
|
|
89
|
+
case "hasKeyValue-all":
|
|
90
|
+
return `(NOT EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE NOT ARRAY_CONTAINS(${k}, pair)))`;
|
|
91
|
+
case "notHasKeyValue-all":
|
|
92
|
+
return `EXISTS(SELECT VALUE pair FROM pair IN ${v} WHERE NOT ARRAY_CONTAINS(${k}, pair))`;
|
|
53
93
|
case "contains":
|
|
54
94
|
return `CONTAINS(${k}, ${v}, true)`;
|
|
55
95
|
case "startsWith":
|
|
@@ -82,7 +122,7 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
82
122
|
? `IS_NULL(${k}) = true`
|
|
83
123
|
: `${k} = ${v}`;
|
|
84
124
|
default: {
|
|
85
|
-
return
|
|
125
|
+
return absurd(x.op);
|
|
86
126
|
}
|
|
87
127
|
}
|
|
88
128
|
};
|
|
@@ -106,6 +146,24 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
106
146
|
"notIncludes-any": "includes-any",
|
|
107
147
|
"includes-all": "notIncludes-all",
|
|
108
148
|
"notIncludes-all": "includes-all",
|
|
149
|
+
hasKey: "notHasKey",
|
|
150
|
+
notHasKey: "hasKey",
|
|
151
|
+
hasValue: "notHasValue",
|
|
152
|
+
notHasValue: "hasValue",
|
|
153
|
+
hasKeyValue: "notHasKeyValue",
|
|
154
|
+
notHasKeyValue: "hasKeyValue",
|
|
155
|
+
"hasKey-any": "notHasKey-any",
|
|
156
|
+
"notHasKey-any": "hasKey-any",
|
|
157
|
+
"hasKey-all": "notHasKey-all",
|
|
158
|
+
"notHasKey-all": "hasKey-all",
|
|
159
|
+
"hasValue-any": "notHasValue-any",
|
|
160
|
+
"notHasValue-any": "hasValue-any",
|
|
161
|
+
"hasValue-all": "notHasValue-all",
|
|
162
|
+
"notHasValue-all": "hasValue-all",
|
|
163
|
+
"hasKeyValue-any": "notHasKeyValue-any",
|
|
164
|
+
"notHasKeyValue-any": "hasKeyValue-any",
|
|
165
|
+
"hasKeyValue-all": "notHasKeyValue-all",
|
|
166
|
+
"notHasKeyValue-all": "hasKeyValue-all",
|
|
109
167
|
in: "notIn",
|
|
110
168
|
notIn: "in"
|
|
111
169
|
};
|
|
@@ -124,7 +182,7 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
124
182
|
}
|
|
125
183
|
: _
|
|
126
184
|
: _;
|
|
127
|
-
const print = (state,
|
|
185
|
+
const print = (state, isRelation, every) => {
|
|
128
186
|
let s = "";
|
|
129
187
|
let l = 0;
|
|
130
188
|
const printN = (n) => {
|
|
@@ -133,13 +191,13 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
133
191
|
for (const e of state) {
|
|
134
192
|
switch (e.t) {
|
|
135
193
|
case "where":
|
|
136
|
-
s += statement(e, i
|
|
194
|
+
s += statement(e, i++);
|
|
137
195
|
break;
|
|
138
196
|
case "or":
|
|
139
|
-
s += ` OR ${statement(e, i
|
|
197
|
+
s += ` OR ${statement(e, i++)}`;
|
|
140
198
|
break;
|
|
141
199
|
case "and":
|
|
142
|
-
s += ` AND ${statement(e, i
|
|
200
|
+
s += ` AND ${statement(e, i++)}`;
|
|
143
201
|
break;
|
|
144
202
|
case "or-scope": {
|
|
145
203
|
++l;
|
|
@@ -149,13 +207,13 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
149
207
|
if (rel) {
|
|
150
208
|
const rel = e.result[0].path.split(".-1.")[0];
|
|
151
209
|
s += isRelation
|
|
152
|
-
? ` OR (\n${printN(l + 1)}${print(e.result,
|
|
210
|
+
? ` OR (\n${printN(l + 1)}${print(e.result, rel, every)}\n${printN(l)})`
|
|
153
211
|
: ` OR (\n${printN(l + 1)}${every ? "NOT " : ""}EXISTS(SELECT VALUE ${rel} FROM ${rel} IN f.${rel} WHERE ${print(e
|
|
154
212
|
.result
|
|
155
|
-
.map(flip(every)),
|
|
213
|
+
.map(flip(every)), rel, every)}))`;
|
|
156
214
|
}
|
|
157
215
|
else {
|
|
158
|
-
s += ` OR (\n${printN(l + 1)}${print(e.result,
|
|
216
|
+
s += ` OR (\n${printN(l + 1)}${print(e.result, null, every)}\n${printN(l)})`;
|
|
159
217
|
}
|
|
160
218
|
--l;
|
|
161
219
|
break;
|
|
@@ -168,11 +226,11 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
168
226
|
if (rel) {
|
|
169
227
|
const rel = e.result[0].path.split(".-1.")[0];
|
|
170
228
|
s += isRelation
|
|
171
|
-
? ` AND (\n${printN(l + 1)}${print(e.result,
|
|
172
|
-
: ` AND (\n${printN(l + 1)}${every ? "NOT " : ""}EXISTS(SELECT VALUE ${rel} FROM ${rel} IN f.${rel} WHERE ${print(e.result.map(flip(every)),
|
|
229
|
+
? ` AND (\n${printN(l + 1)}${print(e.result, rel, every)}\n${printN(l)})`
|
|
230
|
+
: ` AND (\n${printN(l + 1)}${every ? "NOT " : ""}EXISTS(SELECT VALUE ${rel} FROM ${rel} IN f.${rel} WHERE ${print(e.result.map(flip(every)), rel, every)}))`;
|
|
173
231
|
}
|
|
174
232
|
else {
|
|
175
|
-
s += ` AND (\n${printN(l + 1)}${print(e.result,
|
|
233
|
+
s += ` AND (\n${printN(l + 1)}${print(e.result, null, every)}\n${printN(l)})`;
|
|
176
234
|
}
|
|
177
235
|
--l;
|
|
178
236
|
break;
|
|
@@ -185,11 +243,11 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
185
243
|
if (rel) {
|
|
186
244
|
const rel = e.result[0].path.split(".-1.")[0];
|
|
187
245
|
s += isRelation
|
|
188
|
-
? `(\n${printN(l + 1)}${print(e.result,
|
|
189
|
-
: `(\n${printN(l + 1)}${every ? "NOT " : ""}EXISTS(SELECT VALUE ${rel} FROM ${rel} IN f.${rel} WHERE ${print(e.result.map(flip(every)),
|
|
246
|
+
? `(\n${printN(l + 1)}${print(e.result, rel, every)}\n${printN(l)})`
|
|
247
|
+
: `(\n${printN(l + 1)}${every ? "NOT " : ""}EXISTS(SELECT VALUE ${rel} FROM ${rel} IN f.${rel} WHERE ${print(e.result.map(flip(every)), rel, every)}))`;
|
|
190
248
|
}
|
|
191
249
|
else {
|
|
192
|
-
s += `(\n${printN(l + 1)}${print(e.result,
|
|
250
|
+
s += `(\n${printN(l + 1)}${print(e.result, null, every)}\n${printN(l)})`;
|
|
193
251
|
}
|
|
194
252
|
// ;--l
|
|
195
253
|
break;
|
|
@@ -217,33 +275,171 @@ export function buildWhereCosmosQuery3(idKey, filter, name, defaultValues, selec
|
|
|
217
275
|
.flatMap((_) => _.t === "and-scope" || _.t === "or-scope" || _.t === "where-scope"
|
|
218
276
|
? getValues(_.result)
|
|
219
277
|
: [_]);
|
|
220
|
-
const
|
|
278
|
+
const computedFilters = select
|
|
279
|
+
? select.flatMap((_) => typeof _ === "object" && "computed" in _ && "filter" in _.computed ? getValues(_.computed.filter) : [])
|
|
280
|
+
: [];
|
|
281
|
+
const aggregateFilters = select
|
|
282
|
+
? select.flatMap((_) => typeof _ === "object" && "aggregate" in _ && "filter" in _.aggregate ? getValues(_.aggregate.filter) : [])
|
|
283
|
+
: [];
|
|
284
|
+
const values = [...computedFilters, ...aggregateFilters, ...getValues(filter)];
|
|
285
|
+
const hasAggregates = select
|
|
286
|
+
? select.some((s) => typeof s === "object" && s !== null && "aggregate" in s)
|
|
287
|
+
: false;
|
|
288
|
+
const aggregateSelectExpr = (key, agg) => {
|
|
289
|
+
switch (agg._tag) {
|
|
290
|
+
case "agg-count":
|
|
291
|
+
return `COUNT(1) AS ${key}`;
|
|
292
|
+
case "agg-count-when": {
|
|
293
|
+
if (agg.filter.length === 0)
|
|
294
|
+
return `COUNT(1) AS ${key}`;
|
|
295
|
+
const cond = print(agg.filter, null, false);
|
|
296
|
+
// Cosmos supports SUM(IIF(cond, 1, 0)) as a conditional count
|
|
297
|
+
return `SUM(IIF(${cond}, 1, 0)) AS ${key}`;
|
|
298
|
+
}
|
|
299
|
+
case "agg-sum": {
|
|
300
|
+
const fieldRef = dottedToAccess(`f.${agg.field}`);
|
|
301
|
+
return `SUM(${fieldRef}) AS ${key}`;
|
|
302
|
+
}
|
|
303
|
+
case "agg-min": {
|
|
304
|
+
const fieldRef = dottedToAccess(`f.${agg.field}`);
|
|
305
|
+
return `MIN(${fieldRef}) AS ${key}`;
|
|
306
|
+
}
|
|
307
|
+
case "agg-max": {
|
|
308
|
+
const fieldRef = dottedToAccess(`f.${agg.field}`);
|
|
309
|
+
return `MAX(${fieldRef}) AS ${key}`;
|
|
310
|
+
}
|
|
311
|
+
default:
|
|
312
|
+
return absurd(agg);
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
const computedSelectExpr = (key, computed) => {
|
|
316
|
+
const relationPath = computed.path;
|
|
317
|
+
const relationAlias = relationPath;
|
|
318
|
+
const relationSource = dottedToAccess(`f.${relationPath}`);
|
|
319
|
+
const compileExpr = (expression) => {
|
|
320
|
+
switch (expression._tag) {
|
|
321
|
+
case "field":
|
|
322
|
+
return dottedToAccess(`${relationAlias}.${expression.field}`);
|
|
323
|
+
case "mul":
|
|
324
|
+
return `(${compileExpr(expression.left)} * ${compileExpr(expression.right)})`;
|
|
325
|
+
default:
|
|
326
|
+
return absurd(expression);
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
const factorExpr = (unitExpr, toBase, factors) => {
|
|
330
|
+
const entries = Object.entries(factors).filter(([, factor]) => Number.isFinite(factor));
|
|
331
|
+
return entries.reduceRight((acc, [unit, factor]) => `IIF(${unitExpr} = ${JSON.stringify(unit)}, ${factor}, ${acc})`, `IIF(${unitExpr} = ${JSON.stringify(toBase)}, 1, 0)`);
|
|
332
|
+
};
|
|
333
|
+
const filter = "filter" in computed ? computed.filter : [];
|
|
334
|
+
// Print filter once — `print` mutates the outer `i` parameter counter, so
|
|
335
|
+
// re-walking the same filter would double-bump it and desync @v indices.
|
|
336
|
+
const filterSql = filter.length > 0 ? print(filter, relationPath, false) : "";
|
|
337
|
+
const where = filterSql ? ` WHERE ${filterSql}` : "";
|
|
338
|
+
switch (computed._tag) {
|
|
339
|
+
case "relation-count":
|
|
340
|
+
return `(SELECT VALUE COUNT(1) FROM ${relationAlias} IN ${relationSource}${where}) AS ${key}`;
|
|
341
|
+
case "relation-any":
|
|
342
|
+
return `EXISTS(SELECT VALUE ${relationAlias} FROM ${relationAlias} IN ${relationSource}${where}) AS ${key}`;
|
|
343
|
+
case "relation-every": {
|
|
344
|
+
// ∀x.P(x) ≡ ¬∃x.¬P(x). Cosmos has no NOT(...) on EXISTS subqueries directly,
|
|
345
|
+
// but we can flip via NOT EXISTS(... WHERE NOT (filter)).
|
|
346
|
+
if (filter.length === 0)
|
|
347
|
+
return `true AS ${key}`;
|
|
348
|
+
return `NOT EXISTS(SELECT VALUE ${relationAlias} FROM ${relationAlias} IN ${relationSource} WHERE NOT (${filterSql})) AS ${key}`;
|
|
349
|
+
}
|
|
350
|
+
case "relation-distinct-count": {
|
|
351
|
+
const fieldRef = dottedToAccess(`${relationAlias}.${computed.field}`);
|
|
352
|
+
return `(SELECT VALUE COUNT(1) FROM (SELECT DISTINCT VALUE ${fieldRef} FROM ${relationAlias} IN ${relationSource}${where})) AS ${key}`;
|
|
353
|
+
}
|
|
354
|
+
case "relation-sum": {
|
|
355
|
+
const fieldRef = dottedToAccess(`${relationAlias}.${computed.field}`);
|
|
356
|
+
return `(SELECT VALUE SUM(${fieldRef}) FROM ${relationAlias} IN ${relationSource}${where}) AS ${key}`;
|
|
357
|
+
}
|
|
358
|
+
case "relation-sum-expr": {
|
|
359
|
+
const expression = compileExpr(computed.expression);
|
|
360
|
+
return `(SELECT VALUE SUM(${expression}) FROM ${relationAlias} IN ${relationSource}${where}) AS ${key}`;
|
|
361
|
+
}
|
|
362
|
+
case "relation-sum-expr-by": {
|
|
363
|
+
const unitRef = dottedToAccess(`${relationAlias}.${computed.unit}`);
|
|
364
|
+
const expression = compileExpr(computed.expression);
|
|
365
|
+
return `ARRAY(SELECT VALUE { "unit": ${unitRef}, "total": SUM(${expression}) } FROM ${relationAlias} IN ${relationSource}${where} GROUP BY ${unitRef}) AS ${key}`;
|
|
366
|
+
}
|
|
367
|
+
case "relation-sum-expr-normalized": {
|
|
368
|
+
const unitRef = dottedToAccess(`${relationAlias}.${computed.unit}`);
|
|
369
|
+
const expression = compileExpr(computed.expression);
|
|
370
|
+
const factor = factorExpr(unitRef, computed.toBase, computed.factors);
|
|
371
|
+
return `(SELECT VALUE SUM((${expression}) * (${factor})) FROM ${relationAlias} IN ${relationSource}${where}) AS ${key}`;
|
|
372
|
+
}
|
|
373
|
+
case "relation-collect": {
|
|
374
|
+
const fieldRef = dottedToAccess(`${relationAlias}.${computed.field}`);
|
|
375
|
+
if (computed.distinct) {
|
|
376
|
+
return `ARRAY(SELECT DISTINCT VALUE ${fieldRef} FROM ${relationAlias} IN ${relationSource}${where}) AS ${key}`;
|
|
377
|
+
}
|
|
378
|
+
return `ARRAY(SELECT VALUE ${fieldRef} FROM ${relationAlias} IN ${relationSource}${where}) AS ${key}`;
|
|
379
|
+
}
|
|
380
|
+
case "relation-length":
|
|
381
|
+
return `ARRAY_LENGTH(${relationSource}) AS ${key}`;
|
|
382
|
+
case "relation-collect-fields": {
|
|
383
|
+
const subqueries = computed.fields.map((field) => {
|
|
384
|
+
const fieldRef = dottedToAccess(`${relationAlias}.${field}`);
|
|
385
|
+
return computed.distinct
|
|
386
|
+
? `ARRAY(SELECT DISTINCT VALUE ${fieldRef} FROM ${relationAlias} IN ${relationSource}${where})`
|
|
387
|
+
: `ARRAY(SELECT VALUE ${fieldRef} FROM ${relationAlias} IN ${relationSource}${where})`;
|
|
388
|
+
});
|
|
389
|
+
const combined = computed.distinct
|
|
390
|
+
? subqueries.reduce((acc, sq) => `SetUnion(${acc}, ${sq})`)
|
|
391
|
+
: subqueries.reduce((acc, sq) => `ARRAY_CONCAT(${acc}, ${sq})`);
|
|
392
|
+
return `${combined} AS ${key}`;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
};
|
|
396
|
+
const buildSelectList = () => {
|
|
397
|
+
if (!select)
|
|
398
|
+
return "f";
|
|
399
|
+
return select
|
|
400
|
+
.map((s) => {
|
|
401
|
+
if (typeof s === "string") {
|
|
402
|
+
return dottedToAccess(s === idKey ? "f.id" : `f.${s}`);
|
|
403
|
+
}
|
|
404
|
+
if ("computed" in s)
|
|
405
|
+
return computedSelectExpr(s.key, s.computed);
|
|
406
|
+
if ("aggregate" in s)
|
|
407
|
+
return aggregateSelectExpr(s.key, s.aggregate);
|
|
408
|
+
if ("path" in s)
|
|
409
|
+
return `${dottedToAccess(`f.${s.path}`)} AS ${s.key}`;
|
|
410
|
+
// subKeys
|
|
411
|
+
return `ARRAY (SELECT ${s.subKeys.map((_) => dottedToAccess(`t.${_}`)).join(",")}
|
|
412
|
+
FROM t in ${dottedToAccess(`f.${s.key}`)}) AS ${s.key}`;
|
|
413
|
+
})
|
|
414
|
+
.join(", ");
|
|
415
|
+
};
|
|
416
|
+
const groupByClause = hasAggregates && select
|
|
417
|
+
? (() => {
|
|
418
|
+
const groupByExprs = select
|
|
419
|
+
.filter((s) => typeof s === "object" && s !== null && "path" in s && !("aggregate" in s))
|
|
420
|
+
.map((s) => dottedToAccess(`f.${s.path}`));
|
|
421
|
+
return groupByExprs.length > 0 ? `GROUP BY ${groupByExprs.join(", ")}` : "";
|
|
422
|
+
})()
|
|
423
|
+
: "";
|
|
424
|
+
const orderExpr = (key) => hasAggregates ? key : dottedToAccess(`f.${key}`);
|
|
221
425
|
// with joins, you should use DISTINCT
|
|
222
426
|
// or you can end up with duplicates
|
|
223
427
|
return {
|
|
224
428
|
query: `
|
|
225
|
-
SELECT ${
|
|
226
|
-
? `${select
|
|
227
|
-
.map((s) => typeof s === "string"
|
|
228
|
-
? dottedToAccess(s === idKey ? "f.id" : `f.${s}`) // x["y"} vs x.y, helps with reserved keywords like "value"
|
|
229
|
-
: `ARRAY (SELECT ${s.subKeys.map((_) => dottedToAccess(`t.${_}`)).join(",")}
|
|
230
|
-
FROM t in ${dottedToAccess(`f.${s.key}`)}) AS ${s.key}`)
|
|
231
|
-
.join(", ")}`
|
|
232
|
-
: "f"}
|
|
429
|
+
SELECT ${buildSelectList()}
|
|
233
430
|
FROM ${name} f
|
|
234
431
|
|
|
235
|
-
${filter.length ? `WHERE (${print(filter,
|
|
236
|
-
${
|
|
432
|
+
${filter.length ? `WHERE (${print(filter, null, false)})` : ""}
|
|
433
|
+
${groupByClause}
|
|
434
|
+
${order ? `ORDER BY ${order.map((_) => `${orderExpr(_.key)} ${_.direction}`).join(", ")}` : ""}
|
|
237
435
|
${skip !== undefined || limit !== undefined ? `OFFSET ${skip ?? 0} LIMIT ${limit ?? 999999}` : ""}`,
|
|
238
|
-
parameters:
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
.concat(Array.isArray(x.value) ? x.value.map((_, i2) => ({ name: `@v${i}__${i2}`, value: _ })) : []))
|
|
246
|
-
]
|
|
436
|
+
parameters: values
|
|
437
|
+
.flatMap((x, i) => [{
|
|
438
|
+
name: `@v${i}`,
|
|
439
|
+
value: x.value
|
|
440
|
+
}]
|
|
441
|
+
// TODO: only for arrays that are used with _ANY or _ALL
|
|
442
|
+
.concat(Array.isArray(x.value) ? x.value.map((_, i2) => ({ name: `@v${i}__${i2}`, value: _ })) : []))
|
|
247
443
|
};
|
|
248
444
|
}
|
|
249
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvQ29zbW9zL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx3REFBd0Q7QUFDeEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQThCLE1BQU0sWUFBWSxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFHbEQsTUFBTSxVQUFVLFFBQVEsQ0FBQyxDQU14QjtJQUNDLE9BQU8sV0FBVztTQUNmLFFBQVEsQ0FBQyxjQUFjLENBQUM7U0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7UUFDeEIsS0FBSyxFQUFFLENBQUMsQ0FBQyxLQUFLO1FBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQ3hCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQTtZQUNyQixPQUFPLEdBQUcsQ0FBQTtRQUNaLENBQUMsRUFBRSxFQUFrRSxDQUFDLEVBQ3RFLFNBQVMsRUFDVCxDQUFDLENBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQTtBQUNQLENBQUM7QUFFRCxNQUFNLGNBQWMsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQ3RDLElBQUk7S0FDRCxLQUFLLENBQUMsR0FBRyxDQUFDO0tBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FB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
|
|
445
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvU3RvcmUvQ29zbW9zL3F1ZXJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx3REFBd0Q7QUFDeEQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEtBQUssTUFBTSxNQUFNLG1CQUFtQixDQUFBO0FBSTNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQWtCLE1BQU0sYUFBYSxDQUFBO0FBRTNELE1BQU0sVUFBVSxRQUFRLENBQUMsQ0FNeEI7SUFDQyxPQUFPLFdBQVc7U0FDZixRQUFRLENBQUMsY0FBYyxDQUFDO1NBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO1FBQ3hCLEtBQUssRUFBRSxDQUFDLENBQUMsS0FBSztRQUNkLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUN4QixDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM3QixHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUE7WUFDckIsT0FBTyxHQUFHLENBQUE7UUFDWixDQUFDLEVBQUUsRUFBa0UsQ0FBQyxFQUN0RSxTQUFTLEVBQ1QsQ0FBQyxDQUNGO0tBQ0YsQ0FBQyxDQUFDLENBQUE7QUFDUCxDQUFDO0FBRUQsTUFBTSxjQUFjLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUN0QyxJQUFJO0tBQ0QsS0FBSyxDQUFDLEdBQUcsQ0FBQztLQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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
|
package/dist/Store/Cosmos.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { type StorageConfig, StoreMaker } from "
|
|
1
|
+
import * as Layer from "effect-app/Layer";
|
|
2
|
+
import { type StorageConfig, StoreMaker } from "effect-app/Store";
|
|
3
3
|
export declare function CosmosStoreLayer(cfg: StorageConfig): Layer.Layer<StoreMaker, never, never>;
|
|
4
4
|
//# sourceMappingURL=Cosmos.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Cosmos.d.ts","sourceRoot":"","sources":["../../src/Store/Cosmos.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAIzC,OAAO,EAA8C,KAAK,aAAa,EAAyC,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAkoBpJ,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,yCAIlD"}
|