@fncts/http 0.0.12 → 0.0.13
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/LICENSE +26 -0
- package/_cjs/Body/api.cjs +62 -65
- package/_cjs/Body/api.cjs.map +1 -1
- package/_cjs/Body/definition.cjs +66 -69
- package/_cjs/Body/definition.cjs.map +1 -1
- package/_cjs/Body.cjs +20 -28
- package/_cjs/BodyError.cjs +33 -36
- package/_cjs/BodyError.cjs.map +1 -1
- package/_cjs/Headers.cjs +70 -73
- package/_cjs/Headers.cjs.map +1 -1
- package/_cjs/HttpApp.cjs +102 -94
- package/_cjs/HttpApp.cjs.map +1 -1
- package/_cjs/IncomingMessage/api.cjs +24 -23
- package/_cjs/IncomingMessage/api.cjs.map +1 -1
- package/_cjs/IncomingMessage/definition.cjs +12 -13
- package/_cjs/IncomingMessage/definition.cjs.map +1 -1
- package/_cjs/IncomingMessage.cjs +8 -28
- package/_cjs/Method.cjs +6 -7
- package/_cjs/Method.cjs.map +1 -1
- package/_cjs/Middleware.cjs +11 -12
- package/_cjs/Middleware.cjs.map +1 -1
- package/_cjs/QueryParams.cjs +0 -2
- package/_cjs/RequestError.cjs +17 -18
- package/_cjs/RequestError.cjs.map +1 -1
- package/_cjs/ResponseError.cjs +26 -27
- package/_cjs/ResponseError.cjs.map +1 -1
- package/_cjs/Route/api.cjs +87 -74
- package/_cjs/Route/api.cjs.map +1 -1
- package/_cjs/Route/definition.cjs +28 -26
- package/_cjs/Route/definition.cjs.map +1 -1
- package/_cjs/Route/internal.cjs +33 -34
- package/_cjs/Route/internal.cjs.map +1 -1
- package/_cjs/Route.cjs +23 -28
- package/_cjs/RouteNotFound.cjs +16 -17
- package/_cjs/RouteNotFound.cjs.map +1 -1
- package/_cjs/Router/api.cjs +127 -119
- package/_cjs/Router/api.cjs.map +1 -1
- package/_cjs/Router/definition.cjs +14 -14
- package/_cjs/Router/definition.cjs.map +1 -1
- package/_cjs/Router/internal.cjs +75 -82
- package/_cjs/Router/internal.cjs.map +1 -1
- package/_cjs/Router.cjs +24 -28
- package/_cjs/Server.cjs +38 -34
- package/_cjs/Server.cjs.map +1 -1
- package/_cjs/ServerError.cjs +18 -18
- package/_cjs/ServerError.cjs.map +1 -1
- package/_cjs/ServerRequest/api.cjs +9 -10
- package/_cjs/ServerRequest/api.cjs.map +1 -1
- package/_cjs/ServerRequest/definition.cjs +20 -19
- package/_cjs/ServerRequest/definition.cjs.map +1 -1
- package/_cjs/ServerRequest/internal.cjs +77 -80
- package/_cjs/ServerRequest/internal.cjs.map +1 -1
- package/_cjs/ServerRequest.cjs +7 -28
- package/_cjs/ServerResponse/api.cjs +108 -116
- package/_cjs/ServerResponse/api.cjs.map +1 -1
- package/_cjs/ServerResponse/definition.cjs +36 -41
- package/_cjs/ServerResponse/definition.cjs.map +1 -1
- package/_cjs/ServerResponse.cjs +18 -28
- package/_cjs/Socket.cjs +213 -192
- package/_cjs/Socket.cjs.map +1 -1
- package/_cjs/UrlParams.cjs +23 -27
- package/_cjs/UrlParams.cjs.map +1 -1
- package/_cjs/chunk.cjs +28 -0
- package/_cjs/global.cjs +0 -2
- package/_mjs/Body/api.mjs +54 -56
- package/_mjs/Body/api.mjs.map +1 -1
- package/_mjs/Body/definition.mjs +61 -59
- package/_mjs/Body/definition.mjs.map +1 -1
- package/_mjs/Body.mjs +3 -4
- package/_mjs/BodyError.mjs +30 -28
- package/_mjs/BodyError.mjs.map +1 -1
- package/_mjs/Headers.mjs +61 -63
- package/_mjs/Headers.mjs.map +1 -1
- package/_mjs/HttpApp.mjs +74 -79
- package/_mjs/HttpApp.mjs.map +1 -1
- package/_mjs/IncomingMessage/api.mjs +21 -17
- package/_mjs/IncomingMessage/api.mjs.map +1 -1
- package/_mjs/IncomingMessage/definition.mjs +11 -7
- package/_mjs/IncomingMessage/definition.mjs.map +1 -1
- package/_mjs/IncomingMessage.mjs +3 -4
- package/_mjs/Method.mjs +6 -2
- package/_mjs/Method.mjs.map +1 -1
- package/_mjs/Middleware.mjs +10 -6
- package/_mjs/Middleware.mjs.map +1 -1
- package/_mjs/QueryParams.mjs +0 -2
- package/_mjs/RequestError.mjs +16 -12
- package/_mjs/RequestError.mjs.map +1 -1
- package/_mjs/ResponseError.mjs +25 -21
- package/_mjs/ResponseError.mjs.map +1 -1
- package/_mjs/Route/api.mjs +68 -64
- package/_mjs/Route/api.mjs.map +1 -1
- package/_mjs/Route/definition.mjs +21 -17
- package/_mjs/Route/definition.mjs.map +1 -1
- package/_mjs/Route/internal.mjs +30 -26
- package/_mjs/Route/internal.mjs.map +1 -1
- package/_mjs/Route.mjs +3 -4
- package/_mjs/RouteNotFound.mjs +15 -11
- package/_mjs/RouteNotFound.mjs.map +1 -1
- package/_mjs/Router/api.mjs +105 -107
- package/_mjs/Router/api.mjs.map +1 -1
- package/_mjs/Router/definition.mjs +11 -7
- package/_mjs/Router/definition.mjs.map +1 -1
- package/_mjs/Router/internal.mjs +55 -66
- package/_mjs/Router/internal.mjs.map +1 -1
- package/_mjs/Router.mjs +3 -4
- package/_mjs/Server.mjs +28 -24
- package/_mjs/Server.mjs.map +1 -1
- package/_mjs/ServerError.mjs +14 -10
- package/_mjs/ServerError.mjs.map +1 -1
- package/_mjs/ServerRequest/api.mjs +8 -4
- package/_mjs/ServerRequest/api.mjs.map +1 -1
- package/_mjs/ServerRequest/definition.mjs +15 -11
- package/_mjs/ServerRequest/definition.mjs.map +1 -1
- package/_mjs/ServerRequest/internal.mjs +65 -70
- package/_mjs/ServerRequest/internal.mjs.map +1 -1
- package/_mjs/ServerRequest.mjs +3 -4
- package/_mjs/ServerResponse/api.mjs +97 -106
- package/_mjs/ServerResponse/api.mjs.map +1 -1
- package/_mjs/ServerResponse/definition.mjs +30 -32
- package/_mjs/ServerResponse/definition.mjs.map +1 -1
- package/_mjs/ServerResponse.mjs +3 -4
- package/_mjs/Socket.mjs +152 -156
- package/_mjs/Socket.mjs.map +1 -1
- package/_mjs/UrlParams.mjs +22 -20
- package/_mjs/UrlParams.mjs.map +1 -1
- package/_mjs/global.mjs +0 -2
- package/package.json +10 -6
- package/_cjs/Body.cjs.map +0 -1
- package/_cjs/IncomingMessage.cjs.map +0 -1
- package/_cjs/QueryParams.cjs.map +0 -1
- package/_cjs/Route.cjs.map +0 -1
- package/_cjs/Router.cjs.map +0 -1
- package/_cjs/ServerRequest.cjs.map +0 -1
- package/_cjs/ServerResponse.cjs.map +0 -1
- package/_cjs/global.cjs.map +0 -1
- package/_mjs/Body.mjs.map +0 -1
- package/_mjs/IncomingMessage.mjs.map +0 -1
- package/_mjs/QueryParams.mjs.map +0 -1
- package/_mjs/Route.mjs.map +0 -1
- package/_mjs/Router.mjs.map +0 -1
- package/_mjs/ServerRequest.mjs.map +0 -1
- package/_mjs/ServerResponse.mjs.map +0 -1
- package/_mjs/global.mjs.map +0 -1
package/_cjs/Router/internal.cjs
CHANGED
|
@@ -1,88 +1,81 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("../chunk.cjs");
|
|
3
|
+
const require_Route_internal = require("../Route/internal.cjs");
|
|
4
|
+
const require_RouteNotFound = require("../RouteNotFound.cjs");
|
|
5
|
+
const require_Router_definition = require("./definition.cjs");
|
|
6
|
+
let _fncts_io_IO_api = require("@fncts/io/IO/api");
|
|
7
|
+
_fncts_io_IO_api = require_chunk.__toESM(_fncts_io_IO_api, 1);
|
|
8
|
+
let _fncts_base_data_Maybe_constructors = require("@fncts/base/data/Maybe/constructors");
|
|
9
|
+
_fncts_base_data_Maybe_constructors = require_chunk.__toESM(_fncts_base_data_Maybe_constructors, 1);
|
|
10
|
+
let _fncts_base_collection_immutable_Conc_api = require("@fncts/base/collection/immutable/Conc/api");
|
|
11
|
+
_fncts_base_collection_immutable_Conc_api = require_chunk.__toESM(_fncts_base_collection_immutable_Conc_api, 1);
|
|
12
|
+
let _fncts_io_FiberRef_unsafe = require("@fncts/io/FiberRef/unsafe");
|
|
13
|
+
_fncts_io_FiberRef_unsafe = require_chunk.__toESM(_fncts_io_FiberRef_unsafe, 1);
|
|
14
|
+
let _fncts_http_ServerRequest_definition = require("@fncts/http/ServerRequest/definition");
|
|
15
|
+
_fncts_http_ServerRequest_definition = require_chunk.__toESM(_fncts_http_ServerRequest_definition, 1);
|
|
16
|
+
let _fncts_base_data_Environment_api = require("@fncts/base/data/Environment/api");
|
|
17
|
+
_fncts_base_data_Environment_api = require_chunk.__toESM(_fncts_base_data_Environment_api, 1);
|
|
18
|
+
let _fncts_http_Route_definition = require("@fncts/http/Route/definition");
|
|
19
|
+
_fncts_http_Route_definition = require_chunk.__toESM(_fncts_http_Route_definition, 1);
|
|
20
|
+
let _fncts_io_FiberRef_operations = require("@fncts/io/FiberRef/operations");
|
|
21
|
+
_fncts_io_FiberRef_operations = require_chunk.__toESM(_fncts_io_FiberRef_operations, 1);
|
|
22
|
+
let _fncts_base_data_Maybe_definition = require("@fncts/base/data/Maybe/definition");
|
|
23
|
+
_fncts_base_data_Maybe_definition = require_chunk.__toESM(_fncts_base_data_Maybe_definition, 1);
|
|
24
|
+
let find_my_way_ts = require("find-my-way-ts");
|
|
25
|
+
find_my_way_ts = require_chunk.__toESM(find_my_way_ts, 1);
|
|
26
|
+
//#region build/esm/Router/internal.js
|
|
21
27
|
const fileName_1 = "(@fncts/http) src/Router/internal.ts";
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
exports.RouterInternal = RouterInternal;
|
|
28
|
+
var RouterInternal = class extends require_Router_definition.Router {
|
|
29
|
+
routes;
|
|
30
|
+
mounts;
|
|
31
|
+
httpApp;
|
|
32
|
+
constructor(routes, mounts) {
|
|
33
|
+
super();
|
|
34
|
+
this.routes = routes;
|
|
35
|
+
this.mounts = mounts;
|
|
36
|
+
this.httpApp = toHttpApp(this);
|
|
37
|
+
}
|
|
38
|
+
get toIO() {
|
|
39
|
+
return this.httpApp;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
37
42
|
function toHttpApp(self) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (result === undefined && request.method === "HEAD") {
|
|
69
|
-
result = router.find("GET", request.url);
|
|
70
|
-
}
|
|
71
|
-
if (result === undefined) {
|
|
72
|
-
return tsplus_module_8.failNow(new _RouteNotFound.RouteNotFound(request), fileName_1 + ":80:24");
|
|
73
|
-
}
|
|
74
|
-
const route = result.handler;
|
|
75
|
-
if (tsplus_module_9.isJust(route.prefix)) {
|
|
76
|
-
context = tsplus_module_5.add(sliceRequestUrl(request, route.prefix.value), tsplus_module_4.ServerRequestTag)(context);
|
|
77
|
-
}
|
|
78
|
-
context = tsplus_module_5.add(new _internal.RouteContextImpl(route, result.params, result.searchParams), tsplus_module_6.RouteContextTag)(context);
|
|
79
|
-
return tsplus_module_7.locally(tsplus_module_3.currentEnvironment, context, fileName_1 + ":87:47")(route.handler);
|
|
80
|
-
}, fileName_1 + ":59:29");
|
|
43
|
+
const router = find_my_way_ts.make();
|
|
44
|
+
const mounts = _fncts_base_collection_immutable_Conc_api.map(({ prefix, httpApp, options }) => [
|
|
45
|
+
prefix,
|
|
46
|
+
new require_Route_internal.RouteContextImpl(new require_Route_internal.RouteImpl("*", options?.inclduePrefix ? `${prefix}/*` : "/*", httpApp, options?.inclduePrefix ? _fncts_base_data_Maybe_constructors.nothing(fileName_1 + ":43:45") : _fncts_base_data_Maybe_constructors.just(prefix, fileName_1 + ":43:54")), {}, {}),
|
|
47
|
+
options
|
|
48
|
+
])(self.mounts);
|
|
49
|
+
const mountsLen = mounts.length;
|
|
50
|
+
_fncts_base_collection_immutable_Conc_api.forEach((route) => {
|
|
51
|
+
if (route.method === "*") router.all(route.path, route);
|
|
52
|
+
else router.on(route.method, route.path, route);
|
|
53
|
+
})(self.routes);
|
|
54
|
+
return _fncts_io_IO_api.withFiberRuntime((fiber) => {
|
|
55
|
+
let context = fiber.getFiberRef(_fncts_io_FiberRef_unsafe.currentEnvironment);
|
|
56
|
+
const request = _fncts_base_data_Environment_api.unsafeGet(_fncts_http_ServerRequest_definition.ServerRequestTag)(context);
|
|
57
|
+
if (mountsLen > 0) for (let i = 0; i < mountsLen; i++) {
|
|
58
|
+
const [path, routeContext, options] = _fncts_base_collection_immutable_Conc_api.unsafeGet(i)(mounts);
|
|
59
|
+
if (request.url.startsWith(path)) {
|
|
60
|
+
context = _fncts_base_data_Environment_api.add(routeContext, _fncts_http_Route_definition.RouteContextTag)(context);
|
|
61
|
+
if (options?.inclduePrefix !== true) context = _fncts_base_data_Environment_api.add(sliceRequestUrl(request, path), _fncts_http_ServerRequest_definition.ServerRequestTag)(context);
|
|
62
|
+
return _fncts_io_FiberRef_operations.locally(_fncts_io_FiberRef_unsafe.currentEnvironment, context, fileName_1 + ":70:53")(routeContext.route.handler);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
let result = router.find(request.method, request.url);
|
|
66
|
+
if (result === void 0 && request.method === "HEAD") result = router.find("GET", request.url);
|
|
67
|
+
if (result === void 0) return _fncts_io_IO_api.failNow(new require_RouteNotFound.RouteNotFound(request), fileName_1 + ":80:24");
|
|
68
|
+
const route = result.handler;
|
|
69
|
+
if (_fncts_base_data_Maybe_definition.isJust(route.prefix)) context = _fncts_base_data_Environment_api.add(sliceRequestUrl(request, route.prefix.value), _fncts_http_ServerRequest_definition.ServerRequestTag)(context);
|
|
70
|
+
context = _fncts_base_data_Environment_api.add(new require_Route_internal.RouteContextImpl(route, result.params, result.searchParams), _fncts_http_Route_definition.RouteContextTag)(context);
|
|
71
|
+
return _fncts_io_FiberRef_operations.locally(_fncts_io_FiberRef_unsafe.currentEnvironment, context, fileName_1 + ":87:47")(route.handler);
|
|
72
|
+
}, fileName_1 + ":59:29");
|
|
81
73
|
}
|
|
82
74
|
function sliceRequestUrl(request, prefix) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
url: request.url.length <= prefixLen ? "/" : request.url.slice(prefixLen)
|
|
86
|
-
});
|
|
75
|
+
const prefixLen = prefix.length;
|
|
76
|
+
return request.modify({ url: request.url.length <= prefixLen ? "/" : request.url.slice(prefixLen) });
|
|
87
77
|
}
|
|
78
|
+
//#endregion
|
|
79
|
+
exports.RouterInternal = RouterInternal;
|
|
80
|
+
|
|
88
81
|
//# sourceMappingURL=internal.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.cjs","names":["
|
|
1
|
+
{"version":3,"file":"internal.cjs","names":["Router","FindMyWay","tsplus_module_2","RouteContextImpl","RouteImpl","tsplus_module_1","tsplus_module_8","tsplus_module_3","tsplus_module_5","tsplus_module_4","tsplus_module_6","tsplus_module_7","RouteNotFound","tsplus_module_9"],"sources":["../../esm/Router/internal.js"],"sourcesContent":["const fileName_1 = \"(@fncts/http) src/Router/internal.ts\";\nimport * as tsplus_module_1 from \"@fncts/base/data/Maybe/constructors\";\nimport * as tsplus_module_2 from \"@fncts/base/collection/immutable/Conc/api\";\nimport * as tsplus_module_3 from \"@fncts/io/FiberRef/unsafe\";\nimport * as tsplus_module_4 from \"@fncts/http/ServerRequest/definition\";\nimport * as tsplus_module_5 from \"@fncts/base/data/Environment/api\";\nimport * as tsplus_module_6 from \"@fncts/http/Route/definition\";\nimport * as tsplus_module_7 from \"@fncts/io/FiberRef/operations\";\nimport * as tsplus_module_8 from \"@fncts/io/IO/api\";\nimport * as tsplus_module_9 from \"@fncts/base/data/Maybe/definition\";\nimport * as FindMyWay from \"find-my-way-ts\";\nimport { RouteContextImpl, RouteImpl } from \"../Route/internal.js\";\nimport { RouteNotFound } from \"../RouteNotFound.js\";\nimport { Router } from \"./definition.js\";\nexport class RouterInternal extends Router {\n routes;\n mounts;\n httpApp;\n constructor(routes, mounts) {\n super();\n this.routes = routes;\n this.mounts = mounts;\n this.httpApp = toHttpApp(this);\n }\n get toIO() {\n return this.httpApp;\n }\n}\nfunction toHttpApp(self) {\n const router = FindMyWay.make();\n const mounts = tsplus_module_2.map(({ prefix, httpApp, options }) => [\n prefix,\n new RouteContextImpl(new RouteImpl(\"*\", options?.inclduePrefix ? `${prefix}/*` : \"/*\", httpApp, options?.inclduePrefix ? tsplus_module_1.nothing(fileName_1 + \":43:45\") : tsplus_module_1.just(prefix, fileName_1 + \":43:54\")), {}, {}),\n options,\n ])(self.mounts);\n const mountsLen = mounts.length;\n tsplus_module_2.forEach((route) => {\n if (route.method === \"*\") {\n router.all(route.path, route);\n }\n else {\n router.on(route.method, route.path, route);\n }\n })(self.routes);\n return tsplus_module_8.withFiberRuntime((fiber) => {\n let context = fiber.getFiberRef(tsplus_module_3.currentEnvironment);\n const request = tsplus_module_5.unsafeGet(tsplus_module_4.ServerRequestTag)(context);\n if (mountsLen > 0) {\n for (let i = 0; i < mountsLen; i++) {\n const [path, routeContext, options] = tsplus_module_2.unsafeGet(i)(mounts);\n if (request.url.startsWith(path)) {\n context = tsplus_module_5.add(routeContext, tsplus_module_6.RouteContextTag)(context);\n if (options?.inclduePrefix !== true) {\n context = tsplus_module_5.add(sliceRequestUrl(request, path), tsplus_module_4.ServerRequestTag)(context);\n }\n return tsplus_module_7.locally(tsplus_module_3.currentEnvironment, context, fileName_1 + \":70:53\")(routeContext.route.handler);\n }\n }\n }\n let result = router.find(request.method, request.url);\n if (result === undefined && request.method === \"HEAD\") {\n result = router.find(\"GET\", request.url);\n }\n if (result === undefined) {\n return tsplus_module_8.failNow(new RouteNotFound(request), fileName_1 + \":80:24\");\n }\n const route = result.handler;\n if (tsplus_module_9.isJust(route.prefix)) {\n context = tsplus_module_5.add(sliceRequestUrl(request, route.prefix.value), tsplus_module_4.ServerRequestTag)(context);\n }\n context = tsplus_module_5.add(new RouteContextImpl(route, result.params, result.searchParams), tsplus_module_6.RouteContextTag)(context);\n return tsplus_module_7.locally(tsplus_module_3.currentEnvironment, context, fileName_1 + \":87:47\")(route.handler);\n }, fileName_1 + \":59:29\");\n}\nfunction sliceRequestUrl(request, prefix) {\n const prefixLen = prefix.length;\n return request.modify({ url: request.url.length <= prefixLen ? \"/\" : request.url.slice(prefixLen) });\n}\n//# sourceMappingURL=internal.js.map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,aAAa;AAcnB,IAAa,iBAAb,cAAoCA,0BAAAA,OAAO;CACvC;CACA;CACA;CACA,YAAY,QAAQ,QAAQ;AACxB,SAAO;AACP,OAAK,SAAS;AACd,OAAK,SAAS;AACd,OAAK,UAAU,UAAU,KAAK;;CAElC,IAAI,OAAO;AACP,SAAO,KAAK;;;AAGpB,SAAS,UAAU,MAAM;CACrB,MAAM,SAASC,eAAU,MAAM;CAC/B,MAAM,SAASC,0CAAgB,KAAK,EAAE,QAAQ,SAAS,cAAc;EACjE;EACA,IAAIC,uBAAAA,iBAAiB,IAAIC,uBAAAA,UAAU,KAAK,SAAS,gBAAgB,GAAG,OAAO,MAAM,MAAM,SAAS,SAAS,gBAAgBC,oCAAgB,QAAQ,aAAa,SAAS,GAAGA,oCAAgB,KAAK,QAAQ,aAAa,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC;EACvO;EACH,CAAC,CAAC,KAAK,OAAO;CACf,MAAM,YAAY,OAAO;AACzB,2CAAgB,SAAS,UAAU;AAC/B,MAAI,MAAM,WAAW,IACjB,QAAO,IAAI,MAAM,MAAM,MAAM;MAG7B,QAAO,GAAG,MAAM,QAAQ,MAAM,MAAM,MAAM;GAEhD,CAAC,KAAK,OAAO;AACf,QAAOC,iBAAgB,kBAAkB,UAAU;EAC/C,IAAI,UAAU,MAAM,YAAYC,0BAAgB,mBAAmB;EACnE,MAAM,UAAUC,iCAAgB,UAAUC,qCAAgB,iBAAiB,CAAC,QAAQ;AACpF,MAAI,YAAY,EACZ,MAAK,IAAI,IAAI,GAAG,IAAI,WAAW,KAAK;GAChC,MAAM,CAAC,MAAM,cAAc,WAAWP,0CAAgB,UAAU,EAAE,CAAC,OAAO;AAC1E,OAAI,QAAQ,IAAI,WAAW,KAAK,EAAE;AAC9B,cAAUM,iCAAgB,IAAI,cAAcE,6BAAgB,gBAAgB,CAAC,QAAQ;AACrF,QAAI,SAAS,kBAAkB,KAC3B,WAAUF,iCAAgB,IAAI,gBAAgB,SAAS,KAAK,EAAEC,qCAAgB,iBAAiB,CAAC,QAAQ;AAE5G,WAAOE,8BAAgB,QAAQJ,0BAAgB,oBAAoB,SAAS,aAAa,SAAS,CAAC,aAAa,MAAM,QAAQ;;;EAI1I,IAAI,SAAS,OAAO,KAAK,QAAQ,QAAQ,QAAQ,IAAI;AACrD,MAAI,WAAW,KAAA,KAAa,QAAQ,WAAW,OAC3C,UAAS,OAAO,KAAK,OAAO,QAAQ,IAAI;AAE5C,MAAI,WAAW,KAAA,EACX,QAAOD,iBAAgB,QAAQ,IAAIM,sBAAAA,cAAc,QAAQ,EAAE,aAAa,SAAS;EAErF,MAAM,QAAQ,OAAO;AACrB,MAAIC,kCAAgB,OAAO,MAAM,OAAO,CACpC,WAAUL,iCAAgB,IAAI,gBAAgB,SAAS,MAAM,OAAO,MAAM,EAAEC,qCAAgB,iBAAiB,CAAC,QAAQ;AAE1H,YAAUD,iCAAgB,IAAI,IAAIL,uBAAAA,iBAAiB,OAAO,OAAO,QAAQ,OAAO,aAAa,EAAEO,6BAAgB,gBAAgB,CAAC,QAAQ;AACxI,SAAOC,8BAAgB,QAAQJ,0BAAgB,oBAAoB,SAAS,aAAa,SAAS,CAAC,MAAM,QAAQ;IAClH,aAAa,SAAS;;AAE7B,SAAS,gBAAgB,SAAS,QAAQ;CACtC,MAAM,YAAY,OAAO;AACzB,QAAO,QAAQ,OAAO,EAAE,KAAK,QAAQ,IAAI,UAAU,YAAY,MAAM,QAAQ,IAAI,MAAM,UAAU,EAAE,CAAC"}
|
package/_cjs/Router.cjs
CHANGED
|
@@ -1,28 +1,24 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
//# sourceMappingURL=Router.cjs.map
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_Router_definition = require("./Router/definition.cjs");
|
|
3
|
+
const require_Router_api = require("./Router/api.cjs");
|
|
4
|
+
exports.Router = require_Router_definition.Router;
|
|
5
|
+
exports.RouterTypeId = require_Router_definition.RouterTypeId;
|
|
6
|
+
exports.append = require_Router_api.append;
|
|
7
|
+
exports.catchAll = require_Router_api.catchAll;
|
|
8
|
+
exports.catchAllCause = require_Router_api.catchAllCause;
|
|
9
|
+
exports.concat = require_Router_api.concat;
|
|
10
|
+
exports.del = require_Router_api.del;
|
|
11
|
+
exports.empty = require_Router_api.empty;
|
|
12
|
+
exports.from = require_Router_api.from;
|
|
13
|
+
exports.get = require_Router_api.get;
|
|
14
|
+
exports.head = require_Router_api.head;
|
|
15
|
+
exports.mount = require_Router_api.mount;
|
|
16
|
+
exports.options = require_Router_api.options;
|
|
17
|
+
exports.patch = require_Router_api.patch;
|
|
18
|
+
exports.post = require_Router_api.post;
|
|
19
|
+
exports.prefixAll = require_Router_api.prefixAll;
|
|
20
|
+
exports.provideService = require_Router_api.provideService;
|
|
21
|
+
exports.put = require_Router_api.put;
|
|
22
|
+
exports.route = require_Router_api.route;
|
|
23
|
+
exports.routes = require_Router_api.routes;
|
|
24
|
+
exports.use = require_Router_api.use;
|
package/_cjs/Server.cjs
CHANGED
|
@@ -1,45 +1,49 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api"));
|
|
13
|
-
var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Layer/api"));
|
|
14
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("./chunk.cjs");
|
|
3
|
+
let _fncts_base_data_Tag_constructors = require("@fncts/base/data/Tag/constructors");
|
|
4
|
+
_fncts_base_data_Tag_constructors = require_chunk.__toESM(_fncts_base_data_Tag_constructors, 1);
|
|
5
|
+
let _fncts_io_IO_api = require("@fncts/io/IO/api");
|
|
6
|
+
_fncts_io_IO_api = require_chunk.__toESM(_fncts_io_IO_api, 1);
|
|
7
|
+
let _fncts_io_IO_api_environment = require("@fncts/io/IO/api/environment");
|
|
8
|
+
_fncts_io_IO_api_environment = require_chunk.__toESM(_fncts_io_IO_api_environment, 1);
|
|
9
|
+
let _fncts_io_Layer_api = require("@fncts/io/Layer/api");
|
|
10
|
+
_fncts_io_Layer_api = require_chunk.__toESM(_fncts_io_Layer_api, 1);
|
|
11
|
+
//#region build/esm/Server.js
|
|
15
12
|
const fileName_1 = "(@fncts/http) src/Server.ts";
|
|
16
|
-
const ServerTypeId =
|
|
13
|
+
const ServerTypeId = Symbol.for("fncts.http.Server");
|
|
17
14
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
15
|
+
* @tsplus type fncts.http.Server
|
|
16
|
+
* @tsplus companion fncts.http.ServerOps
|
|
17
|
+
*/
|
|
18
|
+
var Server = class {
|
|
19
|
+
[ServerTypeId] = ServerTypeId;
|
|
20
|
+
};
|
|
24
21
|
/**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
const ServerTag = exports.ServerTag = ServerTag_1;
|
|
22
|
+
* @tsplus static fncts.http.ServerOps Tag
|
|
23
|
+
*/
|
|
24
|
+
const ServerTag_1 = _fncts_base_data_Tag_constructors.makeTag();
|
|
25
|
+
const ServerTag = ServerTag_1;
|
|
30
26
|
/**
|
|
31
|
-
|
|
32
|
-
|
|
27
|
+
* @tsplus static fncts.http.ServerOps __call
|
|
28
|
+
*/
|
|
33
29
|
function make(options) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
30
|
+
return new class extends Server {
|
|
31
|
+
serve = options.serve;
|
|
32
|
+
address = options.address;
|
|
33
|
+
}();
|
|
38
34
|
}
|
|
39
35
|
function serve(middleware) {
|
|
40
|
-
|
|
36
|
+
return (httpApp) => _fncts_io_Layer_api.scopedDiscard(() => _fncts_io_IO_api.flatMap((server) => server.serve(httpApp, middleware), fileName_1 + ":69:55")(_fncts_io_IO_api_environment.service(ServerTag_1, fileName_1 + ":69:35")), fileName_1 + ":69:24");
|
|
41
37
|
}
|
|
42
38
|
function serveIO(middleware) {
|
|
43
|
-
|
|
39
|
+
return (httpApp) => _fncts_io_IO_api.flatMap((server) => server.serve(httpApp, middleware), fileName_1 + ":87:53")(_fncts_io_IO_api_environment.service(ServerTag_1, fileName_1 + ":87:33"));
|
|
44
40
|
}
|
|
41
|
+
//#endregion
|
|
42
|
+
exports.Server = Server;
|
|
43
|
+
exports.ServerTag = ServerTag;
|
|
44
|
+
exports.ServerTypeId = ServerTypeId;
|
|
45
|
+
exports.make = make;
|
|
46
|
+
exports.serve = serve;
|
|
47
|
+
exports.serveIO = serveIO;
|
|
48
|
+
|
|
45
49
|
//# sourceMappingURL=Server.cjs.map
|
package/_cjs/Server.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Server.cjs","names":["
|
|
1
|
+
{"version":3,"file":"Server.cjs","names":["tsplus_module_1","tsplus_module_4","tsplus_module_3","tsplus_module_2"],"sources":["../esm/Server.js"],"sourcesContent":["const fileName_1 = \"(@fncts/http) src/Server.ts\";\nimport * as tsplus_module_1 from \"@fncts/base/data/Tag/constructors\";\nimport * as tsplus_module_2 from \"@fncts/io/IO/api/environment\";\nimport * as tsplus_module_3 from \"@fncts/io/IO/api\";\nimport * as tsplus_module_4 from \"@fncts/io/Layer/api\";\nexport const ServerTypeId = Symbol.for(\"fncts.http.Server\");\n/**\n * @tsplus type fncts.http.Server\n * @tsplus companion fncts.http.ServerOps\n */\nexport class Server {\n [ServerTypeId] = ServerTypeId;\n}\n/**\n * @tsplus static fncts.http.ServerOps Tag\n */\nconst ServerTag_1 = tsplus_module_1.makeTag();\nexport const ServerTag = ServerTag_1;\n/**\n * @tsplus static fncts.http.ServerOps __call\n */\nexport function make(options) {\n return new (class extends Server {\n serve = options.serve;\n address = options.address;\n })();\n}\nexport function serve(middleware) {\n return (httpApp) => tsplus_module_4.scopedDiscard(() => tsplus_module_3.flatMap((server) => server.serve(httpApp, middleware), fileName_1 + \":69:55\")(tsplus_module_2.service(ServerTag_1, fileName_1 + \":69:35\")), fileName_1 + \":69:24\");\n}\nexport function serveIO(middleware) {\n return (httpApp) => tsplus_module_3.flatMap((server) => server.serve(httpApp, middleware), fileName_1 + \":87:53\")(tsplus_module_2.service(ServerTag_1, fileName_1 + \":87:33\"));\n}\n//# sourceMappingURL=Server.js.map"],"mappings":";;;;;;;;;;;AAAA,MAAM,aAAa;AAKnB,MAAa,eAAe,OAAO,IAAI,oBAAoB;;;;;AAK3D,IAAa,SAAb,MAAoB;CAChB,CAAC,gBAAgB;;;;;AAKrB,MAAM,cAAcA,kCAAgB,SAAS;AAC7C,MAAa,YAAY;;;;AAIzB,SAAgB,KAAK,SAAS;AAC1B,QAAO,IAAK,cAAc,OAAO;EAC7B,QAAQ,QAAQ;EAChB,UAAU,QAAQ;IAClB;;AAER,SAAgB,MAAM,YAAY;AAC9B,SAAQ,YAAYC,oBAAgB,oBAAoBC,iBAAgB,SAAS,WAAW,OAAO,MAAM,SAAS,WAAW,EAAE,aAAa,SAAS,CAACC,6BAAgB,QAAQ,aAAa,aAAa,SAAS,CAAC,EAAE,aAAa,SAAS;;AAE9O,SAAgB,QAAQ,YAAY;AAChC,SAAQ,YAAYD,iBAAgB,SAAS,WAAW,OAAO,MAAM,SAAS,WAAW,EAAE,aAAa,SAAS,CAACC,6BAAgB,QAAQ,aAAa,aAAa,SAAS,CAAC"}
|
package/_cjs/ServerError.cjs
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
this.error = error;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("./chunk.cjs");
|
|
3
|
+
let _fncts_base_data_FiberId = require("@fncts/base/data/FiberId");
|
|
4
|
+
//#region build/esm/ServerError.js
|
|
5
|
+
const clientAbortFiberId = (0, require("@fncts/base/data/Global").globalValue)("fncts.http.ServerError.clientAbortFiberId", () => new _fncts_base_data_FiberId.Runtime(-499, 0));
|
|
6
|
+
const ServeErrorTypeId = Symbol.for("fncts.http.ServeError");
|
|
7
|
+
var ServeError = class extends Error {
|
|
8
|
+
error;
|
|
9
|
+
[ServeErrorTypeId] = ServeErrorTypeId;
|
|
10
|
+
constructor(error) {
|
|
11
|
+
super();
|
|
12
|
+
this.error = error;
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//#endregion
|
|
19
16
|
exports.ServeError = ServeError;
|
|
17
|
+
exports.ServeErrorTypeId = ServeErrorTypeId;
|
|
18
|
+
exports.clientAbortFiberId = clientAbortFiberId;
|
|
19
|
+
|
|
20
20
|
//# sourceMappingURL=ServerError.cjs.map
|
package/_cjs/ServerError.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerError.cjs","names":["
|
|
1
|
+
{"version":3,"file":"ServerError.cjs","names":["Runtime"],"sources":["../esm/ServerError.js"],"sourcesContent":["import { Runtime } from \"@fncts/base/data/FiberId\";\nimport { globalValue } from \"@fncts/base/data/Global\";\nexport const clientAbortFiberId = globalValue(\"fncts.http.ServerError.clientAbortFiberId\", () => new Runtime(-499, 0));\nexport const ServeErrorTypeId = Symbol.for(\"fncts.http.ServeError\");\nexport class ServeError extends Error {\n error;\n [ServeErrorTypeId] = ServeErrorTypeId;\n constructor(error) {\n super();\n this.error = error;\n }\n}\n//# sourceMappingURL=ServerError.js.map"],"mappings":";;;;AAEA,MAAa,sBAAA,qCAAA,CAAA,aAAiC,mDAAmD,IAAIA,yBAAAA,QAAQ,MAAM,EAAE,CAAC;AACtH,MAAa,mBAAmB,OAAO,IAAI,wBAAwB;AACnE,IAAa,aAAb,cAAgC,MAAM;CAClC;CACA,CAAC,oBAAoB;CACrB,YAAY,OAAO;AACf,SAAO;AACP,OAAK,QAAQ"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.fromWeb = fromWeb;
|
|
7
|
-
var _internal = /*#__PURE__*/require("./internal.cjs");
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_ServerRequest_internal = require("./internal.cjs");
|
|
3
|
+
//#region build/esm/ServerRequest/api.js
|
|
8
4
|
/**
|
|
9
|
-
|
|
10
|
-
|
|
5
|
+
* @tsplus static fncts.http.ServerRequestOps fromWeb
|
|
6
|
+
*/
|
|
11
7
|
function fromWeb(request) {
|
|
12
|
-
|
|
8
|
+
return new require_ServerRequest_internal.ServerRequestImpl(request, request.url);
|
|
13
9
|
}
|
|
10
|
+
//#endregion
|
|
11
|
+
exports.fromWeb = fromWeb;
|
|
12
|
+
|
|
14
13
|
//# sourceMappingURL=api.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.cjs","names":["
|
|
1
|
+
{"version":3,"file":"api.cjs","names":["ServerRequestImpl"],"sources":["../../esm/ServerRequest/api.js"],"sourcesContent":["import { ServerRequestImpl } from \"./internal.js\";\n/**\n * @tsplus static fncts.http.ServerRequestOps fromWeb\n */\nexport function fromWeb(request) {\n return new ServerRequestImpl(request, request.url);\n}\n//# sourceMappingURL=api.js.map"],"mappings":";;;;;;AAIA,SAAgB,QAAQ,SAAS;AAC7B,QAAO,IAAIA,+BAAAA,kBAAkB,SAAS,QAAQ,IAAI"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _definition = /*#__PURE__*/require("../IncomingMessage/definition.cjs");
|
|
9
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
10
|
-
const ServerRequestTypeId = exports.ServerRequestTypeId = /*#__PURE__*/Symbol.for("fncts.http.ServerRequest");
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("../chunk.cjs");
|
|
3
|
+
const require_IncomingMessage_definition = require("../IncomingMessage/definition.cjs");
|
|
4
|
+
let _fncts_base_data_Tag_constructors = require("@fncts/base/data/Tag/constructors");
|
|
5
|
+
_fncts_base_data_Tag_constructors = require_chunk.__toESM(_fncts_base_data_Tag_constructors, 1);
|
|
6
|
+
//#region build/esm/ServerRequest/definition.js
|
|
7
|
+
const ServerRequestTypeId = Symbol.for("fncts.http.ServerRequest");
|
|
11
8
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}
|
|
9
|
+
* @tsplus type fncts.http.ServerRequest
|
|
10
|
+
* @tsplus companion fncts.http.ServerRequestOps
|
|
11
|
+
*/
|
|
12
|
+
var ServerRequest = class extends require_IncomingMessage_definition.IncomingMessage {
|
|
13
|
+
[ServerRequestTypeId] = ServerRequestTypeId;
|
|
14
|
+
};
|
|
18
15
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
* @tsplus static fncts.http.ServerRequestOps Tag
|
|
17
|
+
*/
|
|
18
|
+
const ServerRequestTag = _fncts_base_data_Tag_constructors.makeTag();
|
|
19
|
+
//#endregion
|
|
21
20
|
exports.ServerRequest = ServerRequest;
|
|
22
|
-
|
|
21
|
+
exports.ServerRequestTag = ServerRequestTag;
|
|
22
|
+
exports.ServerRequestTypeId = ServerRequestTypeId;
|
|
23
|
+
|
|
23
24
|
//# sourceMappingURL=definition.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.cjs","names":["
|
|
1
|
+
{"version":3,"file":"definition.cjs","names":["IncomingMessage","tsplus_module_1"],"sources":["../../esm/ServerRequest/definition.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/data/Tag/constructors\";\nimport { IncomingMessage } from \"../IncomingMessage/definition.js\";\nexport const ServerRequestTypeId = Symbol.for(\"fncts.http.ServerRequest\");\n/**\n * @tsplus type fncts.http.ServerRequest\n * @tsplus companion fncts.http.ServerRequestOps\n */\nexport class ServerRequest extends IncomingMessage {\n [ServerRequestTypeId] = ServerRequestTypeId;\n}\n/**\n * @tsplus static fncts.http.ServerRequestOps Tag\n */\nexport const ServerRequestTag = tsplus_module_1.makeTag();\n//# sourceMappingURL=definition.js.map"],"mappings":";;;;;;AAEA,MAAa,sBAAsB,OAAO,IAAI,2BAA2B;;;;;AAKzE,IAAa,gBAAb,cAAmCA,mCAAAA,gBAAgB;CAC/C,CAAC,uBAAuB;;;;;AAK5B,MAAa,mBAAmBC,kCAAgB,SAAS"}
|