lightclaw2 0.0.1

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 (331) hide show
  1. package/README.md +1 -0
  2. package/dist/index.d.ts +21 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +26 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/src/channel.d.ts +11 -0
  7. package/dist/src/channel.d.ts.map +1 -0
  8. package/dist/src/channel.js +255 -0
  9. package/dist/src/channel.js.map +1 -0
  10. package/dist/src/config.d.ts +29 -0
  11. package/dist/src/config.d.ts.map +1 -0
  12. package/dist/src/config.js +99 -0
  13. package/dist/src/config.js.map +1 -0
  14. package/dist/src/dedup.d.ts +7 -0
  15. package/dist/src/dedup.d.ts.map +1 -0
  16. package/dist/src/dedup.js +52 -0
  17. package/dist/src/dedup.js.map +1 -0
  18. package/dist/src/gateway.d.ts +16 -0
  19. package/dist/src/gateway.d.ts.map +1 -0
  20. package/dist/src/gateway.js +283 -0
  21. package/dist/src/gateway.js.map +1 -0
  22. package/dist/src/inbound.d.ts +18 -0
  23. package/dist/src/inbound.d.ts.map +1 -0
  24. package/dist/src/inbound.js +252 -0
  25. package/dist/src/inbound.js.map +1 -0
  26. package/dist/src/media.d.ts +12 -0
  27. package/dist/src/media.d.ts.map +1 -0
  28. package/dist/src/media.js +87 -0
  29. package/dist/src/media.js.map +1 -0
  30. package/dist/src/outbound.d.ts +28 -0
  31. package/dist/src/outbound.d.ts.map +1 -0
  32. package/dist/src/outbound.js +172 -0
  33. package/dist/src/outbound.js.map +1 -0
  34. package/dist/src/runtime.d.ts +4 -0
  35. package/dist/src/runtime.d.ts.map +1 -0
  36. package/dist/src/runtime.js +11 -0
  37. package/dist/src/runtime.js.map +1 -0
  38. package/dist/src/session-history.d.ts +88 -0
  39. package/dist/src/session-history.d.ts.map +1 -0
  40. package/dist/src/session-history.js +545 -0
  41. package/dist/src/session-history.js.map +1 -0
  42. package/dist/src/socket-handlers.d.ts +21 -0
  43. package/dist/src/socket-handlers.d.ts.map +1 -0
  44. package/dist/src/socket-handlers.js +120 -0
  45. package/dist/src/socket-handlers.js.map +1 -0
  46. package/dist/src/socket-registry.d.ts +53 -0
  47. package/dist/src/socket-registry.d.ts.map +1 -0
  48. package/dist/src/socket-registry.js +115 -0
  49. package/dist/src/socket-registry.js.map +1 -0
  50. package/dist/src/types.d.ts +100 -0
  51. package/dist/src/types.d.ts.map +1 -0
  52. package/dist/src/types.js +10 -0
  53. package/dist/src/types.js.map +1 -0
  54. package/node_modules/@socket.io/component-emitter/LICENSE +24 -0
  55. package/node_modules/@socket.io/component-emitter/Readme.md +79 -0
  56. package/node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts +179 -0
  57. package/node_modules/@socket.io/component-emitter/lib/cjs/index.js +176 -0
  58. package/node_modules/@socket.io/component-emitter/lib/cjs/package.json +4 -0
  59. package/node_modules/@socket.io/component-emitter/lib/esm/index.d.ts +179 -0
  60. package/node_modules/@socket.io/component-emitter/lib/esm/index.js +169 -0
  61. package/node_modules/@socket.io/component-emitter/lib/esm/package.json +4 -0
  62. package/node_modules/@socket.io/component-emitter/package.json +28 -0
  63. package/node_modules/debug/LICENSE +20 -0
  64. package/node_modules/debug/README.md +481 -0
  65. package/node_modules/debug/package.json +64 -0
  66. package/node_modules/debug/src/browser.js +272 -0
  67. package/node_modules/debug/src/common.js +292 -0
  68. package/node_modules/debug/src/index.js +10 -0
  69. package/node_modules/debug/src/node.js +263 -0
  70. package/node_modules/engine.io-client/LICENSE +22 -0
  71. package/node_modules/engine.io-client/README.md +331 -0
  72. package/node_modules/engine.io-client/build/cjs/browser-entrypoint.d.ts +3 -0
  73. package/node_modules/engine.io-client/build/cjs/browser-entrypoint.js +4 -0
  74. package/node_modules/engine.io-client/build/cjs/contrib/has-cors.d.ts +1 -0
  75. package/node_modules/engine.io-client/build/cjs/contrib/has-cors.js +14 -0
  76. package/node_modules/engine.io-client/build/cjs/contrib/parseqs.d.ts +15 -0
  77. package/node_modules/engine.io-client/build/cjs/contrib/parseqs.js +38 -0
  78. package/node_modules/engine.io-client/build/cjs/contrib/parseuri.d.ts +1 -0
  79. package/node_modules/engine.io-client/build/cjs/contrib/parseuri.js +67 -0
  80. package/node_modules/engine.io-client/build/cjs/globals.d.ts +4 -0
  81. package/node_modules/engine.io-client/build/cjs/globals.js +26 -0
  82. package/node_modules/engine.io-client/build/cjs/globals.node.d.ts +21 -0
  83. package/node_modules/engine.io-client/build/cjs/globals.node.js +97 -0
  84. package/node_modules/engine.io-client/build/cjs/index.d.ts +15 -0
  85. package/node_modules/engine.io-client/build/cjs/index.js +32 -0
  86. package/node_modules/engine.io-client/build/cjs/package.json +10 -0
  87. package/node_modules/engine.io-client/build/cjs/socket.d.ts +482 -0
  88. package/node_modules/engine.io-client/build/cjs/socket.js +765 -0
  89. package/node_modules/engine.io-client/build/cjs/transport.d.ts +106 -0
  90. package/node_modules/engine.io-client/build/cjs/transport.js +153 -0
  91. package/node_modules/engine.io-client/build/cjs/transports/index.d.ts +8 -0
  92. package/node_modules/engine.io-client/build/cjs/transports/index.js +11 -0
  93. package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.d.ts +15 -0
  94. package/node_modules/engine.io-client/build/cjs/transports/polling-fetch.js +60 -0
  95. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.d.ts +108 -0
  96. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.js +285 -0
  97. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.d.ts +11 -0
  98. package/node_modules/engine.io-client/build/cjs/transports/polling-xhr.node.js +44 -0
  99. package/node_modules/engine.io-client/build/cjs/transports/polling.d.ts +52 -0
  100. package/node_modules/engine.io-client/build/cjs/transports/polling.js +165 -0
  101. package/node_modules/engine.io-client/build/cjs/transports/websocket.d.ts +36 -0
  102. package/node_modules/engine.io-client/build/cjs/transports/websocket.js +136 -0
  103. package/node_modules/engine.io-client/build/cjs/transports/websocket.node.d.ts +14 -0
  104. package/node_modules/engine.io-client/build/cjs/transports/websocket.node.js +68 -0
  105. package/node_modules/engine.io-client/build/cjs/transports/webtransport.d.ts +18 -0
  106. package/node_modules/engine.io-client/build/cjs/transports/webtransport.js +94 -0
  107. package/node_modules/engine.io-client/build/cjs/util.d.ts +7 -0
  108. package/node_modules/engine.io-client/build/cjs/util.js +65 -0
  109. package/node_modules/engine.io-client/build/esm/browser-entrypoint.d.ts +3 -0
  110. package/node_modules/engine.io-client/build/esm/browser-entrypoint.js +2 -0
  111. package/node_modules/engine.io-client/build/esm/contrib/has-cors.d.ts +1 -0
  112. package/node_modules/engine.io-client/build/esm/contrib/has-cors.js +11 -0
  113. package/node_modules/engine.io-client/build/esm/contrib/parseqs.d.ts +15 -0
  114. package/node_modules/engine.io-client/build/esm/contrib/parseqs.js +34 -0
  115. package/node_modules/engine.io-client/build/esm/contrib/parseuri.d.ts +1 -0
  116. package/node_modules/engine.io-client/build/esm/contrib/parseuri.js +64 -0
  117. package/node_modules/engine.io-client/build/esm/globals.d.ts +4 -0
  118. package/node_modules/engine.io-client/build/esm/globals.js +22 -0
  119. package/node_modules/engine.io-client/build/esm/globals.node.d.ts +21 -0
  120. package/node_modules/engine.io-client/build/esm/globals.node.js +91 -0
  121. package/node_modules/engine.io-client/build/esm/index.d.ts +15 -0
  122. package/node_modules/engine.io-client/build/esm/index.js +15 -0
  123. package/node_modules/engine.io-client/build/esm/package.json +10 -0
  124. package/node_modules/engine.io-client/build/esm/socket.d.ts +482 -0
  125. package/node_modules/engine.io-client/build/esm/socket.js +727 -0
  126. package/node_modules/engine.io-client/build/esm/transport.d.ts +106 -0
  127. package/node_modules/engine.io-client/build/esm/transport.js +142 -0
  128. package/node_modules/engine.io-client/build/esm/transports/index.d.ts +8 -0
  129. package/node_modules/engine.io-client/build/esm/transports/index.js +8 -0
  130. package/node_modules/engine.io-client/build/esm/transports/polling-fetch.d.ts +15 -0
  131. package/node_modules/engine.io-client/build/esm/transports/polling-fetch.js +56 -0
  132. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.d.ts +108 -0
  133. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.js +271 -0
  134. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.d.ts +11 -0
  135. package/node_modules/engine.io-client/build/esm/transports/polling-xhr.node.js +17 -0
  136. package/node_modules/engine.io-client/build/esm/transports/polling.d.ts +52 -0
  137. package/node_modules/engine.io-client/build/esm/transports/polling.js +145 -0
  138. package/node_modules/engine.io-client/build/esm/transports/websocket.d.ts +36 -0
  139. package/node_modules/engine.io-client/build/esm/transports/websocket.js +125 -0
  140. package/node_modules/engine.io-client/build/esm/transports/websocket.node.d.ts +14 -0
  141. package/node_modules/engine.io-client/build/esm/transports/websocket.node.js +41 -0
  142. package/node_modules/engine.io-client/build/esm/transports/webtransport.d.ts +18 -0
  143. package/node_modules/engine.io-client/build/esm/transports/webtransport.js +80 -0
  144. package/node_modules/engine.io-client/build/esm/util.d.ts +7 -0
  145. package/node_modules/engine.io-client/build/esm/util.js +59 -0
  146. package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.d.ts +3 -0
  147. package/node_modules/engine.io-client/build/esm-debug/browser-entrypoint.js +2 -0
  148. package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.d.ts +1 -0
  149. package/node_modules/engine.io-client/build/esm-debug/contrib/has-cors.js +11 -0
  150. package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.d.ts +15 -0
  151. package/node_modules/engine.io-client/build/esm-debug/contrib/parseqs.js +34 -0
  152. package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.d.ts +1 -0
  153. package/node_modules/engine.io-client/build/esm-debug/contrib/parseuri.js +64 -0
  154. package/node_modules/engine.io-client/build/esm-debug/globals.d.ts +4 -0
  155. package/node_modules/engine.io-client/build/esm-debug/globals.js +22 -0
  156. package/node_modules/engine.io-client/build/esm-debug/globals.node.d.ts +21 -0
  157. package/node_modules/engine.io-client/build/esm-debug/globals.node.js +91 -0
  158. package/node_modules/engine.io-client/build/esm-debug/index.d.ts +15 -0
  159. package/node_modules/engine.io-client/build/esm-debug/index.js +15 -0
  160. package/node_modules/engine.io-client/build/esm-debug/package.json +10 -0
  161. package/node_modules/engine.io-client/build/esm-debug/socket.d.ts +482 -0
  162. package/node_modules/engine.io-client/build/esm-debug/socket.js +756 -0
  163. package/node_modules/engine.io-client/build/esm-debug/transport.d.ts +106 -0
  164. package/node_modules/engine.io-client/build/esm-debug/transport.js +145 -0
  165. package/node_modules/engine.io-client/build/esm-debug/transports/index.d.ts +8 -0
  166. package/node_modules/engine.io-client/build/esm-debug/transports/index.js +8 -0
  167. package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.d.ts +15 -0
  168. package/node_modules/engine.io-client/build/esm-debug/transports/polling-fetch.js +56 -0
  169. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.d.ts +108 -0
  170. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.js +276 -0
  171. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.d.ts +11 -0
  172. package/node_modules/engine.io-client/build/esm-debug/transports/polling-xhr.node.js +17 -0
  173. package/node_modules/engine.io-client/build/esm-debug/transports/polling.d.ts +52 -0
  174. package/node_modules/engine.io-client/build/esm-debug/transports/polling.js +158 -0
  175. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.d.ts +36 -0
  176. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.js +128 -0
  177. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.d.ts +14 -0
  178. package/node_modules/engine.io-client/build/esm-debug/transports/websocket.node.js +41 -0
  179. package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.d.ts +18 -0
  180. package/node_modules/engine.io-client/build/esm-debug/transports/webtransport.js +87 -0
  181. package/node_modules/engine.io-client/build/esm-debug/util.d.ts +7 -0
  182. package/node_modules/engine.io-client/build/esm-debug/util.js +59 -0
  183. package/node_modules/engine.io-client/dist/engine.io.esm.min.js +7 -0
  184. package/node_modules/engine.io-client/dist/engine.io.esm.min.js.map +1 -0
  185. package/node_modules/engine.io-client/dist/engine.io.js +3064 -0
  186. package/node_modules/engine.io-client/dist/engine.io.js.map +1 -0
  187. package/node_modules/engine.io-client/dist/engine.io.min.js +7 -0
  188. package/node_modules/engine.io-client/dist/engine.io.min.js.map +1 -0
  189. package/node_modules/engine.io-client/node_modules/ws/LICENSE +20 -0
  190. package/node_modules/engine.io-client/node_modules/ws/README.md +548 -0
  191. package/node_modules/engine.io-client/node_modules/ws/browser.js +8 -0
  192. package/node_modules/engine.io-client/node_modules/ws/index.js +13 -0
  193. package/node_modules/engine.io-client/node_modules/ws/lib/buffer-util.js +131 -0
  194. package/node_modules/engine.io-client/node_modules/ws/lib/constants.js +18 -0
  195. package/node_modules/engine.io-client/node_modules/ws/lib/event-target.js +292 -0
  196. package/node_modules/engine.io-client/node_modules/ws/lib/extension.js +203 -0
  197. package/node_modules/engine.io-client/node_modules/ws/lib/limiter.js +55 -0
  198. package/node_modules/engine.io-client/node_modules/ws/lib/permessage-deflate.js +528 -0
  199. package/node_modules/engine.io-client/node_modules/ws/lib/receiver.js +706 -0
  200. package/node_modules/engine.io-client/node_modules/ws/lib/sender.js +602 -0
  201. package/node_modules/engine.io-client/node_modules/ws/lib/stream.js +161 -0
  202. package/node_modules/engine.io-client/node_modules/ws/lib/subprotocol.js +62 -0
  203. package/node_modules/engine.io-client/node_modules/ws/lib/validation.js +152 -0
  204. package/node_modules/engine.io-client/node_modules/ws/lib/websocket-server.js +550 -0
  205. package/node_modules/engine.io-client/node_modules/ws/lib/websocket.js +1388 -0
  206. package/node_modules/engine.io-client/node_modules/ws/package.json +69 -0
  207. package/node_modules/engine.io-client/node_modules/ws/wrapper.mjs +8 -0
  208. package/node_modules/engine.io-client/package.json +95 -0
  209. package/node_modules/engine.io-parser/LICENSE +22 -0
  210. package/node_modules/engine.io-parser/Readme.md +158 -0
  211. package/node_modules/engine.io-parser/build/cjs/commons.d.ts +14 -0
  212. package/node_modules/engine.io-parser/build/cjs/commons.js +19 -0
  213. package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.d.ts +2 -0
  214. package/node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js +48 -0
  215. package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.d.ts +2 -0
  216. package/node_modules/engine.io-parser/build/cjs/decodePacket.browser.js +66 -0
  217. package/node_modules/engine.io-parser/build/cjs/decodePacket.d.ts +2 -0
  218. package/node_modules/engine.io-parser/build/cjs/decodePacket.js +59 -0
  219. package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.d.ts +4 -0
  220. package/node_modules/engine.io-parser/build/cjs/encodePacket.browser.js +72 -0
  221. package/node_modules/engine.io-parser/build/cjs/encodePacket.d.ts +3 -0
  222. package/node_modules/engine.io-parser/build/cjs/encodePacket.js +38 -0
  223. package/node_modules/engine.io-parser/build/cjs/index.d.ts +9 -0
  224. package/node_modules/engine.io-parser/build/cjs/index.js +164 -0
  225. package/node_modules/engine.io-parser/build/cjs/package.json +8 -0
  226. package/node_modules/engine.io-parser/build/esm/commons.d.ts +14 -0
  227. package/node_modules/engine.io-parser/build/esm/commons.js +14 -0
  228. package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts +2 -0
  229. package/node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js +43 -0
  230. package/node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts +2 -0
  231. package/node_modules/engine.io-parser/build/esm/decodePacket.browser.js +62 -0
  232. package/node_modules/engine.io-parser/build/esm/decodePacket.d.ts +2 -0
  233. package/node_modules/engine.io-parser/build/esm/decodePacket.js +55 -0
  234. package/node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts +4 -0
  235. package/node_modules/engine.io-parser/build/esm/encodePacket.browser.js +68 -0
  236. package/node_modules/engine.io-parser/build/esm/encodePacket.d.ts +3 -0
  237. package/node_modules/engine.io-parser/build/esm/encodePacket.js +33 -0
  238. package/node_modules/engine.io-parser/build/esm/index.d.ts +9 -0
  239. package/node_modules/engine.io-parser/build/esm/index.js +156 -0
  240. package/node_modules/engine.io-parser/build/esm/package.json +8 -0
  241. package/node_modules/engine.io-parser/package.json +46 -0
  242. package/node_modules/ms/index.js +162 -0
  243. package/node_modules/ms/license.md +21 -0
  244. package/node_modules/ms/package.json +38 -0
  245. package/node_modules/ms/readme.md +59 -0
  246. package/node_modules/socket.io-client/LICENSE +21 -0
  247. package/node_modules/socket.io-client/README.md +29 -0
  248. package/node_modules/socket.io-client/build/cjs/browser-entrypoint.d.ts +2 -0
  249. package/node_modules/socket.io-client/build/cjs/browser-entrypoint.js +4 -0
  250. package/node_modules/socket.io-client/build/cjs/contrib/backo2.d.ts +12 -0
  251. package/node_modules/socket.io-client/build/cjs/contrib/backo2.js +69 -0
  252. package/node_modules/socket.io-client/build/cjs/index.d.ts +29 -0
  253. package/node_modules/socket.io-client/build/cjs/index.js +76 -0
  254. package/node_modules/socket.io-client/build/cjs/manager.d.ts +295 -0
  255. package/node_modules/socket.io-client/build/cjs/manager.js +416 -0
  256. package/node_modules/socket.io-client/build/cjs/on.d.ts +2 -0
  257. package/node_modules/socket.io-client/build/cjs/on.js +9 -0
  258. package/node_modules/socket.io-client/build/cjs/socket.d.ts +593 -0
  259. package/node_modules/socket.io-client/build/cjs/socket.js +909 -0
  260. package/node_modules/socket.io-client/build/cjs/url.d.ts +33 -0
  261. package/node_modules/socket.io-client/build/cjs/url.js +69 -0
  262. package/node_modules/socket.io-client/build/esm/browser-entrypoint.d.ts +2 -0
  263. package/node_modules/socket.io-client/build/esm/browser-entrypoint.js +2 -0
  264. package/node_modules/socket.io-client/build/esm/contrib/backo2.d.ts +12 -0
  265. package/node_modules/socket.io-client/build/esm/contrib/backo2.js +66 -0
  266. package/node_modules/socket.io-client/build/esm/index.d.ts +29 -0
  267. package/node_modules/socket.io-client/build/esm/index.js +58 -0
  268. package/node_modules/socket.io-client/build/esm/manager.d.ts +295 -0
  269. package/node_modules/socket.io-client/build/esm/manager.js +367 -0
  270. package/node_modules/socket.io-client/build/esm/on.d.ts +2 -0
  271. package/node_modules/socket.io-client/build/esm/on.js +6 -0
  272. package/node_modules/socket.io-client/build/esm/package.json +5 -0
  273. package/node_modules/socket.io-client/build/esm/socket.d.ts +593 -0
  274. package/node_modules/socket.io-client/build/esm/socket.js +880 -0
  275. package/node_modules/socket.io-client/build/esm/url.d.ts +33 -0
  276. package/node_modules/socket.io-client/build/esm/url.js +59 -0
  277. package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.d.ts +2 -0
  278. package/node_modules/socket.io-client/build/esm-debug/browser-entrypoint.js +2 -0
  279. package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.d.ts +12 -0
  280. package/node_modules/socket.io-client/build/esm-debug/contrib/backo2.js +66 -0
  281. package/node_modules/socket.io-client/build/esm-debug/index.d.ts +29 -0
  282. package/node_modules/socket.io-client/build/esm-debug/index.js +62 -0
  283. package/node_modules/socket.io-client/build/esm-debug/manager.d.ts +295 -0
  284. package/node_modules/socket.io-client/build/esm-debug/manager.js +386 -0
  285. package/node_modules/socket.io-client/build/esm-debug/on.d.ts +2 -0
  286. package/node_modules/socket.io-client/build/esm-debug/on.js +6 -0
  287. package/node_modules/socket.io-client/build/esm-debug/package.json +5 -0
  288. package/node_modules/socket.io-client/build/esm-debug/socket.d.ts +593 -0
  289. package/node_modules/socket.io-client/build/esm-debug/socket.js +902 -0
  290. package/node_modules/socket.io-client/build/esm-debug/url.d.ts +33 -0
  291. package/node_modules/socket.io-client/build/esm-debug/url.js +63 -0
  292. package/node_modules/socket.io-client/dist/socket.io.esm.min.js +7 -0
  293. package/node_modules/socket.io-client/dist/socket.io.esm.min.js.map +1 -0
  294. package/node_modules/socket.io-client/dist/socket.io.js +4955 -0
  295. package/node_modules/socket.io-client/dist/socket.io.js.map +1 -0
  296. package/node_modules/socket.io-client/dist/socket.io.min.js +7 -0
  297. package/node_modules/socket.io-client/dist/socket.io.min.js.map +1 -0
  298. package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js +7 -0
  299. package/node_modules/socket.io-client/dist/socket.io.msgpack.min.js.map +1 -0
  300. package/node_modules/socket.io-client/package.json +101 -0
  301. package/node_modules/socket.io-parser/LICENSE +20 -0
  302. package/node_modules/socket.io-parser/Readme.md +81 -0
  303. package/node_modules/socket.io-parser/build/cjs/binary.d.ts +20 -0
  304. package/node_modules/socket.io-parser/build/cjs/binary.js +87 -0
  305. package/node_modules/socket.io-parser/build/cjs/index.d.ts +91 -0
  306. package/node_modules/socket.io-parser/build/cjs/index.js +359 -0
  307. package/node_modules/socket.io-parser/build/cjs/is-binary.d.ts +7 -0
  308. package/node_modules/socket.io-parser/build/cjs/is-binary.js +54 -0
  309. package/node_modules/socket.io-parser/build/cjs/package.json +3 -0
  310. package/node_modules/socket.io-parser/build/esm/binary.d.ts +20 -0
  311. package/node_modules/socket.io-parser/build/esm/binary.js +83 -0
  312. package/node_modules/socket.io-parser/build/esm/index.d.ts +91 -0
  313. package/node_modules/socket.io-parser/build/esm/index.js +348 -0
  314. package/node_modules/socket.io-parser/build/esm/is-binary.d.ts +7 -0
  315. package/node_modules/socket.io-parser/build/esm/is-binary.js +50 -0
  316. package/node_modules/socket.io-parser/build/esm/package.json +3 -0
  317. package/node_modules/socket.io-parser/build/esm-debug/binary.d.ts +20 -0
  318. package/node_modules/socket.io-parser/build/esm-debug/binary.js +83 -0
  319. package/node_modules/socket.io-parser/build/esm-debug/index.d.ts +91 -0
  320. package/node_modules/socket.io-parser/build/esm-debug/index.js +353 -0
  321. package/node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts +7 -0
  322. package/node_modules/socket.io-parser/build/esm-debug/is-binary.js +50 -0
  323. package/node_modules/socket.io-parser/build/esm-debug/package.json +3 -0
  324. package/node_modules/socket.io-parser/package.json +44 -0
  325. package/node_modules/xmlhttprequest-ssl/LICENSE +22 -0
  326. package/node_modules/xmlhttprequest-ssl/README.md +67 -0
  327. package/node_modules/xmlhttprequest-ssl/lib/XMLHttpRequest.js +689 -0
  328. package/node_modules/xmlhttprequest-ssl/package.json +40 -0
  329. package/openclaw.plugin.json +17 -0
  330. package/package.json +61 -0
  331. package/skills/lightclaw-cron/SKILL.md +381 -0
