@effect-app/infra 0.85.0-next.3 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +3 -25
- package/_cjs/_ext/Array.cjs +2 -3
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +10 -11
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +2 -3
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.test.cjs +2 -2
- package/_cjs/api/express/makeJsonSchema.test.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +4 -6
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +22 -23
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +2 -2
- package/_cjs/api/setupRequest.cjs +4 -5
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +4 -6
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +11 -12
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +8 -8
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -2
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +10 -11
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +5 -5
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +4 -4
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +7 -8
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +12 -14
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +4 -5
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +29 -31
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +5 -6
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +6 -7
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +17 -18
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +15 -16
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +16 -17
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +33 -35
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +20 -15
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +46 -49
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +18 -19
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +39 -43
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +14 -16
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +1 -1
- package/_cjs/services/Store/index.cjs +6 -7
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +1 -1
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +13 -13
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +17 -19
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +8 -9
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +9 -11
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +18 -20
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +10 -11
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/shared.cjs +5 -5
- package/_cjs/services/simpledb/shared.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +17 -18
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/api/authorization.jwt.ts +1 -1
- package/_src/api/defaultErrorHandler.ts +2 -2
- package/_src/api/express/routing.ts.bak +8 -8
- package/_src/api/express/schema/routing.ts +59 -37
- package/_src/api/setupRequest.ts +11 -10
- package/_src/errorReporter.ts +1 -1
- package/_src/services/Emailer/Sendgrid.ts +1 -1
- package/_src/services/Operations/live.ts +5 -5
- package/_src/services/QueueMaker/errors.ts +1 -1
- package/_src/services/QueueMaker/memQueue.ts +2 -2
- package/_src/services/QueueMaker/sbqueue.ts +1 -1
- package/_src/services/Repository.ts +9 -9
- package/_src/services/RepositoryBase.ts +6 -8
- package/_src/services/RequestContextContainer.ts +12 -7
- package/_src/services/Store/Cosmos.ts +12 -17
- package/_src/services/Store/Disk.ts +4 -4
- package/_src/services/Store/Memory.ts +4 -4
- package/_src/services/Store/Redis.ts +1 -1
- package/_src/services/Store/index.test.ts.bak +5 -5
- package/_src/services/Store/index.ts +1 -1
- package/_src/services/Store/utils.ts +16 -16
- package/_src/services/simpledb/diskdb.ts +1 -1
- package/_src/services/simpledb/memdb.ts +1 -1
- package/_src/services/simpledb/redisdb.ts +1 -1
- package/_src/services/simpledb/shared.ts +1 -1
- package/_src/services/simpledb/simpledb.ts +3 -3
- package/dist/RequestContext.d.ts +4 -4
- package/dist/_ext/Array.d.ts +1 -1
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +3 -4
- package/dist/api/codec.d.ts +1 -1
- package/dist/api/codec.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.d.ts +2 -2
- package/dist/api/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/defaultErrorHandler.js +11 -13
- package/dist/api/express/makeJsonSchema.d.ts +2 -2
- package/dist/api/express/makeJsonSchema.d.ts.map +1 -1
- package/dist/api/express/makeJsonSchema.js +3 -4
- package/dist/api/express/makeOpenApiSpecs.d.ts +1 -1
- package/dist/api/express/makeOpenApiSpecs.js +5 -7
- package/dist/api/express/schema/routing.d.ts +22 -7
- package/dist/api/express/schema/routing.d.ts.map +1 -1
- package/dist/api/express/schema/routing.js +23 -24
- package/dist/api/reportError.d.ts +5 -5
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +2 -2
- package/dist/api/setupRequest.d.ts +2 -2
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +7 -7
- package/dist/api/writeDocs.d.ts +1 -1
- package/dist/api/writeDocs.d.ts.map +1 -1
- package/dist/api/writeDocs.js +5 -7
- package/dist/errorReporter.d.ts +3 -3
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +12 -13
- package/dist/errors.d.ts +7 -7
- package/dist/errors.js +9 -9
- package/dist/instrument.d.ts +1 -1
- package/dist/instrument.d.ts.map +1 -1
- package/dist/instrument.js +2 -3
- package/dist/logger/jsonLogger.d.ts +2 -2
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +11 -12
- package/dist/logger/logFmtLogger.d.ts +2 -2
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +6 -6
- package/dist/logger/shared.d.ts +1 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +5 -5
- package/dist/rateLimit.d.ts +3 -3
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +8 -9
- package/dist/services/Emailer/Sendgrid.d.ts +1 -1
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +15 -17
- package/dist/services/Emailer/fake.d.ts +1 -1
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +5 -6
- package/dist/services/Emailer/service.d.ts +3 -3
- package/dist/services/Operations/live.d.ts +1 -1
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +37 -39
- package/dist/services/Operations/service.d.ts +8 -8
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +12 -13
- package/dist/services/QueueMaker/errors.d.ts +3 -3
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +6 -7
- package/dist/services/QueueMaker/memQueue.d.ts +3 -3
- package/dist/services/QueueMaker/memQueue.js +16 -17
- package/dist/services/QueueMaker/sbqueue.d.ts +4 -4
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +15 -16
- package/dist/services/Repository.d.ts +31 -31
- package/dist/services/Repository.d.ts.map +1 -1
- package/dist/services/Repository.js +17 -18
- package/dist/services/RepositoryBase.d.ts +12 -11
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +35 -37
- package/dist/services/RequestContextContainer.d.ts +14 -11
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +19 -18
- package/dist/services/Store/Cosmos.d.ts +3 -3
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +51 -54
- package/dist/services/Store/Disk.d.ts +3 -3
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +19 -20
- package/dist/services/Store/Memory.d.ts +5 -5
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +41 -45
- package/dist/services/Store/Redis.d.ts +3 -3
- package/dist/services/Store/Redis.d.ts.map +1 -1
- package/dist/services/Store/Redis.js +15 -17
- package/dist/services/Store/index.d.ts +1 -1
- package/dist/services/Store/index.d.ts.map +1 -1
- package/dist/services/Store/index.js +7 -8
- package/dist/services/Store/service.d.ts +8 -8
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +2 -2
- package/dist/services/Store/utils.d.ts +2 -2
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +21 -21
- package/dist/services/simpledb/cosmosdb.d.ts +5 -5
- package/dist/services/simpledb/cosmosdb.js +17 -19
- package/dist/services/simpledb/diskdb.d.ts +4 -4
- package/dist/services/simpledb/diskdb.js +9 -10
- package/dist/services/simpledb/memdb.d.ts +4 -4
- package/dist/services/simpledb/memdb.js +11 -13
- package/dist/services/simpledb/mongodb.d.ts +5 -5
- package/dist/services/simpledb/mongodb.js +14 -16
- package/dist/services/simpledb/redisdb.d.ts +4 -4
- package/dist/services/simpledb/redisdb.js +11 -12
- package/dist/services/simpledb/shared.d.ts +4 -4
- package/dist/services/simpledb/shared.js +6 -6
- package/dist/services/simpledb/simpledb.d.ts +6 -6
- package/dist/services/simpledb/simpledb.d.ts.map +1 -1
- package/dist/services/simpledb/simpledb.js +15 -16
- package/package.json +5 -25
- package/_cjs/api/express/schema/requestHandler.cjs +0 -172
- package/_cjs/api/express/schema/requestHandler.cjs.map +0 -1
- package/_cjs/api/routing.cjs +0 -278
- package/_cjs/api/routing.cjs.map +0 -1
- package/_src/api/express/schema/requestHandler.ts +0 -372
- package/_src/api/routing.ts +0 -660
- package/dist/api/express/schema/requestHandler.d.ts +0 -71
- package/dist/api/express/schema/requestHandler.d.ts.map +0 -1
- package/dist/api/express/schema/requestHandler.js +0 -140
- package/dist/api/routing.d.ts +0 -103
- package/dist/api/routing.d.ts.map +0 -1
- package/dist/api/routing.js +0 -265
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { TagClass } from "@effect-app/prelude/service";
|
|
2
2
|
import { Effect } from "effect/Effect";
|
|
3
|
-
import { Option } from "effect/Option";
|
|
3
|
+
import { Option } from "@effect-app/core/Option";
|
|
4
4
|
import type { Operation, OperationId, OperationProgress } from "@effect-app/prelude/Operations";
|
|
5
5
|
import * as Scope from "effect/Scope";
|
|
6
6
|
export interface OperationsId {
|
|
7
7
|
readonly _: unique symbol;
|
|
8
8
|
}
|
|
9
9
|
declare const Operations_base: (abstract new () => {}) & {
|
|
10
|
-
flatMap<R1, E1, B>(f: (a: Operations) => import("effect").Effect<R1, E1, B>): import("effect").Effect<OperationsId | R1, E1, B>;
|
|
11
|
-
map<B_1>(f: (a: Operations) => B_1): import("effect").Effect<OperationsId, never, B_1>;
|
|
12
|
-
makeLayer(svc: Operations): import("effect").Layer<never, never, Operations>;
|
|
10
|
+
flatMap<R1, E1, B>(f: (a: Operations) => import("effect/Effect").Effect<R1, E1, B>): import("effect/Effect").Effect<OperationsId | R1, E1, B>;
|
|
11
|
+
map<B_1>(f: (a: Operations) => B_1): import("effect/Effect").Effect<OperationsId, never, B_1>;
|
|
12
|
+
makeLayer(svc: Operations): import("effect/Layer").Layer<never, never, Operations>;
|
|
13
13
|
} & import("effect/Context").Tag<OperationsId, Operations>;
|
|
14
14
|
/**
|
|
15
15
|
* @tsplus type Operations
|
|
@@ -25,21 +25,21 @@ export declare abstract class Operations extends Operations_base {
|
|
|
25
25
|
* @tsplus getter effect/io/Effect forkOperation
|
|
26
26
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
27
27
|
*/
|
|
28
|
-
export declare function forkOperation<R, E, A>(self: Effect<R, E, A>): import("effect").Effect<OperationsId | Exclude<R, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
28
|
+
export declare function forkOperation<R, E, A>(self: Effect<R, E, A>): import("effect/Effect").Effect<OperationsId | Exclude<R, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
29
29
|
/**
|
|
30
30
|
* @tsplus getter function forkOperation
|
|
31
31
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
32
32
|
*/
|
|
33
|
-
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<R, E, A>): (inp: Inp) => import("effect").Effect<OperationsId | Exclude<R, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
33
|
+
export declare function forkOperationFunction<R, E, A, Inp>(fnc: (inp: Inp) => Effect<R, E, A>): (inp: Inp) => import("effect/Effect").Effect<OperationsId | Exclude<R, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
34
34
|
/**
|
|
35
35
|
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
36
36
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
37
37
|
*/
|
|
38
|
-
export declare function forkOperation2<R, E, A>(self: (opId: OperationId) => Effect<R, E, A>): import("effect").Effect<OperationsId | Exclude<R, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
38
|
+
export declare function forkOperation2<R, E, A>(self: (opId: OperationId) => Effect<R, E, A>): import("effect/Effect").Effect<OperationsId | Exclude<R, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
39
39
|
/**
|
|
40
40
|
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
41
41
|
* @tsplus location "@effect-app/infra/services/Operations/service"
|
|
42
42
|
*/
|
|
43
|
-
export declare function forkOperationWithEffect<R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect<R, E, A>, fnc: (id: OperationId) => Effect<R2, E2, A2>): import("effect").Effect<OperationsId | Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
43
|
+
export declare function forkOperationWithEffect<R, R2, E, E2, A, A2>(self: (id: OperationId) => Effect<R, E, A>, fnc: (id: OperationId) => Effect<R2, E2, A2>): import("effect/Effect").Effect<OperationsId | Exclude<R, Scope.Scope> | Exclude<R2, Scope.Scope>, never, import("@effect-app/prelude/schema").StringId>;
|
|
44
44
|
export {};
|
|
45
45
|
//# sourceMappingURL=service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;;;;;;AAED;;;GAGG;AACH,8BAAsB,UAAW,SAAQ,eAAoC;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7F,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAC7C;;;;;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../_src/services/Operations/service.ts"],"names":[],"mappings":";;;AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAC/F,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,CAAC,EAAE,OAAO,MAAM,CAAA;CAC1B;;;;;;AAED;;;GAGG;AACH,8BAAsB,UAAW,SAAQ,eAAoC;IAC3E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;IAC1D,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,iBAAiB,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;IAC7F,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAC3E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAA;CAC7C;;;;;AAKD,wBAAgB,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gIAY3D;;;;;AAKD,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SACvE,GAAG,kIACjB;;;;;AAKD,wBAAgB,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,gIAYnF;;;;;AAKD,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EACzD,IAAI,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC1C,GAAG,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,2JAc7C"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/prelude/service";
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "
|
|
4
|
-
import * as tsplus_module_4 from "effect/impl/Effect";
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/infra/api/reportError";
|
|
3
|
+
import * as tsplus_module_3 from "effect/Effect";
|
|
5
4
|
export const forkOperation = forkOperation_1;
|
|
6
5
|
import * as Scope from "effect/Scope";
|
|
7
6
|
/**
|
|
@@ -14,9 +13,9 @@ export class Operations extends tsplus_module_1.TagClass() {
|
|
|
14
13
|
* @tsplus getter effect/io/Effect forkOperation
|
|
15
14
|
*/
|
|
16
15
|
function forkOperation_1(self) {
|
|
17
|
-
return Operations.flatMap((Operations) =>
|
|
18
|
-
.make(), (scope) =>
|
|
19
|
-
.register, scope), () =>
|
|
16
|
+
return Operations.flatMap((Operations) => tsplus_module_3.flatMap(Scope
|
|
17
|
+
.make(), (scope) => tsplus_module_3.tap(Scope.extend(Operations
|
|
18
|
+
.register, scope), () => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self, scope)))));
|
|
20
19
|
}
|
|
21
20
|
/**
|
|
22
21
|
* @tsplus getter function forkOperation
|
|
@@ -28,16 +27,16 @@ export function forkOperationFunction(fnc) {
|
|
|
28
27
|
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
29
28
|
*/
|
|
30
29
|
export function forkOperation2(self) {
|
|
31
|
-
return Operations.flatMap((Operations) =>
|
|
32
|
-
.make(), (scope) =>
|
|
33
|
-
.register, scope), (id) =>
|
|
30
|
+
return Operations.flatMap((Operations) => tsplus_module_3.flatMap(Scope
|
|
31
|
+
.make(), (scope) => tsplus_module_3.tap(Scope.extend(Operations
|
|
32
|
+
.register, scope), (id) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self(id), scope)))));
|
|
34
33
|
}
|
|
35
34
|
/**
|
|
36
35
|
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
37
36
|
*/
|
|
38
37
|
export function forkOperationWithEffect(self, fnc) {
|
|
39
|
-
return Operations.flatMap((Operations) =>
|
|
40
|
-
.make(), (scope) =>
|
|
41
|
-
.register, scope), (opId) =>
|
|
38
|
+
return Operations.flatMap((Operations) => tsplus_module_3.flatMap(Scope
|
|
39
|
+
.make(), (scope) => tsplus_module_3.tap(tsplus_module_3.tap(Scope.extend(Operations
|
|
40
|
+
.register, scope), (opId) => tsplus_module_2.forkDaemonReportRequestUnexpected(Scope.use(self(opId), scope))), (opId) => Scope.extend(tsplus_module_3.forkScoped(tsplus_module_3.interruptible(fnc(opId))), scope))));
|
|
42
41
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OzthQXFCZ0IsYUFBYTtBQXBCN0IsT0FBTyxLQUFLLEtBQUssTUFBTSxjQUFjLENBQUE7QUFNckM7OztHQUdHO0FBQ0gsTUFBTSxPQUFnQixVQUFXLFNBQVEsZ0JBQUEsUUFBUSxFQUE0QjtDQUs1RTtBQUVEOztHQUVHO0FBQ0gseUJBQXVDLElBQXFCO0lBQzFELE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FDdkIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLHdCQUFBLEtBQUs7U0FDRixJQUFJLEVBQUUsRUFDRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLG9CQUFBLEFBMUJFLEtBQUssUUEwQlAsVUFBVTtTQUNQLFFBQVEsRUFDRCxLQUFLLENBQUMsRUFDVCxHQUFHLEVBQUUsbURBQUMsQUE3QlgsS0FBSyxLQTZCTSxJQUFJLEVBQUssS0FBSyxDQUFDLENBQWtDLENBQUMsQ0FDaEUsQ0FDTixDQUFBO0FBQ0gsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFlLEdBQWtDO0lBQ3BGLE9BQU8sQ0FBQyxHQUFRLEVBQUUsRUFBRSxpQkFBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQWMsQ0FBQTtBQUM3QyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFVLElBQTRDO0lBQ2xGLE9BQU8sVUFBVSxDQUFDLE9BQU8sQ0FDdkIsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUNiLHdCQUFBLEtBQUs7U0FDRixJQUFJLEVBQUUsRUFDRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLG9CQUFBLEFBbERFLEtBQUssUUFrRFAsVUFBVTtTQUNQLFFBQVEsRUFDRCxLQUFLLENBQUMsRUFDVCxDQUFDLEVBQUUsRUFBRSxFQUFFLG1EQUFDLEFBckRiLEtBQUssS0FxRFEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFLLEtBQUssQ0FBQyxDQUFrQyxDQUFDLENBQ3RFLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsSUFBMEMsRUFDMUMsR0FBNEM7SUFFNUMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUN2QixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2Isd0JBQUEsS0FBSztTQUNGLElBQUksRUFBRSxFQUNFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDakIsb0JBQUEsb0JBQUEsQUF0RUUsS0FBSyxRQXNFUCxVQUFVO1NBQ1AsUUFBUSxFQUNELEtBQUssQ0FBQyxFQUNULENBQUMsSUFBSSxFQUFFLEVBQUUsbURBQUMsQUF6RWYsS0FBSyxLQXlFVSxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUssS0FBSyxDQUFDLENBQWtDLENBQUMsRUFDbEUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEFBMUVmLEtBQUssaUVBMEVVLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBaUMsS0FBSyxDQUFDLENBQUMsQ0FDbkUsQ0FDTixDQUFBO0FBQ0gsQ0FBQyJ9
|
|
@@ -8,7 +8,7 @@ export declare class MessageException<E> extends CauseException<E> {
|
|
|
8
8
|
export declare class FatalQueueException<E> extends CauseException<E> {
|
|
9
9
|
constructor(cause: Cause<E>);
|
|
10
10
|
}
|
|
11
|
-
export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<string, unknown> | undefined) => import("effect").Effect<never, never, void>;
|
|
11
|
+
export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<string, unknown> | undefined) => import("effect/Effect").Effect<never, never, void>;
|
|
12
12
|
/**
|
|
13
13
|
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
14
14
|
* new fiber is attached to the global scope, when the fiber executing the
|
|
@@ -18,8 +18,8 @@ export declare const reportQueueError: <E>(cause: Cause<E>, extras?: Record<stri
|
|
|
18
18
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
19
19
|
* @tsplus location "@effect-app/infra/services/QueueMaker/errors"
|
|
20
20
|
*/
|
|
21
|
-
export declare function forkDaemonReportQueue<R, E, A>(self: Effect<R, E, A>): import("effect").Effect<R, never, import("effect/Fiber").RuntimeFiber<E, A>>;
|
|
22
|
-
export declare const reportFatalQueueError: (cause: import("effect").Cause<unknown>, extras?: Record<string, unknown> | undefined) => import("effect").Effect<never, never, void>;
|
|
21
|
+
export declare function forkDaemonReportQueue<R, E, A>(self: Effect<R, E, A>): import("effect/Effect").Effect<R, never, import("effect/Fiber").RuntimeFiber<E, A>>;
|
|
22
|
+
export declare const reportFatalQueueError: (cause: import("effect/Cause").Cause<unknown>, extras?: Record<string, unknown> | undefined) => import("effect/Effect").Effect<never, never, void>;
|
|
23
23
|
export declare function reportNonInterruptedFailure(context?: Record<string, unknown>): <R, E, A>(inp: Effect<R, E, A>) => Effect<R, never, Exit<E, A>>;
|
|
24
24
|
export declare function reportNonInterruptedFailureCause(context?: Record<string, unknown>): <E>(cause: Cause<E>) => Effect<never, never, void>;
|
|
25
25
|
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/errors.ts"],"names":[],"mappings":";;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAED,qBAAa,mBAAmB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC/C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAID,eAAO,MAAM,gBAAgB,aAAc,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/errors.ts"],"names":[],"mappings":";;;AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,qBAAa,gBAAgB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC5C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAED,qBAAa,mBAAmB,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;gBAC/C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;CAG5B;AAID,eAAO,MAAM,gBAAgB,aAAc,MAAM,CAAC,CAAC,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,uDAC/D,CAAA;;;;;;;;;;AAWlC,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,uFAEnE;AAED,eAAO,MAAM,qBAAqB,oJAEjC,CAAA;AAED,wBAAgB,2BAA2B,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,kBAErD,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAQrE;AAED,wBAAgB,gCAAgC,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,cAC9D,MAAM,CAAC,CAAC,KAAG,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAMxD"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect/
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "effect/
|
|
4
|
-
import * as tsplus_module_4 from "effect/impl/Cause";
|
|
1
|
+
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
+
import * as tsplus_module_2 from "effect/Exit";
|
|
3
|
+
import * as tsplus_module_3 from "effect/Cause";
|
|
5
4
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
6
5
|
import { CauseException } from "@effect-app/infra/errors";
|
|
7
6
|
export class MessageException extends CauseException {
|
|
@@ -31,14 +30,14 @@ export function forkDaemonReportQueue(self) {
|
|
|
31
30
|
export const reportFatalQueueError = reportError((cause) => new FatalQueueException(cause));
|
|
32
31
|
export function reportNonInterruptedFailure(context) {
|
|
33
32
|
const report = reportNonInterruptedFailureCause(context);
|
|
34
|
-
return (inp) => tsplus_module_1.flatMap(tsplus_module_1.exit(inp), (result) =>
|
|
33
|
+
return (inp) => tsplus_module_1.flatMap(tsplus_module_1.exit(inp), (result) => tsplus_module_2.match(result, { onFailure: (cause) => tsplus_module_1.map(report(cause), () => result), onSuccess: () => tsplus_module_1.sync(() => result) }));
|
|
35
34
|
}
|
|
36
35
|
export function reportNonInterruptedFailureCause(context) {
|
|
37
36
|
return (cause) => {
|
|
38
|
-
if (
|
|
37
|
+
if (tsplus_module_3.isInterrupted(cause)) {
|
|
39
38
|
return tsplus_module_1.failCause(cause);
|
|
40
39
|
}
|
|
41
40
|
return reportQueueError(cause, context);
|
|
42
41
|
};
|
|
43
42
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDN0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRXpELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxjQUFpQjtJQUN4RCxZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQXVCLFNBQVEsY0FBaUI7SUFDM0QsWUFBWSxLQUFlO1FBQ3pCLEtBQUssQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDNUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtBQUU3RSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxDQUFJLEtBQWUsRUFBRSxNQUE0QyxFQUFFLEVBQUUsQ0FDbkcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0FBRWxDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFVLElBQXFCO0lBQ2xFLDJEQUFPLDhCQUFBLElBQUksRUFBZSxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFvQjtBQUNyRixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUM5QyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FDMUMsQ0FBQTtBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FBQyxPQUFpQztJQUMzRSxNQUFNLE1BQU0sR0FBRyxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN4RCxPQUFPLENBQVUsR0FBb0IsRUFBZ0MsRUFBRSxDQUNyRSw2Q0FBQSxHQUFHLEdBRVEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNsQixzQkFBQSxNQUFNLEVBQ0osRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG9CQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBSyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsMkJBQU8sTUFBTSxDQUFDLEVBQUUsQ0FDM0YsQ0FDRixDQUFBO0FBQ1AsQ0FBQztBQUVELE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxPQUFpQztJQUNoRixPQUFPLENBQUksS0FBZSxFQUE4QixFQUFFO1FBQ3hELElBQUksOEJBQUEsS0FBSyxDQUFnQixFQUFFLENBQUM7WUFDMUIsaUNBQVEsS0FBc0IsRUFBVTtRQUMxQyxDQUFDO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDekMsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyJ9
|
|
@@ -17,8 +17,8 @@ export declare function makeMemQueue<DrainR, Evt, DrainEvt extends {
|
|
|
17
17
|
}) => EvtE, makeHandleEvent: Effect<DrainR, never, (ks: DrainEvt) => Effect<RContext, DrainE, void>>, provideContext: (context: RequestContext) => <R, E, A>(eff: Effect<RContext | R, E, A>) => Effect<Exclude<R, RContext | RequestContextContainer>, E, A>, parseDrain: (a: unknown, env?: Parser.ParserEnv | undefined) => Effect<never, CustomSchemaException, {
|
|
18
18
|
body: DrainEvt;
|
|
19
19
|
meta: RequestContext;
|
|
20
|
-
}>): import("effect").Effect<MemQueue, never, {
|
|
21
|
-
publish: (messages_0: Evt, ...messages_1: Evt[]) => import("effect").Effect<RequestContextContainer, never, import("effect/Fiber").RuntimeFiber<never, void[]>>;
|
|
22
|
-
drain: import("effect").Effect<import("effect").Scope | DrainR, never, import("effect/Fiber").RuntimeFiber<never, never>>;
|
|
20
|
+
}>): import("effect/Effect").Effect<MemQueue, never, {
|
|
21
|
+
publish: (messages_0: Evt, ...messages_1: Evt[]) => import("effect/Effect").Effect<RequestContextContainer, never, import("effect/Fiber").RuntimeFiber<never, void[]>>;
|
|
22
|
+
drain: import("effect/Effect").Effect<import("effect/Scope").Scope | DrainR, never, import("effect/Fiber").RuntimeFiber<never, never>>;
|
|
23
23
|
}>;
|
|
24
24
|
//# sourceMappingURL=memQueue.d.ts.map
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "effect/Effect";
|
|
2
|
-
import * as tsplus_module_2 from "effect/
|
|
3
|
-
import * as tsplus_module_3 from "@effect-app/
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/prelude/
|
|
6
|
-
import * as tsplus_module_6 from "
|
|
7
|
-
import * as tsplus_module_7 from "effect/impl/Fiber";
|
|
2
|
+
import * as tsplus_module_2 from "@effect-app/core/_ext/Iterable";
|
|
3
|
+
import * as tsplus_module_3 from "@effect-app/infra/services/QueueMaker/errors";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/prelude/utils";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/prelude/schema";
|
|
6
|
+
import * as tsplus_module_6 from "effect/Fiber";
|
|
8
7
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
9
8
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
10
9
|
import { RequestId } from "@effect-app/prelude/ids";
|
|
@@ -15,31 +14,31 @@ import { reportNonInterruptedFailure } from "./errors.js";
|
|
|
15
14
|
* @tsplus static QueueMaker.Ops makeMem
|
|
16
15
|
*/
|
|
17
16
|
export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent, provideContext, parseDrain) {
|
|
18
|
-
return tsplus_module_1.
|
|
17
|
+
return tsplus_module_1.gen(function* ($) {
|
|
19
18
|
const mem = yield* $(MemQueue);
|
|
20
19
|
const q = yield* $(mem.getOrCreateQueue(queueName));
|
|
21
20
|
const qDrain = yield* $(mem.getOrCreateQueue(queueDrainName));
|
|
22
21
|
return {
|
|
23
|
-
publish: (...messages) => tsplus_module_1.
|
|
22
|
+
publish: (...messages) => tsplus_module_1.gen(function* ($) {
|
|
24
23
|
const requestContext = yield* $(RequestContextContainer.get);
|
|
25
|
-
return yield* $(
|
|
24
|
+
return yield* $(tsplus_module_3.forkDaemonReportQueue(tsplus_module_2.ext_forEach(messages, (m) => tsplus_module_1.asUnit(
|
|
26
25
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
27
|
-
|
|
26
|
+
tsplus_module_1.flatMap(tsplus_module_1.sync(() => JSON.stringify(encoder({ body: m, meta: requestContext })))
|
|
28
27
|
// .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
|
|
29
28
|
, (_) => q.offer(_))))));
|
|
30
29
|
}),
|
|
31
|
-
drain: tsplus_module_1.
|
|
30
|
+
drain: tsplus_module_1.gen(function* ($) {
|
|
32
31
|
const handleEvent = yield* $(makeHandleEvent);
|
|
33
32
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
|
|
34
33
|
const processMessage = (msg) =>
|
|
35
34
|
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
36
|
-
|
|
35
|
+
tsplus_module_1.flatMap(tsplus_module_1.orDie(tsplus_module_1.flatMap(tsplus_module_1.sync(() => JSON.parse(msg)), parseDrain)), ({ body, meta }) => provideContext(RequestContext.inherit(meta, {
|
|
37
36
|
id: RequestId(body.id),
|
|
38
37
|
locale: "en",
|
|
39
|
-
name:
|
|
40
|
-
}))(silenceAndReportError(
|
|
41
|
-
return yield* $(
|
|
42
|
-
.take(), (x) =>
|
|
38
|
+
name: tsplus_module_5.ReasonableString(body._tag)
|
|
39
|
+
}))(silenceAndReportError(tsplus_module_1.zipRight(tsplus_module_1.tap(tsplus_module_1.annotateLogs({ body: tsplus_module_4.RecordPretty(tsplus_module_4.object$(body)), meta: tsplus_module_4.RecordPretty(tsplus_module_4.object$(meta)) })(tsplus_module_1.logDebug(`$$ [${queueDrainName}] Processing incoming message`)), () => restoreFromRequestContext), handleEvent(body)))));
|
|
40
|
+
return yield* $(tsplus_module_1.forkScoped(tsplus_module_1.forever(silenceAndReportError(tsplus_module_1.flatMap(qDrain
|
|
41
|
+
.take(), (x) => tsplus_module_1.flatMap(tsplus_module_1.fork(tsplus_module_1.uninterruptible(processMessage(x))), (_) => tsplus_module_6.join(_)))
|
|
43
42
|
// TODO: normally a failed item would be returned to the queue and retried up to X times.
|
|
44
43
|
// .flatMap(_ => _._tag === "Failure" && !isInterrupted ? qDrain.offer(x) : Effect.unit) // TODO: retry count tracking and max retries.
|
|
45
44
|
))));
|
|
@@ -47,4 +46,4 @@ export function makeMemQueue(queueName, queueDrainName, encoder, makeHandleEvent
|
|
|
47
46
|
};
|
|
48
47
|
});
|
|
49
48
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvbWVtUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFBO0FBR3pEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FRMUIsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsT0FBeUQsRUFDekQsZUFBd0YsRUFDeEYsY0FFaUUsRUFDakUsVUFHbUY7SUFFbkYsT0FBTyxvQkFBVyxRQUFRLENBQUMsRUFBQyxDQUFDO1FBQzNCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUM5QixNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7UUFDbkQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFBO1FBRTdELE9BQU87WUFDTCxPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsRUFBRSxFQUFFLENBQ3ZCLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQ3BCLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDNUQsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLHVDQUNiLDRCQUFBLFFBQVEsRUFDUyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNuQix1SEFBdUg7Z0JBQ3ZILHdCQUFBLDJCQUNFLElBQUksQ0FBQyxTQUFTLENBQ1osT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FDM0MsQ0FDRjtnQkFDQyx1RUFBdUU7a0JBQzlELENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ3BCLENBQ1YsRUFFSixDQUFBO1lBQ0gsQ0FBQyxDQUFDO1lBQ0osS0FBSyxFQUFFLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7Z0JBQzNCLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQTtnQkFDN0MsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSxpQkFBaUIsR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFBO2dCQUN2RyxNQUFNLGNBQWMsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO2dCQUNyQyxzSEFBc0g7Z0JBQ3RILDhDQUFBLHdCQUFBLDJCQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDWixVQUFVLENBQUMsR0FFWCxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FRdEIsY0FBYyxDQUNaLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFO29CQUMzQixFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7b0JBQ3RCLE1BQU0sRUFBRSxJQUFhO29CQUNyQixJQUFJLEVBQUUsZ0JBQUEsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDbEMsQ0FBQyxDQUNILENBUkkscUJBQXFCLENBTDlCLHlCQUFBLG9CQUVTLDZCQUFvQixFQUFFLElBQUksdURBQUUsSUFBSSxFQUFVLEVBQUUsSUFBSSx1REFBRSxJQUFJLEVBQVUsRUFBRSxDQUFDLENBRjVFLHlCQUNZLE9BQU8sY0FBYywrQkFBK0IsQ0FBQyxHQUUxRCxHQUFHLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxFQUMzQixXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsRUFVM0IsQ0FDSixDQUFBO2dCQUNMLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxvREFNSixxQkFBcUIsQ0FMOUIsd0JBQUEsTUFBTTtxQkFDSCxJQUFJLEVBQUUsRUFDRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsNkVBQUEsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUE4QixDQUFDLENBQUMsRUFBRSxFQUFFLHNCQUFDLENBQUMsQ0FBSyxDQUFDLENBQUM7Z0JBQzlFLHlGQUF5RjtnQkFDekYsdUlBQXVJO29CQUkxSSxDQUFBO1lBQ0gsQ0FBQyxDQUFDO1NBQzhCLENBQUE7SUFDcEMsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIn0=
|
|
@@ -19,13 +19,13 @@ export declare function makeServiceBusQueue<DrainR, Evt extends {
|
|
|
19
19
|
}) => EvtE, makeHandleEvent: Effect<DrainR, never, (ks: DrainEvt) => Effect<RContext, DrainE, void>>, provideContext: (context: RequestContext) => <R, E, A>(eff: Effect<RContext | R, E, A>) => Effect<Exclude<R, RContext | RequestContextContainer>, E, A>, parseDrain: (a: unknown, env?: Parser.ParserEnv | undefined) => Effect<never, CustomSchemaException, {
|
|
20
20
|
body: DrainEvt;
|
|
21
21
|
meta: RequestContext;
|
|
22
|
-
}>): import("effect").Effect<import("@azure/service-bus").ServiceBusReceiver | import("@azure/service-bus").ServiceBusSender, never, {
|
|
23
|
-
drain: import("effect").Effect<import("effect").Scope | DrainR, never, void>;
|
|
24
|
-
publish: (messages_0: Evt, ...messages_1: Evt[]) => import("effect").Effect<RequestContextContainer, never, import("effect/Fiber").RuntimeFiber<never, void>>;
|
|
22
|
+
}>): import("effect/Effect").Effect<import("@azure/service-bus").ServiceBusReceiver | import("@azure/service-bus").ServiceBusSender, never, {
|
|
23
|
+
drain: import("effect/Effect").Effect<import("effect/Scope").Scope | DrainR, never, void>;
|
|
24
|
+
publish: (messages_0: Evt, ...messages_1: Evt[]) => import("effect/Effect").Effect<RequestContextContainer, never, import("effect/Fiber").RuntimeFiber<never, void>>;
|
|
25
25
|
}>;
|
|
26
26
|
/**
|
|
27
27
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
28
28
|
* @tsplus location "@effect-app/infra/services/QueueMaker/sbqueue"
|
|
29
29
|
*/
|
|
30
|
-
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): import("effect").Layer<never, never, import("@azure/service-bus").ServiceBusReceiver | import("@azure/service-bus").ServiceBusSender>;
|
|
30
|
+
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): import("effect/Layer").Layer<never, never, import("@azure/service-bus").ServiceBusReceiver | import("@azure/service-bus").ServiceBusSender>;
|
|
31
31
|
//# sourceMappingURL=sbqueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":";;AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;;;;;AAQvE,wBAAgB,mBAAmB,CACjC,MAAM,EACN,GAAG,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/C,QAAQ,EACR,IAAI,EACJ,MAAM,EAEN,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,KAAK,IAAI,EACzD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EACxF,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACnD,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACjE,UAAU,EAAE,CACV,CAAC,EAAE,OAAO,EACV,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,KAC/B,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;;;GAuEpF;;;;;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../_src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":";;AAUA,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAA;AAEjE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;;;;;AAQvE,wBAAgB,mBAAmB,CACjC,MAAM,EACN,GAAG,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC1C,QAAQ,SAAS;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC/C,QAAQ,EACR,IAAI,EACJ,MAAM,EAEN,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,CAAC,CAAC,EAAE;IAAE,IAAI,EAAE,GAAG,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,KAAK,IAAI,EACzD,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,EACxF,cAAc,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACnD,GAAG,EAAE,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAC5B,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,GAAG,uBAAuB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACjE,UAAU,EAAE,CACV,CAAC,EAAE,OAAO,EACV,GAAG,CAAC,EAAE,MAAM,CAAC,SAAS,GAAG,SAAS,KAC/B,MAAM,CAAC,KAAK,EAAE,qBAAqB,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;;;GAuEpF;;;;;AAKD,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,+IAG1F"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import * as tsplus_module_1 from "@effect-app/core/Tag";
|
|
2
2
|
import * as tsplus_module_2 from "effect/Effect";
|
|
3
3
|
import * as tsplus_module_3 from "@effect-app/prelude/utils";
|
|
4
|
-
import * as tsplus_module_4 from "effect/
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/
|
|
6
|
-
import * as tsplus_module_6 from "
|
|
7
|
-
import * as tsplus_module_7 from "effect/impl/Layer";
|
|
4
|
+
import * as tsplus_module_4 from "@effect-app/prelude/schema";
|
|
5
|
+
import * as tsplus_module_5 from "@effect-app/infra/services/QueueMaker/errors";
|
|
6
|
+
import * as tsplus_module_6 from "effect/Layer";
|
|
8
7
|
import { LiveReceiver, LiveSender, LiveServiceBusClient, Receiver, Sender, subscribe } from "@effect-app/infra-adapters/ServiceBus";
|
|
9
8
|
import { captureException } from "@effect-app/infra/errorReporter";
|
|
10
9
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
@@ -16,33 +15,33 @@ import { reportNonInterruptedFailure, reportNonInterruptedFailureCause } from ".
|
|
|
16
15
|
* @tsplus static QueueMaker.Ops makeServiceBus
|
|
17
16
|
*/
|
|
18
17
|
export function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHandleEvent, provideContext, parseDrain) {
|
|
19
|
-
return tsplus_module_2.
|
|
18
|
+
return tsplus_module_2.gen(function* ($) {
|
|
20
19
|
const s = yield* $(Sender);
|
|
21
20
|
const receiver = yield* $(Receiver);
|
|
22
21
|
const receiverLayer = tsplus_module_1.makeLayer(Receiver, receiver);
|
|
23
22
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
24
23
|
const reportError = reportNonInterruptedFailureCause({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
25
24
|
return {
|
|
26
|
-
drain: tsplus_module_2.
|
|
25
|
+
drain: tsplus_module_2.gen(function* ($) {
|
|
27
26
|
const handleEvent = yield* $(makeHandleEvent);
|
|
28
27
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
28
|
function processMessage(messageBody) {
|
|
30
|
-
return
|
|
29
|
+
return tsplus_module_2.tapErrorCause(tsplus_module_2.flatMap(tsplus_module_2.orDie(tsplus_module_2.flatMap(tsplus_module_2.sync(() => JSON.parse(messageBody)), (x) => parseDrain(x))), ({ body, meta }) => provideContext(RequestContext.inherit(meta, {
|
|
31
30
|
id: RequestId(body.id),
|
|
32
31
|
locale: "en",
|
|
33
|
-
name:
|
|
34
|
-
}))(silenceAndReportError(
|
|
32
|
+
name: tsplus_module_4.ReasonableString(body._tag)
|
|
33
|
+
}))(silenceAndReportError(tsplus_module_2.orDie(tsplus_module_2.zipRight(tsplus_module_2.tap(tsplus_module_2.annotateLogs({ body: tsplus_module_3.RecordPretty(tsplus_module_3.object$(body)), meta: tsplus_module_3.RecordPretty(tsplus_module_3.object$(meta)) })(tsplus_module_2.logDebug(`$$ [${queueDrainName}] Processing incoming message`)), () => restoreFromRequestContext), handleEvent(body))))))
|
|
35
34
|
// we reportError here, so that we report the error only, and keep flowing
|
|
36
35
|
, reportError);
|
|
37
36
|
}
|
|
38
|
-
return yield* $(
|
|
39
|
-
processMessage: (x) =>
|
|
40
|
-
processError: (err) => tsplus_module_2.
|
|
37
|
+
return yield* $(tsplus_module_2.provide(subscribe({
|
|
38
|
+
processMessage: (x) => tsplus_module_2.uninterruptible(processMessage(x.body)),
|
|
39
|
+
processError: (err) => tsplus_module_2.sync(() => captureException(err.error))
|
|
41
40
|
}), receiverLayer));
|
|
42
41
|
}),
|
|
43
|
-
publish: (...messages) => tsplus_module_2.
|
|
42
|
+
publish: (...messages) => tsplus_module_2.gen(function* ($) {
|
|
44
43
|
const requestContext = yield* $(RequestContextContainer.get);
|
|
45
|
-
return yield* $(
|
|
44
|
+
return yield* $(tsplus_module_5.forkDaemonReportQueue(tsplus_module_2.promise(() => s.sendMessages(messages.map((x) => ({
|
|
46
45
|
body: JSON.stringify(encoder({ body: x, meta: requestContext })),
|
|
47
46
|
messageId: x.id, /* correllationid: requestId */
|
|
48
47
|
contentType: "application/json"
|
|
@@ -55,6 +54,6 @@ export function makeServiceBusQueue(_queueName, queueDrainName, encoder, makeHan
|
|
|
55
54
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
56
55
|
*/
|
|
57
56
|
export function makeServiceBusLayers(url, queueName, queueDrainName) {
|
|
58
|
-
return
|
|
57
|
+
return tsplus_module_6.provide((tsplus_module_6.merge(LiveSender(queueName))(LiveReceiver(queueDrainName))))(LiveServiceBusClient(url));
|
|
59
58
|
}
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvUXVldWVNYWtlci9zYnF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFDTCxZQUFZLEVBQ1osVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLHVDQUF1QyxDQUFBO0FBRTlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFBO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFFbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdkUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBRzNGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQVFqQyxVQUFrQixFQUNsQixjQUFzQixFQUN0QixPQUF5RCxFQUN6RCxlQUF3RixFQUN4RixjQUVpRSxFQUNqRSxVQUdtRjtJQUVuRixPQUFPLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDM0IsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzFCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNuQyxNQUFNLGFBQWEsR0FBRywwQkFBQSxRQUFRLEVBQVcsUUFBUSxDQUFDLENBQUE7UUFDbEQsTUFBTSxxQkFBcUIsR0FBRywyQkFBMkIsQ0FBQyxFQUFFLElBQUksRUFBRSx3QkFBd0IsR0FBRyxjQUFjLEVBQUUsQ0FB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
|