pingerchips-js 1.0.0 → 2.0.0

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 (435) hide show
  1. package/README.md +53 -655
  2. package/index.js +169 -0
  3. package/package.json +20 -59
  4. package/.editorconfig +0 -14
  5. package/.github/ISSUE_TEMPLATE.md +0 -11
  6. package/.github/PULL_REQUEST_TEMPLATE.md +0 -14
  7. package/.github/dependabot.yml +0 -14
  8. package/.github/stale.yml +0 -26
  9. package/.github/workflows/release.yml +0 -112
  10. package/.github/workflows/release_pr.yml +0 -43
  11. package/.github/workflows/run-tests.yml +0 -62
  12. package/.gitmodules +0 -3
  13. package/.prettierrc +0 -2
  14. package/CHANGELOG.md +0 -924
  15. package/LICENCE +0 -19
  16. package/Makefile +0 -78
  17. package/bower.json +0 -28
  18. package/dist/node/pusher.js +0 -10870
  19. package/dist/node/pusher.js.map +0 -1
  20. package/dist/react-native/pusher.js +0 -9
  21. package/dist/react-native/pusher.js.map +0 -1
  22. package/dist/web/json2.js +0 -486
  23. package/dist/web/json2.min.js +0 -1
  24. package/dist/web/pusher-with-encryption.js +0 -7009
  25. package/dist/web/pusher-with-encryption.js.map +0 -1
  26. package/dist/web/pusher-with-encryption.min.js +0 -9
  27. package/dist/web/pusher-with-encryption.min.js.map +0 -1
  28. package/dist/web/pusher.js +0 -4587
  29. package/dist/web/pusher.js.map +0 -1
  30. package/dist/web/pusher.min.js +0 -9
  31. package/dist/web/pusher.min.js.map +0 -1
  32. package/dist/web/sockjs.js +0 -2435
  33. package/dist/web/sockjs.min.js +0 -89
  34. package/dist/worker/pusher-with-encryption.worker.js +0 -6622
  35. package/dist/worker/pusher-with-encryption.worker.js.map +0 -1
  36. package/dist/worker/pusher-with-encryption.worker.min.js +0 -9
  37. package/dist/worker/pusher-with-encryption.worker.min.js.map +0 -1
  38. package/dist/worker/pusher.worker.js +0 -4200
  39. package/dist/worker/pusher.worker.js.map +0 -1
  40. package/dist/worker/pusher.worker.min.js +0 -9
  41. package/dist/worker/pusher.worker.min.js.map +0 -1
  42. package/index.d.ts +0 -29
  43. package/integration_tests_server/index.js +0 -176
  44. package/integration_tests_server/package-lock.json +0 -1177
  45. package/integration_tests_server/package.json +0 -15
  46. package/node.js +0 -1
  47. package/pusher-with-encryption/index.js +0 -1
  48. package/react-native/index.d.ts +0 -29
  49. package/react-native/index.js +0 -1
  50. package/spec/config/jasmine/helpers/reporter.js +0 -14
  51. package/spec/config/jasmine/integration.json +0 -13
  52. package/spec/config/jasmine/unit.json +0 -13
  53. package/spec/config/jasmine/webpack.integration.js +0 -33
  54. package/spec/config/jasmine/webpack.unit.js +0 -30
  55. package/spec/config/karma/available_browsers.json +0 -4957
  56. package/spec/config/karma/config.ci.js +0 -25
  57. package/spec/config/karma/config.common.js +0 -50
  58. package/spec/config/karma/config.integration.js +0 -26
  59. package/spec/config/karma/config.unit.js +0 -10
  60. package/spec/config/karma/config.worker.js +0 -34
  61. package/spec/config/karma/integration.js +0 -24
  62. package/spec/config/karma/unit.js +0 -20
  63. package/spec/javascripts/helpers/mocks.js +0 -274
  64. package/spec/javascripts/helpers/node/integration.js +0 -33
  65. package/spec/javascripts/helpers/node/mock-dom-dependencies.ts +0 -1
  66. package/spec/javascripts/helpers/pusher_integration.js +0 -1
  67. package/spec/javascripts/helpers/pusher_integration_class.ts +0 -12
  68. package/spec/javascripts/helpers/timers/promises.js +0 -9
  69. package/spec/javascripts/helpers/waitsFor.js +0 -37
  70. package/spec/javascripts/helpers/web/integration.js +0 -44
  71. package/spec/javascripts/helpers/worker/mock-dom-dependencies.js +0 -1
  72. package/spec/javascripts/integration/core/cluster_config_spec.js +0 -153
  73. package/spec/javascripts/integration/core/falling_back_spec.js +0 -195
  74. package/spec/javascripts/integration/core/pusher_spec/index.js +0 -68
  75. package/spec/javascripts/integration/core/pusher_spec/test_builder.js +0 -715
  76. package/spec/javascripts/integration/core/timeout_configuration_spec.js +0 -200
  77. package/spec/javascripts/integration/core/transport_lists_spec.js +0 -103
  78. package/spec/javascripts/integration/index.node.js +0 -12
  79. package/spec/javascripts/integration/index.web.js +0 -63
  80. package/spec/javascripts/integration/index.worker.js +0 -13
  81. package/spec/javascripts/integration/web/dom/jsonp_spec.js +0 -97
  82. package/spec/javascripts/integration/web/dom/script_request_spec.js +0 -90
  83. package/spec/javascripts/polyfills/index.js +0 -105
  84. package/spec/javascripts/unit/core/channels/channel_spec.js +0 -355
  85. package/spec/javascripts/unit/core/channels/channels_spec.js +0 -94
  86. package/spec/javascripts/unit/core/channels/encrypted_channel_spec.js +0 -343
  87. package/spec/javascripts/unit/core/channels/presence_channel_spec.js +0 -553
  88. package/spec/javascripts/unit/core/channels/private_channel_spec.js +0 -182
  89. package/spec/javascripts/unit/core/config_spec.js +0 -507
  90. package/spec/javascripts/unit/core/connection/connection_manager_spec.js +0 -656
  91. package/spec/javascripts/unit/core/connection/connection_spec.js +0 -286
  92. package/spec/javascripts/unit/core/connection/handshake_spec.js +0 -160
  93. package/spec/javascripts/unit/core/connection/protocol_spec.js +0 -420
  94. package/spec/javascripts/unit/core/defaults_spec.js +0 -26
  95. package/spec/javascripts/unit/core/events_dispatcher_spec.js +0 -385
  96. package/spec/javascripts/unit/core/http/http_polling_socket_spec.js +0 -60
  97. package/spec/javascripts/unit/core/http/http_request_spec.js +0 -185
  98. package/spec/javascripts/unit/core/http/http_socket_spec.js +0 -370
  99. package/spec/javascripts/unit/core/http/http_streaming_socket_spec.js +0 -56
  100. package/spec/javascripts/unit/core/http/http_xhr_request_spec.js +0 -164
  101. package/spec/javascripts/unit/core/logger_spec.js +0 -133
  102. package/spec/javascripts/unit/core/pusher_spec.js +0 -613
  103. package/spec/javascripts/unit/core/pusher_with_encryption_spec.js +0 -18
  104. package/spec/javascripts/unit/core/strategies/best_connected_ever_strategy_spec.js +0 -104
  105. package/spec/javascripts/unit/core/strategies/delayed_strategy_spec.js +0 -95
  106. package/spec/javascripts/unit/core/strategies/first_connected_strategy_spec.js +0 -68
  107. package/spec/javascripts/unit/core/strategies/if_strategy_spec.js +0 -165
  108. package/spec/javascripts/unit/core/strategies/sequential_strategy_spec.js +0 -213
  109. package/spec/javascripts/unit/core/strategies/transport_strategy_spec.js +0 -250
  110. package/spec/javascripts/unit/core/strategies/websocket_prioritized_cached_strategy_spec.js +0 -400
  111. package/spec/javascripts/unit/core/timeline/timeline_spec.js +0 -153
  112. package/spec/javascripts/unit/core/transports/assistant_to_the_transport_manager_spec.js +0 -223
  113. package/spec/javascripts/unit/core/transports/hosts_and_ports_spec.js +0 -85
  114. package/spec/javascripts/unit/core/transports/transport_connection_spec.js +0 -585
  115. package/spec/javascripts/unit/core/transports/transport_manager_spec.js +0 -64
  116. package/spec/javascripts/unit/core/user_spec.js +0 -303
  117. package/spec/javascripts/unit/core/utils/periodic_timer_spec.js +0 -74
  118. package/spec/javascripts/unit/core/utils/timers_spec.js +0 -157
  119. package/spec/javascripts/unit/core/utils/url_store_spec.js +0 -14
  120. package/spec/javascripts/unit/core/watchlist_spec.js +0 -48
  121. package/spec/javascripts/unit/core_with_runtime/auth/channel_authorizer_spec.js +0 -137
  122. package/spec/javascripts/unit/core_with_runtime/auth/deprecated_channel_authorizer_spec.js +0 -48
  123. package/spec/javascripts/unit/core_with_runtime/auth/user_authorizer_spec.js +0 -128
  124. package/spec/javascripts/unit/core_with_runtime/readme.md +0 -5
  125. package/spec/javascripts/unit/index.node.js +0 -11
  126. package/spec/javascripts/unit/index.web.js +0 -12
  127. package/spec/javascripts/unit/index.worker.js +0 -11
  128. package/spec/javascripts/unit/isomorphic/transports/hosts_and_ports_spec.js +0 -82
  129. package/spec/javascripts/unit/isomorphic/transports/transports_spec.js +0 -202
  130. package/spec/javascripts/unit/node/timeline_sender_spec.js +0 -83
  131. package/spec/javascripts/unit/web/dom/dependency_loader_spec.js +0 -249
  132. package/spec/javascripts/unit/web/dom/jsonp_request_spec.js +0 -130
  133. package/spec/javascripts/unit/web/dom/script_receiver_factory_spec.js +0 -68
  134. package/spec/javascripts/unit/web/http/http_xdomain_request_spec.js +0 -222
  135. package/spec/javascripts/unit/web/pusher_authorizer_spec.js +0 -64
  136. package/spec/javascripts/unit/web/timeline/timeline_sender_spec.js +0 -131
  137. package/spec/javascripts/unit/web/transports/hosts_and_ports_spec.js +0 -127
  138. package/spec/javascripts/unit/web/transports/transports_spec.js +0 -444
  139. package/spec/javascripts/unit/worker/channel_authorizer_spec.js +0 -156
  140. package/spec/javascripts/unit/worker/timeline_sender_spec.js +0 -76
  141. package/src/core/auth/auth_transports.ts +0 -18
  142. package/src/core/auth/channel_authorizer.ts +0 -64
  143. package/src/core/auth/deprecated_channel_authorizer.ts +0 -58
  144. package/src/core/auth/options.ts +0 -78
  145. package/src/core/auth/user_authenticator.ts +0 -62
  146. package/src/core/base64.ts +0 -49
  147. package/src/core/channels/channel.ts +0 -163
  148. package/src/core/channels/channel_table.ts +0 -7
  149. package/src/core/channels/channels.ts +0 -85
  150. package/src/core/channels/encrypted_channel.ts +0 -149
  151. package/src/core/channels/members.ts +0 -80
  152. package/src/core/channels/metadata.ts +0 -5
  153. package/src/core/channels/presence_channel.ts +0 -113
  154. package/src/core/channels/private_channel.ts +0 -25
  155. package/src/core/config.ts +0 -189
  156. package/src/core/connection/callbacks.ts +0 -21
  157. package/src/core/connection/connection.ts +0 -160
  158. package/src/core/connection/connection_manager.ts +0 -371
  159. package/src/core/connection/connection_manager_options.ts +0 -14
  160. package/src/core/connection/handshake/handshake_payload.ts +0 -10
  161. package/src/core/connection/handshake/index.ts +0 -90
  162. package/src/core/connection/protocol/action.ts +0 -8
  163. package/src/core/connection/protocol/message-types.ts +0 -8
  164. package/src/core/connection/protocol/protocol.ts +0 -154
  165. package/src/core/defaults.ts +0 -66
  166. package/src/core/errors.ts +0 -69
  167. package/src/core/events/callback.ts +0 -6
  168. package/src/core/events/callback_registry.ts +0 -75
  169. package/src/core/events/callback_table.ts +0 -7
  170. package/src/core/events/dispatcher.ts +0 -84
  171. package/src/core/http/ajax.ts +0 -24
  172. package/src/core/http/http_factory.ts +0 -16
  173. package/src/core/http/http_polling_socket.ts +0 -24
  174. package/src/core/http/http_request.ts +0 -81
  175. package/src/core/http/http_socket.ts +0 -220
  176. package/src/core/http/http_streaming_socket.ts +0 -19
  177. package/src/core/http/request_hooks.ts +0 -9
  178. package/src/core/http/socket_hooks.ts +0 -11
  179. package/src/core/http/state.ts +0 -7
  180. package/src/core/http/url_location.ts +0 -6
  181. package/src/core/logger.ts +0 -53
  182. package/src/core/options.ts +0 -59
  183. package/src/core/pusher-licence.js +0 -7
  184. package/src/core/pusher-with-encryption.js +0 -1
  185. package/src/core/pusher-with-encryption.ts +0 -14
  186. package/src/core/pusher.js +0 -2
  187. package/src/core/pusher.ts +0 -249
  188. package/src/core/reachability.ts +0 -7
  189. package/src/core/socket.ts +0 -14
  190. package/src/core/strategies/best_connected_ever_strategy.ts +0 -81
  191. package/src/core/strategies/delayed_strategy.ts +0 -48
  192. package/src/core/strategies/first_connected_strategy.ts +0 -28
  193. package/src/core/strategies/if_strategy.ts +0 -34
  194. package/src/core/strategies/sequential_strategy.ts +0 -129
  195. package/src/core/strategies/strategy.ts +0 -8
  196. package/src/core/strategies/strategy_builder.ts +0 -67
  197. package/src/core/strategies/strategy_options.ts +0 -18
  198. package/src/core/strategies/strategy_runner.ts +0 -6
  199. package/src/core/strategies/transport_strategy.ts +0 -144
  200. package/src/core/strategies/websocket_prioritized_cached_strategy.ts +0 -157
  201. package/src/core/timeline/level.ts +0 -7
  202. package/src/core/timeline/timeline.ts +0 -90
  203. package/src/core/timeline/timeline_sender.ts +0 -33
  204. package/src/core/timeline/timeline_transport.ts +0 -11
  205. package/src/core/transports/assistant_to_the_transport_manager.ts +0 -104
  206. package/src/core/transports/ping_delay_options.ts +0 -7
  207. package/src/core/transports/transport.ts +0 -54
  208. package/src/core/transports/transport_connection.ts +0 -241
  209. package/src/core/transports/transport_connection_options.ts +0 -8
  210. package/src/core/transports/transport_hooks.ts +0 -16
  211. package/src/core/transports/transport_manager.ts +0 -52
  212. package/src/core/transports/transports_table.ts +0 -12
  213. package/src/core/transports/url_scheme.ts +0 -13
  214. package/src/core/transports/url_schemes.ts +0 -47
  215. package/src/core/user.ts +0 -186
  216. package/src/core/util.ts +0 -34
  217. package/src/core/utils/collections.ts +0 -353
  218. package/src/core/utils/factory.ts +0 -75
  219. package/src/core/utils/flat_promise.ts +0 -10
  220. package/src/core/utils/timers/abstract_timer.ts +0 -39
  221. package/src/core/utils/timers/index.ts +0 -39
  222. package/src/core/utils/timers/scheduling.ts +0 -11
  223. package/src/core/utils/timers/timed_callback.ts +0 -5
  224. package/src/core/utils/url_store.ts +0 -48
  225. package/src/core/watchlist.ts +0 -31
  226. package/src/d.ts/constants/index.d.ts +0 -5
  227. package/src/d.ts/faye-websocket/faye-websocket.d.ts +0 -21
  228. package/src/d.ts/global/global.d.ts +0 -1
  229. package/src/d.ts/module/module.d.ts +0 -12
  230. package/src/d.ts/tweetnacl-util/index.d.ts +0 -6
  231. package/src/d.ts/window/events.d.ts +0 -4
  232. package/src/d.ts/window/sockjs.d.ts +0 -3
  233. package/src/d.ts/window/websocket.d.ts +0 -4
  234. package/src/d.ts/window/xmlhttprequest.d.ts +0 -3
  235. package/src/runtimes/interface.ts +0 -59
  236. package/src/runtimes/isomorphic/auth/xhr_auth.ts +0 -90
  237. package/src/runtimes/isomorphic/default_strategy.ts +0 -155
  238. package/src/runtimes/isomorphic/http/http.ts +0 -32
  239. package/src/runtimes/isomorphic/http/http_xhr_request.ts +0 -35
  240. package/src/runtimes/isomorphic/runtime.ts +0 -62
  241. package/src/runtimes/isomorphic/timeline/xhr_timeline.ts +0 -50
  242. package/src/runtimes/isomorphic/transports/transport_connection_initializer.ts +0 -19
  243. package/src/runtimes/isomorphic/transports/transports.ts +0 -81
  244. package/src/runtimes/node/net_info.ts +0 -10
  245. package/src/runtimes/node/runtime.ts +0 -68
  246. package/src/runtimes/react-native/net_info.ts +0 -42
  247. package/src/runtimes/react-native/runtime.ts +0 -65
  248. package/src/runtimes/web/auth/jsonp_auth.ts +0 -51
  249. package/src/runtimes/web/browser.ts +0 -24
  250. package/src/runtimes/web/default_strategy.ts +0 -201
  251. package/src/runtimes/web/dom/dependencies.ts +0 -16
  252. package/src/runtimes/web/dom/dependency_loader.ts +0 -93
  253. package/src/runtimes/web/dom/json2.js +0 -486
  254. package/src/runtimes/web/dom/jsonp_request.ts +0 -52
  255. package/src/runtimes/web/dom/script_receiver.ts +0 -8
  256. package/src/runtimes/web/dom/script_receiver_factory.ts +0 -57
  257. package/src/runtimes/web/dom/script_request.ts +0 -85
  258. package/src/runtimes/web/dom/sockjs/COPYING +0 -11
  259. package/src/runtimes/web/dom/sockjs/Changelog +0 -147
  260. package/src/runtimes/web/dom/sockjs/LICENSE-MIT-SockJS +0 -19
  261. package/src/runtimes/web/dom/sockjs/Makefile +0 -109
  262. package/src/runtimes/web/dom/sockjs/README.md +0 -388
  263. package/src/runtimes/web/dom/sockjs/VERSION-GEN +0 -17
  264. package/src/runtimes/web/dom/sockjs/bin/render.coffee +0 -111
  265. package/src/runtimes/web/dom/sockjs/bin/run_testling.sh +0 -135
  266. package/src/runtimes/web/dom/sockjs/lib/all.js +0 -9
  267. package/src/runtimes/web/dom/sockjs/lib/dom.js +0 -185
  268. package/src/runtimes/web/dom/sockjs/lib/dom2.js +0 -280
  269. package/src/runtimes/web/dom/sockjs/lib/eventemitter.js +0 -57
  270. package/src/runtimes/web/dom/sockjs/lib/heartbeater.js +0 -70
  271. package/src/runtimes/web/dom/sockjs/lib/index.js +0 -41
  272. package/src/runtimes/web/dom/sockjs/lib/info.js +0 -117
  273. package/src/runtimes/web/dom/sockjs/lib/json2.min.js +0 -1
  274. package/src/runtimes/web/dom/sockjs/lib/reventtarget.js +0 -55
  275. package/src/runtimes/web/dom/sockjs/lib/simpleevent.js +0 -28
  276. package/src/runtimes/web/dom/sockjs/lib/sockjs.js +0 -288
  277. package/src/runtimes/web/dom/sockjs/lib/test-hooks.js +0 -16
  278. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-eventsource.js +0 -29
  279. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-htmlfile.js +0 -35
  280. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-within.js +0 -100
  281. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-xhr-polling.js +0 -30
  282. package/src/runtimes/web/dom/sockjs/lib/trans-iframe.js +0 -103
  283. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-polling.js +0 -106
  284. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-receiver.js +0 -116
  285. package/src/runtimes/web/dom/sockjs/lib/trans-polling.js +0 -44
  286. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-eventsource.js +0 -41
  287. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-htmlfile.js +0 -65
  288. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-xhr.js +0 -42
  289. package/src/runtimes/web/dom/sockjs/lib/trans-sender.js +0 -138
  290. package/src/runtimes/web/dom/sockjs/lib/trans-xhr.js +0 -29
  291. package/src/runtimes/web/dom/sockjs/lib/utils.js +0 -297
  292. package/src/runtimes/web/dom/sockjs/package.json +0 -18
  293. package/src/runtimes/web/dom/sockjs/version +0 -1
  294. package/src/runtimes/web/http/http.ts +0 -8
  295. package/src/runtimes/web/http/http_xdomain_request.ts +0 -37
  296. package/src/runtimes/web/net_info.ts +0 -50
  297. package/src/runtimes/web/runtime.ts +0 -174
  298. package/src/runtimes/web/timeline/jsonp_timeline.ts +0 -34
  299. package/src/runtimes/web/transports/transport_connection_initializer.ts +0 -39
  300. package/src/runtimes/web/transports/transports.ts +0 -65
  301. package/src/runtimes/worker/auth/fetch_auth.ts +0 -69
  302. package/src/runtimes/worker/net_info.ts +0 -10
  303. package/src/runtimes/worker/runtime.ts +0 -75
  304. package/src/runtimes/worker/timeline/fetch_timeline.ts +0 -39
  305. package/tsconfig.json +0 -26
  306. package/types/spec/javascripts/helpers/node/mock-dom-dependencies.d.ts +0 -1
  307. package/types/spec/javascripts/helpers/pusher_integration_class.d.ts +0 -4
  308. package/types/src/core/auth/auth_transports.d.ts +0 -9
  309. package/types/src/core/auth/channel_authorizer.d.ts +0 -3
  310. package/types/src/core/auth/deprecated_channel_authorizer.d.ts +0 -18
  311. package/types/src/core/auth/options.d.ts +0 -48
  312. package/types/src/core/auth/user_authenticator.d.ts +0 -3
  313. package/types/src/core/base64.d.ts +0 -1
  314. package/types/src/core/channels/channel.d.ts +0 -23
  315. package/types/src/core/channels/channel_table.d.ts +0 -5
  316. package/types/src/core/channels/channels.d.ts +0 -12
  317. package/types/src/core/channels/encrypted_channel.d.ts +0 -15
  318. package/types/src/core/channels/members.d.ts +0 -14
  319. package/types/src/core/channels/metadata.d.ts +0 -4
  320. package/types/src/core/channels/presence_channel.d.ts +0 -13
  321. package/types/src/core/channels/private_channel.d.ts +0 -5
  322. package/types/src/core/config.d.ts +0 -31
  323. package/types/src/core/connection/callbacks.d.ts +0 -18
  324. package/types/src/core/connection/connection.d.ts +0 -16
  325. package/types/src/core/connection/connection_manager.d.ts +0 -50
  326. package/types/src/core/connection/connection_manager_options.d.ts +0 -11
  327. package/types/src/core/connection/handshake/handshake_payload.d.ts +0 -8
  328. package/types/src/core/connection/handshake/index.d.ts +0 -12
  329. package/types/src/core/connection/protocol/action.d.ts +0 -7
  330. package/types/src/core/connection/protocol/message-types.d.ts +0 -7
  331. package/types/src/core/connection/protocol/protocol.d.ts +0 -10
  332. package/types/src/core/defaults.d.ts +0 -26
  333. package/types/src/core/errors.d.ts +0 -28
  334. package/types/src/core/events/callback.d.ts +0 -5
  335. package/types/src/core/events/callback_registry.d.ts +0 -11
  336. package/types/src/core/events/callback_table.d.ts +0 -5
  337. package/types/src/core/events/dispatcher.d.ts +0 -14
  338. package/types/src/core/http/ajax.d.ts +0 -16
  339. package/types/src/core/http/http_factory.d.ts +0 -13
  340. package/types/src/core/http/http_polling_socket.d.ts +0 -3
  341. package/types/src/core/http/http_request.d.ts +0 -17
  342. package/types/src/core/http/http_socket.d.ts +0 -32
  343. package/types/src/core/http/http_streaming_socket.d.ts +0 -3
  344. package/types/src/core/http/request_hooks.d.ts +0 -6
  345. package/types/src/core/http/socket_hooks.d.ts +0 -8
  346. package/types/src/core/http/state.d.ts +0 -6
  347. package/types/src/core/http/url_location.d.ts +0 -5
  348. package/types/src/core/logger.d.ts +0 -11
  349. package/types/src/core/options.d.ts +0 -34
  350. package/types/src/core/pusher-with-encryption.d.ts +0 -5
  351. package/types/src/core/pusher.d.ts +0 -49
  352. package/types/src/core/reachability.d.ts +0 -5
  353. package/types/src/core/socket.d.ts +0 -12
  354. package/types/src/core/strategies/best_connected_ever_strategy.d.ts +0 -10
  355. package/types/src/core/strategies/delayed_strategy.d.ts +0 -15
  356. package/types/src/core/strategies/first_connected_strategy.d.ts +0 -8
  357. package/types/src/core/strategies/if_strategy.d.ts +0 -10
  358. package/types/src/core/strategies/sequential_strategy.d.ts +0 -16
  359. package/types/src/core/strategies/strategy.d.ts +0 -6
  360. package/types/src/core/strategies/strategy_builder.d.ts +0 -5
  361. package/types/src/core/strategies/strategy_options.d.ts +0 -16
  362. package/types/src/core/strategies/strategy_runner.d.ts +0 -5
  363. package/types/src/core/strategies/transport_strategy.d.ts +0 -15
  364. package/types/src/core/strategies/websocket_prioritized_cached_strategy.d.ts +0 -20
  365. package/types/src/core/timeline/level.d.ts +0 -6
  366. package/types/src/core/timeline/timeline.d.ts +0 -25
  367. package/types/src/core/timeline/timeline_sender.d.ts +0 -13
  368. package/types/src/core/timeline/timeline_transport.d.ts +0 -6
  369. package/types/src/core/transports/assistant_to_the_transport_manager.d.ts +0 -14
  370. package/types/src/core/transports/ping_delay_options.d.ts +0 -6
  371. package/types/src/core/transports/transport.d.ts +0 -8
  372. package/types/src/core/transports/transport_connection.d.ts +0 -35
  373. package/types/src/core/transports/transport_connection_options.d.ts +0 -6
  374. package/types/src/core/transports/transport_hooks.d.ts +0 -13
  375. package/types/src/core/transports/transport_manager.d.ts +0 -14
  376. package/types/src/core/transports/transports_table.d.ts +0 -10
  377. package/types/src/core/transports/url_scheme.d.ts +0 -11
  378. package/types/src/core/transports/url_schemes.d.ts +0 -4
  379. package/types/src/core/user.d.ts +0 -21
  380. package/types/src/core/util.d.ts +0 -8
  381. package/types/src/core/utils/collections.d.ts +0 -18
  382. package/types/src/core/utils/factory.d.ts +0 -29
  383. package/types/src/core/utils/flat_promise.d.ts +0 -6
  384. package/types/src/core/utils/timers/abstract_timer.d.ts +0 -10
  385. package/types/src/core/utils/timers/index.d.ts +0 -9
  386. package/types/src/core/utils/timers/scheduling.d.ts +0 -8
  387. package/types/src/core/utils/timers/timed_callback.d.ts +0 -4
  388. package/types/src/core/utils/url_store.d.ts +0 -4
  389. package/types/src/core/watchlist.d.ts +0 -8
  390. package/types/src/runtimes/interface.d.ts +0 -43
  391. package/types/src/runtimes/isomorphic/auth/xhr_auth.d.ts +0 -3
  392. package/types/src/runtimes/isomorphic/default_strategy.d.ts +0 -5
  393. package/types/src/runtimes/isomorphic/http/http.d.ts +0 -3
  394. package/types/src/runtimes/isomorphic/http/http_xhr_request.d.ts +0 -3
  395. package/types/src/runtimes/isomorphic/runtime.d.ts +0 -2
  396. package/types/src/runtimes/isomorphic/timeline/xhr_timeline.d.ts +0 -6
  397. package/types/src/runtimes/isomorphic/transports/transport_connection_initializer.d.ts +0 -1
  398. package/types/src/runtimes/isomorphic/transports/transports.d.ts +0 -5
  399. package/types/src/runtimes/node/net_info.d.ts +0 -6
  400. package/types/src/runtimes/node/runtime.d.ts +0 -3
  401. package/types/src/runtimes/react-native/net_info.d.ts +0 -8
  402. package/types/src/runtimes/react-native/runtime.d.ts +0 -3
  403. package/types/src/runtimes/web/auth/jsonp_auth.d.ts +0 -3
  404. package/types/src/runtimes/web/browser.d.ts +0 -19
  405. package/types/src/runtimes/web/default_strategy.d.ts +0 -5
  406. package/types/src/runtimes/web/dom/dependencies.d.ts +0 -4
  407. package/types/src/runtimes/web/dom/dependency_loader.d.ts +0 -10
  408. package/types/src/runtimes/web/dom/jsonp_request.d.ts +0 -10
  409. package/types/src/runtimes/web/dom/script_receiver.d.ts +0 -7
  410. package/types/src/runtimes/web/dom/script_receiver_factory.d.ts +0 -10
  411. package/types/src/runtimes/web/dom/script_request.d.ts +0 -9
  412. package/types/src/runtimes/web/http/http.d.ts +0 -2
  413. package/types/src/runtimes/web/http/http_xdomain_request.d.ts +0 -3
  414. package/types/src/runtimes/web/net_info.d.ts +0 -7
  415. package/types/src/runtimes/web/runtime.d.ts +0 -3
  416. package/types/src/runtimes/web/timeline/jsonp_timeline.d.ts +0 -6
  417. package/types/src/runtimes/web/transports/transport_connection_initializer.d.ts +0 -1
  418. package/types/src/runtimes/web/transports/transports.d.ts +0 -2
  419. package/types/src/runtimes/worker/auth/fetch_auth.d.ts +0 -3
  420. package/types/src/runtimes/worker/net_info.d.ts +0 -6
  421. package/types/src/runtimes/worker/runtime.d.ts +0 -3
  422. package/types/src/runtimes/worker/timeline/fetch_timeline.d.ts +0 -6
  423. package/webpack/config.node.js +0 -26
  424. package/webpack/config.react-native.js +0 -35
  425. package/webpack/config.shared.js +0 -50
  426. package/webpack/config.web.js +0 -36
  427. package/webpack/config.worker.js +0 -42
  428. package/webpack/dev.server.js +0 -17
  429. package/webpack/hosting_config.js +0 -6
  430. package/with-encryption/index.d.ts +0 -29
  431. package/with-encryption/index.js +0 -4
  432. package/worker/index.d.ts +0 -29
  433. package/worker/index.js +0 -1
  434. package/worker/with-encryption/index.d.ts +0 -29
  435. package/worker/with-encryption/index.js +0 -1
