@wabot-dev/framework 0.0.12 → 0.0.14

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 (367) hide show
  1. package/dist/src/_virtual/XMLHttpRequest.js +7 -0
  2. package/dist/src/_virtual/_commonjsHelpers.js +32 -0
  3. package/dist/src/_virtual/base64id.js +3 -0
  4. package/dist/src/_virtual/binary.js +3 -0
  5. package/dist/src/_virtual/bom-handling.js +3 -0
  6. package/dist/src/_virtual/broadcast-operator.js +3 -0
  7. package/dist/src/_virtual/browser.js +3 -0
  8. package/dist/src/_virtual/browser2.js +3 -0
  9. package/dist/src/_virtual/browser3.js +3 -0
  10. package/dist/src/_virtual/browser4.js +3 -0
  11. package/dist/src/_virtual/browser5.js +3 -0
  12. package/dist/src/_virtual/buffer-util.js +3 -0
  13. package/dist/src/_virtual/buffer-util2.js +3 -0
  14. package/dist/src/_virtual/buffer-util3.js +3 -0
  15. package/dist/src/_virtual/charset.js +3 -0
  16. package/dist/src/_virtual/charset2.js +3 -0
  17. package/dist/src/_virtual/client.js +3 -0
  18. package/dist/src/_virtual/cluster-adapter.js +3 -0
  19. package/dist/src/_virtual/commons.js +3 -0
  20. package/dist/src/_virtual/dbcs-codec.js +3 -0
  21. package/dist/src/_virtual/decodePacket.js +3 -0
  22. package/dist/src/_virtual/encodePacket.js +3 -0
  23. package/dist/src/_virtual/encoding.js +3 -0
  24. package/dist/src/_virtual/encoding2.js +3 -0
  25. package/dist/src/_virtual/engine.io.js +3 -0
  26. package/dist/src/_virtual/in-memory-adapter.js +3 -0
  27. package/dist/src/_virtual/index.js +7 -0
  28. package/dist/src/_virtual/index10.js +3 -0
  29. package/dist/src/_virtual/index11.js +3 -0
  30. package/dist/src/_virtual/index12.js +3 -0
  31. package/dist/src/_virtual/index13.js +3 -0
  32. package/dist/src/_virtual/index14.js +3 -0
  33. package/dist/src/_virtual/index15.js +3 -0
  34. package/dist/src/_virtual/index16.js +3 -0
  35. package/dist/src/_virtual/index17.js +3 -0
  36. package/dist/src/_virtual/index18.js +3 -0
  37. package/dist/src/_virtual/index19.js +3 -0
  38. package/dist/src/_virtual/index2.js +7 -0
  39. package/dist/src/_virtual/index20.js +3 -0
  40. package/dist/src/_virtual/index21.js +3 -0
  41. package/dist/src/_virtual/index22.js +3 -0
  42. package/dist/src/_virtual/index23.js +3 -0
  43. package/dist/src/_virtual/index24.js +3 -0
  44. package/dist/src/_virtual/index25.js +3 -0
  45. package/dist/src/_virtual/index26.js +3 -0
  46. package/dist/src/_virtual/index27.js +3 -0
  47. package/dist/src/_virtual/index28.js +3 -0
  48. package/dist/src/_virtual/index29.js +3 -0
  49. package/dist/src/_virtual/index3.js +7 -0
  50. package/dist/src/_virtual/index30.js +3 -0
  51. package/dist/src/_virtual/index31.js +3 -0
  52. package/dist/src/_virtual/index32.js +3 -0
  53. package/dist/src/_virtual/index33.js +3 -0
  54. package/dist/src/_virtual/index4.js +3 -0
  55. package/dist/src/_virtual/index5.js +3 -0
  56. package/dist/src/_virtual/index6.js +3 -0
  57. package/dist/src/_virtual/index7.js +3 -0
  58. package/dist/src/_virtual/index8.js +6 -0
  59. package/dist/src/_virtual/index9.js +3 -0
  60. package/dist/src/_virtual/inherits.js +3 -0
  61. package/dist/src/_virtual/inherits_browser.js +3 -0
  62. package/dist/src/_virtual/is-binary.js +3 -0
  63. package/dist/src/_virtual/language.js +3 -0
  64. package/dist/src/_virtual/language2.js +3 -0
  65. package/dist/src/_virtual/mediaType.js +3 -0
  66. package/dist/src/_virtual/mediaType2.js +3 -0
  67. package/dist/src/_virtual/namespace.js +3 -0
  68. package/dist/src/_virtual/node.js +3 -0
  69. package/dist/src/_virtual/node2.js +3 -0
  70. package/dist/src/_virtual/node3.js +3 -0
  71. package/dist/src/_virtual/node4.js +3 -0
  72. package/dist/src/_virtual/node5.js +3 -0
  73. package/dist/src/_virtual/parent-namespace.js +3 -0
  74. package/dist/src/_virtual/polling-jsonp.js +3 -0
  75. package/dist/src/_virtual/polling.js +3 -0
  76. package/dist/src/_virtual/polling2.js +3 -0
  77. package/dist/src/_virtual/receiver.js +3 -0
  78. package/dist/src/_virtual/sbcs-codec.js +3 -0
  79. package/dist/src/_virtual/sender.js +3 -0
  80. package/dist/src/_virtual/server.js +3 -0
  81. package/dist/src/_virtual/socket-types.js +3 -0
  82. package/dist/src/_virtual/socket.js +3 -0
  83. package/dist/src/_virtual/socket2.js +3 -0
  84. package/dist/src/_virtual/stream.js +3 -0
  85. package/dist/src/_virtual/transport.js +3 -0
  86. package/dist/src/_virtual/typed-events.js +3 -0
  87. package/dist/src/_virtual/userver.js +3 -0
  88. package/dist/src/_virtual/utf16.js +3 -0
  89. package/dist/src/_virtual/utf32.js +3 -0
  90. package/dist/src/_virtual/utf7.js +3 -0
  91. package/dist/src/_virtual/uws.js +3 -0
  92. package/dist/src/_virtual/validation.js +3 -0
  93. package/dist/src/_virtual/validation2.js +3 -0
  94. package/dist/src/_virtual/validation3.js +3 -0
  95. package/dist/src/_virtual/websocket-server.js +3 -0
  96. package/dist/src/_virtual/websocket.js +7 -0
  97. package/dist/src/_virtual/websocket2.js +3 -0
  98. package/dist/src/_virtual/websocket3.js +3 -0
  99. package/dist/src/_virtual/webtransport.js +3 -0
  100. package/dist/src/_virtual/yeast.js +3 -0
  101. package/dist/src/channels/cmd/@cmd.js +2 -0
  102. package/dist/src/channels/cmd/CmdChannel.js +2 -0
  103. package/dist/src/channels/telegram/@telegram.js +2 -0
  104. package/dist/src/channels/telegram/TelegramChannel.js +2 -0
  105. package/dist/src/channels/whatsapp/@whatsapp.js +24 -0
  106. package/dist/src/channels/whatsapp/WhatsAppChannel.js +63 -0
  107. package/dist/src/channels/whatsapp/WhatsAppChannelConfig.js +8 -0
  108. package/dist/src/channels/whatsapp/WhatsAppConnection.js +61 -0
  109. package/dist/src/channels/whatsapp/WhatsAppDevConnection.js +61 -0
  110. package/dist/src/channels/whatsapp/WhatsAppProdConnection.js +36 -0
  111. package/dist/src/channels/whatsapp/whatsAppDevSocketContracts.js +9 -0
  112. package/dist/src/controller/express/Express.js +5 -0
  113. package/dist/src/controller/socket.io/SocketIO.js +5 -0
  114. package/dist/src/env/WabotEnv.js +21 -0
  115. package/dist/src/index.d.ts +168 -1
  116. package/dist/src/index.js +12 -0
  117. package/dist/src/logger/Logger.js +65 -0
  118. package/dist/src/node_modules/@socket.io/component-emitter/lib/esm/index.js +171 -0
  119. package/dist/src/node_modules/base64id/lib/base64id.js +117 -0
  120. package/dist/src/node_modules/body-parser/index.js +96 -0
  121. package/dist/src/node_modules/body-parser/lib/read.js +225 -0
  122. package/dist/src/node_modules/body-parser/lib/types/json.js +222 -0
  123. package/dist/src/node_modules/body-parser/lib/types/raw.js +90 -0
  124. package/dist/src/node_modules/body-parser/lib/types/text.js +95 -0
  125. package/dist/src/node_modules/body-parser/lib/types/urlencoded.js +194 -0
  126. package/dist/src/node_modules/body-parser/lib/utils.js +96 -0
  127. package/dist/src/node_modules/bytes/index.js +180 -0
  128. package/dist/src/node_modules/call-bind-apply-helpers/actualApply.js +24 -0
  129. package/dist/src/node_modules/call-bind-apply-helpers/functionApply.js +13 -0
  130. package/dist/src/node_modules/call-bind-apply-helpers/functionCall.js +13 -0
  131. package/dist/src/node_modules/call-bind-apply-helpers/index.js +29 -0
  132. package/dist/src/node_modules/call-bind-apply-helpers/reflectApply.js +13 -0
  133. package/dist/src/node_modules/call-bound/index.js +31 -0
  134. package/dist/src/node_modules/content-type/index.js +235 -0
  135. package/dist/src/node_modules/cookie/index.js +345 -0
  136. package/dist/src/node_modules/cors/lib/index.js +249 -0
  137. package/dist/src/node_modules/debug/src/browser.js +286 -0
  138. package/dist/src/node_modules/debug/src/common.js +303 -0
  139. package/dist/src/node_modules/debug/src/index.js +23 -0
  140. package/dist/src/node_modules/debug/src/node.js +279 -0
  141. package/dist/src/node_modules/depd/index.js +550 -0
  142. package/dist/src/node_modules/dunder-proto/get.js +42 -0
  143. package/dist/src/node_modules/ee-first/index.js +104 -0
  144. package/dist/src/node_modules/engine.io/build/engine.io.js +73 -0
  145. package/dist/src/node_modules/engine.io/build/parser-v3/index.js +429 -0
  146. package/dist/src/node_modules/engine.io/build/parser-v3/utf8.js +198 -0
  147. package/dist/src/node_modules/engine.io/build/server.js +808 -0
  148. package/dist/src/node_modules/engine.io/build/socket.js +469 -0
  149. package/dist/src/node_modules/engine.io/build/transport.js +131 -0
  150. package/dist/src/node_modules/engine.io/build/transports/index.js +37 -0
  151. package/dist/src/node_modules/engine.io/build/transports/polling-jsonp.js +53 -0
  152. package/dist/src/node_modules/engine.io/build/transports/polling.js +346 -0
  153. package/dist/src/node_modules/engine.io/build/transports/websocket.js +106 -0
  154. package/dist/src/node_modules/engine.io/build/transports/webtransport.js +76 -0
  155. package/dist/src/node_modules/engine.io/build/transports-uws/index.js +20 -0
  156. package/dist/src/node_modules/engine.io/build/transports-uws/polling.js +378 -0
  157. package/dist/src/node_modules/engine.io/build/transports-uws/websocket.js +85 -0
  158. package/dist/src/node_modules/engine.io/build/userver.js +292 -0
  159. package/dist/src/node_modules/engine.io/node_modules/accepts/index.js +250 -0
  160. package/dist/src/node_modules/engine.io/node_modules/debug/src/browser.js +285 -0
  161. package/dist/src/node_modules/engine.io/node_modules/debug/src/common.js +285 -0
  162. package/dist/src/node_modules/engine.io/node_modules/debug/src/index.js +23 -0
  163. package/dist/src/node_modules/engine.io/node_modules/debug/src/node.js +279 -0
  164. package/dist/src/node_modules/engine.io/node_modules/mime-db/db.json.js +10704 -0
  165. package/dist/src/node_modules/engine.io/node_modules/mime-db/index.js +24 -0
  166. package/dist/src/node_modules/engine.io/node_modules/mime-types/index.js +202 -0
  167. package/dist/src/node_modules/engine.io/node_modules/negotiator/index.js +96 -0
  168. package/dist/src/node_modules/engine.io/node_modules/negotiator/lib/charset.js +179 -0
  169. package/dist/src/node_modules/engine.io/node_modules/negotiator/lib/encoding.js +193 -0
  170. package/dist/src/node_modules/engine.io/node_modules/negotiator/lib/language.js +188 -0
  171. package/dist/src/node_modules/engine.io/node_modules/negotiator/lib/mediaType.js +304 -0
  172. package/dist/src/node_modules/engine.io/node_modules/ws/index.js +28 -0
  173. package/dist/src/node_modules/engine.io/node_modules/ws/lib/buffer-util.js +142 -0
  174. package/dist/src/node_modules/engine.io/node_modules/ws/lib/constants.js +21 -0
  175. package/dist/src/node_modules/engine.io/node_modules/ws/lib/event-target.js +303 -0
  176. package/dist/src/node_modules/engine.io/node_modules/ws/lib/extension.js +214 -0
  177. package/dist/src/node_modules/engine.io/node_modules/ws/lib/limiter.js +64 -0
  178. package/dist/src/node_modules/engine.io/node_modules/ws/lib/permessage-deflate.js +528 -0
  179. package/dist/src/node_modules/engine.io/node_modules/ws/lib/receiver.js +719 -0
  180. package/dist/src/node_modules/engine.io/node_modules/ws/lib/sender.js +513 -0
  181. package/dist/src/node_modules/engine.io/node_modules/ws/lib/stream.js +170 -0
  182. package/dist/src/node_modules/engine.io/node_modules/ws/lib/subprotocol.js +73 -0
  183. package/dist/src/node_modules/engine.io/node_modules/ws/lib/validation.js +141 -0
  184. package/dist/src/node_modules/engine.io/node_modules/ws/lib/websocket-server.js +559 -0
  185. package/dist/src/node_modules/engine.io/node_modules/ws/lib/websocket.js +1363 -0
  186. package/dist/src/node_modules/engine.io-client/build/esm/contrib/has-cors.js +13 -0
  187. package/dist/src/node_modules/engine.io-client/build/esm/contrib/parseqs.js +36 -0
  188. package/dist/src/node_modules/engine.io-client/build/esm/contrib/parseuri.js +66 -0
  189. package/dist/src/node_modules/engine.io-client/build/esm/globals.node.js +92 -0
  190. package/dist/src/node_modules/engine.io-client/build/esm/index.js +17 -0
  191. package/dist/src/node_modules/engine.io-client/build/esm/socket.js +728 -0
  192. package/dist/src/node_modules/engine.io-client/build/esm/transport.js +143 -0
  193. package/dist/src/node_modules/engine.io-client/build/esm/transports/index.js +11 -0
  194. package/dist/src/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +256 -0
  195. package/dist/src/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.js +21 -0
  196. package/dist/src/node_modules/engine.io-client/build/esm/transports/polling.js +146 -0
  197. package/dist/src/node_modules/engine.io-client/build/esm/transports/websocket.js +107 -0
  198. package/dist/src/node_modules/engine.io-client/build/esm/transports/websocket.node.js +48 -0
  199. package/dist/src/node_modules/engine.io-client/build/esm/transports/webtransport.js +83 -0
  200. package/dist/src/node_modules/engine.io-client/build/esm/util.js +62 -0
  201. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/buffer-util.js +142 -0
  202. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/constants.js +21 -0
  203. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/event-target.js +303 -0
  204. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/extension.js +214 -0
  205. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/limiter.js +64 -0
  206. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/permessage-deflate.js +528 -0
  207. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/receiver.js +719 -0
  208. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/sender.js +513 -0
  209. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/stream.js +170 -0
  210. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/subprotocol.js +73 -0
  211. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/validation.js +141 -0
  212. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/websocket-server.js +559 -0
  213. package/dist/src/node_modules/engine.io-client/node_modules/ws/lib/websocket.js +1363 -0
  214. package/dist/src/node_modules/engine.io-parser/build/cjs/commons.js +29 -0
  215. package/dist/src/node_modules/engine.io-parser/build/cjs/decodePacket.js +70 -0
  216. package/dist/src/node_modules/engine.io-parser/build/cjs/encodePacket.js +51 -0
  217. package/dist/src/node_modules/engine.io-parser/build/cjs/index.js +179 -0
  218. package/dist/src/node_modules/engine.io-parser/build/esm/commons.js +15 -0
  219. package/dist/src/node_modules/engine.io-parser/build/esm/decodePacket.js +58 -0
  220. package/dist/src/node_modules/engine.io-parser/build/esm/encodePacket.js +36 -0
  221. package/dist/src/node_modules/engine.io-parser/build/esm/index.js +158 -0
  222. package/dist/src/node_modules/es-define-property/index.js +23 -0
  223. package/dist/src/node_modules/es-errors/eval.js +13 -0
  224. package/dist/src/node_modules/es-errors/index.js +13 -0
  225. package/dist/src/node_modules/es-errors/range.js +13 -0
  226. package/dist/src/node_modules/es-errors/ref.js +13 -0
  227. package/dist/src/node_modules/es-errors/syntax.js +13 -0
  228. package/dist/src/node_modules/es-errors/type.js +13 -0
  229. package/dist/src/node_modules/es-errors/uri.js +13 -0
  230. package/dist/src/node_modules/es-object-atoms/index.js +13 -0
  231. package/dist/src/node_modules/function-bind/implementation.js +93 -0
  232. package/dist/src/node_modules/function-bind/index.js +16 -0
  233. package/dist/src/node_modules/get-intrinsic/index.js +413 -0
  234. package/dist/src/node_modules/get-proto/Object.getPrototypeOf.js +17 -0
  235. package/dist/src/node_modules/get-proto/Reflect.getPrototypeOf.js +13 -0
  236. package/dist/src/node_modules/get-proto/index.js +40 -0
  237. package/dist/src/node_modules/gopd/gOPD.js +13 -0
  238. package/dist/src/node_modules/gopd/index.js +26 -0
  239. package/dist/src/node_modules/has-symbols/index.js +25 -0
  240. package/dist/src/node_modules/has-symbols/shams.js +54 -0
  241. package/dist/src/node_modules/hasown/index.js +19 -0
  242. package/dist/src/node_modules/http-errors/index.js +306 -0
  243. package/dist/src/node_modules/iconv-lite/encodings/dbcs-codec.js +598 -0
  244. package/dist/src/node_modules/iconv-lite/encodings/dbcs-data.js +206 -0
  245. package/dist/src/node_modules/iconv-lite/encodings/index.js +44 -0
  246. package/dist/src/node_modules/iconv-lite/encodings/internal.js +210 -0
  247. package/dist/src/node_modules/iconv-lite/encodings/sbcs-codec.js +83 -0
  248. package/dist/src/node_modules/iconv-lite/encodings/sbcs-data-generated.js +460 -0
  249. package/dist/src/node_modules/iconv-lite/encodings/sbcs-data.js +187 -0
  250. package/dist/src/node_modules/iconv-lite/encodings/tables/big5-added.json.js +506 -0
  251. package/dist/src/node_modules/iconv-lite/encodings/tables/cp936.json.js +2621 -0
  252. package/dist/src/node_modules/iconv-lite/encodings/tables/cp949.json.js +2380 -0
  253. package/dist/src/node_modules/iconv-lite/encodings/tables/cp950.json.js +729 -0
  254. package/dist/src/node_modules/iconv-lite/encodings/tables/eucjp.json.js +822 -0
  255. package/dist/src/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json.js +424 -0
  256. package/dist/src/node_modules/iconv-lite/encodings/tables/gbk-added.json.js +264 -0
  257. package/dist/src/node_modules/iconv-lite/encodings/tables/shiftjis.json.js +548 -0
  258. package/dist/src/node_modules/iconv-lite/encodings/utf16.js +206 -0
  259. package/dist/src/node_modules/iconv-lite/encodings/utf32.js +329 -0
  260. package/dist/src/node_modules/iconv-lite/encodings/utf7.js +297 -0
  261. package/dist/src/node_modules/iconv-lite/lib/bom-handling.js +61 -0
  262. package/dist/src/node_modules/iconv-lite/lib/index.js +192 -0
  263. package/dist/src/node_modules/iconv-lite/lib/streams.js +120 -0
  264. package/dist/src/node_modules/inherits/inherits.js +21 -0
  265. package/dist/src/node_modules/inherits/inherits_browser.js +38 -0
  266. package/dist/src/node_modules/math-intrinsics/abs.js +13 -0
  267. package/dist/src/node_modules/math-intrinsics/floor.js +13 -0
  268. package/dist/src/node_modules/math-intrinsics/isNaN.js +15 -0
  269. package/dist/src/node_modules/math-intrinsics/max.js +13 -0
  270. package/dist/src/node_modules/math-intrinsics/min.js +13 -0
  271. package/dist/src/node_modules/math-intrinsics/pow.js +13 -0
  272. package/dist/src/node_modules/math-intrinsics/round.js +13 -0
  273. package/dist/src/node_modules/math-intrinsics/sign.js +22 -0
  274. package/dist/src/node_modules/media-typer/index.js +153 -0
  275. package/dist/src/node_modules/mime-db/db.json.js +11656 -0
  276. package/dist/src/node_modules/mime-db/index.js +24 -0
  277. package/dist/src/node_modules/mime-types/index.js +226 -0
  278. package/dist/src/node_modules/mime-types/mimeScore.js +62 -0
  279. package/dist/src/node_modules/ms/index.js +172 -0
  280. package/dist/src/node_modules/object-assign/index.js +99 -0
  281. package/dist/src/node_modules/object-inspect/index.js +557 -0
  282. package/dist/src/node_modules/object-inspect/util.inspect.js +13 -0
  283. package/dist/src/node_modules/on-finished/index.js +245 -0
  284. package/dist/src/node_modules/qs/lib/formats.js +32 -0
  285. package/dist/src/node_modules/qs/lib/index.js +24 -0
  286. package/dist/src/node_modules/qs/lib/parse.js +339 -0
  287. package/dist/src/node_modules/qs/lib/stringify.js +369 -0
  288. package/dist/src/node_modules/qs/lib/utils.js +279 -0
  289. package/dist/src/node_modules/raw-body/index.js +351 -0
  290. package/dist/src/node_modules/safer-buffer/safer.js +88 -0
  291. package/dist/src/node_modules/setprototypeof/index.js +26 -0
  292. package/dist/src/node_modules/side-channel/index.js +58 -0
  293. package/dist/src/node_modules/side-channel-list/index.js +125 -0
  294. package/dist/src/node_modules/side-channel-map/index.js +82 -0
  295. package/dist/src/node_modules/side-channel-weakmap/index.js +99 -0
  296. package/dist/src/node_modules/socket.io/dist/broadcast-operator.js +448 -0
  297. package/dist/src/node_modules/socket.io/dist/client.js +281 -0
  298. package/dist/src/node_modules/socket.io/dist/index.js +837 -0
  299. package/dist/src/node_modules/socket.io/dist/namespace.js +597 -0
  300. package/dist/src/node_modules/socket.io/dist/parent-namespace.js +101 -0
  301. package/dist/src/node_modules/socket.io/dist/socket-types.js +21 -0
  302. package/dist/src/node_modules/socket.io/dist/socket.js +993 -0
  303. package/dist/src/node_modules/socket.io/dist/typed-events.js +92 -0
  304. package/dist/src/node_modules/socket.io/dist/uws.js +149 -0
  305. package/dist/src/node_modules/socket.io/node_modules/accepts/index.js +250 -0
  306. package/dist/src/node_modules/socket.io/node_modules/debug/src/browser.js +285 -0
  307. package/dist/src/node_modules/socket.io/node_modules/debug/src/common.js +285 -0
  308. package/dist/src/node_modules/socket.io/node_modules/debug/src/index.js +23 -0
  309. package/dist/src/node_modules/socket.io/node_modules/debug/src/node.js +279 -0
  310. package/dist/src/node_modules/socket.io/node_modules/mime-db/db.json.js +10704 -0
  311. package/dist/src/node_modules/socket.io/node_modules/mime-db/index.js +24 -0
  312. package/dist/src/node_modules/socket.io/node_modules/mime-types/index.js +202 -0
  313. package/dist/src/node_modules/socket.io/node_modules/negotiator/index.js +96 -0
  314. package/dist/src/node_modules/socket.io/node_modules/negotiator/lib/charset.js +179 -0
  315. package/dist/src/node_modules/socket.io/node_modules/negotiator/lib/encoding.js +193 -0
  316. package/dist/src/node_modules/socket.io/node_modules/negotiator/lib/language.js +188 -0
  317. package/dist/src/node_modules/socket.io/node_modules/negotiator/lib/mediaType.js +304 -0
  318. package/dist/src/node_modules/socket.io/package.json.js +5 -0
  319. package/dist/src/node_modules/socket.io/wrapper.js +5 -0
  320. package/dist/src/node_modules/socket.io-adapter/dist/cluster-adapter.js +689 -0
  321. package/dist/src/node_modules/socket.io-adapter/dist/contrib/yeast.js +64 -0
  322. package/dist/src/node_modules/socket.io-adapter/dist/in-memory-adapter.js +407 -0
  323. package/dist/src/node_modules/socket.io-adapter/dist/index.js +24 -0
  324. package/dist/src/node_modules/socket.io-adapter/node_modules/debug/src/browser.js +285 -0
  325. package/dist/src/node_modules/socket.io-adapter/node_modules/debug/src/common.js +285 -0
  326. package/dist/src/node_modules/socket.io-adapter/node_modules/debug/src/index.js +23 -0
  327. package/dist/src/node_modules/socket.io-adapter/node_modules/debug/src/node.js +279 -0
  328. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/index.js +28 -0
  329. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/buffer-util.js +142 -0
  330. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/constants.js +21 -0
  331. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/event-target.js +303 -0
  332. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/extension.js +214 -0
  333. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/limiter.js +64 -0
  334. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/permessage-deflate.js +528 -0
  335. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/receiver.js +719 -0
  336. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/sender.js +513 -0
  337. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/stream.js +170 -0
  338. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/subprotocol.js +73 -0
  339. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/validation.js +141 -0
  340. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/websocket-server.js +559 -0
  341. package/dist/src/node_modules/socket.io-adapter/node_modules/ws/lib/websocket.js +1363 -0
  342. package/dist/src/node_modules/socket.io-client/build/esm/contrib/backo2.js +68 -0
  343. package/dist/src/node_modules/socket.io-client/build/esm/index.js +50 -0
  344. package/dist/src/node_modules/socket.io-client/build/esm/manager.js +373 -0
  345. package/dist/src/node_modules/socket.io-client/build/esm/on.js +8 -0
  346. package/dist/src/node_modules/socket.io-client/build/esm/socket.js +884 -0
  347. package/dist/src/node_modules/socket.io-client/build/esm/url.js +63 -0
  348. package/dist/src/node_modules/socket.io-parser/build/cjs/binary.js +99 -0
  349. package/dist/src/node_modules/socket.io-parser/build/cjs/index.js +337 -0
  350. package/dist/src/node_modules/socket.io-parser/build/cjs/is-binary.js +65 -0
  351. package/dist/src/node_modules/socket.io-parser/build/esm/binary.js +86 -0
  352. package/dist/src/node_modules/socket.io-parser/build/esm/index.js +314 -0
  353. package/dist/src/node_modules/socket.io-parser/build/esm/is-binary.js +52 -0
  354. package/dist/src/node_modules/socket.io-parser/node_modules/debug/src/browser.js +285 -0
  355. package/dist/src/node_modules/socket.io-parser/node_modules/debug/src/common.js +285 -0
  356. package/dist/src/node_modules/socket.io-parser/node_modules/debug/src/index.js +23 -0
  357. package/dist/src/node_modules/socket.io-parser/node_modules/debug/src/node.js +279 -0
  358. package/dist/src/node_modules/statuses/codes.json.js +67 -0
  359. package/dist/src/node_modules/statuses/index.js +157 -0
  360. package/dist/src/node_modules/toidentifier/index.js +41 -0
  361. package/dist/src/node_modules/type-is/index.js +263 -0
  362. package/dist/src/node_modules/unpipe/index.js +78 -0
  363. package/dist/src/node_modules/vary/index.js +159 -0
  364. package/dist/src/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js +702 -0
  365. package/dist/src/server/runChannel.js +8 -8
  366. package/dist/src/server/runServer.js +41 -2
  367. package/package.json +7 -3
