pingerchips-js 1.0.1-a → 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 (455) 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/pingerchips.js +0 -10870
  19. package/dist/node/pingerchips.js.map +0 -1
  20. package/dist/node/pusher.js +0 -10870
  21. package/dist/node/pusher.js.map +0 -1
  22. package/dist/react-native/pingerchips.js +0 -9
  23. package/dist/react-native/pingerchips.js.map +0 -1
  24. package/dist/react-native/pusher.js +0 -9
  25. package/dist/react-native/pusher.js.map +0 -1
  26. package/dist/web/json2.js +0 -486
  27. package/dist/web/json2.min.js +0 -1
  28. package/dist/web/pingerchips-with-encryption.js +0 -7009
  29. package/dist/web/pingerchips-with-encryption.js.map +0 -1
  30. package/dist/web/pingerchips-with-encryption.min.js +0 -9
  31. package/dist/web/pingerchips-with-encryption.min.js.map +0 -1
  32. package/dist/web/pingerchips.js +0 -4587
  33. package/dist/web/pingerchips.js.map +0 -1
  34. package/dist/web/pingerchips.min.js +0 -9
  35. package/dist/web/pingerchips.min.js.map +0 -1
  36. package/dist/web/pusher-with-encryption.js +0 -7009
  37. package/dist/web/pusher-with-encryption.js.map +0 -1
  38. package/dist/web/pusher-with-encryption.min.js +0 -9
  39. package/dist/web/pusher-with-encryption.min.js.map +0 -1
  40. package/dist/web/pusher.js +0 -4587
  41. package/dist/web/pusher.js.map +0 -1
  42. package/dist/web/pusher.min.js +0 -9
  43. package/dist/web/pusher.min.js.map +0 -1
  44. package/dist/web/sockjs.js +0 -2435
  45. package/dist/web/sockjs.min.js +0 -89
  46. package/dist/worker/pingerchips-with-encryption.worker.js +0 -6622
  47. package/dist/worker/pingerchips-with-encryption.worker.js.map +0 -1
  48. package/dist/worker/pingerchips-with-encryption.worker.min.js +0 -9
  49. package/dist/worker/pingerchips-with-encryption.worker.min.js.map +0 -1
  50. package/dist/worker/pingerchips.worker.js +0 -4200
  51. package/dist/worker/pingerchips.worker.js.map +0 -1
  52. package/dist/worker/pingerchips.worker.min.js +0 -9
  53. package/dist/worker/pingerchips.worker.min.js.map +0 -1
  54. package/dist/worker/pusher-with-encryption.worker.js +0 -6622
  55. package/dist/worker/pusher-with-encryption.worker.js.map +0 -1
  56. package/dist/worker/pusher-with-encryption.worker.min.js +0 -9
  57. package/dist/worker/pusher-with-encryption.worker.min.js.map +0 -1
  58. package/dist/worker/pusher.worker.js +0 -4200
  59. package/dist/worker/pusher.worker.js.map +0 -1
  60. package/dist/worker/pusher.worker.min.js +0 -9
  61. package/dist/worker/pusher.worker.min.js.map +0 -1
  62. package/index.d.ts +0 -29
  63. package/integration_tests_server/index.js +0 -176
  64. package/integration_tests_server/package-lock.json +0 -1177
  65. package/integration_tests_server/package.json +0 -15
  66. package/node.js +0 -1
  67. package/pusher-with-encryption/index.js +0 -1
  68. package/react-native/index.d.ts +0 -29
  69. package/react-native/index.js +0 -1
  70. package/spec/config/jasmine/helpers/reporter.js +0 -14
  71. package/spec/config/jasmine/integration.json +0 -13
  72. package/spec/config/jasmine/unit.json +0 -13
  73. package/spec/config/jasmine/webpack.integration.js +0 -33
  74. package/spec/config/jasmine/webpack.unit.js +0 -30
  75. package/spec/config/karma/available_browsers.json +0 -4957
  76. package/spec/config/karma/config.ci.js +0 -25
  77. package/spec/config/karma/config.common.js +0 -50
  78. package/spec/config/karma/config.integration.js +0 -26
  79. package/spec/config/karma/config.unit.js +0 -10
  80. package/spec/config/karma/config.worker.js +0 -34
  81. package/spec/config/karma/integration.js +0 -24
  82. package/spec/config/karma/unit.js +0 -20
  83. package/spec/javascripts/helpers/mocks.js +0 -274
  84. package/spec/javascripts/helpers/node/integration.js +0 -33
  85. package/spec/javascripts/helpers/node/mock-dom-dependencies.ts +0 -1
  86. package/spec/javascripts/helpers/pusher_integration.js +0 -1
  87. package/spec/javascripts/helpers/pusher_integration_class.ts +0 -11
  88. package/spec/javascripts/helpers/timers/promises.js +0 -9
  89. package/spec/javascripts/helpers/waitsFor.js +0 -37
  90. package/spec/javascripts/helpers/web/integration.js +0 -44
  91. package/spec/javascripts/helpers/worker/mock-dom-dependencies.js +0 -1
  92. package/spec/javascripts/integration/core/cluster_config_spec.js +0 -153
  93. package/spec/javascripts/integration/core/falling_back_spec.js +0 -195
  94. package/spec/javascripts/integration/core/pusher_spec/index.js +0 -68
  95. package/spec/javascripts/integration/core/pusher_spec/test_builder.js +0 -715
  96. package/spec/javascripts/integration/core/timeout_configuration_spec.js +0 -200
  97. package/spec/javascripts/integration/core/transport_lists_spec.js +0 -103
  98. package/spec/javascripts/integration/index.node.js +0 -12
  99. package/spec/javascripts/integration/index.web.js +0 -63
  100. package/spec/javascripts/integration/index.worker.js +0 -13
  101. package/spec/javascripts/integration/web/dom/jsonp_spec.js +0 -97
  102. package/spec/javascripts/integration/web/dom/script_request_spec.js +0 -90
  103. package/spec/javascripts/polyfills/index.js +0 -105
  104. package/spec/javascripts/unit/core/channels/channel_spec.js +0 -355
  105. package/spec/javascripts/unit/core/channels/channels_spec.js +0 -94
  106. package/spec/javascripts/unit/core/channels/encrypted_channel_spec.js +0 -343
  107. package/spec/javascripts/unit/core/channels/presence_channel_spec.js +0 -553
  108. package/spec/javascripts/unit/core/channels/private_channel_spec.js +0 -182
  109. package/spec/javascripts/unit/core/config_spec.js +0 -507
  110. package/spec/javascripts/unit/core/connection/connection_manager_spec.js +0 -656
  111. package/spec/javascripts/unit/core/connection/connection_spec.js +0 -286
  112. package/spec/javascripts/unit/core/connection/handshake_spec.js +0 -160
  113. package/spec/javascripts/unit/core/connection/protocol_spec.js +0 -420
  114. package/spec/javascripts/unit/core/defaults_spec.js +0 -26
  115. package/spec/javascripts/unit/core/events_dispatcher_spec.js +0 -385
  116. package/spec/javascripts/unit/core/http/http_polling_socket_spec.js +0 -60
  117. package/spec/javascripts/unit/core/http/http_request_spec.js +0 -185
  118. package/spec/javascripts/unit/core/http/http_socket_spec.js +0 -370
  119. package/spec/javascripts/unit/core/http/http_streaming_socket_spec.js +0 -56
  120. package/spec/javascripts/unit/core/http/http_xhr_request_spec.js +0 -164
  121. package/spec/javascripts/unit/core/logger_spec.js +0 -133
  122. package/spec/javascripts/unit/core/pusher_spec.js +0 -613
  123. package/spec/javascripts/unit/core/pusher_with_encryption_spec.js +0 -18
  124. package/spec/javascripts/unit/core/strategies/best_connected_ever_strategy_spec.js +0 -104
  125. package/spec/javascripts/unit/core/strategies/delayed_strategy_spec.js +0 -95
  126. package/spec/javascripts/unit/core/strategies/first_connected_strategy_spec.js +0 -68
  127. package/spec/javascripts/unit/core/strategies/if_strategy_spec.js +0 -165
  128. package/spec/javascripts/unit/core/strategies/sequential_strategy_spec.js +0 -213
  129. package/spec/javascripts/unit/core/strategies/transport_strategy_spec.js +0 -250
  130. package/spec/javascripts/unit/core/strategies/websocket_prioritized_cached_strategy_spec.js +0 -400
  131. package/spec/javascripts/unit/core/timeline/timeline_spec.js +0 -153
  132. package/spec/javascripts/unit/core/transports/assistant_to_the_transport_manager_spec.js +0 -223
  133. package/spec/javascripts/unit/core/transports/hosts_and_ports_spec.js +0 -85
  134. package/spec/javascripts/unit/core/transports/transport_connection_spec.js +0 -585
  135. package/spec/javascripts/unit/core/transports/transport_manager_spec.js +0 -64
  136. package/spec/javascripts/unit/core/user_spec.js +0 -303
  137. package/spec/javascripts/unit/core/utils/periodic_timer_spec.js +0 -74
  138. package/spec/javascripts/unit/core/utils/timers_spec.js +0 -157
  139. package/spec/javascripts/unit/core/utils/url_store_spec.js +0 -14
  140. package/spec/javascripts/unit/core/watchlist_spec.js +0 -48
  141. package/spec/javascripts/unit/core_with_runtime/auth/channel_authorizer_spec.js +0 -137
  142. package/spec/javascripts/unit/core_with_runtime/auth/deprecated_channel_authorizer_spec.js +0 -48
  143. package/spec/javascripts/unit/core_with_runtime/auth/user_authorizer_spec.js +0 -128
  144. package/spec/javascripts/unit/core_with_runtime/readme.md +0 -5
  145. package/spec/javascripts/unit/index.node.js +0 -11
  146. package/spec/javascripts/unit/index.web.js +0 -12
  147. package/spec/javascripts/unit/index.worker.js +0 -11
  148. package/spec/javascripts/unit/isomorphic/transports/hosts_and_ports_spec.js +0 -82
  149. package/spec/javascripts/unit/isomorphic/transports/transports_spec.js +0 -202
  150. package/spec/javascripts/unit/node/timeline_sender_spec.js +0 -83
  151. package/spec/javascripts/unit/web/dom/dependency_loader_spec.js +0 -249
  152. package/spec/javascripts/unit/web/dom/jsonp_request_spec.js +0 -130
  153. package/spec/javascripts/unit/web/dom/script_receiver_factory_spec.js +0 -68
  154. package/spec/javascripts/unit/web/http/http_xdomain_request_spec.js +0 -222
  155. package/spec/javascripts/unit/web/pusher_authorizer_spec.js +0 -64
  156. package/spec/javascripts/unit/web/timeline/timeline_sender_spec.js +0 -131
  157. package/spec/javascripts/unit/web/transports/hosts_and_ports_spec.js +0 -127
  158. package/spec/javascripts/unit/web/transports/transports_spec.js +0 -444
  159. package/spec/javascripts/unit/worker/channel_authorizer_spec.js +0 -156
  160. package/spec/javascripts/unit/worker/timeline_sender_spec.js +0 -76
  161. package/src/core/auth/auth_transports.ts +0 -18
  162. package/src/core/auth/channel_authorizer.ts +0 -64
  163. package/src/core/auth/deprecated_channel_authorizer.ts +0 -58
  164. package/src/core/auth/options.ts +0 -78
  165. package/src/core/auth/user_authenticator.ts +0 -62
  166. package/src/core/base64.ts +0 -49
  167. package/src/core/channels/channel.ts +0 -163
  168. package/src/core/channels/channel_table.ts +0 -7
  169. package/src/core/channels/channels.ts +0 -85
  170. package/src/core/channels/encrypted_channel.ts +0 -149
  171. package/src/core/channels/members.ts +0 -80
  172. package/src/core/channels/metadata.ts +0 -5
  173. package/src/core/channels/presence_channel.ts +0 -113
  174. package/src/core/channels/private_channel.ts +0 -25
  175. package/src/core/config.ts +0 -189
  176. package/src/core/connection/callbacks.ts +0 -21
  177. package/src/core/connection/connection.ts +0 -160
  178. package/src/core/connection/connection_manager.ts +0 -371
  179. package/src/core/connection/connection_manager_options.ts +0 -14
  180. package/src/core/connection/handshake/handshake_payload.ts +0 -10
  181. package/src/core/connection/handshake/index.ts +0 -90
  182. package/src/core/connection/protocol/action.ts +0 -8
  183. package/src/core/connection/protocol/message-types.ts +0 -8
  184. package/src/core/connection/protocol/protocol.ts +0 -154
  185. package/src/core/defaults.ts +0 -66
  186. package/src/core/errors.ts +0 -69
  187. package/src/core/events/callback.ts +0 -6
  188. package/src/core/events/callback_registry.ts +0 -75
  189. package/src/core/events/callback_table.ts +0 -7
  190. package/src/core/events/dispatcher.ts +0 -84
  191. package/src/core/http/ajax.ts +0 -24
  192. package/src/core/http/http_factory.ts +0 -16
  193. package/src/core/http/http_polling_socket.ts +0 -24
  194. package/src/core/http/http_request.ts +0 -81
  195. package/src/core/http/http_socket.ts +0 -220
  196. package/src/core/http/http_streaming_socket.ts +0 -19
  197. package/src/core/http/request_hooks.ts +0 -9
  198. package/src/core/http/socket_hooks.ts +0 -11
  199. package/src/core/http/state.ts +0 -7
  200. package/src/core/http/url_location.ts +0 -6
  201. package/src/core/logger.ts +0 -53
  202. package/src/core/options.ts +0 -59
  203. package/src/core/pingerchips-licence.js +0 -7
  204. package/src/core/pingerchips-with-encryption.js +0 -1
  205. package/src/core/pingerchips-with-encryption.ts +0 -14
  206. package/src/core/pingerchips.js +0 -2
  207. package/src/core/pingerchips.ts +0 -249
  208. package/src/core/reachability.ts +0 -7
  209. package/src/core/socket.ts +0 -14
  210. package/src/core/strategies/best_connected_ever_strategy.ts +0 -81
  211. package/src/core/strategies/delayed_strategy.ts +0 -48
  212. package/src/core/strategies/first_connected_strategy.ts +0 -28
  213. package/src/core/strategies/if_strategy.ts +0 -34
  214. package/src/core/strategies/sequential_strategy.ts +0 -129
  215. package/src/core/strategies/strategy.ts +0 -8
  216. package/src/core/strategies/strategy_builder.ts +0 -67
  217. package/src/core/strategies/strategy_options.ts +0 -18
  218. package/src/core/strategies/strategy_runner.ts +0 -6
  219. package/src/core/strategies/transport_strategy.ts +0 -144
  220. package/src/core/strategies/websocket_prioritized_cached_strategy.ts +0 -157
  221. package/src/core/timeline/level.ts +0 -7
  222. package/src/core/timeline/timeline.ts +0 -90
  223. package/src/core/timeline/timeline_sender.ts +0 -33
  224. package/src/core/timeline/timeline_transport.ts +0 -11
  225. package/src/core/transports/assistant_to_the_transport_manager.ts +0 -104
  226. package/src/core/transports/ping_delay_options.ts +0 -7
  227. package/src/core/transports/transport.ts +0 -54
  228. package/src/core/transports/transport_connection.ts +0 -241
  229. package/src/core/transports/transport_connection_options.ts +0 -8
  230. package/src/core/transports/transport_hooks.ts +0 -16
  231. package/src/core/transports/transport_manager.ts +0 -52
  232. package/src/core/transports/transports_table.ts +0 -12
  233. package/src/core/transports/url_scheme.ts +0 -13
  234. package/src/core/transports/url_schemes.ts +0 -47
  235. package/src/core/user.ts +0 -186
  236. package/src/core/util.ts +0 -34
  237. package/src/core/utils/collections.ts +0 -353
  238. package/src/core/utils/factory.ts +0 -75
  239. package/src/core/utils/flat_promise.ts +0 -10
  240. package/src/core/utils/timers/abstract_timer.ts +0 -39
  241. package/src/core/utils/timers/index.ts +0 -39
  242. package/src/core/utils/timers/scheduling.ts +0 -11
  243. package/src/core/utils/timers/timed_callback.ts +0 -5
  244. package/src/core/utils/url_store.ts +0 -48
  245. package/src/core/watchlist.ts +0 -31
  246. package/src/d.ts/constants/index.d.ts +0 -5
  247. package/src/d.ts/faye-websocket/faye-websocket.d.ts +0 -21
  248. package/src/d.ts/global/global.d.ts +0 -1
  249. package/src/d.ts/module/module.d.ts +0 -12
  250. package/src/d.ts/tweetnacl-util/index.d.ts +0 -6
  251. package/src/d.ts/window/events.d.ts +0 -4
  252. package/src/d.ts/window/sockjs.d.ts +0 -3
  253. package/src/d.ts/window/websocket.d.ts +0 -4
  254. package/src/d.ts/window/xmlhttprequest.d.ts +0 -3
  255. package/src/runtimes/interface.ts +0 -59
  256. package/src/runtimes/isomorphic/auth/xhr_auth.ts +0 -90
  257. package/src/runtimes/isomorphic/default_strategy.ts +0 -155
  258. package/src/runtimes/isomorphic/http/http.ts +0 -32
  259. package/src/runtimes/isomorphic/http/http_xhr_request.ts +0 -35
  260. package/src/runtimes/isomorphic/runtime.ts +0 -62
  261. package/src/runtimes/isomorphic/timeline/xhr_timeline.ts +0 -50
  262. package/src/runtimes/isomorphic/transports/transport_connection_initializer.ts +0 -19
  263. package/src/runtimes/isomorphic/transports/transports.ts +0 -81
  264. package/src/runtimes/node/net_info.ts +0 -10
  265. package/src/runtimes/node/runtime.ts +0 -68
  266. package/src/runtimes/react-native/net_info.ts +0 -42
  267. package/src/runtimes/react-native/runtime.ts +0 -65
  268. package/src/runtimes/web/auth/jsonp_auth.ts +0 -51
  269. package/src/runtimes/web/browser.ts +0 -24
  270. package/src/runtimes/web/default_strategy.ts +0 -201
  271. package/src/runtimes/web/dom/dependencies.ts +0 -16
  272. package/src/runtimes/web/dom/dependency_loader.ts +0 -93
  273. package/src/runtimes/web/dom/json2.js +0 -486
  274. package/src/runtimes/web/dom/jsonp_request.ts +0 -52
  275. package/src/runtimes/web/dom/script_receiver.ts +0 -8
  276. package/src/runtimes/web/dom/script_receiver_factory.ts +0 -57
  277. package/src/runtimes/web/dom/script_request.ts +0 -85
  278. package/src/runtimes/web/dom/sockjs/COPYING +0 -11
  279. package/src/runtimes/web/dom/sockjs/Changelog +0 -147
  280. package/src/runtimes/web/dom/sockjs/LICENSE-MIT-SockJS +0 -19
  281. package/src/runtimes/web/dom/sockjs/Makefile +0 -109
  282. package/src/runtimes/web/dom/sockjs/README.md +0 -388
  283. package/src/runtimes/web/dom/sockjs/VERSION-GEN +0 -17
  284. package/src/runtimes/web/dom/sockjs/bin/render.coffee +0 -111
  285. package/src/runtimes/web/dom/sockjs/bin/run_testling.sh +0 -135
  286. package/src/runtimes/web/dom/sockjs/lib/all.js +0 -9
  287. package/src/runtimes/web/dom/sockjs/lib/dom.js +0 -185
  288. package/src/runtimes/web/dom/sockjs/lib/dom2.js +0 -280
  289. package/src/runtimes/web/dom/sockjs/lib/eventemitter.js +0 -57
  290. package/src/runtimes/web/dom/sockjs/lib/heartbeater.js +0 -70
  291. package/src/runtimes/web/dom/sockjs/lib/index.js +0 -41
  292. package/src/runtimes/web/dom/sockjs/lib/info.js +0 -117
  293. package/src/runtimes/web/dom/sockjs/lib/json2.min.js +0 -1
  294. package/src/runtimes/web/dom/sockjs/lib/reventtarget.js +0 -55
  295. package/src/runtimes/web/dom/sockjs/lib/simpleevent.js +0 -28
  296. package/src/runtimes/web/dom/sockjs/lib/sockjs.js +0 -288
  297. package/src/runtimes/web/dom/sockjs/lib/test-hooks.js +0 -16
  298. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-eventsource.js +0 -29
  299. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-htmlfile.js +0 -35
  300. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-within.js +0 -100
  301. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-xhr-polling.js +0 -30
  302. package/src/runtimes/web/dom/sockjs/lib/trans-iframe.js +0 -103
  303. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-polling.js +0 -106
  304. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-receiver.js +0 -116
  305. package/src/runtimes/web/dom/sockjs/lib/trans-polling.js +0 -44
  306. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-eventsource.js +0 -41
  307. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-htmlfile.js +0 -65
  308. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-xhr.js +0 -42
  309. package/src/runtimes/web/dom/sockjs/lib/trans-sender.js +0 -138
  310. package/src/runtimes/web/dom/sockjs/lib/trans-xhr.js +0 -29
  311. package/src/runtimes/web/dom/sockjs/lib/utils.js +0 -297
  312. package/src/runtimes/web/dom/sockjs/package.json +0 -18
  313. package/src/runtimes/web/dom/sockjs/version +0 -1
  314. package/src/runtimes/web/http/http.ts +0 -8
  315. package/src/runtimes/web/http/http_xdomain_request.ts +0 -37
  316. package/src/runtimes/web/net_info.ts +0 -50
  317. package/src/runtimes/web/runtime.ts +0 -174
  318. package/src/runtimes/web/timeline/jsonp_timeline.ts +0 -34
  319. package/src/runtimes/web/transports/transport_connection_initializer.ts +0 -39
  320. package/src/runtimes/web/transports/transports.ts +0 -65
  321. package/src/runtimes/worker/auth/fetch_auth.ts +0 -69
  322. package/src/runtimes/worker/net_info.ts +0 -10
  323. package/src/runtimes/worker/runtime.ts +0 -75
  324. package/src/runtimes/worker/timeline/fetch_timeline.ts +0 -39
  325. package/tsconfig.json +0 -26
  326. package/types/spec/javascripts/helpers/node/mock-dom-dependencies.d.ts +0 -1
  327. package/types/spec/javascripts/helpers/pusher_integration_class.d.ts +0 -4
  328. package/types/src/core/auth/auth_transports.d.ts +0 -9
  329. package/types/src/core/auth/channel_authorizer.d.ts +0 -3
  330. package/types/src/core/auth/deprecated_channel_authorizer.d.ts +0 -18
  331. package/types/src/core/auth/options.d.ts +0 -48
  332. package/types/src/core/auth/user_authenticator.d.ts +0 -3
  333. package/types/src/core/base64.d.ts +0 -1
  334. package/types/src/core/channels/channel.d.ts +0 -23
  335. package/types/src/core/channels/channel_table.d.ts +0 -5
  336. package/types/src/core/channels/channels.d.ts +0 -12
  337. package/types/src/core/channels/encrypted_channel.d.ts +0 -15
  338. package/types/src/core/channels/members.d.ts +0 -14
  339. package/types/src/core/channels/metadata.d.ts +0 -4
  340. package/types/src/core/channels/presence_channel.d.ts +0 -13
  341. package/types/src/core/channels/private_channel.d.ts +0 -5
  342. package/types/src/core/config.d.ts +0 -31
  343. package/types/src/core/connection/callbacks.d.ts +0 -18
  344. package/types/src/core/connection/connection.d.ts +0 -16
  345. package/types/src/core/connection/connection_manager.d.ts +0 -50
  346. package/types/src/core/connection/connection_manager_options.d.ts +0 -11
  347. package/types/src/core/connection/handshake/handshake_payload.d.ts +0 -8
  348. package/types/src/core/connection/handshake/index.d.ts +0 -12
  349. package/types/src/core/connection/protocol/action.d.ts +0 -7
  350. package/types/src/core/connection/protocol/message-types.d.ts +0 -7
  351. package/types/src/core/connection/protocol/protocol.d.ts +0 -10
  352. package/types/src/core/defaults.d.ts +0 -26
  353. package/types/src/core/errors.d.ts +0 -28
  354. package/types/src/core/events/callback.d.ts +0 -5
  355. package/types/src/core/events/callback_registry.d.ts +0 -11
  356. package/types/src/core/events/callback_table.d.ts +0 -5
  357. package/types/src/core/events/dispatcher.d.ts +0 -14
  358. package/types/src/core/http/ajax.d.ts +0 -16
  359. package/types/src/core/http/http_factory.d.ts +0 -13
  360. package/types/src/core/http/http_polling_socket.d.ts +0 -3
  361. package/types/src/core/http/http_request.d.ts +0 -17
  362. package/types/src/core/http/http_socket.d.ts +0 -32
  363. package/types/src/core/http/http_streaming_socket.d.ts +0 -3
  364. package/types/src/core/http/request_hooks.d.ts +0 -6
  365. package/types/src/core/http/socket_hooks.d.ts +0 -8
  366. package/types/src/core/http/state.d.ts +0 -6
  367. package/types/src/core/http/url_location.d.ts +0 -5
  368. package/types/src/core/logger.d.ts +0 -11
  369. package/types/src/core/options.d.ts +0 -34
  370. package/types/src/core/pingerchips-with-encryption.d.ts +0 -5
  371. package/types/src/core/pingerchips.d.ts +0 -49
  372. package/types/src/core/reachability.d.ts +0 -5
  373. package/types/src/core/socket.d.ts +0 -12
  374. package/types/src/core/strategies/best_connected_ever_strategy.d.ts +0 -10
  375. package/types/src/core/strategies/delayed_strategy.d.ts +0 -15
  376. package/types/src/core/strategies/first_connected_strategy.d.ts +0 -8
  377. package/types/src/core/strategies/if_strategy.d.ts +0 -10
  378. package/types/src/core/strategies/sequential_strategy.d.ts +0 -16
  379. package/types/src/core/strategies/strategy.d.ts +0 -6
  380. package/types/src/core/strategies/strategy_builder.d.ts +0 -5
  381. package/types/src/core/strategies/strategy_options.d.ts +0 -16
  382. package/types/src/core/strategies/strategy_runner.d.ts +0 -5
  383. package/types/src/core/strategies/transport_strategy.d.ts +0 -15
  384. package/types/src/core/strategies/websocket_prioritized_cached_strategy.d.ts +0 -20
  385. package/types/src/core/timeline/level.d.ts +0 -6
  386. package/types/src/core/timeline/timeline.d.ts +0 -25
  387. package/types/src/core/timeline/timeline_sender.d.ts +0 -13
  388. package/types/src/core/timeline/timeline_transport.d.ts +0 -6
  389. package/types/src/core/transports/assistant_to_the_transport_manager.d.ts +0 -14
  390. package/types/src/core/transports/ping_delay_options.d.ts +0 -6
  391. package/types/src/core/transports/transport.d.ts +0 -8
  392. package/types/src/core/transports/transport_connection.d.ts +0 -35
  393. package/types/src/core/transports/transport_connection_options.d.ts +0 -6
  394. package/types/src/core/transports/transport_hooks.d.ts +0 -13
  395. package/types/src/core/transports/transport_manager.d.ts +0 -14
  396. package/types/src/core/transports/transports_table.d.ts +0 -10
  397. package/types/src/core/transports/url_scheme.d.ts +0 -11
  398. package/types/src/core/transports/url_schemes.d.ts +0 -4
  399. package/types/src/core/user.d.ts +0 -21
  400. package/types/src/core/util.d.ts +0 -8
  401. package/types/src/core/utils/collections.d.ts +0 -18
  402. package/types/src/core/utils/factory.d.ts +0 -29
  403. package/types/src/core/utils/flat_promise.d.ts +0 -6
  404. package/types/src/core/utils/timers/abstract_timer.d.ts +0 -10
  405. package/types/src/core/utils/timers/index.d.ts +0 -9
  406. package/types/src/core/utils/timers/scheduling.d.ts +0 -8
  407. package/types/src/core/utils/timers/timed_callback.d.ts +0 -4
  408. package/types/src/core/utils/url_store.d.ts +0 -4
  409. package/types/src/core/watchlist.d.ts +0 -8
  410. package/types/src/runtimes/interface.d.ts +0 -43
  411. package/types/src/runtimes/isomorphic/auth/xhr_auth.d.ts +0 -3
  412. package/types/src/runtimes/isomorphic/default_strategy.d.ts +0 -5
  413. package/types/src/runtimes/isomorphic/http/http.d.ts +0 -3
  414. package/types/src/runtimes/isomorphic/http/http_xhr_request.d.ts +0 -3
  415. package/types/src/runtimes/isomorphic/runtime.d.ts +0 -2
  416. package/types/src/runtimes/isomorphic/timeline/xhr_timeline.d.ts +0 -6
  417. package/types/src/runtimes/isomorphic/transports/transport_connection_initializer.d.ts +0 -1
  418. package/types/src/runtimes/isomorphic/transports/transports.d.ts +0 -5
  419. package/types/src/runtimes/node/net_info.d.ts +0 -6
  420. package/types/src/runtimes/node/runtime.d.ts +0 -3
  421. package/types/src/runtimes/react-native/net_info.d.ts +0 -8
  422. package/types/src/runtimes/react-native/runtime.d.ts +0 -3
  423. package/types/src/runtimes/web/auth/jsonp_auth.d.ts +0 -3
  424. package/types/src/runtimes/web/browser.d.ts +0 -19
  425. package/types/src/runtimes/web/default_strategy.d.ts +0 -5
  426. package/types/src/runtimes/web/dom/dependencies.d.ts +0 -4
  427. package/types/src/runtimes/web/dom/dependency_loader.d.ts +0 -10
  428. package/types/src/runtimes/web/dom/jsonp_request.d.ts +0 -10
  429. package/types/src/runtimes/web/dom/script_receiver.d.ts +0 -7
  430. package/types/src/runtimes/web/dom/script_receiver_factory.d.ts +0 -10
  431. package/types/src/runtimes/web/dom/script_request.d.ts +0 -9
  432. package/types/src/runtimes/web/http/http.d.ts +0 -2
  433. package/types/src/runtimes/web/http/http_xdomain_request.d.ts +0 -3
  434. package/types/src/runtimes/web/net_info.d.ts +0 -7
  435. package/types/src/runtimes/web/runtime.d.ts +0 -3
  436. package/types/src/runtimes/web/timeline/jsonp_timeline.d.ts +0 -6
  437. package/types/src/runtimes/web/transports/transport_connection_initializer.d.ts +0 -1
  438. package/types/src/runtimes/web/transports/transports.d.ts +0 -2
  439. package/types/src/runtimes/worker/auth/fetch_auth.d.ts +0 -3
  440. package/types/src/runtimes/worker/net_info.d.ts +0 -6
  441. package/types/src/runtimes/worker/runtime.d.ts +0 -3
  442. package/types/src/runtimes/worker/timeline/fetch_timeline.d.ts +0 -6
  443. package/webpack/config.node.js +0 -26
  444. package/webpack/config.react-native.js +0 -35
  445. package/webpack/config.shared.js +0 -50
  446. package/webpack/config.web.js +0 -36
  447. package/webpack/config.worker.js +0 -42
  448. package/webpack/dev.server.js +0 -17
  449. package/webpack/hosting_config.js +0 -6
  450. package/with-encryption/index.d.ts +0 -29
  451. package/with-encryption/index.js +0 -4
  452. package/worker/index.d.ts +0 -29
  453. package/worker/index.js +0 -1
  454. package/worker/with-encryption/index.d.ts +0 -29
  455. package/worker/with-encryption/index.js +0 -1
