@effect-app/infra 0.181.4 → 0.182.2
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 +34 -0
- package/_cjs/api/defaultErrorHandler.cjs +2 -2
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/routing/base.cjs +8 -8
- package/_cjs/api/routing/base.cjs.map +1 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +3 -3
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +5 -5
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +1 -1
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +6 -6
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +1 -1
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +4 -4
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +3 -3
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +2 -2
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +4 -4
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository/dsl.cjs +2 -2
- package/_cjs/services/Repository/dsl.cjs.map +1 -1
- package/_cjs/services/Repository/ext.cjs +14 -14
- package/_cjs/services/Repository/ext.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +26 -26
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +7 -7
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/ContextMapContainer.cjs +6 -6
- package/_cjs/services/Store/ContextMapContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +14 -12
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +15 -15
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +19 -19
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +23 -23
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +9 -9
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +14 -14
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +10 -10
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +11 -11
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +21 -21
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +5 -5
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/dist/api/defaultErrorHandler.js +7 -3
- package/dist/api/routing/base.js +15 -14
- package/dist/api/routing/defaultErrorHandler.js +10 -4
- package/dist/api/routing/makeRequestHandler.js +11 -6
- package/dist/errorReporter.js +2 -2
- package/dist/rateLimit.js +10 -7
- package/dist/services/Emailer/fake.js +3 -2
- package/dist/services/Operations/live.js +7 -6
- package/dist/services/Operations/service.js +10 -7
- package/dist/services/QueueMaker/errors.js +3 -3
- package/dist/services/QueueMaker/memQueue.js +11 -8
- package/dist/services/QueueMaker/sbqueue.js +5 -3
- package/dist/services/Repository/dsl.js +3 -3
- package/dist/services/Repository/ext.js +28 -15
- package/dist/services/RepositoryBase.js +46 -29
- package/dist/services/RequestContextContainer.js +12 -10
- package/dist/services/Store/ContextMapContainer.js +12 -9
- package/dist/services/Store/Cosmos.js +34 -21
- package/dist/services/Store/Disk.js +20 -16
- package/dist/services/Store/Memory.js +32 -25
- package/dist/services/Store/Redis.js +38 -27
- package/dist/services/simpledb/cosmosdb.js +20 -11
- package/dist/services/simpledb/diskdb.js +25 -19
- package/dist/services/simpledb/memdb.js +16 -12
- package/dist/services/simpledb/mongodb.js +19 -11
- package/dist/services/simpledb/redisdb.d.ts +3 -3
- package/dist/services/simpledb/redisdb.js +32 -20
- package/dist/services/simpledb/shared.d.ts +5 -5
- package/dist/services/simpledb/simpledb.js +14 -9
- package/package.json +10 -10
|
@@ -37,7 +37,7 @@ const make = tsplus_module_1.sync(() => {
|
|
|
37
37
|
return tsplus_module_1.sync(() => tsplus_module_3.fromNullable(ops.get(id)));
|
|
38
38
|
}
|
|
39
39
|
function finishOp(id, exit) {
|
|
40
|
-
return
|
|
40
|
+
return findOp(id).flatMap((_) => tsplus_module_1.sync(() => {
|
|
41
41
|
if (tsplus_module_3.isNone(_)) {
|
|
42
42
|
throw new Error("Not found");
|
|
43
43
|
}
|
|
@@ -51,8 +51,8 @@ const make = tsplus_module_1.sync(() => {
|
|
|
51
51
|
? tsplus_module_8.NonEmptyString2k("Interrupted")
|
|
52
52
|
: tsplus_module_7.isDie(exit.cause)
|
|
53
53
|
? tsplus_module_8.NonEmptyString2k("Unknown error")
|
|
54
|
-
:
|
|
55
|
-
.cause)
|
|
54
|
+
: tsplus_module_7.failureOption(exit
|
|
55
|
+
.cause).flatMap((_) => typeof _ === "object" && _ !== null && "message" in _ && tsplus_module_9.is(tsplus_module_8.NonEmptyString2k)(_.message)
|
|
56
56
|
? tsplus_module_3.some(_.message)
|
|
57
57
|
: tsplus_module_3.none())
|
|
58
58
|
.value ?? null
|
|
@@ -61,7 +61,7 @@ const make = tsplus_module_1.sync(() => {
|
|
|
61
61
|
}));
|
|
62
62
|
}
|
|
63
63
|
function update(id, progress) {
|
|
64
|
-
return
|
|
64
|
+
return findOp(id).flatMap((_) => tsplus_module_1.sync(() => {
|
|
65
65
|
if (tsplus_module_3.isNone(_)) {
|
|
66
66
|
throw new Error("Not found");
|
|
67
67
|
}
|
|
@@ -77,7 +77,8 @@ const make = tsplus_module_1.sync(() => {
|
|
|
77
77
|
update
|
|
78
78
|
});
|
|
79
79
|
});
|
|
80
|
-
const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.schedule(tsplus_module_1.
|
|
80
|
+
const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.schedule(tsplus_module_1.exit(Operations
|
|
81
|
+
.flatMap((_) => _.cleanup)).flatMap((_) => {
|
|
81
82
|
if (tsplus_module_6.isSuccess(_)) {
|
|
82
83
|
return tsplus_module_1.unit;
|
|
83
84
|
}
|
|
@@ -89,4 +90,4 @@ const cleanupLoop = tsplus_module_1.forkScoped(tsplus_module_1.schedule(tsplus_m
|
|
|
89
90
|
* @tsplus static Operations.Ops Live
|
|
90
91
|
*/
|
|
91
92
|
export const Live = tsplus_module_13.provideMerge(tsplus_module_13.scopedDiscard(cleanupLoop), tsplus_module_13.effect(Operations)(make));
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9saXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFFN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFekMsTUFBTSxjQUFjLEdBQUcsV0FBVyxDQUFDLG9CQUFvQixDQUFDLENBQUE7QUFFeEQsTUFBTSxJQUFJLEdBQUcscUJBQVksR0FBRyxFQUFFO0lBQzVCLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUEwQixDQUFBO0lBQzdDLE1BQU0sTUFBTSxHQUFHLHFCQUFZLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRXBELE1BQU0sT0FBTyxHQUFHLHlCQUFBLHFCQUNSLEdBQUcsRUFBRTtRQUNULE1BQU0sTUFBTSxHQUFHLDZCQUFBLElBQUksSUFBSSxFQUFFLEVBQVUsQ0FBQyxDQUFDLENBQUE7UUFDckMscURBQUEsR0FBRzthQUNBLE9BQU8sRUFBRSxHQUVELENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQixNQUFNLFdBQVcsR0FBRyw2QkFBb0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUE7WUFDbkYsSUFBSSxXQUFXLEdBQUcsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDaEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQyxDQUFD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
|
|
@@ -19,8 +19,9 @@ Operations.cleanup = tsplus_module_2.serviceConstants(_a).cleanup;
|
|
|
19
19
|
* @tsplus getter effect/io/Effect forkOperation
|
|
20
20
|
*/
|
|
21
21
|
function forkOperation_1(self) {
|
|
22
|
-
return
|
|
23
|
-
.make()
|
|
22
|
+
return Operations.flatMap((Operations) => Scope
|
|
23
|
+
.make()
|
|
24
|
+
.flatMap((scope) => Scope.extend(Operations
|
|
24
25
|
.register, scope)
|
|
25
26
|
.tap(() => tsplus_module_3.forkDaemonReportRequestUnexpected(Scope.use(self, scope)))));
|
|
26
27
|
}
|
|
@@ -34,8 +35,9 @@ export function forkOperationFunction(fnc) {
|
|
|
34
35
|
* @tsplus static effect/io/Effect.Ops forkOperation
|
|
35
36
|
*/
|
|
36
37
|
export function forkOperation2(self) {
|
|
37
|
-
return
|
|
38
|
-
.make()
|
|
38
|
+
return Operations.flatMap((Operations) => Scope
|
|
39
|
+
.make()
|
|
40
|
+
.flatMap((scope) => Scope.extend(Operations
|
|
39
41
|
.register, scope)
|
|
40
42
|
.tap((id) => tsplus_module_3.forkDaemonReportRequestUnexpected(Scope.use(self(id), scope)))));
|
|
41
43
|
}
|
|
@@ -43,10 +45,11 @@ export function forkOperation2(self) {
|
|
|
43
45
|
* @tsplus static effect/io/Effect.Ops forkOperationWithEffect
|
|
44
46
|
*/
|
|
45
47
|
export function forkOperationWithEffect(self, fnc) {
|
|
46
|
-
return
|
|
47
|
-
.make()
|
|
48
|
+
return Operations.flatMap((Operations) => Scope
|
|
49
|
+
.make()
|
|
50
|
+
.flatMap((scope) => Scope.extend(Operations
|
|
48
51
|
.register, scope)
|
|
49
52
|
.tap((opId) => tsplus_module_3.forkDaemonReportRequestUnexpected(Scope.use(self(opId), scope)))
|
|
50
53
|
.tap((opId) => Scope.extend(tsplus_module_2.forkScoped(tsplus_module_2.interruptible(fnc(opId))), scope))));
|
|
51
54
|
}
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvT3BlcmF0aW9ucy9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7YUFzQmdCLGFBQWE7QUFyQjdCLE9BQU8sS0FBSyxLQUFLLE1BQU0sY0FBYyxDQUFBO0FBRXJDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxVQUFXLFNBQVEsZ0JBQUEsVUFBVSxFQUt0QyxDQUFDLHVCQUF1QixDQUFDOzs7QUFDWCxlQUFJLEdBQUcsaUNBQXdCLEVBQUksQ0FBQyxDQUFDLElBQUksQUFBckMsQ0FBcUM7QUFDekMsaUJBQU0sR0FBRyxpQ0FBd0IsRUFBSSxDQUFDLENBQUMsTUFBTSxBQUF2QyxDQUF1QztBQUM3QyxtQkFBUSxHQUFHLGlDQUF3QixFQUFJLENBQUMsQ0FBQyxRQUFRLEFBQXpDLENBQXlDO0FBQ2pELGtCQUFPLEdBQUcsaUNBQXdCLEVBQUksQ0FBQyxDQUFDLE9BQU8sQUFBeEMsQ0FBd0M7QUFHakU7O0dBRUc7QUFDSCx5QkFBdUMsSUFBcUI7SUFDMUQsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUN2QixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2IsS0FBSztTQUNGLElBQUksRUFBRTtTQUNOLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLEFBM0JFLEtBQUssUUEyQlAsVUFBVTtTQUNQLFFBQVEsRUFDRCxLQUFLLENBQUM7U0FDYixHQUFHLENBQUMsR0FBRyxFQUFFLG1EQUFDLEFBOUJYLEtBQUssS0E4Qk0sSUFBSSxFQUFLLEtBQUssQ0FBQyxDQUFrQyxDQUFDLENBQ2hFLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBZSxHQUFrQztJQUNwRixPQUFPLENBQUMsR0FBUSxFQUFFLEVBQUUsaUJBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFjLENBQUE7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FBVSxJQUE0QztJQUNsRixPQUFPLFVBQVUsQ0FBQyxPQUFPLENBQ3ZCLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FDYixLQUFLO1NBQ0YsSUFBSSxFQUFFO1NBQ04sT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDakIsQUFuREUsS0FBSyxRQW1EUCxVQUFVO1NBQ1AsUUFBUSxFQUNELEtBQUssQ0FBQztTQUNiLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLG1EQUFDLEFBdERiLEtBQUssS0FzRFEsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFLLEtBQUssQ0FBQyxDQUFrQyxDQUFDLENBQ3RFLENBQ04sQ0FBQTtBQUNILENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FDckMsSUFBMEMsRUFDMUMsR0FBNEM7SUFFNUMsT0FBTyxVQUFVLENBQUMsT0FBTyxDQUN2QixDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ2IsS0FBSztTQUNGLElBQUksRUFBRTtTQUNOLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2pCLEFBdkVFLEtBQUssUUF1RVAsVUFBVTtTQUNQLFFBQVEsRUFDRCxLQUFLLENBQUM7U0FDYixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxtREFBQyxBQTFFZixLQUFLLEtBMEVVLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBSyxLQUFLLENBQUMsQ0FBa0MsQ0FBQztTQUN0RSxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEFBM0VmLEtBQUssaUVBMkVVLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBaUMsS0FBSyxDQUFDLENBQUMsQ0FDbkUsQ0FDTixDQUFBO0FBQ0gsQ0FBQyJ9
|
|
@@ -19,8 +19,8 @@ export function forkDaemonReportQueue(self) {
|
|
|
19
19
|
export const reportFatalQueueError = reportError("FatalQueue");
|
|
20
20
|
export function reportNonInterruptedFailure(context) {
|
|
21
21
|
const report = reportNonInterruptedFailureCause(context);
|
|
22
|
-
return (inp) => tsplus_module_1.
|
|
23
|
-
onFailure: (cause) =>
|
|
22
|
+
return (inp) => tsplus_module_1.exit(inp).flatMap((result) => tsplus_module_2.match(result, {
|
|
23
|
+
onFailure: (cause) => report(cause).map(() => result),
|
|
24
24
|
onSuccess: () => tsplus_module_1.sync(() => result)
|
|
25
25
|
}));
|
|
26
26
|
}
|
|
@@ -32,4 +32,4 @@ export function reportNonInterruptedFailureCause(context) {
|
|
|
32
32
|
return reportQueueError(cause, context);
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFFN0QsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7QUFFOUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBSSxLQUFlLEVBQUUsTUFBNEMsRUFBRSxFQUFFLENBQ25HLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUVsQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxJQUFxQjtJQUNsRSwyREFBTyw4QkFBQSxJQUFJLEVBQWUsZ0NBQWdDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBb0I7QUFDckYsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLFdBQVcsQ0FDOUMsWUFBWSxDQUNiLENBQUE7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQUMsT0FBaUM7SUFDM0UsTUFBTSxNQUFNLEdBQUcsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEQsT0FBTyxDQUFVLEdBQW9CLEVBQWdDLEVBQUUsQ0FDckUscUJBQUEsR0FBRyxFQUVBLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ2xCLHNCQUFBLE1BQU0sRUFBTztRQUNYLFNBQVMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDckQsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLHFCQUFZLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQztLQUMzQyxDQUFDLENBQ0gsQ0FBQTtBQUNQLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQUMsT0FBaUM7SUFDaEYsT0FBTyxDQUFJLEtBQWUsRUFBZ0IsRUFBRTtRQUMxQyxJQUFJLDhCQUFBLEtBQUssQ0FBZ0IsRUFBRSxDQUFDO1lBQzFCLGlDQUFRLEtBQXNCLEVBQVU7UUFDMUMsQ0FBQztRQUNELE9BQU8sZ0JBQWdCLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBQ3pDLENBQUMsQ0FBQTtBQUNILENBQUMifQ==
|
|
@@ -33,19 +33,21 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
33
33
|
return yield* $(tsplus_module_5.forkDaemonReportQueue(messages
|
|
34
34
|
.forEachEffect((m) =>
|
|
35
35
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
36
|
-
|
|
36
|
+
tsplus_module_2.encode(wireSchema)({ body: m, meta: { requestContext, span } })
|
|
37
37
|
.orDie
|
|
38
38
|
.andThen(JSON.stringify)
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
// .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
|
|
40
|
+
.flatMap((_) => q.offer(_))
|
|
41
41
|
.asUnit)));
|
|
42
42
|
}),
|
|
43
43
|
makeDrain: (handleEvent) => tsplus_module_4.gen(function* ($) {
|
|
44
44
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
|
|
45
45
|
const processMessage = (msg) =>
|
|
46
46
|
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
47
|
-
tsplus_module_4.
|
|
48
|
-
.
|
|
47
|
+
tsplus_module_4.sync(() => JSON.parse(msg))
|
|
48
|
+
.flatMap(parseDrain)
|
|
49
|
+
.orDie
|
|
50
|
+
.flatMap(({ body, meta }) => tsplus_module_4.withSpan(tsplus_module_7.setupRequestContext(tsplus_module_4.zipRight(tsplus_module_4.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
49
51
|
.pipe(tsplus_module_4.annotateLogs({ body: tsplus_module_6.RecordPretty(tsplus_module_6.object$(body)), meta: tsplus_module_6.RecordPretty(tsplus_module_6.object$(meta)) })), handleEvent(body))
|
|
50
52
|
.pipe(silenceAndReportError), RequestContext.inherit(meta.requestContext, {
|
|
51
53
|
id: RequestId(body.id),
|
|
@@ -57,8 +59,9 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
57
59
|
? Tracer.externalSpan(meta.span)
|
|
58
60
|
: undefined
|
|
59
61
|
}));
|
|
60
|
-
return yield* $(tsplus_module_4.forkScoped(tsplus_module_4.forever(
|
|
61
|
-
.take
|
|
62
|
+
return yield* $(tsplus_module_4.forkScoped(tsplus_module_4.forever(qDrain
|
|
63
|
+
.take
|
|
64
|
+
.flatMap((x) => tsplus_module_4.fork(tsplus_module_4.uninterruptible(processMessage(x))).flatMap((_) => tsplus_module_8.join(_)))
|
|
62
65
|
// TODO: normally a failed item would be returned to the queue and retried up to X times.
|
|
63
66
|
// .flatMap(_ => _._tag === "Failure" && !isInterrupted ? qDrain.offer(x) : Effect.unit) // TODO: retry count tracking and max retries.
|
|
64
67
|
.pipe(silenceAndReportError))));
|
|
@@ -66,4 +69,4 @@ export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
|
66
69
|
};
|
|
67
70
|
});
|
|
68
71
|
}
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9fc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvbWVtUXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBRWpFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQy9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUN6RCxPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RDs7R0FFRztBQUNILE1BQU0sVUFBVSxZQUFZLENBTTFCLFNBQWlCLEVBQ2pCLGNBQXNCLEVBQ3RCLE1BQTJCLEVBQzNCLFdBQTBDO0lBRTFDLE9BQU8sb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDOUIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO1FBQ25ELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQTtRQUM3RCxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUU3QyxNQUFNLFVBQVUsR0FBRyxnQkFBQSxNQUFNLENBQUMsRUFBRSxJ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
|
|
@@ -38,8 +38,10 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
|
|
|
38
38
|
makeDrain: (handleEvent) => tsplus_module_6.gen(function* ($) {
|
|
39
39
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
40
|
function processMessage(messageBody) {
|
|
41
|
-
return tsplus_module_6.tapErrorCause(tsplus_module_6.
|
|
42
|
-
.
|
|
41
|
+
return tsplus_module_6.tapErrorCause(tsplus_module_6.sync(() => JSON.parse(messageBody))
|
|
42
|
+
.flatMap((x) => parseDrain(x))
|
|
43
|
+
.orDie
|
|
44
|
+
.flatMap(({ body, meta }) => tsplus_module_6.withSpan(tsplus_module_7.setupRequestContext(tsplus_module_6.zipRight(tsplus_module_6.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
43
45
|
.pipe(tsplus_module_6.annotateLogs({ body: tsplus_module_5.RecordPretty(tsplus_module_5.object$(body)), meta: tsplus_module_5.RecordPretty(tsplus_module_5.object$(meta)) })), handleEvent(body))
|
|
44
46
|
.orDie
|
|
45
47
|
// we silenceAndReportError here, so that the error is reported, and moves into the Exit.
|
|
@@ -80,4 +82,4 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
|
|
|
80
82
|
export function makeServiceBusLayers(url, queueName, queueDrainName) {
|
|
81
83
|
return tsplus_module_10.provide(tsplus_module_10.merge(LiveReceiver(queueDrainName), LiveSender(queueName)), LiveServiceBusClient(url));
|
|
82
84
|
}
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL19zcmMvc2VydmljZXMvUXVldWVNYWtlci9zYnF1ZXVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQ0wsWUFBWSxFQUNaLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsUUFBUSxFQUNSLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSx1Q0FBdUMsQ0FBQTtBQUU5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQy9CLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUMzRixPQUFPLEVBQWtCLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUV4RDs7R0FFRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FNakMsVUFBa0IsRUFDbEIsY0FBc0IsRUFDdEIsTUFBMkIsRUFDM0IsV0FBMEM7SUFFMUMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDO1FBQ3hCLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLFNBQVM7S0FDaEIsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtJQUM3RCxNQUFNLFVBQVUsR0FBRyxnQkFBQSxJQUFJLCtCQUFDLE1BQU0sR0FBZ0IsQ0FB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
|
|
@@ -18,10 +18,10 @@ export function makeOneDSL() {
|
|
|
18
18
|
export function makeDSL() {
|
|
19
19
|
const dsl = AnyPureDSL;
|
|
20
20
|
function modify(pure) {
|
|
21
|
-
return
|
|
21
|
+
return dsl.get.flatMap((items) => pure(items, dsl));
|
|
22
22
|
}
|
|
23
23
|
function update(pure) {
|
|
24
|
-
return
|
|
24
|
+
return dsl.get.flatMap((items) => pure(items, dsl.log).tap(dsl.set));
|
|
25
25
|
}
|
|
26
26
|
function withDSL(pure) {
|
|
27
27
|
return pure(AnyPureDSL);
|
|
@@ -44,4 +44,4 @@ export function ifAny(fn) {
|
|
|
44
44
|
export function ifAny_(items, fn) {
|
|
45
45
|
return tsplus_module_4.flatMapOption(tsplus_module_2.sync(() => tsplus_module_3.CollectionToNonEmptyReadonlyArray(items)), fn);
|
|
46
46
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9SZXBvc2l0b3J5L2RzbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBUUEsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUEyQjtJQUNoRCxHQUFHLEVBQUUscUJBQVU7SUFDZixHQUFHLHFCQUFVO0lBQ2IsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFVLEVBQUUsRUFBRSxDQUFDLHdCQUFhLEdBQUcsQ0FBQztDQUMxQyxDQUFBO0FBRUQsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFpQixDQUFBO0FBdUJ2QyxNQUFNLFVBQVUsVUFBVTtJQUN4QixNQUFNLEdBQUcsR0FBbUIsTUFBTSxDQUFBO0lBQ2xDLE9BQU8sR0FBRyxDQUFBO0FBQ1osQ0FBQztBQXVCRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLE1BQU0sQ0FBQTtBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTztJQUNyQixNQUFNLEdBQUcsR0FBeUIsVUFBVSxDQUFBO0lBRTVDLFNBQVMsTUFBTSxDQUtiLElBR29CO1FBRXBCLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQVEsQ0FBQTtJQUM1RCxDQUFDO0lBRUQsU0FBUyxNQUFNLENBSWIsSUFHcUI7UUFFckIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBUSxDQUFBO0lBQzdFLENBQUM7SUFFRCxTQUFTLE9BQU8sQ0FLZCxJQUFvRDtRQUVwRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQVEsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsU0FBUyxVQUFVLENBQUMsR0FBcUI7UUFDdkMsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFLLEVBQUUsRUFBRSxDQUFDLHFCQUFZLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsT0FBTyxFQUNQO1FBQ0UsTUFBTTtRQUNOLE1BQU07UUFDTixVQUFVO0tBQ1gsQ0FDRixDQUFBO0FBQ0gsQ0FBQztBQUlELE1BQU0sVUFBVSxLQUFLLENBQWEsRUFBd0Q7SUFDeEYsT0FBTyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLDhCQUFBLHFCQUFZLEdBQUcsRUFBRSxtREFBQyxLQUFLLENBQWdCLENBQUMsRUFBWSxFQUFFLENBQUMsQ0FBQTtBQUN4RixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFhLEtBQWtCLEVBQUUsRUFBd0Q7SUFDN0csT0FBTyw4QkFBQSxxQkFBWSxHQUFHLEVBQUUsbURBQUMsS0FBSyxDQUFnQixDQUFDLEVBQVksRUFBRSxDQUFDLENBQUE7QUFDaEUsQ0FBQyJ9
|
|
@@ -23,8 +23,9 @@ import { AnyPureDSL } from "./dsl.js";
|
|
|
23
23
|
* @tsplus fluent Repository get
|
|
24
24
|
*/
|
|
25
25
|
function get_1(self, id) {
|
|
26
|
-
return
|
|
27
|
-
.find(id)
|
|
26
|
+
return self
|
|
27
|
+
.find(id)
|
|
28
|
+
.flatMap((_) => tsplus_module_1.encaseMaybeInEffect_(_, () => new NotFoundError({ type: self.itemType, id })));
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* @tsplus getter Repository log
|
|
@@ -34,9 +35,10 @@ export function log(_) {
|
|
|
34
35
|
}
|
|
35
36
|
function projectEffect_1(self, map) {
|
|
36
37
|
// TODO: a projection that gets sent to the db instead.
|
|
37
|
-
return
|
|
38
|
+
return map.flatMap((f) => self
|
|
38
39
|
.utils
|
|
39
|
-
.filter(f)
|
|
40
|
+
.filter(f)
|
|
41
|
+
.map((_) => f.collect ? _.filterMap(f.collect) : _));
|
|
40
42
|
}
|
|
41
43
|
export function project(self, map) {
|
|
42
44
|
return projectEffect_1(self, tsplus_module_2.sync(() => map));
|
|
@@ -46,7 +48,8 @@ export function project(self, map) {
|
|
|
46
48
|
* @tsplus fluent Repository project
|
|
47
49
|
*/
|
|
48
50
|
export function count(self, filter) {
|
|
49
|
-
return
|
|
51
|
+
return projectEffect_1(self, tsplus_module_2.sync(() => ({ filter })))
|
|
52
|
+
.map((_) => tsplus_module_3.NonNegativeInt(_.length));
|
|
50
53
|
}
|
|
51
54
|
/**
|
|
52
55
|
* @tsplus fluent Repository queryEffect
|
|
@@ -54,13 +57,18 @@ export function count(self, filter) {
|
|
|
54
57
|
function queryEffect_1(self,
|
|
55
58
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
56
59
|
map) {
|
|
57
|
-
return
|
|
60
|
+
return map.flatMap((f) => (f.filter ? self.utils.filter(f) : self.utils.all)
|
|
61
|
+
.flatMap((_) => self.utils.parseMany(_))
|
|
62
|
+
.map((_) => f.collect ? _.filterMap(f.collect) : _));
|
|
58
63
|
}
|
|
59
64
|
function queryOneEffect_1(self,
|
|
60
65
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
61
66
|
map) {
|
|
62
|
-
return
|
|
63
|
-
.
|
|
67
|
+
return map.flatMap((f) => (f.filter ? self.utils.filter({ filter: f.filter, limit: 1 }) : self.utils.all)
|
|
68
|
+
.flatMap((_) => self.utils.parseMany(_))
|
|
69
|
+
.flatMap((_) => tsplus_module_1.encaseMaybeInEffect_((f.collect ? _.filterMap(f.collect) : _)
|
|
70
|
+
.toNonEmpty, () => new NotFoundError({ type: self.itemType, id: f.filter }))
|
|
71
|
+
.map((_) => _[0])));
|
|
64
72
|
}
|
|
65
73
|
/**
|
|
66
74
|
* @tsplus fluent Repository query
|
|
@@ -74,7 +82,8 @@ export function queryOne(self, map) {
|
|
|
74
82
|
return queryOneEffect_1(self, tsplus_module_2.sync(() => map));
|
|
75
83
|
}
|
|
76
84
|
function queryAndSaveOnePureEffect_1(self, map) {
|
|
77
|
-
return (pure) =>
|
|
85
|
+
return (pure) => queryOneEffect_1(self, map)
|
|
86
|
+
.flatMap((_) => saveWithPure_1(self, _, pure));
|
|
78
87
|
}
|
|
79
88
|
export function queryAndSaveOnePure(self, map) {
|
|
80
89
|
return queryAndSaveOnePureEffect_1(self, tsplus_module_2.sync(() => map));
|
|
@@ -83,7 +92,8 @@ export function queryAndSaveOnePure(self, map) {
|
|
|
83
92
|
* @tsplus fluent Repository queryAndSavePureEffect
|
|
84
93
|
*/
|
|
85
94
|
function queryAndSavePureEffect_1(self, map) {
|
|
86
|
-
return (pure) =>
|
|
95
|
+
return (pure) => queryEffect_1(self, map)
|
|
96
|
+
.flatMap((_) => saveManyWithPure_1(self, _, pure));
|
|
87
97
|
}
|
|
88
98
|
/**
|
|
89
99
|
* @tsplus fluent Repository queryAndSavePure
|
|
@@ -101,7 +111,7 @@ export function saveManyWithPure(self) {
|
|
|
101
111
|
* @tsplus fluent Repository byIdAndSaveWithPure
|
|
102
112
|
*/
|
|
103
113
|
function byIdAndSaveWithPure_1(self, id) {
|
|
104
|
-
return (pure) =>
|
|
114
|
+
return (pure) => get_1(self, id).flatMap((item) => saveWithPure_1(self, item, pure));
|
|
105
115
|
}
|
|
106
116
|
/**
|
|
107
117
|
* NOTE: it's not as composable, only useful when the request is simple, and only this part needs request args.
|
|
@@ -120,10 +130,12 @@ function saveManyWithPure_1(self, items, pure) {
|
|
|
120
130
|
* @tsplus fluent Repository saveWithPure_
|
|
121
131
|
*/
|
|
122
132
|
function saveWithPure_1(self, item, pure) {
|
|
123
|
-
return saveAllWithEffectInt(self,
|
|
133
|
+
return saveAllWithEffectInt(self, tsplus_module_4.runTerm(pure, item)
|
|
134
|
+
.map(([item, events, a]) => [[item], events, a]));
|
|
124
135
|
}
|
|
125
136
|
export function saveAllWithEffectInt(self, gen) {
|
|
126
|
-
return
|
|
137
|
+
return gen
|
|
138
|
+
.flatMap(([items, events, a]) => self.saveAndPublish(items, events).map(() => a));
|
|
127
139
|
}
|
|
128
140
|
/**
|
|
129
141
|
* @tsplus fluent Repository queryAndSavePureEffectBatched
|
|
@@ -131,7 +143,8 @@ export function saveAllWithEffectInt(self, gen) {
|
|
|
131
143
|
function queryAndSavePureEffectBatched_1(self,
|
|
132
144
|
// TODO: think about collectPM, collectE, and collect(Parsed)
|
|
133
145
|
map, batchSize = 100) {
|
|
134
|
-
return (pure) =>
|
|
146
|
+
return (pure) => queryEffect_1(self, map)
|
|
147
|
+
.flatMap((_) => saveManyWithPureBatched_1(self, _, pure, batchSize));
|
|
135
148
|
}
|
|
136
149
|
/**
|
|
137
150
|
* @tsplus fluent Repository queryAndSavePureBatched
|
|
@@ -177,4 +190,4 @@ function itemUpdateWithEffect_1(repo, id, mod) {
|
|
|
177
190
|
export function itemUpdate(repo, id, mod) {
|
|
178
191
|
return itemUpdateWithEffect_1(repo, id, (item) => tsplus_module_2.sync(() => mod(item)));
|
|
179
192
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
193
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vX3NyYy9zZXJ2aWNlcy9SZXBvc2l0b3J5L2V4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7YUFjZ0IsR0FBRzthQXlFSCxhQUFhO2FBMkdiLFdBQVc7YUFnRFgsY0FBYzthQXlIZCx5QkFBeUI7YUFxRHpCLHNCQUFzQjthQWlEdEIsbUJBQW1CO2FBNkJuQixpQkFBaUI7YUF3QmpCLGFBQWE7YUE2Q2IsNkJBQTZCO2FBcUQ3Qix3QkFBd0I7YUE2QnhCLElBQUk7YUE0Qkosb0JBQW9CO0FBNXBCcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBSS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFckM7O0dBRUc7QUFDSCxlQU1FLElBQTJDLEVBQzNDLEVBQVc7SUFFWCxPQUFPLElBQUk7U0FDUixJQUFJLENBQUMsRUFBRSxDQUFDO1NBQ1IsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxxQ0FBQSxDQUFDLEVBQWdCLEdBQUcsRUFBRSxDQUFDLElBQUksYUFBYSxDQUFXLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDckcsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEdBQUcsQ0FLakIsQ0FBd0M7SUFDeEMsT0FBTyxDQUFDLEdBQVEsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUMxQyxDQUFDO0FBaURELHlCQVVFLElBQTJDLEVBQzNDLEdBVUM7SUFFRCx1REFBdUQ7SUFDdkQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDdkIsSUFBSTtTQUNELEtBQUs7U0FDTCxNQUFNLENBQUMsQ0FBQyxDQUFDO1NBQ1QsR0FBRyxDQUFDLENB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
|