@corellium/corellium-cli 1.0.3 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (490) hide show
  1. package/README.md +5 -17
  2. package/docs/OVERVIEW.md +1 -1
  3. package/jenkinsbuild/build.sh +1 -1
  4. package/package.json +3 -3
  5. package/src/TrialAccount.js +76 -0
  6. package/src/commands/Client.js +2 -2
  7. package/src/commands/agent/Agent.js +10 -19
  8. package/src/commands/agent/apps.js +2 -1
  9. package/src/commands/agent/file.js +2 -1
  10. package/src/commands/agent/index.js +1 -0
  11. package/src/commands/agent/ready.js +43 -0
  12. package/src/commands/extensions/delete.js +2 -1
  13. package/src/commands/extensions/list.js +2 -1
  14. package/src/commands/extensions/load.js +2 -1
  15. package/src/commands/extensions/validate.js +2 -1
  16. package/src/commands/firmware/list.js +2 -1
  17. package/src/commands/firmware/load.js +2 -1
  18. package/src/commands/images/create.js +2 -1
  19. package/src/commands/images/delete.js +2 -1
  20. package/src/commands/images/list.js +2 -1
  21. package/src/commands/instances/Instance.js +27 -0
  22. package/src/commands/instances/create.js +11 -4
  23. package/src/commands/instances/delete.js +20 -5
  24. package/src/commands/instances/index.js +2 -1
  25. package/src/commands/instances/list.js +11 -5
  26. package/src/commands/instances/start.js +2 -1
  27. package/src/commands/instances/stop.js +2 -1
  28. package/src/commands/instances/upgrade.js +90 -0
  29. package/src/commands/login.js +14 -2
  30. package/src/commands/logout.js +2 -1
  31. package/src/commands/projects/create.js +2 -1
  32. package/src/commands/projects/delete.js +2 -1
  33. package/src/commands/projects/list.js +2 -1
  34. package/src/commands/signup.js +14 -5
  35. package/src/commands/webplayer/WebPlayer.js +2 -1
  36. package/src/commands/webplayer/create.js +8 -1
  37. package/src/commands/webplayer/destroy.js +2 -1
  38. package/src/commands/webplayer/list.js +19 -17
  39. package/src/commands/webplayer/login.js +2 -1
  40. package/src/error.js +14 -1
  41. package/src/logging.js +1 -1
  42. package/src/profile.js +12 -9
  43. package/src/resumable.js +1314 -0
  44. package/src/table.js +7 -2
  45. package/src/upload.js +64 -2
  46. package/src/utils.js +11 -4
  47. package/test/test.js +89 -0
  48. package/example/WebPlayerSample.js +0 -263
  49. package/node_modules/@corellium/corellium-api/README.md +0 -1210
  50. package/node_modules/@corellium/corellium-api/node_modules/form-data/License +0 -19
  51. package/node_modules/@corellium/corellium-api/node_modules/form-data/README.md.bak +0 -356
  52. package/node_modules/@corellium/corellium-api/node_modules/form-data/Readme.md +0 -356
  53. package/node_modules/@corellium/corellium-api/node_modules/form-data/index.d.ts +0 -62
  54. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/browser.js +0 -2
  55. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/form_data.js +0 -498
  56. package/node_modules/@corellium/corellium-api/node_modules/form-data/lib/populate.js +0 -10
  57. package/node_modules/@corellium/corellium-api/node_modules/form-data/package.json +0 -104
  58. package/node_modules/@corellium/corellium-api/node_modules/uuid/AUTHORS +0 -5
  59. package/node_modules/@corellium/corellium-api/node_modules/uuid/CHANGELOG.md +0 -119
  60. package/node_modules/@corellium/corellium-api/node_modules/uuid/LICENSE.md +0 -21
  61. package/node_modules/@corellium/corellium-api/node_modules/uuid/README.md +0 -276
  62. package/node_modules/@corellium/corellium-api/node_modules/uuid/bin/uuid +0 -65
  63. package/node_modules/@corellium/corellium-api/node_modules/uuid/index.js +0 -8
  64. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/bytesToUuid.js +0 -26
  65. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5-browser.js +0 -216
  66. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/md5.js +0 -25
  67. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng-browser.js +0 -34
  68. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/rng.js +0 -8
  69. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1-browser.js +0 -89
  70. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/sha1.js +0 -25
  71. package/node_modules/@corellium/corellium-api/node_modules/uuid/lib/v35.js +0 -57
  72. package/node_modules/@corellium/corellium-api/node_modules/uuid/package.json +0 -103
  73. package/node_modules/@corellium/corellium-api/node_modules/uuid/v1.js +0 -109
  74. package/node_modules/@corellium/corellium-api/node_modules/uuid/v3.js +0 -4
  75. package/node_modules/@corellium/corellium-api/node_modules/uuid/v4.js +0 -29
  76. package/node_modules/@corellium/corellium-api/node_modules/uuid/v5.js +0 -3
  77. package/node_modules/@corellium/corellium-api/package.json +0 -106
  78. package/node_modules/@corellium/corellium-api/resumable.js +0 -1312
  79. package/node_modules/@corellium/corellium-api/src/agent.js +0 -962
  80. package/node_modules/@corellium/corellium-api/src/corellium.js +0 -444
  81. package/node_modules/@corellium/corellium-api/src/images.js +0 -131
  82. package/node_modules/@corellium/corellium-api/src/input.js +0 -178
  83. package/node_modules/@corellium/corellium-api/src/instance-updater.js +0 -56
  84. package/node_modules/@corellium/corellium-api/src/instance.js +0 -1031
  85. package/node_modules/@corellium/corellium-api/src/netmon.js +0 -308
  86. package/node_modules/@corellium/corellium-api/src/project.js +0 -393
  87. package/node_modules/@corellium/corellium-api/src/role.js +0 -65
  88. package/node_modules/@corellium/corellium-api/src/snapshot.js +0 -77
  89. package/node_modules/@corellium/corellium-api/src/team.js +0 -29
  90. package/node_modules/@corellium/corellium-api/src/user.js +0 -51
  91. package/node_modules/@corellium/corellium-api/src/util/fetch.js +0 -62
  92. package/node_modules/@corellium/corellium-api/src/util/sleep.js +0 -7
  93. package/node_modules/@corellium/corellium-api/test/integration-tests.js +0 -1292
  94. package/node_modules/@corellium/corellium-api/test/root-hook-set-flag-if-test-failed.js +0 -7
  95. package/node_modules/async-limiter/.eslintignore +0 -2
  96. package/node_modules/async-limiter/.nycrc +0 -10
  97. package/node_modules/async-limiter/.travis.yml +0 -9
  98. package/node_modules/async-limiter/LICENSE +0 -8
  99. package/node_modules/async-limiter/index.js +0 -67
  100. package/node_modules/async-limiter/package.json +0 -72
  101. package/node_modules/async-limiter/readme.md +0 -132
  102. package/node_modules/buffer-crc32/LICENSE +0 -19
  103. package/node_modules/buffer-crc32/README.md +0 -47
  104. package/node_modules/buffer-crc32/index.js +0 -111
  105. package/node_modules/buffer-crc32/package.json +0 -72
  106. package/node_modules/cross-fetch/LICENSE +0 -21
  107. package/node_modules/cross-fetch/README.md +0 -169
  108. package/node_modules/cross-fetch/dist/browser-polyfill.js +0 -532
  109. package/node_modules/cross-fetch/dist/browser-ponyfill.js +0 -554
  110. package/node_modules/cross-fetch/dist/cross-fetch.js +0 -2
  111. package/node_modules/cross-fetch/dist/cross-fetch.js.map +0 -1
  112. package/node_modules/cross-fetch/dist/node-polyfill.js +0 -11
  113. package/node_modules/cross-fetch/dist/node-ponyfill.js +0 -22
  114. package/node_modules/cross-fetch/dist/react-native-polyfill.js +0 -12
  115. package/node_modules/cross-fetch/dist/react-native-ponyfill.js +0 -6
  116. package/node_modules/cross-fetch/index.d.ts +0 -14
  117. package/node_modules/cross-fetch/package.json +0 -160
  118. package/node_modules/cross-fetch/polyfill/package.json +0 -8
  119. package/node_modules/duplexify/.travis.yml +0 -6
  120. package/node_modules/duplexify/LICENSE +0 -21
  121. package/node_modules/duplexify/README.md +0 -97
  122. package/node_modules/duplexify/example.js +0 -21
  123. package/node_modules/duplexify/index.js +0 -234
  124. package/node_modules/duplexify/package.json +0 -69
  125. package/node_modules/duplexify/test.js +0 -295
  126. package/node_modules/end-of-stream/LICENSE +0 -21
  127. package/node_modules/end-of-stream/README.md +0 -54
  128. package/node_modules/end-of-stream/index.js +0 -94
  129. package/node_modules/end-of-stream/package.json +0 -69
  130. package/node_modules/fast-stable-stringify/.npmignore +0 -4
  131. package/node_modules/fast-stable-stringify/.travis.yml +0 -10
  132. package/node_modules/fast-stable-stringify/LICENSE +0 -21
  133. package/node_modules/fast-stable-stringify/README.md +0 -81
  134. package/node_modules/fast-stable-stringify/cli/files-to-comparison-results.js +0 -67
  135. package/node_modules/fast-stable-stringify/cli/format-table.js +0 -70
  136. package/node_modules/fast-stable-stringify/cli/index.js +0 -19
  137. package/node_modules/fast-stable-stringify/fixtures/index.js +0 -5
  138. package/node_modules/fast-stable-stringify/fixtures/input-data-types.js +0 -191
  139. package/node_modules/fast-stable-stringify/fixtures/log-result.json +0 -22
  140. package/node_modules/fast-stable-stringify/fixtures/log.txt +0 -24
  141. package/node_modules/fast-stable-stringify/index.js +0 -73
  142. package/node_modules/fast-stable-stringify/karma.conf.js +0 -124
  143. package/node_modules/fast-stable-stringify/karma.conf.travis.js +0 -95
  144. package/node_modules/fast-stable-stringify/package.json +0 -77
  145. package/node_modules/fast-stable-stringify/results/escape-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  146. package/node_modules/fast-stable-stringify/results/escape-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  147. package/node_modules/fast-stable-stringify/results/escape-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  148. package/node_modules/fast-stable-stringify/results/escape-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  149. package/node_modules/fast-stable-stringify/results/escape-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  150. package/node_modules/fast-stable-stringify/results/escape-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  151. package/node_modules/fast-stable-stringify/results/escape-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  152. package/node_modules/fast-stable-stringify/results/escape-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  153. package/node_modules/fast-stable-stringify/results/escape-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  154. package/node_modules/fast-stable-stringify/results/escape-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -57
  155. package/node_modules/fast-stable-stringify/results/escape-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -57
  156. package/node_modules/fast-stable-stringify/results/escape-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -57
  157. package/node_modules/fast-stable-stringify/results/escape-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -57
  158. package/node_modules/fast-stable-stringify/results/escape-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -57
  159. package/node_modules/fast-stable-stringify/results/escape-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -57
  160. package/node_modules/fast-stable-stringify/results/escape-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -57
  161. package/node_modules/fast-stable-stringify/results/escape-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -57
  162. package/node_modules/fast-stable-stringify/results/escape-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -57
  163. package/node_modules/fast-stable-stringify/results/escape.md +0 -20
  164. package/node_modules/fast-stable-stringify/results/itar-long/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  165. package/node_modules/fast-stable-stringify/results/itar-long/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  166. package/node_modules/fast-stable-stringify/results/itar-long/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  167. package/node_modules/fast-stable-stringify/results/itar-long/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  168. package/node_modules/fast-stable-stringify/results/itar-long/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  169. package/node_modules/fast-stable-stringify/results/itar-long/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  170. package/node_modules/fast-stable-stringify/results/itar-long/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  171. package/node_modules/fast-stable-stringify/results/itar-long/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  172. package/node_modules/fast-stable-stringify/results/itar-long/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  173. package/node_modules/fast-stable-stringify/results/itar-short/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  174. package/node_modules/fast-stable-stringify/results/itar-short/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  175. package/node_modules/fast-stable-stringify/results/itar-short/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  176. package/node_modules/fast-stable-stringify/results/itar-short/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  177. package/node_modules/fast-stable-stringify/results/itar-short/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  178. package/node_modules/fast-stable-stringify/results/itar-short/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  179. package/node_modules/fast-stable-stringify/results/itar-short/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  180. package/node_modules/fast-stable-stringify/results/itar-short/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  181. package/node_modules/fast-stable-stringify/results/itar-short/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  182. package/node_modules/fast-stable-stringify/results/itar.md +0 -20
  183. package/node_modules/fast-stable-stringify/results/iter/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -35
  184. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 39.0.0 (Android 5.1.1).json +0 -35
  185. package/node_modules/fast-stable-stringify/results/iter/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -35
  186. package/node_modules/fast-stable-stringify/results/iter/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -35
  187. package/node_modules/fast-stable-stringify/results/iter/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -35
  188. package/node_modules/fast-stable-stringify/results/iter/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  189. package/node_modules/fast-stable-stringify/results/iter/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  190. package/node_modules/fast-stable-stringify/results/iter/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  191. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -35
  192. package/node_modules/fast-stable-stringify/results/iter/Mobile Safari 9.0.0 (iOS 9.2.0).json +0 -35
  193. package/node_modules/fast-stable-stringify/results/iter/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -35
  194. package/node_modules/fast-stable-stringify/results/iter/Safari 9.1.2 (Mac OS X 10.11.6).json +0 -35
  195. package/node_modules/fast-stable-stringify/results/iter.md +0 -14
  196. package/node_modules/fast-stable-stringify/results/libs/Chrome 60.0.3112 (Windows 7 0.0.0).json +0 -46
  197. package/node_modules/fast-stable-stringify/results/libs/Chrome Mobile 55.0.2883 (Android 6.0.0).json +0 -46
  198. package/node_modules/fast-stable-stringify/results/libs/Edge 14.14393.0 (Windows 10 0.0.0).json +0 -46
  199. package/node_modules/fast-stable-stringify/results/libs/Firefox 54.0.0 (Windows 7 0.0.0).json +0 -46
  200. package/node_modules/fast-stable-stringify/results/libs/IE 10.0.0 (Windows 7 0.0.0).json +0 -35
  201. package/node_modules/fast-stable-stringify/results/libs/IE 11.0.0 (Windows 7 0.0.0).json +0 -35
  202. package/node_modules/fast-stable-stringify/results/libs/IE 9.0.0 (Windows 7 0.0.0).json +0 -35
  203. package/node_modules/fast-stable-stringify/results/libs/Mobile Safari 10.0.0 (iOS 10.3.0).json +0 -46
  204. package/node_modules/fast-stable-stringify/results/libs/Safari 10.0.1 (Mac OS X 10.12.1).json +0 -46
  205. package/node_modules/fast-stable-stringify/results/libs.md +0 -15
  206. package/node_modules/fast-stable-stringify/test/escape-long.js +0 -147
  207. package/node_modules/fast-stable-stringify/test/escape-short.js +0 -147
  208. package/node_modules/fast-stable-stringify/test/index.js +0 -6
  209. package/node_modules/fast-stable-stringify/test/itar-long.js +0 -52
  210. package/node_modules/fast-stable-stringify/test/itar-short.js +0 -52
  211. package/node_modules/fast-stable-stringify/test/iter.js +0 -84
  212. package/node_modules/fast-stable-stringify/test/libs.js +0 -57
  213. package/node_modules/fast-stable-stringify/test/travis.js +0 -43
  214. package/node_modules/fast-stable-stringify/test/validate.js +0 -24
  215. package/node_modules/fast-stable-stringify/util/eachRecursive.js +0 -9
  216. package/node_modules/fast-stable-stringify/util/get-git-hash-sync.js +0 -21
  217. package/node_modules/fast-stable-stringify/util/get-lib-info.js +0 -22
  218. package/node_modules/fast-stable-stringify/util/object-path.js +0 -47
  219. package/node_modules/fast-stable-stringify/v8-profile/bench.js +0 -8
  220. package/node_modules/fast-stable-stringify/v8-profile/run.sh +0 -2
  221. package/node_modules/fast-stable-stringify/zuul-local.sh +0 -2
  222. package/node_modules/hkdf/.npmignore +0 -2
  223. package/node_modules/hkdf/README.md +0 -23
  224. package/node_modules/hkdf/hkdf.py +0 -171
  225. package/node_modules/hkdf/hkdf.pyc +0 -0
  226. package/node_modules/hkdf/index.js +0 -1
  227. package/node_modules/hkdf/lib/hkdf.js +0 -55
  228. package/node_modules/hkdf/package.json +0 -55
  229. package/node_modules/hkdf/scripts/run_all_tests.sh +0 -19
  230. package/node_modules/hkdf/test/all-test.js +0 -79
  231. package/node_modules/hkdf/test.py +0 -11
  232. package/node_modules/immediate/LICENSE.txt +0 -20
  233. package/node_modules/immediate/README.md +0 -93
  234. package/node_modules/immediate/dist/immediate.js +0 -75
  235. package/node_modules/immediate/dist/immediate.min.js +0 -1
  236. package/node_modules/immediate/lib/browser.js +0 -69
  237. package/node_modules/immediate/lib/index.js +0 -73
  238. package/node_modules/immediate/package.json +0 -86
  239. package/node_modules/isarray/.npmignore +0 -1
  240. package/node_modules/isarray/.travis.yml +0 -4
  241. package/node_modules/isarray/Makefile +0 -6
  242. package/node_modules/isarray/README.md +0 -60
  243. package/node_modules/isarray/component.json +0 -19
  244. package/node_modules/isarray/index.js +0 -5
  245. package/node_modules/isarray/package.json +0 -77
  246. package/node_modules/isarray/test.js +0 -20
  247. package/node_modules/jszip/.codeclimate.yml +0 -16
  248. package/node_modules/jszip/.editorconfig +0 -8
  249. package/node_modules/jszip/.github/workflows/pr.yaml +0 -41
  250. package/node_modules/jszip/.jshintignore +0 -1
  251. package/node_modules/jszip/.jshintrc +0 -21
  252. package/node_modules/jszip/.travis.yml +0 -17
  253. package/node_modules/jszip/CHANGES.md +0 -192
  254. package/node_modules/jszip/LICENSE.markdown +0 -651
  255. package/node_modules/jszip/README.markdown +0 -33
  256. package/node_modules/jszip/dist/jszip.js +0 -11583
  257. package/node_modules/jszip/dist/jszip.min.js +0 -13
  258. package/node_modules/jszip/index.d.ts +0 -335
  259. package/node_modules/jszip/lib/base64.js +0 -106
  260. package/node_modules/jszip/lib/compressedObject.js +0 -74
  261. package/node_modules/jszip/lib/compressions.js +0 -14
  262. package/node_modules/jszip/lib/crc32.js +0 -77
  263. package/node_modules/jszip/lib/defaults.js +0 -11
  264. package/node_modules/jszip/lib/external.js +0 -19
  265. package/node_modules/jszip/lib/flate.js +0 -85
  266. package/node_modules/jszip/lib/generate/ZipFileWorker.js +0 -540
  267. package/node_modules/jszip/lib/generate/index.js +0 -57
  268. package/node_modules/jszip/lib/index.js +0 -55
  269. package/node_modules/jszip/lib/license_header.js +0 -11
  270. package/node_modules/jszip/lib/load.js +0 -88
  271. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +0 -74
  272. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +0 -42
  273. package/node_modules/jszip/lib/nodejsUtils.js +0 -57
  274. package/node_modules/jszip/lib/object.js +0 -389
  275. package/node_modules/jszip/lib/readable-stream-browser.js +0 -9
  276. package/node_modules/jszip/lib/reader/ArrayReader.js +0 -57
  277. package/node_modules/jszip/lib/reader/DataReader.js +0 -116
  278. package/node_modules/jszip/lib/reader/NodeBufferReader.js +0 -19
  279. package/node_modules/jszip/lib/reader/StringReader.js +0 -38
  280. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +0 -22
  281. package/node_modules/jszip/lib/reader/readerFor.js +0 -28
  282. package/node_modules/jszip/lib/signature.js +0 -7
  283. package/node_modules/jszip/lib/stream/ConvertWorker.js +0 -26
  284. package/node_modules/jszip/lib/stream/Crc32Probe.js +0 -24
  285. package/node_modules/jszip/lib/stream/DataLengthProbe.js +0 -29
  286. package/node_modules/jszip/lib/stream/DataWorker.js +0 -116
  287. package/node_modules/jszip/lib/stream/GenericWorker.js +0 -263
  288. package/node_modules/jszip/lib/stream/StreamHelper.js +0 -212
  289. package/node_modules/jszip/lib/support.js +0 -38
  290. package/node_modules/jszip/lib/utf8.js +0 -275
  291. package/node_modules/jszip/lib/utils.js +0 -501
  292. package/node_modules/jszip/lib/zipEntries.js +0 -262
  293. package/node_modules/jszip/lib/zipEntry.js +0 -294
  294. package/node_modules/jszip/lib/zipObject.js +0 -133
  295. package/node_modules/jszip/package.json +0 -99
  296. package/node_modules/jszip/tsconfig.json +0 -101
  297. package/node_modules/jszip/vendor/FileSaver.js +0 -247
  298. package/node_modules/lie/README.md +0 -62
  299. package/node_modules/lie/dist/lie.js +0 -350
  300. package/node_modules/lie/dist/lie.min.js +0 -1
  301. package/node_modules/lie/dist/lie.polyfill.js +0 -358
  302. package/node_modules/lie/dist/lie.polyfill.min.js +0 -1
  303. package/node_modules/lie/lib/browser.js +0 -273
  304. package/node_modules/lie/lib/index.js +0 -298
  305. package/node_modules/lie/license.md +0 -7
  306. package/node_modules/lie/lie.d.ts +0 -244
  307. package/node_modules/lie/package.json +0 -98
  308. package/node_modules/lie/polyfill.js +0 -4
  309. package/node_modules/p-finally/index.js +0 -15
  310. package/node_modules/p-finally/license +0 -21
  311. package/node_modules/p-finally/package.json +0 -77
  312. package/node_modules/p-finally/readme.md +0 -47
  313. package/node_modules/p-retry/index.js +0 -52
  314. package/node_modules/p-retry/license +0 -9
  315. package/node_modules/p-retry/package.json +0 -83
  316. package/node_modules/p-retry/readme.md +0 -109
  317. package/node_modules/p-timeout/index.d.ts +0 -72
  318. package/node_modules/p-timeout/index.js +0 -57
  319. package/node_modules/p-timeout/license +0 -9
  320. package/node_modules/p-timeout/package.json +0 -80
  321. package/node_modules/p-timeout/readme.md +0 -87
  322. package/node_modules/pako/CHANGELOG.md +0 -164
  323. package/node_modules/pako/LICENSE +0 -21
  324. package/node_modules/pako/README.md +0 -191
  325. package/node_modules/pako/dist/pako.js +0 -6818
  326. package/node_modules/pako/dist/pako.min.js +0 -1
  327. package/node_modules/pako/dist/pako_deflate.js +0 -3997
  328. package/node_modules/pako/dist/pako_deflate.min.js +0 -1
  329. package/node_modules/pako/dist/pako_inflate.js +0 -3300
  330. package/node_modules/pako/dist/pako_inflate.min.js +0 -1
  331. package/node_modules/pako/index.js +0 -14
  332. package/node_modules/pako/lib/deflate.js +0 -400
  333. package/node_modules/pako/lib/inflate.js +0 -423
  334. package/node_modules/pako/lib/utils/common.js +0 -105
  335. package/node_modules/pako/lib/utils/strings.js +0 -187
  336. package/node_modules/pako/lib/zlib/README +0 -59
  337. package/node_modules/pako/lib/zlib/adler32.js +0 -51
  338. package/node_modules/pako/lib/zlib/constants.js +0 -68
  339. package/node_modules/pako/lib/zlib/crc32.js +0 -59
  340. package/node_modules/pako/lib/zlib/deflate.js +0 -1874
  341. package/node_modules/pako/lib/zlib/gzheader.js +0 -58
  342. package/node_modules/pako/lib/zlib/inffast.js +0 -345
  343. package/node_modules/pako/lib/zlib/inflate.js +0 -1556
  344. package/node_modules/pako/lib/zlib/inftrees.js +0 -343
  345. package/node_modules/pako/lib/zlib/messages.js +0 -32
  346. package/node_modules/pako/lib/zlib/trees.js +0 -1222
  347. package/node_modules/pako/lib/zlib/zstream.js +0 -47
  348. package/node_modules/pako/package.json +0 -94
  349. package/node_modules/process-nextick-args/index.js +0 -45
  350. package/node_modules/process-nextick-args/license.md +0 -19
  351. package/node_modules/process-nextick-args/package.json +0 -53
  352. package/node_modules/process-nextick-args/readme.md +0 -18
  353. package/node_modules/readable-stream/.travis.yml +0 -34
  354. package/node_modules/readable-stream/CONTRIBUTING.md +0 -38
  355. package/node_modules/readable-stream/GOVERNANCE.md +0 -136
  356. package/node_modules/readable-stream/LICENSE +0 -47
  357. package/node_modules/readable-stream/README.md +0 -58
  358. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +0 -60
  359. package/node_modules/readable-stream/duplex-browser.js +0 -1
  360. package/node_modules/readable-stream/duplex.js +0 -1
  361. package/node_modules/readable-stream/lib/_stream_duplex.js +0 -131
  362. package/node_modules/readable-stream/lib/_stream_passthrough.js +0 -47
  363. package/node_modules/readable-stream/lib/_stream_readable.js +0 -1019
  364. package/node_modules/readable-stream/lib/_stream_transform.js +0 -214
  365. package/node_modules/readable-stream/lib/_stream_writable.js +0 -687
  366. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +0 -79
  367. package/node_modules/readable-stream/lib/internal/streams/destroy.js +0 -74
  368. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +0 -1
  369. package/node_modules/readable-stream/lib/internal/streams/stream.js +0 -1
  370. package/node_modules/readable-stream/package.json +0 -86
  371. package/node_modules/readable-stream/passthrough.js +0 -1
  372. package/node_modules/readable-stream/readable-browser.js +0 -7
  373. package/node_modules/readable-stream/readable.js +0 -19
  374. package/node_modules/readable-stream/transform.js +0 -1
  375. package/node_modules/readable-stream/writable-browser.js +0 -1
  376. package/node_modules/readable-stream/writable.js +0 -8
  377. package/node_modules/retry/.npmignore +0 -3
  378. package/node_modules/retry/.travis.yml +0 -15
  379. package/node_modules/retry/License +0 -21
  380. package/node_modules/retry/Makefile +0 -18
  381. package/node_modules/retry/README.md +0 -227
  382. package/node_modules/retry/equation.gif +0 -0
  383. package/node_modules/retry/example/dns.js +0 -31
  384. package/node_modules/retry/example/stop.js +0 -40
  385. package/node_modules/retry/index.js +0 -1
  386. package/node_modules/retry/lib/retry.js +0 -100
  387. package/node_modules/retry/lib/retry_operation.js +0 -158
  388. package/node_modules/retry/package.json +0 -67
  389. package/node_modules/retry/test/common.js +0 -10
  390. package/node_modules/retry/test/integration/test-forever.js +0 -24
  391. package/node_modules/retry/test/integration/test-retry-operation.js +0 -258
  392. package/node_modules/retry/test/integration/test-retry-wrap.js +0 -101
  393. package/node_modules/retry/test/integration/test-timeouts.js +0 -69
  394. package/node_modules/setimmediate/LICENSE.txt +0 -20
  395. package/node_modules/setimmediate/package.json +0 -77
  396. package/node_modules/setimmediate/setImmediate.js +0 -186
  397. package/node_modules/split/.npmignore +0 -3
  398. package/node_modules/split/.travis.yml +0 -3
  399. package/node_modules/split/LICENCE +0 -22
  400. package/node_modules/split/examples/pretty.js +0 -26
  401. package/node_modules/split/index.js +0 -63
  402. package/node_modules/split/package.json +0 -65
  403. package/node_modules/split/readme.markdown +0 -72
  404. package/node_modules/split/test/options.asynct.js +0 -46
  405. package/node_modules/split/test/partitioned_unicode.js +0 -34
  406. package/node_modules/split/test/split.asynct.js +0 -137
  407. package/node_modules/split/test/try_catch.asynct.js +0 -51
  408. package/node_modules/stream-shift/.travis.yml +0 -6
  409. package/node_modules/stream-shift/LICENSE +0 -21
  410. package/node_modules/stream-shift/README.md +0 -25
  411. package/node_modules/stream-shift/index.js +0 -20
  412. package/node_modules/stream-shift/package.json +0 -56
  413. package/node_modules/stream-shift/test.js +0 -48
  414. package/node_modules/ultron/LICENSE +0 -22
  415. package/node_modules/ultron/README.md +0 -113
  416. package/node_modules/ultron/index.js +0 -136
  417. package/node_modules/ultron/package.json +0 -71
  418. package/node_modules/websocket-stream/LICENSE +0 -8
  419. package/node_modules/websocket-stream/collaborators.md +0 -11
  420. package/node_modules/websocket-stream/echo-server.js +0 -51
  421. package/node_modules/websocket-stream/index.d.ts +0 -27
  422. package/node_modules/websocket-stream/index.js +0 -6
  423. package/node_modules/websocket-stream/package.json +0 -82
  424. package/node_modules/websocket-stream/readme.md +0 -148
  425. package/node_modules/websocket-stream/server.js +0 -29
  426. package/node_modules/websocket-stream/stream.js +0 -189
  427. package/node_modules/websocket-stream/test-client.js +0 -74
  428. package/node_modules/websocket-stream/test-server.js +0 -56
  429. package/node_modules/websocket-stream/test.js +0 -338
  430. package/node_modules/websocket-stream/ts-tests.ts +0 -69
  431. package/node_modules/websocket-stream/ws-fallback.js +0 -12
  432. package/node_modules/ws/LICENSE +0 -21
  433. package/node_modules/ws/README.md +0 -341
  434. package/node_modules/ws/index.js +0 -15
  435. package/node_modules/ws/lib/.DS_Store +0 -0
  436. package/node_modules/ws/lib/BufferUtil.js +0 -71
  437. package/node_modules/ws/lib/Constants.js +0 -10
  438. package/node_modules/ws/lib/ErrorCodes.js +0 -28
  439. package/node_modules/ws/lib/EventTarget.js +0 -151
  440. package/node_modules/ws/lib/Extensions.js +0 -203
  441. package/node_modules/ws/lib/PerMessageDeflate.js +0 -507
  442. package/node_modules/ws/lib/Receiver.js +0 -553
  443. package/node_modules/ws/lib/Sender.js +0 -412
  444. package/node_modules/ws/lib/Validation.js +0 -17
  445. package/node_modules/ws/lib/WebSocket.js +0 -717
  446. package/node_modules/ws/lib/WebSocketServer.js +0 -326
  447. package/node_modules/ws/package.json +0 -83
  448. package/node_modules/xhr2/CONTRIBUTING.md +0 -33
  449. package/node_modules/xhr2/Cakefile +0 -131
  450. package/node_modules/xhr2/LICENSE.txt +0 -19
  451. package/node_modules/xhr2/README.md +0 -142
  452. package/node_modules/xhr2/lib/browser.js +0 -1
  453. package/node_modules/xhr2/lib/xhr2.js +0 -1244
  454. package/node_modules/xhr2/package.json +0 -103
  455. package/node_modules/xhr2/src/000-xml_http_request_event_target.coffee +0 -89
  456. package/node_modules/xhr2/src/001-xml_http_request.coffee +0 -781
  457. package/node_modules/xhr2/src/errors.coffee +0 -31
  458. package/node_modules/xhr2/src/progress_event.coffee +0 -39
  459. package/node_modules/xhr2/src/xml_http_request_upload.coffee +0 -95
  460. package/node_modules/xhr2/test/fixtures/hello.json +0 -1
  461. package/node_modules/xhr2/test/fixtures/hello.txt +0 -1
  462. package/node_modules/xhr2/test/fixtures/xhr2.png +0 -0
  463. package/node_modules/xhr2/test/html/browser_test.html +0 -30
  464. package/node_modules/xhr2/test/src/event_target_test.coffee +0 -85
  465. package/node_modules/xhr2/test/src/events_test.coffee +0 -204
  466. package/node_modules/xhr2/test/src/headers_test.coffee +0 -168
  467. package/node_modules/xhr2/test/src/helpers/browser_mocha_runner.coffee +0 -10
  468. package/node_modules/xhr2/test/src/helpers/browser_mocha_setup.coffee +0 -1
  469. package/node_modules/xhr2/test/src/helpers/setup.coffee +0 -38
  470. package/node_modules/xhr2/test/src/helpers/xhr_server.coffee +0 -156
  471. package/node_modules/xhr2/test/src/nodejs_set_test.coffee +0 -162
  472. package/node_modules/xhr2/test/src/redirect_test.coffee +0 -57
  473. package/node_modules/xhr2/test/src/response_type_test.coffee +0 -88
  474. package/node_modules/xhr2/test/src/responseurl_test.coffee +0 -18
  475. package/node_modules/xhr2/test/src/send_test.coffee +0 -89
  476. package/node_modules/xhr2/test/src/status_test.coffee +0 -47
  477. package/node_modules/xhr2/test/src/xhr_test.coffee +0 -102
  478. package/node_modules/xtend/.jshintrc +0 -30
  479. package/node_modules/xtend/LICENSE +0 -20
  480. package/node_modules/xtend/README.md +0 -32
  481. package/node_modules/xtend/immutable.js +0 -19
  482. package/node_modules/xtend/mutable.js +0 -17
  483. package/node_modules/xtend/package.json +0 -89
  484. package/node_modules/xtend/test.js +0 -103
  485. package/node_modules/yazl/LICENSE +0 -21
  486. package/node_modules/yazl/README.md +0 -389
  487. package/node_modules/yazl/index.js +0 -749
  488. package/node_modules/yazl/package.json +0 -69
  489. package/src/commands/CorelliumAPI.js +0 -76
  490. package/src/subscriberInvite.js +0 -140
