@fncts/http 0.0.11 → 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 -65
- package/_cjs/Body/definition.cjs.map +1 -1
- package/_cjs/Body.cjs +20 -28
- package/_cjs/BodyError.cjs +33 -38
- package/_cjs/BodyError.cjs.map +1 -1
- package/_cjs/Headers.cjs +70 -74
- 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 -17
- 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 -17
- package/_cjs/RequestError.cjs.map +1 -1
- package/_cjs/ResponseError.cjs +26 -25
- 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 +29 -34
- package/_cjs/Route/definition.cjs.map +1 -1
- package/_cjs/Route/internal.cjs +33 -27
- package/_cjs/Route/internal.cjs.map +1 -1
- package/_cjs/Route.cjs +23 -28
- package/_cjs/RouteNotFound.cjs +16 -16
- 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 -19
- package/_cjs/Router/definition.cjs.map +1 -1
- package/_cjs/Router/internal.cjs +75 -79
- package/_cjs/Router/internal.cjs.map +1 -1
- package/_cjs/Router.cjs +24 -28
- package/_cjs/Server.cjs +38 -41
- package/_cjs/Server.cjs.map +1 -1
- package/_cjs/ServerError.cjs +18 -19
- 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 +21 -25
- package/_cjs/ServerRequest/definition.cjs.map +1 -1
- package/_cjs/ServerRequest/internal.cjs +77 -74
- 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 -39
- package/_cjs/ServerResponse/definition.cjs.map +1 -1
- package/_cjs/ServerResponse.cjs +18 -28
- package/_cjs/Socket.cjs +213 -193
- package/_cjs/Socket.cjs.map +1 -1
- package/_cjs/UrlParams.cjs +23 -26
- 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 -55
- package/_mjs/Body/definition.mjs.map +1 -1
- package/_mjs/Body.mjs +3 -4
- package/_mjs/BodyError.mjs +30 -30
- package/_mjs/BodyError.mjs.map +1 -1
- package/_mjs/Headers.mjs +61 -64
- 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 -11
- 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 -11
- package/_mjs/RequestError.mjs.map +1 -1
- package/_mjs/ResponseError.mjs +25 -19
- 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 -24
- package/_mjs/Route/definition.mjs.map +1 -1
- package/_mjs/Route/internal.mjs +30 -19
- package/_mjs/Route/internal.mjs.map +1 -1
- package/_mjs/Route.mjs +3 -4
- package/_mjs/RouteNotFound.mjs +15 -10
- 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 -12
- package/_mjs/Router/definition.mjs.map +1 -1
- package/_mjs/Router/internal.mjs +55 -63
- package/_mjs/Router/internal.mjs.map +1 -1
- package/_mjs/Router.mjs +3 -4
- package/_mjs/Server.mjs +28 -31
- package/_mjs/Server.mjs.map +1 -1
- package/_mjs/ServerError.mjs +14 -11
- 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 -16
- package/_mjs/ServerRequest/definition.mjs.map +1 -1
- package/_mjs/ServerRequest/internal.mjs +65 -64
- 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 -30
- package/_mjs/ServerResponse/definition.mjs.map +1 -1
- package/_mjs/ServerResponse.mjs +3 -4
- package/_mjs/Socket.mjs +152 -157
- package/_mjs/Socket.mjs.map +1 -1
- package/_mjs/UrlParams.mjs +22 -19
- package/_mjs/UrlParams.mjs.map +1 -1
- package/_mjs/global.mjs +0 -2
- package/_src/Headers.ts +1 -1
- package/_src/Socket.ts +1 -0
- package/_src/UrlParams.ts +1 -1
- 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,43 +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
|
-
var _a;
|
|
13
|
-
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");
|
|
14
10
|
/**
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.ServerResponse = ServerResponse;
|
|
39
|
-
_a = ServerResponseTypeId;
|
|
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
|
+
};
|
|
40
32
|
function isServerResponse(u) {
|
|
41
|
-
|
|
33
|
+
return _fncts_base_util_predicates.isObject(u) && ServerResponseTypeId in u;
|
|
42
34
|
}
|
|
35
|
+
//#endregion
|
|
36
|
+
exports.ServerResponse = ServerResponse;
|
|
37
|
+
exports.ServerResponseTypeId = ServerResponseTypeId;
|
|
38
|
+
exports.isServerResponse = isServerResponse;
|
|
39
|
+
|
|
43
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,220 +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
|
-
|
|
40
|
-
|
|
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
|
|
41
53
|
const fileName_1 = "(@fncts/http) src/Socket.ts";
|
|
42
|
-
const toChannel =
|
|
43
|
-
const makeWebSocket =
|
|
44
|
-
const fromWebSocket =
|
|
45
|
-
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");
|
|
46
58
|
/**
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
exports.Socket = Socket;
|
|
56
|
-
_a = SocketTypeId;
|
|
59
|
+
* @tsplus type fncts.http.Socket
|
|
60
|
+
* @tsplus companion fncts.http.SocketOps
|
|
61
|
+
*/
|
|
62
|
+
var Socket = class {
|
|
63
|
+
[SocketTypeId] = SocketTypeId;
|
|
64
|
+
};
|
|
57
65
|
/**
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
const SocketTag_1 =
|
|
61
|
-
const SocketTag =
|
|
62
|
-
const SocketGenericErrorTypeId =
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
const SocketCloseErrorTypeId =
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
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
|
+
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
|
+
};
|
|
104
114
|
function isCloseEvent(u) {
|
|
105
|
-
|
|
115
|
+
return _fncts_base_util_predicates.isObject(u) && CloseEventTypeId in u;
|
|
106
116
|
}
|
|
107
117
|
/**
|
|
108
|
-
|
|
109
|
-
|
|
118
|
+
* @tsplus fluent fncts.http.Socket toChannel
|
|
119
|
+
*/
|
|
110
120
|
function toChannel_1(self) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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));
|
|
129
139
|
}
|
|
130
140
|
/**
|
|
131
|
-
|
|
132
|
-
|
|
141
|
+
* @tsplus fluent fncts.http.Socket toChannelWith
|
|
142
|
+
*/
|
|
133
143
|
function toChannelWith(self) {
|
|
134
|
-
|
|
144
|
+
return toChannel_1(self);
|
|
135
145
|
}
|
|
136
146
|
/**
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
const WebSocketTag_1 =
|
|
140
|
-
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;
|
|
141
151
|
/**
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
152
|
+
* @tsplus static fncts.http.SocketOps makeWebSocket
|
|
153
|
+
* @tsplus static fncts.http.WebSocketOps __call
|
|
154
|
+
*/
|
|
145
155
|
function makeWebSocket_1(url, options) {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return new _isows.WebSocket(url);
|
|
151
|
-
}, 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);
|
|
152
160
|
}
|
|
153
161
|
/**
|
|
154
|
-
|
|
155
|
-
|
|
162
|
+
* @tsplus static fncts.http.SocketOps fromWebSocket
|
|
163
|
+
*/
|
|
156
164
|
function fromWebSocket_1(acquire, options) {
|
|
157
|
-
|
|
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
|
-
constructor() {
|
|
198
|
-
super(...arguments);
|
|
199
|
-
this.writer = writer;
|
|
200
|
-
this.run = run;
|
|
201
|
-
}
|
|
202
|
-
}();
|
|
203
|
-
}, fileName_1 + ":183:31")(tsplus_module_13.makeUnbounded(fileName_1 + ":183:51"));
|
|
204
|
-
})();
|
|
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
|
+
})();
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
* @tsplus static fncts.http.SocketOps makeWebSocketChannel
|
|
208
|
+
* @tsplus static fncts.http.WebSocketOps makeChannel
|
|
209
|
+
*/
|
|
210
210
|
function makeWebSocketChannel(url, options) {
|
|
211
|
-
|
|
211
|
+
return _fncts_io_Channel_api.unwrap(() => _fncts_io_IO_api.map((socket) => toChannel_1(socket), fileName_1 + ":281:56")(makeWebSocket_1(url, options)));
|
|
212
212
|
}
|
|
213
213
|
/**
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
214
|
+
* @tsplus static fncts.http.SocketOps liveWebSocket
|
|
215
|
+
* @tsplus static fncts.http.WebSocketOps live
|
|
216
|
+
*/
|
|
217
217
|
function live(url, options) {
|
|
218
|
-
|
|
218
|
+
return _fncts_io_Layer_api.scoped(() => makeWebSocket_1(url, options), SocketTag_1, fileName_1 + ":294:22");
|
|
219
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
|
+
|
|
220
240
|
//# sourceMappingURL=Socket.cjs.map
|