@effect-app/infra 1.28.3 → 1.29.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 +19 -0
- package/_cjs/api/{routing2 → routing}/DynamicMiddleware.cjs +1 -1
- package/_cjs/api/routing/DynamicMiddleware.cjs.map +1 -0
- package/_cjs/api/routing.cjs +135 -43
- package/_cjs/api/routing.cjs.map +1 -1
- package/dist/api/routing/DynamicMiddleware.d.ts.map +1 -0
- package/dist/api/routing/DynamicMiddleware.js +33 -0
- package/dist/api/routing.d.ts +100 -4
- package/dist/api/routing.d.ts.map +1 -1
- package/dist/api/routing.js +116 -9
- package/dist/services/Repository/ext.d.ts +4 -4
- package/package.json +9 -79
- package/src/api/{routing2 → routing}/DynamicMiddleware.ts +1 -1
- package/src/api/routing.ts +434 -8
- package/_cjs/api/routing/base.cjs +0 -135
- package/_cjs/api/routing/base.cjs.map +0 -1
- package/_cjs/api/routing/defaultErrorHandler.cjs +0 -62
- package/_cjs/api/routing/defaultErrorHandler.cjs.map +0 -1
- package/_cjs/api/routing/makeRequestHandler.cjs +0 -130
- package/_cjs/api/routing/makeRequestHandler.cjs.map +0 -1
- package/_cjs/api/routing/match.cjs +0 -40
- package/_cjs/api/routing/match.cjs.map +0 -1
- package/_cjs/api/routing/schema/routing.cjs +0 -136
- package/_cjs/api/routing/schema/routing.cjs.map +0 -1
- package/_cjs/api/routing2/DynamicMiddleware.cjs.map +0 -1
- package/_cjs/api/routing2.cjs +0 -142
- package/_cjs/api/routing2.cjs.map +0 -1
- package/_cjs/router.cjs +0 -170
- package/_cjs/router.cjs.map +0 -1
- package/dist/api/routing/base.d.ts +0 -97
- package/dist/api/routing/base.d.ts.map +0 -1
- package/dist/api/routing/base.js +0 -129
- package/dist/api/routing/defaultErrorHandler.d.ts +0 -19
- package/dist/api/routing/defaultErrorHandler.d.ts.map +0 -1
- package/dist/api/routing/defaultErrorHandler.js +0 -68
- package/dist/api/routing/makeRequestHandler.d.ts +0 -20
- package/dist/api/routing/makeRequestHandler.d.ts.map +0 -1
- package/dist/api/routing/makeRequestHandler.js +0 -151
- package/dist/api/routing/match.d.ts +0 -12
- package/dist/api/routing/match.d.ts.map +0 -1
- package/dist/api/routing/match.js +0 -27
- package/dist/api/routing/schema/routing.d.ts +0 -31
- package/dist/api/routing/schema/routing.d.ts.map +0 -1
- package/dist/api/routing/schema/routing.js +0 -123
- package/dist/api/routing2/DynamicMiddleware.d.ts.map +0 -1
- package/dist/api/routing2/DynamicMiddleware.js +0 -33
- package/dist/api/routing2.d.ts +0 -93
- package/dist/api/routing2.d.ts.map +0 -1
- package/dist/api/routing2.js +0 -117
- package/dist/router.d.ts +0 -91
- package/dist/router.d.ts.map +0 -1
- package/dist/router.js +0 -154
- package/src/api/routing/base.ts +0 -379
- package/src/api/routing/defaultErrorHandler.ts +0 -140
- package/src/api/routing/makeRequestHandler.ts +0 -343
- package/src/api/routing/match.ts +0 -128
- package/src/api/routing/schema/routing.ts +0 -237
- package/src/api/routing2.ts +0 -425
- package/src/api/writeDocs.ts.bak +0 -31
- package/src/router.ts +0 -619
- /package/dist/api/{routing2 → routing}/DynamicMiddleware.d.ts +0 -0
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.decodeErrors = decodeErrors;
|
|
7
|
-
exports.makeRequestParsers = makeRequestParsers;
|
|
8
|
-
exports.parseRequestParams = parseRequestParams;
|
|
9
|
-
var _errors = require("@effect-app/infra/errors");
|
|
10
|
-
var S = _interopRequireWildcard(require("@effect/schema/Schema"));
|
|
11
|
-
var _effectApp = require("effect-app");
|
|
12
|
-
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
15
|
-
/* eslint-disable @typescript-eslint/ban-types */
|
|
16
|
-
|
|
17
|
-
// function getErrorMessage(current: ContextEntry) {
|
|
18
|
-
// switch (current.type.name) {
|
|
19
|
-
// case "NonEmptyString":
|
|
20
|
-
// return "Must not be empty"
|
|
21
|
-
// }
|
|
22
|
-
// if (current.type.name?.startsWith("NonEmptyReadonlyArray<")) {
|
|
23
|
-
// return "Must not be empty"
|
|
24
|
-
// }
|
|
25
|
-
// return `Invalid value specified`
|
|
26
|
-
// }
|
|
27
|
-
function decodeErrors(x) {
|
|
28
|
-
return [x];
|
|
29
|
-
}
|
|
30
|
-
// const ValidationApplicative = Effect.getValidationApplicative(
|
|
31
|
-
// makeAssociative<ReadonlyArray<{ type: string; errors: ReturnType<typeof decodeErrors> }>>(
|
|
32
|
-
// (l, r) => l.concat(r)
|
|
33
|
-
// )
|
|
34
|
-
// )
|
|
35
|
-
// const structValidation = DSL.structF(ValidationApplicative)
|
|
36
|
-
function parseRequestParams(parsers) {
|
|
37
|
-
const handleParse = effect => effect.pipe(_effectApp.Effect.exit, _effectApp.Effect.flatMap(_ => _effectApp.Exit.isFailure(_) && !_effectApp.Cause.isFailure(_.cause) ? _effectApp.Effect.failCauseSync(() => _.cause) : _effectApp.Effect.sync(() => _effectApp.Exit.isSuccess(_) ? {
|
|
38
|
-
_tag: "Success",
|
|
39
|
-
value: _.value
|
|
40
|
-
} : {
|
|
41
|
-
_tag: "Failure",
|
|
42
|
-
errors: _effectApp.Cause.failures(_.cause)
|
|
43
|
-
})));
|
|
44
|
-
return ({
|
|
45
|
-
body,
|
|
46
|
-
cookies,
|
|
47
|
-
headers,
|
|
48
|
-
params,
|
|
49
|
-
query
|
|
50
|
-
}) => _effectApp.Effect.all({
|
|
51
|
-
body: parsers.parseBody(body).pipe(handleParse),
|
|
52
|
-
cookie: parsers.parseCookie(cookies).pipe(handleParse),
|
|
53
|
-
headers: parsers.parseHeaders(headers).pipe(handleParse),
|
|
54
|
-
query: parsers.parseQuery(query).pipe(handleParse),
|
|
55
|
-
path: parsers.parsePath(params).pipe(handleParse)
|
|
56
|
-
}).pipe(_effectApp.Effect.flatMap(({
|
|
57
|
-
body,
|
|
58
|
-
cookie,
|
|
59
|
-
headers,
|
|
60
|
-
path,
|
|
61
|
-
query
|
|
62
|
-
}) => {
|
|
63
|
-
const errors = [];
|
|
64
|
-
if (body._tag === "Failure") {
|
|
65
|
-
errors.push(makeError("body")(body.errors));
|
|
66
|
-
}
|
|
67
|
-
if (cookie._tag === "Failure") {
|
|
68
|
-
errors.push(makeError("cookie")(cookie.errors));
|
|
69
|
-
}
|
|
70
|
-
if (headers._tag === "Failure") {
|
|
71
|
-
errors.push(makeError("headers")(headers.errors));
|
|
72
|
-
}
|
|
73
|
-
if (path._tag === "Failure") {
|
|
74
|
-
errors.push(makeError("path")(path.errors));
|
|
75
|
-
}
|
|
76
|
-
if (query._tag === "Failure") {
|
|
77
|
-
errors.push(makeError("query")(query.errors));
|
|
78
|
-
}
|
|
79
|
-
if (errors.length) {
|
|
80
|
-
return new _errors.ValidationError({
|
|
81
|
-
errors
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
return _effectApp.Effect.sync(() => ({
|
|
85
|
-
body: body.value,
|
|
86
|
-
cookie: cookie.value,
|
|
87
|
-
headers: headers.value,
|
|
88
|
-
path: path.value,
|
|
89
|
-
query: query.value
|
|
90
|
-
}));
|
|
91
|
-
}));
|
|
92
|
-
}
|
|
93
|
-
// // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
-
// function mapErrors_<E, NE, NER extends Record<string, Effect<any, E, any>>>(
|
|
95
|
-
// t: NER, // TODO: enforce non empty
|
|
96
|
-
// mapErrors: (k: keyof NER) => (err: E) => NE
|
|
97
|
-
// ): {
|
|
98
|
-
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
99
|
-
// } {
|
|
100
|
-
// return typedKeysOf(t).reduce(
|
|
101
|
-
// (prev, cur) => {
|
|
102
|
-
// prev[cur] = t[cur].mapError(mapErrors(cur))
|
|
103
|
-
// return prev
|
|
104
|
-
// },
|
|
105
|
-
// {} as {
|
|
106
|
-
// [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
|
|
107
|
-
// }
|
|
108
|
-
// )
|
|
109
|
-
// }
|
|
110
|
-
function makeError(type) {
|
|
111
|
-
return e => [{
|
|
112
|
-
type,
|
|
113
|
-
errors: decodeErrors(e)
|
|
114
|
-
}];
|
|
115
|
-
}
|
|
116
|
-
function makeRequestParsers(Request) {
|
|
117
|
-
const ph = _effectApp.Effect.sync(() => _effectApp.Option.fromNullable(Request.Headers).pipe(_effectApp.Option.map(s => s), _effectApp.Option.map(S.decodeUnknown)));
|
|
118
|
-
const parseHeaders = u => _effectApp.Effect.flatMapOption(ph, d => d(u));
|
|
119
|
-
const pq = _effectApp.Effect.sync(() => _effectApp.Option.fromNullable(Request.Query).pipe(_effectApp.Option.map(s => s), _effectApp.Option.map(S.decodeUnknown)));
|
|
120
|
-
const parseQuery = u => _effectApp.Effect.flatMapOption(pq, d => d(u));
|
|
121
|
-
const pb = _effectApp.Effect.sync(() => _effectApp.Option.fromNullable(Request.Body).pipe(_effectApp.Option.map(s => s), _effectApp.Option.map(S.decodeUnknown)));
|
|
122
|
-
const parseBody = u => _effectApp.Effect.flatMapOption(pb, d => d(u));
|
|
123
|
-
const pp = _effectApp.Effect.sync(() => _effectApp.Option.fromNullable(Request.Path).pipe(_effectApp.Option.map(s => s), _effectApp.Option.map(S.decodeUnknown)));
|
|
124
|
-
const parsePath = u => _effectApp.Effect.flatMapOption(pp, d => d(u));
|
|
125
|
-
const pc = _effectApp.Effect.sync(() => _effectApp.Option.fromNullable(Request.Cookie).pipe(_effectApp.Option.map(s => s), _effectApp.Option.map(S.decodeUnknown)));
|
|
126
|
-
const parseCookie = u => _effectApp.Effect.flatMapOption(pc, d => d(u));
|
|
127
|
-
return {
|
|
128
|
-
parseBody,
|
|
129
|
-
parseCookie,
|
|
130
|
-
parseHeaders,
|
|
131
|
-
parsePath,
|
|
132
|
-
parseQuery
|
|
133
|
-
};
|
|
134
|
-
}
|
|
135
|
-
//# sourceMappingURL=base.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"base.cjs","names":["_errors","require","S","_interopRequireWildcard","_effectApp","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","decodeErrors","x","parseRequestParams","parsers","handleParse","effect","pipe","Effect","exit","flatMap","_","Exit","isFailure","Cause","cause","failCauseSync","sync","isSuccess","_tag","value","errors","failures","body","cookies","headers","params","query","all","parseBody","cookie","parseCookie","parseHeaders","parseQuery","path","parsePath","push","makeError","length","ValidationError","type","makeRequestParsers","Request","ph","Option","fromNullable","Headers","map","s","decodeUnknown","flatMapOption","d","pq","Query","pb","Body","pp","Path","pc","Cookie"],"sources":["../../../src/api/routing/base.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.JWTError = void 0;
|
|
7
|
-
exports.defaultBasicErrorHandler = defaultBasicErrorHandler;
|
|
8
|
-
exports.defaultErrorHandler = defaultErrorHandler;
|
|
9
|
-
var _errorReporter = require("@effect-app/infra/errorReporter");
|
|
10
|
-
var _HttpServerResponse = require("@effect/platform/HttpServerResponse");
|
|
11
|
-
var _effectApp = require("effect-app");
|
|
12
|
-
var _errors = require("effect-app/client/errors");
|
|
13
|
-
var _http = require("effect-app/http");
|
|
14
|
-
var _logger = require("../../logger.cjs");
|
|
15
|
-
class JWTError extends _effectApp.Data.TaggedClass("JWTError") {}
|
|
16
|
-
exports.JWTError = JWTError;
|
|
17
|
-
const logRequestError = (0, _errorReporter.logError)("Request");
|
|
18
|
-
function defaultBasicErrorHandler(_req, res, r2) {
|
|
19
|
-
const sendError = code => body => _effectApp.Effect.sync(() => (0, _HttpServerResponse.setBody)(res, _http.HttpBody.unsafeJson(body)).pipe((0, _HttpServerResponse.setStatus)(code)));
|
|
20
|
-
return r2.pipe(_effectApp.Effect.tapErrorCause(cause => _effectApp.Cause.isFailure(cause) ? logRequestError(cause) : _effectApp.Effect.void), _effectApp.Effect.catchTag("ValidationError", err => sendError(400)(err.errors)), _effectApp.Effect
|
|
21
|
-
// final catch all; expecting never so that unhandled known errors will show up
|
|
22
|
-
.catchAll(err => _logger.InfraLogger.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err).pipe(_effectApp.Effect.map(() => err), _effectApp.Effect.flatMap(_effectApp.Effect.die))));
|
|
23
|
-
}
|
|
24
|
-
const optimisticConcurrencySchedule = _effectApp.Schedule.once && _effectApp.Schedule.recurWhile(a => a._tag === "OptimisticConcurrencyException");
|
|
25
|
-
function defaultErrorHandler(req, res, r2, customErrorSchema) {
|
|
26
|
-
const r3 = req.method === "PATCH" ? _effectApp.Effect.retry(r2, optimisticConcurrencySchedule) : r2;
|
|
27
|
-
const sendError = (code, schema) => body => _effectApp.S.encode(schema)(body).pipe(_effectApp.Effect.orDie, _effectApp.Effect.andThen(body => res.pipe((0, _HttpServerResponse.setStatus)(code), (0, _HttpServerResponse.setBody)(_http.HttpBody.unsafeJson(body)))));
|
|
28
|
-
return r3.pipe(_effectApp.Effect.tapErrorCause(cause => _effectApp.Cause.isFailure(cause) ? logRequestError(cause) : _effectApp.Effect.void), _effectApp.Effect.tapErrorCause(cause => _effectApp.Effect.annotateCurrentSpan({
|
|
29
|
-
"exception.escaped": true,
|
|
30
|
-
"exception.message": "Request Error",
|
|
31
|
-
"exception.stacktrace": _effectApp.Cause.pretty(cause),
|
|
32
|
-
"exception.type": _effectApp.Cause.squashWith(cause, _ => _._tag
|
|
33
|
-
// Predicate.hasProperty(_, "_tag")
|
|
34
|
-
// ? _._tag
|
|
35
|
-
// : Predicate.hasProperty(_, "name")
|
|
36
|
-
// ? _.name
|
|
37
|
-
// // eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
38
|
-
// : `${_}`
|
|
39
|
-
),
|
|
40
|
-
"error.type": cause._tag
|
|
41
|
-
})), _effectApp.Effect.catchTags({
|
|
42
|
-
"JWTError": err => _effectApp.Effect.succeed(_http.HttpServerResponse.unsafeJson({
|
|
43
|
-
message: err.error.message
|
|
44
|
-
}, {
|
|
45
|
-
status: err.error.status,
|
|
46
|
-
headers: _http.HttpHeaders.fromInput(err.error.headers)
|
|
47
|
-
})),
|
|
48
|
-
"ValidationError": sendError(400, _errors.ValidationError),
|
|
49
|
-
"NotFoundError": sendError(404, _errors.NotFoundError),
|
|
50
|
-
"NotLoggedInError": sendError(401, _errors.NotLoggedInError),
|
|
51
|
-
"UnauthorizedError": sendError(403, _errors.UnauthorizedError),
|
|
52
|
-
"InvalidStateError": sendError(422, _errors.InvalidStateError),
|
|
53
|
-
"ServiceUnavailableError": sendError(503, _errors.ServiceUnavailableError),
|
|
54
|
-
// 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
|
|
55
|
-
"OptimisticConcurrencyException": sendError(412, _errors.OptimisticConcurrencyException)
|
|
56
|
-
}), customErrorSchema ? _effectApp.Effect.catchAll(x => _effectApp.S.is(customErrorSchema)(x)
|
|
57
|
-
// TODO: customize error code
|
|
58
|
-
? sendError(422, customErrorSchema)(x) : _effectApp.Effect.fail(x)) : x => x, _effectApp.Effect
|
|
59
|
-
// final catch all; expecting never so that unhandled known errors will show up
|
|
60
|
-
.catchAll(err => _logger.InfraLogger.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err).pipe(_effectApp.Effect.map(() => err), _effectApp.Effect.flatMap(_effectApp.Effect.die))));
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=defaultErrorHandler.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defaultErrorHandler.cjs","names":["_errorReporter","require","_HttpServerResponse","_effectApp","_errors","_http","_logger","JWTError","Data","TaggedClass","exports","logRequestError","logError","defaultBasicErrorHandler","_req","res","r2","sendError","code","body","Effect","sync","setBody","HttpBody","unsafeJson","pipe","setStatus","tapErrorCause","cause","Cause","isFailure","void","catchTag","err","errors","catchAll","InfraLogger","map","flatMap","die","optimisticConcurrencySchedule","Schedule","once","recurWhile","a","_tag","defaultErrorHandler","req","customErrorSchema","r3","method","retry","schema","S","encode","orDie","andThen","annotateCurrentSpan","pretty","squashWith","_","catchTags","succeed","HttpServerResponse","message","error","status","headers","HttpHeaders","fromInput","ValidationError","NotFoundError","NotLoggedInError","UnauthorizedError","InvalidStateError","ServiceUnavailableError","OptimisticConcurrencyException","x","is","fail"],"sources":["../../../src/api/routing/defaultErrorHandler.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.RequestSettings = void 0;
|
|
7
|
-
exports.makeRequestHandler = makeRequestHandler;
|
|
8
|
-
var _utils = require("@effect-app/core/utils");
|
|
9
|
-
var _RequestFiberSet = require("@effect-app/infra-adapters/RequestFiberSet");
|
|
10
|
-
var _util = require("@effect-app/infra/api/util");
|
|
11
|
-
var _errorReporter = require("@effect-app/infra/errorReporter");
|
|
12
|
-
var _effectApp = require("effect-app");
|
|
13
|
-
var _http = require("effect-app/http");
|
|
14
|
-
var _schema = require("effect-app/schema");
|
|
15
|
-
var _logger = require("../../logger.cjs");
|
|
16
|
-
var _setupRequest = require("../setupRequest.cjs");
|
|
17
|
-
var _base = require("./base.cjs");
|
|
18
|
-
const RequestSettings = exports.RequestSettings = _effectApp.FiberRef.unsafeMake({
|
|
19
|
-
verbose: false
|
|
20
|
-
});
|
|
21
|
-
function makeRequestHandler(handler, errorHandler, middlewareLayer) {
|
|
22
|
-
const {
|
|
23
|
-
Request,
|
|
24
|
-
Response,
|
|
25
|
-
h: handle
|
|
26
|
-
} = handler;
|
|
27
|
-
const response = Response ? Response : _effectApp.S.Void;
|
|
28
|
-
const resp = response;
|
|
29
|
-
// TODO: consider if the alternative of using the struct schema is perhaps just better.
|
|
30
|
-
const encoder = "fields" in resp && resp.fields ? _effectApp.S.encode(handler.rt === "raw" ? _effectApp.S.encodedSchema(_effectApp.S.Struct(resp.fields)) : _effectApp.S.Struct(resp.fields))
|
|
31
|
-
// ? (i: any) => {
|
|
32
|
-
// if (i instanceof (response as any)) return S.encodeSync(response)(i)
|
|
33
|
-
// else return S.encodeSync(response)(new (response as any)(i))
|
|
34
|
-
// }
|
|
35
|
-
: _effectApp.S.encode(handler.rt === "raw" ? _effectApp.S.encodedSchema(resp) : resp);
|
|
36
|
-
// const encodeResponse = adaptResponse
|
|
37
|
-
// ? (req: ReqA) => Encoder.for(adaptResponse(req))
|
|
38
|
-
// : () => encoder
|
|
39
|
-
const requestParsers = (0, _base.makeRequestParsers)(Request);
|
|
40
|
-
const parseRequest = (0, _base.parseRequestParams)(requestParsers);
|
|
41
|
-
const getParams = _effectApp.Effect.map(_effectApp.Effect.all({
|
|
42
|
-
rcx: _http.HttpRouter.RouteContext,
|
|
43
|
-
searchParms: _http.HttpServerRequest.ParsedSearchParams,
|
|
44
|
-
req: _effectApp.Effect.flatMap(_http.HttpServerRequest.HttpServerRequest, req => req.json.pipe(_effectApp.Effect.map(body => ({
|
|
45
|
-
body,
|
|
46
|
-
headers: req.headers
|
|
47
|
-
}))))
|
|
48
|
-
}), ({
|
|
49
|
-
rcx,
|
|
50
|
-
req,
|
|
51
|
-
searchParms
|
|
52
|
-
}) => ({
|
|
53
|
-
params: rcx.params,
|
|
54
|
-
query: searchParms,
|
|
55
|
-
body: req.body,
|
|
56
|
-
headers: req.headers,
|
|
57
|
-
cookies: {} // req.cookies
|
|
58
|
-
}));
|
|
59
|
-
return _effectApp.Effect.gen(function* () {
|
|
60
|
-
const req = yield* _http.HttpServerRequest.HttpServerRequest;
|
|
61
|
-
const res = _http.HttpServerResponse.empty().pipe(_ => req.method === "GET" ? _http.HttpServerResponse.setHeader(_, "Cache-Control", "no-store") : _);
|
|
62
|
-
const pars = yield* getParams;
|
|
63
|
-
const settings = yield* _effectApp.FiberRef.get(RequestSettings);
|
|
64
|
-
const eff =
|
|
65
|
-
// TODO: we don;t have access to user id here cause context is not yet created
|
|
66
|
-
_logger.InfraLogger.logInfo("Incoming request").pipe(_effectApp.Effect.annotateLogs({
|
|
67
|
-
method: req.method,
|
|
68
|
-
path: req.originalUrl,
|
|
69
|
-
...(settings.verbose ? {
|
|
70
|
-
reqPath: (0, _utils.pretty)(pars.params),
|
|
71
|
-
reqQuery: (0, _utils.pretty)(pars.query),
|
|
72
|
-
reqBody: (0, _utils.pretty)(pars.body),
|
|
73
|
-
reqCookies: (0, _utils.pretty)(pars.cookies),
|
|
74
|
-
reqHeaders: (0, _utils.pretty)(pars.headers)
|
|
75
|
-
} : undefined)
|
|
76
|
-
}), _effectApp.Effect.andThen(_effectApp.Effect.suspend(() => {
|
|
77
|
-
const handleRequest = parseRequest(pars).pipe(_effectApp.Effect.map(({
|
|
78
|
-
body,
|
|
79
|
-
path,
|
|
80
|
-
query
|
|
81
|
-
}) => {
|
|
82
|
-
const hn = {
|
|
83
|
-
...(body.pipe(_effectApp.Option.getOrUndefined) ?? {}),
|
|
84
|
-
...(query.pipe(_effectApp.Option.getOrUndefined) ?? {}),
|
|
85
|
-
...(path.pipe(_effectApp.Option.getOrUndefined) ?? {})
|
|
86
|
-
};
|
|
87
|
-
return hn;
|
|
88
|
-
}), _effectApp.Effect.tap(parsedReq => _effectApp.Effect.annotateCurrentSpan("requestInput", Object.entries(parsedReq).reduce((prev, [key, value]) => {
|
|
89
|
-
prev[key] = key === "password" ? "<redacted>" : typeof value === "string" || typeof value === "number" || typeof value === "boolean" ? typeof value === "string" && value.length > 256 ? value.substring(0, 253) + "..." : value : Array.isArray(value) ? `Array[${value.length}]` : value === null || value === undefined ? `${value}` : typeof value === "object" && value ? `Object[${Object.keys(value).length}]` : typeof value;
|
|
90
|
-
return prev;
|
|
91
|
-
}, {}))), _effectApp.Effect.flatMap(parsedReq => handle(parsedReq).pipe(_effectApp.Effect.provideService(handler.Request.Tag, parsedReq), _effectApp.Effect.flatMap(encoder), _effectApp.Effect.map(r => res.pipe(_http.HttpServerResponse.setBody(_http.HttpBody.unsafeJson(r)), _http.HttpServerResponse.setStatus(r === undefined ? 204 : 200))))));
|
|
92
|
-
const r = middlewareLayer ? _effectApp.Effect.provide(handleRequest, middlewareLayer)
|
|
93
|
-
// PR is not relevant here
|
|
94
|
-
: handleRequest;
|
|
95
|
-
return errorHandler(req, res, r.pipe(_effectApp.Effect.andThen(_RequestFiberSet.RequestFiberSet.register)));
|
|
96
|
-
})), _effectApp.Effect.catchAllCause(cause => _effectApp.Effect.sync(() => _http.HttpServerResponse.setStatus(res, 500)).pipe(_effectApp.Effect.tap(res => _effectApp.Effect.all([(0, _errorReporter.reportError)("request")(cause, {
|
|
97
|
-
path: req.originalUrl,
|
|
98
|
-
method: req.method
|
|
99
|
-
}), _effectApp.Effect.suspend(() => {
|
|
100
|
-
const headers = res.headers;
|
|
101
|
-
return _logger.InfraLogger.logError("Finished request", cause).pipe(_effectApp.Effect.annotateLogs({
|
|
102
|
-
method: req.method,
|
|
103
|
-
path: req.originalUrl,
|
|
104
|
-
statusCode: res.status.toString(),
|
|
105
|
-
reqPath: (0, _utils.pretty)(pars.params),
|
|
106
|
-
reqQuery: (0, _utils.pretty)(pars.query),
|
|
107
|
-
reqBody: (0, _utils.pretty)(pars.body),
|
|
108
|
-
reqCookies: (0, _utils.pretty)(pars.cookies),
|
|
109
|
-
reqHeaders: (0, _utils.pretty)(pars.headers),
|
|
110
|
-
resHeaders: (0, _utils.pretty)(Object.entries(headers).reduce((prev, [key, value]) => {
|
|
111
|
-
prev[key] = value && typeof value === "string" ? (0, _util.snipString)(value) : value;
|
|
112
|
-
return prev;
|
|
113
|
-
}, {}))
|
|
114
|
-
}));
|
|
115
|
-
})], {
|
|
116
|
-
concurrency: "inherit"
|
|
117
|
-
}))).pipe(_effectApp.Effect.tapErrorCause(cause => _effectApp.Console.error("Error occurred while reporting error", cause)))), _effectApp.Effect.tap(res => _logger.InfraLogger.logInfo("Finished request").pipe(_effectApp.Effect.annotateLogs({
|
|
118
|
-
method: req.method,
|
|
119
|
-
path: req.originalUrl,
|
|
120
|
-
statusCode: res.status.toString(),
|
|
121
|
-
...(settings.verbose ? {
|
|
122
|
-
resHeaders: (0, _utils.pretty)(res.headers)
|
|
123
|
-
} : undefined)
|
|
124
|
-
}))));
|
|
125
|
-
return yield* eff;
|
|
126
|
-
}).pipe(_ => (0, _setupRequest.updateRequestContext)(_, (0, _utils.copy)(_ => ({
|
|
127
|
-
name: (0, _schema.NonEmptyString255)(handler.name)
|
|
128
|
-
}))));
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=makeRequestHandler.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"makeRequestHandler.cjs","names":["_utils","require","_RequestFiberSet","_util","_errorReporter","_effectApp","_http","_schema","_logger","_setupRequest","_base","RequestSettings","exports","FiberRef","unsafeMake","verbose","makeRequestHandler","handler","errorHandler","middlewareLayer","Request","Response","h","handle","response","S","Void","resp","encoder","fields","encode","rt","encodedSchema","Struct","requestParsers","makeRequestParsers","parseRequest","parseRequestParams","getParams","Effect","map","all","rcx","HttpRouter","RouteContext","searchParms","HttpServerRequest","ParsedSearchParams","req","flatMap","json","pipe","body","headers","params","query","cookies","gen","res","HttpServerResponse","empty","_","method","setHeader","pars","settings","get","eff","InfraLogger","logInfo","annotateLogs","path","originalUrl","reqPath","pretty","reqQuery","reqBody","reqCookies","reqHeaders","undefined","andThen","suspend","handleRequest","hn","Option","getOrUndefined","tap","parsedReq","annotateCurrentSpan","Object","entries","reduce","prev","key","value","length","substring","Array","isArray","keys","provideService","Tag","r","setBody","HttpBody","unsafeJson","setStatus","provide","RequestFiberSet","register","catchAllCause","cause","sync","reportError","logError","statusCode","status","toString","resHeaders","snipString","concurrency","tapErrorCause","Console","error","updateRequestContext","copy","name","NonEmptyString255"],"sources":["../../../src/api/routing/makeRequestHandler.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.RouteDescriptors = void 0;
|
|
7
|
-
exports.match = match;
|
|
8
|
-
var _effectApp = require("effect-app");
|
|
9
|
-
var _http = require("effect-app/http");
|
|
10
|
-
var _makeRequestHandler = require("./makeRequestHandler.cjs");
|
|
11
|
-
const RouteDescriptors = exports.RouteDescriptors = _effectApp.Context.GenericTag("@services/RouteDescriptors");
|
|
12
|
-
function match(requestHandler, errorHandler, middleware) {
|
|
13
|
-
let middlewareLayer = undefined;
|
|
14
|
-
if (middleware) {
|
|
15
|
-
const {
|
|
16
|
-
handler,
|
|
17
|
-
makeRequestLayer
|
|
18
|
-
} = middleware(requestHandler);
|
|
19
|
-
requestHandler = handler; // todo
|
|
20
|
-
middlewareLayer = makeRequestLayer;
|
|
21
|
-
}
|
|
22
|
-
return _effectApp.Effect.gen(function* () {
|
|
23
|
-
// const rdesc = yield* $(RouteDescriptors.flatMap((_) => _.get))
|
|
24
|
-
const handler = (0, _makeRequestHandler.makeRequestHandler)(requestHandler,
|
|
25
|
-
// one argument if no middleware, 2 if has middleware. TODO: clean this shit up
|
|
26
|
-
errorHandler, middlewareLayer);
|
|
27
|
-
const route = _http.HttpRouter.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler, {
|
|
28
|
-
uninterruptible: requestHandler.Request.method !== "GET"
|
|
29
|
-
} // we don't want commands to be interruptible
|
|
30
|
-
);
|
|
31
|
-
// TODO
|
|
32
|
-
// rdesc.push(makeRouteDescriptor(
|
|
33
|
-
// requestHandler.Request.path,
|
|
34
|
-
// requestHandler.Request.method,
|
|
35
|
-
// requestHandler
|
|
36
|
-
// ))
|
|
37
|
-
return route;
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
//# sourceMappingURL=match.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"match.cjs","names":["_effectApp","require","_http","_makeRequestHandler","RouteDescriptors","exports","Context","GenericTag","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","Effect","gen","makeRequestHandler","route","HttpRouter","makeRoute","Request","method","path","uninterruptible"],"sources":["../../../src/api/routing/match.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAOA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAGA,IAAAE,mBAAA,GAAAF,OAAA;AAGO,MAAMG,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,kBAAO,CAACC,UAAU,CAA4B,4BAA4B,CAAC;AAErG,SAAUC,KAAKA,CAoBnBC,cAeC,EACDC,YAQC,EACDC,UAkBC;EAED,IAAIC,eAAe,GAA2CC,SAAS;EACvE,IAAIF,UAAU,EAAE;IACd,MAAM;MAAEG,OAAO;MAAEC;IAAgB,CAAE,GAAGJ,UAAU,CAACF,cAAc,CAAC;IAChEA,cAAc,GAAGK,OAAc,EAAC;IAChCF,eAAe,GAAGG,gBAAgB;EACpC;EACA,OAAOC,iBAAM,CAACC,GAAG,CAAC,aAAS;IACzB;IAEA,MAAMH,OAAO,GAAG,IAAAI,sCAAkB,EAkBhCT,cAAqB;IAAE;IACvBC,YAAY,EACZE,eAAe,CAChB;IAED,MAAMO,KAAK,GAAGC,gBAAU,CAACC,SAAS,CAChCZ,cAAc,CAACa,OAAO,CAACC,MAAM,EAC7Bd,cAAc,CAACa,OAAO,CAACE,IAAI,EAC3BV,OAAO,EACP;MAAEW,eAAe,EAAEhB,cAAc,CAACa,OAAO,CAACC,MAAM,KAAK;IAAK,CAAE,CAAC;KAC9D;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOJ,KAAK;EACd,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -1,136 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.arrAsRouteDescriptionAny = arrAsRouteDescriptionAny;
|
|
7
|
-
exports.asRouteDescriptionAny = asRouteDescriptionAny;
|
|
8
|
-
exports.makeRouteDescriptor = makeRouteDescriptor;
|
|
9
|
-
function asRouteDescriptionAny(i) {
|
|
10
|
-
return i;
|
|
11
|
-
}
|
|
12
|
-
function arrAsRouteDescriptionAny(arr) {
|
|
13
|
-
return arr.map(asRouteDescriptionAny);
|
|
14
|
-
}
|
|
15
|
-
function makeRouteDescriptor(path, method, handler) {
|
|
16
|
-
return {
|
|
17
|
-
path,
|
|
18
|
-
handler,
|
|
19
|
-
method,
|
|
20
|
-
_tag: "Schema"
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
// export function makeFromSchema<ResA>(
|
|
24
|
-
// e: RouteDescriptor<any, any, any, any, any, any, ResA, any>
|
|
25
|
-
// ) {
|
|
26
|
-
// const jsonSchema_ = OpenApi.for
|
|
27
|
-
// const jsonSchema = <E, A>(r: REST.ReqRes<A, E, any>) => jsonSchema_(r)
|
|
28
|
-
// const { Request: Req, Response: Res_, ResponseOpenApi } = e.handler
|
|
29
|
-
// const r = ResponseOpenApi ?? Res_
|
|
30
|
-
// const Res = r ? S.extractSchema(r) : S.Void
|
|
31
|
-
// // TODO EffectOption.fromNullable(Req.Headers).flatMapOpt(jsonSchema)
|
|
32
|
-
// // TODO: use the path vs body etc serialisation also in the Client.
|
|
33
|
-
// const makeReqQuerySchema = Effect.sync(() => Option.fromNullable(Req.Query)).flatMap((_) =>
|
|
34
|
-
// _.match({
|
|
35
|
-
// onNone: () => Effect.sync(() => Option.none()),
|
|
36
|
-
// onSome: (_) => jsonSchema(_).map(Option.some)
|
|
37
|
-
// })
|
|
38
|
-
// )
|
|
39
|
-
// const makeReqHeadersSchema = Effect.sync(() => Option.fromNullable(Req.Headers)).flatMap((_) =>
|
|
40
|
-
// _.match({
|
|
41
|
-
// onNone: () => Effect.sync(() => Option.none()),
|
|
42
|
-
// onSome: (_) => jsonSchema(_).map(Option.some)
|
|
43
|
-
// })
|
|
44
|
-
// )
|
|
45
|
-
// const makeReqCookieSchema = Effect.sync(() => Option.fromNullable(Req.Cookie)).flatMap((_) =>
|
|
46
|
-
// _.match({
|
|
47
|
-
// onNone: () => Effect.sync(() => Option.none()),
|
|
48
|
-
// onSome: (_) => jsonSchema(_).map(Option.some)
|
|
49
|
-
// })
|
|
50
|
-
// )
|
|
51
|
-
// const makeReqPathSchema = Effect.sync(() => Option.fromNullable(Req.Path)).flatMap((_) =>
|
|
52
|
-
// _.match({
|
|
53
|
-
// onNone: () => Effect.sync(() => Option.none()),
|
|
54
|
-
// onSome: (_) => jsonSchema(_).map(Option.some)
|
|
55
|
-
// })
|
|
56
|
-
// )
|
|
57
|
-
// const makeReqBodySchema = Effect.sync(() => Option.fromNullable(Req.Body)).flatMap((_) =>
|
|
58
|
-
// _.match({
|
|
59
|
-
// onNone: () => Effect.sync(() => Option.none()),
|
|
60
|
-
// onSome: (_) => jsonSchema(_).map(Option.some)
|
|
61
|
-
// })
|
|
62
|
-
// )
|
|
63
|
-
// // const makeReqSchema = schema(Req)
|
|
64
|
-
// const makeResSchema = jsonSchema_(Res)
|
|
65
|
-
// function makeParameters(inn: ParameterLocation) {
|
|
66
|
-
// return (a: Option<JSONSchema | SubSchema>) => {
|
|
67
|
-
// return a
|
|
68
|
-
// .flatMap((o) => (isObjectSchema(o) ? Option.some(o) : Option.none()))
|
|
69
|
-
// .map((x) => {
|
|
70
|
-
// // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
71
|
-
// return Object.keys(x.properties!).map((p) => {
|
|
72
|
-
// // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
73
|
-
// const schema = x.properties![p]
|
|
74
|
-
// const required = Boolean(x.required?.includes(p))
|
|
75
|
-
// return { name: p, in: inn, required, schema }
|
|
76
|
-
// })
|
|
77
|
-
// })
|
|
78
|
-
// .getOrElse(() => [])
|
|
79
|
-
// }
|
|
80
|
-
// }
|
|
81
|
-
// return Effect
|
|
82
|
-
// .all({
|
|
83
|
-
// req: jsonSchema(Req.Model),
|
|
84
|
-
// reqQuery: makeReqQuerySchema,
|
|
85
|
-
// reqHeaders: makeReqHeadersSchema,
|
|
86
|
-
// reqBody: makeReqBodySchema,
|
|
87
|
-
// reqPath: makeReqPathSchema,
|
|
88
|
-
// reqCookie: makeReqCookieSchema,
|
|
89
|
-
// res: makeResSchema
|
|
90
|
-
// })
|
|
91
|
-
// .map((_) => {
|
|
92
|
-
// // console.log("$$$ REQ", _.req)
|
|
93
|
-
// const isEmpty = !e.handler.Response || e.handler.Response === S.Void
|
|
94
|
-
// return {
|
|
95
|
-
// path: e.path,
|
|
96
|
-
// method: e.method.toLowerCase(),
|
|
97
|
-
// tags: e.info?.tags,
|
|
98
|
-
// description: _.req?.description,
|
|
99
|
-
// summary: _.req?.summary,
|
|
100
|
-
// operationId: _.req?.title,
|
|
101
|
-
// parameters: [
|
|
102
|
-
// ...makeParameters("path")(_.reqPath),
|
|
103
|
-
// ...makeParameters("query")(_.reqQuery),
|
|
104
|
-
// ...makeParameters("header")(_.reqHeaders),
|
|
105
|
-
// ...makeParameters("cookie")(_.reqCookie)
|
|
106
|
-
// ],
|
|
107
|
-
// requestBody: _
|
|
108
|
-
// .reqBody
|
|
109
|
-
// .map((schema) => ({
|
|
110
|
-
// content: { "application/json": { schema } }
|
|
111
|
-
// }))
|
|
112
|
-
// .value,
|
|
113
|
-
// responses: [
|
|
114
|
-
// isEmpty
|
|
115
|
-
// ? new Response(204, { description: "Empty" })
|
|
116
|
-
// : new Response(200, {
|
|
117
|
-
// description: "OK",
|
|
118
|
-
// content: { "application/json": { schema: _.res } }
|
|
119
|
-
// }),
|
|
120
|
-
// new Response(400, { description: "ValidationError" })
|
|
121
|
-
// ]
|
|
122
|
-
// .concat(
|
|
123
|
-
// e.path.includes(":") && isEmpty
|
|
124
|
-
// ? [new Response(404, { description: "NotFoundError" })]
|
|
125
|
-
// : []
|
|
126
|
-
// )
|
|
127
|
-
// }
|
|
128
|
-
// })
|
|
129
|
-
// }
|
|
130
|
-
// class Response {
|
|
131
|
-
// constructor(
|
|
132
|
-
// public readonly statusCode: number,
|
|
133
|
-
// public readonly type: any // string | JSONSchema | SubSchema
|
|
134
|
-
// ) {}
|
|
135
|
-
// }
|
|
136
|
-
//# sourceMappingURL=routing.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routing.cjs","names":["asRouteDescriptionAny","i","arrAsRouteDescriptionAny","arr","map","makeRouteDescriptor","path","method","handler","_tag"],"sources":["../../../../src/api/routing/schema/routing.ts"],"sourcesContent":[null],"mappings":";;;;;;;;AAyCM,SAAUA,qBAAqBA,CAA+BC,CAAI;EACtE,OAAOA,CAAuB;AAChC;AAEM,SAAUC,wBAAwBA,CACtCC,GAAqB;EAErB,OAAOA,GAAG,CAACC,GAAG,CAACJ,qBAAqB,CAAC;AACvC;AAiCM,SAAUK,mBAAmBA,CAWjCC,IAAkB,EAClBC,MAAc,EACdC,OAUC;EAYD,OAAO;IAAEF,IAAI;IAAEE,OAAO;IAAED,MAAM;IAAEE,IAAI,EAAE;EAAQ,CAAE;AAClD;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicMiddleware.cjs","names":["_rpc","require","_effectApp","merge","a","b","undefined","length","S","Union","Never","makeRpcClient","errors","generalErrors","TaggedRequest","errorSchemas","Object","values","tag","fields","config","req","payload","failure","success","Void","assign","exports","makeRpc","middleware","effect","schema","handler","moduleName","Rpc","execute"],"sources":["../../../src/api/routing2/DynamicMiddleware.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,IAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AALA;AACA;AACA;;AAuEA,MAAME,KAAK,GAAGA,CAACC,CAAM,EAAEC,CAAa;AAClC;AACAD,CAAC,KAAKE,SAAS,IAAID,CAAC,CAACE,MAAM,GAAGC,YAAC,CAACC,KAAK,CAACL,CAAC,EAAE,GAAGC,CAAC,CAAC,GAAGD,CAAC,KAAKE,SAAS,GAAGF,CAAC,GAAGC,CAAC,CAACE,MAAM,GAAGC,YAAC,CAACC,KAAK,CAAC,GAAGJ,CAAC,CAAC,GAAGG,YAAC,CAACE,KAAK;AAEpG,MAAMC,aAAa,GAAGA,CAK3BC,MAA6C,EAC7CC,aAA6B,KAC3B;EAGF,SAASC,aAAaA,CAAA;IAqEpB;IACA,MAAMC,YAAY,GAAGC,MAAM,CAACC,MAAM,CAACL,MAAM,CAAC;IAC1C,OAAQ,CACNM,GAAQ,EACRC,MAAc,EACdC,MAAU,KACR;MACF,MAAMC,GAAG,GAAGb,YAAC,CAACM,aAAa,EAAQ,CAACI,GAAG,EAAE;QACvCI,OAAO,EAAEH,MAAM;QACfI,OAAO,EAAEpB,KAAK,CAACiB,MAAM,EAAEG,OAAO,EAAE,CAAC,GAAGR,YAAY,EAAEF,aAAa,CAAC,CAAC;QACjEW,OAAO,EAAEJ,MAAM,EAAEI,OAAO,IAAIhB,YAAC,CAACiB;OAC/B,CAAC;MACF,OAAOT,MAAM,CAACU,MAAM,CAACL,GAAG,EAAE;QAAED;MAAM,CAAE,CAAC;IACvC,CAAC;EACH;EAEA,OAAO;IACLN;GACD;AACH,CAAC;AAAAa,OAAA,CAAAhB,aAAA,GAAAA,aAAA;AA0BM,MAAMiB,OAAO,GAClBC,UAAuC,IACrC;EACF,OAAO;IACLC,MAAM,EAAEA,CACNC,MAAqC,EACrCC,OAMC,EACDC,UAAmB,KACjB;MACF,OAAOC,QAAG,CAACJ,MAAM,CACfC,MAAM,EACNF,UAAU,CAACM,OAAO,CAACJ,MAAM,EAAEC,OAAO,EAAEC,UAAU,CAAC,CAChD;IACH;GACD;AACH,CAAC;AAAAN,OAAA,CAAAC,OAAA,GAAAA,OAAA","ignoreList":[]}
|