@effect-app/infra 4.0.0-beta.248 → 4.0.0-beta.249
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 +14 -1
- 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 +109 -145
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +4 -3
- package/dist/Emailer/fake.d.ts +2 -2
- package/dist/Emailer/fake.d.ts.map +1 -1
- package/dist/Emailer/fake.js +2 -2
- package/dist/QueueMaker/SQLQueue.d.ts +2 -2
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +4 -4
- package/dist/QueueMaker/memQueue.d.ts +2 -2
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +4 -4
- package/dist/QueueMaker/sbqueue.d.ts +2 -2
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +4 -4
- package/dist/RequestFiberSet.js +2 -2
- package/dist/{adapters/SQL → SQL}/Model.d.ts +2 -2
- package/dist/SQL/Model.d.ts.map +1 -0
- package/dist/SQL/Model.js +469 -0
- package/dist/{adapters/SQL.d.ts → SQL.d.ts} +1 -1
- package/dist/SQL.d.ts.map +1 -0
- package/dist/{adapters/SQL.js → SQL.js} +1 -1
- package/dist/{adapters/ServiceBus.d.ts → ServiceBus.d.ts} +1 -1
- package/dist/ServiceBus.d.ts.map +1 -0
- package/dist/ServiceBus.js +108 -0
- package/dist/Store/ContextMapContainer.d.ts +2 -2
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +2 -2
- package/dist/Store/Cosmos/query.d.ts +4 -4
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +1 -1
- package/dist/Store/Cosmos.d.ts +2 -2
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +3 -3
- package/dist/Store/Disk.d.ts +3 -3
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +2 -2
- package/dist/Store/Memory.d.ts +3 -3
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +2 -2
- 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 +2 -2
- package/dist/Store/SQL/query.d.ts +3 -3
- package/dist/Store/SQL/query.d.ts.map +1 -1
- package/dist/Store/SQL/query.js +1 -1
- package/dist/Store/SQL.d.ts +3 -3
- package/dist/Store/SQL.d.ts.map +1 -1
- package/dist/Store/SQL.js +2 -2
- package/dist/Store/codeFilter.d.ts +4 -4
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +1 -1
- package/dist/Store/index.d.ts +3 -4
- package/dist/Store/index.d.ts.map +1 -1
- package/dist/Store/index.js +2 -3
- package/dist/Store/utils.d.ts +2 -2
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +1 -1
- package/dist/{api/codec.d.ts → codec.d.ts} +1 -1
- package/dist/codec.d.ts.map +1 -0
- package/dist/codec.js +5 -0
- package/dist/{adapters/cosmos-client.d.ts → cosmos-client.d.ts} +1 -1
- package/dist/cosmos-client.d.ts.map +1 -0
- package/dist/cosmos-client.js +11 -0
- package/dist/errorReporter.d.ts +1 -1
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.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/{api/internal → internal}/RequestContextMiddleware.d.ts +2 -2
- package/dist/internal/RequestContextMiddleware.d.ts.map +1 -0
- package/dist/internal/RequestContextMiddleware.js +46 -0
- package/dist/{api/internal → internal}/auth.d.ts +1 -1
- package/dist/internal/auth.d.ts.map +1 -0
- package/dist/internal/auth.js +180 -0
- package/dist/{api/internal → internal}/events.d.ts +1 -1
- 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/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 +1 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +2 -2
- package/dist/logger/logFmtLogger.d.ts +1 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +2 -2
- package/dist/logger/shared.d.ts +2 -2
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +2 -2
- package/dist/{adapters/memQueue.d.ts → memQueue.d.ts} +1 -1
- package/dist/memQueue.d.ts.map +1 -0
- package/dist/memQueue.js +21 -0
- package/dist/{api/middlewares.d.ts → middlewares.d.ts} +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} +1 -1
- package/dist/mongo-client.d.ts.map +1 -0
- package/dist/mongo-client.js +15 -0
- package/dist/{adapters/redis-client.d.ts → redis-client.d.ts} +1 -1
- 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/{api/routing → routing}/middleware/RouterMiddleware.d.ts +1 -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 +2 -2
- package/dist/routing/middleware/middleware.d.ts.map +1 -0
- package/dist/routing/middleware/middleware.js +128 -0
- package/dist/{api/routing → routing}/middleware.d.ts +1 -1
- package/dist/routing/middleware.d.ts.map +1 -0
- package/dist/{api/routing → routing}/middleware.js +1 -1
- package/dist/{api/routing → routing}/schema/jwt.d.ts +1 -1
- 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/{api/routing → routing}/utils.d.ts +1 -1
- 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/{api/routing.js → routing.js} +1 -1
- package/dist/{api/setupRequest.d.ts → setupRequest.d.ts} +2 -2
- package/dist/setupRequest.d.ts.map +1 -0
- package/dist/setupRequest.js +70 -0
- package/dist/{api/util.d.ts → util.d.ts} +1 -1
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +14 -0
- package/examples/query.ts +2 -2
- package/package.json +84 -200
- package/src/Emailer/Sendgrid.ts +20 -5
- package/src/Emailer/fake.ts +1 -1
- package/src/QueueMaker/SQLQueue.ts +3 -3
- package/src/QueueMaker/memQueue.ts +3 -3
- package/src/QueueMaker/sbqueue.ts +3 -3
- package/src/RequestFiberSet.ts +1 -1
- package/src/{adapters/SQL → SQL}/Model.ts +1 -1
- package/src/{adapters/ServiceBus.ts → ServiceBus.ts} +1 -1
- package/src/Store/ContextMapContainer.ts +1 -1
- package/src/Store/Cosmos/query.ts +3 -3
- package/src/Store/Cosmos.ts +4 -4
- package/src/Store/Disk.ts +2 -2
- package/src/Store/Memory.ts +4 -4
- package/src/Store/SQL/Pg.ts +3 -3
- package/src/Store/SQL/query.ts +2 -2
- package/src/Store/SQL.ts +3 -3
- package/src/Store/codeFilter.ts +3 -3
- package/src/Store/index.ts +2 -4
- package/src/Store/utils.ts +1 -1
- package/src/errorReporter.ts +1 -1
- package/src/index.ts +2 -1
- package/src/{api/internal → internal}/RequestContextMiddleware.ts +3 -3
- package/src/{api/internal → internal}/events.ts +2 -2
- package/src/{api/layerUtils.ts → layerUtils.ts} +1 -1
- package/src/logger/jsonLogger.ts +1 -1
- package/src/logger/logFmtLogger.ts +1 -1
- package/src/logger/shared.ts +1 -1
- package/src/{adapters/redis-client.ts → redis-client.ts} +1 -1
- package/src/{api/reportError.ts → reportError.ts} +1 -1
- package/src/{api/routing → routing}/middleware/middleware.ts +4 -4
- package/src/{api/setupRequest.ts → setupRequest.ts} +3 -3
- package/test/auth.test.ts +1 -1
- package/test/contextProvider.test.ts +1 -1
- package/test/controller.test.ts +3 -3
- package/test/cosmos-query.test.ts +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/layerUtils.test.ts +1 -1
- package/test/query.test.ts +4 -4
- package/test/rawQuery.test.ts +4 -4
- package/test/repository-ext.test.ts +3 -3
- package/test/router-generator.test.ts +3 -3
- package/test/routing-interruptibility.test.ts +2 -2
- package/test/rpc-context-map-streaming.test.ts +3 -3
- package/test/rpc-e2e-invalidation.test.ts +2 -2
- package/test/rpc-multi-middleware.test.ts +1 -1
- package/test/rpc-stream-fullstack.test.ts +2 -2
- package/test/validateSample.test.ts +3 -3
- package/dist/Emailer/service.d.ts +0 -64
- package/dist/Emailer/service.d.ts.map +0 -1
- package/dist/Emailer/service.js +0 -7
- 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/Registry.d.ts +0 -21
- package/dist/Model/Repository/Registry.d.ts.map +0 -1
- package/dist/Model/Repository/Registry.js +0 -18
- package/dist/Model/Repository/ext.d.ts +0 -60
- package/dist/Model/Repository/ext.d.ts.map +0 -1
- package/dist/Model/Repository/ext.js +0 -122
- package/dist/Model/Repository/internal/internal.d.ts +0 -62
- package/dist/Model/Repository/internal/internal.d.ts.map +0 -1
- package/dist/Model/Repository/internal/internal.js +0 -398
- package/dist/Model/Repository/legacy.d.ts +0 -21
- 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 -53
- package/dist/Model/Repository/makeRepo.d.ts.map +0 -1
- package/dist/Model/Repository/makeRepo.js +0 -27
- package/dist/Model/Repository/service.d.ts +0 -97
- 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 -71
- 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 -7
- package/dist/Model/Repository.d.ts.map +0 -1
- package/dist/Model/Repository.js +0 -7
- package/dist/Model/dsl.d.ts +0 -33
- package/dist/Model/dsl.d.ts.map +0 -1
- package/dist/Model/dsl.js +0 -43
- 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 -446
- package/dist/Model/query/dsl.d.ts.map +0 -1
- package/dist/Model/query/dsl.js +0 -339
- package/dist/Model/query/new-kid-interpreter.d.ts +0 -136
- package/dist/Model/query/new-kid-interpreter.d.ts.map +0 -1
- package/dist/Model/query/new-kid-interpreter.js +0 -336
- 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 -5
- package/dist/Model.d.ts.map +0 -1
- package/dist/Model.js +0 -5
- package/dist/QueueMaker/service.d.ts +0 -13
- package/dist/QueueMaker/service.d.ts.map +0 -1
- package/dist/QueueMaker/service.js +0 -4
- package/dist/RequestContext.d.ts +0 -103
- package/dist/RequestContext.d.ts.map +0 -1
- package/dist/RequestContext.js +0 -49
- package/dist/Store/service.d.ts +0 -138
- package/dist/Store/service.d.ts.map +0 -1
- package/dist/Store/service.js +0 -95
- 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 -469
- package/dist/adapters/SQL.d.ts.map +0 -1
- package/dist/adapters/ServiceBus.d.ts.map +0 -1
- package/dist/adapters/ServiceBus.js +0 -108
- package/dist/adapters/cosmos-client.d.ts.map +0 -1
- package/dist/adapters/cosmos-client.js +0 -11
- package/dist/adapters/index.d.ts +0 -8
- package/dist/adapters/index.d.ts.map +0 -1
- package/dist/adapters/index.js +0 -8
- 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.map +0 -1
- package/dist/adapters/memQueue.js +0 -21
- package/dist/adapters/mongo-client.d.ts.map +0 -1
- package/dist/adapters/mongo-client.js +0 -15
- package/dist/adapters/redis-client.d.ts.map +0 -1
- package/dist/adapters/redis-client.js +0 -98
- package/dist/api/ContextProvider.d.ts +0 -34
- package/dist/api/ContextProvider.d.ts.map +0 -1
- package/dist/api/ContextProvider.js +0 -40
- package/dist/api/codec.d.ts.map +0 -1
- package/dist/api/codec.js +0 -5
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +0 -1
- package/dist/api/internal/RequestContextMiddleware.js +0 -46
- package/dist/api/internal/auth.d.ts.map +0 -1
- package/dist/api/internal/auth.js +0 -180
- package/dist/api/internal/events.d.ts.map +0 -1
- package/dist/api/internal/events.js +0 -49
- 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 -32
- package/dist/api/layerUtils.d.ts.map +0 -1
- package/dist/api/layerUtils.js +0 -17
- 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 -28
- 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 -128
- 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 -13
- 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.map +0 -1
- package/dist/api/routing/utils.js +0 -45
- package/dist/api/routing.d.ts +0 -184
- package/dist/api/routing.d.ts.map +0 -1
- package/dist/api/setupRequest.d.ts.map +0 -1
- package/dist/api/setupRequest.js +0 -70
- package/dist/api/util.d.ts.map +0 -1
- package/dist/api/util.js +0 -14
- package/src/Emailer/service.ts +0 -62
- package/src/Emailer.ts +0 -1
- package/src/Model/Repository/Registry.ts +0 -34
- package/src/Model/Repository/ext.ts +0 -375
- package/src/Model/Repository/internal/internal.ts +0 -692
- package/src/Model/Repository/legacy.ts +0 -29
- package/src/Model/Repository/makeRepo.ts +0 -144
- package/src/Model/Repository/service.ts +0 -639
- package/src/Model/Repository/validation.ts +0 -31
- package/src/Model/Repository.ts +0 -6
- package/src/Model/dsl.ts +0 -129
- 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 -297
- 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 -2546
- package/src/Model/query/new-kid-interpreter.ts +0 -484
- package/src/Model/query.ts +0 -13
- package/src/Model.ts +0 -4
- package/src/QueueMaker/service.ts +0 -19
- package/src/RequestContext.ts +0 -62
- package/src/Store/service.ts +0 -233
- package/src/Store.ts +0 -1
- package/src/adapters/index.ts +0 -7
- package/src/adapters/logger.ts +0 -3
- /package/src/{api/ContextProvider.ts → ContextProvider.ts} +0 -0
- /package/src/{adapters/SQL.ts → SQL.ts} +0 -0
- /package/src/{api/codec.ts → codec.ts} +0 -0
- /package/src/{adapters/cosmos-client.ts → cosmos-client.ts} +0 -0
- /package/src/{api/internal → internal}/auth.ts +0 -0
- /package/src/{api/internal → internal}/health.ts +0 -0
- /package/src/{adapters/memQueue.ts → memQueue.ts} +0 -0
- /package/src/{api/middlewares.ts → middlewares.ts} +0 -0
- /package/src/{adapters/mongo-client.ts → mongo-client.ts} +0 -0
- /package/src/{api/routing → routing}/middleware/RouterMiddleware.ts +0 -0
- /package/src/{api/routing → routing}/middleware.ts +0 -0
- /package/src/{api/routing → routing}/schema/jwt.ts +0 -0
- /package/src/{api/routing → routing}/tsort.ts +0 -0
- /package/src/{api/routing → routing}/utils.ts +0 -0
- /package/src/{api/routing.ts → routing.ts} +0 -0
- /package/src/{api/util.ts → util.ts} +0 -0
package/dist/api/routing.d.ts
DELETED
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect-app/Effect";
|
|
2
|
-
import { type HttpHeaders } from "effect-app/http";
|
|
3
|
-
import * as Layer from "effect-app/Layer";
|
|
4
|
-
import { type GetEffectContext, type RpcContextMap } from "effect-app/rpc/RpcContextMap";
|
|
5
|
-
import * as S from "effect-app/Schema";
|
|
6
|
-
import { type TypeTestId } from "effect-app/TypeTest";
|
|
7
|
-
import type * as Scope from "effect/Scope";
|
|
8
|
-
import * as Stream from "effect/Stream";
|
|
9
|
-
import { Rpc, type RpcSerialization } from "effect/unstable/rpc";
|
|
10
|
-
export * from "./routing/middleware.js";
|
|
11
|
-
export declare const applyRequestTypeInterruptibility: <A, E, R>(requestType: "command" | "query", effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R> | Rpc.Wrapper<Effect.Effect<A, E, R>>;
|
|
12
|
-
export type AnyRequestModule = S.Top & {
|
|
13
|
-
_tag: string;
|
|
14
|
-
type: "command" | "query";
|
|
15
|
-
stream: boolean;
|
|
16
|
-
config: any;
|
|
17
|
-
success: S.Top;
|
|
18
|
-
error: S.Top;
|
|
19
|
-
};
|
|
20
|
-
export interface AddAction<Actions extends AnyRequestModule, Accum extends Record<string, any> = {}> {
|
|
21
|
-
accum: Accum;
|
|
22
|
-
add<A extends Handler<Actions, any, any>>(a: A): A extends Handler<infer M extends AnyRequestModule, any, any> ? Exclude<Actions, M> extends never ? Accum & {
|
|
23
|
-
[K in M["_tag"]]: A;
|
|
24
|
-
} : AddAction<Exclude<Actions, M>, Accum & {
|
|
25
|
-
[K in M["_tag"]]: A;
|
|
26
|
-
}> & Accum & {
|
|
27
|
-
[K in M["_tag"]]: A;
|
|
28
|
-
} : never;
|
|
29
|
-
}
|
|
30
|
-
declare namespace RequestTypes {
|
|
31
|
-
const DECODED: "d";
|
|
32
|
-
type DECODED = typeof DECODED;
|
|
33
|
-
const RAW: "raw";
|
|
34
|
-
type RAW = typeof RAW;
|
|
35
|
-
}
|
|
36
|
-
type RequestType = (typeof RequestTypes)[keyof typeof RequestTypes];
|
|
37
|
-
type GetSuccess<T> = T extends {
|
|
38
|
-
success: S.Top;
|
|
39
|
-
} ? T["success"] : typeof S.Void;
|
|
40
|
-
type GetFailure<T extends {
|
|
41
|
-
error?: S.Top;
|
|
42
|
-
}> = T["error"] extends never ? typeof S.Never : T["error"];
|
|
43
|
-
type GetSuccessShape<Action extends {
|
|
44
|
-
success?: S.Top;
|
|
45
|
-
}, RT extends RequestType> = {
|
|
46
|
-
d: GetSuccess<Action>["Type"];
|
|
47
|
-
raw: GetSuccess<Action>["Encoded"];
|
|
48
|
-
}[RT];
|
|
49
|
-
interface HandlerBase<Action extends AnyRequestModule, RT extends RequestType, A, E, R> {
|
|
50
|
-
new (): {};
|
|
51
|
-
_tag: RT;
|
|
52
|
-
stack: string;
|
|
53
|
-
handler: (req: Action["Type"], headers: HttpHeaders.Headers) => Effect.Effect<A, E, R> | Stream.Stream<A, E, R>;
|
|
54
|
-
}
|
|
55
|
-
export interface Handler<Action extends AnyRequestModule, RT extends RequestType, R> extends HandlerBase<Action, RT, GetSuccessShape<Action, RT>, GetFailure<Action>["Type"] | S.SchemaError, R> {
|
|
56
|
-
}
|
|
57
|
-
type AnyHandler<Action extends AnyRequestModule> = Handler<Action, RequestType, any>;
|
|
58
|
-
type FilterRequestModules<T> = {
|
|
59
|
-
[K in keyof T as T[K] extends AnyRequestModule ? K : never]: T[K];
|
|
60
|
-
};
|
|
61
|
-
type EffectMatch<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: Resource[Key]["Type"]) => Effect.Effect<A, E, R2>) => Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
|
|
62
|
-
type StreamMatch<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = <A extends GetSuccessShape<Resource[Key], RT>, R2 = never, E = never>(f: (req: Resource[Key]["Type"]) => Stream.Stream<A, E, R2>) => Handler<Resource[Key], RT, Exclude<Exclude<R2, GetEffectContext<RequestContextMap, Resource[Key]["config"]>>, Scope.Scope>>;
|
|
63
|
-
type Match<Resource extends Record<string, any>, RequestContextMap extends Record<string, any>, RT extends RequestType, Key extends keyof Resource> = Resource[Key] extends {
|
|
64
|
-
stream: true;
|
|
65
|
-
} ? StreamMatch<Resource, RequestContextMap, RT, Key> : EffectMatch<Resource, RequestContextMap, RT, Key>;
|
|
66
|
-
export type RouteMatcher<RequestContextMap extends Record<string, any>, Resource extends Record<string, any>> = {
|
|
67
|
-
[Key in keyof FilterRequestModules<Resource>]: Match<Resource, RequestContextMap, RequestTypes.DECODED, Key> & {
|
|
68
|
-
success: Resource[Key]["success"];
|
|
69
|
-
successRaw: S.Codec<Resource[Key]["success"]["Encoded"]>;
|
|
70
|
-
error: Resource[Key]["error"];
|
|
71
|
-
/**
|
|
72
|
-
* Requires the Encoded shape (e.g directly undecoded from DB, so that we don't do multiple Decode/Encode)
|
|
73
|
-
*/
|
|
74
|
-
raw: Match<Resource, RequestContextMap, RequestTypes.RAW, Key>;
|
|
75
|
-
};
|
|
76
|
-
};
|
|
77
|
-
export declare const skipOnProd: Effect.Effect<boolean, never, never>;
|
|
78
|
-
type ProvidesOf<MW> = MW extends {
|
|
79
|
-
readonly provides: infer P;
|
|
80
|
-
} ? P : never;
|
|
81
|
-
type RequestContextMapOf<MW> = MW extends {
|
|
82
|
-
requestContextMap: infer RCM extends Record<string, RpcContextMap.Any>;
|
|
83
|
-
} ? RCM : Record<string, never>;
|
|
84
|
-
type LayerNormalize<L> = L extends Layer.Layer<any, infer E, infer R> ? Layer.Layer<never, E, R> : Layer.Layer<never, never, never>;
|
|
85
|
-
type LayerSuccess<L> = L extends Layer.Layer<infer A, any, any> ? A : never;
|
|
86
|
-
/**
|
|
87
|
-
* Middleware tags are typically passed to `makeRpcClient` as the class value, so
|
|
88
|
-
* the captured `MW` is a constructor type. Layers carry the *instance* type as
|
|
89
|
-
* their success channel. Bridge the two so the constraint compares like-with-like.
|
|
90
|
-
*
|
|
91
|
-
* Effect middleware classes declare `new(_: never): Shape` which the standard
|
|
92
|
-
* `T extends abstract new (...args: any) => infer I` form sometimes fails to
|
|
93
|
-
* narrow. Use the `prototype` member instead — it is always the instance type.
|
|
94
|
-
*/
|
|
95
|
-
type MWService<MW> = MW extends {
|
|
96
|
-
readonly prototype: infer P;
|
|
97
|
-
} ? P : MW;
|
|
98
|
-
/**
|
|
99
|
-
* Type-level guard: emits a structural mismatch on `Resource` when the middleware
|
|
100
|
-
* service identifier extracted from the resource's request classes is not provided
|
|
101
|
-
* by the layer passed to `makeRouter`. When `MW` is `never` (no middleware on the
|
|
102
|
-
* resource) or already a subtype of the layer's success, this resolves to `unknown`
|
|
103
|
-
* and intersects harmlessly with `Resource`.
|
|
104
|
-
*/
|
|
105
|
-
type EnsureMiddlewareProvided<Live, MW> = [MW] extends [never] ? unknown : [MWService<MW>] extends [LayerSuccess<Live>] ? unknown : {
|
|
106
|
-
readonly __middlewareNotProvidedByRouterLayer: {
|
|
107
|
-
readonly expected: MWService<MW>;
|
|
108
|
-
readonly providedByLayer: LayerSuccess<Live>;
|
|
109
|
-
};
|
|
110
|
-
};
|
|
111
|
-
type SafeGetEffectContext<RCM, Config> = RCM extends Record<string, RpcContextMap.Any> ? GetEffectContext<RCM, Config> : never;
|
|
112
|
-
export declare const makeRouter: <Live extends Layer.Layer<any, any, any> = Layer.Layer<any, never, never>>(middlewareLive?: Live) => {
|
|
113
|
-
matchAll: <T extends {
|
|
114
|
-
[key: string]: Layer.Layer<never, any, any>;
|
|
115
|
-
}>(handlers: T) => Layer.Layer<never, Layer.Error<(typeof handlers)[keyof typeof handlers]>, Layer.Services<(typeof handlers)[keyof typeof handlers]>>;
|
|
116
|
-
Router: <const Resource extends Record<string, any>, MW = Exclude<{ [K in keyof Resource]: Resource[K] extends {
|
|
117
|
-
readonly middleware?: infer MW_1;
|
|
118
|
-
} ? NonNullable<MW_1> : never; }[keyof Resource], never>>(rsc: Resource & EnsureMiddlewareProvided<Live, MW>, options?: {
|
|
119
|
-
check?: Effect.Effect<boolean>;
|
|
120
|
-
}) => {
|
|
121
|
-
<const Make extends {
|
|
122
|
-
dependencies?: ReadonlyArray<Layer.Any>;
|
|
123
|
-
effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (Resource[K] extends infer T ? T extends Resource[K] ? T extends {
|
|
124
|
-
stream: true;
|
|
125
|
-
} ? (req: T["Type"]) => Stream.Stream<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>> : ((req: T["Type"]) => Effect.Effect<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>) | ((req: T["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>, GetSuccess<T>["Type"], never>) : never : never) | (Resource[K] extends infer T_1 ? T_1 extends Resource[K] ? T_1 extends {
|
|
126
|
-
stream: true;
|
|
127
|
-
} ? {
|
|
128
|
-
raw: (req: T_1["Type"]) => Stream.Stream<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
|
|
129
|
-
} : {
|
|
130
|
-
raw: (req: T_1["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>, GetSuccess<T_1>["Encoded"], never>;
|
|
131
|
-
} | {
|
|
132
|
-
raw: (req: T_1["Type"]) => Effect.Effect<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
|
|
133
|
-
} : never : never); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
|
|
134
|
-
raw: any;
|
|
135
|
-
} ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
|
|
136
|
-
raw: any;
|
|
137
|
-
} ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never, SafeGetEffectContext<RequestContextMapOf<MW>, Resource[K]["config"]> | ProvidesOf<MW>>, Scope.Scope>>; }) => Generator<Effect.Effect<any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
|
|
138
|
-
/** @deprecated */
|
|
139
|
-
readonly ಠ_ಠ: never;
|
|
140
|
-
}>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<LayerNormalize<Live>>, MakeDepsIn<Make> | Layer.Services<LayerNormalize<Live>> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
|
|
141
|
-
[TypeTestId]: Make;
|
|
142
|
-
};
|
|
143
|
-
<const Make extends {
|
|
144
|
-
dependencies?: ReadonlyArray<Layer.Any>;
|
|
145
|
-
effect: (match: <const Impl extends { [K in keyof FilterRequestModules<Resource>]: (Resource[K] extends infer T ? T extends Resource[K] ? T extends {
|
|
146
|
-
stream: true;
|
|
147
|
-
} ? (req: T["Type"]) => Stream.Stream<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>> : ((req: T["Type"]) => Effect.Effect<GetSuccess<T>["Type"], S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>) | ((req: T["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T["config"]>>, GetSuccess<T>["Type"], never>) : never : never) | (Resource[K] extends infer T_1 ? T_1 extends Resource[K] ? T_1 extends {
|
|
148
|
-
stream: true;
|
|
149
|
-
} ? {
|
|
150
|
-
raw: (req: T_1["Type"]) => Stream.Stream<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
|
|
151
|
-
} : {
|
|
152
|
-
raw: (req: T_1["Type"]) => Generator<Effect.Effect<any, S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>, GetSuccess<T_1>["Encoded"], never>;
|
|
153
|
-
} | {
|
|
154
|
-
raw: (req: T_1["Type"]) => Effect.Effect<GetSuccess<T_1>["Encoded"], S.SchemaError | GetFailure<T_1>["Type"], ProvidesOf<MW> | SafeGetEffectContext<RequestContextMapOf<MW>, T_1["config"]>>;
|
|
155
|
-
} : never : never); }>(impl: Impl) => { [K in keyof Impl & keyof FilterRequestModules<Resource>]: Handler<FilterRequestModules<Resource>[K], Impl[K] extends {
|
|
156
|
-
raw: any;
|
|
157
|
-
} ? RequestTypes.RAW : RequestTypes.DECODED, Exclude<Exclude<Impl[K] extends {
|
|
158
|
-
raw: any;
|
|
159
|
-
} ? Impl[K]["raw"] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K]["raw"] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never : Impl[K] extends (...args: any[]) => Effect.Effect<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Stream.Stream<any, any, infer R> ? R : Impl[K] extends (...args: any[]) => Generator<Effect.Effect<any, any, infer R>> ? R : never, SafeGetEffectContext<RequestContextMapOf<MW>, Resource[K]["config"]> | ProvidesOf<MW>>, Scope.Scope>>; }) => Generator<Effect.Effect<any, any, any>, { [K in keyof FilterRequestModules<Resource>]: AnyHandler<Resource[K]>; }>;
|
|
160
|
-
}>(make: Make): Layer.Layer<never, MakeErrors<Make> | MakeDepsE<Make> | Layer.Error<LayerNormalize<Live>>, MakeDepsIn<Make> | Layer.Services<LayerNormalize<Live>> | Exclude<MakeContext<Make>, MakeDepsOut<Make>> | RpcSerialization.RpcSerialization> & {
|
|
161
|
-
readonly [TypeTestId]: Make;
|
|
162
|
-
};
|
|
163
|
-
};
|
|
164
|
-
};
|
|
165
|
-
export type MakeDeps<Make> = Make extends {
|
|
166
|
-
readonly dependencies: ReadonlyArray<Layer.Any>;
|
|
167
|
-
} ? Make["dependencies"][number] : never;
|
|
168
|
-
export type MakeErrors<Make> = Make extends {
|
|
169
|
-
readonly effect: (_: any) => Generator<Effect.Effect<any, never, any>, any>;
|
|
170
|
-
} ? never : Make extends {
|
|
171
|
-
readonly effect: (_: any) => Generator<Effect.Effect<any, infer E, any>, any>;
|
|
172
|
-
} ? E : never;
|
|
173
|
-
export type MakeContext<Make> = Make extends {
|
|
174
|
-
readonly effect: (_: any) => Generator<Effect.Effect<any, any, never>, any>;
|
|
175
|
-
} ? never : Make extends {
|
|
176
|
-
readonly effect: (_: any) => Generator<Effect.Effect<any, any, infer R>, any>;
|
|
177
|
-
} ? R : never;
|
|
178
|
-
export type MakeHandlers<Make, _Handlers extends Record<string, any>> = Make extends {
|
|
179
|
-
readonly effect: (_: any) => Generator<any, infer S>;
|
|
180
|
-
} ? S : never;
|
|
181
|
-
export type MakeDepsE<Make> = Layer.Error<MakeDeps<Make>>;
|
|
182
|
-
export type MakeDepsIn<Make> = Layer.Services<MakeDeps<Make>>;
|
|
183
|
-
export type MakeDepsOut<Make> = Layer.Success<MakeDeps<Make>>;
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9yb3V0aW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDbEQsT0FBTyxLQUFLLEtBQUssTUFBTSxrQkFBa0IsQ0FBQTtBQUV6QyxPQUFPLEVBQUUsS0FBSyxnQkFBZ0IsRUFBdUIsS0FBSyxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUM3RyxPQUFPLEtBQUssQ0FBQyxNQUFNLG1CQUFtQixDQUFBO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBSXJELE9BQU8sS0FBSyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLEdBQUcsRUFBWSxLQUFLLGdCQUFnQixFQUFhLE1BQU0scUJBQXFCLENBQUE7QUFJckYsY0FBYyx5QkFBeUIsQ0FBQTtBQUV2QyxlQUFPLE1BQU0sZ0NBQWdDLEdBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLGVBQ3pDLFNBQVMsR0FBRyxPQUFPLFVBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsaUVBQ3FDLENBQUE7QUFJckUsTUFBTSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUc7SUFDckMsSUFBSSxFQUFFLE1BQU0sQ0FBQTtJQUNaLElBQUksRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFBO0lBQ3pCLE1BQU0sRUFBRSxPQUFPLENBQUE7SUFDZixNQUFNLEVBQUUsR0FBRyxDQUFBO0lBQ1gsT0FBTyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUE7SUFDZCxLQUFLLEVBQUUs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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/api/routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setupRequest.d.ts","sourceRoot":"","sources":["../../src/api/setupRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAA;AAEzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAa,cAAc,EAAkB,MAAM,sBAAsB,CAAA;AAYhF,eAAO,MAAM,iBAAiB,6CAe3B,CAAA;AAEH,eAAO,MAAM,KAAK;;;gBAGhB,CAAA;AAmBF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CACnC;AAMD,eAAO,MAAM,qBAAqB,GAC/B,IAAI,EAAE,EAAE,EAAE,GAAG,SAAS,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,oFASxF,CAAA;AAEN,eAAO,MAAM,8BAA8B,4BACZ,MAAM,CAAC,WAAW,GAAG,mBAAmB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uEAM3G,CAAA;AAMP,eAAO,MAAM,uCAAuC,4BACrB,MAAM,CAAC,WAAW,GAAG,mBAAmB,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sGAK7G,CAAA;AAGL,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACzC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,cAAc,EAAE,cAAc,EAC9B,OAAO,CAAC,EAAE,mBAAmB,sEAa9B;AAED,wBAAgB,iCAAiC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACvD,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC5B,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,GAAG,mBAAmB,sEAanD"}
|
package/dist/api/setupRequest.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import * as Effect from "effect-app/Effect";
|
|
2
|
-
import * as Layer from "effect-app/Layer";
|
|
3
|
-
import * as Option from "effect-app/Option";
|
|
4
|
-
import { NonEmptyString255 } from "effect-app/Schema";
|
|
5
|
-
import * as Tracer from "effect/Tracer";
|
|
6
|
-
import { SqlClient } from "effect/unstable/sql";
|
|
7
|
-
import { LocaleRef, RequestContext, spanAttributes } from "../RequestContext.js";
|
|
8
|
-
import { ContextMapContainer } from "../Store/ContextMapContainer.js";
|
|
9
|
-
import { storeId } from "../Store/Memory.js";
|
|
10
|
-
const withSqlTransaction = (self) => Effect.serviceOption(SqlClient.SqlClient).pipe(Effect.flatMap(Option.match({
|
|
11
|
-
onNone: () => self,
|
|
12
|
-
onSome: (sql) => sql.withTransaction(self).pipe(Effect.orDie)
|
|
13
|
-
})));
|
|
14
|
-
export const getRequestContext = Effect
|
|
15
|
-
.all({
|
|
16
|
-
span: Effect.currentSpan.pipe(Effect.orDie),
|
|
17
|
-
locale: LocaleRef,
|
|
18
|
-
namespace: storeId
|
|
19
|
-
})
|
|
20
|
-
.pipe(Effect.map(({ locale, namespace, span }) => RequestContext.make({
|
|
21
|
-
span: Tracer.externalSpan(span),
|
|
22
|
-
locale,
|
|
23
|
-
namespace,
|
|
24
|
-
name: NonEmptyString255(span.name)
|
|
25
|
-
})));
|
|
26
|
-
export const getRC = Effect.all({
|
|
27
|
-
locale: LocaleRef,
|
|
28
|
-
namespace: storeId
|
|
29
|
-
});
|
|
30
|
-
const withRequestSpan = (name = "request", options) => (f) => Effect.andThen(getRC, (ctx) => f.pipe(Effect.withSpan(name, {
|
|
31
|
-
...options,
|
|
32
|
-
attributes: { ...spanAttributes({ ...ctx, name: NonEmptyString255(name) }), ...options?.attributes }
|
|
33
|
-
}, {
|
|
34
|
-
captureStackTrace: options?.captureStackTrace ?? false
|
|
35
|
-
}),
|
|
36
|
-
// TODO: false
|
|
37
|
-
// request context info is picked up directly in the logger for annotations.
|
|
38
|
-
Effect.withLogSpan(name)));
|
|
39
|
-
// Build `layer` against the ambient (request) scope rather than a sub-scope of the
|
|
40
|
-
// returned Effect. Required when the returned value is a streaming HttpServerResponse:
|
|
41
|
-
// the response body keeps producing chunks (and using layer-provided state) after the
|
|
42
|
-
// Effect returns, so a sub-scope would close too early and run finalizers mid-stream.
|
|
43
|
-
export const provideOnRequestScope = (layer) => (self) => Effect.gen(function* () {
|
|
44
|
-
const requestScope = yield* Effect.scope;
|
|
45
|
-
// Fresh MemoMap per request: `Layer.buildWithScope` would otherwise reuse
|
|
46
|
-
// the ambient MemoMap living on the HTTP server fiber, sharing the built
|
|
47
|
-
// value (e.g. ContextMap) across every request handled by that server.
|
|
48
|
-
const memoMap = yield* Layer.makeMemoMap;
|
|
49
|
-
const ctx = yield* Layer.buildWithMemoMap(layer, memoMap, requestScope);
|
|
50
|
-
return yield* Effect.provide(self, ctx);
|
|
51
|
-
});
|
|
52
|
-
export const setupRequestContextFromCurrent = (name = "request", options) => (self) => self
|
|
53
|
-
.pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(name, options), Effect.provide(ContextMapContainer.layer, { local: true }));
|
|
54
|
-
// Streaming variant: binds ContextMapContainer to the ambient (request) scope so its
|
|
55
|
-
// finalizer (clear()) runs only after the response body is fully drained, not when the
|
|
56
|
-
// outer Effect returns its HttpServerResponse value. Use for handlers that return a
|
|
57
|
-
// streaming HttpServerResponse (e.g. SSE) — see RequestContextMiddleware for context.
|
|
58
|
-
export const setupStreamingRequestContextFromCurrent = (name = "request", options) => (self) => self.pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(name, options), provideOnRequestScope(ContextMapContainer.layer));
|
|
59
|
-
// TODO: consider integrating Effect.withParentSpan
|
|
60
|
-
export function setupRequestContext(self, requestContext, options) {
|
|
61
|
-
const layer = Layer.mergeAll(ContextMapContainer.layer, Layer.succeed(LocaleRef, requestContext.locale), Layer.succeed(storeId, requestContext.namespace));
|
|
62
|
-
return self
|
|
63
|
-
.pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(requestContext.name), Effect.provide(layer, { local: true }));
|
|
64
|
-
}
|
|
65
|
-
export function setupRequestContextWithCustomSpan(self, requestContext, name, options) {
|
|
66
|
-
const layer = Layer.mergeAll(ContextMapContainer.layer, Layer.succeed(LocaleRef, requestContext.locale), Layer.succeed(storeId, requestContext.namespace));
|
|
67
|
-
return self
|
|
68
|
-
.pipe(options?.withTransaction === true ? withSqlTransaction : (_) => _, withRequestSpan(name, options), Effect.provide(layer, { local: true }));
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2FwaS9zZXR1cFJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxtQkFBbUIsQ0FBQTtBQUMzQyxPQUFPLEtBQUssS0FBSyxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sS0FBSyxNQUFNLE1BQU0sbUJBQW1CLENBQUE7QUFDM0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFDckQsT0FBTyxLQUFLLE1BQU0sTUFBTSxlQUFlLENBQUE7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ3JFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUU1QyxNQUFNLGtCQUFrQixHQUFHLENBQVUsSUFBNEIsRUFBMEIsRUFBRSxDQUMzRixNQUFNLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQzVDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMxQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSTtJQUNsQixNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7Q0FDOUQsQ0FBQyxDQUFDLENBQ0osQ0FBQTtBQUVILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE1BQU07S0FDcEMsR0FBRyxDQUFDO0lBQ0gsSUFBSSxFQUFFLE1BQU0sQ0FB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
|
package/dist/api/util.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../src/api/util.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,0CAStE;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,UAEvC"}
|
package/dist/api/util.js
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
export function snipValue(value) {
|
|
2
|
-
if (!value) {
|
|
3
|
-
return value;
|
|
4
|
-
}
|
|
5
|
-
return Array.isArray(value)
|
|
6
|
-
? value.map(snipString)
|
|
7
|
-
: typeof value === "string" && value.length > 50
|
|
8
|
-
? snipString(value)
|
|
9
|
-
: value;
|
|
10
|
-
}
|
|
11
|
-
export function snipString(value) {
|
|
12
|
-
return value.length > 255 ? value.slice(0, 255) + "...snip" : value;
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hcGkvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsU0FBUyxDQUFDLEtBQTZDO0lBQ3JFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFO1lBQ2hELENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ25CLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDWCxDQUFDO0FBRUQsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0FBQ3JFLENBQUMifQ==
|
package/src/Emailer/service.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js"
|
|
2
|
-
import type { ResponseError } from "@sendgrid/mail"
|
|
3
|
-
import type { NonEmptyReadonlyArray } from "effect-app/Array"
|
|
4
|
-
import * as Context from "effect-app/Context"
|
|
5
|
-
import type * as Effect from "effect-app/Effect"
|
|
6
|
-
import type { Email } from "effect-app/Schema"
|
|
7
|
-
import * as Data from "effect/Data"
|
|
8
|
-
import type * as Redacted from "effect/Redacted"
|
|
9
|
-
|
|
10
|
-
export class SendMailError extends Data.TaggedError("SendMailError")<{
|
|
11
|
-
readonly raw: Error | ResponseError
|
|
12
|
-
}> {}
|
|
13
|
-
|
|
14
|
-
export class Emailer extends Context.Opaque<Emailer, {
|
|
15
|
-
sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>
|
|
16
|
-
}>()("effect-app/Emailer") {}
|
|
17
|
-
|
|
18
|
-
export type EmailData = Email | {
|
|
19
|
-
name?: string
|
|
20
|
-
email: Email
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface SendgridConfig {
|
|
24
|
-
defaultReplyTo?: EmailData
|
|
25
|
-
subjectPrefix: string
|
|
26
|
-
realMail: boolean
|
|
27
|
-
defaultFrom: EmailData
|
|
28
|
-
apiKey: Redacted.Redacted
|
|
29
|
-
/**
|
|
30
|
-
* Email address used for fake/test recipients. Use `{i}` as a placeholder for an auto-incrementing index to ensure uniqueness.
|
|
31
|
-
*
|
|
32
|
-
* @example "test+{i}@example.com"
|
|
33
|
-
*/
|
|
34
|
-
fakeMailAddress: string
|
|
35
|
-
}
|
|
36
|
-
export type EmailTemplateMsg = MailData & { templateId: string }
|
|
37
|
-
|
|
38
|
-
export type EmailRecipients = EmailData | NonEmptyReadonlyArray<EmailData>
|
|
39
|
-
|
|
40
|
-
export type EmailMsgBase =
|
|
41
|
-
& Omit<MailData, "from" | "to" | "bcc" | "cc" | "content">
|
|
42
|
-
& {
|
|
43
|
-
to: EmailData | NonEmptyReadonlyArray<EmailData>
|
|
44
|
-
cc?: EmailData | NonEmptyReadonlyArray<EmailData>
|
|
45
|
-
bcc?: EmailData | NonEmptyReadonlyArray<EmailData>
|
|
46
|
-
from: EmailData
|
|
47
|
-
/**
|
|
48
|
-
* should multiple `to` addresess be considered multiple emails?
|
|
49
|
-
* defaults to `true`, not to leak email addresses
|
|
50
|
-
*/
|
|
51
|
-
isMultiple?: boolean
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export type EmailContent = { text: string } | { html: string } | { templateId: string } | {
|
|
55
|
-
content: NonEmptyReadonlyArray<MailContent>
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
export type EmailMsg =
|
|
59
|
-
& EmailMsgBase
|
|
60
|
-
& EmailContent
|
|
61
|
-
|
|
62
|
-
export type EmailMsgOptionalFrom = Omit<EmailMsgBase, "from"> & Partial<Pick<EmailMsg, "from">> & EmailContent
|
package/src/Emailer.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./Emailer/service.js"
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import * as Context from "effect-app/Context"
|
|
2
|
-
import * as Effect from "effect-app/Effect"
|
|
3
|
-
|
|
4
|
-
export interface RegisteredRepository {
|
|
5
|
-
readonly seedNamespace: (namespace: string) => Effect.Effect<void>
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
const make = Effect.sync(() => {
|
|
9
|
-
const repos = new Map<string, RegisteredRepository>()
|
|
10
|
-
return {
|
|
11
|
-
register(modelName: string, repo: RegisteredRepository) {
|
|
12
|
-
repos.set(modelName, repo)
|
|
13
|
-
},
|
|
14
|
-
seedNamespace: (namespace: string) =>
|
|
15
|
-
Effect.suspend(() =>
|
|
16
|
-
Effect.forEach(
|
|
17
|
-
repos.values(),
|
|
18
|
-
(r) => r.seedNamespace(namespace),
|
|
19
|
-
{ concurrency: "unbounded", discard: true }
|
|
20
|
-
)
|
|
21
|
-
),
|
|
22
|
-
get entries(): ReadonlyMap<string, RegisteredRepository> {
|
|
23
|
-
return repos
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
export class RepositoryRegistry extends Context.Opaque<RepositoryRegistry, {
|
|
29
|
-
readonly register: (modelName: string, repo: RegisteredRepository) => void
|
|
30
|
-
readonly seedNamespace: (namespace: string) => Effect.Effect<void>
|
|
31
|
-
readonly entries: ReadonlyMap<string, RegisteredRepository>
|
|
32
|
-
}>()("effect-app/RepositoryRegistry", { make }) {}
|
|
33
|
-
|
|
34
|
-
export const RepositoryRegistryLive = RepositoryRegistry.toLayer(RepositoryRegistry.make)
|