@effect-app/infra 4.0.0-beta.22 → 4.0.0-beta.220
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 +1640 -0
- package/_check.sh +1 -1
- package/dist/CUPS.d.ts +7 -7
- package/dist/CUPS.d.ts.map +1 -1
- package/dist/CUPS.js +10 -12
- package/dist/Emailer/Sendgrid.d.ts +14 -14
- package/dist/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/Emailer/Sendgrid.js +16 -15
- package/dist/Emailer/fake.d.ts +1 -1
- package/dist/Emailer/service.d.ts +10 -4
- package/dist/Emailer/service.d.ts.map +1 -1
- package/dist/Emailer/service.js +3 -3
- package/dist/Emailer.d.ts +1 -1
- package/dist/MainFiberSet.d.ts +9 -9
- package/dist/MainFiberSet.d.ts.map +1 -1
- package/dist/MainFiberSet.js +3 -3
- package/dist/Model/Repository/Registry.d.ts +20 -0
- package/dist/Model/Repository/Registry.d.ts.map +1 -0
- package/dist/Model/Repository/Registry.js +17 -0
- package/dist/Model/Repository/ext.d.ts +33 -15
- package/dist/Model/Repository/ext.d.ts.map +1 -1
- package/dist/Model/Repository/ext.js +54 -2
- package/dist/Model/Repository/internal/internal.d.ts +6 -6
- package/dist/Model/Repository/internal/internal.d.ts.map +1 -1
- package/dist/Model/Repository/internal/internal.js +103 -51
- package/dist/Model/Repository/legacy.d.ts +1 -1
- package/dist/Model/Repository/makeRepo.d.ts +7 -6
- package/dist/Model/Repository/makeRepo.d.ts.map +1 -1
- package/dist/Model/Repository/makeRepo.js +5 -1
- package/dist/Model/Repository/service.d.ts +28 -23
- package/dist/Model/Repository/service.d.ts.map +1 -1
- package/dist/Model/Repository/validation.d.ts +46 -17
- package/dist/Model/Repository/validation.d.ts.map +1 -1
- package/dist/Model/Repository/validation.js +5 -5
- package/dist/Model/Repository.d.ts +2 -1
- package/dist/Model/Repository.d.ts.map +1 -1
- package/dist/Model/Repository.js +2 -1
- package/dist/Model/dsl.d.ts +4 -4
- package/dist/Model/dsl.d.ts.map +1 -1
- package/dist/Model/filter/filterApi.d.ts +5 -5
- package/dist/Model/filter/filterApi.d.ts.map +1 -1
- package/dist/Model/filter/types/errors.d.ts +1 -1
- package/dist/Model/filter/types/fields.d.ts +1 -1
- package/dist/Model/filter/types/path/common.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts +1 -1
- package/dist/Model/filter/types/path/eager.d.ts.map +1 -1
- package/dist/Model/filter/types/path/eager.js +1 -1
- package/dist/Model/filter/types/path/index.d.ts +1 -1
- package/dist/Model/filter/types/utils.d.ts +1 -1
- package/dist/Model/filter/types/validator.d.ts +1 -1
- package/dist/Model/filter/types.d.ts +1 -1
- package/dist/Model/query/dsl.d.ts +139 -16
- package/dist/Model/query/dsl.d.ts.map +1 -1
- package/dist/Model/query/dsl.js +187 -1
- package/dist/Model/query/new-kid-interpreter.d.ts +76 -7
- package/dist/Model/query/new-kid-interpreter.d.ts.map +1 -1
- package/dist/Model/query/new-kid-interpreter.js +122 -6
- package/dist/Model/query.d.ts +1 -1
- package/dist/Model.d.ts +2 -1
- package/dist/Model.d.ts.map +1 -1
- package/dist/Model.js +2 -1
- package/dist/QueueMaker/SQLQueue.d.ts +5 -7
- package/dist/QueueMaker/SQLQueue.d.ts.map +1 -1
- package/dist/QueueMaker/SQLQueue.js +130 -116
- package/dist/QueueMaker/errors.d.ts +2 -2
- package/dist/QueueMaker/errors.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.d.ts +7 -4
- package/dist/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/QueueMaker/memQueue.js +75 -63
- package/dist/QueueMaker/sbqueue.d.ts +6 -3
- package/dist/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/QueueMaker/sbqueue.js +52 -53
- package/dist/QueueMaker/service.d.ts +1 -1
- package/dist/RequestContext.d.ts +74 -35
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +13 -14
- package/dist/RequestFiberSet.d.ts +7 -7
- package/dist/RequestFiberSet.d.ts.map +1 -1
- package/dist/RequestFiberSet.js +3 -3
- package/dist/Store/ContextMapContainer.d.ts +19 -3
- package/dist/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/Store/ContextMapContainer.js +13 -3
- package/dist/Store/Cosmos/query.d.ts +5 -1
- package/dist/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/Store/Cosmos/query.js +113 -34
- package/dist/Store/Cosmos.d.ts +1 -1
- package/dist/Store/Cosmos.d.ts.map +1 -1
- package/dist/Store/Cosmos.js +335 -243
- package/dist/Store/Disk.d.ts +2 -2
- package/dist/Store/Disk.d.ts.map +1 -1
- package/dist/Store/Disk.js +72 -35
- package/dist/Store/Memory.d.ts +6 -4
- package/dist/Store/Memory.d.ts.map +1 -1
- package/dist/Store/Memory.js +242 -58
- package/dist/Store/SQL/Pg.d.ts +4 -0
- package/dist/Store/SQL/Pg.d.ts.map +1 -0
- package/dist/Store/SQL/Pg.js +231 -0
- package/dist/Store/SQL/query.d.ts +42 -0
- package/dist/Store/SQL/query.d.ts.map +1 -0
- package/dist/Store/SQL/query.js +479 -0
- package/dist/Store/SQL.d.ts +20 -0
- package/dist/Store/SQL.d.ts.map +1 -0
- package/dist/Store/SQL.js +446 -0
- package/dist/Store/codeFilter.d.ts +1 -1
- package/dist/Store/codeFilter.d.ts.map +1 -1
- package/dist/Store/codeFilter.js +4 -2
- package/dist/Store/index.d.ts +5 -2
- package/dist/Store/index.d.ts.map +1 -1
- package/dist/Store/index.js +15 -3
- package/dist/Store/service.d.ts +22 -8
- package/dist/Store/service.d.ts.map +1 -1
- package/dist/Store/service.js +24 -6
- package/dist/Store/utils.d.ts +1 -1
- package/dist/Store/utils.d.ts.map +1 -1
- package/dist/Store/utils.js +3 -4
- package/dist/Store.d.ts +1 -1
- package/dist/adapters/SQL/Model.d.ts +31 -42
- package/dist/adapters/SQL/Model.d.ts.map +1 -1
- package/dist/adapters/SQL/Model.js +29 -38
- package/dist/adapters/SQL.d.ts +1 -1
- package/dist/adapters/ServiceBus.d.ts +11 -11
- package/dist/adapters/ServiceBus.d.ts.map +1 -1
- package/dist/adapters/ServiceBus.js +25 -21
- package/dist/adapters/cosmos-client.d.ts +3 -3
- package/dist/adapters/cosmos-client.d.ts.map +1 -1
- package/dist/adapters/cosmos-client.js +3 -3
- package/dist/adapters/index.d.ts +8 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +8 -2
- package/dist/adapters/logger.d.ts +1 -1
- package/dist/adapters/logger.d.ts.map +1 -1
- package/dist/adapters/memQueue.d.ts +3 -3
- package/dist/adapters/memQueue.d.ts.map +1 -1
- package/dist/adapters/memQueue.js +3 -3
- package/dist/adapters/mongo-client.d.ts +3 -3
- package/dist/adapters/mongo-client.d.ts.map +1 -1
- package/dist/adapters/mongo-client.js +3 -3
- package/dist/adapters/redis-client.d.ts +3 -3
- package/dist/adapters/redis-client.d.ts.map +1 -1
- package/dist/adapters/redis-client.js +3 -3
- package/dist/api/ContextProvider.d.ts +8 -8
- package/dist/api/ContextProvider.d.ts.map +1 -1
- package/dist/api/ContextProvider.js +6 -6
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/internal/RequestContextMiddleware.d.ts +2 -2
- package/dist/api/internal/RequestContextMiddleware.d.ts.map +1 -1
- package/dist/api/internal/RequestContextMiddleware.js +9 -6
- package/dist/api/internal/auth.d.ts +44 -6
- package/dist/api/internal/auth.d.ts.map +1 -1
- package/dist/api/internal/auth.js +160 -29
- package/dist/api/internal/events.d.ts +3 -3
- package/dist/api/internal/events.d.ts.map +1 -1
- package/dist/api/internal/events.js +10 -8
- package/dist/api/internal/health.d.ts +1 -1
- package/dist/api/layerUtils.d.ts +6 -6
- package/dist/api/layerUtils.d.ts.map +1 -1
- package/dist/api/layerUtils.js +5 -5
- package/dist/api/middlewares.d.ts +1 -1
- package/dist/api/reportError.d.ts +1 -1
- package/dist/api/routing/middleware/RouterMiddleware.d.ts +4 -4
- package/dist/api/routing/middleware/RouterMiddleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.d.ts +39 -3
- package/dist/api/routing/middleware/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware/middleware.js +48 -16
- package/dist/api/routing/middleware.d.ts +1 -2
- package/dist/api/routing/middleware.d.ts.map +1 -1
- package/dist/api/routing/middleware.js +1 -2
- package/dist/api/routing/schema/jwt.d.ts +1 -1
- package/dist/api/routing/schema/jwt.d.ts.map +1 -1
- package/dist/api/routing/tsort.d.ts +1 -1
- package/dist/api/routing/tsort.d.ts.map +1 -1
- package/dist/api/routing/utils.d.ts +3 -3
- package/dist/api/routing/utils.d.ts.map +1 -1
- package/dist/api/routing.d.ts +80 -37
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +109 -41
- package/dist/api/setupRequest.d.ts +8 -5
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +12 -7
- package/dist/api/util.d.ts +1 -1
- package/dist/arbs.d.ts +1 -1
- package/dist/arbs.d.ts.map +1 -1
- package/dist/arbs.js +5 -3
- package/dist/errorReporter.d.ts +4 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +20 -25
- package/dist/errors.d.ts +1 -1
- package/dist/fileUtil.d.ts +1 -1
- package/dist/fileUtil.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/logger/jsonLogger.d.ts +1 -1
- package/dist/logger/logFmtLogger.d.ts +1 -1
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger/shared.js +2 -2
- package/dist/logger.d.ts +1 -1
- package/dist/logger.d.ts.map +1 -1
- package/dist/otel.d.ts +75 -0
- package/dist/otel.d.ts.map +1 -0
- package/dist/otel.js +65 -0
- package/dist/rateLimit.d.ts +9 -3
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +5 -11
- package/dist/test.d.ts +2 -2
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +1 -1
- package/dist/vitest.d.ts +1 -1
- package/examples/query.ts +42 -38
- package/package.json +46 -37
- package/src/CUPS.ts +9 -11
- package/src/Emailer/Sendgrid.ts +17 -14
- package/src/Emailer/service.ts +9 -3
- package/src/MainFiberSet.ts +5 -6
- package/src/Model/Repository/Registry.ts +33 -0
- package/src/Model/Repository/ext.ts +96 -10
- package/src/Model/Repository/internal/internal.ts +218 -149
- package/src/Model/Repository/makeRepo.ts +12 -10
- package/src/Model/Repository/service.ts +31 -22
- package/src/Model/Repository/validation.ts +4 -4
- package/src/Model/Repository.ts +1 -0
- package/src/Model/dsl.ts +3 -3
- package/src/Model/filter/types/path/eager.ts +1 -2
- package/src/Model/query/dsl.ts +348 -18
- package/src/Model/query/new-kid-interpreter.ts +206 -6
- package/src/Model.ts +1 -0
- package/src/QueueMaker/SQLQueue.ts +144 -152
- package/src/QueueMaker/memQueue.ts +104 -103
- package/src/QueueMaker/sbqueue.ts +70 -86
- package/src/RequestContext.ts +14 -16
- package/src/RequestFiberSet.ts +2 -2
- package/src/Store/ContextMapContainer.ts +41 -2
- package/src/Store/Cosmos/query.ts +140 -43
- package/src/Store/Cosmos.ts +482 -349
- package/src/Store/Disk.ts +102 -65
- package/src/Store/Memory.ts +275 -87
- package/src/Store/SQL/Pg.ts +361 -0
- package/src/Store/SQL/query.ts +539 -0
- package/src/Store/SQL.ts +731 -0
- package/src/Store/codeFilter.ts +3 -1
- package/src/Store/index.ts +17 -2
- package/src/Store/service.ts +41 -10
- package/src/Store/utils.ts +23 -22
- package/src/adapters/SQL/Model.ts +41 -40
- package/src/adapters/ServiceBus.ts +125 -121
- package/src/adapters/cosmos-client.ts +2 -2
- package/src/adapters/index.ts +7 -0
- package/src/adapters/memQueue.ts +2 -2
- package/src/adapters/mongo-client.ts +2 -2
- package/src/adapters/redis-client.ts +2 -2
- package/src/api/ContextProvider.ts +12 -13
- package/src/api/internal/RequestContextMiddleware.ts +15 -5
- package/src/api/internal/auth.ts +246 -44
- package/src/api/internal/events.ts +13 -9
- package/src/api/layerUtils.ts +8 -8
- package/src/api/routing/middleware/RouterMiddleware.ts +4 -4
- package/src/api/routing/middleware/middleware.ts +55 -14
- package/src/api/routing/middleware.ts +0 -2
- package/src/api/routing.ts +296 -131
- package/src/api/setupRequest.ts +28 -8
- package/src/arbs.ts +4 -2
- package/src/errorReporter.ts +62 -74
- package/src/logger/shared.ts +1 -1
- package/src/otel.ts +152 -0
- package/src/rateLimit.ts +30 -22
- package/src/test.ts +1 -1
- package/test/auth.test.ts +101 -0
- package/test/contextProvider.test.ts +11 -11
- package/test/controller.test.ts +21 -30
- package/test/dist/auth.test.d.ts.map +1 -0
- package/test/dist/contextProvider.test.d.ts.map +1 -1
- package/test/dist/controller.test.d.ts.map +1 -1
- package/test/dist/date-query.test.d.ts.map +1 -0
- package/test/dist/fixtures.d.ts +26 -12
- package/test/dist/fixtures.d.ts.map +1 -1
- package/test/dist/fixtures.js +12 -10
- package/test/dist/query.test.d.ts.map +1 -1
- package/test/dist/rawQuery.test.d.ts.map +1 -1
- package/test/dist/repository-ext.test.d.ts.map +1 -0
- package/test/dist/requires.test.d.ts.map +1 -1
- package/test/dist/router-generator.test.d.ts.map +1 -0
- package/test/dist/routing-interruptibility.test.d.ts.map +1 -0
- package/test/dist/rpc-e2e-invalidation.test.d.ts.map +1 -0
- package/test/dist/rpc-multi-middleware.test.d.ts.map +1 -1
- package/test/dist/rpc-stream-fullstack.test.d.ts.map +1 -0
- package/test/dist/sql-store.test.d.ts.map +1 -0
- package/test/fixtures.ts +11 -9
- package/test/query.test.ts +813 -38
- package/test/rawQuery.test.ts +301 -20
- package/test/repository-ext.test.ts +60 -0
- package/test/requires.test.ts +6 -6
- package/test/router-generator.test.ts +183 -0
- package/test/routing-interruptibility.test.ts +63 -0
- package/test/rpc-e2e-invalidation.test.ts +251 -0
- package/test/rpc-multi-middleware.test.ts +78 -9
- package/test/rpc-stream-fullstack.test.ts +300 -0
- package/test/sql-store.test.ts +1592 -0
- package/test/validateSample.test.ts +15 -12
- package/tsconfig.examples.json +1 -1
- package/tsconfig.json +0 -1
- package/tsconfig.json.bak +2 -2
- package/tsconfig.src.json +35 -35
- package/tsconfig.test.json +2 -2
- 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/eslint.config.mjs +0 -24
- package/src/Operations.ts +0 -235
- package/src/OperationsRepo.ts +0 -16
package/_check.sh
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
2
|
cd /home/patroza/pj/effect-app/libs
|
|
3
|
-
./node_modules/.bin/tsc -p packages/infra/tsconfig.src.json --noEmit 2>&1 | grep -E "(internal\.ts|
|
|
3
|
+
./node_modules/.bin/tsc -p packages/infra/tsconfig.src.json --noEmit 2>&1 | grep -E "(internal\.ts|SQLQueue\.ts|memQueue\.ts|sbqueue\.ts)" | head -100
|
package/dist/CUPS.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { type FileOptions } from "@effect-app/infra/fileUtil";
|
|
2
|
-
import { Config, Effect, Layer, Option, S
|
|
3
|
-
export declare const PrinterId: S.WithDefaults<
|
|
2
|
+
import { Config, Context, Effect, Layer, Option, S } from "effect-app";
|
|
3
|
+
export declare const PrinterId: S.WithDefaults<import("effect-app/Schema/brand").BrandedSchema<import("effect/Schema").NonEmptyString, S.NonEmptyString255>> & import("effect-app/Schema/brand").BrandedSchema<import("effect/Schema").NonEmptyString, S.NonEmptyString255>;
|
|
4
4
|
export type PrinterId = S.NonEmptyString255;
|
|
5
5
|
export declare const prepareTempDir: Effect.Effect<void, never, never>;
|
|
6
|
-
export declare const makePrintJobTempFile: (data: string |
|
|
6
|
+
export declare const makePrintJobTempFile: (data: string | AsyncIterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>> | Iterable<string | NodeJS.ArrayBufferView<ArrayBufferLike>> | import("node:stream") | NodeJS.ArrayBufferView<ArrayBufferLike>, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").UnknownError, import("effect/Scope").Scope>;
|
|
7
7
|
export declare const makePrintJobTempFileArrayBuffer: (buffer: ArrayBuffer, options?: FileOptions) => Effect.Effect<string, import("effect/Cause").UnknownError, import("effect/Scope").Scope>;
|
|
8
8
|
export declare const CUPSConfig: Config.Config<{
|
|
9
9
|
server: Option.Option<import("node:url").URL>;
|
|
10
10
|
}>;
|
|
11
|
-
declare const CUPS_base:
|
|
11
|
+
declare const CUPS_base: Context.ServiceClass<CUPS, "effect-app/CUPS", {
|
|
12
12
|
print: (buffer: ArrayBuffer, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
|
|
13
13
|
stdout: string;
|
|
14
14
|
stderr: string;
|
|
@@ -17,7 +17,7 @@ declare const CUPS_base: ServiceMap.ServiceClass<CUPS, "effect-app/CUPS", {
|
|
|
17
17
|
stdout: string;
|
|
18
18
|
stderr: string;
|
|
19
19
|
}, import("effect/Cause").UnknownError, never>;
|
|
20
|
-
getAvailablePrinters: Effect.Effect<
|
|
20
|
+
getAvailablePrinters: Effect.Effect<S.NonEmptyString255[], import("effect/Cause").UnknownError, never>;
|
|
21
21
|
}> & {
|
|
22
22
|
readonly make: Effect.Effect<{
|
|
23
23
|
print: (buffer: ArrayBuffer, printerId: PrinterId, ...options: string[]) => Effect.Effect<{
|
|
@@ -28,11 +28,11 @@ declare const CUPS_base: ServiceMap.ServiceClass<CUPS, "effect-app/CUPS", {
|
|
|
28
28
|
stdout: string;
|
|
29
29
|
stderr: string;
|
|
30
30
|
}, import("effect/Cause").UnknownError, never>;
|
|
31
|
-
getAvailablePrinters: Effect.Effect<
|
|
31
|
+
getAvailablePrinters: Effect.Effect<S.NonEmptyString255[], import("effect/Cause").UnknownError, never>;
|
|
32
32
|
}, Config.ConfigError, never>;
|
|
33
33
|
};
|
|
34
34
|
export declare class CUPS extends CUPS_base {
|
|
35
35
|
static readonly Fake: Layer.Layer<CUPS, never, never>;
|
|
36
36
|
}
|
|
37
37
|
export {};
|
|
38
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1VQUy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0NVUFMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssV0FBVyxFQUFZLE1BQU0sNEJBQTRCLENBQUE7QUFFdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsQ0FBQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBUWpGLGVBQU8sTUFBTSxTQUFTLDZPQUFzQixDQUFBO0FBQzVDLE1BQU0sTUFBTSxTQUFTLEdBQUcsQ0FBQyxDQUFDLGlCQUFpQixDQUFBO0FBdUMzQyxlQUFPLE1BQU0sY0FBYyxtQ0FVekIsQ0FBQTtBQUdGLGVBQU8sTUFBTSxvQkFBb0Isb1VBQTRCLENBQUE7QUFDN0QsZUFBTyxNQUFNLCtCQUErQixXQUFZLFdBQVcsWUFBWSxXQUFXLDZGQUN0QyxDQUFBO0FBeUJwRCxlQUFPLE1BQU0sVUFBVTs7RUFRckIsQ0FBQTs7b0JBTXlCLFdBQVcsYUFBYSxTQUFTLGNBQWMsTUFBTSxFQUFFOzs7OzBCQVN0RCxNQUFNLGFBQWEsU0FBUyxjQUFjLE1BQU0sRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBYjlFLHFCQUFhLElBQUssU0FBUSxTQXFCeEI7SUFDQSxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksa0NBK0JuQjtDQUNGIn0=
|
package/dist/CUPS.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CUPS.d.ts","sourceRoot":"","sources":["../src/CUPS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAa,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"CUPS.d.ts","sourceRoot":"","sources":["../src/CUPS.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAY,MAAM,4BAA4B,CAAA;AAEvE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAa,CAAC,EAAE,MAAM,YAAY,CAAA;AAQjF,eAAO,MAAM,SAAS,6OAAsB,CAAA;AAC5C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,iBAAiB,CAAA;AAuC3C,eAAO,MAAM,cAAc,mCAUzB,CAAA;AAGF,eAAO,MAAM,oBAAoB,oUAA4B,CAAA;AAC7D,eAAO,MAAM,+BAA+B,WAAY,WAAW,YAAY,WAAW,6FACtC,CAAA;AAyBpD,eAAO,MAAM,UAAU;;EAQrB,CAAA;;oBAMyB,WAAW,aAAa,SAAS,cAAc,MAAM,EAAE;;;;0BAStD,MAAM,aAAa,SAAS,cAAc,MAAM,EAAE;;;;;;;;;;;;;;;;;;AAb9E,qBAAa,IAAK,SAAQ,SAqBxB;IACA,MAAM,CAAC,QAAQ,CAAC,IAAI,kCA+BnB;CACF"}
|
package/dist/CUPS.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { tempFile } from "@effect-app/infra/fileUtil";
|
|
2
2
|
import cp from "child_process";
|
|
3
|
-
import { Config, Effect, Layer, Option, Predicate, S
|
|
3
|
+
import { Config, Context, Effect, Layer, Option, Predicate, S } from "effect-app";
|
|
4
4
|
import { pretty } from "effect-app/utils";
|
|
5
5
|
import fs from "fs";
|
|
6
6
|
import os from "os";
|
|
@@ -51,15 +51,13 @@ function printBuffer(printer, options) {
|
|
|
51
51
|
return (buffer) => makePrintJobTempFileArrayBuffer(buffer)
|
|
52
52
|
.pipe(Effect.flatMap(printFile(printer, options)), Effect.scoped);
|
|
53
53
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
});
|
|
62
|
-
}
|
|
54
|
+
const getAvailablePrinters = Effect.fnUntraced(function* (host) {
|
|
55
|
+
const { stdout } = yield* exec(["lpstat", ...buildListArgs({ host }), "-s"].join(" "));
|
|
56
|
+
return [...stdout.matchAll(/device for (\w+):/g)]
|
|
57
|
+
.map((_) => _[1])
|
|
58
|
+
.filter(Predicate.isNotNullish)
|
|
59
|
+
.map((_) => S.NonEmptyString255(_));
|
|
60
|
+
});
|
|
63
61
|
function* buildListArgs(config) {
|
|
64
62
|
if (config?.host) {
|
|
65
63
|
yield `-h ${config.host}`;
|
|
@@ -70,7 +68,7 @@ export const CUPSConfig = Config.all({
|
|
|
70
68
|
.string("server")
|
|
71
69
|
.pipe(Config.map((s) => new URL(s)), Config.option, Config.nested("cups"))
|
|
72
70
|
});
|
|
73
|
-
export class CUPS extends
|
|
71
|
+
export class CUPS extends Context.Service()("effect-app/CUPS", {
|
|
74
72
|
make: Effect.gen(function* () {
|
|
75
73
|
const config = yield* CUPSConfig;
|
|
76
74
|
const serverUrl = Option.getOrUndefined(config.server);
|
|
@@ -111,4 +109,4 @@ export class CUPS extends ServiceMap.Service()("effect-app/CUPS", {
|
|
|
111
109
|
getAvailablePrinters: Effect.sync(() => [])
|
|
112
110
|
})));
|
|
113
111
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ1VQUy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9DVVBTLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDdkUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDakYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFBO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNuQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDbkIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQ3ZCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQTtBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUE7QUFHNUMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDckMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUMvQixNQUFNLENBQUMsT0FBTyxDQUNaLFdBQVcsQ0FBQyxRQUFRLENBQUMsY0FBYyxPQUFPLEVBQUUsQ0FBQyxFQUM3QyxNQUFNLENBQUMsR0FBRyxDQUNSLE1BQU07S0FDSCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ25DLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsUUFBUSxF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
|
|
@@ -6,10 +6,7 @@ export declare function Sendgrid(config: SendgridConfig): import("effect/Layer")
|
|
|
6
6
|
/**
|
|
7
7
|
* @hidden
|
|
8
8
|
*/
|
|
9
|
-
export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
10
|
-
to: EmailData | EmailData[];
|
|
11
|
-
cc: EmailData | EmailData[];
|
|
12
|
-
bcc: EmailData | EmailData[];
|
|
9
|
+
export declare function renderMessage(forceFake: boolean, fakeMailAddress: string): (msg: EmailMsg) => {
|
|
13
10
|
replyTo?: EmailData;
|
|
14
11
|
sendAt?: number;
|
|
15
12
|
subject?: string;
|
|
@@ -45,10 +42,10 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
45
42
|
hideWarnings?: boolean;
|
|
46
43
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
47
44
|
from: import("./service.js").EmailData;
|
|
45
|
+
to: EmailData[] | EmailData;
|
|
46
|
+
cc: EmailData[] | EmailData;
|
|
47
|
+
bcc: EmailData[] | EmailData;
|
|
48
48
|
} | {
|
|
49
|
-
to: EmailData | EmailData[];
|
|
50
|
-
cc: EmailData | EmailData[];
|
|
51
|
-
bcc: EmailData | EmailData[];
|
|
52
49
|
replyTo?: EmailData;
|
|
53
50
|
sendAt?: number;
|
|
54
51
|
subject?: string;
|
|
@@ -84,10 +81,10 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
84
81
|
hideWarnings?: boolean;
|
|
85
82
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
86
83
|
from: import("./service.js").EmailData;
|
|
84
|
+
to: EmailData[] | EmailData;
|
|
85
|
+
cc: EmailData[] | EmailData;
|
|
86
|
+
bcc: EmailData[] | EmailData;
|
|
87
87
|
} | {
|
|
88
|
-
to: EmailData | EmailData[];
|
|
89
|
-
cc: EmailData | EmailData[];
|
|
90
|
-
bcc: EmailData | EmailData[];
|
|
91
88
|
replyTo?: EmailData;
|
|
92
89
|
sendAt?: number;
|
|
93
90
|
subject?: string;
|
|
@@ -123,10 +120,10 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
123
120
|
hideWarnings?: boolean;
|
|
124
121
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
125
122
|
from: import("./service.js").EmailData;
|
|
123
|
+
to: EmailData[] | EmailData;
|
|
124
|
+
cc: EmailData[] | EmailData;
|
|
125
|
+
bcc: EmailData[] | EmailData;
|
|
126
126
|
} | {
|
|
127
|
-
to: EmailData | EmailData[];
|
|
128
|
-
cc: EmailData | EmailData[];
|
|
129
|
-
bcc: EmailData | EmailData[];
|
|
130
127
|
replyTo?: EmailData;
|
|
131
128
|
sendAt?: number;
|
|
132
129
|
subject?: string;
|
|
@@ -163,9 +160,12 @@ export declare function renderMessage(forceFake: boolean): (msg: EmailMsg) => {
|
|
|
163
160
|
replyToList?: import("@sendgrid/helpers/classes/email-address.js").EmailJSON | import("@sendgrid/helpers/classes/email-address.js").EmailJSON[];
|
|
164
161
|
from: import("./service.js").EmailData;
|
|
165
162
|
content: Array.NonEmptyReadonlyArray<MailContent>;
|
|
163
|
+
to: EmailData[] | EmailData;
|
|
164
|
+
cc: EmailData[] | EmailData;
|
|
165
|
+
bcc: EmailData[] | EmailData;
|
|
166
166
|
};
|
|
167
167
|
/**
|
|
168
168
|
* @hidden
|
|
169
169
|
*/
|
|
170
170
|
export declare function isTestAddress(to: EmailData): boolean;
|
|
171
|
-
//# sourceMappingURL=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbWFpbGVyL1NlbmRncmlkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBQzNFLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1DQUFtQyxDQUFBO0FBRXBFLE9BQU8sRUFBRSxLQUFLLEVBQWlDLE1BQU0sWUFBWSxDQUFBO0FBSWpFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQTZCLEtBQUssY0FBYyxFQUFpQixNQUFNLGNBQWMsQ0FBQTtBQTBEcEgsd0JBQWdCLFFBQVEsQ0FBQyxNQUFNLEVBQUUsY0FBYyx1REFFOUM7QUFFRDs7R0FFRztBQUNILHdCQUFnQixhQUFhLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQVk3RCxRQUFROzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBT25CO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEVBQUUsRUFBRSxTQUFTLFdBTzFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAiC,MAAM,YAAY,CAAA;AAIjE,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAA6B,KAAK,cAAc,EAAiB,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"Sendgrid.d.ts","sourceRoot":"","sources":["../../src/Emailer/Sendgrid.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAA;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAEpE,OAAO,EAAE,KAAK,EAAiC,MAAM,YAAY,CAAA;AAIjE,OAAO,EAAE,OAAO,EAAE,KAAK,QAAQ,EAA6B,KAAK,cAAc,EAAiB,MAAM,cAAc,CAAA;AA0DpH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,uDAE9C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAY7D,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,WAO1C"}
|
package/dist/Emailer/Sendgrid.js
CHANGED
|
@@ -4,7 +4,7 @@ import { dropUndefinedT } from "effect-app/utils";
|
|
|
4
4
|
import { inspect } from "util";
|
|
5
5
|
import { InfraLogger } from "../logger.js";
|
|
6
6
|
import { Emailer, SendMailError } from "./service.js";
|
|
7
|
-
const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPrefix }) => Effect.sync(() => {
|
|
7
|
+
const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, fakeMailAddress, realMail, subjectPrefix }) => Effect.sync(() => {
|
|
8
8
|
sgMail.setApiKey(Redacted.value(apiKey));
|
|
9
9
|
return Emailer.of({
|
|
10
10
|
sendMail: Effect.fn("Sendgrid.sendMail")(function* (msg_) {
|
|
@@ -13,7 +13,7 @@ const makeSendgrid = ({ apiKey, defaultFrom, defaultReplyTo, realMail, subjectPr
|
|
|
13
13
|
from: msg_.from ?? defaultFrom,
|
|
14
14
|
replyTo: msg_.replyTo ?? (msg_.from ? undefined : defaultReplyTo)
|
|
15
15
|
});
|
|
16
|
-
const render = renderMessage(!realMail);
|
|
16
|
+
const render = renderMessage(!realMail, fakeMailAddress);
|
|
17
17
|
const renderedMsg_ = render(msg);
|
|
18
18
|
const renderedMsg = {
|
|
19
19
|
...renderedMsg_,
|
|
@@ -48,21 +48,22 @@ export function Sendgrid(config) {
|
|
|
48
48
|
/**
|
|
49
49
|
* @hidden
|
|
50
50
|
*/
|
|
51
|
-
export function renderMessage(forceFake) {
|
|
51
|
+
export function renderMessage(forceFake, fakeMailAddress) {
|
|
52
52
|
let i = 0;
|
|
53
53
|
const makeId = () => i++;
|
|
54
|
+
const makeFakeEmail = () => fakeMailAddress.replace("{i}", String(makeId()));
|
|
54
55
|
return forceFake
|
|
55
56
|
? (msg) => dropUndefinedT({
|
|
56
57
|
...msg,
|
|
57
|
-
to: msg.to && renderFake(msg.to,
|
|
58
|
-
cc: msg.cc && renderFake(msg.cc,
|
|
59
|
-
bcc: msg.bcc && renderFake(msg.bcc,
|
|
58
|
+
to: msg.to && renderFake(msg.to, makeFakeEmail),
|
|
59
|
+
cc: msg.cc && renderFake(msg.cc, makeFakeEmail),
|
|
60
|
+
bcc: msg.bcc && renderFake(msg.bcc, makeFakeEmail)
|
|
60
61
|
})
|
|
61
62
|
: (msg) => dropUndefinedT({
|
|
62
63
|
...msg,
|
|
63
|
-
to: msg.to && renderFakeIfTest(msg.to,
|
|
64
|
-
cc: msg.cc && renderFakeIfTest(msg.cc,
|
|
65
|
-
bcc: msg.bcc && renderFakeIfTest(msg.bcc,
|
|
64
|
+
to: msg.to && renderFakeIfTest(msg.to, makeFakeEmail),
|
|
65
|
+
cc: msg.cc && renderFakeIfTest(msg.cc, makeFakeEmail),
|
|
66
|
+
bcc: msg.bcc && renderFakeIfTest(msg.bcc, makeFakeEmail)
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
69
|
/**
|
|
@@ -74,10 +75,10 @@ export function isTestAddress(to) {
|
|
|
74
75
|
&& "email" in to
|
|
75
76
|
&& to.email.toLowerCase().endsWith(".test")));
|
|
76
77
|
}
|
|
77
|
-
function renderFake(addr,
|
|
78
|
+
function renderFake(addr, makeEmail) {
|
|
78
79
|
return {
|
|
79
80
|
name: renderMailData(addr),
|
|
80
|
-
email:
|
|
81
|
+
email: makeEmail()
|
|
81
82
|
};
|
|
82
83
|
}
|
|
83
84
|
const eq = Equivalence.mapInput(Equivalence.String, (to) => typeof to === "string" ? to.toLowerCase() : to.email.toLowerCase());
|
|
@@ -86,11 +87,11 @@ function isEmailDataArray(md) {
|
|
|
86
87
|
}
|
|
87
88
|
// TODO: should just not add any already added email address
|
|
88
89
|
// https://stackoverflow.com/a/53603076/11595834
|
|
89
|
-
function renderFakeIfTest(addr,
|
|
90
|
+
function renderFakeIfTest(addr, makeEmail) {
|
|
90
91
|
if (isEmailDataArray(addr)) {
|
|
91
|
-
return Array.dedupeWith(addr.map((x) => (isTestAddress(x) ? renderFake(x,
|
|
92
|
+
return Array.dedupeWith(addr.map((x) => (isTestAddress(x) ? renderFake(x, makeEmail) : x)), eq);
|
|
92
93
|
}
|
|
93
|
-
return isTestAddress(addr) ? renderFake(addr,
|
|
94
|
+
return isTestAddress(addr) ? renderFake(addr, makeEmail) : addr;
|
|
94
95
|
}
|
|
95
96
|
function renderMailData(md) {
|
|
96
97
|
if (isEmailDataArray(md)) {
|
|
@@ -101,4 +102,4 @@ function renderMailData(md) {
|
|
|
101
102
|
}
|
|
102
103
|
return md.email;
|
|
103
104
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2VuZGdyaWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvRW1haWxlci9TZW5kZ3JpZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLE1BQU0sTUFBTSxnQkFBZ0IsQ0FBQTtBQUNuQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUNqRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDMUMsT0FBTyxFQUFFLE9BQU8sRUFBaUUsYUFBYSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBRXBILE1BQU0sWUFBWSxHQUFHLENBQ25CLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQWtCLEVBQ2pHLEVBQUUsQ0FDRixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtJQUNmLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFBO0lBRXhDLE9BQU8sT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNoQixRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFDLElBQTBCO1lBQzNFLE1BQU0sR0FBRyxHQUFhLGNBQWMsQ0FBQztnQkFDbkMsR0FBRyxJQUFJO2dCQUNQLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLFdBQVc7Z0JBQzlCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7YUFD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
|
package/dist/Emailer/fake.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { Emailer } from "./service.js";
|
|
2
2
|
export declare const FakeSendgrid: import("effect/Layer").Layer<Emailer, never, never>;
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFrZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VtYWlsZXIvZmFrZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBY3RDLGVBQU8sTUFBTSxZQUFZLHFEQUE0QixDQUFBIn0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { MailContent, MailData } from "@sendgrid/helpers/classes/mail.js";
|
|
2
2
|
import type { ResponseError } from "@sendgrid/mail";
|
|
3
|
-
import { type Effect, type NonEmptyReadonlyArray, type Redacted
|
|
3
|
+
import { Context, type Effect, type NonEmptyReadonlyArray, type Redacted } from "effect-app";
|
|
4
4
|
import type { Email } from "effect-app/Schema";
|
|
5
5
|
declare const SendMailError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
|
|
6
6
|
readonly _tag: "SendMailError";
|
|
@@ -9,7 +9,7 @@ export declare class SendMailError extends SendMailError_base<{
|
|
|
9
9
|
readonly raw: Error | ResponseError;
|
|
10
10
|
}> {
|
|
11
11
|
}
|
|
12
|
-
declare const Emailer_base:
|
|
12
|
+
declare const Emailer_base: Context.OpaqueClass<Emailer, "effect-app/Emailer", {
|
|
13
13
|
sendMail: (msg: EmailMsgOptionalFrom) => Effect.Effect<void, SendMailError>;
|
|
14
14
|
}>;
|
|
15
15
|
export declare class Emailer extends Emailer_base {
|
|
@@ -23,7 +23,13 @@ export interface SendgridConfig {
|
|
|
23
23
|
subjectPrefix: string;
|
|
24
24
|
realMail: boolean;
|
|
25
25
|
defaultFrom: EmailData;
|
|
26
|
-
apiKey: Redacted.Redacted
|
|
26
|
+
apiKey: Redacted.Redacted;
|
|
27
|
+
/**
|
|
28
|
+
* Email address used for fake/test recipients. Use `{i}` as a placeholder for an auto-incrementing index to ensure uniqueness.
|
|
29
|
+
*
|
|
30
|
+
* @example "test+{i}@example.com"
|
|
31
|
+
*/
|
|
32
|
+
fakeMailAddress: string;
|
|
27
33
|
}
|
|
28
34
|
export type EmailTemplateMsg = MailData & {
|
|
29
35
|
templateId: string;
|
|
@@ -52,4 +58,4 @@ export type EmailContent = {
|
|
|
52
58
|
export type EmailMsg = EmailMsgBase & EmailContent;
|
|
53
59
|
export type EmailMsgOptionalFrom = Omit<EmailMsgBase, "from"> & Partial<Pick<EmailMsg, "from">> & EmailContent;
|
|
54
60
|
export {};
|
|
55
|
-
//# sourceMappingURL=
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL0VtYWlsZXIvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUNBQW1DLENBQUE7QUFDOUUsT0FBTyxLQUFLLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBUSxLQUFLLE1BQU0sRUFBRSxLQUFLLHFCQUFxQixFQUFFLEtBQUssUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLG1CQUFtQixDQUFBOzs7O0FBRTlDLHFCQUFhLGFBQWMsU0FBUSxtQkFBa0M7SUFDbkUsUUFBUSxDQUFDLEdBQUcsRUFBRSxLQUFLLEdBQUcsYUFBYSxDQUFBO0NBQ3BDLENBQUM7Q0FBRzs7Y0FHTyxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxhQUFhLENBQUM7O0FBRDdFLHFCQUFhLE9BQVEsU0FBUSxZQUVIO0NBQUc7QUFFN0IsTUFBTSxNQUFNLFNBQVMsR0FBRyxLQUFLLEdBQUc7SUFDOUIsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBQ2IsS0FBSyxFQUFFLEtBQUssQ0FBQTtDQUNiLENBQUE7QUFFRCxNQUFNLFdBQVcsY0FBYztJQUM3QixjQUFjLENBQUMsRUFBRSxTQUFTLENBQUE7SUFDMUIsYUFBYSxFQUFFLE1BQU0sQ0FBQTtJQUNyQixRQUFRLEVBQUUsT0FBTyxDQUFBO0lBQ2pCLFdBQVcsRUFBRSxTQUFTLENBQUE7SUFDdEIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUE7SUFDekI7Ozs7T0FJRztJQUNILGVBQWUsRUFBRSxNQUFNLENBQUE7Q0FDeEI7QUFDRCxNQUFNLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxHQUFHO0lBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQTtDQUFFLENBQUE7QUFFaEUsTUFBTSxNQUFNLGVBQWUsR0FBRyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUE7QUFFMUUsTUFBTSxNQUFNLFlBQVksR0FDcEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEdBQUcsSUFBSSxHQUFHLEtBQUssR0FBRyxJQUFJLEdBQUcsU0FBUyxDQUFDLEdBQ3hEO0lBQ0EsRUFBRSxFQUFFLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUNoRCxFQUFFLENBQUMsRUFBRSxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLENBQUE7SUFDakQsR0FBRyxDQUFDLEVBQUUsU0FBUyxHQUFHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBQ2xELElBQUksRUFBRSxTQUFTLENBQUE7SUFDZjs7O09BR0c7SUFDSCxVQUFVLENBQUMsRUFBRSxPQUFPLENBQUE7Q0FDckIsQ0FBQTtBQUVILE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFBO0NBQUUsR0FBRztJQUFFLElBQUksRUFBRSxNQUFNLENBQUE7Q0FBRSxHQUFHO0lBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQTtDQUFFLEdBQUc7SUFDeEYsT0FBTyxFQUFFLHFCQUFxQixDQUFDLFdBQVcsQ0FBQyxDQUFBO0NBQzVDLENBQUE7QUFFRCxNQUFNLE1BQU0sUUFBUSxHQUNoQixZQUFZLEdBQ1osWUFBWSxDQUFBO0FBRWhCLE1BQU0sTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLEdBQUcsWUFBWSxDQUFBIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Emailer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAQ,KAAK,MAAM,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/Emailer/service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAQ,KAAK,MAAM,EAAE,KAAK,qBAAqB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAA;AAClG,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;;;;AAE9C,qBAAa,aAAc,SAAQ,mBAAkC;IACnE,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,aAAa,CAAA;CACpC,CAAC;CAAG;;cAGO,CAAC,GAAG,EAAE,oBAAoB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC;;AAD7E,qBAAa,OAAQ,SAAQ,YAEH;CAAG;AAE7B,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,KAAK,CAAA;CACb,CAAA;AAED,MAAM,WAAW,cAAc;IAC7B,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;IACjB,WAAW,EAAE,SAAS,CAAA;IACtB,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAA;IACzB;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;CACxB;AACD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhE,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;AAE1E,MAAM,MAAM,YAAY,GACpB,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,CAAC,GACxD;IACA,EAAE,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAChD,EAAE,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IACjD,GAAG,CAAC,EAAE,SAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAA;IAClD,IAAI,EAAE,SAAS,CAAA;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAEH,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,GAAG;IACxF,OAAO,EAAE,qBAAqB,CAAC,WAAW,CAAC,CAAA;CAC5C,CAAA;AAED,MAAM,MAAM,QAAQ,GAChB,YAAY,GACZ,YAAY,CAAA;AAEhB,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,GAAG,YAAY,CAAA"}
|
package/dist/Emailer/service.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Context, Data } from "effect-app";
|
|
2
2
|
export class SendMailError extends Data.TaggedError("SendMailError") {
|
|
3
3
|
}
|
|
4
|
-
export class Emailer extends
|
|
4
|
+
export class Emailer extends Context.Opaque()("effect-app/Emailer") {
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9FbWFpbGVyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQTBELE1BQU0sWUFBWSxDQUFBO0FBR2xHLE1BQU0sT0FBTyxhQUFjLFNBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBRWpFO0NBQUc7QUFFTCxNQUFNLE9BQU8sT0FBUSxTQUFRLE9BQU8sQ0FBQyxNQUFNLEVBRXZDLENBQUMsb0JBQW9CLENBQUM7Q0FBRyJ9
|
package/dist/Emailer.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export * from "./Emailer/service.js";
|
|
2
|
-
//# sourceMappingURL=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRW1haWxlci5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0VtYWlsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQSJ9
|
package/dist/MainFiberSet.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { Effect, Fiber, Layer
|
|
2
|
-
declare const MainFiberSet_base:
|
|
1
|
+
import { Context, Effect, Fiber, Layer } from "effect-app";
|
|
2
|
+
declare const MainFiberSet_base: Context.ServiceClass<MainFiberSet, "MainFiberSet", {
|
|
3
3
|
interrupt: Effect.Effect<void, never, never>;
|
|
4
4
|
join: Effect.Effect<void, never, never>;
|
|
5
5
|
forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<void, never>, never, R>;
|
|
6
6
|
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
|
|
7
|
-
add: (...fibers: Fiber.Fiber<never
|
|
8
|
-
addAll: (fibers: readonly Fiber.Fiber<never
|
|
7
|
+
add: (...fibers: Fiber.Fiber<never>[]) => Effect.Effect<void, never, never>;
|
|
8
|
+
addAll: (fibers: readonly Fiber.Fiber<never>[]) => Effect.Effect<void, never, never>;
|
|
9
9
|
}> & {
|
|
10
10
|
readonly make: Effect.Effect<{
|
|
11
11
|
interrupt: Effect.Effect<void, never, never>;
|
|
12
12
|
join: Effect.Effect<void, never, never>;
|
|
13
13
|
forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<void, never>, never, R>;
|
|
14
14
|
run: <R, XE extends never, XA extends unknown>(effect: Effect.Effect<XA, XE, R>) => Effect.Effect<Fiber.Fiber<XA, XE>, never, R>;
|
|
15
|
-
add: (...fibers: Fiber.Fiber<never
|
|
16
|
-
addAll: (fibers: readonly Fiber.Fiber<never
|
|
15
|
+
add: (...fibers: Fiber.Fiber<never>[]) => Effect.Effect<void, never, never>;
|
|
16
|
+
addAll: (fibers: readonly Fiber.Fiber<never>[]) => Effect.Effect<void, never, never>;
|
|
17
17
|
}, never, import("effect/Scope").Scope>;
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
@@ -24,8 +24,8 @@ declare const MainFiberSet_base: ServiceMap.ServiceClass<MainFiberSet, "MainFibe
|
|
|
24
24
|
export declare class MainFiberSet extends MainFiberSet_base {
|
|
25
25
|
static readonly Live: Layer.Layer<MainFiberSet, never, never>;
|
|
26
26
|
static readonly JoinLive: Layer.Layer<never, never, never>;
|
|
27
|
-
static readonly run: <A, R>(self: Effect.Effect<A, never, R>) => Effect.Effect<Fiber.Fiber<A, never>, never,
|
|
28
|
-
static readonly forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<void, never>, never,
|
|
27
|
+
static readonly run: <A, R>(self: Effect.Effect<A, never, R>) => Effect.Effect<Fiber.Fiber<A, never>, never, R | MainFiberSet>;
|
|
28
|
+
static readonly forkDaemonReport: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Fiber.Fiber<void, never>, never, R | MainFiberSet>;
|
|
29
29
|
}
|
|
30
30
|
export {};
|
|
31
|
-
//# sourceMappingURL=
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvTWFpbkZpYmVyU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBWSxLQUFLLEVBQUUsTUFBTSxZQUFZLENBQUE7Ozs7dUJBdUN4QyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOztxQkEvQnZDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUU7cUJBQ3BCLFNBQVMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTs7Ozs7Ozs7Ozs7QUFpRHZEOzs7O0dBSUc7QUFDSCxxQkFBYSxZQUFhLFNBQVEsaUJBQXlEO0lBQ3pGLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSwwQ0FBZ0M7SUFDcEQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLG1DQUl2QjtJQUNELE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxHQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxtRUFDSDtJQUMxRCxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixHQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsc0VBQ0Y7Q0FDeEUifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../src/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"MainFiberSet.d.ts","sourceRoot":"","sources":["../src/MainFiberSet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAY,KAAK,EAAE,MAAM,YAAY,CAAA;;;;uBAuCxC,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;;qBA/BvC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;qBACpB,SAAS,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;;;;;;;;;;;AAiDvD;;;;GAIG;AACH,qBAAa,YAAa,SAAQ,iBAAyD;IACzF,MAAM,CAAC,QAAQ,CAAC,IAAI,0CAAgC;IACpD,MAAM,CAAC,QAAQ,CAAC,QAAQ,mCAIvB;IACD,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAI,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,mEACH;IAC1D,MAAM,CAAC,QAAQ,CAAC,gBAAgB,GAAI,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,sEACF;CACxE"}
|
package/dist/MainFiberSet.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Effect, Fiber, FiberSet, Layer
|
|
1
|
+
import { Context, Effect, Fiber, FiberSet, Layer } from "effect-app";
|
|
2
2
|
import { InfraLogger } from "./logger.js";
|
|
3
3
|
import { reportNonInterruptedFailureCause } from "./QueueMaker/errors.js";
|
|
4
4
|
import { setRootParentSpan } from "./RequestFiberSet.js";
|
|
@@ -45,10 +45,10 @@ const make = Effect.gen(function* () {
|
|
|
45
45
|
* you should register these long running fibers in a FiberSet, and join them at the end of your main program.
|
|
46
46
|
* This way any errors will blow up the main program instead of fibers dying unknowingly.
|
|
47
47
|
*/
|
|
48
|
-
export class MainFiberSet extends
|
|
48
|
+
export class MainFiberSet extends Context.Service()("MainFiberSet", { make }) {
|
|
49
49
|
static Live = Layer.effect(this, this.make);
|
|
50
50
|
static JoinLive = this.asEffect().pipe(Effect.andThen((_) => _.join), Layer.effectDiscard, Layer.provide(this.Live));
|
|
51
51
|
static run = (self) => this.asEffect().pipe(Effect.andThen((_) => _.run(self)));
|
|
52
52
|
static forkDaemonReport = (self) => this.asEffect().pipe(Effect.andThen((_) => _.forkDaemonReport(self)));
|
|
53
53
|
}
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWFpbkZpYmVyU2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL01haW5GaWJlclNldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUVwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXhELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQy9CLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQWtCLENBQUE7SUFDbEQsTUFBTSxHQUFHLEdBQUcsQ0FBQyxHQUFHLE1BQTRCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3JILE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBcUMsRUFBRSxFQUFFLENBQ3ZELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQ3RFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUNsQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxxQ0FBcUMsQ0FBQyxDQUFDLEVBQ3RHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNuQyxDQUFBO0lBQ0QsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUU3QixrREFBa0Q7SUFDbEQsa0RBQWtEO0lBQ2xELDZCQUE2QjtJQUM3QixhQUFhO0lBQ2IsTUFBTTtJQUNOLG1GQUFtRjtJQUNuRiw4RUFBOEU7SUFDOUUseURBQXlEO0lBQ3pELEtBQUs7SUFFTCwrREFBK0Q7SUFDL0QsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUV6Qzs7Ozs7Ozs7T0FRRztJQUNILFNBQVMsZ0JBQWdCLENBQVUsSUFBNEI7UUFDN0QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUNkLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUN2RCxpQkFBaUIsRUFDakIsTUFBTSxDQUFDLGVBQWUsRUFDdEIsR0FBRyxDQUNKLENBQUE7SUFDSCxDQUFDO0lBQ0QsT0FBTztRQUNMLFNBQVM7UUFDVCxJQUFJO1FBQ0osZ0JBQWdCO1FBQ2hCLEdBQUc7UUFDSCxHQUFHO1FBQ0gsTUFBTTtLQUNQLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sWUFBYSxTQUFRLE9BQU8sQ0FBQyxPQUFPLEVBQWdCLENBQUMsY0FBYyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDekYsTUFBTSxDQUFVLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDcEQsTUFBTSxDQUFVLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUM3QyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQzdCLEtBQUssQ0FBQyxhQUFhLEVBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUN6QixDQUFBO0lBQ0QsTUFBTSxDQUFVLEdBQUcsR0FBRyxDQUFPLElBQWdDLEVBQUUsRUFBRSxDQUMvRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzFELE1BQU0sQ0FBVSxnQkFBZ0IsR0FBRyxDQUFVLElBQTRCLEVBQUUsRUFBRSxDQUMzRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7Q0FDeEUifQ==
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Context, Effect } from "effect-app";
|
|
2
|
+
export interface RegisteredRepository {
|
|
3
|
+
readonly seedNamespace: (namespace: string) => Effect.Effect<void>;
|
|
4
|
+
}
|
|
5
|
+
declare const RepositoryRegistry_base: Context.OpaqueClass<RepositoryRegistry, "effect-app/RepositoryRegistry", {
|
|
6
|
+
readonly register: (modelName: string, repo: RegisteredRepository) => void;
|
|
7
|
+
readonly seedNamespace: (namespace: string) => Effect.Effect<void>;
|
|
8
|
+
readonly entries: ReadonlyMap<string, RegisteredRepository>;
|
|
9
|
+
}> & {
|
|
10
|
+
readonly make: Effect.Effect<{
|
|
11
|
+
readonly register: (modelName: string, repo: RegisteredRepository) => void;
|
|
12
|
+
readonly seedNamespace: (namespace: string) => Effect.Effect<void>;
|
|
13
|
+
readonly entries: ReadonlyMap<string, RegisteredRepository>;
|
|
14
|
+
}, never, never>;
|
|
15
|
+
};
|
|
16
|
+
export declare class RepositoryRegistry extends RepositoryRegistry_base {
|
|
17
|
+
}
|
|
18
|
+
export declare const RepositoryRegistryLive: import("effect/Layer").Layer<RepositoryRegistry, never, never>;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9Nb2RlbC9SZXBvc2l0b3J5L1JlZ2lzdHJ5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRTVDLE1BQU0sV0FBVyxvQkFBb0I7SUFDbkMsUUFBUSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQVMsRUFBRSxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQTtDQUNuRTs7dUJBdUJvQixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixLQUFLLElBQUk7NEJBQ2xELENBQUMsU0FBUyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztzQkFDaEQsV0FBVyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQzs7OzJCQUZ4QyxDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLG9CQUFvQixLQUFLLElBQUk7Z0NBQ2xELENBQUMsU0FBUyxFQUFFLE1BQU0sS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQzswQkFDaEQsV0FBVyxDQUFDLE1BQU0sRUFBRSxvQkFBb0IsQ0FBQzs7O0FBSDdELHFCQUFhLGtCQUFtQixTQUFRLHVCQUlPO0NBQUc7QUFFbEQsZUFBTyxNQUFNLHNCQUFzQixnRUFBc0QsQ0FBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Registry.d.ts","sourceRoot":"","sources":["../../../src/Model/Repository/Registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5C,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;CACnE;;uBAuBoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI;4BAClD,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;sBAChD,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;;;2BAFxC,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,KAAK,IAAI;gCAClD,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;0BAChD,WAAW,CAAC,MAAM,EAAE,oBAAoB,CAAC;;;AAH7D,qBAAa,kBAAmB,SAAQ,uBAIO;CAAG;AAElD,eAAO,MAAM,sBAAsB,gEAAsD,CAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Context, Effect } from "effect-app";
|
|
2
|
+
const make = Effect.sync(() => {
|
|
3
|
+
const repos = new Map();
|
|
4
|
+
return {
|
|
5
|
+
register(modelName, repo) {
|
|
6
|
+
repos.set(modelName, repo);
|
|
7
|
+
},
|
|
8
|
+
seedNamespace: (namespace) => Effect.suspend(() => Effect.forEach(repos.values(), (r) => r.seedNamespace(namespace), { concurrency: "unbounded", discard: true })),
|
|
9
|
+
get entries() {
|
|
10
|
+
return repos;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
});
|
|
14
|
+
export class RepositoryRegistry extends Context.Opaque()("effect-app/RepositoryRegistry", { make }) {
|
|
15
|
+
}
|
|
16
|
+
export const RepositoryRegistryLive = RepositoryRegistry.toLayer(RepositoryRegistry.make);
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvTW9kZWwvUmVwb3NpdG9yeS9SZWdpc3RyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFlBQVksQ0FBQTtBQU01QyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtJQUM1QixNQUFNLEtBQUssR0FBRyxJQUFJLEdBQUcsRUFBZ0MsQ0FBQTtJQUNyRCxPQUFPO1FBQ0wsUUFBUSxDQUFDLFNBQWlCLEVBQUUsSUFBMEI7WUFDcEQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDNUIsQ0FBQztRQUNELGFBQWEsRUFBRSxDQUFDLFNBQWlCLEVBQUUsRUFBRSxDQUNuQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUNsQixNQUFNLENBQUMsT0FBTyxDQUNaLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFDZCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFDakMsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FDNUMsQ0FDRjtRQUNILElBQUksT0FBTztZQUNULE9BQU8sS0FBSyxDQUFBO1FBQ2QsQ0FBQztLQUNGLENBQUE7QUFDSCxDQUFDLENBQUMsQ0FBQTtBQUVGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxPQUFPLENBQUMsTUFBTSxFQUlsRCxDQUFDLCtCQUErQixFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7Q0FBRztBQUVsRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUEifQ==
|