@@ -1,717 +0,0 @@
1
- /*!
2
- * ws: a node.js websocket client
3
- * Copyright(c) 2011 Einar Otto Stangvik <einaros@gmail.com>
4
- * MIT Licensed
5
- */
6
-
7
- 'use strict';
8
-
9
- const EventEmitter = require('events');
10
- const crypto = require('crypto');
11
- const Ultron = require('ultron');
12
- const https = require('https');
13
- const http = require('http');
14
- const url = require('url');
15
-
16
- const PerMessageDeflate = require('./PerMessageDeflate');
17
- const EventTarget = require('./EventTarget');
18
- const Extensions = require('./Extensions');
19
- const constants = require('./Constants');
20
- const Receiver = require('./Receiver');
21
- const Sender = require('./Sender');
22
-
23
- const protocolVersions = [8, 13];
24
- const closeTimeout = 30 * 1000; // Allow 30 seconds to terminate the connection cleanly.
25
-
26
- /**
27
- * Class representing a WebSocket.
28
- *
29
- * @extends EventEmitter
30
- */
31
- class WebSocket extends EventEmitter {
32
- /**
33
- * Create a new `WebSocket`.
34
- *
35
- * @param {String} address The URL to which to connect
36
- * @param {(String|String[])} protocols The subprotocols
37
- * @param {Object} options Connection options
38
- */
39
- constructor (address, protocols, options) {
40
- super();
41
-
42
- if (!protocols) {
43
- protocols = [];
44
- } else if (typeof protocols === 'string') {
45
- protocols = [protocols];
46
- } else if (!Array.isArray(protocols)) {
47
- options = protocols;
48
- protocols = [];
49
- }
50
-
51
- this.readyState = WebSocket.CONNECTING;
52
- this.bytesReceived = 0;
53
- this.extensions = {};
54
- this.protocol = '';
55
-
56
- this._binaryType = constants.BINARY_TYPES[0];
57
- this._finalize = this.finalize.bind(this);
58
- this._closeFrameReceived = false;
59
- this._closeFrameSent = false;
60
- this._closeMessage = '';
61
- this._closeTimer = null;
62
- this._finalized = false;
63
- this._closeCode = 1006;
64
- this._receiver = null;
65
- this._sender = null;
66
- this._socket = null;
67
- this._ultron = null;
68
-
69
- if (Array.isArray(address)) {
70
- initAsServerClient.call(this, address[0], address[1], options);
71
- } else {
72
- initAsClient.call(this, address, protocols, options);
73
- }
74
- }
75
-
76
- get CONNECTING () { return WebSocket.CONNECTING; }
77
- get CLOSING () { return WebSocket.CLOSING; }
78
- get CLOSED () { return WebSocket.CLOSED; }
79
- get OPEN () { return WebSocket.OPEN; }
80
-
81
- /**
82
- * @type {Number}
83
- */
84
- get bufferedAmount () {
85
- var amount = 0;
86
-
87
- if (this._socket) {
88
- amount = this._socket.bufferSize + this._sender._bufferedBytes;
89
- }
90
- return amount;
91
- }
92
-
93
- /**
94
- * This deviates from the WHATWG interface since ws doesn't support the required
95
- * default "blob" type (instead we define a custom "nodebuffer" type).
96
- *
97
- * @type {String}
98
- */
99
- get binaryType () {
100
- return this._binaryType;
101
- }
102
-
103
- set binaryType (type) {
104
- if (constants.BINARY_TYPES.indexOf(type) < 0) return;
105
-
106
- this._binaryType = type;
107
-
108
- //
109
- // Allow to change `binaryType` on the fly.
110
- //
111
- if (this._receiver) this._receiver._binaryType = type;
112
- }
113
-
114
- /**
115
- * Set up the socket and the internal resources.
116
- *
117
- * @param {net.Socket} socket The network socket between the server and client
118
- * @param {Buffer} head The first packet of the upgraded stream
119
- * @private
120
- */
121
- setSocket (socket, head) {
122
- socket.setTimeout(0);
123
- socket.setNoDelay();
124
-
125
- this._receiver = new Receiver(this.extensions, this._maxPayload, this.binaryType);
126
- this._sender = new Sender(socket, this.extensions);
127
- this._ultron = new Ultron(socket);
128
- this._socket = socket;
129
-
130
- this._ultron.on('close', this._finalize);
131
- this._ultron.on('error', this._finalize);
132
- this._ultron.on('end', this._finalize);
133
-
134
- if (head.length > 0) socket.unshift(head);
135
-
136
- this._ultron.on('data', (data) => {
137
- this.bytesReceived += data.length;
138
- this._receiver.add(data);
139
- });
140
-
141
- this._receiver.onmessage = (data) => this.emit('message', data);
142
- this._receiver.onping = (data) => {
143
- this.pong(data, !this._isServer, true);
144
- this.emit('ping', data);
145
- };
146
- this._receiver.onpong = (data) => this.emit('pong', data);
147
- this._receiver.onclose = (code, reason) => {
148
- this._closeFrameReceived = true;
149
- this._closeMessage = reason;
150
- this._closeCode = code;
151
- if (!this._finalized) this.close(code, reason);
152
- };
153
- this._receiver.onerror = (error, code) => {
154
- this._closeMessage = '';
155
- this._closeCode = code;
156
-
157
- //
158
- // Ensure that the error is emitted even if `WebSocket#finalize()` has
159
- // already been called.
160
- //
161
- this.readyState = WebSocket.CLOSING;
162
- this.emit('error', error);
163
- this.finalize(true);
164
- };
165
-
166
- this.readyState = WebSocket.OPEN;
167
- this.emit('open');
168
- }
169
-
170
- /**
171
- * Clean up and release internal resources.
172
- *
173
- * @param {(Boolean|Error)} error Indicates whether or not an error occurred
174
- * @private
175
- */
176
- finalize (error) {
177
- if (this._finalized) return;
178
-
179
- this.readyState = WebSocket.CLOSING;
180
- this._finalized = true;
181
-
182
- if (typeof error === 'object') this.emit('error', error);
183
- if (!this._socket) return this.emitClose();
184
-
185
- clearTimeout(this._closeTimer);
186
- this._closeTimer = null;
187
-
188
- this._ultron.destroy();
189
- this._ultron = null;
190
-
191
- this._socket.on('error', constants.NOOP);
192
-
193
- if (!error) this._socket.end();
194
- else this._socket.destroy();
195
-
196
- this._socket = null;
197
- this._sender = null;
198
-
199
- this._receiver.cleanup(() => this.emitClose());
200
- this._receiver = null;
201
- }
202
-
203
- /**
204
- * Emit the `close` event.
205
- *
206
- * @private
207
- */
208
- emitClose () {
209
- this.readyState = WebSocket.CLOSED;
210
-
211
- this.emit('close', this._closeCode, this._closeMessage);
212
-
213
- if (this.extensions[PerMessageDeflate.extensionName]) {
214
- this.extensions[PerMessageDeflate.extensionName].cleanup();
215
- }
216
-
217
- this.extensions = null;
218
-
219
- this.removeAllListeners();
220
- }
221
-
222
- /**
223
- * Pause the socket stream.
224
- *
225
- * @public
226
- */
227
- pause () {
228
- if (this.readyState !== WebSocket.OPEN) throw new Error('not opened');
229
-
230
- this._socket.pause();
231
- }
232
-
233
- /**
234
- * Resume the socket stream
235
- *
236
- * @public
237
- */
238
- resume () {
239
- if (this.readyState !== WebSocket.OPEN) throw new Error('not opened');
240
-
241
- this._socket.resume();
242
- }
243
-
244
- /**
245
- * Start a closing handshake.
246
- *
247
- * +----------+ +-----------+ +----------+
248
- * + - - -|ws.close()|---->|close frame|-->|ws.close()|- - - -
249
- * +----------+ +-----------+ +----------+ |
250
- * | +----------+ +-----------+ |
251
- * |ws.close()|<----|close frame|<--------+ |
252
- * +----------+ +-----------+ |
253
- * CLOSING | +---+ | CLOSING
254
- * | +---|fin|<------------+
255
- * | | | +---+ |
256
- * | | +---+ +-------------+
257
- * | +----------+-->|fin|----->|ws.finalize()| - - +
258
- * | +---+ +-------------+
259
- * | +-------------+ |
260
- * - - -|ws.finalize()|<--+
261
- * +-------------+
262
- *
263
- * @param {Number} code Status code explaining why the connection is closing
264
- * @param {String} data A string explaining why the connection is closing
265
- * @public
266
- */
267
- close (code, data) {
268
- if (this.readyState === WebSocket.CLOSED) return;
269
- if (this.readyState === WebSocket.CONNECTING) {
270
- this._req.abort();
271
- this.finalize(new Error('closed before the connection is established'));
272
- return;
273
- }
274
-
275
- if (this.readyState === WebSocket.CLOSING) {
276
- if (this._closeFrameSent && this._closeFrameReceived) this._socket.end();
277
- return;
278
- }
279
-
280
- this.readyState = WebSocket.CLOSING;
281
- this._sender.close(code, data, !this._isServer, (err) => {
282
- //
283
- // This error is handled by the `'error'` listener on the socket. We only
284
- // want to know if the close frame has been sent here.
285
- //
286
- if (err) return;
287
-
288
- this._closeFrameSent = true;
289
-
290
- if (!this._finalized) {
291
- if (this._closeFrameReceived) this._socket.end();
292
-
293
- //
294
- // Ensure that the connection is cleaned up even when the closing
295
- // handshake fails.
296
- //
297
- this._closeTimer = setTimeout(this._finalize, closeTimeout, true);
298
- }
299
- });
300
- }
301
-
302
- /**
303
- * Send a ping message.
304
- *
305
- * @param {*} data The message to send
306
- * @param {Boolean} mask Indicates whether or not to mask `data`
307
- * @param {Boolean} failSilently Indicates whether or not to throw if `readyState` isn't `OPEN`
308
- * @public
309
- */
310
- ping (data, mask, failSilently) {
311
- if (this.readyState !== WebSocket.OPEN) {
312
- if (failSilently) return;
313
- throw new Error('not opened');
314
- }
315
-
316
- if (typeof data === 'number') data = data.toString();
317
- if (mask === undefined) mask = !this._isServer;
318
- this._sender.ping(data || constants.EMPTY_BUFFER, mask);
319
- }
320
-
321
- /**
322
- * Send a pong message.
323
- *
324
- * @param {*} data The message to send
325
- * @param {Boolean} mask Indicates whether or not to mask `data`
326
- * @param {Boolean} failSilently Indicates whether or not to throw if `readyState` isn't `OPEN`
327
- * @public
328
- */
329
- pong (data, mask, failSilently) {
330
- if (this.readyState !== WebSocket.OPEN) {
331
- if (failSilently) return;
332
- throw new Error('not opened');
333
- }
334
-
335
- if (typeof data === 'number') data = data.toString();
336
- if (mask === undefined) mask = !this._isServer;
337
- this._sender.pong(data || constants.EMPTY_BUFFER, mask);
338
- }
339
-
340
- /**
341
- * Send a data message.
342
- *
343
- * @param {*} data The message to send
344
- * @param {Object} options Options object
345
- * @param {Boolean} options.compress Specifies whether or not to compress `data`
346
- * @param {Boolean} options.binary Specifies whether `data` is binary or text
347
- * @param {Boolean} options.fin Specifies whether the fragment is the last one
348
- * @param {Boolean} options.mask Specifies whether or not to mask `data`
349
- * @param {Function} cb Callback which is executed when data is written out
350
- * @public
351
- */
352
- send (data, options, cb) {
353
- if (typeof options === 'function') {
354
- cb = options;
355
- options = {};
356
- }
357
-
358
- if (this.readyState !== WebSocket.OPEN) {
359
- if (cb) cb(new Error('not opened'));
360
- else throw new Error('not opened');
361
- return;
362
- }
363
-
364
- if (typeof data === 'number') data = data.toString();
365
-
366
- const opts = Object.assign({
367
- binary: typeof data !== 'string',
368
- mask: !this._isServer,
369
- compress: true,
370
- fin: true
371
- }, options);
372
-
373
- if (!this.extensions[PerMessageDeflate.extensionName]) {
374
- opts.compress = false;
375
- }
376
-
377
- this._sender.send(data || constants.EMPTY_BUFFER, opts, cb);
378
- }
379
-
380
- /**
381
- * Forcibly close the connection.
382
- *
383
- * @public
384
- */
385
- terminate () {
386
- if (this.readyState === WebSocket.CLOSED) return;
387
- if (this.readyState === WebSocket.CONNECTING) {
388
- this._req.abort();
389
- this.finalize(new Error('closed before the connection is established'));
390
- return;
391
- }
392
-
393
- this.finalize(true);
394
- }
395
- }
396
-
397
- WebSocket.CONNECTING = 0;
398
- WebSocket.OPEN = 1;
399
- WebSocket.CLOSING = 2;
400
- WebSocket.CLOSED = 3;
401
-
402
- //
403
- // Add the `onopen`, `onerror`, `onclose`, and `onmessage` attributes.
404
- // See https://html.spec.whatwg.org/multipage/comms.html#the-websocket-interface
405
- //
406
- ['open', 'error', 'close', 'message'].forEach((method) => {
407
- Object.defineProperty(WebSocket.prototype, `on${method}`, {
408
- /**
409
- * Return the listener of the event.
410
- *
411
- * @return {(Function|undefined)} The event listener or `undefined`
412
- * @public
413
- */
414
- get () {
415
- const listeners = this.listeners(method);
416
- for (var i = 0; i < listeners.length; i++) {
417
- if (listeners[i]._listener) return listeners[i]._listener;
418
- }
419
- },
420
- /**
421
- * Add a listener for the event.
422
- *
423
- * @param {Function} listener The listener to add
424
- * @public
425
- */
426
- set (listener) {
427
- const listeners = this.listeners(method);
428
- for (var i = 0; i < listeners.length; i++) {
429
- //
430
- // Remove only the listeners added via `addEventListener`.
431
- //
432
- if (listeners[i]._listener) this.removeListener(method, listeners[i]);
433
- }
434
- this.addEventListener(method, listener);
435
- }
436
- });
437
- });
438
-
439
- WebSocket.prototype.addEventListener = EventTarget.addEventListener;
440
- WebSocket.prototype.removeEventListener = EventTarget.removeEventListener;
441
-
442
- module.exports = WebSocket;
443
-
444
- /**
445
- * Initialize a WebSocket server client.
446
- *
447
- * @param {http.IncomingMessage} req The request object
448
- * @param {net.Socket} socket The network socket between the server and client
449
- * @param {Buffer} head The first packet of the upgraded stream
450
- * @param {Object} options WebSocket attributes
451
- * @param {Number} options.protocolVersion The WebSocket protocol version
452
- * @param {Object} options.extensions The negotiated extensions
453
- * @param {Number} options.maxPayload The maximum allowed message size
454
- * @param {String} options.protocol The chosen subprotocol
455
- * @private
456
- */
457
- function initAsServerClient (socket, head, options) {
458
- this.protocolVersion = options.protocolVersion;
459
- this._maxPayload = options.maxPayload;
460
- this.extensions = options.extensions;
461
- this.protocol = options.protocol;
462
-
463
- this._isServer = true;
464
-
465
- this.setSocket(socket, head);
466
- }
467
-
468
- /**
469
- * Initialize a WebSocket client.
470
- *
471
- * @param {String} address The URL to which to connect
472
- * @param {String[]} protocols The list of subprotocols
473
- * @param {Object} options Connection options
474
- * @param {String} options.protocol Value of the `Sec-WebSocket-Protocol` header
475
- * @param {(Boolean|Object)} options.perMessageDeflate Enable/disable permessage-deflate
476
- * @param {Number} options.handshakeTimeout Timeout in milliseconds for the handshake request
477
- * @param {String} options.localAddress Local interface to bind for network connections
478
- * @param {Number} options.protocolVersion Value of the `Sec-WebSocket-Version` header
479
- * @param {Object} options.headers An object containing request headers
480
- * @param {String} options.origin Value of the `Origin` or `Sec-WebSocket-Origin` header
481
- * @param {http.Agent} options.agent Use the specified Agent
482
- * @param {String} options.host Value of the `Host` header
483
- * @param {Number} options.family IP address family to use during hostname lookup (4 or 6).
484
- * @param {Function} options.checkServerIdentity A function to validate the server hostname
485
- * @param {Boolean} options.rejectUnauthorized Verify or not the server certificate
486
- * @param {String} options.passphrase The passphrase for the private key or pfx
487
- * @param {String} options.ciphers The ciphers to use or exclude
488
- * @param {String} options.ecdhCurve The curves for ECDH key agreement to use or exclude
489
- * @param {(String|String[]|Buffer|Buffer[])} options.cert The certificate key
490
- * @param {(String|String[]|Buffer|Buffer[])} options.key The private key
491
- * @param {(String|Buffer)} options.pfx The private key, certificate, and CA certs
492
- * @param {(String|String[]|Buffer|Buffer[])} options.ca Trusted certificates
493
- * @private
494
- */
495
- function initAsClient (address, protocols, options) {
496
- options = Object.assign({
497
- protocolVersion: protocolVersions[1],
498
- protocol: protocols.join(','),
499
- perMessageDeflate: true,
500
- handshakeTimeout: null,
501
- localAddress: null,
502
- headers: null,
503
- family: null,
504
- origin: null,
505
- agent: null,
506
- host: null,
507
-
508
- //
509
- // SSL options.
510
- //
511
- checkServerIdentity: null,
512
- rejectUnauthorized: null,
513
- passphrase: null,
514
- ciphers: null,
515
- ecdhCurve: null,
516
- cert: null,
517
- key: null,
518
- pfx: null,
519
- ca: null
520
- }, options);
521
-
522
- if (protocolVersions.indexOf(options.protocolVersion) === -1) {
523
- throw new Error(
524
- `unsupported protocol version: ${options.protocolVersion} ` +
525
- `(supported versions: ${protocolVersions.join(', ')})`
526
- );
527
- }
528
-
529
- this.protocolVersion = options.protocolVersion;
530
- this._isServer = false;
531
- this.url = address;
532
-
533
- const serverUrl = url.parse(address);
534
- const isUnixSocket = serverUrl.protocol === 'ws+unix:';
535
-
536
- if (!serverUrl.host && (!isUnixSocket || !serverUrl.path)) {
537
- throw new Error('invalid url');
538
- }
539
-
540
- const isSecure = serverUrl.protocol === 'wss:' || serverUrl.protocol === 'https:';
541
- const key = crypto.randomBytes(16).toString('base64');
542
- const httpObj = isSecure ? https : http;
543
- var perMessageDeflate;
544
-
545
- const requestOptions = {
546
- port: serverUrl.port || (isSecure ? 443 : 80),
547
- host: serverUrl.hostname,
548
- path: '/',
549
- headers: {
550
- 'Sec-WebSocket-Version': options.protocolVersion,
551
- 'Sec-WebSocket-Key': key,
552
- 'Connection': 'Upgrade',
553
- 'Upgrade': 'websocket'
554
- }
555
- };
556
-
557
- if (options.headers) Object.assign(requestOptions.headers, options.headers);
558
- if (options.perMessageDeflate) {
559
- perMessageDeflate = new PerMessageDeflate(
560
- options.perMessageDeflate !== true ? options.perMessageDeflate : {},
561
- false
562
- );
563
- requestOptions.headers['Sec-WebSocket-Extensions'] = Extensions.format({
564
- [PerMessageDeflate.extensionName]: perMessageDeflate.offer()
565
- });
566
- }
567
- if (options.protocol) {
568
- requestOptions.headers['Sec-WebSocket-Protocol'] = options.protocol;
569
- }
570
- if (options.origin) {
571
- if (options.protocolVersion < 13) {
572
- requestOptions.headers['Sec-WebSocket-Origin'] = options.origin;
573
- } else {
574
- requestOptions.headers.Origin = options.origin;
575
- }
576
- }
577
- if (options.host) requestOptions.headers.Host = options.host;
578
- if (serverUrl.auth) requestOptions.auth = serverUrl.auth;
579
-
580
- if (options.localAddress) requestOptions.localAddress = options.localAddress;
581
- if (options.family) requestOptions.family = options.family;
582
-
583
- if (isUnixSocket) {
584
- const parts = serverUrl.path.split(':');
585
-
586
- requestOptions.socketPath = parts[0];
587
- requestOptions.path = parts[1];
588
- } else if (serverUrl.path) {
589
- //
590
- // Make sure that path starts with `/`.
591
- //
592
- if (serverUrl.path.charAt(0) !== '/') {
593
- requestOptions.path = `/${serverUrl.path}`;
594
- } else {
595
- requestOptions.path = serverUrl.path;
596
- }
597
- }
598
-
599
- var agent = options.agent;
600
-
601
- //
602
- // A custom agent is required for these options.
603
- //
604
- if (
605
- options.rejectUnauthorized != null ||
606
- options.checkServerIdentity ||
607
- options.passphrase ||
608
- options.ciphers ||
609
- options.ecdhCurve ||
610
- options.cert ||
611
- options.key ||
612
- options.pfx ||
613
- options.ca
614
- ) {
615
- if (options.passphrase) requestOptions.passphrase = options.passphrase;
616
- if (options.ciphers) requestOptions.ciphers = options.ciphers;
617
- if (options.ecdhCurve) requestOptions.ecdhCurve = options.ecdhCurve;
618
- if (options.cert) requestOptions.cert = options.cert;
619
- if (options.key) requestOptions.key = options.key;
620
- if (options.pfx) requestOptions.pfx = options.pfx;
621
- if (options.ca) requestOptions.ca = options.ca;
622
- if (options.checkServerIdentity) {
623
- requestOptions.checkServerIdentity = options.checkServerIdentity;
624
- }
625
- if (options.rejectUnauthorized != null) {
626
- requestOptions.rejectUnauthorized = options.rejectUnauthorized;
627
- }
628
-
629
- if (!agent) agent = new httpObj.Agent(requestOptions);
630
- }
631
-
632
- if (agent) requestOptions.agent = agent;
633
-
634
- this._req = httpObj.get(requestOptions);
635
-
636
- if (options.handshakeTimeout) {
637
- this._req.setTimeout(options.handshakeTimeout, () => {
638
- this._req.abort();
639
- this.finalize(new Error('opening handshake has timed out'));
640
- });
641
- }
642
-
643
- this._req.on('error', (error) => {
644
- if (this._req.aborted) return;
645
-
646
- this._req = null;
647
- this.finalize(error);
648
- });
649
-
650
- this._req.on('response', (res) => {
651
- if (!this.emit('unexpected-response', this._req, res)) {
652
- this._req.abort();
653
- this.finalize(new Error(`unexpected server response (${res.statusCode})`));
654
- }
655
- });
656
-
657
- this._req.on('upgrade', (res, socket, head) => {
658
- this.emit('headers', res.headers, res);
659
-
660
- //
661
- // The user may have closed the connection from a listener of the `headers`
662
- // event.
663
- //
664
- if (this.readyState !== WebSocket.CONNECTING) return;
665
-
666
- this._req = null;
667
-
668
- const digest = crypto.createHash('sha1')
669
- .update(key + constants.GUID, 'binary')
670
- .digest('base64');
671
-
672
- if (res.headers['sec-websocket-accept'] !== digest) {
673
- socket.destroy();
674
- return this.finalize(new Error('invalid server key'));
675
- }
676
-
677
- const serverProt = res.headers['sec-websocket-protocol'];
678
- const protList = (options.protocol || '').split(/, */);
679
- var protError;
680
-
681
- if (!options.protocol && serverProt) {
682
- protError = 'server sent a subprotocol even though none requested';
683
- } else if (options.protocol && !serverProt) {
684
- protError = 'server sent no subprotocol even though requested';
685
- } else if (serverProt && protList.indexOf(serverProt) === -1) {
686
- protError = 'server responded with an invalid protocol';
687
- }
688
-
689
- if (protError) {
690
- socket.destroy();
691
- return this.finalize(new Error(protError));
692
- }
693
-
694
- if (serverProt) this.protocol = serverProt;
695
-
696
- if (perMessageDeflate) {
697
- try {
698
- const serverExtensions = Extensions.parse(
699
- res.headers['sec-websocket-extensions']
700
- );
701
-
702
- if (serverExtensions[PerMessageDeflate.extensionName]) {
703
- perMessageDeflate.accept(
704
- serverExtensions[PerMessageDeflate.extensionName]
705
- );
706
- this.extensions[PerMessageDeflate.extensionName] = perMessageDeflate;
707
- }
708
- } catch (err) {
709
- socket.destroy();
710
- this.finalize(new Error('invalid Sec-WebSocket-Extensions header'));
711
- return;
712
- }
713
- }
714
-
715
- this.setSocket(socket, head);
716
- });
717
- }