@effect-app/infra 0.24.2 → 0.25.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 +20 -0
- package/_cjs/_ext/Array.cjs +2 -3
- package/_cjs/_ext/Array.cjs.map +1 -1
- package/_cjs/api/codec.cjs +1 -1
- package/_cjs/api/codec.cjs.map +1 -1
- package/_cjs/api/defaultErrorHandler.cjs +17 -18
- package/_cjs/api/defaultErrorHandler.cjs.map +1 -1
- package/_cjs/api/express/makeJsonSchema.cjs +4 -4
- package/_cjs/api/express/makeJsonSchema.cjs.map +1 -1
- package/_cjs/api/express/makeOpenApiSpecs.cjs +2 -2
- package/_cjs/api/express/makeOpenApiSpecs.cjs.map +1 -1
- package/_cjs/api/express/schema/requestHandler.cjs +45 -45
- package/_cjs/api/express/schema/requestHandler.cjs.map +1 -1
- package/_cjs/api/express/schema/routing.cjs +19 -19
- package/_cjs/api/express/schema/routing.cjs.map +1 -1
- package/_cjs/api/reportError.cjs +2 -2
- package/_cjs/api/reportError.cjs.map +1 -1
- package/_cjs/api/routing.cjs +54 -54
- package/_cjs/api/routing.cjs.map +1 -1
- package/_cjs/api/setupRequest.cjs +2 -2
- package/_cjs/api/setupRequest.cjs.map +1 -1
- package/_cjs/api/writeDocs.cjs +6 -6
- package/_cjs/api/writeDocs.cjs.map +1 -1
- package/_cjs/errorReporter.cjs +4 -4
- package/_cjs/errorReporter.cjs.map +1 -1
- package/_cjs/instrument.cjs +1 -1
- package/_cjs/instrument.cjs.map +1 -1
- package/_cjs/rateLimit.cjs +8 -8
- package/_cjs/rateLimit.cjs.map +1 -1
- package/_cjs/services/Emailer/Sendgrid.cjs +7 -8
- 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 +10 -10
- 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 +3 -3
- package/_cjs/services/QueueMaker/errors.cjs.map +1 -1
- package/_cjs/services/QueueMaker/memQueue.cjs +10 -11
- package/_cjs/services/QueueMaker/memQueue.cjs.map +1 -1
- package/_cjs/services/QueueMaker/sbqueue.cjs +5 -5
- package/_cjs/services/QueueMaker/sbqueue.cjs.map +1 -1
- package/_cjs/services/Repository.cjs +21 -21
- package/_cjs/services/Repository.cjs.map +1 -1
- package/_cjs/services/Store/Cosmos.cjs +45 -45
- package/_cjs/services/Store/Cosmos.cjs.map +1 -1
- package/_cjs/services/Store/Disk.cjs +23 -24
- package/_cjs/services/Store/Disk.cjs.map +1 -1
- package/_cjs/services/Store/Memory.cjs +28 -28
- package/_cjs/services/Store/Memory.cjs.map +1 -1
- package/_cjs/services/Store/Redis.cjs +16 -17
- package/_cjs/services/Store/Redis.cjs.map +1 -1
- package/_cjs/services/Store/codeFilter.test.cjs +5 -5
- package/_cjs/services/Store/codeFilter.test.cjs.map +1 -1
- package/_cjs/services/Store/index.cjs +4 -4
- package/_cjs/services/Store/index.cjs.map +1 -1
- package/_cjs/services/Store/utils.cjs +4 -4
- package/_cjs/services/Store/utils.cjs.map +1 -1
- package/_cjs/services/simpledb/cosmosdb.cjs +19 -19
- package/_cjs/services/simpledb/cosmosdb.cjs.map +1 -1
- package/_cjs/services/simpledb/diskdb.cjs +18 -18
- package/_cjs/services/simpledb/diskdb.cjs.map +1 -1
- package/_cjs/services/simpledb/memdb.cjs +9 -9
- package/_cjs/services/simpledb/memdb.cjs.map +1 -1
- package/_cjs/services/simpledb/mongodb.cjs +16 -16
- package/_cjs/services/simpledb/mongodb.cjs.map +1 -1
- package/_cjs/services/simpledb/redisdb.cjs +20 -20
- package/_cjs/services/simpledb/redisdb.cjs.map +1 -1
- package/_cjs/services/simpledb/simpledb.cjs +9 -9
- package/_cjs/services/simpledb/simpledb.cjs.map +1 -1
- package/_src/RequestContext.ts +2 -2
- package/_src/rateLimit.ts +4 -4
- package/_src/services/Store/Cosmos.ts +3 -3
- package/_src/services/Store/Disk.ts +5 -5
- package/_src/services/Store/Memory.ts +5 -5
- package/_src/services/Store/Redis.ts +2 -2
- package/_src/services/Store/service.ts +1 -1
- package/dist/RequestContext.d.ts +2 -2
- package/dist/_ext/Array.js +3 -4
- package/dist/api/codec.js +2 -2
- package/dist/api/defaultErrorHandler.js +18 -18
- package/dist/api/express/makeJsonSchema.js +5 -5
- package/dist/api/express/makeOpenApiSpecs.js +2 -2
- package/dist/api/express/schema/requestHandler.js +41 -41
- package/dist/api/express/schema/routing.js +20 -20
- package/dist/api/reportError.js +4 -4
- package/dist/api/routing.js +63 -63
- package/dist/api/setupRequest.js +3 -3
- package/dist/api/writeDocs.js +7 -7
- package/dist/errorReporter.js +3 -3
- package/dist/instrument.js +2 -2
- package/dist/rateLimit.d.ts +3 -3
- package/dist/rateLimit.js +9 -9
- package/dist/services/Emailer/Sendgrid.js +8 -9
- package/dist/services/Emailer/fake.js +5 -6
- package/dist/services/Operations/live.js +12 -12
- package/dist/services/Operations/service.js +4 -4
- package/dist/services/QueueMaker/errors.js +4 -4
- package/dist/services/QueueMaker/memQueue.js +10 -10
- package/dist/services/QueueMaker/sbqueue.js +5 -5
- package/dist/services/Repository.d.ts +14 -14
- package/dist/services/Repository.js +15 -15
- package/dist/services/Store/Cosmos.d.ts +1 -1
- package/dist/services/Store/Cosmos.js +47 -47
- package/dist/services/Store/Disk.d.ts +1 -1
- package/dist/services/Store/Disk.js +26 -27
- package/dist/services/Store/Memory.d.ts +2 -2
- package/dist/services/Store/Memory.d.ts.map +1 -1
- package/dist/services/Store/Memory.js +30 -30
- package/dist/services/Store/Redis.d.ts +1 -1
- package/dist/services/Store/Redis.js +17 -18
- package/dist/services/Store/index.js +5 -5
- package/dist/services/Store/service.d.ts +1 -1
- package/dist/services/Store/service.d.ts.map +1 -1
- package/dist/services/Store/utils.js +5 -5
- package/dist/services/simpledb/cosmosdb.js +19 -19
- package/dist/services/simpledb/diskdb.js +15 -15
- package/dist/services/simpledb/memdb.js +10 -10
- package/dist/services/simpledb/mongodb.js +15 -15
- package/dist/services/simpledb/redisdb.js +17 -17
- package/dist/services/simpledb/simpledb.js +12 -12
- package/package.json +8 -8
|
@@ -22,16 +22,16 @@ export function makeFromSchema(e) {
|
|
|
22
22
|
const Res = r ? MO.extractSchema(r) : MO.Void;
|
|
23
23
|
// TODO EffectOption.fromNullable(Req.Headers).flatMapOpt(jsonSchema)
|
|
24
24
|
// TODO: use the path vs body etc serialisation also in the Client.
|
|
25
|
-
const makeReqQuerySchema = tsplus_module_2.flatMap(_ => tsplus_module_3.match(() => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(
|
|
26
|
-
const makeReqHeadersSchema = tsplus_module_2.flatMap(_ => tsplus_module_3.match(() => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(
|
|
27
|
-
const makeReqCookieSchema = tsplus_module_2.flatMap(_ => tsplus_module_3.match(() => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(
|
|
28
|
-
const makeReqPathSchema = tsplus_module_2.flatMap(_ => tsplus_module_3.match(() => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(
|
|
29
|
-
const makeReqBodySchema = tsplus_module_2.flatMap(_ => tsplus_module_3.match(() => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(
|
|
25
|
+
const makeReqQuerySchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Query)), _ => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
26
|
+
const makeReqHeadersSchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Headers)), _ => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
27
|
+
const makeReqCookieSchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Cookie)), _ => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
28
|
+
const makeReqPathSchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Path)), _ => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
29
|
+
const makeReqBodySchema = tsplus_module_2.flatMap(tsplus_module_2.sync(() => tsplus_module_3.fromNullable(Req.Body)), _ => tsplus_module_3.match(_, () => tsplus_module_2.sync(() => tsplus_module_1.none), _ => tsplus_module_2.map(jsonSchema(_), tsplus_module_3.some)));
|
|
30
30
|
// const makeReqSchema = schema(Req)
|
|
31
31
|
const makeResSchema = jsonSchema_(Res);
|
|
32
32
|
function makeParameters(inn) {
|
|
33
33
|
return (a) => {
|
|
34
|
-
return tsplus_module_3.getOrElse((
|
|
34
|
+
return tsplus_module_3.getOrElse(tsplus_module_3.map(tsplus_module_3.flatMap(a, o => (isObjectSchema(o) ? tsplus_module_3.some(o) : tsplus_module_1.none)), x => {
|
|
35
35
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
36
36
|
return Object.keys(x.properties).map(p => {
|
|
37
37
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
@@ -39,10 +39,18 @@ export function makeFromSchema(e) {
|
|
|
39
39
|
const required = Boolean(x.required?.includes(p));
|
|
40
40
|
return { name: p, in: inn, required, schema };
|
|
41
41
|
});
|
|
42
|
-
})
|
|
42
|
+
}), () => []);
|
|
43
43
|
};
|
|
44
44
|
}
|
|
45
|
-
return tsplus_module_2.map(
|
|
45
|
+
return tsplus_module_2.map(tsplus_module_2.struct({
|
|
46
|
+
req: jsonSchema(Req.Model),
|
|
47
|
+
reqQuery: makeReqQuerySchema,
|
|
48
|
+
reqHeaders: makeReqHeadersSchema,
|
|
49
|
+
reqBody: makeReqBodySchema,
|
|
50
|
+
reqPath: makeReqPathSchema,
|
|
51
|
+
reqCookie: makeReqCookieSchema,
|
|
52
|
+
res: makeResSchema
|
|
53
|
+
}), _ => {
|
|
46
54
|
// console.log("$$$ REQ", _.req)
|
|
47
55
|
const isEmpty = !e.handler.Response || e.handler.Response === MO.Void;
|
|
48
56
|
return {
|
|
@@ -58,9 +66,9 @@ export function makeFromSchema(e) {
|
|
|
58
66
|
...makeParameters("header")(_.reqHeaders),
|
|
59
67
|
...makeParameters("cookie")(_.reqCookie)
|
|
60
68
|
],
|
|
61
|
-
requestBody: tsplus_module_1.getOrUndefined(tsplus_module_3.map(schema => ({
|
|
69
|
+
requestBody: tsplus_module_1.getOrUndefined(tsplus_module_3.map(_.reqBody, schema => ({
|
|
62
70
|
content: { "application/json": { schema } }
|
|
63
|
-
}))
|
|
71
|
+
}))),
|
|
64
72
|
responses: [
|
|
65
73
|
isEmpty
|
|
66
74
|
? new Response(204, { description: "Empty" })
|
|
@@ -73,15 +81,7 @@ export function makeFromSchema(e) {
|
|
|
73
81
|
? [new Response(404, { description: "NotFoundError" })]
|
|
74
82
|
: [])
|
|
75
83
|
};
|
|
76
|
-
})
|
|
77
|
-
req: jsonSchema(Req.Model),
|
|
78
|
-
reqQuery: makeReqQuerySchema,
|
|
79
|
-
reqHeaders: makeReqHeadersSchema,
|
|
80
|
-
reqBody: makeReqBodySchema,
|
|
81
|
-
reqPath: makeReqPathSchema,
|
|
82
|
-
reqCookie: makeReqCookieSchema,
|
|
83
|
-
res: makeResSchema
|
|
84
|
-
}));
|
|
84
|
+
});
|
|
85
85
|
}
|
|
86
86
|
class Response {
|
|
87
87
|
constructor(statusCode, type // string | JSONSchema | SubSchema
|
|
@@ -90,4 +90,4 @@ class Response {
|
|
|
90
90
|
this.type = type;
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL19zcmMvYXBpL2V4cHJlc3Mvc2NoZW1hL3JvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsdURBQXVEO0FBQ3ZELE9BQU8sS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFJeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlEQUFpRCxDQUFBO0FBQ2hGLE9BQU8sS0FBSyxPQUFPLE1BQU0sMENBQTBDLENBQUE7QUFHbkUsTUFBTSxVQUFVLHFCQUFxQixDQUErQixDQUFJO0lBQ3RFLE9BQU8sQ0FBdUIsQ0FBQTtBQUNoQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QixDQUN0QyxHQUFxQjtJQUVyQixPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQTtBQUN2QyxDQUFDO0FBa0NELE1BQU0sVUFBVSxtQkFBbUIsQ0FZakMsSUFBWSxFQUNaLE1BQWMsRUFDZCxPQVVDO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBVzdDLENBQUE7QUFDSCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsQ0FBZ0U7SUFFaEUsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQTtJQUMvQixNQUFNLFVBQVUsR0FBRyxDQUFPLENBQWtCLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMvRCxNQUFNLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUE7SUFDbkUsTUFBTSxDQUFDLEdBQUcsZUFBZSxJQUFJLElBQUksQ0FBQTtJQUNqQyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMs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
|
package/dist/api/reportError.js
CHANGED
|
@@ -24,7 +24,7 @@ export const logRequestError = (cause, context) => tsplus_module_3.untraced(() =
|
|
|
24
24
|
* @tsplus getter effect/io/Effect forkDaemonReportRequest
|
|
25
25
|
*/
|
|
26
26
|
export function forkDaemonReportRequest(self) {
|
|
27
|
-
return tsplus_module_3.untraced(() => tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(reportRequestError)
|
|
27
|
+
return tsplus_module_3.untraced(() => tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(self, reportRequestError))));
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Forks the effect into a new fiber attached to the global scope. Because the
|
|
@@ -36,8 +36,8 @@ export function forkDaemonReportRequest(self) {
|
|
|
36
36
|
* @tsplus getter effect/io/Effect forkDaemonReportRequestUnexpected
|
|
37
37
|
*/
|
|
38
38
|
export function forkDaemonReportRequestUnexpected(self) {
|
|
39
|
-
return tsplus_module_3.untraced(() => tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(cause => tsplus_module_4.isInterruptedOnly(cause) || tsplus_module_4.isDie(cause)
|
|
39
|
+
return tsplus_module_3.untraced(() => tsplus_module_2.daemonChildren(tsplus_module_2.fork(tsplus_module_2.tapErrorCause(self, cause => tsplus_module_4.isInterruptedOnly(cause) || tsplus_module_4.isDie(cause)
|
|
40
40
|
? reportRequestError(cause)
|
|
41
|
-
: logRequestError(cause))
|
|
41
|
+
: logRequestError(cause)))));
|
|
42
42
|
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwb3J0RXJyb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9fc3JjL2FwaS9yZXBvcnRFcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzdDLE9BQStCLHNCQUFzQixDQUFBO0FBRXJELE1BQU0sT0FBTyxnQkFBb0IsU0FBUSxjQUFpQjtJQUN4RCxZQUFZLEtBQWU7UUFDekIsS0FBSyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUN6QixDQUFDO0NBQ0Y7QUFDRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7QUFFcEYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLE9BQTZDLEVBQUUsRUFBRSxDQUN6Ryx5QkFBZSxHQUFHLEVBQUUsQ0FDbEIsdURBQW9DLGNBQWMsQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsY0FBYyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUNsSCxDQUFBO0FBRUgsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQXFCLEVBQUUsT0FBNkMsRUFBRSxFQUFFLENBQ3RHLHlCQUFlLEdBQUcsRUFBRSxDQUNsQix1REFBb0MsY0FBYyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQy9HLENBQUE7QUFFSDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBVSxJQUFxQjtJQUNwRSxPQUFPLHlCQUFlLEdBQUcsRUFBRSxxREFDekIsOEJBQUEsSUFBSSxFQUFlLGtCQUFrQixDQUFDLEVBQ2hCLENBQ3ZCLENBQUE7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQVUsSUFBcUI7SUFDOUUsT0FBTyx5QkFBZSxHQUFHLEVBQUUscURBQ3pCLDhCQUFBLElBQUksRUFBZSxLQUFLLENBQUMsRUFBRSxDQUN6QixrQ0FBQSxLQUFLLENBQW9CLElBQUksc0JBQUEsS0FBSyxDQUFRO1FBQ3hDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUM7UUFDM0IsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FDM0IsRUFDcUIsQ0FDdkIsQ0FBQTtBQUNILENBQUMifQ==
|
package/dist/api/routing.js
CHANGED
|
@@ -24,15 +24,15 @@ export const RequestSettings = tsplus_module_1.unsafeMake({
|
|
|
24
24
|
verbose: false
|
|
25
25
|
});
|
|
26
26
|
export function makeRequestParsers(Request) {
|
|
27
|
-
const ph = tsplus_module_3.sync(() => tsplus_module_2.map(
|
|
27
|
+
const ph = tsplus_module_3.sync(() => tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.fromNullable(Request.Headers), s => s), MO.Parser.for), MO.condemnFail));
|
|
28
28
|
const parseHeaders = (u) => tsplus_module_4.flatMapOption(ph, d => d(u));
|
|
29
|
-
const pq = tsplus_module_3.sync(() => tsplus_module_2.map(
|
|
29
|
+
const pq = tsplus_module_3.sync(() => tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.fromNullable(Request.Query), s => s), MO.Parser.for), MO.condemnFail));
|
|
30
30
|
const parseQuery = (u) => tsplus_module_4.flatMapOption(pq, d => d(u));
|
|
31
|
-
const pb = tsplus_module_3.sync(() => tsplus_module_2.map(
|
|
31
|
+
const pb = tsplus_module_3.sync(() => tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.fromNullable(Request.Body), s => s), MO.Parser.for), MO.condemnFail));
|
|
32
32
|
const parseBody = (u) => tsplus_module_4.flatMapOption(pb, d => d(u));
|
|
33
|
-
const pp = tsplus_module_3.sync(() => tsplus_module_2.map(
|
|
33
|
+
const pp = tsplus_module_3.sync(() => tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.fromNullable(Request.Path), s => s), MO.Parser.for), MO.condemnFail));
|
|
34
34
|
const parsePath = (u) => tsplus_module_4.flatMapOption(pp, d => d(u));
|
|
35
|
-
const pc = tsplus_module_3.sync(() => tsplus_module_2.map(
|
|
35
|
+
const pc = tsplus_module_3.sync(() => tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.map(tsplus_module_2.fromNullable(Request.Cookie), s => s), MO.Parser.for), MO.condemnFail));
|
|
36
36
|
const parseCookie = (u) => tsplus_module_4.flatMapOption(pc, d => d(u));
|
|
37
37
|
return {
|
|
38
38
|
parseBody,
|
|
@@ -49,15 +49,15 @@ export function match(requestHandler, errorHandler, middleware) {
|
|
|
49
49
|
requestHandler = handler;
|
|
50
50
|
makeMiddlewareContext = makeContext;
|
|
51
51
|
}
|
|
52
|
-
return tsplus_module_3.zipRight(
|
|
52
|
+
return tsplus_module_3.zipRight(Ex.match(requestHandler.Request.method.toLowerCase())(requestHandler.Request.path.split("?")[0], makeRequestHandler(requestHandler, errorHandler, makeMiddlewareContext)), tsplus_module_3.sync(() => makeRouteDescriptor(requestHandler.Request.path, requestHandler.Request.method, requestHandler)));
|
|
53
53
|
}
|
|
54
54
|
export function respondSuccess(encodeResponse) {
|
|
55
|
-
return (req, res, a) => tsplus_module_3.flatMap(r => tsplus_module_3.sync(() => {
|
|
55
|
+
return (req, res, a) => tsplus_module_3.flatMap(tsplus_module_3.sync(() => encodeResponse(req)(a)), r => tsplus_module_3.sync(() => {
|
|
56
56
|
r === undefined
|
|
57
57
|
? res.status(204).send()
|
|
58
58
|
: res.status(200)
|
|
59
59
|
.send(JSON.stringify(r));
|
|
60
|
-
}))
|
|
60
|
+
}));
|
|
61
61
|
}
|
|
62
62
|
export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext) {
|
|
63
63
|
const { Request, Response, adaptResponse, h: handle } = handler;
|
|
@@ -110,19 +110,46 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
110
110
|
return requestContext;
|
|
111
111
|
}
|
|
112
112
|
return (req, res) => {
|
|
113
|
-
return tsplus_module_11.untraced(restore => tsplus_module_3.flatMap(
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
113
|
+
return tsplus_module_11.untraced(restore => tsplus_module_3.flatMap(tsplus_module_3.struct({
|
|
114
|
+
requestContext: tsplus_module_3.sync(() => {
|
|
115
|
+
const requestContext = makeContext(req);
|
|
116
|
+
if (req.method === "GET") {
|
|
117
|
+
res.setHeader("Cache-Control", "no-store");
|
|
118
|
+
}
|
|
119
|
+
res.setHeader("Content-Language", requestContext.locale);
|
|
120
|
+
return requestContext;
|
|
121
|
+
}),
|
|
122
|
+
pars: getParams(req)
|
|
123
|
+
}), ({ pars, requestContext }) => tsplus_module_10.setupRequest(tsplus_module_3.provideService(tsplus_module_3.tap(tsplus_module_3.tapErrorCause(tsplus_module_3.zipRight(tsplus_module_3.flatMap(tsplus_module_1.get(RequestSettings), s => tsplus_module_8.logAnnotates({
|
|
124
|
+
method: req.method,
|
|
125
|
+
path: req.originalUrl,
|
|
126
|
+
...s.verbose
|
|
127
|
+
? {
|
|
128
|
+
reqPath: tsplus_module_7.RecordPretty(tsplus_module_7.object$(pars.path)),
|
|
129
|
+
reqQuery: tsplus_module_7.RecordPretty(tsplus_module_7.object$(pars.query)),
|
|
130
|
+
reqBody: pretty(pars.body),
|
|
131
|
+
reqCookies: pretty(pars.cookies),
|
|
132
|
+
reqHeaders: tsplus_module_7.RecordPretty(tsplus_module_7.object$(pars.headers))
|
|
133
|
+
} :
|
|
134
|
+
undefined
|
|
135
|
+
})(tsplus_module_3.logInfo("Incoming request"))), tsplus_module_3.suspendSucceed(() => {
|
|
136
|
+
const handleRequest = tsplus_module_3.flatMap(tsplus_module_3.map(parseRequest(req), ({ body, path, query }) => {
|
|
137
|
+
const hn = {
|
|
138
|
+
...tsplus_module_9.getOrUndefined(body),
|
|
139
|
+
...tsplus_module_9.getOrUndefined(query),
|
|
140
|
+
...tsplus_module_9.getOrUndefined(path)
|
|
141
|
+
};
|
|
142
|
+
return hn;
|
|
143
|
+
}), parsedReq => tsplus_module_3.flatMap(restore(() => handle(parsedReq))(), r => respond(parsedReq, res, r)));
|
|
144
|
+
// Commands should not be interruptable.
|
|
145
|
+
const r = req.method !== "GET" ? tsplus_module_3.uninterruptible(handleRequest) : handleRequest; // .instrument("Performance.RequestResponse")
|
|
146
|
+
// the first log entry should be of the request start.
|
|
147
|
+
const r2 = makeMiddlewareContext
|
|
148
|
+
? tsplus_module_4.provideSomeContextEffect(makeMiddlewareContext(req, res, requestContext))(r)
|
|
149
|
+
// PR is not relevant here
|
|
150
|
+
: r;
|
|
151
|
+
return errorHandler(req, res, requestContext, r2);
|
|
152
|
+
})), cause => tsplus_module_3.tapErrorCause(tsplus_module_3.tuplePar(tsplus_module_3.sync(() => res.status(500).send()), reportRequestError(cause, {
|
|
126
153
|
requestContext,
|
|
127
154
|
path: req.originalUrl,
|
|
128
155
|
method: req.method
|
|
@@ -142,47 +169,20 @@ export function makeRequestHandler(handler, errorHandler, makeMiddlewareContext)
|
|
|
142
169
|
return prev;
|
|
143
170
|
}, {})))
|
|
144
171
|
})(tsplus_module_3.logErrorCauseMessage("Finished request", cause));
|
|
145
|
-
}))))(tsplus_module_3.
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
// PR is not relevant here
|
|
160
|
-
: r;
|
|
161
|
-
return errorHandler(req, res, requestContext, r2);
|
|
162
|
-
}))(tsplus_module_3.flatMap(s => tsplus_module_8.logAnnotates({
|
|
163
|
-
method: req.method,
|
|
164
|
-
path: req.originalUrl,
|
|
165
|
-
...s.verbose
|
|
166
|
-
? {
|
|
167
|
-
reqPath: tsplus_module_7.RecordPretty(tsplus_module_7.object$(pars.path)),
|
|
168
|
-
reqQuery: tsplus_module_7.RecordPretty(tsplus_module_7.object$(pars.query)),
|
|
169
|
-
reqBody: pretty(pars.body),
|
|
170
|
-
reqCookies: pretty(pars.cookies),
|
|
171
|
-
reqHeaders: tsplus_module_7.RecordPretty(tsplus_module_7.object$(pars.headers))
|
|
172
|
-
} :
|
|
173
|
-
undefined
|
|
174
|
-
})(tsplus_module_3.logInfo("Incoming request")))(tsplus_module_1.get(RequestSettings)))))) // otherwise external error reporter breaks.
|
|
175
|
-
, requestContext))(tsplus_module_3.struct({
|
|
176
|
-
requestContext: tsplus_module_3.sync(() => {
|
|
177
|
-
const requestContext = makeContext(req);
|
|
178
|
-
if (req.method === "GET") {
|
|
179
|
-
res.setHeader("Cache-Control", "no-store");
|
|
180
|
-
}
|
|
181
|
-
res.setHeader("Content-Language", requestContext.locale);
|
|
182
|
-
return requestContext;
|
|
183
|
-
}),
|
|
184
|
-
pars: getParams(req)
|
|
185
|
-
})));
|
|
172
|
+
})), cause => tsplus_module_3.sync(() => console.error("Error occurred while reporting error", cause)))), () => tsplus_module_3.flatMap(tsplus_module_1.get(RequestSettings), s => {
|
|
173
|
+
const headers = res.getHeaders();
|
|
174
|
+
return tsplus_module_8.logAnnotates({
|
|
175
|
+
method: req.method,
|
|
176
|
+
path: req.originalUrl,
|
|
177
|
+
statusCode: res.statusCode.toString(),
|
|
178
|
+
...s.verbose
|
|
179
|
+
? {
|
|
180
|
+
resHeaders: tsplus_module_7.RecordPretty(tsplus_module_7.object$(headers))
|
|
181
|
+
} :
|
|
182
|
+
undefined
|
|
183
|
+
})(tsplus_module_3.logInfo("Finished request"));
|
|
184
|
+
})), tsplus_module_6.tag, requestContext) // otherwise external error reporter breaks.
|
|
185
|
+
, requestContext)));
|
|
186
186
|
};
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
@@ -244,4 +244,4 @@ export function matchResource(mod) {
|
|
|
244
244
|
return handler;
|
|
245
245
|
};
|
|
246
246
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL3JvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUd4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBR2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMkJBQW9CO0lBQ2pELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyxDQUFBO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQVdoQyxPQVVZO0lBRVosTUFBTSxFQUFFLEdBQUcsMkJBQ1Qsb0JBR08sRUFBRSxDQUFDLFdBQVcsRUFIckIsb0JBRU8sQUE1Q0MsRUFBRSxDQTRDSCxNQUFNLENBQUMsR0FBRyxFQUZqQixvQkFDTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFEYiw2QkFBb0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUN0QixDQUNJLENBQ0ksQ0FDdkIsQ0FBQTtJQUNELE1BQU0sWUFBWSxHQUFHLENBQUMs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
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL19zcmMvYXBpL3JvdXRpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxLQUFLLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQTtBQUd4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFBO0FBQ3ZFLE9BQU8sS0FBSyxFQUFFLE1BQU0sNEJBQTRCLENBQUE7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBR2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sNkJBQTZCLENBQUE7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUV0QyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsMkJBQW9CO0lBQ2pELE9BQU8sRUFBRSxLQUFLO0NBQ2YsQ0FBQyxDQUFBO0FBRUYsTUFBTSxVQUFVLGtCQUFrQixDQVdoQyxPQVVZO0lBRVosTUFBTSxFQUFFLEdBQUcsMkJBQ1Qsb0JBQUEsb0JBQUEsb0JBQUEsNkJBQW9CLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDN0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDUCxBQTVDQyxFQUFFLENBNENILE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFDWCxFQUFFLENBQUMsV0FBVyxDQUFDLENBQ3ZCLENBQUE7SUFDRCxNQUFNLFlBQVksR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsOEJBQUEsRUFBRSxFQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFN0QsTUFBTSxFQUFFLEdBQUcsMkJBQ1Qsb0JBQUEsb0JBQUEsb0JBQUEsNkJBQW9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDM0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDUCxBQXBEQyxFQUFFLENBb0RILE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFDWCxFQUFFLENBQUMsV0FBVyxDQUFDLENBQ3ZCLENBQUE7SUFDRCxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsOEJBQUEsRUFBRSxFQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFM0QsTUFBTSxFQUFFLEdBQUcsMkJBQ1Qsb0JBQUEsb0JBQUEsb0JBQUEsNkJBQW9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDMUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDUCxBQTVEQyxFQUFFLENBNERILE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFDWCxFQUFFLENBQUMsV0FBVyxDQUFDLENBQ3ZCLENBQUE7SUFDRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVUsRUFBRSxFQUFFLENBQUMsOEJBQUEsRUFBRSxFQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFMUQsTUFBTSxFQUFFLEdBQUcsMkJBQ1Qsb0JBQUEsb0JBQUEsb0JBQUEsNkJBQW9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFDMUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDUCxBQXBFQyxFQUFFLENBb0VILE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFDWCxFQUFFLENBQUMsV0FBVyxDQUFDLENBQ3ZCLENBQUE7SUFDRCxNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVUsRUFBRSxF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
|
package/dist/api/setupRequest.js
CHANGED
|
@@ -11,7 +11,7 @@ import { RequestContext } from "../RequestContext.js";
|
|
|
11
11
|
* @tsplus fluent effect/io/Effect setupRequest
|
|
12
12
|
*/
|
|
13
13
|
function setupRequest_1(self, requestContext) {
|
|
14
|
-
return tsplus_module_4.untraced(() => tsplus_module_3.pipe(tsplus_module_1.logSpan("request")
|
|
14
|
+
return tsplus_module_4.untraced(() => tsplus_module_3.pipe(tsplus_module_1.logSpan(self, "request"), tsplus_module_2.logAnnotates({
|
|
15
15
|
requestRootId: requestContext.rootId,
|
|
16
16
|
requestId: requestContext.id,
|
|
17
17
|
requestName: requestContext.name
|
|
@@ -27,7 +27,7 @@ function setupRequestFrom_1(self) {
|
|
|
27
27
|
* @tsplus fluent effect/io/Effect setupRequestFromWith
|
|
28
28
|
*/
|
|
29
29
|
export function setupReq3(self, name) {
|
|
30
|
-
return tsplus_module_4.untraced(() => tsplus_module_1.provideService(tsplus_module_5.tag, makeInternalRequestContext(name))
|
|
30
|
+
return tsplus_module_4.untraced(() => tsplus_module_1.provideService(setupRequestFrom_1(self), tsplus_module_5.tag, makeInternalRequestContext(name)));
|
|
31
31
|
}
|
|
32
32
|
function makeInternalRequestContext(name) {
|
|
33
33
|
const id = tsplus_module_6.StringId.make();
|
|
@@ -38,4 +38,4 @@ function makeInternalRequestContext(name) {
|
|
|
38
38
|
name: tsplus_module_6.ReasonableString(name)
|
|
39
39
|
});
|
|
40
40
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBSZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vX3NyYy9hcGkvc2V0dXBSZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OzthQUtnQixZQUFZO2FBZ0JaLGdCQUFnQjtBQXJCaEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXJEOztHQUVHO0FBQ0gsd0JBQXNDLElBQXFCLEVBQUUsY0FBOEI7SUFDekYsT0FBTyx5QkFBZSxHQUFHLEVBQUUsQ0FDekIsZ0JBQUEsSUFBSSxDQUNGLHdCQUFBLElBQUksRUFBUyxTQUFTLENBQUMsRUFDdkIsNkJBQW9CO1FBQ2xCLGFBQWEsRUFBRSxjQUFjLENBQUMsTUFBTTtRQUNwQyxTQUFTLEVBQUUsY0FBYyxDQUFDLEVBQUU7UUFDNUIsV0FBVyxFQUFFLGNBQWMsQ0FBQyxJQUFJO0tBQ2pDLENBQUMsQ0FDSCxDQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCw0QkFBMEMsSUFBcUI7SUFDN0QsT0FBTyx5QkFBZSxHQUFHLEVBQUUsQ0FBQyx1REFBb0MsY0FBYyxDQUFDLEVBQUUsQ0FBQyxlQUFBLElBQUksRUFBYyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDdkgsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBVSxJQUFxQixFQUFFLElBQVk7SUFDcEUsT0FBTyx5QkFBZSxHQUFHLEVBQUUsQ0FDekIsa0RBQUEsSUFBSSx3QkFFa0MsMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDeEUsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLDBCQUEwQixDQUFDLElBQVk7SUFDOUMsTUFBTSxFQUFFLEdBQUcsZ0JBQUEsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFBO0lBQzFCLE9BQU8sSUFBSSxjQUFjLENBQUM7UUFDeEIsRUFBRTtRQUNGLE1BQU0sRUFBRSxFQUFFO1FBQ1YsTUFBTSxFQUFFLElBQUk7UUFDWixJQUFJLEVBQUUsZ0JBQUEsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0tBQzdCLENBQUMsQ0FBQTtBQUNKLENBQUMifQ==
|
package/dist/api/writeDocs.js
CHANGED
|
@@ -7,15 +7,15 @@ import { writeTextFile } from "@effect-app/infra-adapters/fileUtil";
|
|
|
7
7
|
import * as Plutus from "@effect-app/infra-adapters/Openapi/atlas-plutus";
|
|
8
8
|
import { makeOpenApiSpecs } from "./express/makeOpenApiSpecs.js";
|
|
9
9
|
export function writeOpenapiDocs(rdescs) {
|
|
10
|
-
return tsplus_module_1.flatMap(() =>
|
|
10
|
+
return tsplus_module_1.flatMap(tsplus_module_1.flatMap(tsplus_module_1.map(makeOpenApiSpecs(tsplus_module_4.sortWith(tsplus_module_3.OrdContramap((a) => a.path)(tsplus_module_2.string))(typedValuesOf(rdescs).reduce((prev, cur) => prev.concat(typedValuesOf(cur)), [])), Plutus.info({
|
|
11
|
+
title: "api",
|
|
12
|
+
version: "X",
|
|
13
|
+
pageTitle: "api"
|
|
14
|
+
})), _ => ({
|
|
11
15
|
..._,
|
|
12
16
|
tags: [
|
|
13
17
|
// add the tags here
|
|
14
18
|
]
|
|
15
|
-
}))(
|
|
16
|
-
title: "api",
|
|
17
|
-
version: "X",
|
|
18
|
-
pageTitle: "api"
|
|
19
|
-
})))));
|
|
19
|
+
})), _ => tsplus_module_1.orDie(writeTextFile("./openapi.json", JSON.stringify(_, undefined, 2)))), () => tsplus_module_1.logInfo("OpenAPI spec written to './openapi.json'"));
|
|
20
20
|
}
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVEb2NzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vX3NyYy9hcGkvd3JpdGVEb2NzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ25FLE9BQU8sS0FBSyxNQUFNLE1BQU0saURBQWlELENBQUE7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFHaEUsTUFBTSxVQUFVLGdCQUFnQixDQUFDLE1BQTBEO0lBQ3pGLE9BQU8sd0JBQUEsd0JBQUEsb0JBQUEsZ0JBQWdCLENBQ3JCLHlCQUNZLDZCQUF1QixDQUFDLENBQXFCLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLHlCQUFDLEVBRHJFLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLEVBQW1DLENBQUMsQ0FDM0MsRUFDdEUsTUFBTSxDQUFDLElBQUksQ0FBQztRQUNWLEtBQUssRUFBRSxLQUFLO1FBQ1osT0FBTyxFQUFFLEdBQUc7UUFDWixTQUFTLEVBQUUsS0FBSztLQUNqQixDQUFDLENBQ0gsRUFDTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDVCxHQUFHLENBQUM7UUFDSixJQUFJLEVBQUU7UUFDSixvQkFBb0I7U0FDckI7S0FDRixDQUFDLENBQUMsRUFDTSxDQUFDLENBQUMsRUFBRSx1QkFBQyxhQUFhLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQU0sQ0FBQyxFQUM1RSxHQUFHLEVBQUUsQ0FBQyx3QkFBZSwwQ0FBMEMsQ0FBQyxDQUFDLENBQUE7QUFDOUUsQ0FBQyJ9
|
package/dist/errorReporter.js
CHANGED
|
@@ -12,7 +12,7 @@ export function reportError(makeError) {
|
|
|
12
12
|
const error = makeError(cause);
|
|
13
13
|
const extras = { context, error: error.toJSON() };
|
|
14
14
|
reportSentry(error, extras);
|
|
15
|
-
yield* $(tsplus_module_3.logAnnotate("extras", JSON.stringify({ context, error: { _tag: error._tag, message: error.message } }))
|
|
15
|
+
yield* $(tsplus_module_3.logAnnotate(tsplus_module_3.logErrorCause(cause), "extras", JSON.stringify({ context, error: { _tag: error._tag, message: error.message } })));
|
|
16
16
|
}));
|
|
17
17
|
}
|
|
18
18
|
function reportSentry(error, extras) {
|
|
@@ -27,7 +27,7 @@ export function logError(makeError) {
|
|
|
27
27
|
return;
|
|
28
28
|
}
|
|
29
29
|
const error = makeError(cause);
|
|
30
|
-
yield* $(tsplus_module_3.logAnnotate("extras", JSON.stringify({ context, error: { _tag: error._tag, message: error.message } }))
|
|
30
|
+
yield* $(tsplus_module_3.logAnnotate(tsplus_module_3.logWarningCause(cause), "extras", JSON.stringify({ context, error: { _tag: error._tag, message: error.message } })));
|
|
31
31
|
}));
|
|
32
32
|
}
|
|
33
33
|
export function captureException(error) {
|
|
@@ -41,4 +41,4 @@ export function reportMessage(message) {
|
|
|
41
41
|
export function reportMessageM(message) {
|
|
42
42
|
return tsplus_module_3.sync(() => reportMessage(message));
|
|
43
43
|
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JSZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvZXJyb3JSZXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxLQUFLLE1BQU0sTUFBTSxjQUFjLENBQUE7QUFHdEMsTUFBTSxVQUFVLFdBQVcsQ0FDekIsU0FBa0M7SUFFbEMsT0FBTyxDQUFDLEtBQWUsRUFBRSxPQUFpQyxFQUFFLEVBQUUsQ0FDNUQseUJBQWUsR0FBRyxFQUFFLENBQ2xCLG9CQUFXLFFBQVEsQ0FBQyxFQUFDLENBQUM7UUFDcEIsSUFBSSw4QkFBQSxLQUFLLENBQWdCLEVBQUU7WUFDekIsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLHlCQUFnQixlQUFlLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxzREFBQyxPQUFPLEdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUMvRSxPQUFNO1NBQ1A7UUFDRCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDOUIsTUFBTSxNQUFNLEdBQUcsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFBO1FBQ2pELFlBQVksQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7UUFDM0IsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNOLDBEQUFBLEtBQUssR0FDSCxRQUFRLEVBQ1IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FDakYsQ0FDRixDQUFBO0lBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQTtBQUNMLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxLQUFjLEVBQUUsTUFBK0I7SUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDaEMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN2QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFBO0FBQ3ZDLENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUN0QixTQUFrQztJQUVsQyxPQUFPLENBQUMsS0FBZSxFQUFFLE9BQWlDLEVBQUUsRUFBRSxDQUM1RCx5QkFBZSxHQUFHLEVBQUUsQ0FDbEIsb0JBQVcsUUFBUSxDQUFDLEVBQUMsQ0FBQztRQUNwQixJQUFJLDhCQUFBLEtBQUssQ0FBZ0IsRUFBRTtZQUN6QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMseUJBQWdCLGVBQWUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLHNEQUFDLE9BQU8sR0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQy9FLE9BQU07U0FDUDtRQUNELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM5QixLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ04sNERBQUEsS0FBSyxHQUNILFFBQVEsRUFDUixJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUNqRixDQUNGLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFBO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFjO0lBQzdDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QixPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQWU7SUFDM0MsTUFBTSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUU5QixPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQWU7SUFDNUMsT0FBTywyQkFBTyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtBQUN2QyxDQUFDIn0=
|
package/dist/instrument.js
CHANGED
|
@@ -5,7 +5,7 @@ import * as tsplus_module_3 from "@effect/io/Debug";
|
|
|
5
5
|
* @tsplus fluent effect/io/Effect instrument
|
|
6
6
|
*/
|
|
7
7
|
export function instr(self, name, properties) {
|
|
8
|
-
return tsplus_module_3.untraced(() => tsplus_module_2.logSpan(
|
|
8
|
+
return tsplus_module_3.untraced(() => tsplus_module_2.logSpan(tsplus_module_2.tap(self, () => tsplus_module_2.logAnnotate(tsplus_module_2.logDebug(`instrumented`), "properties", tsplus_module_1.RecordPretty(tsplus_module_1.object$((properties || {}))))), name));
|
|
9
9
|
// trackMetric(name, time, properties))
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL19zcmMvaW5zdHJ1bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILE1BQU0sVUFBVSxLQUFLLENBQVUsSUFBcUIsRUFBRSxJQUFZLEVBQUUsVUFBbUM7SUFDckcsT0FBTyx5QkFBZSxHQUFHLEVBQUUsQ0FDekIsd0JBQUEsb0JBQUEsSUFBSSxFQUNHLEdBQUcsRUFBRSxDQUFDLDRCQUFBLHlCQUFnQixjQUFjLENBQUMsRUFBYSxZQUFZLHVEQUFFLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxHQUFXLENBQUMsRUFDMUYsSUFBSSxDQUFDLENBQ2pCLENBQUE7SUFDRCx1Q0FBdUM7QUFDekMsQ0FBQyJ9
|
package/dist/rateLimit.d.ts
CHANGED
|
@@ -13,19 +13,19 @@ import { NonEmptyChunk, Chunk } from "@effect/data/Chunk";
|
|
|
13
13
|
export declare function SEM_withPermitsDuration(permits: number, duration: Duration): (self: Semaphore) => <R, E, A>(effect: import("@effect/io/Effect").Effect<R, E, A>) => import("@effect/io/Effect").Effect<R, E, A>;
|
|
14
14
|
/**
|
|
15
15
|
* @tsplus pipeable Iterable batchPar
|
|
16
|
-
* @tsplus static Collection.
|
|
16
|
+
* @tsplus static Collection.Ops batchPar
|
|
17
17
|
* @tsplus location "@effect-app/infra/rateLimit"
|
|
18
18
|
*/
|
|
19
19
|
export declare function batchPar<R, E, A, R2, E2, A2, T>(n: number, forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect<R, E, A>, forEachBatch: (a: NonEmptyChunk<A>, i: number) => Effect<R2, E2, A2>): (items: Iterable<T>) => import("@effect/io/Effect").Effect<R | R2, E | E2, import("@effect/data/Chunk").Chunk<A2>>;
|
|
20
20
|
/**
|
|
21
21
|
* @tsplus pipeable Iterable batch
|
|
22
|
-
* @tsplus static Collection.
|
|
22
|
+
* @tsplus static Collection.Ops batch
|
|
23
23
|
* @tsplus location "@effect-app/infra/rateLimit"
|
|
24
24
|
*/
|
|
25
25
|
export declare function batch<R, E, A, R2, E2, A2, T>(n: number, forEachItem: (item: T, iWithinBatch: number, batchI: number) => Effect<R, E, A>, forEachBatch: (a: NonEmptyChunk<A>, i: number) => Effect<R2, E2, A2>): (items: Iterable<T>) => import("@effect/io/Effect").Effect<R | R2, E | E2, import("@effect/data/Chunk").Chunk<A2>>;
|
|
26
26
|
/**
|
|
27
27
|
* @tsplus pipeable Iterable naiveRateLimit
|
|
28
|
-
* @tsplus static Collection.
|
|
28
|
+
* @tsplus static Collection.Ops naiveRateLimit
|
|
29
29
|
* @tsplus location "@effect-app/infra/rateLimit"
|
|
30
30
|
*/
|
|
31
31
|
export declare function naiveRateLimit(n: number, d: DUR): <T>(items: Iterable<T>) => <R, E, A, R2, E2, A2>(forEachItem: (i: T) => import("@effect/io/Effect").Effect<R, E, A>, forEachBatch: (a: import("@effect/data/Chunk").Chunk<A>) => import("@effect/io/Effect").Effect<R2, E2, A2>) => import("@effect/io/Effect").Effect<R | R2, E | E2, import("@effect/data/Chunk").Chunk<A2>>;
|
package/dist/rateLimit.js
CHANGED
|
@@ -36,26 +36,26 @@ import * as tsplus_module_3 from "@effect-app/core/Effect";
|
|
|
36
36
|
*/
|
|
37
37
|
export function SEM_withPermitsDuration(permits, duration) {
|
|
38
38
|
return (self) => {
|
|
39
|
-
return effect => tsplus_module_1.uninterruptibleMask(restore => tsplus_module_1.zipRight(tsplus_module_1.ensuring(tsplus_module_1.delay(
|
|
39
|
+
return effect => tsplus_module_1.uninterruptibleMask(restore => tsplus_module_1.zipRight(tsplus_module_1.ensuring(restore(effect), tsplus_module_1.delay(self.release(permits), duration)))(restore(self.take(permits))));
|
|
40
40
|
};
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* @tsplus pipeable Iterable batchPar
|
|
44
|
-
* @tsplus static Collection.
|
|
44
|
+
* @tsplus static Collection.Ops batchPar
|
|
45
45
|
*/
|
|
46
46
|
export function batchPar(n, forEachItem, forEachBatch) {
|
|
47
|
-
return (items) => tsplus_module_2.ext_forEachParWithIndex(tsplus_module_2.chunk_(items, n), (_, i) => tsplus_module_1.flatMap(
|
|
47
|
+
return (items) => tsplus_module_2.ext_forEachParWithIndex(tsplus_module_2.chunk_(items, n), (_, i) => tsplus_module_1.flatMap(tsplus_module_1.forEachParWithIndex(_, (_, j) => forEachItem(_, j, i)), _ => forEachBatch(_, i)));
|
|
48
48
|
}
|
|
49
49
|
/**
|
|
50
50
|
* @tsplus pipeable Iterable batch
|
|
51
|
-
* @tsplus static Collection.
|
|
51
|
+
* @tsplus static Collection.Ops batch
|
|
52
52
|
*/
|
|
53
53
|
export function batch(n, forEachItem, forEachBatch) {
|
|
54
|
-
return (items) => tsplus_module_2.ext_forEachWithIndex(tsplus_module_2.chunk_(items, n), (_, i) => tsplus_module_1.flatMap(
|
|
54
|
+
return (items) => tsplus_module_2.ext_forEachWithIndex(tsplus_module_2.chunk_(items, n), (_, i) => tsplus_module_1.flatMap(tsplus_module_1.forEachParWithIndex(_, (_, j) => forEachItem(_, j, i)), _ => forEachBatch(_, i)));
|
|
55
55
|
}
|
|
56
56
|
// /**
|
|
57
57
|
// * @tsplus pipeable Iterable rateLimit
|
|
58
|
-
// * @tsplus static Collection.
|
|
58
|
+
// * @tsplus static Collection.Ops rateLimit
|
|
59
59
|
// */
|
|
60
60
|
// export function rateLimit(
|
|
61
61
|
// n: number,
|
|
@@ -74,9 +74,9 @@ export function batch(n, forEachItem, forEachBatch) {
|
|
|
74
74
|
// }
|
|
75
75
|
/**
|
|
76
76
|
* @tsplus pipeable Iterable naiveRateLimit
|
|
77
|
-
* @tsplus static Collection.
|
|
77
|
+
* @tsplus static Collection.Ops naiveRateLimit
|
|
78
78
|
*/
|
|
79
79
|
export function naiveRateLimit(n, d) {
|
|
80
|
-
return (items) => ((forEachItem, forEachBatch) => tsplus_module_2.ext_forEachWithIndex(tsplus_module_2.chunk_(items, n), (batch, i) => tsplus_module_1.zipRight(
|
|
80
|
+
return (items) => ((forEachItem, forEachBatch) => tsplus_module_2.ext_forEachWithIndex(tsplus_module_2.chunk_(items, n), (batch, i) => tsplus_module_1.zipRight(((i === 0) ? tsplus_module_3.unit : tsplus_module_1.delay(tsplus_module_3.unit, d)), tsplus_module_1.flatMap(tsplus_module_1.withParallelism(tsplus_module_2.ext_forEachEffectPar(batch, forEachItem), n), forEachBatch))));
|
|
81
81
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZUxpbWl0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vX3NyYy9yYXRlTGltaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBTTtBQUNOLDhFQUE4RTtBQUM5RSx1RUFBdUU7QUFDdkUsbUZBQW1GO0FBQ25GLCtCQUErQjtBQUMvQixLQUFLO0FBQ0wsa0VBQWtFO0FBQ2xFLGdFQUFnRTtBQUNoRSxNQUFNO0FBQ04sNkVBQTZFO0FBQzdFLDBGQUEwRjtBQUMxRix1QkFBdUI7QUFDdkIsb0NBQW9DO0FBQ3BDLHFCQUFxQjtBQUNyQixtREFBbUQ7QUFDbkQsZ0NBQWdDO0FBQ2hDLDJCQUEyQjtBQUMzQix5Q0FBeUM7QUFDekMsNEJBQTRCO0FBQzVCLHFDQUFxQztBQUNyQyxrQkFBa0I7QUFDbEIsVUFBVTtBQUNWLE1BQU07QUFDTixJQUFJO0FBRUo7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsT0FBZSxFQUFFLFFBQWtCO0lBQ3pFLE9BQU8sQ0FBQyxJQUFlLEVBQXlELEVBQUU7UUFDaEYsT0FBTyxNQUFNLENBQUMsRUFBRSxDQUNkLG9DQUNFLE9BQU8sQ0FBQyxFQUFFLDBCQUVKLHlCQUFBLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFFYixzQkFBQSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUNaLFFBQVEsQ0FBQyxDQUNuQixFQUxMLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBS3RCLENBQ1IsQ0FBQTtJQUNMLENBQUMsQ0FBQTtBQUNILENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUN0QixDQUFTLEVBQ1QsV0FBK0UsRUFDL0UsWUFBb0U7SUFFcEUsT0FBTyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUM1Qix3Q0FBQSx1QkFBQSxLQUFLLEVBQU8sQ0FBQyxDQUFDLEVBQ2UsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDbEMsd0JBQUEsb0NBQUEsQ0FBQyxFQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDeEQsQ0FBQTtBQUNQLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUNuQixDQUFTLEVBQ1QsV0FBK0UsRUFDL0UsWUFBb0U7SUFFcEUsT0FBTyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUM1QixxQ0FBQSx1QkFBQSxLQUFLLEVBQU8sQ0FBQyxDQUFDLEVBQ1ksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FDL0Isd0JBQUEsb0NBQUEsQ0FBQyxFQUFxQixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQzFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQXFCLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDeEQsQ0FBQTtBQUNQLENBQUM7QUFFRCxNQUFNO0FBQ04seUNBQXlDO0FBQ3pDLDZDQUE2QztBQUM3QyxNQUFNO0FBQ04sNkJBQTZCO0FBQzdCLGVBQWU7QUFDZixXQUFXO0FBQ1gsTUFBTTtBQUNOLHNDQUFzQztBQUN0Qyw2QkFBNkI7QUFDN0IsZ0RBQWdEO0FBQ2hELDBEQUEwRDtBQUMxRCxXQUFXO0FBQ1gscUNBQXFDO0FBQ3JDLHNCQUFzQjtBQUN0Qix3Q0FBd0M7QUFDeEMsbUZBQW1GO0FBQ25GLHNCQUFzQjtBQUN0QixJQUFJO0FBRUo7OztHQUdHO0FBRUgsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsQ0FBUyxFQUNULENBQU07SUFFTixPQUFPLENBQUksS0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUNqQyxXQUFzQyxFQUN0QyxZQUFpRCxFQUNqRCxFQUFFLENBQ0YscUNBQUEsdUJBQUEsS0FBSyxFQUFPLENBQUMsQ0FBQyxFQUNZLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQ25DLHlCQUFBLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxzQkFBYSxDQUFDLENBQUMsNENBQWtCLENBQUMsQ0FBQyxDQUFDLEVBRTVDLHdCQUFBLGdDQUFBLHFDQUFBLEtBQUssRUFBa0IsV0FBVyxDQUFDLEVBQ2hCLENBQUMsQ0FBQyxFQUNWLFlBQVksQ0FBQyxDQUN6QixDQUNKLENBQUMsQ0FBQTtBQUNSLENBQUMifQ==
|