@effect-app/infra 0.133.0-next.50 → 0.133.0-next.52

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.
Files changed (40) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/_cjs/api/http.cjs +42 -0
  3. package/_cjs/api/http.cjs.map +1 -0
  4. package/_cjs/api/routing/base.cjs +169 -0
  5. package/_cjs/api/routing/base.cjs.map +1 -0
  6. package/_cjs/api/routing/defaultErrorHandler.cjs +50 -0
  7. package/_cjs/api/routing/defaultErrorHandler.cjs.map +1 -0
  8. package/_cjs/api/routing/makeRequestHandler.cjs +134 -0
  9. package/_cjs/api/routing/makeRequestHandler.cjs.map +1 -0
  10. package/_cjs/api/routing/match.cjs +45 -0
  11. package/_cjs/api/routing/match.cjs.map +1 -0
  12. package/_cjs/api/routing.cjs +50 -0
  13. package/_cjs/api/routing.cjs.map +1 -0
  14. package/_src/api/http.ts +26 -0
  15. package/_src/api/routing/base.ts +476 -0
  16. package/_src/api/routing/defaultErrorHandler.ts +83 -0
  17. package/_src/api/routing/makeRequestHandler.ts +278 -0
  18. package/_src/api/routing/match.ts +119 -0
  19. package/_src/api/routing.ts +11 -0
  20. package/dist/api/http.d.ts +16 -0
  21. package/dist/api/http.d.ts.map +1 -0
  22. package/dist/api/http.js +12 -0
  23. package/dist/api/routing/base.d.ts +117 -0
  24. package/dist/api/routing/base.d.ts.map +1 -0
  25. package/dist/api/routing/base.js +137 -0
  26. package/dist/api/routing/defaultErrorHandler.d.ts +16 -0
  27. package/dist/api/routing/defaultErrorHandler.d.ts.map +1 -0
  28. package/dist/api/routing/defaultErrorHandler.js +42 -0
  29. package/dist/api/routing/makeRequestHandler.d.ts +20 -0
  30. package/dist/api/routing/makeRequestHandler.d.ts.map +1 -0
  31. package/dist/api/routing/makeRequestHandler.js +121 -0
  32. package/dist/api/routing/match.d.ts +12 -0
  33. package/dist/api/routing/match.d.ts.map +1 -0
  34. package/dist/api/routing/match.js +31 -0
  35. package/dist/api/routing.d.ts +5 -0
  36. package/dist/api/routing.d.ts.map +1 -0
  37. package/dist/api/routing.js +8 -0
  38. package/dist/services/Repository.d.ts +2 -2
  39. package/dist/services/Repository.d.ts.map +1 -1
  40. package/package.json +67 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @effect-app/infra
2
2
 
3
+ ## 0.133.0-next.52
4
+
5
+ ### Patch Changes
6
+
7
+ - 19dc3b1: ext
8
+ - Updated dependencies [19dc3b1]
9
+ - @effect-app/prelude@0.107.0-next.43
10
+ - @effect-app/schema@0.150.0-next.28
11
+ - @effect-app/infra-adapters@0.85.0-next.43
12
+
13
+ ## 0.133.0-next.51
14
+
15
+ ### Patch Changes
16
+
17
+ - 6208553: re-add routing
18
+
3
19
  ## 0.133.0-next.50
4
20
 
