@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.
Files changed (146) hide show
  1. package/LICENSE +26 -0
  2. package/_cjs/Body/api.cjs +62 -65
  3. package/_cjs/Body/api.cjs.map +1 -1
  4. package/_cjs/Body/definition.cjs +66 -65
  5. package/_cjs/Body/definition.cjs.map +1 -1
  6. package/_cjs/Body.cjs +20 -28
  7. package/_cjs/BodyError.cjs +33 -38
  8. package/_cjs/BodyError.cjs.map +1 -1
  9. package/_cjs/Headers.cjs +70 -74
  10. package/_cjs/Headers.cjs.map +1 -1
  11. package/_cjs/HttpApp.cjs +102 -94
  12. package/_cjs/HttpApp.cjs.map +1 -1
  13. package/_cjs/IncomingMessage/api.cjs +24 -23
  14. package/_cjs/IncomingMessage/api.cjs.map +1 -1
  15. package/_cjs/IncomingMessage/definition.cjs +12 -17
  16. package/_cjs/IncomingMessage/definition.cjs.map +1 -1
  17. package/_cjs/IncomingMessage.cjs +8 -28
  18. package/_cjs/Method.cjs +6 -7
  19. package/_cjs/Method.cjs.map +1 -1
  20. package/_cjs/Middleware.cjs +11 -12
  21. package/_cjs/Middleware.cjs.map +1 -1
  22. package/_cjs/QueryParams.cjs +0 -2
  23. package/_cjs/RequestError.cjs +17 -17
  24. package/_cjs/RequestError.cjs.map +1 -1
  25. package/_cjs/ResponseError.cjs +26 -25
  26. package/_cjs/ResponseError.cjs.map +1 -1
  27. package/_cjs/Route/api.cjs +87 -74
  28. package/_cjs/Route/api.cjs.map +1 -1
  29. package/_cjs/Route/definition.cjs +29 -34
  30. package/_cjs/Route/definition.cjs.map +1 -1
  31. package/_cjs/Route/internal.cjs +33 -27
  32. package/_cjs/Route/internal.cjs.map +1 -1
  33. package/_cjs/Route.cjs +23 -28
  34. package/_cjs/RouteNotFound.cjs +16 -16
  35. package/_cjs/RouteNotFound.cjs.map +1 -1
  36. package/_cjs/Router/api.cjs +127 -119
  37. package/_cjs/Router/api.cjs.map +1 -1
  38. package/_cjs/Router/definition.cjs +14 -19
  39. package/_cjs/Router/definition.cjs.map +1 -1
  40. package/_cjs/Router/internal.cjs +75 -79
  41. package/_cjs/Router/internal.cjs.map +1 -1
  42. package/_cjs/Router.cjs +24 -28
  43. package/_cjs/Server.cjs +38 -41
  44. package/_cjs/Server.cjs.map +1 -1
  45. package/_cjs/ServerError.cjs +18 -19
  46. package/_cjs/ServerError.cjs.map +1 -1
  47. package/_cjs/ServerRequest/api.cjs +9 -10
  48. package/_cjs/ServerRequest/api.cjs.map +1 -1
  49. package/_cjs/ServerRequest/definition.cjs +21 -25
  50. package/_cjs/ServerRequest/definition.cjs.map +1 -1
  51. package/_cjs/ServerRequest/internal.cjs +77 -74
  52. package/_cjs/ServerRequest/internal.cjs.map +1 -1
  53. package/_cjs/ServerRequest.cjs +7 -28
  54. package/_cjs/ServerResponse/api.cjs +108 -116
  55. package/_cjs/ServerResponse/api.cjs.map +1 -1
  56. package/_cjs/ServerResponse/definition.cjs +36 -39
  57. package/_cjs/ServerResponse/definition.cjs.map +1 -1
  58. package/_cjs/ServerResponse.cjs +18 -28
  59. package/_cjs/Socket.cjs +213 -193
  60. package/_cjs/Socket.cjs.map +1 -1
  61. package/_cjs/UrlParams.cjs +23 -26
  62. package/_cjs/UrlParams.cjs.map +1 -1
  63. package/_cjs/chunk.cjs +28 -0
  64. package/_cjs/global.cjs +0 -2
  65. package/_mjs/Body/api.mjs +54 -56
  66. package/_mjs/Body/api.mjs.map +1 -1
  67. package/_mjs/Body/definition.mjs +61 -55
  68. package/_mjs/Body/definition.mjs.map +1 -1
  69. package/_mjs/Body.mjs +3 -4
  70. package/_mjs/BodyError.mjs +30 -30
  71. package/_mjs/BodyError.mjs.map +1 -1
  72. package/_mjs/Headers.mjs +61 -64
  73. package/_mjs/Headers.mjs.map +1 -1
  74. package/_mjs/HttpApp.mjs +74 -79
  75. package/_mjs/HttpApp.mjs.map +1 -1
  76. package/_mjs/IncomingMessage/api.mjs +21 -17
  77. package/_mjs/IncomingMessage/api.mjs.map +1 -1
  78. package/_mjs/IncomingMessage/definition.mjs +11 -11
  79. package/_mjs/IncomingMessage/definition.mjs.map +1 -1
  80. package/_mjs/IncomingMessage.mjs +3 -4
  81. package/_mjs/Method.mjs +6 -2
  82. package/_mjs/Method.mjs.map +1 -1
  83. package/_mjs/Middleware.mjs +10 -6
  84. package/_mjs/Middleware.mjs.map +1 -1
  85. package/_mjs/QueryParams.mjs +0 -2
  86. package/_mjs/RequestError.mjs +16 -11
  87. package/_mjs/RequestError.mjs.map +1 -1
  88. package/_mjs/ResponseError.mjs +25 -19
  89. package/_mjs/ResponseError.mjs.map +1 -1
  90. package/_mjs/Route/api.mjs +68 -64
  91. package/_mjs/Route/api.mjs.map +1 -1
  92. package/_mjs/Route/definition.mjs +21 -24
  93. package/_mjs/Route/definition.mjs.map +1 -1
  94. package/_mjs/Route/internal.mjs +30 -19
  95. package/_mjs/Route/internal.mjs.map +1 -1
  96. package/_mjs/Route.mjs +3 -4
  97. package/_mjs/RouteNotFound.mjs +15 -10
  98. package/_mjs/RouteNotFound.mjs.map +1 -1
  99. package/_mjs/Router/api.mjs +105 -107
  100. package/_mjs/Router/api.mjs.map +1 -1
  101. package/_mjs/Router/definition.mjs +11 -12
  102. package/_mjs/Router/definition.mjs.map +1 -1
  103. package/_mjs/Router/internal.mjs +55 -63
  104. package/_mjs/Router/internal.mjs.map +1 -1
  105. package/_mjs/Router.mjs +3 -4
  106. package/_mjs/Server.mjs +28 -31
  107. package/_mjs/Server.mjs.map +1 -1
  108. package/_mjs/ServerError.mjs +14 -11
  109. package/_mjs/ServerError.mjs.map +1 -1
  110. package/_mjs/ServerRequest/api.mjs +8 -4
  111. package/_mjs/ServerRequest/api.mjs.map +1 -1
  112. package/_mjs/ServerRequest/definition.mjs +15 -16
  113. package/_mjs/ServerRequest/definition.mjs.map +1 -1
  114. package/_mjs/ServerRequest/internal.mjs +65 -64
  115. package/_mjs/ServerRequest/internal.mjs.map +1 -1
  116. package/_mjs/ServerRequest.mjs +3 -4
  117. package/_mjs/ServerResponse/api.mjs +97 -106
  118. package/_mjs/ServerResponse/api.mjs.map +1 -1
  119. package/_mjs/ServerResponse/definition.mjs +30 -30
  120. package/_mjs/ServerResponse/definition.mjs.map +1 -1
  121. package/_mjs/ServerResponse.mjs +3 -4
  122. package/_mjs/Socket.mjs +152 -157
  123. package/_mjs/Socket.mjs.map +1 -1
  124. package/_mjs/UrlParams.mjs +22 -19
  125. package/_mjs/UrlParams.mjs.map +1 -1
  126. package/_mjs/global.mjs +0 -2
  127. package/_src/Headers.ts +1 -1
  128. package/_src/Socket.ts +1 -0
  129. package/_src/UrlParams.ts +1 -1
  130. package/package.json +10 -6
  131. package/_cjs/Body.cjs.map +0 -1
  132. package/_cjs/IncomingMessage.cjs.map +0 -1
  133. package/_cjs/QueryParams.cjs.map +0 -1
  134. package/_cjs/Route.cjs.map +0 -1
  135. package/_cjs/Router.cjs.map +0 -1
  136. package/_cjs/ServerRequest.cjs.map +0 -1
  137. package/_cjs/ServerResponse.cjs.map +0 -1
  138. package/_cjs/global.cjs.map +0 -1
  139. package/_mjs/Body.mjs.map +0 -1
  140. package/_mjs/IncomingMessage.mjs.map +0 -1
  141. package/_mjs/QueryParams.mjs.map +0 -1
  142. package/_mjs/Route.mjs.map +0 -1
  143. package/_mjs/Router.mjs.map +0 -1
  144. package/_mjs/ServerRequest.mjs.map +0 -1
  145. package/_mjs/ServerResponse.mjs.map +0 -1
  146. package/_mjs/global.mjs.map +0 -1