@@ -0,0 +1,689 @@
1
+ /**
2
+ * Wrapper for built-in http.js to emulate the browser XMLHttpRequest object.
3
+ *
4
+ * This can be used with JS designed for browsers to improve reuse of code and
5
+ * allow the use of existing libraries.
6
+ *
7
+ * Usage: include("XMLHttpRequest.js") and use XMLHttpRequest per W3C specs.
8
+ *
9
+ * @author Dan DeFelippi <dan@driverdan.com>
10
+ * @contributor David Ellis <d.f.ellis@ieee.org>
11
+ * @license MIT
12
+ */
13
+
14
+ var fs = require('fs');
15
+ var Url = require('url');
16
+ var spawn = require('child_process').spawn;
17
+
18
+ /**
19
+ * Module exports.
20
+ */
21
+
22
+ module.exports = XMLHttpRequest;
23
+
24
+ // backwards-compat
25
+ XMLHttpRequest.XMLHttpRequest = XMLHttpRequest;
26
+
27
+ /**
28
+ * `XMLHttpRequest` constructor.
29
+ *
30
+ * Supported options for the `opts` object are:
31
+ *
32
+ * - `agent`: An http.Agent instance; http.globalAgent may be used; if 'undefined', agent usage is disabled
33
+ *
34
+ * @param {Object} opts optional "options" object
35
+ */
36
+
37
+ function XMLHttpRequest(opts) {
38
+ "use strict";
39
+
40
+ opts = opts || {};
41
+
42
+ /**
43
+ * Private variables
44
+ */
45
+ var self = this;
46
+ var http = require('http');
47
+ var https = require('https');
48
+
49
+ // Holds http.js objects
50
+ var request;
51
+ var response;
52
+
53
+ // Request settings
54
+ var settings = {};
55
+
56
+ // Disable header blacklist.
57
+ // Not part of XHR specs.
58
+ var disableHeaderCheck = false;
59
+
60
+ // Set some default headers
61
+ var defaultHeaders = {
62
+ "User-Agent": "node-XMLHttpRequest",
63
+ "Accept": "*/*"
64
+ };
65
+
66
+ var headers = Object.assign({}, defaultHeaders);
67
+
68
+ // These headers are not user setable.
69
+ // The following are allowed but banned in the spec:
70
+ // * user-agent
71
+ var forbiddenRequestHeaders = [
72
+ "accept-charset",
73
+ "accept-encoding",
74
+ "access-control-request-headers",
75
+ "access-control-request-method",
76
+ "connection",
77
+ "content-length",
78
+ "content-transfer-encoding",
79
+ "cookie",
80
+ "cookie2",
81
+ "date",
82
+ "expect",
83
+ "host",
84
+ "keep-alive",
85
+ "origin",
86
+ "referer",
87
+ "te",
88
+ "trailer",
89
+ "transfer-encoding",
90
+ "upgrade",
91
+ "via"
92
+ ];
93
+
94
+ // These request methods are not allowed
95
+ var forbiddenRequestMethods = [
96
+ "TRACE",
97
+ "TRACK",
98
+ "CONNECT"
99
+ ];
100
+
101
+ // Send flag
102
+ var sendFlag = false;
103
+ // Error flag, used when errors occur or abort is called
104
+ var errorFlag = false;
105
+ var abortedFlag = false;
106
+
107
+ // Event listeners
108
+ var listeners = {};
109
+
110
+ /**
111
+ * Constants
112
+ */
113
+
114
+ this.UNSENT = 0;
115
+ this.OPENED = 1;
116
+ this.HEADERS_RECEIVED = 2;
117
+ this.LOADING = 3;
118
+ this.DONE = 4;
119
+
120
+ /**
121
+ * Public vars
122
+ */
123
+
124
+ // Current state
125
+ this.readyState = this.UNSENT;
126
+
127
+ // default ready state change handler in case one is not set or is set late
128
+ this.onreadystatechange = null;
129
+
130
+ // Result & response
131
+ this.responseText = "";
132
+ this.responseXML = "";
133
+ this.response = Buffer.alloc(0);
134
+ this.status = null;
135
+ this.statusText = null;
136
+
137
+ /**
138
+ * Private methods
139
+ */
140
+
141
+ /**
142
+ * Check if the specified header is allowed.
143
+ *
144
+ * @param string header Header to validate
145
+ * @return boolean False if not allowed, otherwise true
146
+ */
147
+ var isAllowedHttpHeader = function(header) {
148
+ return disableHeaderCheck || (header && forbiddenRequestHeaders.indexOf(header.toLowerCase()) === -1);
149
+ };
150
+
151
+ /**
152
+ * Check if the specified method is allowed.
153
+ *
154
+ * @param string method Request method to validate
155
+ * @return boolean False if not allowed, otherwise true
156
+ */
157
+ var isAllowedHttpMethod = function(method) {
158
+ return (method && forbiddenRequestMethods.indexOf(method) === -1);
159
+ };
160
+
161
+ /**
162
+ * Public methods
163
+ */
164
+
165
+ /**
166
+ * Open the connection. Currently supports local server requests.
167
+ *
168
+ * @param string method Connection method (eg GET, POST)
169
+ * @param string url URL for the connection.
170
+ * @param boolean async Asynchronous connection. Default is true.
171
+ * @param string user Username for basic authentication (optional)
172
+ * @param string password Password for basic authentication (optional)
173
+ */
174
+ this.open = function(method, url, async, user, password) {
175
+ this.abort();
176
+ errorFlag = false;
177
+ abortedFlag = false;
178
+
179
+ // Check for valid request method
180
+ if (!isAllowedHttpMethod(method)) {
181
+ throw new Error("SecurityError: Request method not allowed");
182
+ }
183
+
184
+ settings = {
185
+ "method": method,
186
+ "url": url.toString(),
187
+ "async": (typeof async !== "boolean" ? true : async),
188
+ "user": user || null,
189
+ "password": password || null
190
+ };
191
+
192
+ setState(this.OPENED);
193
+ };
194
+
195
+ /**
196
+ * Disables or enables isAllowedHttpHeader() check the request. Enabled by default.
197
+ * This does not conform to the W3C spec.
198
+ *
199
+ * @param boolean state Enable or disable header checking.
200
+ */
201
+ this.setDisableHeaderCheck = function(state) {
202
+ disableHeaderCheck = state;
203
+ };
204
+
205
+ /**
206
+ * Sets a header for the request.
207
+ *
208
+ * @param string header Header name
209
+ * @param string value Header value
210
+ * @return boolean Header added
211
+ */
212
+ this.setRequestHeader = function(header, value) {
213
+ if (this.readyState != this.OPENED) {
214
+ throw new Error("INVALID_STATE_ERR: setRequestHeader can only be called when state is OPEN");
215
+ }
216
+ if (!isAllowedHttpHeader(header)) {
217
+ console.warn('Refused to set unsafe header "' + header + '"');
218
+ return false;
219
+ }
220
+ if (sendFlag) {
221
+ throw new Error("INVALID_STATE_ERR: send flag is true");
222
+ }
223
+ headers[header] = value;
224
+ return true;
225
+ };
226
+
227
+ /**
228
+ * Gets a header from the server response.
229
+ *
230
+ * @param string header Name of header to get.
231
+ * @return string Text of the header or null if it doesn't exist.
232
+ */
233
+ this.getResponseHeader = function(header) {
234
+ if (typeof header === "string"
235
+ && this.readyState > this.OPENED
236
+ && response.headers[header.toLowerCase()]
237
+ && !errorFlag
238
+ ) {
239
+ return response.headers[header.toLowerCase()];
240
+ }
241
+
242
+ return null;
243
+ };
244
+
245
+ /**
246
+ * Gets all the response headers.
247
+ *
248
+ * @return string A string with all response headers separated by CR+LF
249
+ */
250
+ this.getAllResponseHeaders = function() {
251
+ if (this.readyState < this.HEADERS_RECEIVED || errorFlag) {
252
+ return "";
253
+ }
254
+ var result = "";
255
+
256
+ for (var i in response.headers) {
257
+ // Cookie headers are excluded
258
+ if (i !== "set-cookie" && i !== "set-cookie2") {
259
+ result += i + ": " + response.headers[i] + "\r\n";
260
+ }
261
+ }
262
+ return result.substr(0, result.length - 2);
263
+ };
264
+
265
+ /**
266
+ * Gets a request header
267
+ *
268
+ * @param string name Name of header to get
269
+ * @return string Returns the request header or empty string if not set
270
+ */
271
+ this.getRequestHeader = function(name) {
272
+ // @TODO Make this case insensitive
273
+ if (typeof name === "string" && headers[name]) {
274
+ return headers[name];
275
+ }
276
+
277
+ return "";
278
+ };
279
+
280
+ /**
281
+ * Sends the request to the server.
282
+ *
283
+ * @param string data Optional data to send as request body.
284
+ */
285
+ this.send = function(data) {
286
+ if (this.readyState != this.OPENED) {
287
+ throw new Error("INVALID_STATE_ERR: connection must be opened before send() is called");
288
+ }
289
+
290
+ if (sendFlag) {
291
+ throw new Error("INVALID_STATE_ERR: send has already been called");
292
+ }
293
+
294
+ var ssl = false, local = false;
295
+ var url = Url.parse(settings.url);
296
+ var host;
297
+ // Determine the server
298
+ switch (url.protocol) {
299
+ case 'https:':
300
+ ssl = true;
301
+ // SSL & non-SSL both need host, no break here.
302
+ case 'http:':
303
+ host = url.hostname;
304
+ break;
305
+
306
+ case 'file:':
307
+ local = true;
308
+ break;
309
+
310
+ case undefined:
311
+ case '':
312
+ host = "localhost";
313
+ break;
314
+
315
+ default:
316
+ throw new Error("Protocol not supported.");
317
+ }
318
+
319
+ // Load files off the local filesystem (file://)
320
+ if (local) {
321
+ if (settings.method !== "GET") {
322
+ throw new Error("XMLHttpRequest: Only GET method is supported");
323
+ }
324
+
325
+ if (settings.async) {
326
+ fs.readFile(unescape(url.pathname), function(error, data) {
327
+ if (error) {
328
+ self.handleError(error, error.errno || -1);
329
+ } else {
330
+ self.status = 200;
331
+ self.responseText = data.toString('utf8');
332
+ self.response = data;
333
+ setState(self.DONE);
334
+ }
335
+ });
336
+ } else {
337
+ try {
338
+ this.response = fs.readFileSync(unescape(url.pathname));
339
+ this.responseText = this.response.toString('utf8');
340
+ this.status = 200;
341
+ setState(self.DONE);
342
+ } catch(e) {
343
+ this.handleError(e, e.errno || -1);
344
+ }
345
+ }
346
+
347
+ return;
348
+ }
349
+
350
+ // Default to port 80. If accessing localhost on another port be sure
351
+ // to use http://localhost:port/path
352
+ var port = url.port || (ssl ? 443 : 80);
353
+ // Add query string if one is used
354
+ var uri = url.pathname + (url.search ? url.search : '');
355
+
356
+ // Set the Host header or the server may reject the request
357
+ headers["Host"] = host;
358
+ if (!((ssl && port === 443) || port === 80)) {
359
+ headers["Host"] += ':' + url.port;
360
+ }
361
+
362
+ // Set Basic Auth if necessary
363
+ if (settings.user) {
364
+ if (typeof settings.password == "undefined") {
365
+ settings.password = "";
366
+ }
367
+ var authBuf = new Buffer(settings.user + ":" + settings.password);
368
+ headers["Authorization"] = "Basic " + authBuf.toString("base64");
369
+ }
370
+
371
+ // Set content length header
372
+ if (settings.method === "GET" || settings.method === "HEAD") {
373
+ data = null;
374
+ } else if (data) {
375
+ headers["Content-Length"] = Buffer.isBuffer(data) ? data.length : Buffer.byteLength(data);
376
+
377
+ var headersKeys = Object.keys(headers);
378
+ if (!headersKeys.some(function (h) { return h.toLowerCase() === 'content-type' })) {
379
+ headers["Content-Type"] = "text/plain;charset=UTF-8";
380
+ }
381
+ } else if (settings.method === "POST") {
382
+ // For a post with no data set Content-Length: 0.
383
+ // This is required by buggy servers that don't meet the specs.
384
+ headers["Content-Length"] = 0;
385
+ }
386
+
387
+ var agent = opts.agent || false;
388
+ var options = {
389
+ host: host,
390
+ port: port,
391
+ path: uri,
392
+ method: settings.method,
393
+ headers: headers,
394
+ agent: agent
395
+ };
396
+
397
+ if (ssl) {
398
+ options.pfx = opts.pfx;
399
+ options.key = opts.key;
400
+ options.passphrase = opts.passphrase;
401
+ options.cert = opts.cert;
402
+ options.ca = opts.ca;
403
+ options.ciphers = opts.ciphers;
404
+ options.rejectUnauthorized = opts.rejectUnauthorized === false ? false : true;
405
+ }
406
+
407
+ // Reset error flag
408
+ errorFlag = false;
409
+ // Handle async requests
410
+ if (settings.async) {
411
+ // Use the proper protocol
412
+ var doRequest = ssl ? https.request : http.request;
413
+
414
+ // Request is being sent, set send flag
415
+ sendFlag = true;
416
+
417
+ // As per spec, this is called here for historical reasons.
418
+ self.dispatchEvent("readystatechange");
419
+
420
+ // Handler for the response
421
+ var responseHandler = function(resp) {
422
+ // Set response var to the response we got back
423
+ // This is so it remains accessable outside this scope
424
+ response = resp;
425
+ // Check for redirect
426
+ // @TODO Prevent looped redirects
427
+ if (response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {
428
+ // Change URL to the redirect location
429
+ settings.url = response.headers.location;
430
+ var url = Url.parse(settings.url);
431
+ // Set host var in case it's used later
432
+ host = url.hostname;
433
+ // Options for the new request
434
+ var newOptions = {
435
+ hostname: url.hostname,
436
+ port: url.port,
437
+ path: url.path,
438
+ method: response.statusCode === 303 ? 'GET' : settings.method,
439
+ headers: headers
440
+ };
441
+
442
+ if (ssl) {
443
+ newOptions.pfx = opts.pfx;
444
+ newOptions.key = opts.key;
445
+ newOptions.passphrase = opts.passphrase;
446
+ newOptions.cert = opts.cert;
447
+ newOptions.ca = opts.ca;
448
+ newOptions.ciphers = opts.ciphers;
449
+ newOptions.rejectUnauthorized = opts.rejectUnauthorized === false ? false : true;
450
+ }
451
+
452
+ // Issue the new request
453
+ request = doRequest(newOptions, responseHandler).on('error', errorHandler);
454
+ request.end();
455
+ // @TODO Check if an XHR event needs to be fired here
456
+ return;
457
+ }
458
+
459
+ setState(self.HEADERS_RECEIVED);
460
+ self.status = response.statusCode;
461
+
462
+ response.on('data', function(chunk) {
463
+ // Make sure there's some data
464
+ if (chunk) {
465
+ var data = Buffer.from(chunk);
466
+ self.response = Buffer.concat([self.response, data]);
467
+ }
468
+ // Don't emit state changes if the connection has been aborted.
469
+ if (sendFlag) {
470
+ setState(self.LOADING);
471
+ }
472
+ });
473
+
474
+ response.on('end', function() {
475
+ if (sendFlag) {
476
+ // The sendFlag needs to be set before setState is called. Otherwise if we are chaining callbacks
477
+ // there can be a timing issue (the callback is called and a new call is made before the flag is reset).
478
+ sendFlag = false;
479
+ // Discard the 'end' event if the connection has been aborted
480
+ setState(self.DONE);
481
+ // Construct responseText from response
482
+ self.responseText = self.response.toString('utf8');
483
+ }
484
+ });
485
+
486
+ response.on('error', function(error) {
487
+ self.handleError(error);
488
+ });
489
+ }
490
+
491
+ // Error handler for the request
492
+ var errorHandler = function(error) {
493
+ // In the case of https://nodejs.org/api/http.html#requestreusedsocket triggering an ECONNRESET,
494
+ // don't fail the xhr request, attempt again.
495
+ if (request.reusedSocket && error.code === 'ECONNRESET')
496
+ return doRequest(options, responseHandler).on('error', errorHandler);
497
+ self.handleError(error);
498
+ }
499
+
500
+ // Create the request
501
+ request = doRequest(options, responseHandler).on('error', errorHandler);
502
+
503
+ if (opts.autoUnref) {
504
+ request.on('socket', (socket) => {
505
+ socket.unref();
506
+ });
507
+ }
508
+
509
+ // Node 0.4 and later won't accept empty data. Make sure it's needed.
510
+ if (data) {
511
+ request.write(data);
512
+ }
513
+
514
+ request.end();
515
+
516
+ self.dispatchEvent("loadstart");
517
+ } else { // Synchronous
518
+ // Create a temporary file for communication with the other Node process
519
+ var contentFile = ".node-xmlhttprequest-content-" + process.pid;
520
+ var syncFile = ".node-xmlhttprequest-sync-" + process.pid;
521
+ fs.writeFileSync(syncFile, "", "utf8");
522
+ // The async request the other Node process executes
523
+ var execString = "var http = require('http'), https = require('https'), fs = require('fs');"
524
+ + "var doRequest = http" + (ssl ? "s" : "") + ".request;"
525
+ + "var options = " + JSON.stringify(options) + ";"
526
+ + "var responseText = '';"
527
+ + "var responseData = Buffer.alloc(0);"
528
+ + "var req = doRequest(options, function(response) {"
529
+ + "response.on('data', function(chunk) {"
530
+ + " var data = Buffer.from(chunk);"
531
+ + " responseText += data.toString('utf8');"
532
+ + " responseData = Buffer.concat([responseData, data]);"
533
+ + "});"
534
+ + "response.on('end', function() {"
535
+ + "fs.writeFileSync('" + contentFile + "', JSON.stringify({err: null, data: {statusCode: response.statusCode, headers: response.headers, text: responseText, data: responseData.toString('base64')}}), 'utf8');"
536
+ + "fs.unlinkSync('" + syncFile + "');"
537
+ + "});"
538
+ + "response.on('error', function(error) {"
539
+ + "fs.writeFileSync('" + contentFile + "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');"
540
+ + "fs.unlinkSync('" + syncFile + "');"
541
+ + "});"
542
+ + "}).on('error', function(error) {"
543
+ + "fs.writeFileSync('" + contentFile + "', 'NODE-XMLHTTPREQUEST-ERROR:' + JSON.stringify(error), 'utf8');"
544
+ + "fs.unlinkSync('" + syncFile + "');"
545
+ + "});"
546
+ + (data ? "req.write('" + JSON.stringify(data).slice(1,-1).replace(/'/g, "\\'") + "');":"")
547
+ + "req.end();";
548
+ // Start the other Node Process, executing this string
549
+ var syncProc = spawn(process.argv[0], ["-e", execString]);
550
+ var statusText;
551
+ while(fs.existsSync(syncFile)) {
552
+ // Wait while the sync file is empty
553
+ }
554
+ self.responseText = fs.readFileSync(contentFile, 'utf8');
555
+ // Kill the child process once the file has data
556
+ syncProc.stdin.end();
557
+ // Remove the temporary file
558
+ fs.unlinkSync(contentFile);
559
+ if (self.responseText.match(/^NODE-XMLHTTPREQUEST-ERROR:/)) {
560
+ // If the file returned an error, handle it
561
+ var errorObj = JSON.parse(self.responseText.replace(/^NODE-XMLHTTPREQUEST-ERROR:/, ""));
562
+ self.handleError(errorObj, 503);
563
+ } else {
564
+ // If the file returned okay, parse its data and move to the DONE state
565
+ self.status = self.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:([0-9]*),.*/, "$1");
566
+ var resp = JSON.parse(self.responseText.replace(/^NODE-XMLHTTPREQUEST-STATUS:[0-9]*,(.*)/, "$1"));
567
+ response = {
568
+ statusCode: self.status,
569
+ headers: resp.data.headers
570
+ };
571
+ self.responseText = resp.data.text;
572
+ self.response = Buffer.from(resp.data.data, 'base64');
573
+ setState(self.DONE, true);
574
+ }
575
+ }
576
+ };
577
+
578
+ /**
579
+ * Called when an error is encountered to deal with it.
580
+ * @param status {number} HTTP status code to use rather than the default (0) for XHR errors.
581
+ */
582
+ this.handleError = function(error, status) {
583
+ this.status = status || 0;
584
+ this.statusText = error;
585
+ this.responseText = error.stack;
586
+ errorFlag = true;
587
+ setState(this.DONE);
588
+ };
589
+
590
+ /**
591
+ * Aborts a request.
592
+ */
593
+ this.abort = function() {
594
+ if (request) {
595
+ request.abort();
596
+ request = null;
597
+ }
598
+
599
+ headers = Object.assign({}, defaultHeaders);
600
+ this.responseText = "";
601
+ this.responseXML = "";
602
+ this.response = Buffer.alloc(0);
603
+
604
+ errorFlag = abortedFlag = true
605
+ if (this.readyState !== this.UNSENT
606
+ && (this.readyState !== this.OPENED || sendFlag)
607
+ && this.readyState !== this.DONE) {
608
+ sendFlag = false;
609
+ setState(this.DONE);
610
+ }
611
+ this.readyState = this.UNSENT;
612
+ };
613
+
614
+ /**
615
+ * Adds an event listener. Preferred method of binding to events.
616
+ */
617
+ this.addEventListener = function(event, callback) {
618
+ if (!(event in listeners)) {
619
+ listeners[event] = [];
620
+ }
621
+ // Currently allows duplicate callbacks. Should it?
622
+ listeners[event].push(callback);
623
+ };
624
+
625
+ /**
626
+ * Remove an event callback that has already been bound.
627
+ * Only works on the matching funciton, cannot be a copy.
628
+ */
629
+ this.removeEventListener = function(event, callback) {
630
+ if (event in listeners) {
631
+ // Filter will return a new array with the callback removed
632
+ listeners[event] = listeners[event].filter(function(ev) {
633
+ return ev !== callback;
634
+ });
635
+ }
636
+ };
637
+
638
+ /**
639
+ * Dispatch any events, including both "on" methods and events attached using addEventListener.
640
+ */
641
+ this.dispatchEvent = function (event) {
642
+ if (typeof self["on" + event] === "function") {
643
+ if (this.readyState === this.DONE && settings.async)
644
+ setTimeout(function() { self["on" + event]() }, 0)
645
+ else
646
+ self["on" + event]()
647
+ }
648
+ if (event in listeners) {
649
+ for (let i = 0, len = listeners[event].length; i < len; i++) {
650
+ if (this.readyState === this.DONE)
651
+ setTimeout(function() { listeners[event][i].call(self) }, 0)
652
+ else
653
+ listeners[event][i].call(self)
654
+ }
655
+ }
656
+ };
657
+
658
+ /**
659
+ * Changes readyState and calls onreadystatechange.
660
+ *
661
+ * @param int state New state
662
+ */
663
+ var setState = function(state) {
664
+ if ((self.readyState === state) || (self.readyState === self.UNSENT && abortedFlag))
665
+ return
666
+
667
+ self.readyState = state;
668
+
669
+ if (settings.async || self.readyState < self.OPENED || self.readyState === self.DONE) {
670
+ self.dispatchEvent("readystatechange");
671
+ }
672
+
673
+ if (self.readyState === self.DONE) {
674
+ let fire
675
+
676
+ if (abortedFlag)
677
+ fire = "abort"
678
+ else if (errorFlag)
679
+ fire = "error"
680
+ else
681
+ fire = "load"
682
+
683
+ self.dispatchEvent(fire)
684
+
685
+ // @TODO figure out InspectorInstrumentation::didLoadXHR(cookie)
686
+ self.dispatchEvent("loadend");
687
+ }
688
+ };
689
+ };