5
21
  ### Patch Changes
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HttpHeaders = void 0;
7
+ Object.defineProperty(exports, "HttpRequestError", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _ServerError.RequestError;
11
+ }
12
+ });
13
+ Object.defineProperty(exports, "HttpRouteContext", {
14
+ enumerable: true,
15
+ get: function () {
16
+ return _Router.RouteContext;
17
+ }
18
+ });
19
+ exports.HttpServer = void 0;
20
+ Object.defineProperty(exports, "HttpServerRequest", {
21
+ enumerable: true,
22
+ get: function () {
23
+ return _ServerRequest.ServerRequest;
24
+ }
25
+ });
26
+ exports.unifyRoute = unifyRoute;
27
+ var _HttpHeaders = _interopRequireWildcard(require("@effect/platform/Http/Headers"));
28
+ exports.HttpHeaders = _HttpHeaders;
29
+ var _Router = require("@effect/platform/Http/Router");
30
+ var _ServerError = require("@effect/platform/Http/ServerError");
31
+ var _ServerRequest = require("@effect/platform/Http/ServerRequest");
32
+ var _HttpServer = _interopRequireWildcard(require("@effect/platform/Http/Server"));
33
+ exports.HttpServer = _HttpServer;
34
+ 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); }
35
+ 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 && Object.prototype.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; }
36
+ /**
37
+ * @tsplus unify effect/platform/Http/Router/Route
38
+ */
39
+ function unifyRoute(self) {
40
+ return self;
41
+ }
42
+ //# sourceMappingURL=http.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.cjs","names":["_Router","require","_ServerError","_ServerRequest","_HttpServer","_interopRequireWildcard","exports","HttpServer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","unifyRoute","self"],"sources":["../../_src/api/http.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAAwF,IAAAG,WAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAAAK,OAAA,CAAAC,UAAA,GAAAH,WAAA;AAAA,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAJ,wBAAAI,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAKxF;;;AAGM,SAAUY,UAAUA,CACxBC,IAAO;EAKP,OAAOA,IAAI;AACb"}
@@ -0,0 +1,169 @@
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
+ exports.respondSuccess = respondSuccess;
10
+ var tsplus_module_1 = _interopRequireWildcard(require("effect/Effect"));
11
+ var tsplus_module_2 = _interopRequireWildcard(require("effect/Exit"));
12
+ var tsplus_module_3 = _interopRequireWildcard(require("effect/Cause"));
13
+ var tsplus_module_4 = _interopRequireWildcard(require("@effect-app/core/Function"));
14
+ var tsplus_module_5 = _interopRequireWildcard(require("effect/Option"));
15
+ var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/core/Effect"));
16
+ var S = _interopRequireWildcard(require("@effect-app/schema"));
17
+ var _errors = require("@effect-app/infra/errors");
18
+ 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); }
19
+ 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 && Object.prototype.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; }
20
+ /* eslint-disable @typescript-eslint/no-explicit-any */
21
+ /* eslint-disable @typescript-eslint/ban-types */
22
+
23
+ // function getErrorMessage(current: ContextEntry) {
24
+ // switch (current.type.name) {
25
+ // case "NonEmptyString":
26
+ // return "Must not be empty"
27
+ // }
28
+ // if (current.type.name?.startsWith("NonEmptyReadonlyArray<")) {
29
+ // return "Must not be empty"
30
+ // }
31
+ // return `Invalid value specified`
32
+ // }
33
+ function decodeErrors(x) {
34
+ return [x];
35
+ }
36
+ // const ValidationApplicative = Effect.getValidationApplicative(
37
+ // makeAssociative<ReadonlyArray<{ type: string; errors: ReturnType<typeof decodeErrors> }>>(
38
+ // (l, r) => l.concat(r)
39
+ // )
40
+ // )
41
+ // const structValidation = DSL.structF(ValidationApplicative)
42
+ function parseRequestParams(parsers) {
43
+ return ({
44
+ body,
45
+ cookies,
46
+ headers,
47
+ params,
48
+ query
49
+ }) => tsplus_module_1.flatMap(tsplus_module_1.all({
50
+ body: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseBody(body)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
51
+ _tag: "Success",
52
+ value: _.value
53
+ } : {
54
+ _tag: "Failure",
55
+ errors: tsplus_module_3.failures(_.cause)
56
+ })),
57
+ cookie: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseCookie(cookies)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
58
+ _tag: "Success",
59
+ value: _.value
60
+ } : {
61
+ _tag: "Failure",
62
+ errors: tsplus_module_3.failures(_.cause)
63
+ })),
64
+ headers: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseHeaders(headers)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
65
+ _tag: "Success",
66
+ value: _.value
67
+ } : {
68
+ _tag: "Failure",
69
+ errors: tsplus_module_3.failures(_.cause)
70
+ })),
71
+ query: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parseQuery(query)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
72
+ _tag: "Success",
73
+ value: _.value
74
+ } : {
75
+ _tag: "Failure",
76
+ errors: tsplus_module_3.failures(_.cause)
77
+ })),
78
+ path: tsplus_module_1.flatMap(tsplus_module_1.exit(parsers.parsePath(params)), _ => tsplus_module_2.isFailure(_) && !tsplus_module_3.isFailure(_.cause) ? tsplus_module_1.failCauseSync(() => _.cause) : tsplus_module_1.sync(() => tsplus_module_2.isSuccess(_) ? {
79
+ _tag: "Success",
80
+ value: _.value
81
+ } : {
82
+ _tag: "Failure",
83
+ errors: tsplus_module_3.failures(_.cause)
84
+ }))
85
+ }), ({
86
+ body,
87
+ cookie,
88
+ headers,
89
+ path,
90
+ query
91
+ }) => {
92
+ const errors = [];
93
+ if (body._tag === "Failure") {
94
+ errors.push(makeError("body")(body.errors));
95
+ }
96
+ if (cookie._tag === "Failure") {
97
+ errors.push(makeError("cookie")(cookie.errors));
98
+ }
99
+ if (headers._tag === "Failure") {
100
+ errors.push(makeError("headers")(headers.errors));
101
+ }
102
+ if (path._tag === "Failure") {
103
+ errors.push(makeError("path")(path.errors));
104
+ }
105
+ if (query._tag === "Failure") {
106
+ errors.push(makeError("query")(query.errors));
107
+ }
108
+ if (errors.length) {
109
+ return new _errors.ValidationError({
110
+ errors
111
+ });
112
+ }
113
+ return tsplus_module_1.sync(() => ({
114
+ body: body.value,
115
+ cookie: cookie.value,
116
+ headers: headers.value,
117
+ path: path.value,
118
+ query: query.value
119
+ }));
120
+ });
121
+ }
122
+ // // eslint-disable-next-line @typescript-eslint/no-explicit-any
123
+ // function mapErrors_<E, NE, NER extends Record<string, Effect<any, E, any>>>(
124
+ // t: NER, // TODO: enforce non empty
125
+ // mapErrors: (k: keyof NER) => (err: E) => NE
126
+ // ): {
127
+ // [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
128
+ // } {
129
+ // return typedKeysOf(t).reduce(
130
+ // (prev, cur) => {
131
+ // prev[cur] = t[cur].mapError(mapErrors(cur))
132
+ // return prev
133
+ // },
134
+ // {} as {
135
+ // [K in keyof NER]: Effect<_R<NER[K]>, NE, Effect.Success<NER[K]>>
136
+ // }
137
+ // )
138
+ // }
139
+ function makeError(type) {
140
+ return e => [{
141
+ type,
142
+ errors: decodeErrors(e)
143
+ }];
144
+ }
145
+ function respondSuccess(encodeResponse) {
146
+ return (req, res) => tsplus_module_4.flow(encodeResponse(req), tsplus_module_1.succeed, _ => tsplus_module_1.flatMap(_, r => tsplus_module_1.sync(() => {
147
+ r === undefined ? res.status(204).send() : res.status(200).send(JSON.stringify(r));
148
+ })));
149
+ }
150
+ function makeRequestParsers(Request) {
151
+ const ph = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Headers), s => s), S.parse));
152
+ const parseHeaders = u => tsplus_module_6.flatMapOption(ph, d => d(u));
153
+ const pq = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Query), s => s), S.parse));
154
+ const parseQuery = u => tsplus_module_6.flatMapOption(pq, d => d(u));
155
+ const pb = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Body), s => s), S.parse));
156
+ const parseBody = u => tsplus_module_6.flatMapOption(pb, d => d(u));
157
+ const pp = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Path), s => s), S.parse));
158
+ const parsePath = u => tsplus_module_6.flatMapOption(pp, d => d(u));
159
+ const pc = tsplus_module_1.sync(() => tsplus_module_5.map(tsplus_module_5.map(tsplus_module_5.fromNullable(Request.Cookie), s => s), S.parse));
160
+ const parseCookie = u => tsplus_module_6.flatMapOption(pc, d => d(u));
161
+ return {
162
+ parseBody,
163
+ parseCookie,
164
+ parseHeaders,
165
+ parsePath,
166
+ parseQuery
167
+ };
168
+ }
169
+ //# sourceMappingURL=base.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.cjs","names":["S","_interopRequireWildcard","require","_errors","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","decodeErrors","x","parseRequestParams","parsers","body","cookies","headers","params","query","tsplus_module_1","flatMap","all","exit","parseBody","_","tsplus_module_2","isFailure","tsplus_module_3","cause","failCauseSync","sync","isSuccess","_tag","value","errors","failures","cookie","parseCookie","parseHeaders","parseQuery","path","parsePath","push","makeError","length","ValidationError","type","respondSuccess","encodeResponse","req","res","tsplus_module_4","flow","succeed","undefined","status","send","JSON","stringify","makeRequestParsers","Request","ph","tsplus_module_5","map","fromNullable","Headers","s","parse","tsplus_module_6","flatMapOption","d","pq","Query","pb","Body","pp","Path","pc","Cookie"],"sources":["../../../_src/api/routing/base.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,50 @@
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 tsplus_module_1 = _interopRequireWildcard(require("effect/Data"));
10
+ var tsplus_module_2 = _interopRequireWildcard(require("@effect/platform/Http/Body"));
11
+ var tsplus_module_3 = _interopRequireWildcard(require("@effect/platform/Http/ServerResponse"));
12
+ var tsplus_module_4 = _interopRequireWildcard(require("effect/Effect"));
13
+ var tsplus_module_5 = _interopRequireWildcard(require("effect/Cause"));
14
+ var tsplus_module_6 = _interopRequireWildcard(require("effect/Schedule"));
15
+ var _errorReporter = require("@effect-app/infra/errorReporter");
16
+ var _http = require("../http.cjs");
17
+ 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); }
18
+ 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 && Object.prototype.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; }
19
+ class JWTError extends tsplus_module_1.TaggedClass("JWTError") {}
20
+ exports.JWTError = JWTError;
21
+ const logRequestError = (0, _errorReporter.logError)("Request");
22
+ function defaultBasicErrorHandler(_req, res, r2) {
23
+ const sendError = code => body => tsplus_module_4.sync(() => tsplus_module_3.setStatus(code)(tsplus_module_3.setBody(res, tsplus_module_2.unsafeJson(body))));
24
+ return tsplus_module_4.catchAll(tsplus_module_4.catchTag(tsplus_module_4.tapErrorCause(r2, cause => tsplus_module_5.isFailure(cause) ? logRequestError(cause) : tsplus_module_4.unit), "ValidationError", err => sendError(400)(err.errors))
25
+ // final catch all; expecting never so that unhandled known errors will show up
26
+ , err => tsplus_module_4.flatMap(tsplus_module_4.map(tsplus_module_4.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_4.die));
27
+ }
28
+ const optimisticConcurrencySchedule = tsplus_module_6.intersect(tsplus_module_6.recurWhile(a => a._tag === "OptimisticConcurrencyException"))(tsplus_module_6.once);
29
+ function defaultErrorHandler(req, res, r2) {
30
+ const r3 = req.method === "PATCH" ? tsplus_module_4.retry(r2, optimisticConcurrencySchedule) : r2;
31
+ const sendError = code => body => tsplus_module_4.sync(() => tsplus_module_3.setBody(tsplus_module_3.setStatus(code)(res), tsplus_module_2.unsafeJson(body)));
32
+ return tsplus_module_4.catchAll(tsplus_module_4.catchTags(tsplus_module_4.tapErrorCause(r3, cause => tsplus_module_5.isFailure(cause) ? logRequestError(cause) : tsplus_module_4.unit), {
33
+ "JWTError": err => tsplus_module_4.succeed(tsplus_module_3.unsafeJson({
34
+ message: err.error.message
35
+ }, {
36
+ status: err.error.status,
37
+ headers: _http.HttpHeaders.fromInput(err.error.headers)
38
+ })),
39
+ "ValidationError": err => sendError(400)(err.errors),
40
+ "NotFoundError": sendError(404),
41
+ "NotLoggedInError": sendError(401),
42
+ "UnauthorizedError": sendError(403),
43
+ "InvalidStateError": sendError(422),
44
+ // 412 or 409.. https://stackoverflow.com/questions/19122088/which-http-status-code-to-use-to-reject-a-put-due-to-optimistic-locking-failure
45
+ "OptimisticConcurrencyException": sendError(412)
46
+ })
47
+ // final catch all; expecting never so that unhandled known errors will show up
48
+ , err => tsplus_module_4.flatMap(tsplus_module_4.map(tsplus_module_4.logError("Program error, compiler probably silenced, got an unsupported Error in Error Channel of Effect" + err), () => err), tsplus_module_4.die));
49
+ }
50
+ //# sourceMappingURL=defaultErrorHandler.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultErrorHandler.cjs","names":["_errorReporter","require","_http","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","JWTError","tsplus_module_1","TaggedClass","exports","logRequestError","logError","defaultBasicErrorHandler","_req","res","r2","sendError","code","body","tsplus_module_4","sync","tsplus_module_3","setStatus","setBody","tsplus_module_2","unsafeJson","catchAll","catchTag","tapErrorCause","cause","tsplus_module_5","isFailure","unit","err","errors","flatMap","map","die","optimisticConcurrencySchedule","tsplus_module_6","intersect","recurWhile","_tag","once","defaultErrorHandler","req","r3","method","retry","catchTags","succeed","message","error","status","headers","HttpHeaders","fromInput"],"sources":["../../../_src/api/routing/defaultErrorHandler.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RequestSettings = void 0;
7
+ exports.makeRequestHandler = makeRequestHandler;
8
+ var tsplus_module_1 = _interopRequireWildcard(require("effect/FiberRef"));
9
+ var _schema = _interopRequireWildcard(require("@effect-app/schema"));
10
+ var tsplus_module_2 = _schema;
11
+ var tsplus_module_3 = _interopRequireWildcard(require("@effect/schema/Parser"));
12
+ var tsplus_module_4 = _interopRequireWildcard(require("effect/Effect"));
13
+ var tsplus_module_5 = _interopRequireWildcard(require("@effect-app/core/Option"));
14
+ var tsplus_module_6 = _interopRequireWildcard(require("@effect-app/prelude/utils"));
15
+ var tsplus_module_7 = _interopRequireWildcard(require("@effect/platform/Http/ServerResponse"));
16
+ var tsplus_module_8 = _interopRequireWildcard(require("@effect/platform/Http/Body"));
17
+ var tsplus_module_9 = _interopRequireWildcard(require("@effect-app/infra/api/setupRequest"));
18
+ var _utils2 = require("@effect-app/core/utils");
19
+ var _util = require("@effect-app/infra/api/util");
20
+ var _errorReporter = require("@effect-app/infra/errorReporter");
21
+ var _http = require("../http.cjs");
22
+ var _base = require("./base.cjs");
23
+ 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); }
24
+ 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 && Object.prototype.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; }
25
+ const RequestSettings = exports.RequestSettings = tsplus_module_1.unsafeMake({
26
+ verbose: false
27
+ });
28
+ function makeRequestHandler(handler, errorHandler, middlewareLayer) {
29
+ const {
30
+ Request,
31
+ Response,
32
+ h: handle
33
+ } = handler;
34
+ const response = Response ? Response : tsplus_module_2.Void;
35
+ const resp = response;
36
+ // TODO: consider if the alternative of using the struct schema is perhaps just better.
37
+ const encoder = "struct" in resp && resp.struct ? tsplus_module_3.encodeSync(resp.struct)
38
+ // ? (i: any) => {
39
+ // if (i instanceof (response as any)) return response.encodeSync(i)
40
+ // else return response.encodeSync(new (response as any)(i))
41
+ // }
42
+ : tsplus_module_3.encodeSync(resp);
43
+ // const encodeResponse = adaptResponse
44
+ // ? (req: ReqA) => Encoder.for(adaptResponse(req))
45
+ // : () => encoder
46
+ const requestParsers = (0, _base.makeRequestParsers)(Request);
47
+ const parseRequest = (0, _base.parseRequestParams)(requestParsers);
48
+ const getParams = tsplus_module_4.map(tsplus_module_4.all({
49
+ rcx: _http.HttpRouteContext,
50
+ req: tsplus_module_4.flatMap(_http.HttpServerRequest, req => tsplus_module_4.map(req.json, body => ({
51
+ body,
52
+ headers: req.headers
53
+ })))
54
+ }), ({
55
+ rcx,
56
+ req
57
+ }) => ({
58
+ params: rcx.params,
59
+ query: rcx.searchParams,
60
+ body: req.body,
61
+ headers: req.headers,
62
+ cookies: {} // req.cookies
63
+ }));
64
+ return tsplus_module_9.updateRequestContext(tsplus_module_4.gen(function* ($) {
65
+ const req = yield* $(_http.HttpServerRequest);
66
+ const res = tsplus_module_7.empty().pipe(_ => req.method === "GET" ? tsplus_module_7.setHeader(_, "Cache-Control", "no-store") : _);
67
+ const pars = yield* $(getParams);
68
+ const settings = yield* $(tsplus_module_1.get(RequestSettings));
69
+ const eff =
70
+ // TODO: we don;t have access to user id here cause context is not yet created
71
+ tsplus_module_4.tap(tsplus_module_4.catchAllCause(tsplus_module_4.andThen(tsplus_module_4.annotateLogs(tsplus_module_4.logInfo("Incoming request"), {
72
+ method: req.method,
73
+ path: req.originalUrl,
74
+ ...(settings.verbose ? {
75
+ reqPath: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.params)),
76
+ reqQuery: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.query)),
77
+ reqBody: (0, _utils2.pretty)(pars.body),
78
+ reqCookies: (0, _utils2.pretty)(pars.cookies),
79
+ reqHeaders: (0, _utils2.pretty)(pars.headers)
80
+ } : undefined)
81
+ }), tsplus_module_4.suspend(() => {
82
+ const handleRequest = tsplus_module_4.flatMap(tsplus_module_4.map(parseRequest(pars), ({
83
+ body,
84
+ path,
85
+ query
86
+ }) => {
87
+ const hn = {
88
+ ...tsplus_module_5.getOrUndefined(body),
89
+ ...tsplus_module_5.getOrUndefined(query),
90
+ ...tsplus_module_5.getOrUndefined(path)
91
+ };
92
+ return hn;
93
+ }), parsedReq => tsplus_module_4.map(tsplus_module_4.map(tsplus_module_4.provideService(handle(parsedReq), handler.Request.Tag, parsedReq), encoder), r => tsplus_module_7.setStatus(r === undefined ? 204 : 200)(tsplus_module_7.setBody(res, tsplus_module_8.unsafeJson(r)))));
94
+ // Commands should not be interruptable.
95
+ const r = req.method !== "GET" ? tsplus_module_4.uninterruptible(handleRequest) : handleRequest; // .instrument("Performance.RequestResponse")
96
+ const r2 = middlewareLayer ? tsplus_module_4.provide(r, middlewareLayer)
97
+ // PR is not relevant here
98
+ : r;
99
+ return errorHandler(req, res, r2);
100
+ })), cause => tsplus_module_4.tapErrorCause(tsplus_module_4.tap(tsplus_module_4.sync(() => tsplus_module_7.setStatus(500)(res)), res => tsplus_module_4.all([(0, _errorReporter.reportError)("request")(cause, {
101
+ path: req.originalUrl,
102
+ method: req.method
103
+ }), tsplus_module_4.suspend(() => {
104
+ const headers = res.headers;
105
+ return tsplus_module_4.annotateLogs(tsplus_module_4.logError("Finished request", cause), {
106
+ method: req.method,
107
+ path: req.originalUrl,
108
+ statusCode: res.status.toString(),
109
+ reqPath: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.params)),
110
+ reqQuery: tsplus_module_6.RecordPretty(tsplus_module_6.object$(pars.query)),
111
+ reqBody: (0, _utils2.pretty)(pars.body),
112
+ reqCookies: (0, _utils2.pretty)(pars.cookies),
113
+ reqHeaders: (0, _utils2.pretty)(pars.headers),
114
+ resHeaders: tsplus_module_6.RecordPretty(tsplus_module_6.object$(Object.entries(headers).reduce((prev, [key, value]) => {
115
+ prev[key] = value && typeof value === "string" ? (0, _util.snipString)(value) : value;
116
+ return prev;
117
+ }, {})))
118
+ });
119
+ })], {
120
+ concurrency: "inherit"
121
+ })), cause => tsplus_module_4.sync(() => console.error("Error occurred while reporting error", cause)))), tsplus_module_4.annotateLogs(tsplus_module_4.logInfo("Finished request"), {
122
+ method: req.method,
123
+ path: req.originalUrl,
124
+ statusCode: res.status.toString(),
125
+ ...(settings.verbose ? {
126
+ resHeaders: (0, _utils2.pretty)(res.headers)
127
+ } : undefined)
128
+ }));
129
+ return yield* $(eff);
130
+ }), _ => tsplus_module_6.$copy(tsplus_module_6.object$(_), {
131
+ name: tsplus_module_2.NonEmptyString255(tsplus_module_5.getOrUndefined(_schema.AST.getTitleAnnotation(Request.ast)) ?? "TODO")
132
+ }));
133
+ }
134
+ //# sourceMappingURL=makeRequestHandler.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"makeRequestHandler.cjs","names":["_utils2","require","_util","_errorReporter","_http","_base","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RequestSettings","exports","tsplus_module_1","unsafeMake","verbose","makeRequestHandler","handler","errorHandler","middlewareLayer","Request","Response","h","handle","response","tsplus_module_2","Void","resp","encoder","struct","tsplus_module_3","encodeSync","requestParsers","makeRequestParsers","parseRequest","parseRequestParams","getParams","tsplus_module_4","map","all","rcx","HttpRouteContext","req","flatMap","HttpServerRequest","json","body","headers","params","query","searchParams","cookies","tsplus_module_9","updateRequestContext","gen","$","res","tsplus_module_7","empty","pipe","_","method","setHeader","pars","settings","eff","tap","catchAllCause","andThen","annotateLogs","logInfo","path","originalUrl","reqPath","tsplus_module_6","RecordPretty","object$","reqQuery","reqBody","pretty","reqCookies","reqHeaders","undefined","suspend","handleRequest","hn","tsplus_module_5","getOrUndefined","parsedReq","provideService","Tag","setStatus","setBody","tsplus_module_8","unsafeJson","uninterruptible","r2","provide","cause","tapErrorCause","sync","reportError","logError","statusCode","status","toString","resHeaders","entries","reduce","prev","key","value","snipString","concurrency","console","error","$copy","name","NonEmptyString255","AST","getTitleAnnotation","ast"],"sources":["../../../_src/api/routing/makeRequestHandler.ts"],"sourcesContent":[null],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RouteDescriptors = void 0;
7
+ exports.match = match;
8
+ var tsplus_module_1 = _interopRequireWildcard(require("effect/Context"));
9
+ var tsplus_module_2 = _interopRequireWildcard(require("@effect/platform/Http/Router"));
10
+ var tsplus_module_3 = _interopRequireWildcard(require("effect/Effect"));
11
+ require("@effect-app/infra/api/express/schema/routing");
12
+ require("../http.cjs");
13
+ var _makeRequestHandler = require("./makeRequestHandler.cjs");
14
+ 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); }
15
+ 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 && Object.prototype.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; }
16
+ /* eslint-disable @typescript-eslint/no-explicit-any */
17
+ /* eslint-disable @typescript-eslint/ban-types */
18
+
19
+ const RouteDescriptors = exports.RouteDescriptors = tsplus_module_1.Tag();
20
+ function match(requestHandler, errorHandler, middleware) {
21
+ let middlewareLayer = undefined;
22
+ if (middleware) {
23
+ const {
24
+ handler,
25
+ makeRequestLayer
26
+ } = middleware(requestHandler);
27
+ requestHandler = handler; // todo
28
+ middlewareLayer = makeRequestLayer;
29
+ }
30
+ return tsplus_module_3.gen(function* () {
31
+ // const rdesc = yield* $(RouteDescriptors.flatMap((_) => _.get))
32
+ const handler = (0, _makeRequestHandler.makeRequestHandler)(requestHandler,
33
+ // one argument if no middleware, 2 if has middleware. TODO: clean this shit up
34
+ errorHandler, middlewareLayer);
35
+ const route = tsplus_module_2.makeRoute(requestHandler.Request.method, requestHandler.Request.path, handler);
36
+ // TODO
37
+ // rdesc.push(makeRouteDescriptor(
38
+ // requestHandler.Request.path,
39
+ // requestHandler.Request.method,
40
+ // requestHandler
41
+ // ))
42
+ return route;
43
+ });
44
+ }
45
+ //# sourceMappingURL=match.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.cjs","names":["require","_makeRequestHandler","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","RouteDescriptors","exports","tsplus_module_1","Tag","match","requestHandler","errorHandler","middleware","middlewareLayer","undefined","handler","makeRequestLayer","tsplus_module_3","gen","makeRequestHandler","route","tsplus_module_2","makeRoute","Request","method","path"],"sources":["../../../_src/api/routing/match.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;AAEAA,OAAA;AAGAA,OAAA;AAEA,IAAAC,mBAAA,GAAAD,OAAA;AAA4D,SAAAE,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAI,wBAAAJ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAe,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAP5D;AACA;;AASO,MAAMY,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAGE,eAAA,CAAAC,GAAG,EAA6B;AAE1D,SAAUC,KAAKA,CAoBnBC,cAeC,EACDC,YAIgD,EAChDC,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,eAAA,CAAAC,GAAA,CAAW,aAAS;IACzB;IAEA,MAAMH,OAAO,GAAG,IAAAI,sCAAkB,EAkBhCT,cAAqB;IAAE;IACvBC,YAAY,EACZE,eAAe,CAChB;IAED,MAAMO,KAAK,GAAGC,eAAA,CAAAC,SAAA,CACZZ,cAAc,CAACa,OAAO,CAACC,MAAM,EAC7Bd,cAAc,CAACa,OAAO,CAACE,IAAI,EAC3BV,OAAO,CACR;IACD;IACA;IACA;IACA;IACA;IACA;IACA,OAAOK,KAAK;EACd,CAAC,CAAC;AACJ"}
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _base = require("./routing/base.cjs");
7
+ Object.keys(_base).forEach(function (key) {
8
+ if (key === "default" || key === "__esModule") return;
9
+ if (key in exports && exports[key] === _base[key]) return;
10
+ Object.defineProperty(exports, key, {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _base[key];
14
+ }
15
+ });
16
+ });
17
+ var _defaultErrorHandler = require("./routing/defaultErrorHandler.cjs");
18
+ Object.keys(_defaultErrorHandler).forEach(function (key) {
19
+ if (key === "default" || key === "__esModule") return;
20
+ if (key in exports && exports[key] === _defaultErrorHandler[key]) return;
21
+ Object.defineProperty(exports, key, {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _defaultErrorHandler[key];
25
+ }
26
+ });
27
+ });
28
+ var _makeRequestHandler = require("./routing/makeRequestHandler.cjs");
29
+ Object.keys(_makeRequestHandler).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _makeRequestHandler[key]) return;
32
+ Object.defineProperty(exports, key, {
33
+ enumerable: true,
34
+ get: function () {
35
+ return _makeRequestHandler[key];
36
+ }
37
+ });
38
+ });
39
+ var _match = require("./routing/match.cjs");
40
+ Object.keys(_match).forEach(function (key) {
41
+ if (key === "default" || key === "__esModule") return;
42
+ if (key in exports && exports[key] === _match[key]) return;
43
+ Object.defineProperty(exports, key, {
44
+ enumerable: true,
45
+ get: function () {
46
+ return _match[key];
47
+ }
48
+ });
49
+ });
50
+ //# sourceMappingURL=routing.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.cjs","names":["_base","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_defaultErrorHandler","_makeRequestHandler","_match"],"sources":["../../_src/api/routing.ts"],"sourcesContent":[null],"mappings":";;;;;AAIA,IAAAA,KAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,KAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,KAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,KAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,oBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,oBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,oBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,oBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,mBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,mBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,mBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,mBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,MAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,MAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,MAAA,CAAAP,GAAA;IAAA;EAAA;AAAA"}
@@ -0,0 +1,26 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+
3
+ import type { Route as HttpRoute, Router as HttpRouter } from "@effect/platform/Http/Router"
4
+
5
+ export type { HttpApp } from "@effect/platform/Http/App"
6
+ export type { Body as HttpBody } from "@effect/platform/Http/Body"
7
+ export * as HttpHeaders from "@effect/platform/Http/Headers"
8
+ export type { Middleware as HttpMiddleware } from "@effect/platform/Http/Middleware"
9
+ export { RouteContext as HttpRouteContext } from "@effect/platform/Http/Router"
10
+ export { RequestError as HttpRequestError } from "@effect/platform/Http/ServerError"
11
+ export { ServerRequest as HttpServerRequest } from "@effect/platform/Http/ServerRequest"
12
+ export type { ServerResponse as HttpServerResponse } from "@effect/platform/Http/ServerResponse"
13
+ export type { HttpRoute, HttpRouter }
14
+ export * as HttpServer from "@effect/platform/Http/Server"
15
+
16
+ /**
17
+ * @tsplus unify effect/platform/Http/Router/Route
18
+ */
19
+ export function unifyRoute<X extends HttpRoute<any, any>>(
20
+ self: X
21
+ ): HttpRoute<
22
+ X extends HttpRoute<infer EX, any> ? EX : never,
23
+ X extends HttpRoute<any, infer AX> ? AX : never
24
+ > {
25
+ return self
26
+ }