@effect-app/infra 0.198.1 → 0.199.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 +26 -0
- package/_cjs/RequestContext.cjs +14 -9
- package/_cjs/RequestContext.cjs.map +1 -1
- package/_cjs/_ext/Array.cjs +3 -7
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +3 -6
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing/base.cjs +27 -61
- package/_cjs/api/routing/base.cjs.map +1 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +14 -21
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +44 -51
- package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -1
- package/_cjs/api/routing/match.cjs +6 -13
- package/_cjs/api/routing/match.cjs.map +1 -1
- package/_cjs/api/{express → routing}/schema/jwt.cjs +3 -4
- package/_cjs/api/routing/schema/jwt.cjs.map +1 -0
- package/_cjs/api/routing/schema/routing.cjs +136 -0
- package/_cjs/api/routing/schema/routing.cjs.map +1 -0
- package/_cjs/api/setupRequest.cjs +16 -22
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +16 -17
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/errors.cjs +2 -4
- package/_cjs/errors.cjs.map +1 -1
- package/_cjs/filter/types/path/index.cjs +0 -2
- package/_cjs/filter/types/path/index.cjs.map +1 -1
- package/_cjs/filter.cjs +35 -0
- package/_cjs/filter.cjs.map +1 -1
- package/_cjs/logger/jsonLogger.cjs +9 -15
- package/_cjs/logger/jsonLogger.cjs.map +1 -1
- package/_cjs/logger/logFmtLogger.cjs +7 -11
- package/_cjs/logger/logFmtLogger.cjs.map +1 -1
- package/_cjs/logger/shared.cjs +6 -8
- package/_cjs/logger/shared.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +9 -12
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +9 -16
- package/_cjs/services/Emailer/Sendgrid.cjs.map +1 -1
- package/_cjs/services/Emailer/fake.cjs +5 -8
- package/_cjs/services/Emailer/fake.cjs.map +1 -1
- package/_cjs/services/Emailer/service.cjs +2 -4
- package/_cjs/services/Emailer/service.cjs.map +1 -1
- package/_cjs/services/Operations/live.cjs +29 -42
- package/_cjs/services/Operations/live.cjs.map +1 -1
- package/_cjs/services/Operations/service.cjs +15 -15
- package/_cjs/services/Operations/service.cjs.map +1 -1
- package/_cjs/services/QueueMaker/errors.cjs +8 -12
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +27 -33
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +31 -40
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/service.cjs +7 -9
- package/_cjs/services/QueueMaker/service.cjs.map +1 -1
- package/_cjs/services/Repository/dsl.cjs +11 -14
- package/_cjs/services/Repository/dsl.cjs.map +1 -1
- package/_cjs/services/Repository/ext.cjs +62 -71
- package/_cjs/services/Repository/ext.cjs.map +1 -1
- package/_cjs/services/RepositoryBase.cjs +171 -169
- package/_cjs/services/RepositoryBase.cjs.map +1 -1
- package/_cjs/services/RequestContextContainer.cjs +17 -23
- package/_cjs/services/RequestContextContainer.cjs.map +1 -1
- package/_cjs/services/Store/ContextMapContainer.cjs +10 -16
- package/_cjs/services/Store/ContextMapContainer.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos/query.cjs +5 -9
- package/_cjs/services/Store/Cosmos/query.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +58 -68
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +34 -36
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +55 -65
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.cjs +2 -4
- package/_cjs/services/Store/codeFilter.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +13 -12
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
- package/_cjs/services/Store/filterApi/query.cjs +2 -4
- package/_cjs/services/Store/filterApi/query.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +6 -9
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/service.cjs +5 -7
- package/_cjs/services/Store/service.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +16 -20
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/query.cjs +4 -2
- package/_cjs/services/query.cjs.map +1 -1
- package/_cjs/test.arbs.cjs +3 -4
- package/_cjs/test.arbs.cjs.map +1 -1
- package/dist/RequestContext.d.ts +20 -20
- package/dist/RequestContext.d.ts.map +1 -1
- package/dist/RequestContext.js +15 -8
- package/dist/_ext/Array.d.ts +2 -3
- package/dist/_ext/Array.d.ts.map +1 -1
- package/dist/_ext/Array.js +5 -5
- package/dist/api/reportError.d.ts +5 -5
- package/dist/api/reportError.d.ts.map +1 -1
- package/dist/api/reportError.js +6 -6
- package/dist/api/routing/base.d.ts +11 -15
- package/dist/api/routing/base.d.ts.map +1 -1
- package/dist/api/routing/base.js +48 -67
- package/dist/api/routing/defaultErrorHandler.d.ts +4 -6
- package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -1
- package/dist/api/routing/defaultErrorHandler.js +26 -28
- package/dist/api/routing/makeRequestHandler.d.ts +6 -7
- package/dist/api/routing/makeRequestHandler.d.ts.map +1 -1
- package/dist/api/routing/makeRequestHandler.js +69 -59
- package/dist/api/routing/match.d.ts +7 -8
- package/dist/api/routing/match.d.ts.map +1 -1
- package/dist/api/routing/match.js +7 -11
- package/dist/api/routing/schema/jwt.d.ts +4 -0
- package/dist/api/routing/schema/jwt.d.ts.map +1 -0
- package/dist/api/routing/schema/jwt.js +11 -0
- package/dist/api/{express → routing}/schema/routing.d.ts +2 -2
- package/dist/api/routing/schema/routing.d.ts.map +1 -0
- package/dist/api/routing/schema/routing.js +123 -0
- package/dist/api/routing.js +3 -1
- package/dist/api/setupRequest.d.ts +3 -5
- package/dist/api/setupRequest.d.ts.map +1 -1
- package/dist/api/setupRequest.js +20 -24
- package/dist/errorReporter.d.ts +4 -4
- package/dist/errorReporter.d.ts.map +1 -1
- package/dist/errorReporter.js +20 -17
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +3 -3
- package/dist/filter/types/path/index.d.ts +2 -2
- package/dist/filter/types/path/index.d.ts.map +1 -1
- package/dist/filter/types/path/index.js +2 -3
- package/dist/filter/types.js +2 -1
- package/dist/filter.d.ts.map +1 -1
- package/dist/filter.js +36 -1
- package/dist/logger/jsonLogger.d.ts +2 -1
- package/dist/logger/jsonLogger.d.ts.map +1 -1
- package/dist/logger/jsonLogger.js +9 -13
- package/dist/logger/logFmtLogger.d.ts +2 -1
- package/dist/logger/logFmtLogger.d.ts.map +1 -1
- package/dist/logger/logFmtLogger.js +9 -11
- package/dist/logger/shared.d.ts +2 -1
- package/dist/logger/shared.d.ts.map +1 -1
- package/dist/logger/shared.js +7 -9
- package/dist/rateLimit.d.ts +7 -10
- package/dist/rateLimit.d.ts.map +1 -1
- package/dist/rateLimit.js +17 -16
- package/dist/services/Emailer/Sendgrid.d.ts +1 -2
- package/dist/services/Emailer/Sendgrid.d.ts.map +1 -1
- package/dist/services/Emailer/Sendgrid.js +16 -20
- package/dist/services/Emailer/fake.d.ts +2 -2
- package/dist/services/Emailer/fake.d.ts.map +1 -1
- package/dist/services/Emailer/fake.js +10 -8
- package/dist/services/Emailer/service.d.ts +7 -10
- package/dist/services/Emailer/service.d.ts.map +1 -1
- package/dist/services/Emailer/service.js +3 -3
- package/dist/services/Operations/live.d.ts +2 -3
- package/dist/services/Operations/live.d.ts.map +1 -1
- package/dist/services/Operations/live.js +44 -51
- package/dist/services/Operations/service.d.ts +14 -19
- package/dist/services/Operations/service.d.ts.map +1 -1
- package/dist/services/Operations/service.js +23 -28
- package/dist/services/QueueMaker/errors.d.ts +5 -7
- package/dist/services/QueueMaker/errors.d.ts.map +1 -1
- package/dist/services/QueueMaker/errors.js +11 -11
- package/dist/services/QueueMaker/memQueue.d.ts +6 -9
- package/dist/services/QueueMaker/memQueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/memQueue.js +37 -39
- package/dist/services/QueueMaker/sbqueue.d.ts +6 -9
- package/dist/services/QueueMaker/sbqueue.d.ts.map +1 -1
- package/dist/services/QueueMaker/sbqueue.js +41 -39
- package/dist/services/QueueMaker/service.d.ts +2 -4
- package/dist/services/QueueMaker/service.d.ts.map +1 -1
- package/dist/services/QueueMaker/service.js +8 -8
- package/dist/services/Repository/dsl.d.ts +8 -10
- package/dist/services/Repository/dsl.d.ts.map +1 -1
- package/dist/services/Repository/dsl.js +12 -13
- package/dist/services/Repository/ext.d.ts +34 -62
- package/dist/services/Repository/ext.d.ts.map +1 -1
- package/dist/services/Repository/ext.js +59 -70
- package/dist/services/RepositoryBase.d.ts +41 -47
- package/dist/services/RepositoryBase.d.ts.map +1 -1
- package/dist/services/RepositoryBase.js +182 -194
- package/dist/services/RequestContextContainer.d.ts +13 -21
- package/dist/services/RequestContextContainer.d.ts.map +1 -1
- package/dist/services/RequestContextContainer.js +21 -25
- package/dist/services/Store/ContextMapContainer.d.ts +11 -18
- package/dist/services/Store/ContextMapContainer.d.ts.map +1 -1
- package/dist/services/Store/ContextMapContainer.js +17 -18
- package/dist/services/Store/Cosmos/query.d.ts +3 -2
- package/dist/services/Store/Cosmos/query.d.ts.map +1 -1
- package/dist/services/Store/Cosmos/query.js +10 -11
- package/dist/services/Store/Cosmos.d.ts +2 -3
- package/dist/services/Store/Cosmos.d.ts.map +1 -1
- package/dist/services/Store/Cosmos.js +107 -90
- package/dist/services/Store/Disk.d.ts +4 -4
- package/dist/services/Store/Disk.d.ts.map +1 -1
- package/dist/services/Store/Disk.js +54 -50
- package/dist/services/Store/Memory.d.ts +6 -8
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +93 -89
- package/dist/services/Store/codeFilter.d.ts.map +1 -1
- package/dist/services/Store/codeFilter.js +3 -3
- package/dist/services/Store/codeFilter.test.d.ts.map +1 -1
- package/dist/services/Store/filterApi/query.d.ts +1 -1
- package/dist/services/Store/filterApi/query.d.ts.map +1 -1
- package/dist/services/Store/filterApi/query.js +3 -3
- package/dist/services/Store/index.d.ts +1 -2
- 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 +20 -23
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/service.js +6 -6
- package/dist/services/Store/utils.d.ts +3 -3
- package/dist/services/Store/utils.d.ts.map +1 -1
- package/dist/services/Store/utils.js +26 -28
- package/dist/services/query.d.ts +6 -6
- package/dist/services/query.d.ts.map +1 -1
- package/dist/services/query.js +5 -4
- package/dist/test.arbs.d.ts +0 -2
- package/dist/test.arbs.d.ts.map +1 -1
- package/dist/test.arbs.js +3 -4
- package/package.json +28 -168
- package/src/RequestContext.ts +1 -0
- package/src/_ext/Array.ts +5 -2
- package/src/api/reportError.ts +14 -10
- package/src/api/routing/base.ts +77 -110
- package/src/api/routing/defaultErrorHandler.ts +64 -54
- package/src/api/routing/makeRequestHandler.ts +165 -135
- package/src/api/routing/match.ts +14 -8
- package/src/api/{express → routing}/schema/jwt.ts +6 -5
- package/src/api/{express → routing}/schema/routing.ts +2 -1
- package/src/api/setupRequest.ts +30 -24
- package/src/errorReporter.ts +12 -11
- package/src/errors.ts +1 -0
- package/src/filter/types/path/index.ts +2 -2
- package/src/logger/jsonLogger.ts +6 -5
- package/src/logger/logFmtLogger.ts +4 -5
- package/src/logger/shared.ts +4 -3
- package/src/rateLimit.ts +37 -34
- package/src/services/Emailer/Sendgrid.ts +12 -10
- package/src/services/Emailer/fake.ts +7 -4
- package/src/services/Emailer/service.ts +4 -1
- package/src/services/Operations/live.ts +66 -59
- package/src/services/Operations/service.ts +41 -34
- package/src/services/QueueMaker/errors.ts +15 -11
- package/src/services/QueueMaker/memQueue.ts +59 -40
- package/src/services/QueueMaker/sbqueue.ts +54 -33
- package/src/services/QueueMaker/service.ts +7 -6
- package/src/services/Repository/dsl.ts +12 -8
- package/src/services/Repository/ext.ts +52 -44
- package/src/services/RepositoryBase.ts +278 -240
- package/src/services/RequestContextContainer.ts +30 -18
- package/src/services/Store/ContextMapContainer.ts +26 -13
- package/src/services/Store/Cosmos/query.ts +17 -11
- package/src/services/Store/Cosmos.ts +209 -168
- package/src/services/Store/Disk.ts +69 -53
- package/src/services/Store/Memory.ts +138 -97
- package/src/services/Store/{Redis.ts → Redis.ts.bak} +7 -5
- package/src/services/Store/codeFilter.test.ts +61 -36
- package/src/services/Store/codeFilter.ts +1 -0
- package/src/services/Store/filterApi/query.ts +1 -0
- package/src/services/Store/index.ts +7 -6
- package/src/services/Store/service.ts +4 -1
- package/src/services/Store/utils.ts +25 -23
- package/src/services/query.ts +3 -3
- package/src/services/simpledb/{cosmosdb.ts → cosmosdb.ts.bak} +1 -0
- package/src/services/simpledb/{diskdb.ts → diskdb.ts.bak} +2 -1
- package/src/services/simpledb/{memdb.ts → memdb.ts.bak} +3 -2
- package/src/services/simpledb/{mongodb.ts → mongodb.ts.bak} +1 -0
- package/src/services/simpledb/{redisdb.ts → redisdb.ts.bak} +17 -14
- package/src/services/simpledb/{shared.ts → shared.ts.bak} +2 -1
- package/src/services/simpledb/{simpledb.ts → simpledb.ts.bak} +6 -2
- package/tsconfig.json +4 -21
- package/tsconfig.json.bak +0 -4
- package/_cjs/_global.cjs +0 -6
- package/_cjs/_global.cjs.map +0 -1
- package/_cjs/_global.ext.cjs +0 -5
- package/_cjs/_global.ext.cjs.map +0 -1
- package/_cjs/_global.schema.cjs +0 -5
- package/_cjs/_global.schema.cjs.map +0 -1
- package/_cjs/api/defaultErrorHandler.cjs +0 -37
- package/_cjs/api/defaultErrorHandler.cjs.map +0 -1
- package/_cjs/api/express/schema/jwt.cjs.map +0 -1
- package/_cjs/api/express/schema/routing.cjs +0 -23
- package/_cjs/api/express/schema/routing.cjs.map +0 -1
- package/_cjs/api/http.cjs +0 -42
- package/_cjs/api/http.cjs.map +0 -1
- package/_cjs/services/Store/Redis.cjs +0 -73
- package/_cjs/services/Store/Redis.cjs.map +0 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +0 -109
- package/_cjs/services/simpledb/cosmosdb.cjs.map +0 -1
- package/_cjs/services/simpledb/diskdb.cjs +0 -125
- package/_cjs/services/simpledb/diskdb.cjs.map +0 -1
- package/_cjs/services/simpledb/index.cjs +0 -38
- package/_cjs/services/simpledb/index.cjs.map +0 -1
- package/_cjs/services/simpledb/memdb.cjs +0 -72
- package/_cjs/services/simpledb/memdb.cjs.map +0 -1
- package/_cjs/services/simpledb/mongodb.cjs +0 -99
- package/_cjs/services/simpledb/mongodb.cjs.map +0 -1
- package/_cjs/services/simpledb/redisdb.cjs +0 -135
- package/_cjs/services/simpledb/redisdb.cjs.map +0 -1
- package/_cjs/services/simpledb/shared.cjs +0 -79
- package/_cjs/services/simpledb/shared.cjs.map +0 -1
- package/_cjs/services/simpledb/simpledb.cjs +0 -85
- package/_cjs/services/simpledb/simpledb.cjs.map +0 -1
- package/dist/_global.d.ts +0 -10
- package/dist/_global.d.ts.map +0 -1
- package/dist/_global.ext.d.ts +0 -34
- package/dist/_global.ext.d.ts.map +0 -1
- package/dist/_global.ext.js +0 -6
- package/dist/_global.js +0 -12
- package/dist/_global.schema.d.ts +0 -6
- package/dist/_global.schema.d.ts.map +0 -1
- package/dist/_global.schema.js +0 -9
- package/dist/api/defaultErrorHandler.d.ts +0 -6
- package/dist/api/defaultErrorHandler.d.ts.map +0 -1
- package/dist/api/defaultErrorHandler.js +0 -34
- package/dist/api/express/schema/jwt.d.ts +0 -6
- package/dist/api/express/schema/jwt.d.ts.map +0 -1
- package/dist/api/express/schema/jwt.js +0 -11
- package/dist/api/express/schema/routing.d.ts.map +0 -1
- package/dist/api/express/schema/routing.js +0 -10
- package/dist/api/http.d.ts +0 -16
- package/dist/api/http.d.ts.map +0 -1
- package/dist/api/http.js +0 -12
- package/dist/services/Store/Redis.d.ts +0 -6
- package/dist/services/Store/Redis.d.ts.map +0 -1
- package/dist/services/Store/Redis.js +0 -76
- package/dist/services/simpledb/cosmosdb.d.ts +0 -14
- package/dist/services/simpledb/cosmosdb.d.ts.map +0 -1
- package/dist/services/simpledb/cosmosdb.js +0 -103
- package/dist/services/simpledb/diskdb.d.ts +0 -12
- package/dist/services/simpledb/diskdb.d.ts.map +0 -1
- package/dist/services/simpledb/diskdb.js +0 -109
- package/dist/services/simpledb/index.d.ts +0 -7
- package/dist/services/simpledb/index.d.ts.map +0 -1
- package/dist/services/simpledb/index.js +0 -7
- package/dist/services/simpledb/memdb.d.ts +0 -11
- package/dist/services/simpledb/memdb.d.ts.map +0 -1
- package/dist/services/simpledb/memdb.js +0 -58
- package/dist/services/simpledb/mongodb.d.ts +0 -13
- package/dist/services/simpledb/mongodb.d.ts.map +0 -1
- package/dist/services/simpledb/mongodb.js +0 -68
- package/dist/services/simpledb/redisdb.d.ts +0 -35
- package/dist/services/simpledb/redisdb.d.ts.map +0 -1
- package/dist/services/simpledb/redisdb.js +0 -126
- package/dist/services/simpledb/shared.d.ts +0 -87
- package/dist/services/simpledb/shared.d.ts.map +0 -1
- package/dist/services/simpledb/shared.js +0 -52
- package/dist/services/simpledb/simpledb.d.ts +0 -23
- package/dist/services/simpledb/simpledb.d.ts.map +0 -1
- package/dist/services/simpledb/simpledb.js +0 -69
- package/src/_global.ext.ts +0 -36
- package/src/_global.schema.ts +0 -10
- package/src/_global.ts +0 -14
- package/src/api/defaultErrorHandler.ts +0 -59
- package/src/api/express/makeJsonSchema.test.ts.bak +0 -76
- package/src/api/express/makeJsonSchema.ts.bak +0 -166
- package/src/api/express/makeOpenApiSpecs.ts.bak +0 -62
- package/src/api/http.ts +0 -26
- package/tsplus.config.json +0 -9
- /package/src/services/simpledb/{index.ts → index.ts.bak} +0 -0
|
@@ -1,7 +1,5 @@
|
|
|
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";
|
|
4
1
|
import { reportError } from "@effect-app/infra/errorReporter";
|
|
2
|
+
import { Cause, Effect, Exit } from "effect-app";
|
|
5
3
|
const reportQueueError_ = reportError("Queue");
|
|
6
4
|
export const reportQueueError = (cause, extras) => reportQueueError_(cause, extras);
|
|
7
5
|
/**
|
|
@@ -14,22 +12,24 @@ export const reportQueueError = (cause, extras) => reportQueueError_(cause, extr
|
|
|
14
12
|
* @tsplus getter effect/io/Effect forkDaemonReportQueue
|
|
15
13
|
*/
|
|
16
14
|
export function forkDaemonReportQueue(self) {
|
|
17
|
-
return
|
|
15
|
+
return self.pipe(Effect.tapErrorCause(reportNonInterruptedFailureCause({})), Effect.fork, Effect.daemonChildren);
|
|
18
16
|
}
|
|
19
17
|
export const reportFatalQueueError = reportError("FatalQueue");
|
|
20
18
|
export function reportNonInterruptedFailure(context) {
|
|
21
19
|
const report = reportNonInterruptedFailureCause(context);
|
|
22
|
-
return (inp) =>
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
20
|
+
return (inp) => inp.pipe(Effect
|
|
21
|
+
.exit, Effect
|
|
22
|
+
.flatMap((result) => Exit.match(result, {
|
|
23
|
+
onFailure: (cause) => Effect.map(report(cause), () => result),
|
|
24
|
+
onSuccess: () => Effect.sync(() => result)
|
|
25
|
+
})));
|
|
26
26
|
}
|
|
27
27
|
export function reportNonInterruptedFailureCause(context) {
|
|
28
28
|
return (cause) => {
|
|
29
|
-
if (
|
|
30
|
-
return
|
|
29
|
+
if (Cause.isInterrupted(cause)) {
|
|
30
|
+
return Effect.failCause(cause);
|
|
31
31
|
}
|
|
32
32
|
return reportQueueError(cause, context);
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL1F1ZXVlTWFrZXIvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM3RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFaEQsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUE7QUFFOUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBSSxLQUFlLEVBQUUsTUFBNEMsRUFBRSxFQUFFLENBQ25HLGlCQUFpQixDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQTtBQUVsQzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBVSxJQUFxQjtJQUNsRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQ0FBZ0MsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBQ2xILENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQzlDLFlBQVksQ0FDYixDQUFBO0FBRUQsTUFBTSxVQUFVLDJCQUEyQixDQUFDLE9BQWlDO0lBQzNFLE1BQU0sTUFBTSxHQUFHLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hELE9BQU8sQ0FBVSxHQUFvQixFQUFnQyxFQUFFLENBQ3JFLEdBQUcsQ0FBQyxJQUFJLENBQ04sTUFBTTtTQUNILElBQUksRUFDUCxNQUFNO1NBQ0gsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7UUFDakIsU0FBUyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDN0QsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDO0tBQzNDLENBQUMsQ0FDSCxDQUNKLENBQUE7QUFDTCxDQUFDO0FBRUQsTUFBTSxVQUFVLGdDQUFnQyxDQUFDLE9BQWlDO0lBQ2hGLE9BQU8sQ0FBSSxLQUFlLEVBQWdCLEVBQUU7UUFDMUMsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDL0IsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQXFCLENBQUMsQ0FBQTtRQUNoRCxDQUFDO1FBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDekMsQ0FBQyxDQUFBO0FBQ0gsQ0FBQyJ9
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
import { StringId } from "effect-app/schema";
|
|
2
|
-
import { Effect } from "effect/Effect";
|
|
3
1
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
4
2
|
import { Tracer } from "effect";
|
|
5
|
-
import
|
|
3
|
+
import { Effect, Fiber, S } from "effect-app";
|
|
6
4
|
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
7
5
|
/**
|
|
8
6
|
* @tsplus static QueueMaker.Ops makeMem
|
|
9
|
-
* @tsplus location "@effect-app/infra/services/QueueMaker/memQueue"
|
|
10
7
|
*/
|
|
11
8
|
export declare function makeMemQueue<Evt extends {
|
|
12
|
-
id: StringId;
|
|
9
|
+
id: S.StringId;
|
|
13
10
|
_tag: string;
|
|
14
11
|
}, DrainEvt extends {
|
|
15
|
-
id: StringId;
|
|
12
|
+
id: S.StringId;
|
|
16
13
|
_tag: string;
|
|
17
|
-
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>):
|
|
18
|
-
publish: (messages_0: Evt, ...messages_1: Evt[]) =>
|
|
19
|
-
makeDrain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>) =>
|
|
14
|
+
}, EvtE, DrainEvtE>(queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
15
|
+
publish: (messages_0: Evt, ...messages_1: Evt[]) => Effect.Effect<Fiber.RuntimeFiber<void[], never>, never, never>;
|
|
16
|
+
makeDrain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>) => Effect.Effect<Fiber.RuntimeFiber<never, never>, never, import("effect/Scope").Scope | RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>>;
|
|
20
17
|
}, never, RequestContextContainer | MemQueue>;
|
|
21
18
|
//# sourceMappingURL=memQueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memQueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/memQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAA;AAG9D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAQ,CAAC,EAAE,MAAM,YAAY,CAAA;AAInD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAIvE;;GAEG;AACH,wBAAgB,YAAY,CAC1B,GAAG,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC5C,QAAQ,SAAS;IAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EACjD,IAAI,EACJ,SAAS,EAET,SAAS,EAAE,MAAM,EACjB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;;kDAmClB,QAAQ;8CAwDjC"}
|
|
@@ -1,72 +1,70 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "effect-app/schema";
|
|
2
|
-
import * as tsplus_module_2 from "@effect/schema/Schema";
|
|
3
|
-
import * as tsplus_module_3 from "@effect-app/core/Function";
|
|
4
|
-
import * as tsplus_module_4 from "effect/Effect";
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/infra/services/QueueMaker/errors";
|
|
6
|
-
import * as tsplus_module_6 from "@effect-app/core/utils";
|
|
7
|
-
import * as tsplus_module_7 from "@effect-app/infra/api/setupRequest";
|
|
8
|
-
import * as tsplus_module_8 from "effect/Fiber";
|
|
9
1
|
import { MemQueue } from "@effect-app/infra-adapters/memQueue";
|
|
10
2
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
3
|
+
import { NonEmptyString255, struct } from "@effect-app/schema";
|
|
11
4
|
import { Tracer } from "effect";
|
|
5
|
+
import { Effect, Fiber, flow, S } from "effect-app";
|
|
12
6
|
import { RequestId } from "effect-app/ids";
|
|
7
|
+
import { pretty } from "effect-app/utils";
|
|
8
|
+
import { setupRequestContext } from "../../api/setupRequest.js";
|
|
13
9
|
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
14
|
-
import { reportNonInterruptedFailure } from "./errors.js";
|
|
10
|
+
import { forkDaemonReportQueue, reportNonInterruptedFailure } from "./errors.js";
|
|
15
11
|
import { QueueMeta } from "./service.js";
|
|
16
12
|
/**
|
|
17
13
|
* @tsplus static QueueMaker.Ops makeMem
|
|
18
14
|
*/
|
|
19
15
|
export function makeMemQueue(queueName, queueDrainName, schema, drainSchema) {
|
|
20
|
-
return
|
|
16
|
+
return Effect.gen(function* ($) {
|
|
21
17
|
const mem = yield* $(MemQueue);
|
|
22
18
|
const q = yield* $(mem.getOrCreateQueue(queueName));
|
|
23
19
|
const qDrain = yield* $(mem.getOrCreateQueue(queueDrainName));
|
|
24
20
|
const rcc = yield* $(RequestContextContainer);
|
|
25
|
-
const wireSchema =
|
|
26
|
-
const drainW =
|
|
27
|
-
const parseDrain =
|
|
21
|
+
const wireSchema = struct({ body: schema, meta: QueueMeta });
|
|
22
|
+
const drainW = struct({ body: drainSchema, meta: QueueMeta });
|
|
23
|
+
const parseDrain = flow(S.decodeUnknown(drainW), Effect.orDie);
|
|
28
24
|
return {
|
|
29
|
-
publish: (...messages) =>
|
|
25
|
+
publish: (...messages) => Effect.gen(function* ($) {
|
|
30
26
|
const requestContext = yield* $(rcc.requestContext);
|
|
31
|
-
const currentSpan = yield* $(
|
|
27
|
+
const currentSpan = yield* $(Effect.currentSpan.pipe(Effect.orDie));
|
|
32
28
|
const span = Tracer.externalSpan(currentSpan);
|
|
33
|
-
return yield* $(
|
|
34
|
-
.
|
|
29
|
+
return yield* $(Effect
|
|
30
|
+
.forEach(messages, (m) =>
|
|
35
31
|
// we JSON encode, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
36
|
-
|
|
37
|
-
.
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
.
|
|
41
|
-
.
|
|
32
|
+
S.encode(wireSchema)({ body: m, meta: { requestContext, span } }).pipe(Effect.orDie, Effect
|
|
33
|
+
.andThen(JSON.stringify),
|
|
34
|
+
// .tap((msg) => info("Publishing Mem Message: " + utils.inspect(msg)))
|
|
35
|
+
Effect.flatMap((_) => q.offer(_)), Effect
|
|
36
|
+
.asUnit))
|
|
37
|
+
.pipe(forkDaemonReportQueue));
|
|
42
38
|
}),
|
|
43
|
-
makeDrain: (handleEvent) =>
|
|
39
|
+
makeDrain: (handleEvent) => Effect.gen(function* ($) {
|
|
44
40
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "MemQueue.drain." + queueDrainName });
|
|
45
41
|
const processMessage = (msg) =>
|
|
46
42
|
// we JSON parse, because that is what the wire also does, and it reveals holes in e.g unknown encoders (Date->String)
|
|
47
|
-
|
|
48
|
-
.
|
|
49
|
-
.
|
|
50
|
-
.
|
|
51
|
-
.
|
|
52
|
-
.
|
|
43
|
+
Effect
|
|
44
|
+
.sync(() => JSON.parse(msg))
|
|
45
|
+
.pipe(Effect.flatMap(parseDrain), Effect
|
|
46
|
+
.orDie, Effect
|
|
47
|
+
.flatMap(({ body, meta }) => Effect
|
|
48
|
+
.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
49
|
+
.pipe(Effect.annotateLogs({ body: pretty(body), meta: pretty(meta) }), Effect.zipRight(handleEvent(body)), silenceAndReportError, (_) => setupRequestContext(_, RequestContext.inherit(meta.requestContext, {
|
|
53
50
|
id: RequestId(body.id),
|
|
54
51
|
locale: "en",
|
|
55
|
-
name:
|
|
56
|
-
})),
|
|
52
|
+
name: NonEmptyString255(body._tag)
|
|
53
|
+
})), Effect
|
|
54
|
+
.withSpan("queue.drain", {
|
|
57
55
|
attributes: { "queue.name": queueDrainName },
|
|
58
56
|
parent: meta.span
|
|
59
57
|
? Tracer.externalSpan(meta.span)
|
|
60
58
|
: undefined
|
|
61
|
-
}));
|
|
62
|
-
return yield* $(
|
|
59
|
+
}))));
|
|
60
|
+
return yield* $(qDrain
|
|
63
61
|
.take
|
|
64
|
-
.flatMap((x) =>
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
.pipe(Effect.flatMap((x) => processMessage(x).pipe(Effect.uninterruptible, Effect.fork, Effect.flatMap(Fiber.join))),
|
|
63
|
+
// TODO: normally a failed item would be returned to the queue and retried up to X times.
|
|
64
|
+
// .flatMap(_ => _._tag === "Failure" && !isInterrupted ? qDrain.offer(x) : Effect.unit) // TODO: retry count tracking and max retries.
|
|
65
|
+
silenceAndReportError, Effect.forever, Effect.forkScoped));
|
|
68
66
|
})
|
|
69
67
|
};
|
|
70
68
|
});
|
|
71
69
|
}
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtUXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvUXVldWVNYWtlci9tZW1RdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFBO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDaEYsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQU0xQixTQUFpQixFQUNqQixjQUFzQixFQUN0QixNQUEyQixFQUMzQixXQUEwQztJQUUxQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUMzQixNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDOUIsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcs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
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { StringId } from "effect-app/schema";
|
|
2
|
-
import { Effect } from "effect/Effect";
|
|
3
1
|
import { Tracer } from "effect";
|
|
4
|
-
import
|
|
2
|
+
import { Effect, Layer, S } from "effect-app";
|
|
3
|
+
import type { StringId } from "effect-app/schema";
|
|
5
4
|
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
6
5
|
/**
|
|
7
6
|
* @tsplus static QueueMaker.Ops makeServiceBus
|
|
8
|
-
* @tsplus location "@effect-app/infra/services/QueueMaker/sbqueue"
|
|
9
7
|
*/
|
|
10
8
|
export declare function makeServiceBusQueue<Evt extends {
|
|
11
9
|
id: StringId;
|
|
@@ -13,13 +11,12 @@ export declare function makeServiceBusQueue<Evt extends {
|
|
|
13
11
|
}, DrainEvt extends {
|
|
14
12
|
id: StringId;
|
|
15
13
|
_tag: string;
|
|
16
|
-
}, EvtE, DrainEvtE>(_queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>):
|
|
17
|
-
makeDrain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>) =>
|
|
18
|
-
publish: (messages_0: Evt, ...messages_1: Evt[]) =>
|
|
14
|
+
}, EvtE, DrainEvtE>(_queueName: string, queueDrainName: string, schema: S.Schema<Evt, EvtE>, drainSchema: S.Schema<DrainEvt, DrainEvtE>): Effect.Effect<{
|
|
15
|
+
makeDrain: <DrainE, DrainR>(handleEvent: (ks: DrainEvt) => Effect<void, DrainE, DrainR>) => Effect.Effect<void, never, import("effect/Scope").Scope | RequestContextContainer | import("../Store/ContextMapContainer.js").ContextMapContainer | Exclude<Exclude<Exclude<Exclude<DrainR, Tracer.ParentSpan>, never>, Tracer.ParentSpan>, import("@azure/service-bus").ServiceBusReceiver>>;
|
|
16
|
+
publish: (messages_0: Evt, ...messages_1: Evt[]) => Effect.Effect<import("effect/Fiber").RuntimeFiber<void, never>, never, never>;
|
|
19
17
|
}, never, RequestContextContainer | import("@azure/service-bus").ServiceBusReceiver | import("@azure/service-bus").ServiceBusSender>;
|
|
20
18
|
/**
|
|
21
19
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
22
|
-
* @tsplus location "@effect-app/infra/services/QueueMaker/sbqueue"
|
|
23
20
|
*/
|
|
24
|
-
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string):
|
|
21
|
+
export declare function makeServiceBusLayers(url: string, queueName: string, queueDrainName: string): Layer.Layer<import("@azure/service-bus").ServiceBusReceiver | import("@azure/service-bus").ServiceBusSender, never, never>;
|
|
25
22
|
//# sourceMappingURL=sbqueue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sbqueue.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/sbqueue.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,MAAM,EAAQ,KAAK,EAAE,CAAC,EAAE,MAAM,YAAY,CAAA;AAEnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAIjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAIvE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,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,IAAI,EACJ,SAAS,EAET,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAC3B,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC;kDAmBlB,QAAQ;;qIAmFjC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,8HAE1F"}
|
|
@@ -1,21 +1,14 @@
|
|
|
1
|
-
import * as tsplus_module_1 from "@effect/schema/Schema";
|
|
2
|
-
import * as tsplus_module_2 from "@effect-app/core/Function";
|
|
3
|
-
import * as tsplus_module_3 from "@effect-app/core/Tag";
|
|
4
|
-
import * as tsplus_module_4 from "effect-app/schema";
|
|
5
|
-
import * as tsplus_module_5 from "@effect-app/core/utils";
|
|
6
|
-
import * as tsplus_module_6 from "effect/Effect";
|
|
7
|
-
import * as tsplus_module_7 from "@effect-app/infra/api/setupRequest";
|
|
8
|
-
import * as tsplus_module_8 from "@effect/schema/Parser";
|
|
9
|
-
import * as tsplus_module_9 from "@effect-app/infra/services/QueueMaker/errors";
|
|
10
|
-
import * as tsplus_module_10 from "effect/Layer";
|
|
11
1
|
import { LiveReceiver, LiveSender, LiveServiceBusClient, Receiver, Sender, subscribe } from "@effect-app/infra-adapters/ServiceBus";
|
|
12
2
|
import { captureException } from "@effect-app/infra/errorReporter";
|
|
13
3
|
import { RequestContext } from "@effect-app/infra/RequestContext";
|
|
14
4
|
import { Tracer } from "effect";
|
|
5
|
+
import { Effect, flow, Layer, S } from "effect-app";
|
|
15
6
|
import { RequestId } from "effect-app/ids";
|
|
16
|
-
import { struct } from "effect-app/schema";
|
|
7
|
+
import { NonEmptyString255, struct } from "effect-app/schema";
|
|
8
|
+
import { pretty } from "effect-app/utils";
|
|
9
|
+
import { setupRequestContext } from "../../api/setupRequest.js";
|
|
17
10
|
import { RequestContextContainer } from "../RequestContextContainer.js";
|
|
18
|
-
import { reportNonInterruptedFailure, reportNonInterruptedFailureCause } from "./errors.js";
|
|
11
|
+
import { forkDaemonReportQueue, reportNonInterruptedFailure, reportNonInterruptedFailureCause } from "./errors.js";
|
|
19
12
|
import { QueueMeta } from "./service.js";
|
|
20
13
|
/**
|
|
21
14
|
* @tsplus static QueueMaker.Ops makeServiceBus
|
|
@@ -26,52 +19,61 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
|
|
|
26
19
|
meta: QueueMeta
|
|
27
20
|
});
|
|
28
21
|
const drainW = struct({ body: drainSchema, meta: QueueMeta });
|
|
29
|
-
const parseDrain =
|
|
30
|
-
return
|
|
22
|
+
const parseDrain = flow(S.decodeUnknown(drainW), Effect.orDie);
|
|
23
|
+
return Effect.gen(function* ($) {
|
|
31
24
|
const s = yield* $(Sender);
|
|
32
25
|
const receiver = yield* $(Receiver);
|
|
33
|
-
const receiverLayer =
|
|
26
|
+
const receiverLayer = Layer.succeed(Receiver, receiver);
|
|
34
27
|
const silenceAndReportError = reportNonInterruptedFailure({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
35
28
|
const reportError = reportNonInterruptedFailureCause({ name: "ServiceBusQueue.drain." + queueDrainName });
|
|
36
29
|
const rcc = yield* $(RequestContextContainer);
|
|
37
30
|
return {
|
|
38
|
-
makeDrain: (handleEvent) =>
|
|
31
|
+
makeDrain: (handleEvent) => Effect.gen(function* ($) {
|
|
39
32
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
33
|
function processMessage(messageBody) {
|
|
41
|
-
return
|
|
42
|
-
.
|
|
43
|
-
.orDie
|
|
44
|
-
.flatMap(({ body, meta }) =>
|
|
45
|
-
.
|
|
46
|
-
.
|
|
34
|
+
return Effect
|
|
35
|
+
.sync(() => JSON.parse(messageBody))
|
|
36
|
+
.pipe(Effect.flatMap((x) => parseDrain(x)), Effect.orDie, Effect
|
|
37
|
+
.flatMap(({ body, meta }) => Effect
|
|
38
|
+
.logDebug(`$$ [${queueDrainName}] Processing incoming message`)
|
|
39
|
+
.pipe(Effect.annotateLogs({
|
|
40
|
+
body: pretty(body),
|
|
41
|
+
meta: pretty(meta)
|
|
42
|
+
}), Effect
|
|
43
|
+
.zipRight(handleEvent(body)), Effect
|
|
44
|
+
.orDie)
|
|
47
45
|
// we silenceAndReportError here, so that the error is reported, and moves into the Exit.
|
|
48
|
-
.pipe(silenceAndReportError), RequestContext.inherit(meta.requestContext, {
|
|
46
|
+
.pipe(silenceAndReportError, (_) => setupRequestContext(_, RequestContext.inherit(meta.requestContext, {
|
|
49
47
|
id: RequestId(body.id),
|
|
50
48
|
locale: "en",
|
|
51
|
-
name:
|
|
52
|
-
})),
|
|
49
|
+
name: NonEmptyString255(body._tag)
|
|
50
|
+
})), Effect
|
|
51
|
+
.withSpan("queue.drain", {
|
|
53
52
|
attributes: { "queue.name": queueDrainName },
|
|
54
53
|
parent: meta.span
|
|
55
54
|
? Tracer.externalSpan(meta.span)
|
|
56
55
|
: undefined
|
|
57
|
-
}))
|
|
58
|
-
|
|
59
|
-
|
|
56
|
+
}))), Effect
|
|
57
|
+
// we reportError here, so that we report the error only, and keep flowing
|
|
58
|
+
.tapErrorCause(reportError));
|
|
60
59
|
}
|
|
61
|
-
return yield* $(
|
|
62
|
-
processMessage: (x) =>
|
|
63
|
-
processError: (err) =>
|
|
64
|
-
})
|
|
60
|
+
return yield* $(subscribe({
|
|
61
|
+
processMessage: (x) => processMessage(x.body).pipe(Effect.uninterruptible),
|
|
62
|
+
processError: (err) => Effect.sync(() => captureException(err.error))
|
|
63
|
+
})
|
|
64
|
+
.pipe(Effect.provide(receiverLayer)));
|
|
65
65
|
}),
|
|
66
|
-
publish: (...messages) =>
|
|
66
|
+
publish: (...messages) => Effect.gen(function* ($) {
|
|
67
67
|
const requestContext = yield* $(rcc.requestContext);
|
|
68
|
-
const currentSpan = yield* $(
|
|
68
|
+
const currentSpan = yield* $(Effect.currentSpan.pipe(Effect.orDie));
|
|
69
69
|
const span = Tracer.externalSpan(currentSpan);
|
|
70
|
-
return yield* $(
|
|
71
|
-
|
|
70
|
+
return yield* $(Effect
|
|
71
|
+
.promise(() => s.sendMessages(messages.map((m) => ({
|
|
72
|
+
body: JSON.stringify(S.encodeSync(wireSchema)({ body: m, meta: { requestContext, span } })),
|
|
72
73
|
messageId: m.id, /* correllationid: requestId */
|
|
73
74
|
contentType: "application/json"
|
|
74
|
-
}))))
|
|
75
|
+
}))))
|
|
76
|
+
.pipe(forkDaemonReportQueue));
|
|
75
77
|
})
|
|
76
78
|
};
|
|
77
79
|
});
|
|
@@ -80,6 +82,6 @@ export function makeServiceBusQueue(_queueName, queueDrainName, schema, drainSch
|
|
|
80
82
|
* @tsplus static QueueMaker.Ops makeServiceBusLayers
|
|
81
83
|
*/
|
|
82
84
|
export function makeServiceBusLayers(url, queueName, queueDrainName) {
|
|
83
|
-
return
|
|
85
|
+
return Layer.merge(LiveReceiver(queueDrainName), LiveSender(queueName)).pipe(Layer.provide(LiveServiceBusClient(url)));
|
|
84
86
|
}
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2JxdWV1ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL3NicXVldWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFlBQVksRUFDWixVQUFVLEVBQ1Ysb0JBQW9CLEVBQ3BCLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sdUNBQXVDLENBQUE7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUE7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxRQUFRLENBQUE7QUFDL0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFFMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDbEgsT0FBTyxFQUFrQixTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFFeEQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBTWpDLFVBQWtCLEVBQ2xCLGNBQXNCLEVBQ3RCLE1BQTJCLEVBQzNCLFdBQTBDO0lBRTFDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUN4QixJQUFJLEVBQUUsTUFBTTtR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
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { Effect } from "effect
|
|
2
|
-
import { Scope } from "effect/Scope";
|
|
3
|
-
import { NonEmptyReadonlyArray } from "effect/ReadonlyArray";
|
|
1
|
+
import { type Effect, type NonEmptyReadonlyArray, S, type Scope } from "effect-app";
|
|
4
2
|
import { RequestContext } from "../../RequestContext.js";
|
|
5
3
|
import type { RequestContextContainer } from "../RequestContextContainer.js";
|
|
6
4
|
import type { ContextMapContainer } from "../Store/ContextMapContainer.js";
|
|
@@ -14,7 +12,7 @@ export interface QueueBase<Evt, DrainEvt> {
|
|
|
14
12
|
export interface QueueMakerOps {
|
|
15
13
|
}
|
|
16
14
|
export declare const QueueMaker: QueueMakerOps;
|
|
17
|
-
export declare const QueueMeta:
|
|
15
|
+
export declare const QueueMeta: S.Schema<{
|
|
18
16
|
readonly requestContext: RequestContext;
|
|
19
17
|
readonly span?: {
|
|
20
18
|
readonly spanId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../../src/services/QueueMaker/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,qBAAqB,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,MAAM,YAAY,CAAA;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAA;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAE1E,MAAM,WAAW,SAAS,CAAC,GAAG,EAAE,QAAQ;IACtC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,EACxB,eAAe,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,KAC5D,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,uBAAuB,GAAG,mBAAmB,GAAG,MAAM,CAAC,CAAA;IACxF,OAAO,EAAE,CACP,GAAG,QAAQ,EAAE,qBAAqB,CAAC,GAAG,CAAC,KACpC,MAAM,CAAC,IAAI,CAAC,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;CAAG;AACjC,eAAO,MAAM,UAAU,EAAE,aAAkB,CAAA;AAE3C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAOpB,CAAA"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { struct } from "@effect-app/schema";
|
|
2
|
+
import { S } from "effect-app";
|
|
3
3
|
import { RequestContext } from "../../RequestContext.js";
|
|
4
4
|
export const QueueMaker = {};
|
|
5
|
-
export const QueueMeta =
|
|
5
|
+
export const QueueMeta = struct({
|
|
6
6
|
requestContext: RequestContext,
|
|
7
|
-
span:
|
|
8
|
-
spanId:
|
|
9
|
-
traceId:
|
|
10
|
-
sampled:
|
|
7
|
+
span: S.optional(struct({
|
|
8
|
+
spanId: S.string,
|
|
9
|
+
traceId: S.string,
|
|
10
|
+
sampled: S.optional(S.boolean)
|
|
11
11
|
}))
|
|
12
12
|
});
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zZXJ2aWNlcy9RdWV1ZU1ha2VyL3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzNDLE9BQU8sRUFBMkMsQ0FBQyxFQUFjLE1BQU0sWUFBWSxDQUFBO0FBQ25GLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQTtBQWlCeEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFrQixFQUFFLENBQUE7QUFFM0MsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQztJQUM5QixjQUFjLEVBQUUsY0FBYztJQUM5QixJQUFJLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDdEIsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNO1FBQ2hCLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTTtRQUNqQixPQUFPLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0tBQy9CLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQSJ9
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Effect } from "effect
|
|
3
|
-
import {
|
|
4
|
-
import type { FixEnv, PureLogT } from "effect-app/Pure";
|
|
1
|
+
import type { NonEmptyReadonlyArray } from "effect-app";
|
|
2
|
+
import { Effect } from "effect-app";
|
|
3
|
+
import type { FixEnv, Pure, PureEnvEnv, PureLogT } from "effect-app/Pure";
|
|
5
4
|
export interface PureDSL<S, S2, W> {
|
|
6
5
|
get: Pure<never, S, S, never, never, S>;
|
|
7
6
|
set: (s: S2) => Pure<never, S2, S2, never, never, void>;
|
|
@@ -29,16 +28,15 @@ export interface OneDSLExt<T, Evt> {
|
|
|
29
28
|
}
|
|
30
29
|
export declare function makeOneDSL<T, Evt>(): OneDSL<T, Evt>;
|
|
31
30
|
export declare function makeDSL<S1, S2, Evt>(): (<R, A, E>(pure: (dsl: PureDSL<S1, S2, Evt>) => Effect<A, E, R>) => Effect<A, E, FixEnv<R, Evt, S1, S2>>) & {
|
|
32
|
-
modify: <R_1, E_1, A_1>(pure: (items: S1, dsl: PureDSL<S1, S2, Evt>) =>
|
|
33
|
-
update: <R_2, E_2>(pure: (items: S1, log: (...evt: Evt[]) => PureLogT<Evt>) =>
|
|
34
|
-
updateWith: (upd: (item: S1) => S2) =>
|
|
31
|
+
modify: <R_1, E_1, A_1>(pure: (items: S1, dsl: PureDSL<S1, S2, Evt>) => Effect<A_1, E_1, R_1>) => Effect<A_1, E_1, FixEnv<R_1, Evt, S1, S2>>;
|
|
32
|
+
update: <R_2, E_2>(pure: (items: S1, log: (...evt: Evt[]) => PureLogT<Evt>) => Effect<S2, E_2, R_2>) => Effect<S2, E_2, FixEnv<R_2, Evt, S1, S2>>;
|
|
33
|
+
updateWith: (upd: (item: S1) => S2) => Effect<S2, never, PureEnvEnv<Evt, S1, S2>>;
|
|
35
34
|
};
|
|
36
35
|
export interface DSLExt<S1, S2, Evt> extends ReturnType<typeof makeDSL<S1, S2, Evt>> {
|
|
37
36
|
}
|
|
38
|
-
export declare function ifAny<T, R, E, A>(fn: (items: NonEmptyReadonlyArray<T>) => Effect<A, E, R>): (items: Iterable<T>) =>
|
|
37
|
+
export declare function ifAny<T, R, E, A>(fn: (items: NonEmptyReadonlyArray<T>) => Effect<A, E, R>): (items: Iterable<T>) => Effect.Effect<import("effect/Option").Option<A>, E, R>;
|
|
39
38
|
/**
|
|
40
39
|
* @tsplus fluent Iterable ifAny
|
|
41
|
-
* @tsplus location "@effect-app/infra/services/Repository/dsl"
|
|
42
40
|
*/
|
|
43
|
-
export declare function ifAny_<T, R, E, A>(items: Iterable<T>, fn: (items: NonEmptyReadonlyArray<T>) => Effect<A, E, R>):
|
|
41
|
+
export declare function ifAny_<T, R, E, A>(items: Iterable<T>, fn: (items: NonEmptyReadonlyArray<T>) => Effect<A, E, R>): Effect.Effect<import("effect/Option").Option<A>, E, R>;
|
|
44
42
|
//# sourceMappingURL=dsl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../../src/services/Repository/dsl.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dsl.d.ts","sourceRoot":"","sources":["../../../src/services/Repository/dsl.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import * as tsplus_module_4 from "@effect-app/core/Effect";
|
|
1
|
+
import { toNonEmptyArray } from "@effect-app/core/Array";
|
|
2
|
+
import { Effect } from "effect-app";
|
|
3
|
+
import { get, logMany, set } from "effect-app/Pure";
|
|
5
4
|
export const AnyPureDSL = {
|
|
6
|
-
get:
|
|
7
|
-
set:
|
|
8
|
-
log: (...evt) =>
|
|
5
|
+
get: get(),
|
|
6
|
+
set: set,
|
|
7
|
+
log: (...evt) => logMany(evt)
|
|
9
8
|
};
|
|
10
9
|
const anyDSL = makeDSL();
|
|
11
10
|
export function makeAllDSL() {
|
|
@@ -18,16 +17,16 @@ export function makeOneDSL() {
|
|
|
18
17
|
export function makeDSL() {
|
|
19
18
|
const dsl = AnyPureDSL;
|
|
20
19
|
function modify(pure) {
|
|
21
|
-
return dsl.get.flatMap((items) => pure(items, dsl));
|
|
20
|
+
return dsl.get.pipe(Effect.flatMap((items) => pure(items, dsl)));
|
|
22
21
|
}
|
|
23
22
|
function update(pure) {
|
|
24
|
-
return dsl.get.flatMap((items) => pure(items, dsl.log).tap(dsl.set));
|
|
23
|
+
return dsl.get.pipe(Effect.flatMap((items) => pure(items, dsl.log).pipe(Effect.tap(dsl.set))));
|
|
25
24
|
}
|
|
26
25
|
function withDSL(pure) {
|
|
27
26
|
return pure(AnyPureDSL);
|
|
28
27
|
}
|
|
29
28
|
function updateWith(upd) {
|
|
30
|
-
return update((_) =>
|
|
29
|
+
return update((_) => Effect.sync(() => upd(_)));
|
|
31
30
|
}
|
|
32
31
|
return Object.assign(withDSL, {
|
|
33
32
|
modify,
|
|
@@ -36,12 +35,12 @@ export function makeDSL() {
|
|
|
36
35
|
});
|
|
37
36
|
}
|
|
38
37
|
export function ifAny(fn) {
|
|
39
|
-
return (items) =>
|
|
38
|
+
return (items) => Effect.flatMapOption(Effect.sync(() => toNonEmptyArray([...items])), fn);
|
|
40
39
|
}
|
|
41
40
|
/**
|
|
42
41
|
* @tsplus fluent Iterable ifAny
|
|
43
42
|
*/
|
|
44
43
|
export function ifAny_(items, fn) {
|
|
45
|
-
return
|
|
44
|
+
return Effect.flatMapOption(Effect.sync(() => toNonEmptyArray([...items])), fn);
|
|
46
45
|
}
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHNsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL1JlcG9zaXRvcnkvZHNsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQTtBQUV4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ25DLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBU25ELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBMkI7SUFDaEQsR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUNWLEdBQUcsRUFBRSxHQUFVO0lBQ2YsR0FBRyxFQUFFLENBQUMsR0FBRyxHQUFVLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7Q0FDckMsQ0FBQTtBQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBaUIsQ0FBQTtBQXVCdkMsTUFBTSxVQUFVLFVBQVU7SUFDeEIsTUFBTSxHQUFHLEdBQW1CLE1BQU0sQ0FBQTtJQUNsQyxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUM7QUF1QkQsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxNQUFNLENBQUE7QUFDZixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU87SUFDckIsTUFBTSxHQUFHLEdBQXlCLFVBQVUsQ0FBQTtJQUU1QyxTQUFTLE1BQU0sQ0FLYixJQUdvQjtRQUVwQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBUSxDQUFBO0lBQ3pFLENBQUM7SUFFRCxTQUFTLE1BQU0sQ0FJYixJQUdxQjtRQUVyQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQVEsQ0FBQTtJQUN2RyxDQUFDO0lBRUQsU0FBUyxPQUFPLENBS2QsSUFBb0Q7UUFFcEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFRLENBQUE7SUFDaEMsQ0FBQztJQUVELFNBQVMsVUFBVSxDQUFDLEdBQXFCO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDckQsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FDbEIsT0FBTyxFQUNQO1FBQ0UsTUFBTTtRQUNOLE1BQU07UUFDTixVQUFVO0tBQ1gsQ0FDRixDQUFBO0FBQ0gsQ0FBQztBQUlELE1BQU0sVUFBVSxLQUFLLENBQWEsRUFBd0Q7SUFDeEYsT0FBTyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtBQUN6RyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFhLEtBQWtCLEVBQUUsRUFBd0Q7SUFDN0csT0FBTyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7QUFDakYsQ0FBQyJ9
|