openportal 0.1.1 → 0.1.3

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 (182) hide show
  1. package/README.md +113 -0
  2. package/package.json +1 -1
  3. package/web/.next/static/{A7pW-dtFIbPCSkvE8uenX → Im7EdK1Q3oOmTznohTOr5}/_buildManifest.js +4 -9
  4. package/web/.next/static/chunks/{2e7bfb90c343ca96.js → 35cc9dbdc670c73c.js} +4 -4
  5. package/web/.next/static/chunks/4147ffc67a7b837c.css +1 -0
  6. package/web/.next/static/chunks/{21ab2574b84ad2d1.js → 52b90bc1740162c2.js} +2 -2
  7. package/web/.next/static/chunks/{9b265e2198b5525f.js → 8644d68bf325ff24.js} +3 -3
  8. package/web/.next/static/chunks/{03e1846335a31354.js → 9865709466b09f79.js} +3 -3
  9. package/web/.next/static/chunks/{c20ae04df8cc28be.js → 9ba9a5774c9421bd.js} +3 -3
  10. package/web/.next/static/chunks/{967a1e0002fe9ae6.js → b5caad256518cb33.js} +3 -3
  11. package/web/.next/static/chunks/{turbopack-27558c851386934e.js → turbopack-26af71e419c11487.js} +1 -1
  12. package/web/.next/static/chunks/{turbopack-f4c0881f9723f5a5.js → turbopack-4ad0df7330c00c8d.js} +1 -1
  13. package/web/.next/static/chunks/{turbopack-26688626142ac58f.js → turbopack-8e653f3ad3a8ed18.js} +1 -1
  14. package/web/.next/static/chunks/{turbopack-c40ec6674624f1d7.js → turbopack-d5098189d63fd7b8.js} +1 -1
  15. package/web/apps/web/.next/BUILD_ID +1 -1
  16. package/web/apps/web/.next/build-manifest.json +14 -24
  17. package/web/apps/web/.next/routes-manifest.json +0 -12
  18. package/web/apps/web/.next/server/chunks/[root-of-the-server]__f366ca98._.js +358 -0
  19. package/web/apps/web/.next/server/chunks/ssr/{[root-of-the-server]__dfeaf8cf._.js → [root-of-the-server]__1a54ba1e._.js} +3 -3
  20. package/web/apps/web/.next/server/middleware-build-manifest.js +12 -22
  21. package/web/apps/web/.next/server/next-font-manifest.js +1 -1
  22. package/web/apps/web/.next/server/next-font-manifest.json +0 -4
  23. package/web/apps/web/.next/server/pages/404.html +1 -1
  24. package/web/apps/web/.next/server/pages/500.html +1 -1
  25. package/web/apps/web/.next/server/pages/_app/build-manifest.json +3 -3
  26. package/web/apps/web/.next/server/pages/_app/client-build-manifest.json +1 -1
  27. package/web/apps/web/.next/server/pages/api/[[...slugs]].js +1 -2
  28. package/web/apps/web/.next/server/pages/api/[[...slugs]].js.nft.json +1 -1
  29. package/web/apps/web/.next/server/pages/index/build-manifest.json +3 -3
  30. package/web/apps/web/.next/server/pages/index/client-build-manifest.json +1 -1
  31. package/web/apps/web/.next/server/pages/index.html +1 -1
  32. package/web/apps/web/.next/server/pages/index.js.nft.json +1 -1
  33. package/web/apps/web/.next/server/pages/session/[id]/build-manifest.json +4 -4
  34. package/web/apps/web/.next/server/pages/session/[id]/client-build-manifest.json +1 -1
  35. package/web/apps/web/.next/server/pages/session/[id].html +1 -1
  36. package/web/apps/web/.next/server/pages/session/[id].js.nft.json +1 -1
  37. package/web/apps/web/.next/server/pages/settings/build-manifest.json +3 -3
  38. package/web/apps/web/.next/server/pages/settings/client-build-manifest.json +1 -1
  39. package/web/apps/web/.next/server/pages/settings.html +1 -1
  40. package/web/apps/web/.next/server/pages/settings.js.nft.json +1 -1
  41. package/web/apps/web/.next/server/pages-manifest.json +0 -2
  42. package/web/apps/web/package.json +1 -9
  43. package/web/.next/static/chunks/04d4692d75696297.css +0 -1
  44. package/web/.next/static/chunks/553710f60e2f2b11.js +0 -1
  45. package/web/.next/static/chunks/58acbbb4090e3362.js +0 -3
  46. package/web/.next/static/chunks/6ce1e2f08f961db5.js +0 -2
  47. package/web/.next/static/chunks/d316d63225992c76.js +0 -10
  48. package/web/.next/static/chunks/e0c97552ba7a9e3d.js +0 -1
  49. package/web/.next/static/chunks/fc9c4f2dabfb4e0e.css +0 -1
  50. package/web/.next/static/chunks/turbopack-1837909a677d116b.js +0 -3
  51. package/web/apps/web/.next/server/chunks/[root-of-the-server]__0f75905d._.js +0 -3
  52. package/web/apps/web/.next/server/chunks/[root-of-the-server]__89e85365._.js +0 -358
  53. package/web/apps/web/.next/server/chunks/[root-of-the-server]__ae1361d0._.js +0 -3
  54. package/web/apps/web/.next/server/pages/api/terminal/ws/pages-manifest.json +0 -3
  55. package/web/apps/web/.next/server/pages/api/terminal/ws.js +0 -5
  56. package/web/apps/web/.next/server/pages/api/terminal/ws.js.map +0 -5
  57. package/web/apps/web/.next/server/pages/api/terminal/ws.js.nft.json +0 -1
  58. package/web/apps/web/.next/server/pages/terminal/build-manifest.json +0 -20
  59. package/web/apps/web/.next/server/pages/terminal/client-build-manifest.json +0 -5
  60. package/web/apps/web/.next/server/pages/terminal/next-font-manifest.json +0 -11
  61. package/web/apps/web/.next/server/pages/terminal/pages-manifest.json +0 -3
  62. package/web/apps/web/.next/server/pages/terminal/react-loadable-manifest.json +0 -1
  63. package/web/apps/web/.next/server/pages/terminal.html +0 -1
  64. package/web/apps/web/.next/server/pages/terminal.js.map +0 -5
  65. package/web/apps/web/.next/server/pages/terminal.js.nft.json +0 -1
  66. package/web/node_modules/.bun/@socket.io+component-emitter@3.1.2/node_modules/@socket.io/component-emitter/lib/cjs/index.js +0 -176
  67. package/web/node_modules/.bun/@socket.io+component-emitter@3.1.2/node_modules/@socket.io/component-emitter/lib/cjs/package.json +0 -4
  68. package/web/node_modules/.bun/@socket.io+component-emitter@3.1.2/node_modules/@socket.io/component-emitter/package.json +0 -28
  69. package/web/node_modules/.bun/accepts@1.3.8/node_modules/accepts/index.js +0 -238
  70. package/web/node_modules/.bun/accepts@1.3.8/node_modules/accepts/package.json +0 -47
  71. package/web/node_modules/.bun/base64id@2.0.0/node_modules/base64id/lib/base64id.js +0 -103
  72. package/web/node_modules/.bun/base64id@2.0.0/node_modules/base64id/package.json +0 -13
  73. package/web/node_modules/.bun/cookie@0.7.2/node_modules/cookie/index.js +0 -335
  74. package/web/node_modules/.bun/cookie@0.7.2/node_modules/cookie/package.json +0 -44
  75. package/web/node_modules/.bun/cookie@1.1.1/node_modules/cookie/package.json +0 -47
  76. package/web/node_modules/.bun/cors@2.8.5/node_modules/cors/lib/index.js +0 -238
  77. package/web/node_modules/.bun/cors@2.8.5/node_modules/cors/package.json +0 -41
  78. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/package.json +0 -60
  79. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/browser.js +0 -271
  80. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/common.js +0 -274
  81. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/index.js +0 -10
  82. package/web/node_modules/.bun/debug@4.3.7/node_modules/debug/src/node.js +0 -263
  83. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/commons.js +0 -19
  84. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/decodePacket.js +0 -59
  85. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/encodePacket.js +0 -38
  86. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/index.js +0 -164
  87. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/build/cjs/package.json +0 -8
  88. package/web/node_modules/.bun/engine.io-parser@5.2.3/node_modules/engine.io-parser/package.json +0 -46
  89. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/engine.io.js +0 -54
  90. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/parser-v3/index.js +0 -424
  91. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/parser-v3/utf8.js +0 -187
  92. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/server.js +0 -786
  93. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/socket.js +0 -460
  94. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transport.js +0 -117
  95. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/index.js +0 -23
  96. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/polling-jsonp.js +0 -41
  97. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/polling.js +0 -332
  98. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/websocket.js +0 -94
  99. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports/webtransport.js +0 -63
  100. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports-uws/index.js +0 -8
  101. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports-uws/polling.js +0 -364
  102. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/transports-uws/websocket.js +0 -73
  103. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/build/userver.js +0 -279
  104. package/web/node_modules/.bun/engine.io@6.6.4/node_modules/engine.io/package.json +0 -70
  105. package/web/node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/index.js +0 -8
  106. package/web/node_modules/.bun/has-flag@4.0.0/node_modules/has-flag/package.json +0 -46
  107. package/web/node_modules/.bun/mime-db@1.52.0/node_modules/mime-db/db.json +0 -8519
  108. package/web/node_modules/.bun/mime-db@1.52.0/node_modules/mime-db/index.js +0 -12
  109. package/web/node_modules/.bun/mime-db@1.52.0/node_modules/mime-db/package.json +0 -60
  110. package/web/node_modules/.bun/mime-types@2.1.35/node_modules/mime-types/index.js +0 -188
  111. package/web/node_modules/.bun/mime-types@2.1.35/node_modules/mime-types/package.json +0 -44
  112. package/web/node_modules/.bun/ms@2.1.3/node_modules/ms/index.js +0 -162
  113. package/web/node_modules/.bun/ms@2.1.3/node_modules/ms/package.json +0 -38
  114. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/index.js +0 -82
  115. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/charset.js +0 -169
  116. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/encoding.js +0 -184
  117. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/language.js +0 -179
  118. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/lib/mediaType.js +0 -294
  119. package/web/node_modules/.bun/negotiator@0.6.3/node_modules/negotiator/package.json +0 -42
  120. package/web/node_modules/.bun/object-assign@4.1.1/node_modules/object-assign/index.js +0 -90
  121. package/web/node_modules/.bun/object-assign@4.1.1/node_modules/object-assign/package.json +0 -42
  122. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/cluster-adapter.js +0 -674
  123. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/contrib/yeast.js +0 -55
  124. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/in-memory-adapter.js +0 -394
  125. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/dist/index.js +0 -10
  126. package/web/node_modules/.bun/socket.io-adapter@2.5.5/node_modules/socket.io-adapter/package.json +0 -39
  127. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/binary.js +0 -88
  128. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/index.js +0 -321
  129. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/is-binary.js +0 -55
  130. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/build/cjs/package.json +0 -3
  131. package/web/node_modules/.bun/socket.io-parser@4.2.4/node_modules/socket.io-parser/package.json +0 -58
  132. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.esm.min.js +0 -7
  133. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.js +0 -4908
  134. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.min.js +0 -7
  135. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/client-dist/socket.io.msgpack.min.js +0 -7
  136. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/broadcast-operator.js +0 -436
  137. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/client.js +0 -268
  138. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/index.js +0 -804
  139. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/namespace.js +0 -581
  140. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/parent-namespace.js +0 -88
  141. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/socket-types.js +0 -11
  142. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/socket.js +0 -977
  143. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/typed-events.js +0 -81
  144. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/dist/uws.js +0 -136
  145. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/package.json +0 -85
  146. package/web/node_modules/.bun/socket.io@4.8.1/node_modules/socket.io/wrapper.mjs +0 -3
  147. package/web/node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/index.js +0 -135
  148. package/web/node_modules/.bun/supports-color@7.2.0/node_modules/supports-color/package.json +0 -53
  149. package/web/node_modules/.bun/vary@1.1.2/node_modules/vary/index.js +0 -149
  150. package/web/node_modules/.bun/vary@1.1.2/node_modules/vary/package.json +0 -43
  151. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/index.js +0 -13
  152. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/buffer-util.js +0 -131
  153. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/constants.js +0 -12
  154. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/event-target.js +0 -292
  155. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/extension.js +0 -203
  156. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/limiter.js +0 -55
  157. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/permessage-deflate.js +0 -514
  158. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/receiver.js +0 -704
  159. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/sender.js +0 -497
  160. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/stream.js +0 -159
  161. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/subprotocol.js +0 -62
  162. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/validation.js +0 -130
  163. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/websocket-server.js +0 -540
  164. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/lib/websocket.js +0 -1338
  165. package/web/node_modules/.bun/ws@8.17.1/node_modules/ws/package.json +0 -69
  166. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/buffer-util.js +0 -131
  167. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/constants.js +0 -18
  168. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/event-target.js +0 -292
  169. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/extension.js +0 -203
  170. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/limiter.js +0 -55
  171. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/permessage-deflate.js +0 -528
  172. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/receiver.js +0 -706
  173. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/sender.js +0 -602
  174. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/stream.js +0 -161
  175. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/subprotocol.js +0 -62
  176. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/validation.js +0 -152
  177. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/websocket-server.js +0 -550
  178. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/lib/websocket.js +0 -1388
  179. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/package.json +0 -69
  180. package/web/node_modules/.bun/ws@8.18.3/node_modules/ws/wrapper.mjs +0 -8
  181. /package/web/.next/static/{A7pW-dtFIbPCSkvE8uenX → Im7EdK1Q3oOmTznohTOr5}/_clientMiddlewareManifest.json +0 -0
  182. /package/web/.next/static/{A7pW-dtFIbPCSkvE8uenX → Im7EdK1Q3oOmTznohTOr5}/_ssgManifest.js +0 -0