@@ -0,0 +1,689 @@
1
+ import { __exports as clusterAdapter } from '../../../_virtual/cluster-adapter.js';
2
+ import { __require as requireInMemoryAdapter } from './in-memory-adapter.js';
3
+ import { __require as requireSrc } from '../node_modules/debug/src/index.js';
4
+ import require$$1 from 'crypto';
5
+
6
+ var hasRequiredClusterAdapter;
7
+
8
+ function requireClusterAdapter () {
9
+ if (hasRequiredClusterAdapter) return clusterAdapter;
10
+ hasRequiredClusterAdapter = 1;
11
+ (function (exports) {
12
+ var __rest = (clusterAdapter && clusterAdapter.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ClusterAdapterWithHeartbeat = exports.ClusterAdapter = exports.MessageType = void 0;
25
+ const in_memory_adapter_1 = requireInMemoryAdapter();
26
+ const debug_1 = requireSrc();
27
+ const crypto_1 = require$$1;
28
+ const debug = (0, debug_1.debug)("socket.io-adapter");
29
+ const EMITTER_UID = "emitter";
30
+ const DEFAULT_TIMEOUT = 5000;
31
+ function randomId() {
32
+ return (0, crypto_1.randomBytes)(8).toString("hex");
33
+ }
34
+ var MessageType;
35
+ (function (MessageType) {
36
+ MessageType[MessageType["INITIAL_HEARTBEAT"] = 1] = "INITIAL_HEARTBEAT";
37
+ MessageType[MessageType["HEARTBEAT"] = 2] = "HEARTBEAT";
38
+ MessageType[MessageType["BROADCAST"] = 3] = "BROADCAST";
39
+ MessageType[MessageType["SOCKETS_JOIN"] = 4] = "SOCKETS_JOIN";
40
+ MessageType[MessageType["SOCKETS_LEAVE"] = 5] = "SOCKETS_LEAVE";
41
+ MessageType[MessageType["DISCONNECT_SOCKETS"] = 6] = "DISCONNECT_SOCKETS";
42
+ MessageType[MessageType["FETCH_SOCKETS"] = 7] = "FETCH_SOCKETS";
43
+ MessageType[MessageType["FETCH_SOCKETS_RESPONSE"] = 8] = "FETCH_SOCKETS_RESPONSE";
44
+ MessageType[MessageType["SERVER_SIDE_EMIT"] = 9] = "SERVER_SIDE_EMIT";
45
+ MessageType[MessageType["SERVER_SIDE_EMIT_RESPONSE"] = 10] = "SERVER_SIDE_EMIT_RESPONSE";
46
+ MessageType[MessageType["BROADCAST_CLIENT_COUNT"] = 11] = "BROADCAST_CLIENT_COUNT";
47
+ MessageType[MessageType["BROADCAST_ACK"] = 12] = "BROADCAST_ACK";
48
+ MessageType[MessageType["ADAPTER_CLOSE"] = 13] = "ADAPTER_CLOSE";
49
+ })(MessageType = exports.MessageType || (exports.MessageType = {}));
50
+ function encodeOptions(opts) {
51
+ return {
52
+ rooms: [...opts.rooms],
53
+ except: [...opts.except],
54
+ flags: opts.flags,
55
+ };
56
+ }
57
+ function decodeOptions(opts) {
58
+ return {
59
+ rooms: new Set(opts.rooms),
60
+ except: new Set(opts.except),
61
+ flags: opts.flags,
62
+ };
63
+ }
64
+ /**
65
+ * A cluster-ready adapter. Any extending class must:
66
+ *
67
+ * - implement {@link ClusterAdapter#doPublish} and {@link ClusterAdapter#doPublishResponse}
68
+ * - call {@link ClusterAdapter#onMessage} and {@link ClusterAdapter#onResponse}
69
+ */
70
+ class ClusterAdapter extends in_memory_adapter_1.Adapter {
71
+ constructor(nsp) {
72
+ super(nsp);
73
+ this.requests = new Map();
74
+ this.ackRequests = new Map();
75
+ this.uid = randomId();
76
+ }
77
+ /**
78
+ * Called when receiving a message from another member of the cluster.
79
+ *
80
+ * @param message
81
+ * @param offset
82
+ * @protected
83
+ */
84
+ onMessage(message, offset) {
85
+ if (message.uid === this.uid) {
86
+ return debug("[%s] ignore message from self", this.uid);
87
+ }
88
+ debug("[%s] new event of type %d from %s", this.uid, message.type, message.uid);
89
+ switch (message.type) {
90
+ case MessageType.BROADCAST: {
91
+ const withAck = message.data.requestId !== undefined;
92
+ if (withAck) {
93
+ super.broadcastWithAck(message.data.packet, decodeOptions(message.data.opts), (clientCount) => {
94
+ debug("[%s] waiting for %d client acknowledgements", this.uid, clientCount);
95
+ this.publishResponse(message.uid, {
96
+ type: MessageType.BROADCAST_CLIENT_COUNT,
97
+ data: {
98
+ requestId: message.data.requestId,
99
+ clientCount,
100
+ },
101
+ });
102
+ }, (arg) => {
103
+ debug("[%s] received acknowledgement with value %j", this.uid, arg);
104
+ this.publishResponse(message.uid, {
105
+ type: MessageType.BROADCAST_ACK,
106
+ data: {
107
+ requestId: message.data.requestId,
108
+ packet: arg,
109
+ },
110
+ });
111
+ });
112
+ }
113
+ else {
114
+ const packet = message.data.packet;
115
+ const opts = decodeOptions(message.data.opts);
116
+ this.addOffsetIfNecessary(packet, opts, offset);
117
+ super.broadcast(packet, opts);
118
+ }
119
+ break;
120
+ }
121
+ case MessageType.SOCKETS_JOIN:
122
+ super.addSockets(decodeOptions(message.data.opts), message.data.rooms);
123
+ break;
124
+ case MessageType.SOCKETS_LEAVE:
125
+ super.delSockets(decodeOptions(message.data.opts), message.data.rooms);
126
+ break;
127
+ case MessageType.DISCONNECT_SOCKETS:
128
+ super.disconnectSockets(decodeOptions(message.data.opts), message.data.close);
129
+ break;
130
+ case MessageType.FETCH_SOCKETS: {
131
+ debug("[%s] calling fetchSockets with opts %j", this.uid, message.data.opts);
132
+ super
133
+ .fetchSockets(decodeOptions(message.data.opts))
134
+ .then((localSockets) => {
135
+ this.publishResponse(message.uid, {
136
+ type: MessageType.FETCH_SOCKETS_RESPONSE,
137
+ data: {
138
+ requestId: message.data.requestId,
139
+ sockets: localSockets.map((socket) => {
140
+ // remove sessionStore from handshake, as it may contain circular references
141
+ const _a = socket.handshake, { sessionStore } = _a, handshake = __rest(_a, ["sessionStore"]);
142
+ return {
143
+ id: socket.id,
144
+ handshake,
145
+ rooms: [...socket.rooms],
146
+ data: socket.data,
147
+ };
148
+ }),
149
+ },
150
+ });
151
+ });
152
+ break;
153
+ }
154
+ case MessageType.SERVER_SIDE_EMIT: {
155
+ const packet = message.data.packet;
156
+ const withAck = message.data.requestId !== undefined;
157
+ if (!withAck) {
158
+ this.nsp._onServerSideEmit(packet);
159
+ return;
160
+ }
161
+ let called = false;
162
+ const callback = (arg) => {
163
+ // only one argument is expected
164
+ if (called) {
165
+ return;
166
+ }
167
+ called = true;
168
+ debug("[%s] calling acknowledgement with %j", this.uid, arg);
169
+ this.publishResponse(message.uid, {
170
+ type: MessageType.SERVER_SIDE_EMIT_RESPONSE,
171
+ data: {
172
+ requestId: message.data.requestId,
173
+ packet: arg,
174
+ },
175
+ });
176
+ };
177
+ this.nsp._onServerSideEmit([...packet, callback]);
178
+ break;
179
+ }
180
+ // @ts-ignore
181
+ case MessageType.BROADCAST_CLIENT_COUNT:
182
+ // @ts-ignore
183
+ case MessageType.BROADCAST_ACK:
184
+ // @ts-ignore
185
+ case MessageType.FETCH_SOCKETS_RESPONSE:
186
+ // @ts-ignore
187
+ case MessageType.SERVER_SIDE_EMIT_RESPONSE:
188
+ // extending classes may not make a distinction between a ClusterMessage and a ClusterResponse payload and may
189
+ // always call the onMessage() method
190
+ this.onResponse(message);
191
+ break;
192
+ default:
193
+ debug("[%s] unknown message type: %s", this.uid, message.type);
194
+ }
195
+ }
196
+ /**
197
+ * Called when receiving a response from another member of the cluster.
198
+ *
199
+ * @param response
200
+ * @protected
201
+ */
202
+ onResponse(response) {
203
+ var _a, _b;
204
+ const requestId = response.data.requestId;
205
+ debug("[%s] received response %s to request %s", this.uid, response.type, requestId);
206
+ switch (response.type) {
207
+ case MessageType.BROADCAST_CLIENT_COUNT: {
208
+ (_a = this.ackRequests
209
+ .get(requestId)) === null || _a === void 0 ? void 0 : _a.clientCountCallback(response.data.clientCount);
210
+ break;
211
+ }
212
+ case MessageType.BROADCAST_ACK: {
213
+ (_b = this.ackRequests.get(requestId)) === null || _b === void 0 ? void 0 : _b.ack(response.data.packet);
214
+ break;
215
+ }
216
+ case MessageType.FETCH_SOCKETS_RESPONSE: {
217
+ const request = this.requests.get(requestId);
218
+ if (!request) {
219
+ return;
220
+ }
221
+ request.current++;
222
+ response.data.sockets.forEach((socket) => request.responses.push(socket));
223
+ if (request.current === request.expected) {
224
+ clearTimeout(request.timeout);
225
+ request.resolve(request.responses);
226
+ this.requests.delete(requestId);
227
+ }
228
+ break;
229
+ }
230
+ case MessageType.SERVER_SIDE_EMIT_RESPONSE: {
231
+ const request = this.requests.get(requestId);
232
+ if (!request) {
233
+ return;
234
+ }
235
+ request.current++;
236
+ request.responses.push(response.data.packet);
237
+ if (request.current === request.expected) {
238
+ clearTimeout(request.timeout);
239
+ request.resolve(null, request.responses);
240
+ this.requests.delete(requestId);
241
+ }
242
+ break;
243
+ }
244
+ default:
245
+ // @ts-ignore
246
+ debug("[%s] unknown response type: %s", this.uid, response.type);
247
+ }
248
+ }
249
+ async broadcast(packet, opts) {
250
+ var _a;
251
+ const onlyLocal = (_a = opts.flags) === null || _a === void 0 ? void 0 : _a.local;
252
+ if (!onlyLocal) {
253
+ try {
254
+ const offset = await this.publishAndReturnOffset({
255
+ type: MessageType.BROADCAST,
256
+ data: {
257
+ packet,
258
+ opts: encodeOptions(opts),
259
+ },
260
+ });
261
+ this.addOffsetIfNecessary(packet, opts, offset);
262
+ }
263
+ catch (e) {
264
+ return debug("[%s] error while broadcasting message: %s", this.uid, e.message);
265
+ }
266
+ }
267
+ super.broadcast(packet, opts);
268
+ }
269
+ /**
270
+ * Adds an offset at the end of the data array in order to allow the client to receive any missed packets when it
271
+ * reconnects after a temporary disconnection.
272
+ *
273
+ * @param packet
274
+ * @param opts
275
+ * @param offset
276
+ * @private
277
+ */
278
+ addOffsetIfNecessary(packet, opts, offset) {
279
+ var _a;
280
+ if (!this.nsp.server.opts.connectionStateRecovery) {
281
+ return;
282
+ }
283
+ const isEventPacket = packet.type === 2;
284
+ // packets with acknowledgement are not stored because the acknowledgement function cannot be serialized and
285
+ // restored on another server upon reconnection
286
+ const withoutAcknowledgement = packet.id === undefined;
287
+ const notVolatile = ((_a = opts.flags) === null || _a === void 0 ? void 0 : _a.volatile) === undefined;
288
+ if (isEventPacket && withoutAcknowledgement && notVolatile) {
289
+ packet.data.push(offset);
290
+ }
291
+ }
292
+ broadcastWithAck(packet, opts, clientCountCallback, ack) {
293
+ var _a;
294
+ const onlyLocal = (_a = opts === null || opts === void 0 ? void 0 : opts.flags) === null || _a === void 0 ? void 0 : _a.local;
295
+ if (!onlyLocal) {
296
+ const requestId = randomId();
297
+ this.ackRequests.set(requestId, {
298
+ clientCountCallback,
299
+ ack,
300
+ });
301
+ this.publish({
302
+ type: MessageType.BROADCAST,
303
+ data: {
304
+ packet,
305
+ requestId,
306
+ opts: encodeOptions(opts),
307
+ },
308
+ });
309
+ // we have no way to know at this level whether the server has received an acknowledgement from each client, so we
310
+ // will simply clean up the ackRequests map after the given delay
311
+ setTimeout(() => {
312
+ this.ackRequests.delete(requestId);
313
+ }, opts.flags.timeout);
314
+ }
315
+ super.broadcastWithAck(packet, opts, clientCountCallback, ack);
316
+ }
317
+ async addSockets(opts, rooms) {
318
+ var _a;
319
+ const onlyLocal = (_a = opts.flags) === null || _a === void 0 ? void 0 : _a.local;
320
+ if (!onlyLocal) {
321
+ try {
322
+ await this.publishAndReturnOffset({
323
+ type: MessageType.SOCKETS_JOIN,
324
+ data: {
325
+ opts: encodeOptions(opts),
326
+ rooms,
327
+ },
328
+ });
329
+ }
330
+ catch (e) {
331
+ debug("[%s] error while publishing message: %s", this.uid, e.message);
332
+ }
333
+ }
334
+ super.addSockets(opts, rooms);
335
+ }
336
+ async delSockets(opts, rooms) {
337
+ var _a;
338
+ const onlyLocal = (_a = opts.flags) === null || _a === void 0 ? void 0 : _a.local;
339
+ if (!onlyLocal) {
340
+ try {
341
+ await this.publishAndReturnOffset({
342
+ type: MessageType.SOCKETS_LEAVE,
343
+ data: {
344
+ opts: encodeOptions(opts),
345
+ rooms,
346
+ },
347
+ });
348
+ }
349
+ catch (e) {
350
+ debug("[%s] error while publishing message: %s", this.uid, e.message);
351
+ }
352
+ }
353
+ super.delSockets(opts, rooms);
354
+ }
355
+ async disconnectSockets(opts, close) {
356
+ var _a;
357
+ const onlyLocal = (_a = opts.flags) === null || _a === void 0 ? void 0 : _a.local;
358
+ if (!onlyLocal) {
359
+ try {
360
+ await this.publishAndReturnOffset({
361
+ type: MessageType.DISCONNECT_SOCKETS,
362
+ data: {
363
+ opts: encodeOptions(opts),
364
+ close,
365
+ },
366
+ });
367
+ }
368
+ catch (e) {
369
+ debug("[%s] error while publishing message: %s", this.uid, e.message);
370
+ }
371
+ }
372
+ super.disconnectSockets(opts, close);
373
+ }
374
+ async fetchSockets(opts) {
375
+ var _a;
376
+ const [localSockets, serverCount] = await Promise.all([
377
+ super.fetchSockets(opts),
378
+ this.serverCount(),
379
+ ]);
380
+ const expectedResponseCount = serverCount - 1;
381
+ if (((_a = opts.flags) === null || _a === void 0 ? void 0 : _a.local) || expectedResponseCount <= 0) {
382
+ return localSockets;
383
+ }
384
+ const requestId = randomId();
385
+ return new Promise((resolve, reject) => {
386
+ const timeout = setTimeout(() => {
387
+ const storedRequest = this.requests.get(requestId);
388
+ if (storedRequest) {
389
+ reject(new Error(`timeout reached: only ${storedRequest.current} responses received out of ${storedRequest.expected}`));
390
+ this.requests.delete(requestId);
391
+ }
392
+ }, opts.flags.timeout || DEFAULT_TIMEOUT);
393
+ const storedRequest = {
394
+ type: MessageType.FETCH_SOCKETS,
395
+ resolve,
396
+ timeout,
397
+ current: 0,
398
+ expected: expectedResponseCount,
399
+ responses: localSockets,
400
+ };
401
+ this.requests.set(requestId, storedRequest);
402
+ this.publish({
403
+ type: MessageType.FETCH_SOCKETS,
404
+ data: {
405
+ opts: encodeOptions(opts),
406
+ requestId,
407
+ },
408
+ });
409
+ });
410
+ }
411
+ async serverSideEmit(packet) {
412
+ const withAck = typeof packet[packet.length - 1] === "function";
413
+ if (!withAck) {
414
+ return this.publish({
415
+ type: MessageType.SERVER_SIDE_EMIT,
416
+ data: {
417
+ packet,
418
+ },
419
+ });
420
+ }
421
+ const ack = packet.pop();
422
+ const expectedResponseCount = (await this.serverCount()) - 1;
423
+ debug('[%s] waiting for %d responses to "serverSideEmit" request', this.uid, expectedResponseCount);
424
+ if (expectedResponseCount <= 0) {
425
+ return ack(null, []);
426
+ }
427
+ const requestId = randomId();
428
+ const timeout = setTimeout(() => {
429
+ const storedRequest = this.requests.get(requestId);
430
+ if (storedRequest) {
431
+ ack(new Error(`timeout reached: only ${storedRequest.current} responses received out of ${storedRequest.expected}`), storedRequest.responses);
432
+ this.requests.delete(requestId);
433
+ }
434
+ }, DEFAULT_TIMEOUT);
435
+ const storedRequest = {
436
+ type: MessageType.SERVER_SIDE_EMIT,
437
+ resolve: ack,
438
+ timeout,
439
+ current: 0,
440
+ expected: expectedResponseCount,
441
+ responses: [],
442
+ };
443
+ this.requests.set(requestId, storedRequest);
444
+ this.publish({
445
+ type: MessageType.SERVER_SIDE_EMIT,
446
+ data: {
447
+ requestId,
448
+ packet,
449
+ },
450
+ });
451
+ }
452
+ publish(message) {
453
+ this.publishAndReturnOffset(message).catch((err) => {
454
+ debug("[%s] error while publishing message: %s", this.uid, err);
455
+ });
456
+ }
457
+ publishAndReturnOffset(message) {
458
+ message.uid = this.uid;
459
+ message.nsp = this.nsp.name;
460
+ return this.doPublish(message);
461
+ }
462
+ publishResponse(requesterUid, response) {
463
+ response.uid = this.uid;
464
+ response.nsp = this.nsp.name;
465
+ this.doPublishResponse(requesterUid, response).catch((err) => {
466
+ debug("[%s] error while publishing response: %s", this.uid, err);
467
+ });
468
+ }
469
+ }
470
+ exports.ClusterAdapter = ClusterAdapter;
471
+ class ClusterAdapterWithHeartbeat extends ClusterAdapter {
472
+ constructor(nsp, opts) {
473
+ super(nsp);
474
+ this.nodesMap = new Map(); // uid => timestamp of last message
475
+ this.customRequests = new Map();
476
+ this._opts = Object.assign({
477
+ heartbeatInterval: 5000,
478
+ heartbeatTimeout: 10000,
479
+ }, opts);
480
+ this.cleanupTimer = setInterval(() => {
481
+ const now = Date.now();
482
+ this.nodesMap.forEach((lastSeen, uid) => {
483
+ const nodeSeemsDown = now - lastSeen > this._opts.heartbeatTimeout;
484
+ if (nodeSeemsDown) {
485
+ debug("[%s] node %s seems down", this.uid, uid);
486
+ this.removeNode(uid);
487
+ }
488
+ });
489
+ }, 1000);
490
+ }
491
+ init() {
492
+ this.publish({
493
+ type: MessageType.INITIAL_HEARTBEAT,
494
+ });
495
+ }
496
+ scheduleHeartbeat() {
497
+ if (this.heartbeatTimer) {
498
+ this.heartbeatTimer.refresh();
499
+ }
500
+ else {
501
+ this.heartbeatTimer = setTimeout(() => {
502
+ this.publish({
503
+ type: MessageType.HEARTBEAT,
504
+ });
505
+ }, this._opts.heartbeatInterval);
506
+ }
507
+ }
508
+ close() {
509
+ this.publish({
510
+ type: MessageType.ADAPTER_CLOSE,
511
+ });
512
+ clearTimeout(this.heartbeatTimer);
513
+ if (this.cleanupTimer) {
514
+ clearInterval(this.cleanupTimer);
515
+ }
516
+ }
517
+ onMessage(message, offset) {
518
+ if (message.uid === this.uid) {
519
+ return debug("[%s] ignore message from self", this.uid);
520
+ }
521
+ if (message.uid && message.uid !== EMITTER_UID) {
522
+ // we track the UID of each sender, in order to know how many servers there are in the cluster
523
+ this.nodesMap.set(message.uid, Date.now());
524
+ }
525
+ debug("[%s] new event of type %d from %s", this.uid, message.type, message.uid);
526
+ switch (message.type) {
527
+ case MessageType.INITIAL_HEARTBEAT:
528
+ this.publish({
529
+ type: MessageType.HEARTBEAT,
530
+ });
531
+ break;
532
+ case MessageType.HEARTBEAT:
533
+ // nothing to do
534
+ break;
535
+ case MessageType.ADAPTER_CLOSE:
536
+ this.removeNode(message.uid);
537
+ break;
538
+ default:
539
+ super.onMessage(message, offset);
540
+ }
541
+ }
542
+ serverCount() {
543
+ return Promise.resolve(1 + this.nodesMap.size);
544
+ }
545
+ publish(message) {
546
+ this.scheduleHeartbeat();
547
+ return super.publish(message);
548
+ }
549
+ async serverSideEmit(packet) {
550
+ const withAck = typeof packet[packet.length - 1] === "function";
551
+ if (!withAck) {
552
+ return this.publish({
553
+ type: MessageType.SERVER_SIDE_EMIT,
554
+ data: {
555
+ packet,
556
+ },
557
+ });
558
+ }
559
+ const ack = packet.pop();
560
+ const expectedResponseCount = this.nodesMap.size;
561
+ debug('[%s] waiting for %d responses to "serverSideEmit" request', this.uid, expectedResponseCount);
562
+ if (expectedResponseCount <= 0) {
563
+ return ack(null, []);
564
+ }
565
+ const requestId = randomId();
566
+ const timeout = setTimeout(() => {
567
+ const storedRequest = this.customRequests.get(requestId);
568
+ if (storedRequest) {
569
+ ack(new Error(`timeout reached: missing ${storedRequest.missingUids.size} responses`), storedRequest.responses);
570
+ this.customRequests.delete(requestId);
571
+ }
572
+ }, DEFAULT_TIMEOUT);
573
+ const storedRequest = {
574
+ type: MessageType.SERVER_SIDE_EMIT,
575
+ resolve: ack,
576
+ timeout,
577
+ missingUids: new Set([...this.nodesMap.keys()]),
578
+ responses: [],
579
+ };
580
+ this.customRequests.set(requestId, storedRequest);
581
+ this.publish({
582
+ type: MessageType.SERVER_SIDE_EMIT,
583
+ data: {
584
+ requestId,
585
+ packet,
586
+ },
587
+ });
588
+ }
589
+ async fetchSockets(opts) {
590
+ var _a;
591
+ const [localSockets, serverCount] = await Promise.all([
592
+ super.fetchSockets({
593
+ rooms: opts.rooms,
594
+ except: opts.except,
595
+ flags: {
596
+ local: true,
597
+ },
598
+ }),
599
+ this.serverCount(),
600
+ ]);
601
+ const expectedResponseCount = serverCount - 1;
602
+ if (((_a = opts.flags) === null || _a === void 0 ? void 0 : _a.local) || expectedResponseCount <= 0) {
603
+ return localSockets;
604
+ }
605
+ const requestId = randomId();
606
+ return new Promise((resolve, reject) => {
607
+ const timeout = setTimeout(() => {
608
+ const storedRequest = this.customRequests.get(requestId);
609
+ if (storedRequest) {
610
+ reject(new Error(`timeout reached: missing ${storedRequest.missingUids.size} responses`));
611
+ this.customRequests.delete(requestId);
612
+ }
613
+ }, opts.flags.timeout || DEFAULT_TIMEOUT);
614
+ const storedRequest = {
615
+ type: MessageType.FETCH_SOCKETS,
616
+ resolve,
617
+ timeout,
618
+ missingUids: new Set([...this.nodesMap.keys()]),
619
+ responses: localSockets,
620
+ };
621
+ this.customRequests.set(requestId, storedRequest);
622
+ this.publish({
623
+ type: MessageType.FETCH_SOCKETS,
624
+ data: {
625
+ opts: encodeOptions(opts),
626
+ requestId,
627
+ },
628
+ });
629
+ });
630
+ }
631
+ onResponse(response) {
632
+ const requestId = response.data.requestId;
633
+ debug("[%s] received response %s to request %s", this.uid, response.type, requestId);
634
+ switch (response.type) {
635
+ case MessageType.FETCH_SOCKETS_RESPONSE: {
636
+ const request = this.customRequests.get(requestId);
637
+ if (!request) {
638
+ return;
639
+ }
640
+ response.data.sockets.forEach((socket) => request.responses.push(socket));
641
+ request.missingUids.delete(response.uid);
642
+ if (request.missingUids.size === 0) {
643
+ clearTimeout(request.timeout);
644
+ request.resolve(request.responses);
645
+ this.customRequests.delete(requestId);
646
+ }
647
+ break;
648
+ }
649
+ case MessageType.SERVER_SIDE_EMIT_RESPONSE: {
650
+ const request = this.customRequests.get(requestId);
651
+ if (!request) {
652
+ return;
653
+ }
654
+ request.responses.push(response.data.packet);
655
+ request.missingUids.delete(response.uid);
656
+ if (request.missingUids.size === 0) {
657
+ clearTimeout(request.timeout);
658
+ request.resolve(null, request.responses);
659
+ this.customRequests.delete(requestId);
660
+ }
661
+ break;
662
+ }
663
+ default:
664
+ super.onResponse(response);
665
+ }
666
+ }
667
+ removeNode(uid) {
668
+ this.customRequests.forEach((request, requestId) => {
669
+ request.missingUids.delete(uid);
670
+ if (request.missingUids.size === 0) {
671
+ clearTimeout(request.timeout);
672
+ if (request.type === MessageType.FETCH_SOCKETS) {
673
+ request.resolve(request.responses);
674
+ }
675
+ else if (request.type === MessageType.SERVER_SIDE_EMIT) {
676
+ request.resolve(null, request.responses);
677
+ }
678
+ this.customRequests.delete(requestId);
679
+ }
680
+ });
681
+ this.nodesMap.delete(uid);
682
+ }
683
+ }
684
+ exports.ClusterAdapterWithHeartbeat = ClusterAdapterWithHeartbeat;
685
+ } (clusterAdapter));
686
+ return clusterAdapter;
687
+ }
688
+
689
+ export { requireClusterAdapter as __require };