@@ -1,64 +0,0 @@
1
- import {
2
- AuthRequestType,
3
- InternalAuthOptions,
4
- ChannelAuthorizationHandler,
5
- ChannelAuthorizationRequestParams,
6
- ChannelAuthorizationCallback
7
- } from './options';
8
-
9
- import Runtime from 'runtime';
10
-
11
- const composeChannelQuery = (
12
- params: ChannelAuthorizationRequestParams,
13
- authOptions: InternalAuthOptions
14
- ) => {
15
- var query = 'socket_id=' + encodeURIComponent(params.socketId);
16
-
17
- query += '&channel_name=' + encodeURIComponent(params.channelName);
18
-
19
- for (var key in authOptions.params) {
20
- query +=
21
- '&' +
22
- encodeURIComponent(key) +
23
- '=' +
24
- encodeURIComponent(authOptions.params[key]);
25
- }
26
-
27
- if (authOptions.paramsProvider != null) {
28
- let dynamicParams = authOptions.paramsProvider();
29
- for (var key in dynamicParams) {
30
- query +=
31
- '&' +
32
- encodeURIComponent(key) +
33
- '=' +
34
- encodeURIComponent(dynamicParams[key]);
35
- }
36
- }
37
-
38
- return query;
39
- };
40
-
41
- const ChannelAuthorizer = (
42
- authOptions: InternalAuthOptions
43
- ): ChannelAuthorizationHandler => {
44
- if (typeof Runtime.getAuthorizers()[authOptions.transport] === 'undefined') {
45
- throw `'${authOptions.transport}' is not a recognized auth transport`;
46
- }
47
-
48
- return (
49
- params: ChannelAuthorizationRequestParams,
50
- callback: ChannelAuthorizationCallback
51
- ) => {
52
- const query = composeChannelQuery(params, authOptions);
53
-
54
- Runtime.getAuthorizers()[authOptions.transport](
55
- Runtime,
56
- query,
57
- authOptions,
58
- AuthRequestType.ChannelAuthorization,
59
- callback
60
- );
61
- };
62
- };
63
-
64
- export default ChannelAuthorizer;
@@ -1,58 +0,0 @@
1
- import Channel from '../channels/channel';
2
- import {
3
- ChannelAuthorizationCallback,
4
- ChannelAuthorizationHandler,
5
- ChannelAuthorizationRequestParams,
6
- InternalAuthOptions
7
- } from './options';
8
-
9
- export interface DeprecatedChannelAuthorizer {
10
- authorize(socketId: string, callback: ChannelAuthorizationCallback): void;
11
- }
12
-
13
- export interface ChannelAuthorizerGenerator {
14
- (
15
- channel: Channel,
16
- options: DeprecatedAuthorizerOptions
17
- ): DeprecatedChannelAuthorizer;
18
- }
19
-
20
- export interface DeprecatedAuthOptions {
21
- params?: any;
22
- headers?: any;
23
- }
24
-
25
- export interface DeprecatedAuthorizerOptions {
26
- authTransport: 'ajax' | 'jsonp';
27
- authEndpoint: string;
28
- auth?: DeprecatedAuthOptions;
29
- }
30
-
31
- export const ChannelAuthorizerProxy = (
32
- pusher,
33
- authOptions: InternalAuthOptions,
34
- channelAuthorizerGenerator: ChannelAuthorizerGenerator
35
- ): ChannelAuthorizationHandler => {
36
- const deprecatedAuthorizerOptions: DeprecatedAuthorizerOptions = {
37
- authTransport: authOptions.transport,
38
- authEndpoint: authOptions.endpoint,
39
- auth: {
40
- params: authOptions.params,
41
- headers: authOptions.headers
42
- }
43
- };
44
- return (
45
- params: ChannelAuthorizationRequestParams,
46
- callback: ChannelAuthorizationCallback
47
- ) => {
48
- const channel = pusher.channel(params.channelName);
49
- // This line creates a new channel authorizer every time.
50
- // In the past, this was only done once per channel and reused.
51
- // We can do that again if we want to keep this behavior intact.
52
- const channelAuthorizer: DeprecatedChannelAuthorizer = channelAuthorizerGenerator(
53
- channel,
54
- deprecatedAuthorizerOptions
55
- );
56
- channelAuthorizer.authorize(params.socketId, callback);
57
- };
58
- };
@@ -1,78 +0,0 @@
1
- export enum AuthRequestType {
2
- UserAuthentication = 'user-authentication',
3
- ChannelAuthorization = 'channel-authorization'
4
- }
5
-
6
- export interface ChannelAuthorizationData {
7
- auth: string;
8
- channel_data?: string;
9
- shared_secret?: string;
10
- }
11
-
12
- export type ChannelAuthorizationCallback = (
13
- error: Error | null,
14
- authData: ChannelAuthorizationData | null
15
- ) => void;
16
-
17
- export interface ChannelAuthorizationRequestParams {
18
- socketId: string;
19
- channelName: string;
20
- }
21
-
22
- export interface ChannelAuthorizationHandler {
23
- (
24
- params: ChannelAuthorizationRequestParams,
25
- callback: ChannelAuthorizationCallback
26
- ): void;
27
- }
28
-
29
- export interface UserAuthenticationData {
30
- auth: string;
31
- user_data: string;
32
- }
33
-
34
- export type UserAuthenticationCallback = (
35
- error: Error | null,
36
- authData: UserAuthenticationData | null
37
- ) => void;
38
-
39
- export interface UserAuthenticationRequestParams {
40
- socketId: string;
41
- }
42
-
43
- export interface UserAuthenticationHandler {
44
- (
45
- params: UserAuthenticationRequestParams,
46
- callback: UserAuthenticationCallback
47
- ): void;
48
- }
49
-
50
- export type AuthTransportCallback =
51
- | ChannelAuthorizationCallback
52
- | UserAuthenticationCallback;
53
-
54
- export interface AuthOptionsT<AuthHandler> {
55
- transport: 'ajax' | 'jsonp';
56
- endpoint: string;
57
- params?: any;
58
- headers?: any;
59
- paramsProvider?: () => any;
60
- headersProvider?: () => any;
61
- customHandler?: AuthHandler;
62
- }
63
-
64
- export declare type UserAuthenticationOptions = AuthOptionsT<
65
- UserAuthenticationHandler
66
- >;
67
- export declare type ChannelAuthorizationOptions = AuthOptionsT<
68
- ChannelAuthorizationHandler
69
- >;
70
-
71
- export interface InternalAuthOptions {
72
- transport: 'ajax' | 'jsonp';
73
- endpoint: string;
74
- params?: any;
75
- headers?: any;
76
- paramsProvider?: () => any;
77
- headersProvider?: () => any;
78
- }
@@ -1,62 +0,0 @@
1
- import {
2
- UserAuthenticationCallback,
3
- InternalAuthOptions,
4
- UserAuthenticationHandler,
5
- UserAuthenticationRequestParams,
6
- AuthRequestType
7
- } from './options';
8
-
9
- import Runtime from 'runtime';
10
-
11
- const composeChannelQuery = (
12
- params: UserAuthenticationRequestParams,
13
- authOptions: InternalAuthOptions
14
- ) => {
15
- var query = 'socket_id=' + encodeURIComponent(params.socketId);
16
-
17
- for (var key in authOptions.params) {
18
- query +=
19
- '&' +
20
- encodeURIComponent(key) +
21
- '=' +
22
- encodeURIComponent(authOptions.params[key]);
23
- }
24
-
25
- if (authOptions.paramsProvider != null) {
26
- let dynamicParams = authOptions.paramsProvider();
27
- for (var key in dynamicParams) {
28
- query +=
29
- '&' +
30
- encodeURIComponent(key) +
31
- '=' +
32
- encodeURIComponent(dynamicParams[key]);
33
- }
34
- }
35
-
36
- return query;
37
- };
38
-
39
- const UserAuthenticator = (
40
- authOptions: InternalAuthOptions
41
- ): UserAuthenticationHandler => {
42
- if (typeof Runtime.getAuthorizers()[authOptions.transport] === 'undefined') {
43
- throw `'${authOptions.transport}' is not a recognized auth transport`;
44
- }
45
-
46
- return (
47
- params: UserAuthenticationRequestParams,
48
- callback: UserAuthenticationCallback
49
- ) => {
50
- const query = composeChannelQuery(params, authOptions);
51
-
52
- Runtime.getAuthorizers()[authOptions.transport](
53
- Runtime,
54
- query,
55
- authOptions,
56
- AuthRequestType.UserAuthentication,
57
- callback
58
- );
59
- };
60
- };
61
-
62
- export default UserAuthenticator;
@@ -1,49 +0,0 @@
1
- export default function encode(s: any): string {
2
- return btoa(utob(s));
3
- }
4
-
5
- var fromCharCode = String.fromCharCode;
6
-
7
- var b64chars =
8
- 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
9
- var b64tab = {};
10
-
11
- for (var i = 0, l = b64chars.length; i < l; i++) {
12
- b64tab[b64chars.charAt(i)] = i;
13
- }
14
-
15
- var cb_utob = function(c) {
16
- var cc = c.charCodeAt(0);
17
- return cc < 0x80
18
- ? c
19
- : cc < 0x800
20
- ? fromCharCode(0xc0 | (cc >>> 6)) + fromCharCode(0x80 | (cc & 0x3f))
21
- : fromCharCode(0xe0 | ((cc >>> 12) & 0x0f)) +
22
- fromCharCode(0x80 | ((cc >>> 6) & 0x3f)) +
23
- fromCharCode(0x80 | (cc & 0x3f));
24
- };
25
-
26
- var utob = function(u) {
27
- return u.replace(/[^\x00-\x7F]/g, cb_utob);
28
- };
29
-
30
- var cb_encode = function(ccc) {
31
- var padlen = [0, 2, 1][ccc.length % 3];
32
- var ord =
33
- (ccc.charCodeAt(0) << 16) |
34
- ((ccc.length > 1 ? ccc.charCodeAt(1) : 0) << 8) |
35
- (ccc.length > 2 ? ccc.charCodeAt(2) : 0);
36
- var chars = [
37
- b64chars.charAt(ord >>> 18),
38
- b64chars.charAt((ord >>> 12) & 63),
39
- padlen >= 2 ? '=' : b64chars.charAt((ord >>> 6) & 63),
40
- padlen >= 1 ? '=' : b64chars.charAt(ord & 63)
41
- ];
42
- return chars.join('');
43
- };
44
-
45
- var btoa =
46
- global.btoa ||
47
- function(b) {
48
- return b.replace(/[\s\S]{1,3}/g, cb_encode);
49
- };
@@ -1,163 +0,0 @@
1
- import {
2
- ChannelAuthorizationCallback,
3
- ChannelAuthorizationData
4
- } from '../auth/options';
5
- import { PusherEvent } from '../connection/protocol/message-types';
6
- import * as Errors from '../errors';
7
- import { HTTPAuthError } from '../errors';
8
- import { default as EventsDispatcher } from '../events/dispatcher';
9
- import Logger from '../logger';
10
- import Pingerchips from '../pingerchips';
11
- import UrlStore from '../utils/url_store';
12
- import Metadata from './metadata';
13
-
14
- /** Provides base public channel interface with an event emitter.
15
- *
16
- * Emits:
17
- * - pusher:subscription_succeeded - after subscribing successfully
18
- * - other non-internal events
19
- *
20
- * @param {String} name
21
- * @param {Pingerchips} pusher
22
- */
23
- export default class Channel extends EventsDispatcher {
24
- name: string;
25
- pusher: Pingerchips;
26
- subscribed: boolean;
27
- subscriptionPending: boolean;
28
- subscriptionCancelled: boolean;
29
- subscriptionCount: null;
30
-
31
- constructor(name: string, pusher: Pingerchips) {
32
- super(function(event, data) {
33
- Logger.debug('No callbacks on ' + name + ' for ' + event);
34
- });
35
-
36
- this.name = name;
37
- this.pusher = pusher;
38
- this.subscribed = false;
39
- this.subscriptionPending = false;
40
- this.subscriptionCancelled = false;
41
- }
42
-
43
- /** Skips authorization, since public channels don't require it.
44
- *
45
- * @param {Function} callback
46
- */
47
- authorize(socketId: string, callback: ChannelAuthorizationCallback) {
48
- return callback(null, { auth: '' });
49
- }
50
-
51
- /** Triggers an event */
52
- trigger(event: string, data: any) {
53
- if (event.indexOf('client-') !== 0) {
54
- throw new Errors.BadEventName(
55
- "Event '" + event + "' does not start with 'client-'"
56
- );
57
- }
58
- if (!this.subscribed) {
59
- var suffix = UrlStore.buildLogSuffix('triggeringClientEvents');
60
- Logger.warn(
61
- `Client event triggered before channel 'subscription_succeeded' event . ${suffix}`
62
- );
63
- }
64
- return this.pusher.send_event(event, data, this.name);
65
- }
66
-
67
- /** Signals disconnection to the channel. For internal use only. */
68
- disconnect() {
69
- this.subscribed = false;
70
- this.subscriptionPending = false;
71
- }
72
-
73
- /** Handles a PusherEvent. For internal use only.
74
- *
75
- * @param {PusherEvent} event
76
- */
77
- handleEvent(event: PusherEvent) {
78
- var eventName = event.event;
79
- var data = event.data;
80
- if (eventName === 'pusher_internal:subscription_succeeded') {
81
- this.handleSubscriptionSucceededEvent(event);
82
- } else if (eventName === 'pusher_internal:subscription_count') {
83
- this.handleSubscriptionCountEvent(event);
84
- } else if (eventName.indexOf('pusher_internal:') !== 0) {
85
- var metadata: Metadata = {};
86
- this.emit(eventName, data, metadata);
87
- }
88
- }
89
-
90
- handleSubscriptionSucceededEvent(event: PusherEvent) {
91
- this.subscriptionPending = false;
92
- this.subscribed = true;
93
- if (this.subscriptionCancelled) {
94
- this.pusher.unsubscribe(this.name);
95
- } else {
96
- this.emit('pusher:subscription_succeeded', event.data);
97
- }
98
- }
99
-
100
- handleSubscriptionCountEvent(event: PusherEvent) {
101
- if (event.data.subscription_count) {
102
- this.subscriptionCount = event.data.subscription_count;
103
- }
104
-
105
- this.emit('pusher:subscription_count', event.data);
106
- }
107
-
108
- /** Sends a subscription request. For internal use only. */
109
- subscribe() {
110
- if (this.subscribed) {
111
- return;
112
- }
113
- this.subscriptionPending = true;
114
- this.subscriptionCancelled = false;
115
- this.authorize(
116
- this.pusher.connection.socket_id,
117
- (error: Error | null, data: ChannelAuthorizationData) => {
118
- if (error) {
119
- this.subscriptionPending = false;
120
- // Why not bind to 'pusher:subscription_error' a level up, and log there?
121
- // Binding to this event would cause the warning about no callbacks being
122
- // bound (see constructor) to be suppressed, that's not what we want.
123
- Logger.error(error.toString());
124
- this.emit(
125
- 'pusher:subscription_error',
126
- Object.assign(
127
- {},
128
- {
129
- type: 'AuthError',
130
- error: error.message
131
- },
132
- error instanceof HTTPAuthError ? { status: error.status } : {}
133
- )
134
- );
135
- } else {
136
- this.pusher.send_event('pusher:subscribe', {
137
- auth: data.auth,
138
- channel_data: data.channel_data,
139
- channel: this.name
140
- });
141
- }
142
- }
143
- );
144
- }
145
-
146
- /** Sends an unsubscription request. For internal use only. */
147
- unsubscribe() {
148
- this.subscribed = false;
149
- this.pusher.send_event('pusher:unsubscribe', {
150
- channel: this.name
151
- });
152
- }
153
-
154
- /** Cancels an in progress subscription. For internal use only. */
155
- cancelSubscription() {
156
- this.subscriptionCancelled = true;
157
- }
158
-
159
- /** Reinstates an in progress subscripiton. For internal use only. */
160
- reinstateSubscription() {
161
- this.subscriptionCancelled = false;
162
- }
163
- }
@@ -1,7 +0,0 @@
1
- import Channel from './channel';
2
-
3
- interface ChannelTable {
4
- [index: string]: Channel;
5
- }
6
-
7
- export default ChannelTable;
@@ -1,85 +0,0 @@
1
- import * as Errors from '../errors';
2
- import Pingerchips from '../pingerchips';
3
- import * as Collections from '../utils/collections';
4
- import Factory from '../utils/factory';
5
- import urlStore from '../utils/url_store';
6
- import Channel from './channel';
7
- import ChannelTable from './channel_table';
8
-
9
- /** Handles a channel map. */
10
- export default class Channels {
11
- channels: ChannelTable;
12
-
13
- constructor() {
14
- this.channels = {};
15
- }
16
-
17
- /** Creates or retrieves an existing channel by its name.
18
- *
19
- * @param {String} name
20
- * @param {Pingerchips} pusher
21
- * @return {Channel}
22
- */
23
- add(name: string, pusher: Pingerchips) {
24
- if (!this.channels[name]) {
25
- this.channels[name] = createChannel(name, pusher);
26
- }
27
- return this.channels[name];
28
- }
29
-
30
- /** Returns a list of all channels
31
- *
32
- * @return {Array}
33
- */
34
- all(): Channel[] {
35
- return Collections.values(this.channels);
36
- }
37
-
38
- /** Finds a channel by its name.
39
- *
40
- * @param {String} name
41
- * @return {Channel} channel or null if it doesn't exist
42
- */
43
- find(name: string) {
44
- return this.channels[name];
45
- }
46
-
47
- /** Removes a channel from the map.
48
- *
49
- * @param {String} name
50
- */
51
- remove(name: string) {
52
- var channel = this.channels[name];
53
- delete this.channels[name];
54
- return channel;
55
- }
56
-
57
- /** Proxies disconnection signal to all channels. */
58
- disconnect() {
59
- Collections.objectApply(this.channels, function(channel) {
60
- channel.disconnect();
61
- });
62
- }
63
- }
64
-
65
- function createChannel(name: string, pusher: Pingerchips): Channel {
66
- if (name.indexOf('private-encrypted-') === 0) {
67
- if (pusher.config.nacl) {
68
- return Factory.createEncryptedChannel(name, pusher, pusher.config.nacl);
69
- }
70
- let errMsg =
71
- 'Tried to subscribe to a private-encrypted- channel but no nacl implementation available';
72
- let suffix = urlStore.buildLogSuffix('encryptedChannelSupport');
73
- throw new Errors.UnsupportedFeature(`${errMsg}. ${suffix}`);
74
- } else if (name.indexOf('private-') === 0) {
75
- return Factory.createPrivateChannel(name, pusher);
76
- } else if (name.indexOf('presence-') === 0) {
77
- return Factory.createPresenceChannel(name, pusher);
78
- } else if (name.indexOf('#') === 0) {
79
- throw new Errors.BadChannelName(
80
- 'Cannot create a channel with name "' + name + '".'
81
- );
82
- } else {
83
- return Factory.createChannel(name, pusher);
84
- }
85
- }