@@ -1,43 +1,40 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.ServerResponseTypeId = exports.ServerResponse = void 0;
7
- exports.isServerResponse = isServerResponse;
8
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/HashMap/api"));
9
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/util/predicates"));
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
- * @tsplus type fncts.http.ServerResponse
16
- * @tsplus companion fncts.http.ServerResponseOps
17
- */
18
- class ServerResponse {
19
- constructor(status, statusText, headers, body) {
20
- this.status = status;
21
- this.statusText = statusText;
22
- this.body = body;
23
- this[_a] = ServerResponseTypeId;
24
- if (body.contentType || body.contentLength) {
25
- const newHeaders = tsplus_module_1.beginMutation(headers.backing);
26
- if (body.contentType) {
27
- tsplus_module_1.set("content-type", body.contentType)(newHeaders);
28
- }
29
- if (body.contentLength) {
30
- tsplus_module_1.set("content-length", body.contentLength.toString())(newHeaders);
31
- }
32
- this.headers = new _Headers.Headers(tsplus_module_1.endMutation(newHeaders));
33
- } else {
34
- this.headers = headers;
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
- return tsplus_module_2.isObject(u) && ServerResponseTypeId in u;
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":["_Headers","require","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ServerResponseTypeId","exports","Symbol","for","ServerResponse","constructor","status","statusText","headers","body","_a","contentType","contentLength","newHeaders","tsplus_module_1","beginMutation","backing","toString","Headers","endMutation","isServerResponse","u","tsplus_module_2","isObject"],"sources":["../../_src/ServerResponse/definition.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAEA,IAAAA,QAAA,gBAAAC,OAAA;AAAwC,SAAAC,wBAAAC,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAH,uBAAA,YAAAA,CAAAC,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;;AAEjC,MAAMkB,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,gBAAGE,MAAM,CAACC,GAAG,CAAC,2BAA2B,CAAC;AAG3E;;;;AAIM,MAAOC,cAAc;EAGzBC,YACWC,MAAc,EACdC,UAA8B,EACvCC,OAAgB,EACPC,IAAU;IAHV,KAAAH,MAAM,GAANA,MAAM;IACN,KAAAC,UAAU,GAAVA,UAAU;IAEV,KAAAE,IAAI,GAAJA,IAAI;IANN,KAAAC,EAAA,CAAsB,GAAyBV,oBAAoB;IAQ1E,IAAIS,IAAI,CAACE,WAAW,IAAIF,IAAI,CAACG,aAAa,EAAE;MAC1C,MAAMC,UAAU,GAAAC,eAAA,CAAAC,aAAA,CAAGP,OAAO,CAACQ,OAAO,CAAc;MAChD,IAAIP,IAAI,CAACE,WAAW,EAAE;QACpBG,eAAA,CAAApB,GAAA,CAAe,cAAc,EAAEe,IAAI,CAACE,WAAW,EAA/CE,UAAU,CAAsC;MAClD;MACA,IAAIJ,IAAI,CAACG,aAAa,EAAE;QACtBE,eAAA,CAAApB,GAAA,CAAe,gBAAgB,EAAEe,IAAI,CAACG,aAAa,CAACK,QAAQ,EAAE,EAA9DJ,UAAU,CAAqD;MACjE;MACA,IAAI,CAACL,OAAO,GAAG,IAAIU,gBAAO,CAAAJ,eAAA,CAAAK,WAAA,CAACN,UAAU,EAAa;IACpD,CAAC,MAAM;MACL,IAAI,CAACL,OAAO,GAAGA,OAAO;IACxB;EACF;;AACDP,OAAA,CAAAG,cAAA,GAAAA,cAAA;KArBWJ,oBAAoB;AAoC1B,SAAUoB,gBAAgBA,CAACC,CAAU;EACzC,OAAOC,eAAA,CAAAC,QAAQ,CAACF,CAAC,CAAC,IAAIrB,oBAAoB,IAAIqB,CAAC;AACjD","ignoreList":[]}
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"}
@@ -1,28 +1,18 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- var _api = /*#__PURE__*/require("./ServerResponse/api.cjs");
7
- Object.keys(_api).forEach(function (key) {
8
- if (key === "default" || key === "__esModule") return;
9
- if (key in exports && exports[key] === _api[key]) return;
10
- Object.defineProperty(exports, key, {
11
- enumerable: true,
12
- get: function () {
13
- return _api[key];
14
- }
15
- });
16
- });
17
- var _definition = /*#__PURE__*/require("./ServerResponse/definition.cjs");
18
- Object.keys(_definition).forEach(function (key) {
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
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.fromWebSocket = exports.WebSocketTag = exports.SocketTypeId = exports.SocketTag = exports.SocketGenericErrorTypeId = exports.SocketGenericError = exports.SocketCloseErrorTypeId = exports.SocketCloseError = exports.Socket = exports.CloseEventTypeId = exports.CloseEvent = void 0;
7
- exports.isCloseEvent = isCloseEvent;
8
- exports.isSocketCloseError = isSocketCloseError;
9
- exports.live = live;
10
- exports.makeWebSocket = void 0;
11
- exports.makeWebSocketChannel = makeWebSocketChannel;
12
- exports.toChannel = void 0;
13
- exports.toChannelWith = toChannelWith;
14
- var tsplus_module_1 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Tag/constructors"));
15
- var tsplus_module_2 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/util/predicates"));
16
- var tsplus_module_3 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Channel/api"));
17
- var tsplus_module_4 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Channel/core-api"));
18
- var tsplus_module_5 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Exit/api"));
19
- var tsplus_module_6 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Queue/api/operations"));
20
- var tsplus_module_7 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Cause/api"));
21
- var tsplus_module_8 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api"));
22
- var tsplus_module_9 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/collection/immutable/Conc/constructors"));
23
- var tsplus_module_10 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Exit/constructors"));
24
- var tsplus_module_11 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/fork"));
25
- var tsplus_module_12 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/interrupt"));
26
- var tsplus_module_13 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Queue/constructors"));
27
- var tsplus_module_14 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Scope/api"));
28
- var tsplus_module_15 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/acquireRelease"));
29
- var tsplus_module_16 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Maybe/constructors"));
30
- var tsplus_module_17 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/FiberSet"));
31
- var tsplus_module_18 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/base/data/Duration/api"));
32
- var tsplus_module_19 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/timeout"));
33
- var tsplus_module_20 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/raceFirst"));
34
- var tsplus_module_21 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Future/api"));
35
- var tsplus_module_22 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/environment"));
36
- var tsplus_module_23 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/IO/api/scoped"));
37
- var tsplus_module_24 = /*#__PURE__*/_interopRequireWildcard(/*#__PURE__*/require("@fncts/io/Layer/api"));
38
- var _isows = /*#__PURE__*/require("isows");
39
- 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); }
40
- var _a, _b, _c, _d;
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 = exports.toChannel = toChannel_1;
43
- const makeWebSocket = exports.makeWebSocket = makeWebSocket_1;
44
- const fromWebSocket = exports.fromWebSocket = fromWebSocket_1;
45
- const SocketTypeId = exports.SocketTypeId = /*#__PURE__*/Symbol.for("fncts.http.Socket");
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
- * @tsplus type fncts.http.Socket
48
- * @tsplus companion fncts.http.SocketOps
49
- */
50
- class Socket {
51
- constructor() {
52
- this[_a] = SocketTypeId;
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
- * @tsplus static fncts.http.SocketOps Tag
59
- */
60
- const SocketTag_1 = /*#__PURE__*/tsplus_module_1.makeTag();
61
- const SocketTag = exports.SocketTag = SocketTag_1;
62
- const SocketGenericErrorTypeId = exports.SocketGenericErrorTypeId = /*#__PURE__*/Symbol.for("fncts.http.Socket.SocketGenericError");
63
- class SocketGenericError extends Error {
64
- constructor(reason, error) {
65
- super();
66
- this.reason = reason;
67
- this.error = error;
68
- this[_b] = SocketGenericErrorTypeId;
69
- }
70
- }
71
- exports.SocketGenericError = SocketGenericError;
72
- _b = SocketGenericErrorTypeId;
73
- const SocketCloseErrorTypeId = exports.SocketCloseErrorTypeId = /*#__PURE__*/Symbol.for("fncts.http.Socket.SocketCloseError");
74
- class SocketCloseError extends Error {
75
- constructor(reason, code, closeReason, error) {
76
- super();
77
- this.reason = reason;
78
- this.code = code;
79
- this.closeReason = closeReason;
80
- this.error = error;
81
- this[_c] = SocketCloseErrorTypeId;
82
- }
83
- static isClean(isClean) {
84
- return u => {
85
- return isSocketCloseError(u) && isClean(u.code);
86
- };
87
- }
88
- }
89
- exports.SocketCloseError = SocketCloseError;
90
- _c = SocketCloseErrorTypeId;
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
- return tsplus_module_2.isObject(u) && SocketCloseErrorTypeId in u;
102
+ return _fncts_base_util_predicates.isObject(u) && SocketCloseErrorTypeId in u;
93
103
  }
94
- const CloseEventTypeId = exports.CloseEventTypeId = /*#__PURE__*/Symbol.for("fncts.http.Socket.CloseEvent");
95
- class CloseEvent {
96
- constructor(code = 1000, reason) {
97
- this.code = code;
98
- this.reason = reason;
99
- this[_d] = CloseEventTypeId;
100
- }
101
- }
102
- exports.CloseEvent = CloseEvent;
103
- _d = CloseEventTypeId;
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
- return tsplus_module_2.isObject(u) && CloseEventTypeId in u;
115
+ return _fncts_base_util_predicates.isObject(u) && CloseEventTypeId in u;
106
116
  }
107
117
  /**
108
- * @tsplus fluent fncts.http.Socket toChannel
109
- */
118
+ * @tsplus fluent fncts.http.Socket toChannel
119
+ */
110
120
  function toChannel_1(self) {
111
- return tsplus_module_3.unwrap(() => tsplus_module_8.flatMap(writeScope => tsplus_module_8.flatMap(write => tsplus_module_8.flatMap(exitQueue => {
112
- const input = {
113
- awaitRead: tsplus_module_8.unit,
114
- emit(chunk) {
115
- return tsplus_module_8.catchAllCause(cause => tsplus_module_6.offer(tsplus_module_10.failCause(cause, fileName_1 + ":94:105"), fileName_1 + ":94:90")(exitQueue), fileName_1 + ":94:63")(tsplus_module_8.foreachDiscard(chunk, write, fileName_1 + ":94:35"));
116
- },
117
- error(error) {
118
- return tsplus_module_8.zipRight(tsplus_module_6.offer(tsplus_module_10.failCause(error, fileName_1 + ":97:78"), fileName_1 + ":97:63")(exitQueue), fileName_1 + ":97:47")(writeScope.close(() => tsplus_module_10.unit));
119
- },
120
- done() {
121
- return writeScope.close(() => tsplus_module_10.unit);
122
- }
123
- };
124
- return tsplus_module_8.map(() => {
125
- const loop = tsplus_module_4.flatMap(exit => tsplus_module_5.match(cause => cause._tag === "Empty" /* CauseTag.Empty */ ? tsplus_module_3.unit : tsplus_module_4.failCause(() => cause), chunk => tsplus_module_4.zipRight(loop)(tsplus_module_3.write(() => chunk)))(exit))(tsplus_module_3.fromIO(() => tsplus_module_6.take(exitQueue, fileName_1 + ":112:18")));
126
- return tsplus_module_3.embedInput(input)(loop);
127
- }, fileName_1 + ":104:8")(tsplus_module_12.interruptible(tsplus_module_11.fork(tsplus_module_8.tap(exit => tsplus_module_6.offer(exit, fileName_1 + ":108:48")(exitQueue), fileName_1 + ":108:22")(tsplus_module_8.result(tsplus_module_8.zipRight(tsplus_module_8.failCauseNow(tsplus_module_7.empty(), fileName_1 + ":107:36"), fileName_1 + ":107:20")(self.run(data => tsplus_module_6.offer(tsplus_module_10.succeed(tsplus_module_9.single(data), fileName_1 + ":106:54"), fileName_1 + ":106:41")(exitQueue))), fileName_1 + ":107:70")), fileName_1 + ":108:55"), fileName_1 + ":108:60"));
128
- }, fileName_1 + ":89:27")(tsplus_module_13.makeUnbounded(fileName_1 + ":89:47")), fileName_1 + ":88:27")(tsplus_module_14.extend(() => self.writer, fileName_1 + ":88:45")(writeScope)), fileName_1 + ":87:27")(tsplus_module_14.make));
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
- * @tsplus fluent fncts.http.Socket toChannelWith
132
- */
141
+ * @tsplus fluent fncts.http.Socket toChannelWith
142
+ */
133
143
  function toChannelWith(self) {
134
- return toChannel_1(self);
144
+ return toChannel_1(self);
135
145
  }
136
146
  /**
137
- * @tsplus static fncts.http.WebSocketOps Tag
138
- */
139
- const WebSocketTag_1 = /*#__PURE__*/tsplus_module_1.makeTag();
140
- const WebSocketTag = exports.WebSocketTag = WebSocketTag_1;
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
- * @tsplus static fncts.http.SocketOps makeWebSocket
143
- * @tsplus static fncts.http.WebSocketOps __call
144
- */
152
+ * @tsplus static fncts.http.SocketOps makeWebSocket
153
+ * @tsplus static fncts.http.WebSocketOps __call
154
+ */
145
155
  function makeWebSocket_1(url, options) {
146
- return fromWebSocket_1(tsplus_module_15.acquireRelease(() => tsplus_module_8.succeed(() => {
147
- if ("WebSocket" in globalThis) {
148
- return new globalThis.WebSocket(url);
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
- * @tsplus static fncts.http.SocketOps fromWebSocket
155
- */
162
+ * @tsplus static fncts.http.SocketOps fromWebSocket
163
+ */
156
164
  function fromWebSocket_1(acquire, options) {
157
- return (() => {
158
- const closeCodeIsError = options?.closeCodeIsError ?? (code => code !== 1000 && code !== 1006);
159
- return tsplus_module_8.map(sendQueue => {
160
- const run = handler => tsplus_module_12.interruptible(tsplus_module_23.scoped(tsplus_module_8.flatMap(ws => {
161
- const encoder = new TextEncoder();
162
- return tsplus_module_8.flatMap(fiberSet => tsplus_module_8.flatMap(run => {
163
- let open = false;
164
- ws.onmessage = event => {
165
- run(handler(event.data instanceof Uint8Array ? event.data : typeof event.data === "string" ? encoder.encode(event.data) : new Uint8Array(event.data)));
166
- };
167
- ws.onclose = event => {
168
- tsplus_module_21.unsafeDone(tsplus_module_8.fail(() => new SocketCloseError("Close", event.code, event.reason, undefined), fileName_1 + ":206:45"), fileName_1 + ":206:37")(fiberSet.future);
169
- };
170
- ws.onerror = error => {
171
- tsplus_module_21.unsafeDone(tsplus_module_8.fail(() => new SocketGenericError(open ? "Read" : "Open", error), fileName_1 + ":210:45"), fileName_1 + ":210:37")(fiberSet.future);
172
- };
173
- return tsplus_module_8.flatMap(() => tsplus_module_8.flatMap(() => tsplus_module_8.flatMap(() => tsplus_module_8.map(() => void 0, fileName_1 + ":249:10")(tsplus_module_8.catchJust(tsplus_module_16.partial(miss => error => SocketCloseError.isClean(code => !closeCodeIsError(code))(error) ? tsplus_module_8.unit : miss()), fileName_1 + ":250:34")(tsplus_module_17.join(fiberSet))), fileName_1 + ":234:10")(tsplus_module_17.run(tsplus_module_8.forever(tsplus_module_8.tap(chunk => {
174
- if (isCloseEvent(chunk)) {
175
- return tsplus_module_8.fail(() => {
176
- ws.close(chunk.code, chunk.reason);
177
- return new SocketCloseError("Close", chunk.code, chunk.reason, chunk);
178
- }, fileName_1 + ":238:31");
179
- } else {
180
- return tsplus_module_8.tryCatch(() => ws.send(chunk), error => new SocketGenericError("Write", error), fileName_1 + ":243:35");
181
- }
182
- }, fileName_1 + ":236:31")(tsplus_module_6.take(sendQueue, fileName_1 + ":236:22")), fileName_1 + ":245:15"))(fiberSet)), fileName_1 + ":232:10")(tsplus_module_8.succeed(() => open = true, fileName_1 + ":232:13")), fileName_1 + ":213:10")(tsplus_module_8.defer(() => {
183
- if (ws.readyState !== 1) {
184
- return tsplus_module_20.raceFirst(tsplus_module_17.join(fiberSet), fileName_1 + ":225:27")(tsplus_module_19.timeoutFail(() => options?.openTimeout ?? tsplus_module_18.seconds(10), () => new SocketGenericError("OpenTimeout", 'timeout waiting for "open"'))(tsplus_module_8.async(resume => {
185
- ws.onopen = () => {
186
- resume(tsplus_module_8.unit);
187
- };
188
- })));
189
- }
190
- return tsplus_module_8.unit;
191
- }, fileName_1 + ":214:19"));
192
- }, fileName_1 + ":189:27")(tsplus_module_22.provideSomeService(ws, WebSocketTag_1, fileName_1 + ":190:73")(tsplus_module_17.runtime()(fiberSet))), fileName_1 + ":188:27")(tsplus_module_17.make());
193
- }, fileName_1 + ":186:27")(acquire), fileName_1 + ":257:9"), fileName_1 + ":257:16");
194
- const write = chunk => tsplus_module_6.offer(chunk, fileName_1 + ":259:70")(sendQueue);
195
- const writer = tsplus_module_8.succeed(() => write, fileName_1 + ":261:22");
196
- return new class extends Socket {
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
- * @tsplus static fncts.http.SocketOps makeWebSocketChannel
208
- * @tsplus static fncts.http.WebSocketOps makeChannel
209
- */
207
+ * @tsplus static fncts.http.SocketOps makeWebSocketChannel
208
+ * @tsplus static fncts.http.WebSocketOps makeChannel
209
+ */
210
210
  function makeWebSocketChannel(url, options) {
211
- return tsplus_module_3.unwrap(() => tsplus_module_8.map(socket => toChannel_1(socket), fileName_1 + ":280:56")(makeWebSocket_1(url, options)));
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
- * @tsplus static fncts.http.SocketOps liveWebSocket
215
- * @tsplus static fncts.http.WebSocketOps live
216
- */
214
+ * @tsplus static fncts.http.SocketOps liveWebSocket
215
+ * @tsplus static fncts.http.WebSocketOps live
216
+ */
217
217
  function live(url, options) {
218
- return tsplus_module_24.scoped(() => makeWebSocket_1(url, options), SocketTag_1, fileName_1 + ":293:22");
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