@@ -1,460 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Socket = void 0;
4
- const events_1 = require("events");
5
- const debug_1 = require("debug");
6
- const timers_1 = require("timers");
7
- const debug = (0, debug_1.default)("engine:socket");
8
- class Socket extends events_1.EventEmitter {
9
- get readyState() {
10
- return this._readyState;
11
- }
12
- set readyState(state) {
13
- debug("readyState updated from %s to %s", this._readyState, state);
14
- this._readyState = state;
15
- }
16
- constructor(id, server, transport, req, protocol) {
17
- super();
18
- /**
19
- * The current state of the socket.
20
- */
21
- this._readyState = "opening";
22
- /* private */ this.upgrading = false;
23
- /* private */ this.upgraded = false;
24
- this.writeBuffer = [];
25
- this.packetsFn = [];
26
- this.sentCallbackFn = [];
27
- this.cleanupFn = [];
28
- this.id = id;
29
- this.server = server;
30
- this.request = req;
31
- this.protocol = protocol;
32
- // Cache IP since it might not be in the req later
33
- if (req) {
34
- if (req.websocket && req.websocket._socket) {
35
- this.remoteAddress = req.websocket._socket.remoteAddress;
36
- }
37
- else {
38
- this.remoteAddress = req.connection.remoteAddress;
39
- }
40
- }
41
- else {
42
- // TODO there is currently no way to get the IP address of the client when it connects with WebTransport
43
- // see https://github.com/fails-components/webtransport/issues/114
44
- }
45
- this.pingTimeoutTimer = null;
46
- this.pingIntervalTimer = null;
47
- this.setTransport(transport);
48
- this.onOpen();
49
- }
50
- /**
51
- * Called upon transport considered open.
52
- *
53
- * @private
54
- */
55
- onOpen() {
56
- this.readyState = "open";
57
- // sends an `open` packet
58
- this.transport.sid = this.id;
59
- this.sendPacket("open", JSON.stringify({
60
- sid: this.id,
61
- upgrades: this.getAvailableUpgrades(),
62
- pingInterval: this.server.opts.pingInterval,
63
- pingTimeout: this.server.opts.pingTimeout,
64
- maxPayload: this.server.opts.maxHttpBufferSize,
65
- }));
66
- if (this.server.opts.initialPacket) {
67
- this.sendPacket("message", this.server.opts.initialPacket);
68
- }
69
- this.emit("open");
70
- if (this.protocol === 3) {
71
- // in protocol v3, the client sends a ping, and the server answers with a pong
72
- this.resetPingTimeout();
73
- }
74
- else {
75
- // in protocol v4, the server sends a ping, and the client answers with a pong
76
- this.schedulePing();
77
- }
78
- }
79
- /**
80
- * Called upon transport packet.
81
- *
82
- * @param {Object} packet
83
- * @private
84
- */
85
- onPacket(packet) {
86
- if ("open" !== this.readyState) {
87
- return debug("packet received with closed socket");
88
- }
89
- // export packet event
90
- debug(`received packet ${packet.type}`);
91
- this.emit("packet", packet);
92
- switch (packet.type) {
93
- case "ping":
94
- if (this.transport.protocol !== 3) {
95
- this.onError(new Error("invalid heartbeat direction"));
96
- return;
97
- }
98
- debug("got ping");
99
- this.pingTimeoutTimer.refresh();
100
- this.sendPacket("pong");
101
- this.emit("heartbeat");
102
- break;
103
- case "pong":
104
- if (this.transport.protocol === 3) {
105
- this.onError(new Error("invalid heartbeat direction"));
106
- return;
107
- }
108
- debug("got pong");
109
- (0, timers_1.clearTimeout)(this.pingTimeoutTimer);
110
- this.pingIntervalTimer.refresh();
111
- this.emit("heartbeat");
112
- break;
113
- case "error":
114
- this.onClose("parse error");
115
- break;
116
- case "message":
117
- this.emit("data", packet.data);
118
- this.emit("message", packet.data);
119
- break;
120
- }
121
- }
122
- /**
123
- * Called upon transport error.
124
- *
125
- * @param {Error} err - error object
126
- * @private
127
- */
128
- onError(err) {
129
- debug("transport error");
130
- this.onClose("transport error", err);
131
- }
132
- /**
133
- * Pings client every `this.pingInterval` and expects response
134
- * within `this.pingTimeout` or closes connection.
135
- *
136
- * @private
137
- */
138
- schedulePing() {
139
- this.pingIntervalTimer = (0, timers_1.setTimeout)(() => {
140
- debug("writing ping packet - expecting pong within %sms", this.server.opts.pingTimeout);
141
- this.sendPacket("ping");
142
- this.resetPingTimeout();
143
- }, this.server.opts.pingInterval);
144
- }
145
- /**
146
- * Resets ping timeout.
147
- *
148
- * @private
149
- */
150
- resetPingTimeout() {
151
- (0, timers_1.clearTimeout)(this.pingTimeoutTimer);
152
- this.pingTimeoutTimer = (0, timers_1.setTimeout)(() => {
153
- if (this.readyState === "closed")
154
- return;
155
- this.onClose("ping timeout");
156
- }, this.protocol === 3
157
- ? this.server.opts.pingInterval + this.server.opts.pingTimeout
158
- : this.server.opts.pingTimeout);
159
- }
160
- /**
161
- * Attaches handlers for the given transport.
162
- *
163
- * @param {Transport} transport
164
- * @private
165
- */
166
- setTransport(transport) {
167
- const onError = this.onError.bind(this);
168
- const onReady = () => this.flush();
169
- const onPacket = this.onPacket.bind(this);
170
- const onDrain = this.onDrain.bind(this);
171
- const onClose = this.onClose.bind(this, "transport close");
172
- this.transport = transport;
173
- this.transport.once("error", onError);
174
- this.transport.on("ready", onReady);
175
- this.transport.on("packet", onPacket);
176
- this.transport.on("drain", onDrain);
177
- this.transport.once("close", onClose);
178
- this.cleanupFn.push(function () {
179
- transport.removeListener("error", onError);
180
- transport.removeListener("ready", onReady);
181
- transport.removeListener("packet", onPacket);
182
- transport.removeListener("drain", onDrain);
183
- transport.removeListener("close", onClose);
184
- });
185
- }
186
- /**
187
- * Upon transport "drain" event
188
- *
189
- * @private
190
- */
191
- onDrain() {
192
- if (this.sentCallbackFn.length > 0) {
193
- debug("executing batch send callback");
194
- const seqFn = this.sentCallbackFn.shift();
195
- if (seqFn) {
196
- for (let i = 0; i < seqFn.length; i++) {
197
- seqFn[i](this.transport);
198
- }
199
- }
200
- }
201
- }
202
- /**
203
- * Upgrades socket to the given transport
204
- *
205
- * @param {Transport} transport
206
- * @private
207
- */
208
- /* private */ _maybeUpgrade(transport) {
209
- debug('might upgrade socket transport from "%s" to "%s"', this.transport.name, transport.name);
210
- this.upgrading = true;
211
- // set transport upgrade timer
212
- const upgradeTimeoutTimer = (0, timers_1.setTimeout)(() => {
213
- debug("client did not complete upgrade - closing transport");
214
- cleanup();
215
- if ("open" === transport.readyState) {
216
- transport.close();
217
- }
218
- }, this.server.opts.upgradeTimeout);
219
- let checkIntervalTimer;
220
- const onPacket = (packet) => {
221
- if ("ping" === packet.type && "probe" === packet.data) {
222
- debug("got probe ping packet, sending pong");
223
- transport.send([{ type: "pong", data: "probe" }]);
224
- this.emit("upgrading", transport);
225
- clearInterval(checkIntervalTimer);
226
- checkIntervalTimer = setInterval(check, 100);
227
- }
228
- else if ("upgrade" === packet.type && this.readyState !== "closed") {
229
- debug("got upgrade packet - upgrading");
230
- cleanup();
231
- this.transport.discard();
232
- this.upgraded = true;
233
- this.clearTransport();
234
- this.setTransport(transport);
235
- this.emit("upgrade", transport);
236
- this.flush();
237
- if (this.readyState === "closing") {
238
- transport.close(() => {
239
- this.onClose("forced close");
240
- });
241
- }
242
- }
243
- else {
244
- cleanup();
245
- transport.close();
246
- }
247
- };
248
- // we force a polling cycle to ensure a fast upgrade
249
- const check = () => {
250
- if ("polling" === this.transport.name && this.transport.writable) {
251
- debug("writing a noop packet to polling for fast upgrade");
252
- this.transport.send([{ type: "noop" }]);
253
- }
254
- };
255
- const cleanup = () => {
256
- this.upgrading = false;
257
- clearInterval(checkIntervalTimer);
258
- (0, timers_1.clearTimeout)(upgradeTimeoutTimer);
259
- transport.removeListener("packet", onPacket);
260
- transport.removeListener("close", onTransportClose);
261
- transport.removeListener("error", onError);
262
- this.removeListener("close", onClose);
263
- };
264
- const onError = (err) => {
265
- debug("client did not complete upgrade - %s", err);
266
- cleanup();
267
- transport.close();
268
- transport = null;
269
- };
270
- const onTransportClose = () => {
271
- onError("transport closed");
272
- };
273
- const onClose = () => {
274
- onError("socket closed");
275
- };
276
- transport.on("packet", onPacket);
277
- transport.once("close", onTransportClose);
278
- transport.once("error", onError);
279
- this.once("close", onClose);
280
- }
281
- /**
282
- * Clears listeners and timers associated with current transport.
283
- *
284
- * @private
285
- */
286
- clearTransport() {
287
- let cleanup;
288
- const toCleanUp = this.cleanupFn.length;
289
- for (let i = 0; i < toCleanUp; i++) {
290
- cleanup = this.cleanupFn.shift();
291
- cleanup();
292
- }
293
- // silence further transport errors and prevent uncaught exceptions
294
- this.transport.on("error", function () {
295
- debug("error triggered by discarded transport");
296
- });
297
- // ensure transport won't stay open
298
- this.transport.close();
299
- (0, timers_1.clearTimeout)(this.pingTimeoutTimer);
300
- }
301
- /**
302
- * Called upon transport considered closed.
303
- * Possible reasons: `ping timeout`, `client error`, `parse error`,
304
- * `transport error`, `server close`, `transport close`
305
- */
306
- onClose(reason, description) {
307
- if ("closed" !== this.readyState) {
308
- this.readyState = "closed";
309
- // clear timers
310
- (0, timers_1.clearTimeout)(this.pingIntervalTimer);
311
- (0, timers_1.clearTimeout)(this.pingTimeoutTimer);
312
- // clean writeBuffer in next tick, so developers can still
313
- // grab the writeBuffer on 'close' event
314
- process.nextTick(() => {
315
- this.writeBuffer = [];
316
- });
317
- this.packetsFn = [];
318
- this.sentCallbackFn = [];
319
- this.clearTransport();
320
- this.emit("close", reason, description);
321
- }
322
- }
323
- /**
324
- * Sends a message packet.
325
- *
326
- * @param {Object} data
327
- * @param {Object} options
328
- * @param {Function} callback
329
- * @return {Socket} for chaining
330
- */
331
- send(data, options, callback) {
332
- this.sendPacket("message", data, options, callback);
333
- return this;
334
- }
335
- /**
336
- * Alias of {@link send}.
337
- *
338
- * @param data
339
- * @param options
340
- * @param callback
341
- */
342
- write(data, options, callback) {
343
- this.sendPacket("message", data, options, callback);
344
- return this;
345
- }
346
- /**
347
- * Sends a packet.
348
- *
349
- * @param {String} type - packet type
350
- * @param {String} data
351
- * @param {Object} options
352
- * @param {Function} callback
353
- *
354
- * @private
355
- */
356
- sendPacket(type, data, options = {}, callback) {
357
- if ("function" === typeof options) {
358
- callback = options;
359
- options = {};
360
- }
361
- if ("closing" !== this.readyState && "closed" !== this.readyState) {
362
- debug('sending packet "%s" (%s)', type, data);
363
- // compression is enabled by default
364
- options.compress = options.compress !== false;
365
- const packet = {
366
- type,
367
- options: options,
368
- };
369
- if (data)
370
- packet.data = data;
371
- // exports packetCreate event
372
- this.emit("packetCreate", packet);
373
- this.writeBuffer.push(packet);
374
- // add send callback to object, if defined
375
- if ("function" === typeof callback)
376
- this.packetsFn.push(callback);
377
- this.flush();
378
- }
379
- }
380
- /**
381
- * Attempts to flush the packets buffer.
382
- *
383
- * @private
384
- */
385
- flush() {
386
- if ("closed" !== this.readyState &&
387
- this.transport.writable &&
388
- this.writeBuffer.length) {
389
- debug("flushing buffer to transport");
390
- this.emit("flush", this.writeBuffer);
391
- this.server.emit("flush", this, this.writeBuffer);
392
- const wbuf = this.writeBuffer;
393
- this.writeBuffer = [];
394
- if (this.packetsFn.length) {
395
- this.sentCallbackFn.push(this.packetsFn);
396
- this.packetsFn = [];
397
- }
398
- else {
399
- this.sentCallbackFn.push(null);
400
- }
401
- this.transport.send(wbuf);
402
- this.emit("drain");
403
- this.server.emit("drain", this);
404
- }
405
- }
406
- /**
407
- * Get available upgrades for this socket.
408
- *
409
- * @private
410
- */
411
- getAvailableUpgrades() {
412
- const availableUpgrades = [];
413
- const allUpgrades = this.server.upgrades(this.transport.name);
414
- for (let i = 0; i < allUpgrades.length; ++i) {
415
- const upg = allUpgrades[i];
416
- if (this.server.opts.transports.indexOf(upg) !== -1) {
417
- availableUpgrades.push(upg);
418
- }
419
- }
420
- return availableUpgrades;
421
- }
422
- /**
423
- * Closes the socket and underlying transport.
424
- *
425
- * @param {Boolean} discard - optional, discard the transport
426
- * @return {Socket} for chaining
427
- */
428
- close(discard) {
429
- if (discard &&
430
- (this.readyState === "open" || this.readyState === "closing")) {
431
- return this.closeTransport(discard);
432
- }
433
- if ("open" !== this.readyState)
434
- return;
435
- this.readyState = "closing";
436
- if (this.writeBuffer.length) {
437
- debug("there are %d remaining packets in the buffer, waiting for the 'drain' event", this.writeBuffer.length);
438
- this.once("drain", () => {
439
- debug("all packets have been sent, closing the transport");
440
- this.closeTransport(discard);
441
- });
442
- return;
443
- }
444
- debug("the buffer is empty, closing the transport right away");
445
- this.closeTransport(discard);
446
- }
447
- /**
448
- * Closes the underlying transport.
449
- *
450
- * @param {Boolean} discard
451
- * @private
452
- */
453
- closeTransport(discard) {
454
- debug("closing the transport (discard? %s)", !!discard);
455
- if (discard)
456
- this.transport.discard();
457
- this.transport.close(this.onClose.bind(this, "forced close"));
458
- }
459
- }
460
- exports.Socket = Socket;
@@ -1,117 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Transport = void 0;
4
- const events_1 = require("events");
5
- const parser_v4 = require("engine.io-parser");
6
- const parser_v3 = require("./parser-v3/index");
7
- const debug_1 = require("debug");
8
- const debug = (0, debug_1.default)("engine:transport");
9
- function noop() { }
10
- class Transport extends events_1.EventEmitter {
11
- get readyState() {
12
- return this._readyState;
13
- }
14
- set readyState(state) {
15
- debug("readyState updated from %s to %s (%s)", this._readyState, state, this.name);
16
- this._readyState = state;
17
- }
18
- /**
19
- * Transport constructor.
20
- *
21
- * @param {EngineRequest} req
22
- */
23
- constructor(req) {
24
- super();
25
- /**
26
- * Whether the transport is currently ready to send packets.
27
- */
28
- this.writable = false;
29
- /**
30
- * The current state of the transport.
31
- * @protected
32
- */
33
- this._readyState = "open";
34
- /**
35
- * Whether the transport is discarded and can be safely closed (used during upgrade).
36
- * @protected
37
- */
38
- this.discarded = false;
39
- this.protocol = req._query.EIO === "4" ? 4 : 3; // 3rd revision by default
40
- this.parser = this.protocol === 4 ? parser_v4 : parser_v3;
41
- this.supportsBinary = !(req._query && req._query.b64);
42
- }
43
- /**
44
- * Flags the transport as discarded.
45
- *
46
- * @package
47
- */
48
- discard() {
49
- this.discarded = true;
50
- }
51
- /**
52
- * Called with an incoming HTTP request.
53
- *
54
- * @param req
55
- * @package
56
- */
57
- onRequest(req) { }
58
- /**
59
- * Closes the transport.
60
- *
61
- * @package
62
- */
63
- close(fn) {
64
- if ("closed" === this.readyState || "closing" === this.readyState)
65
- return;
66
- this.readyState = "closing";
67
- this.doClose(fn || noop);
68
- }
69
- /**
70
- * Called with a transport error.
71
- *
72
- * @param {String} msg - message error
73
- * @param {Object} desc - error description
74
- * @protected
75
- */
76
- onError(msg, desc) {
77
- if (this.listeners("error").length) {
78
- const err = new Error(msg);
79
- // @ts-ignore
80
- err.type = "TransportError";
81
- // @ts-ignore
82
- err.description = desc;
83
- this.emit("error", err);
84
- }
85
- else {
86
- debug("ignored transport error %s (%s)", msg, desc);
87
- }
88
- }
89
- /**
90
- * Called with parsed out a packets from the data stream.
91
- *
92
- * @param {Object} packet
93
- * @protected
94
- */
95
- onPacket(packet) {
96
- this.emit("packet", packet);
97
- }
98
- /**
99
- * Called with the encoded packet data.
100
- *
101
- * @param {String} data
102
- * @protected
103
- */
104
- onData(data) {
105
- this.onPacket(this.parser.decodePacket(data));
106
- }
107
- /**
108
- * Called upon transport close.
109
- *
110
- * @protected
111
- */
112
- onClose() {
113
- this.readyState = "closed";
114
- this.emit("close");
115
- }
116
- }
117
- exports.Transport = Transport;
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const polling_1 = require("./polling");
4
- const polling_jsonp_1 = require("./polling-jsonp");
5
- const websocket_1 = require("./websocket");
6
- const webtransport_1 = require("./webtransport");
7
- exports.default = {
8
- polling: polling,
9
- websocket: websocket_1.WebSocket,
10
- webtransport: webtransport_1.WebTransport,
11
- };
12
- /**
13
- * Polling polymorphic constructor.
14
- */
15
- function polling(req) {
16
- if ("string" === typeof req._query.j) {
17
- return new polling_jsonp_1.JSONP(req);
18
- }
19
- else {
20
- return new polling_1.Polling(req);
21
- }
22
- }
23
- polling.upgradesTo = ["websocket", "webtransport"];
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.JSONP = void 0;
4
- const polling_1 = require("./polling");
5
- const qs = require("querystring");
6
- const rDoubleSlashes = /\\\\n/g;
7
- const rSlashes = /(\\)?\\n/g;
8
- class JSONP extends polling_1.Polling {
9
- /**
10
- * JSON-P polling transport.
11
- */
12
- constructor(req) {
13
- super(req);
14
- this.head = "___eio[" + (req._query.j || "").replace(/[^0-9]/g, "") + "](";
15
- this.foot = ");";
16
- }
17
- onData(data) {
18
- // we leverage the qs module so that we get built-in DoS protection
19
- // and the fast alternative to decodeURIComponent
20
- data = qs.parse(data).d;
21
- if ("string" === typeof data) {
22
- // client will send already escaped newlines as \\\\n and newlines as \\n
23
- // \\n must be replaced with \n and \\\\n with \\n
24
- data = data.replace(rSlashes, function (match, slashes) {
25
- return slashes ? match : "\n";
26
- });
27
- super.onData(data.replace(rDoubleSlashes, "\\n"));
28
- }
29
- }
30
- doWrite(data, options, callback) {
31
- // we must output valid javascript, not valid json
32
- // see: http://timelessrepo.com/json-isnt-a-javascript-subset
33
- const js = JSON.stringify(data)
34
- .replace(/\u2028/g, "\\u2028")
35
- .replace(/\u2029/g, "\\u2029");
36
- // prepare response
37
- data = this.head + js + this.foot;
38
- super.doWrite(data, options, callback);
39
- }
40
- }
41
- exports.JSONP = JSONP;