@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
|
@@ -1,45 +1,40 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _Headers = /*#__PURE__*/require("../Headers.cjs");
|
|
11
|
-
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); }
|
|
12
|
-
const ServerResponseTypeId = exports.ServerResponseTypeId = /*#__PURE__*/Symbol.for("fncts.http.ServerResponse");
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_chunk = require("../chunk.cjs");
|
|
3
|
+
const require_Headers = require("../Headers.cjs");
|
|
4
|
+
let _fncts_base_util_predicates = require("@fncts/base/util/predicates");
|
|
5
|
+
_fncts_base_util_predicates = require_chunk.__toESM(_fncts_base_util_predicates, 1);
|
|
6
|
+
let _fncts_base_collection_immutable_HashMap_api = require("@fncts/base/collection/immutable/HashMap/api");
|
|
7
|
+
_fncts_base_collection_immutable_HashMap_api = require_chunk.__toESM(_fncts_base_collection_immutable_HashMap_api, 1);
|
|
8
|
+
//#region build/esm/ServerResponse/definition.js
|
|
9
|
+
const ServerResponseTypeId = Symbol.for("fncts.http.ServerResponse");
|
|
13
10
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
this.headers = new _Headers.Headers(tsplus_module_1.endMutation(newHeaders));
|
|
36
|
-
} else {
|
|
37
|
-
this.headers = headers;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
exports.ServerResponse = ServerResponse;
|
|
11
|
+
* @tsplus type fncts.http.ServerResponse
|
|
12
|
+
* @tsplus companion fncts.http.ServerResponseOps
|
|
13
|
+
*/
|
|
14
|
+
var ServerResponse = class {
|
|
15
|
+
status;
|
|
16
|
+
statusText;
|
|
17
|
+
body;
|
|
18
|
+
[ServerResponseTypeId] = ServerResponseTypeId;
|
|
19
|
+
headers;
|
|
20
|
+
constructor(status, statusText, headers, body) {
|
|
21
|
+
this.status = status;
|
|
22
|
+
this.statusText = statusText;
|
|
23
|
+
this.body = body;
|
|
24
|
+
if (body.contentType || body.contentLength) {
|
|
25
|
+
const newHeaders = _fncts_base_collection_immutable_HashMap_api.beginMutation(headers.backing);
|
|
26
|
+
if (body.contentType) _fncts_base_collection_immutable_HashMap_api.set("content-type", body.contentType)(newHeaders);
|
|
27
|
+
if (body.contentLength) _fncts_base_collection_immutable_HashMap_api.set("content-length", body.contentLength.toString())(newHeaders);
|
|
28
|
+
this.headers = new require_Headers.Headers(_fncts_base_collection_immutable_HashMap_api.endMutation(newHeaders));
|
|
29
|
+
} else this.headers = headers;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
42
32
|
function isServerResponse(u) {
|
|
43
|
-
|
|
33
|
+
return _fncts_base_util_predicates.isObject(u) && ServerResponseTypeId in u;
|
|
44
34
|
}
|
|
35
|
+
//#endregion
|
|
36
|
+
exports.ServerResponse = ServerResponse;
|
|
37
|
+
exports.ServerResponseTypeId = ServerResponseTypeId;
|
|
38
|
+
exports.isServerResponse = isServerResponse;
|
|
39
|
+
|
|
45
40
|
//# sourceMappingURL=definition.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definition.cjs","names":["
|
|
1
|
+
{"version":3,"file":"definition.cjs","names":["tsplus_module_1","Headers","tsplus_module_2"],"sources":["../../esm/ServerResponse/definition.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/base/collection/immutable/HashMap/api\";\nimport * as tsplus_module_2 from \"@fncts/base/util/predicates\";\nimport { Headers } from \"../Headers.js\";\nexport const ServerResponseTypeId = Symbol.for(\"fncts.http.ServerResponse\");\n/**\n * @tsplus type fncts.http.ServerResponse\n * @tsplus companion fncts.http.ServerResponseOps\n */\nexport class ServerResponse {\n status;\n statusText;\n body;\n [ServerResponseTypeId] = ServerResponseTypeId;\n headers;\n constructor(status, statusText, headers, body) {\n this.status = status;\n this.statusText = statusText;\n this.body = body;\n if (body.contentType || body.contentLength) {\n const newHeaders = tsplus_module_1.beginMutation(headers.backing);\n if (body.contentType) {\n tsplus_module_1.set(\"content-type\", body.contentType)(newHeaders);\n }\n if (body.contentLength) {\n tsplus_module_1.set(\"content-length\", body.contentLength.toString())(newHeaders);\n }\n this.headers = new Headers(tsplus_module_1.endMutation(newHeaders));\n }\n else {\n this.headers = headers;\n }\n }\n}\nexport function isServerResponse(u) {\n return tsplus_module_2.isObject(u) && ServerResponseTypeId in u;\n}\n//# sourceMappingURL=definition.js.map"],"mappings":";;;;;;;;AAGA,MAAa,uBAAuB,OAAO,IAAI,4BAA4B;;;;;AAK3E,IAAa,iBAAb,MAA4B;CACxB;CACA;CACA;CACA,CAAC,wBAAwB;CACzB;CACA,YAAY,QAAQ,YAAY,SAAS,MAAM;AAC3C,OAAK,SAAS;AACd,OAAK,aAAa;AAClB,OAAK,OAAO;AACZ,MAAI,KAAK,eAAe,KAAK,eAAe;GACxC,MAAM,aAAaA,6CAAgB,cAAc,QAAQ,QAAQ;AACjE,OAAI,KAAK,YACL,8CAAgB,IAAI,gBAAgB,KAAK,YAAY,CAAC,WAAW;AAErE,OAAI,KAAK,cACL,8CAAgB,IAAI,kBAAkB,KAAK,cAAc,UAAU,CAAC,CAAC,WAAW;AAEpF,QAAK,UAAU,IAAIC,gBAAAA,QAAQD,6CAAgB,YAAY,WAAW,CAAC;QAGnE,MAAK,UAAU;;;AAI3B,SAAgB,iBAAiB,GAAG;AAChC,QAAOE,4BAAgB,SAAS,EAAE,IAAI,wBAAwB"}
|
package/_cjs/ServerResponse.cjs
CHANGED
|
@@ -1,28 +1,18 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (key === "default" || key === "__esModule") return;
|
|
20
|
-
if (key in exports && exports[key] === _definition[key]) return;
|
|
21
|
-
Object.defineProperty(exports, key, {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () {
|
|
24
|
-
return _definition[key];
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
});
|
|
28
|
-
//# sourceMappingURL=ServerResponse.cjs.map
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_ServerResponse_definition = require("./ServerResponse/definition.cjs");
|
|
3
|
+
const require_ServerResponse_api = require("./ServerResponse/api.cjs");
|
|
4
|
+
exports.ServerResponse = require_ServerResponse_definition.ServerResponse;
|
|
5
|
+
exports.ServerResponseTypeId = require_ServerResponse_definition.ServerResponseTypeId;
|
|
6
|
+
exports.empty = require_ServerResponse_api.empty;
|
|
7
|
+
exports.isServerResponse = require_ServerResponse_definition.isServerResponse;
|
|
8
|
+
exports.json = require_ServerResponse_api.json;
|
|
9
|
+
exports.schemaJson = require_ServerResponse_api.schemaJson;
|
|
10
|
+
exports.setBody = require_ServerResponse_api.setBody;
|
|
11
|
+
exports.setHeader = require_ServerResponse_api.setHeader;
|
|
12
|
+
exports.setHeaders = require_ServerResponse_api.setHeaders;
|
|
13
|
+
exports.setStatus = require_ServerResponse_api.setStatus;
|
|
14
|
+
exports.stream = require_ServerResponse_api.stream;
|
|
15
|
+
exports.text = require_ServerResponse_api.text;
|
|
16
|
+
exports.toWeb = require_ServerResponse_api.toWeb;
|
|
17
|
+
exports.uint8Array = require_ServerResponse_api.uint8Array;
|
|
18
|
+
exports.urlParams = require_ServerResponse_api.urlParams;
|
package/_cjs/Socket.cjs
CHANGED
|
@@ -1,219 +1,240 @@
|
|
|
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
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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_base_util_predicates = require("@fncts/base/util/predicates");
|
|
6
|
+
_fncts_base_util_predicates = require_chunk.__toESM(_fncts_base_util_predicates, 1);
|
|
7
|
+
let _fncts_io_Channel_api = require("@fncts/io/Channel/api");
|
|
8
|
+
_fncts_io_Channel_api = require_chunk.__toESM(_fncts_io_Channel_api, 1);
|
|
9
|
+
let _fncts_io_Channel_core_api = require("@fncts/io/Channel/core-api");
|
|
10
|
+
_fncts_io_Channel_core_api = require_chunk.__toESM(_fncts_io_Channel_core_api, 1);
|
|
11
|
+
let _fncts_base_data_Exit_api = require("@fncts/base/data/Exit/api");
|
|
12
|
+
_fncts_base_data_Exit_api = require_chunk.__toESM(_fncts_base_data_Exit_api, 1);
|
|
13
|
+
let _fncts_io_Queue_api_operations = require("@fncts/io/Queue/api/operations");
|
|
14
|
+
_fncts_io_Queue_api_operations = require_chunk.__toESM(_fncts_io_Queue_api_operations, 1);
|
|
15
|
+
let _fncts_base_data_Cause_api = require("@fncts/base/data/Cause/api");
|
|
16
|
+
_fncts_base_data_Cause_api = require_chunk.__toESM(_fncts_base_data_Cause_api, 1);
|
|
17
|
+
let _fncts_io_IO_api = require("@fncts/io/IO/api");
|
|
18
|
+
_fncts_io_IO_api = require_chunk.__toESM(_fncts_io_IO_api, 1);
|
|
19
|
+
let _fncts_base_collection_immutable_Conc_constructors = require("@fncts/base/collection/immutable/Conc/constructors");
|
|
20
|
+
_fncts_base_collection_immutable_Conc_constructors = require_chunk.__toESM(_fncts_base_collection_immutable_Conc_constructors, 1);
|
|
21
|
+
let _fncts_base_data_Exit_constructors = require("@fncts/base/data/Exit/constructors");
|
|
22
|
+
_fncts_base_data_Exit_constructors = require_chunk.__toESM(_fncts_base_data_Exit_constructors, 1);
|
|
23
|
+
let _fncts_io_IO_api_fork = require("@fncts/io/IO/api/fork");
|
|
24
|
+
_fncts_io_IO_api_fork = require_chunk.__toESM(_fncts_io_IO_api_fork, 1);
|
|
25
|
+
let _fncts_io_IO_api_interrupt = require("@fncts/io/IO/api/interrupt");
|
|
26
|
+
_fncts_io_IO_api_interrupt = require_chunk.__toESM(_fncts_io_IO_api_interrupt, 1);
|
|
27
|
+
let _fncts_io_Queue_constructors = require("@fncts/io/Queue/constructors");
|
|
28
|
+
_fncts_io_Queue_constructors = require_chunk.__toESM(_fncts_io_Queue_constructors, 1);
|
|
29
|
+
let _fncts_io_Scope_api = require("@fncts/io/Scope/api");
|
|
30
|
+
_fncts_io_Scope_api = require_chunk.__toESM(_fncts_io_Scope_api, 1);
|
|
31
|
+
let _fncts_io_IO_api_acquireRelease = require("@fncts/io/IO/api/acquireRelease");
|
|
32
|
+
_fncts_io_IO_api_acquireRelease = require_chunk.__toESM(_fncts_io_IO_api_acquireRelease, 1);
|
|
33
|
+
let _fncts_base_data_Maybe_constructors = require("@fncts/base/data/Maybe/constructors");
|
|
34
|
+
_fncts_base_data_Maybe_constructors = require_chunk.__toESM(_fncts_base_data_Maybe_constructors, 1);
|
|
35
|
+
let _fncts_io_FiberSet = require("@fncts/io/FiberSet");
|
|
36
|
+
_fncts_io_FiberSet = require_chunk.__toESM(_fncts_io_FiberSet, 1);
|
|
37
|
+
let _fncts_base_data_Duration_api = require("@fncts/base/data/Duration/api");
|
|
38
|
+
_fncts_base_data_Duration_api = require_chunk.__toESM(_fncts_base_data_Duration_api, 1);
|
|
39
|
+
let _fncts_io_IO_api_timeout = require("@fncts/io/IO/api/timeout");
|
|
40
|
+
_fncts_io_IO_api_timeout = require_chunk.__toESM(_fncts_io_IO_api_timeout, 1);
|
|
41
|
+
let _fncts_io_IO_api_raceFirst = require("@fncts/io/IO/api/raceFirst");
|
|
42
|
+
_fncts_io_IO_api_raceFirst = require_chunk.__toESM(_fncts_io_IO_api_raceFirst, 1);
|
|
43
|
+
let _fncts_io_Future_api = require("@fncts/io/Future/api");
|
|
44
|
+
_fncts_io_Future_api = require_chunk.__toESM(_fncts_io_Future_api, 1);
|
|
45
|
+
let _fncts_io_IO_api_environment = require("@fncts/io/IO/api/environment");
|
|
46
|
+
_fncts_io_IO_api_environment = require_chunk.__toESM(_fncts_io_IO_api_environment, 1);
|
|
47
|
+
let _fncts_io_IO_api_scoped = require("@fncts/io/IO/api/scoped");
|
|
48
|
+
_fncts_io_IO_api_scoped = require_chunk.__toESM(_fncts_io_IO_api_scoped, 1);
|
|
49
|
+
let _fncts_io_Layer_api = require("@fncts/io/Layer/api");
|
|
50
|
+
_fncts_io_Layer_api = require_chunk.__toESM(_fncts_io_Layer_api, 1);
|
|
51
|
+
let isows = require("isows");
|
|
52
|
+
//#region build/esm/Socket.js
|
|
40
53
|
const fileName_1 = "(@fncts/http) src/Socket.ts";
|
|
41
|
-
const toChannel =
|
|
42
|
-
const makeWebSocket =
|
|
43
|
-
const fromWebSocket =
|
|
44
|
-
const SocketTypeId =
|
|
54
|
+
const toChannel = toChannel_1;
|
|
55
|
+
const makeWebSocket = makeWebSocket_1;
|
|
56
|
+
const fromWebSocket = fromWebSocket_1;
|
|
57
|
+
const SocketTypeId = Symbol.for("fncts.http.Socket");
|
|
45
58
|
/**
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
59
|
+
* @tsplus type fncts.http.Socket
|
|
60
|
+
* @tsplus companion fncts.http.SocketOps
|
|
61
|
+
*/
|
|
62
|
+
var Socket = class {
|
|
63
|
+
[SocketTypeId] = SocketTypeId;
|
|
64
|
+
};
|
|
52
65
|
/**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
exports.SocketCloseError = SocketCloseError;
|
|
66
|
+
* @tsplus static fncts.http.SocketOps Tag
|
|
67
|
+
*/
|
|
68
|
+
const SocketTag_1 = _fncts_base_data_Tag_constructors.makeTag();
|
|
69
|
+
const SocketTag = SocketTag_1;
|
|
70
|
+
const SocketGenericErrorTypeId = Symbol.for("fncts.http.Socket.SocketGenericError");
|
|
71
|
+
var SocketGenericError = class extends Error {
|
|
72
|
+
reason;
|
|
73
|
+
error;
|
|
74
|
+
[SocketGenericErrorTypeId] = SocketGenericErrorTypeId;
|
|
75
|
+
constructor(reason, error) {
|
|
76
|
+
super();
|
|
77
|
+
this.reason = reason;
|
|
78
|
+
this.error = error;
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
const SocketCloseErrorTypeId = Symbol.for("fncts.http.Socket.SocketCloseError");
|
|
82
|
+
var SocketCloseError = class extends Error {
|
|
83
|
+
reason;
|
|
84
|
+
code;
|
|
85
|
+
closeReason;
|
|
86
|
+
error;
|
|
87
|
+
[SocketCloseErrorTypeId] = SocketCloseErrorTypeId;
|
|
88
|
+
constructor(reason, code, closeReason, error) {
|
|
89
|
+
super();
|
|
90
|
+
this.reason = reason;
|
|
91
|
+
this.code = code;
|
|
92
|
+
this.closeReason = closeReason;
|
|
93
|
+
this.error = error;
|
|
94
|
+
}
|
|
95
|
+
static isClean(isClean) {
|
|
96
|
+
return (u) => {
|
|
97
|
+
return isSocketCloseError(u) && isClean(u.code);
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
};
|
|
91
101
|
function isSocketCloseError(u) {
|
|
92
|
-
|
|
102
|
+
return _fncts_base_util_predicates.isObject(u) && SocketCloseErrorTypeId in u;
|
|
93
103
|
}
|
|
94
|
-
const CloseEventTypeId =
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
exports.CloseEvent = CloseEvent;
|
|
104
|
+
const CloseEventTypeId = Symbol.for("fncts.http.Socket.CloseEvent");
|
|
105
|
+
var CloseEvent = class {
|
|
106
|
+
code;
|
|
107
|
+
reason;
|
|
108
|
+
[CloseEventTypeId] = CloseEventTypeId;
|
|
109
|
+
constructor(code = 1e3, reason) {
|
|
110
|
+
this.code = code;
|
|
111
|
+
this.reason = reason;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
105
114
|
function isCloseEvent(u) {
|
|
106
|
-
|
|
115
|
+
return _fncts_base_util_predicates.isObject(u) && CloseEventTypeId in u;
|
|
107
116
|
}
|
|
108
117
|
/**
|
|
109
|
-
|
|
110
|
-
|
|
118
|
+
* @tsplus fluent fncts.http.Socket toChannel
|
|
119
|
+
*/
|
|
111
120
|
function toChannel_1(self) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
121
|
+
return _fncts_io_Channel_api.unwrap(() => _fncts_io_IO_api.flatMap((writeScope) => _fncts_io_IO_api.flatMap((write) => _fncts_io_IO_api.flatMap((exitQueue) => {
|
|
122
|
+
const input = {
|
|
123
|
+
awaitRead: _fncts_io_IO_api.unit,
|
|
124
|
+
emit(chunk) {
|
|
125
|
+
return _fncts_io_IO_api.catchAllCause((cause) => _fncts_io_Queue_api_operations.offer(_fncts_base_data_Exit_constructors.failCause(cause, fileName_1 + ":94:105"), fileName_1 + ":94:90")(exitQueue), fileName_1 + ":94:63")(_fncts_io_IO_api.foreachDiscard(chunk, write, fileName_1 + ":94:35"));
|
|
126
|
+
},
|
|
127
|
+
error(error) {
|
|
128
|
+
return _fncts_io_IO_api.zipRight(_fncts_io_Queue_api_operations.offer(_fncts_base_data_Exit_constructors.failCause(error, fileName_1 + ":97:78"), fileName_1 + ":97:63")(exitQueue), fileName_1 + ":97:47")(writeScope.close(() => _fncts_base_data_Exit_constructors.unit));
|
|
129
|
+
},
|
|
130
|
+
done() {
|
|
131
|
+
return writeScope.close(() => _fncts_base_data_Exit_constructors.unit);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
return _fncts_io_IO_api.map(() => {
|
|
135
|
+
const loop = _fncts_io_Channel_core_api.flatMap((exit) => _fncts_base_data_Exit_api.match((cause) => cause._tag === "Empty" ? _fncts_io_Channel_api.unit : _fncts_io_Channel_core_api.failCause(() => cause), (chunk) => _fncts_io_Channel_core_api.zipRight(loop)(_fncts_io_Channel_api.write(() => chunk)))(exit))(_fncts_io_Channel_api.fromIO(() => _fncts_io_Queue_api_operations.take(exitQueue, fileName_1 + ":112:18")));
|
|
136
|
+
return _fncts_io_Channel_api.embedInput(input)(loop);
|
|
137
|
+
}, fileName_1 + ":104:8")(_fncts_io_IO_api_interrupt.interruptible(_fncts_io_IO_api_fork.fork(_fncts_io_IO_api.tap((exit) => _fncts_io_Queue_api_operations.offer(exit, fileName_1 + ":108:48")(exitQueue), fileName_1 + ":108:22")(_fncts_io_IO_api.result(_fncts_io_IO_api.zipRight(_fncts_io_IO_api.failCauseNow(_fncts_base_data_Cause_api.empty(), fileName_1 + ":107:36"), fileName_1 + ":107:20")(self.run((data) => _fncts_io_Queue_api_operations.offer(_fncts_base_data_Exit_constructors.succeed(_fncts_base_collection_immutable_Conc_constructors.single(data), fileName_1 + ":106:54"), fileName_1 + ":106:41")(exitQueue))), fileName_1 + ":107:70")), fileName_1 + ":108:55"), fileName_1 + ":108:60"));
|
|
138
|
+
}, fileName_1 + ":89:27")(_fncts_io_Queue_constructors.makeUnbounded(fileName_1 + ":89:47")), fileName_1 + ":88:27")(_fncts_io_Scope_api.extend(() => self.writer, fileName_1 + ":88:45")(writeScope)), fileName_1 + ":87:27")(_fncts_io_Scope_api.make));
|
|
130
139
|
}
|
|
131
140
|
/**
|
|
132
|
-
|
|
133
|
-
|
|
141
|
+
* @tsplus fluent fncts.http.Socket toChannelWith
|
|
142
|
+
*/
|
|
134
143
|
function toChannelWith(self) {
|
|
135
|
-
|
|
144
|
+
return toChannel_1(self);
|
|
136
145
|
}
|
|
137
146
|
/**
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
const WebSocketTag_1 =
|
|
141
|
-
const WebSocketTag =
|
|
147
|
+
* @tsplus static fncts.http.WebSocketOps Tag
|
|
148
|
+
*/
|
|
149
|
+
const WebSocketTag_1 = _fncts_base_data_Tag_constructors.makeTag();
|
|
150
|
+
const WebSocketTag = WebSocketTag_1;
|
|
142
151
|
/**
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
152
|
+
* @tsplus static fncts.http.SocketOps makeWebSocket
|
|
153
|
+
* @tsplus static fncts.http.WebSocketOps __call
|
|
154
|
+
*/
|
|
146
155
|
function makeWebSocket_1(url, options) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
return new _isows.WebSocket(url);
|
|
152
|
-
}, fileName_1 + ":159:9"), ws => tsplus_module_8.succeed(() => ws.close(), fileName_1 + ":165:17"), fileName_1 + ":158:22"), options);
|
|
156
|
+
return fromWebSocket_1(_fncts_io_IO_api_acquireRelease.acquireRelease(() => _fncts_io_IO_api.succeed(() => {
|
|
157
|
+
if ("WebSocket" in globalThis) return new globalThis.WebSocket(url);
|
|
158
|
+
return new isows.WebSocket(url);
|
|
159
|
+
}, fileName_1 + ":159:9"), (ws) => _fncts_io_IO_api.succeed(() => ws.close(), fileName_1 + ":165:17"), fileName_1 + ":158:22"), options);
|
|
153
160
|
}
|
|
154
161
|
/**
|
|
155
|
-
|
|
156
|
-
|
|
162
|
+
* @tsplus static fncts.http.SocketOps fromWebSocket
|
|
163
|
+
*/
|
|
157
164
|
function fromWebSocket_1(acquire, options) {
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
return new class extends Socket {
|
|
199
|
-
writer = writer;
|
|
200
|
-
run = run;
|
|
201
|
-
}();
|
|
202
|
-
}, fileName_1 + ":183:31")(tsplus_module_13.makeUnbounded(fileName_1 + ":183:51"));
|
|
203
|
-
})();
|
|
165
|
+
return (() => {
|
|
166
|
+
const closeCodeIsError = options?.closeCodeIsError ?? ((code) => code !== 1e3 && code !== 1006);
|
|
167
|
+
return _fncts_io_IO_api.map((sendQueue) => {
|
|
168
|
+
const run = (handler) => _fncts_io_IO_api_interrupt.interruptible(_fncts_io_IO_api_scoped.scoped(_fncts_io_IO_api.flatMap((ws) => {
|
|
169
|
+
const encoder = new TextEncoder();
|
|
170
|
+
return _fncts_io_IO_api.flatMap((fiberSet) => _fncts_io_IO_api.flatMap((run) => {
|
|
171
|
+
let open = false;
|
|
172
|
+
ws.onmessage = (event) => {
|
|
173
|
+
run(handler(event.data instanceof Uint8Array ? event.data : typeof event.data === "string" ? encoder.encode(event.data) : new Uint8Array(event.data)));
|
|
174
|
+
};
|
|
175
|
+
ws.onclose = (event) => {
|
|
176
|
+
_fncts_io_Future_api.unsafeDone(_fncts_io_IO_api.fail(() => new SocketCloseError("Close", event.code, event.reason, void 0), fileName_1 + ":206:45"), fileName_1 + ":206:37")(fiberSet.future);
|
|
177
|
+
};
|
|
178
|
+
ws.onerror = (error) => {
|
|
179
|
+
_fncts_io_Future_api.unsafeDone(_fncts_io_IO_api.fail(() => new SocketGenericError(open ? "Read" : "Open", error), fileName_1 + ":210:45"), fileName_1 + ":210:37")(fiberSet.future);
|
|
180
|
+
};
|
|
181
|
+
return _fncts_io_IO_api.flatMap(() => _fncts_io_IO_api.flatMap(() => _fncts_io_IO_api.flatMap(() => _fncts_io_IO_api.map(() => void 0, fileName_1 + ":250:10")(_fncts_io_IO_api.catchJust(_fncts_base_data_Maybe_constructors.partial((miss) => (error) => SocketCloseError.isClean((code) => !closeCodeIsError(code))(error) ? _fncts_io_IO_api.unit : miss()), fileName_1 + ":251:34")(_fncts_io_FiberSet.join(fiberSet))), fileName_1 + ":234:10")(_fncts_io_FiberSet.run(_fncts_io_IO_api.forever(_fncts_io_IO_api.tap((chunk) => {
|
|
182
|
+
if (isCloseEvent(chunk)) return _fncts_io_IO_api.fail(() => {
|
|
183
|
+
ws.close(chunk.code, chunk.reason);
|
|
184
|
+
return new SocketCloseError("Close", chunk.code, chunk.reason, chunk);
|
|
185
|
+
}, fileName_1 + ":238:31");
|
|
186
|
+
else return _fncts_io_IO_api.tryCatch(() => ws.send(chunk), (error) => new SocketGenericError("Write", error), fileName_1 + ":244:35");
|
|
187
|
+
}, fileName_1 + ":236:31")(_fncts_io_Queue_api_operations.take(sendQueue, fileName_1 + ":236:22")), fileName_1 + ":246:15"))(fiberSet)), fileName_1 + ":232:10")(_fncts_io_IO_api.succeed(() => open = true, fileName_1 + ":232:13")), fileName_1 + ":213:10")(_fncts_io_IO_api.defer(() => {
|
|
188
|
+
if (ws.readyState !== 1) return _fncts_io_IO_api_raceFirst.raceFirst(_fncts_io_FiberSet.join(fiberSet), fileName_1 + ":225:27")(_fncts_io_IO_api_timeout.timeoutFail(() => options?.openTimeout ?? _fncts_base_data_Duration_api.seconds(10), () => new SocketGenericError("OpenTimeout", "timeout waiting for \"open\""))(_fncts_io_IO_api.async((resume) => {
|
|
189
|
+
ws.onopen = () => {
|
|
190
|
+
resume(_fncts_io_IO_api.unit);
|
|
191
|
+
};
|
|
192
|
+
})));
|
|
193
|
+
return _fncts_io_IO_api.unit;
|
|
194
|
+
}, fileName_1 + ":214:19"));
|
|
195
|
+
}, fileName_1 + ":189:27")(_fncts_io_IO_api_environment.provideSomeService(ws, WebSocketTag_1, fileName_1 + ":190:73")(_fncts_io_FiberSet.runtime()(fiberSet))), fileName_1 + ":188:27")(_fncts_io_FiberSet.make());
|
|
196
|
+
}, fileName_1 + ":186:27")(acquire), fileName_1 + ":258:9"), fileName_1 + ":258:16");
|
|
197
|
+
const write = (chunk) => _fncts_io_Queue_api_operations.offer(chunk, fileName_1 + ":260:70")(sendQueue);
|
|
198
|
+
const writer = _fncts_io_IO_api.succeed(() => write, fileName_1 + ":262:22");
|
|
199
|
+
return new class extends Socket {
|
|
200
|
+
writer = writer;
|
|
201
|
+
run = run;
|
|
202
|
+
}();
|
|
203
|
+
}, fileName_1 + ":183:31")(_fncts_io_Queue_constructors.makeUnbounded(fileName_1 + ":183:51"));
|
|
204
|
+
})();
|
|
204
205
|
}
|
|
205
206
|
/**
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
207
|
+
* @tsplus static fncts.http.SocketOps makeWebSocketChannel
|
|
208
|
+
* @tsplus static fncts.http.WebSocketOps makeChannel
|
|
209
|
+
*/
|
|
209
210
|
function makeWebSocketChannel(url, options) {
|
|
210
|
-
|
|
211
|
+
return _fncts_io_Channel_api.unwrap(() => _fncts_io_IO_api.map((socket) => toChannel_1(socket), fileName_1 + ":281:56")(makeWebSocket_1(url, options)));
|
|
211
212
|
}
|
|
212
213
|
/**
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
214
|
+
* @tsplus static fncts.http.SocketOps liveWebSocket
|
|
215
|
+
* @tsplus static fncts.http.WebSocketOps live
|
|
216
|
+
*/
|
|
216
217
|
function live(url, options) {
|
|
217
|
-
|
|
218
|
+
return _fncts_io_Layer_api.scoped(() => makeWebSocket_1(url, options), SocketTag_1, fileName_1 + ":294:22");
|
|
218
219
|
}
|
|
220
|
+
//#endregion
|
|
221
|
+
exports.CloseEvent = CloseEvent;
|
|
222
|
+
exports.CloseEventTypeId = CloseEventTypeId;
|
|
223
|
+
exports.Socket = Socket;
|
|
224
|
+
exports.SocketCloseError = SocketCloseError;
|
|
225
|
+
exports.SocketCloseErrorTypeId = SocketCloseErrorTypeId;
|
|
226
|
+
exports.SocketGenericError = SocketGenericError;
|
|
227
|
+
exports.SocketGenericErrorTypeId = SocketGenericErrorTypeId;
|
|
228
|
+
exports.SocketTag = SocketTag;
|
|
229
|
+
exports.SocketTypeId = SocketTypeId;
|
|
230
|
+
exports.WebSocketTag = WebSocketTag;
|
|
231
|
+
exports.fromWebSocket = fromWebSocket;
|
|
232
|
+
exports.isCloseEvent = isCloseEvent;
|
|
233
|
+
exports.isSocketCloseError = isSocketCloseError;
|
|
234
|
+
exports.live = live;
|
|
235
|
+
exports.makeWebSocket = makeWebSocket;
|
|
236
|
+
exports.makeWebSocketChannel = makeWebSocketChannel;
|
|
237
|
+
exports.toChannel = toChannel;
|
|
238
|
+
exports.toChannelWith = toChannelWith;
|
|
239
|
+
|
|
219
240
|
//# sourceMappingURL=Socket.cjs.map
|