@@ -1,715 +0,0 @@
1
- const Pusher = require('pusher_integration');
2
-
3
- const Integration = require('integration');
4
- const Collections = require('core/utils/collections');
5
- const Runtime = require('runtime').default;
6
- const TRANSPORTS = Runtime.Transports;
7
- const waitsFor = require('../../../helpers/waitsFor');
8
-
9
- function canRunTwoConnections(transport) {
10
- if (transport !== "sockjs") {
11
- return true;
12
- }
13
- return !/(MSIE [67])|(Version\/(4|5\.0).*Safari)/.test(navigator.userAgent);
14
- }
15
-
16
- function subscribe(pusher, channelName, callback) {
17
- var channel = pusher.subscribe(channelName);
18
- channel.bind("pusher:subscription_succeeded", function(param) {
19
- callback(channel, param);
20
- });
21
- return channel;
22
- }
23
-
24
- function delay(timeMs) {
25
- return new Promise(resolve => setTimeout(resolve, timeMs));
26
- }
27
-
28
- function build(testConfig) {
29
- var forceTLS = testConfig.forceTLS;
30
- var transport = testConfig.transport;
31
-
32
- if (!TRANSPORTS[transport].isSupported({ useTLS: forceTLS })) {
33
- return;
34
- }
35
-
36
- describe("with " + (transport ? transport + ", " : "") + "forceTLS=" + forceTLS, function() {
37
- var pusher1, pusher2;
38
- var jasmineDefaultTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL;
39
-
40
- beforeAll(() => {
41
- jasmine.DEFAULT_TIMEOUT_INTERVAL = 41000;
42
- });
43
-
44
- afterAll(() => {
45
- jasmine.DEFAULT_TIMEOUT_INTERVAL = jasmineDefaultTimeout;
46
- });
47
-
48
- beforeEach(function() {
49
- Collections.objectApply(TRANSPORTS, function(t, name) {
50
- spyOn(t, "isSupported").and.returnValue(false);
51
- });
52
- TRANSPORTS[transport].isSupported.and.returnValue(true);
53
- });
54
-
55
- describe("setup", function() {
56
- it("should open connections", async function() {
57
- pusher1 = new Pusher("c49a449b916bb4246729", {
58
- forceTLS: forceTLS,
59
- cluster: "mt1"
60
- });
61
- if (canRunTwoConnections(transport)) {
62
- pusher2 = new Pusher("c49a449b916bb4246729", {
63
- forceTLS: forceTLS,
64
- cluster: "mt1"
65
- });
66
- await waitsFor(function() {
67
- return pusher2.connection.state === "connected";
68
- }, "second connection to be established", 20000);
69
- }
70
- await waitsFor(function() {
71
- return pusher1.connection.state === "connected";
72
- }, "first connection to be established", 20000);
73
- });
74
-
75
- });
76
-
77
- describe("with a public channel", function() {
78
- buildPublicChannelTests(
79
- function() { return pusher1; }
80
- );
81
- });
82
-
83
- describe("with a private channel", function() {
84
- var channelName = Integration.getRandomName("private-integration");
85
- var channel1, channel2;
86
-
87
- buildSubscriptionStateTests(
88
- function() { return pusher1; },
89
- "private-"
90
- );
91
-
92
- if (canRunTwoConnections(transport)) {
93
- buildClientEventsTests(
94
- function() { return pusher1; },
95
- function() { return pusher2; },
96
- "private-"
97
- );
98
- }
99
- });
100
-
101
- describe("with a presence channel", function() {
102
- buildSubscriptionStateTests(
103
- function() { return pusher1; },
104
- "presence-"
105
- );
106
-
107
- if (canRunTwoConnections(transport)) {
108
- buildClientEventsTests(
109
- function() { return pusher1; },
110
- function() { return pusher2; },
111
- "presence-"
112
- );
113
- buildPresenceChannelTests(
114
- function() { return pusher1; },
115
- function() { return pusher2; }
116
- );
117
- }
118
- });
119
-
120
- describe("teardown", function() {
121
- if (canRunTwoConnections(transport)) {
122
- it("should disconnect second connection", function() {
123
- pusher2.disconnect();
124
- });
125
- }
126
-
127
- it("should disconnect first connection", function() {
128
- pusher1.disconnect();
129
- });
130
- });
131
- });
132
- }
133
- function buildPresenceChannelTests(getPusher1, getPusher2) {
134
- it("should get connection's member data", async function() {
135
- var pusher = getPusher1();
136
- var channelName = Integration.getRandomName("presence-integration_me");
137
-
138
- var members = null;
139
- subscribe(pusher, channelName, function(channel, ms) {
140
- members = ms;
141
- });
142
-
143
- await waitsFor(function() {
144
- return members !== null;
145
- }, "channel to subscribe", 10000);
146
-
147
- expect(members.me).toEqual({
148
- id: pusher.connection.socket_id,
149
- info: {
150
- name: "Integration " + pusher.connection.socket_id,
151
- email: "integration-" + pusher.connection.socket_id + "@example.com"
152
- }
153
- });
154
- });
155
-
156
- it("should receive a member added event", async function() {
157
- var pusher1 = getPusher1();
158
- var pusher2 = getPusher2();
159
- var channelName = Integration.getRandomName("presence-integration_member_added");
160
-
161
- var member = null;
162
- subscribe(pusher1, channelName, function(channel) {
163
- channel.bind("pusher:member_added", function(m) {
164
- member = m;
165
- });
166
-
167
- subscribe(pusher2, channelName, function() {});
168
- });
169
-
170
- await waitsFor(function() {
171
- return member !== null;
172
- }, "the member added event", 10000);
173
-
174
- expect(member.id).toEqual(pusher2.connection.socket_id);
175
- expect(member).toEqual({
176
- id: pusher2.connection.socket_id,
177
- info: {
178
- name: "Integration " + pusher2.connection.socket_id,
179
- email: "integration-" + pusher2.connection.socket_id + "@example.com"
180
- }
181
- });
182
-
183
- pusher1.unsubscribe(channelName);
184
- pusher2.unsubscribe(channelName);
185
- });
186
-
187
- it("should receive a member removed event", async function() {
188
- var pusher1 = getPusher1();
189
- var pusher2 = getPusher2();
190
- var channelName = Integration.getRandomName("presence-integration_member_removed");
191
-
192
- var member = null;
193
- subscribe(pusher2, channelName, function(channel) {
194
- channel.bind("pusher:member_added", function(_) {
195
- channel.bind("pusher:member_removed", function(m) {
196
- member = m;
197
- });
198
- pusher1.unsubscribe(channelName);
199
- });
200
-
201
- subscribe(pusher1, channelName, function() {});
202
- });
203
-
204
- await waitsFor(function() {
205
- return member !== null;
206
- }, "the member removed event", 10000);
207
-
208
- expect(member.id).toEqual(pusher1.connection.socket_id);
209
- expect(member).toEqual({
210
- id: pusher1.connection.socket_id,
211
- info: {
212
- name: "Integration " + pusher1.connection.socket_id,
213
- email: "integration-" + pusher1.connection.socket_id + "@example.com"
214
- }
215
- });
216
-
217
- pusher2.unsubscribe(channelName);
218
- });
219
-
220
- it("should maintain correct members count", async function() {
221
- var pusher1 = getPusher1();
222
- var pusher2 = getPusher2();
223
- var channelName = Integration.getRandomName("presence-integration_member_count");
224
-
225
- var channel1, channel2;
226
-
227
- var onSubscribed1 = jasmine.createSpy("onSubscribed1");
228
- var onSubscribed2 = jasmine.createSpy("onSubscribed2");
229
- var onMemberAdded = jasmine.createSpy("onMemberAdded");
230
- var onMemberRemoved = jasmine.createSpy("onMemberRemoved");
231
-
232
- channel1 = subscribe(pusher1, channelName, onSubscribed1);
233
- expect(channel1.members.count).toEqual(0);
234
-
235
- await waitsFor(function() {
236
- return onSubscribed1.calls.count() > 0;
237
- }, "first connection to subscribe", 10000);
238
-
239
- expect(channel1.members.count).toEqual(1);
240
- channel1.bind("pusher:member_added", onMemberAdded);
241
- channel2 = subscribe(pusher2, channelName, onSubscribed2);
242
-
243
- await waitsFor(function() {
244
- return onSubscribed2.calls.count() > 0;
245
- }, "second connection to subscribe", 10000);
246
-
247
- expect(channel2.members.count).toEqual(2);
248
-
249
- await waitsFor(function() {
250
- return onMemberAdded.calls.count() > 0;
251
- }, "member added event", 10000);
252
-
253
- expect(channel1.members.count).toEqual(2);
254
- channel2.bind("pusher:member_removed", onMemberRemoved);
255
- pusher1.unsubscribe(channelName);
256
-
257
- await waitsFor(function() {
258
- return onMemberRemoved.calls.count() > 0;
259
- }, "member removed event", 10000);
260
-
261
- expect(channel2.members.count).toEqual(1);
262
- });
263
-
264
- it("should maintain correct members data", async function() {
265
- var pusher1 = getPusher1();
266
- var pusher2 = getPusher2();
267
- var channelName = Integration.getRandomName("presence-integration_member_count");
268
-
269
- var channel1, channel2;
270
-
271
- var onSubscribed1 = jasmine.createSpy("onSubscribed1");
272
- var onSubscribed2 = jasmine.createSpy("onSubscribed2");
273
- var onMemberAdded = jasmine.createSpy("onMemberAdded");
274
- var onMemberRemoved = jasmine.createSpy("onMemberRemoved");
275
-
276
- var member1 = {
277
- id: pusher1.connection.socket_id,
278
- info: {
279
- name: "Integration " + pusher1.connection.socket_id,
280
- email: "integration-" + pusher1.connection.socket_id + "@example.com"
281
- }
282
- };
283
- var member2 = {
284
- id: pusher2.connection.socket_id,
285
- info: {
286
- name: "Integration " + pusher2.connection.socket_id,
287
- email: "integration-" + pusher2.connection.socket_id + "@example.com"
288
- }
289
- };
290
-
291
- channel1 = subscribe(pusher1, channelName, onSubscribed1);
292
-
293
- await waitsFor(function() {
294
- return onSubscribed1.calls.count() > 0;
295
- }, "first connection to subscribe", 10000);
296
-
297
- expect(channel1.members.get(pusher1.connection.socket_id))
298
- .toEqual(member1);
299
- expect(channel1.members.get(pusher2.connection.socket_id))
300
- .toBe(null);
301
-
302
- expect(channel1.members.me).toEqual(member1);
303
-
304
- channel1.bind("pusher:member_added", onMemberAdded);
305
- channel2 = subscribe(pusher2, channelName, onSubscribed2);
306
-
307
- await waitsFor(function() {
308
- return onSubscribed2.calls.count() > 0;
309
- }, "second connection to subscribe", 10000);
310
-
311
- expect(channel2.members.get(pusher1.connection.socket_id))
312
- .toEqual(member1);
313
- expect(channel2.members.get(pusher2.connection.socket_id))
314
- .toEqual(member2);
315
-
316
- expect(channel2.members.me).toEqual(member2);
317
-
318
- await waitsFor(function() {
319
- return onMemberAdded.calls.count() > 0;
320
- }, "member added event", 10000);
321
-
322
- expect(channel1.members.get(pusher1.connection.socket_id))
323
- .toEqual(member1);
324
- expect(channel1.members.get(pusher2.connection.socket_id))
325
- .toEqual(member2);
326
-
327
- channel2.bind("pusher:member_removed", onMemberRemoved);
328
- pusher1.unsubscribe(channelName);
329
-
330
- await waitsFor(function() {
331
- return onMemberRemoved.calls.count() > 0;
332
- }, "member removed event", 10000);
333
-
334
- expect(channel2.members.get(pusher1.connection.socket_id))
335
- .toBe(null);
336
- expect(channel2.members.get(pusher2.connection.socket_id))
337
- .toEqual(member2);
338
- });
339
- }
340
- function buildClientEventsTests(getPusher1, getPusher2, prefix) {
341
- it("should receive a client event sent by another connection", async function() {
342
- var pusher1 = getPusher1();
343
- var pusher2 = getPusher2();
344
-
345
- var channelName = Integration.getRandomName((prefix || "") + "integration_client_events");
346
-
347
- var channel1, channel2;
348
- var onSubscribed1 = jasmine.createSpy("onSubscribed1");
349
- var onSubscribed2 = jasmine.createSpy("onSubscribed2");
350
-
351
- var eventName = "client-test";
352
- var data = { foo: "bar" };
353
- var onEvent1 = jasmine.createSpy("onEvent1");
354
- var onEvent2 = jasmine.createSpy("onEvent2");
355
-
356
-
357
- channel1 = subscribe(pusher1, channelName, onSubscribed1);
358
- channel2 = subscribe(pusher2, channelName, onSubscribed2);
359
-
360
- await waitsFor(function() {
361
- return onSubscribed1.calls.count() > 0 && onSubscribed2.calls.count() > 0;
362
- }, "both connections to subscribe", 10000);
363
-
364
- channel1.bind(eventName, onEvent1);
365
- channel2.bind(eventName, onEvent2);
366
- pusher1.send_event(eventName, data, channelName);
367
-
368
- await waitsFor(function() {
369
- return onEvent2.calls.count();
370
- }, "second connection to receive a message", 10000);
371
-
372
- pusher1.unsubscribe(channelName);
373
- pusher2.unsubscribe(channelName);
374
- });
375
-
376
- it("should not receive a client event sent by itself", async function() {
377
- var pusher = getPusher1();
378
-
379
- var channelName = Integration.getRandomName((prefix || "") + "integration_client_events");
380
- var onSubscribed = jasmine.createSpy("onSubscribed");
381
-
382
- var eventName = "client-test";
383
- var onEvent = jasmine.createSpy("onEvent");
384
- var timer = null;
385
-
386
- var channel = subscribe(pusher, channelName, onSubscribed);
387
- await waitsFor(function() {
388
- return onSubscribed.calls.count() > 0;
389
- }, "connection to subscribe", 10000);
390
-
391
- channel.bind(eventName, onEvent);
392
- pusher.send_event(eventName, {}, channelName);
393
- await delay(5000);
394
-
395
- expect(onEvent).not.toHaveBeenCalled();
396
- pusher.unsubscribe(channelName);
397
- });
398
- }
399
- function buildPublicChannelTests(getPusher, prefix) {
400
- it("should subscribe and receive a message sent via REST API", async function() {
401
- var pusher = getPusher();
402
- var channelName = Integration.getRandomName((prefix || "") + "integration");
403
-
404
- var onSubscribed = jasmine.createSpy("onSubscribed");
405
- var channel = subscribe(pusher, channelName, onSubscribed);
406
-
407
- var eventName = "integration_event";
408
- var data = { x: 1, y: "z" };
409
- var received = null;
410
-
411
- await waitsFor(function() {
412
- return onSubscribed.calls.count();
413
- }, "subscription to succeed", 10000);
414
-
415
- channel.bind(eventName, function(message) {
416
- received = message;
417
- });
418
- Integration.sendAPIMessage({
419
- url: Integration.API_URL + "/v2/send",
420
- channel: channelName,
421
- event: eventName,
422
- data: data
423
- });
424
-
425
- await waitsFor(function() {
426
- return received !== null;
427
- }, "message to get delivered", 10000);
428
-
429
- expect(received).toEqual(data);
430
- pusher.unsubscribe(channelName);
431
- });
432
-
433
- it("should not receive messages after unsubscribing", async function() {
434
- var pusher = getPusher();
435
- var channelName = Integration.getRandomName((prefix || "") + "integration");
436
-
437
- var onSubscribed = jasmine.createSpy("onSubscribed");
438
- var channel = subscribe(pusher, channelName, onSubscribed);
439
-
440
- var eventName = "after_unsubscribing";
441
- var received = null;
442
- var timer = null;
443
-
444
- await waitsFor(function() {
445
- return onSubscribed.calls.count();
446
- }, "subscription to succeed", 10000);
447
-
448
- channel.bind(eventName, function(message) {
449
- received = message;
450
- });
451
- pusher.unsubscribe(channelName);
452
- Integration.sendAPIMessage({
453
- url: Integration.API_URL + "/v2/send",
454
- channel: channelName,
455
- event: eventName,
456
- data: {}
457
- });
458
- await delay(5000);
459
- expect(received).toBe(null);
460
- });
461
-
462
- it("should handle unsubscribing as an idempotent operation", async function() {
463
- var pusher = getPusher();
464
- var channelName = Integration.getRandomName((prefix || "") + "integration");
465
-
466
- var onSubscribed = jasmine.createSpy("onSubscribed");
467
- subscribe(pusher, channelName, onSubscribed);
468
-
469
- await waitsFor(function() {
470
- return onSubscribed.calls.count();
471
- }, "subscription to succeed", 10000);
472
-
473
- pusher.unsubscribe(channelName);
474
- pusher.unsubscribe(channelName);
475
- pusher.unsubscribe(channelName);
476
- });
477
-
478
- it("should handle cancelling pending subscription", async function() {
479
- var pusher = getPusher();
480
- var channelName = Integration.getRandomName((prefix || "") + "integration");
481
-
482
- var eventName = "after_unsubscribing";
483
- var received = null;
484
- var timer = null;
485
-
486
- var channel = pusher.subscribe(channelName);
487
- channel.bind(eventName, function(message) {
488
- received = message;
489
- });
490
-
491
- pusher.unsubscribe(channelName);
492
- await waitsFor(function() {
493
- return !channel.subscriptionPending;
494
- }, "subscription to succeed", 10000);
495
-
496
- Integration.sendAPIMessage({
497
- url: Integration.API_URL + "/v2/send",
498
- channel: channelName,
499
- event: eventName,
500
- data: {}
501
- });
502
- await delay(5000);
503
-
504
- expect(channel.subscribed).toEqual(false);
505
- expect(received).toBe(null);
506
- });
507
-
508
- it("should handle reinstating cancelled pending subscription", async function() {
509
- var pusher = getPusher();
510
- var channelName = Integration.getRandomName((prefix || "") + "integration");
511
-
512
- var eventName = "after_subscribing";
513
- var received = null;
514
- var timer = null;
515
-
516
- var channel = pusher.subscribe(channelName);
517
- channel.bind(eventName, function(message) {
518
- received = message;
519
- });
520
-
521
- pusher.unsubscribe(channelName);
522
- pusher.subscribe(channelName);
523
- await waitsFor(function() {
524
- return !channel.subscriptionPending;
525
- }, "subscription to succeed", 10000);
526
-
527
- Integration.sendAPIMessage({
528
- url: Integration.API_URL + "/v2/send",
529
- channel: channelName,
530
- event: eventName,
531
- data: {}
532
- });
533
- await delay(10000);
534
-
535
- expect(channel.subscribed).toEqual(true);
536
- expect(received).not.toBe(null);
537
- });
538
- }
539
-
540
- function buildSubscriptionStateTests(getPusher, prefix) {
541
- it("sub-sub = sub", async function() {
542
- var pusher = getPusher();
543
- var channelName = Integration.getRandomName((prefix || "") + "integration");
544
-
545
- pusher.subscribe(channelName)
546
- expect(pusher.channel(channelName).subscribed).toEqual(false);
547
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
548
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
549
- pusher.subscribe(channelName)
550
- expect(pusher.channel(channelName).subscribed).toEqual(false);
551
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
552
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
553
-
554
- await waitsFor(function() {
555
- return pusher.channel(channelName).subscribed;
556
- }, "subscription to finish", 10000);
557
-
558
- expect(pusher.channel(channelName).subscribed).toEqual(true);
559
- expect(pusher.channel(channelName).subscriptionPending).toEqual(false);
560
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
561
- });
562
-
563
- it("sub-wait-sub = sub", async function() {
564
- var pusher = getPusher();
565
- var channelName = Integration.getRandomName((prefix || "") + "integration");
566
-
567
- pusher.subscribe(channelName)
568
- expect(pusher.channel(channelName).subscribed).toEqual(false);
569
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
570
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
571
-
572
- await waitsFor(function() {
573
- return pusher.channel(channelName).subscribed;
574
- }, "subscription to finish", 10000);
575
-
576
- expect(pusher.channel(channelName).subscribed).toEqual(true);
577
- expect(pusher.channel(channelName).subscriptionPending).toEqual(false);
578
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
579
-
580
- pusher.subscribe(channelName)
581
- expect(pusher.channel(channelName).subscribed).toEqual(true);
582
- expect(pusher.channel(channelName).subscriptionPending).toEqual(false);
583
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
584
- });
585
-
586
- it("sub-unsub = NOP", async function() {
587
- var pusher = getPusher();
588
- var channelName = Integration.getRandomName((prefix || "") + "integration");
589
-
590
- pusher.subscribe(channelName)
591
- expect(pusher.channel(channelName).subscribed).toEqual(false);
592
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
593
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
594
-
595
- pusher.unsubscribe(channelName)
596
- expect(pusher.channel(channelName).subscribed).toEqual(false);
597
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
598
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(true);
599
-
600
- // there is no easy way to know when an unsubscribe request has been
601
- // actioned by the server, so we just wait a while
602
- await delay(5000);
603
-
604
- expect(pusher.channel(channelName)).toBe(undefined);
605
- });
606
-
607
- it("sub-wait-unsub = NOP", async function() {
608
- var pusher = getPusher();
609
- var channelName = Integration.getRandomName((prefix || "") + "integration");
610
-
611
- pusher.subscribe(channelName)
612
- expect(pusher.channel(channelName).subscribed).toEqual(false);
613
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
614
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
615
-
616
- await waitsFor(function() {
617
- return pusher.channel(channelName).subscribed;
618
- }, "subscription to finish", 10000);
619
-
620
- expect(pusher.channel(channelName).subscribed).toEqual(true);
621
- expect(pusher.channel(channelName).subscriptionPending).toEqual(false);
622
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
623
-
624
- pusher.unsubscribe(channelName)
625
- expect(pusher.channel(channelName)).toBe(undefined);
626
- });
627
-
628
- it("sub-unsub-sub = sub", async function() {
629
- var pusher = getPusher();
630
- var channelName = Integration.getRandomName((prefix || "") + "integration");
631
-
632
- pusher.subscribe(channelName)
633
- expect(pusher.channel(channelName).subscribed).toEqual(false);
634
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
635
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
636
-
637
- pusher.unsubscribe(channelName)
638
- expect(pusher.channel(channelName).subscribed).toEqual(false);
639
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
640
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(true);
641
-
642
- pusher.subscribe(channelName)
643
- expect(pusher.channel(channelName).subscribed).toEqual(false);
644
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
645
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
646
-
647
- await waitsFor(function() {
648
- return pusher.channel(channelName).subscribed;
649
- }, "subscription to finish", 10000);
650
-
651
- expect(pusher.channel(channelName).subscribed).toEqual(true);
652
- expect(pusher.channel(channelName).subscriptionPending).toEqual(false);
653
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
654
- });
655
-
656
- it("sub-unsub-wait-sub = sub", async function() {
657
- var pusher = getPusher();
658
- var channelName = Integration.getRandomName((prefix || "") + "integration");
659
-
660
- pusher.subscribe(channelName)
661
- expect(pusher.channel(channelName).subscribed).toEqual(false);
662
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
663
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
664
-
665
- pusher.unsubscribe(channelName)
666
- expect(pusher.channel(channelName).subscribed).toEqual(false);
667
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
668
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(true);
669
-
670
- // there is no easy way to know when an unsubscribe request has been
671
- // actioned by the server, so we just wait a while
672
- await delay(5000);
673
- expect(pusher.channel(channelName)).toBe(undefined);
674
-
675
- pusher.subscribe(channelName)
676
- expect(pusher.channel(channelName).subscribed).toEqual(false);
677
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
678
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
679
-
680
- await waitsFor(function() {
681
- return pusher.channel(channelName).subscribed;
682
- }, "subscription to finish", 10000);
683
-
684
- expect(pusher.channel(channelName).subscribed).toEqual(true);
685
- expect(pusher.channel(channelName).subscriptionPending).toEqual(false);
686
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
687
- });
688
-
689
- it("sub-unsub-unsub = NOP", async function() {
690
- var pusher = getPusher();
691
- var channelName = Integration.getRandomName((prefix || "") + "integration");
692
-
693
- pusher.subscribe(channelName)
694
- expect(pusher.channel(channelName).subscribed).toEqual(false);
695
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
696
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(false);
697
-
698
- pusher.unsubscribe(channelName)
699
- expect(pusher.channel(channelName).subscribed).toEqual(false);
700
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
701
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(true);
702
-
703
- pusher.unsubscribe(channelName)
704
- expect(pusher.channel(channelName).subscribed).toEqual(false);
705
- expect(pusher.channel(channelName).subscriptionPending).toEqual(true);
706
- expect(pusher.channel(channelName).subscriptionCancelled).toEqual(true);
707
-
708
- // there is no easy way to know when an unsubscribe request has been
709
- // actioned by the server, so we just wait a while
710
- await delay(5000);
711
-
712
- expect(pusher.channel(channelName)).toBe(undefined);
713
- });
714
- }
715
- module.exports = {build}