pingerchips-js 1.0.0-a

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 (434) hide show
  1. package/.editorconfig +14 -0
  2. package/.github/ISSUE_TEMPLATE.md +11 -0
  3. package/.github/PULL_REQUEST_TEMPLATE.md +14 -0
  4. package/.github/dependabot.yml +14 -0
  5. package/.github/stale.yml +26 -0
  6. package/.github/workflows/release.yml +112 -0
  7. package/.github/workflows/release_pr.yml +43 -0
  8. package/.github/workflows/run-tests.yml +62 -0
  9. package/.gitmodules +3 -0
  10. package/.prettierrc +2 -0
  11. package/CHANGELOG.md +924 -0
  12. package/LICENCE +19 -0
  13. package/Makefile +78 -0
  14. package/README.md +707 -0
  15. package/bower.json +28 -0
  16. package/dist/node/pusher.js +10870 -0
  17. package/dist/node/pusher.js.map +1 -0
  18. package/dist/react-native/pusher.js +9 -0
  19. package/dist/react-native/pusher.js.map +1 -0
  20. package/dist/web/json2.js +486 -0
  21. package/dist/web/json2.min.js +1 -0
  22. package/dist/web/pusher-with-encryption.js +7009 -0
  23. package/dist/web/pusher-with-encryption.js.map +1 -0
  24. package/dist/web/pusher-with-encryption.min.js +9 -0
  25. package/dist/web/pusher-with-encryption.min.js.map +1 -0
  26. package/dist/web/pusher.js +4587 -0
  27. package/dist/web/pusher.js.map +1 -0
  28. package/dist/web/pusher.min.js +9 -0
  29. package/dist/web/pusher.min.js.map +1 -0
  30. package/dist/web/sockjs.js +2435 -0
  31. package/dist/web/sockjs.min.js +89 -0
  32. package/dist/worker/pusher-with-encryption.worker.js +6622 -0
  33. package/dist/worker/pusher-with-encryption.worker.js.map +1 -0
  34. package/dist/worker/pusher-with-encryption.worker.min.js +9 -0
  35. package/dist/worker/pusher-with-encryption.worker.min.js.map +1 -0
  36. package/dist/worker/pusher.worker.js +4200 -0
  37. package/dist/worker/pusher.worker.js.map +1 -0
  38. package/dist/worker/pusher.worker.min.js +9 -0
  39. package/dist/worker/pusher.worker.min.js.map +1 -0
  40. package/index.d.ts +29 -0
  41. package/integration_tests_server/index.js +176 -0
  42. package/integration_tests_server/package-lock.json +1177 -0
  43. package/integration_tests_server/package.json +15 -0
  44. package/node.js +1 -0
  45. package/package.json +70 -0
  46. package/pusher-with-encryption/index.js +1 -0
  47. package/react-native/index.d.ts +29 -0
  48. package/react-native/index.js +1 -0
  49. package/spec/config/jasmine/helpers/reporter.js +14 -0
  50. package/spec/config/jasmine/integration.json +13 -0
  51. package/spec/config/jasmine/unit.json +13 -0
  52. package/spec/config/jasmine/webpack.integration.js +33 -0
  53. package/spec/config/jasmine/webpack.unit.js +30 -0
  54. package/spec/config/karma/available_browsers.json +4957 -0
  55. package/spec/config/karma/config.ci.js +25 -0
  56. package/spec/config/karma/config.common.js +50 -0
  57. package/spec/config/karma/config.integration.js +26 -0
  58. package/spec/config/karma/config.unit.js +10 -0
  59. package/spec/config/karma/config.worker.js +34 -0
  60. package/spec/config/karma/integration.js +24 -0
  61. package/spec/config/karma/unit.js +20 -0
  62. package/spec/javascripts/helpers/mocks.js +274 -0
  63. package/spec/javascripts/helpers/node/integration.js +33 -0
  64. package/spec/javascripts/helpers/node/mock-dom-dependencies.ts +1 -0
  65. package/spec/javascripts/helpers/pusher_integration.js +1 -0
  66. package/spec/javascripts/helpers/pusher_integration_class.ts +12 -0
  67. package/spec/javascripts/helpers/timers/promises.js +9 -0
  68. package/spec/javascripts/helpers/waitsFor.js +37 -0
  69. package/spec/javascripts/helpers/web/integration.js +44 -0
  70. package/spec/javascripts/helpers/worker/mock-dom-dependencies.js +1 -0
  71. package/spec/javascripts/integration/core/cluster_config_spec.js +153 -0
  72. package/spec/javascripts/integration/core/falling_back_spec.js +195 -0
  73. package/spec/javascripts/integration/core/pusher_spec/index.js +68 -0
  74. package/spec/javascripts/integration/core/pusher_spec/test_builder.js +715 -0
  75. package/spec/javascripts/integration/core/timeout_configuration_spec.js +200 -0
  76. package/spec/javascripts/integration/core/transport_lists_spec.js +103 -0
  77. package/spec/javascripts/integration/index.node.js +12 -0
  78. package/spec/javascripts/integration/index.web.js +63 -0
  79. package/spec/javascripts/integration/index.worker.js +13 -0
  80. package/spec/javascripts/integration/web/dom/jsonp_spec.js +97 -0
  81. package/spec/javascripts/integration/web/dom/script_request_spec.js +90 -0
  82. package/spec/javascripts/polyfills/index.js +105 -0
  83. package/spec/javascripts/unit/core/channels/channel_spec.js +355 -0
  84. package/spec/javascripts/unit/core/channels/channels_spec.js +94 -0
  85. package/spec/javascripts/unit/core/channels/encrypted_channel_spec.js +343 -0
  86. package/spec/javascripts/unit/core/channels/presence_channel_spec.js +553 -0
  87. package/spec/javascripts/unit/core/channels/private_channel_spec.js +182 -0
  88. package/spec/javascripts/unit/core/config_spec.js +507 -0
  89. package/spec/javascripts/unit/core/connection/connection_manager_spec.js +656 -0
  90. package/spec/javascripts/unit/core/connection/connection_spec.js +286 -0
  91. package/spec/javascripts/unit/core/connection/handshake_spec.js +160 -0
  92. package/spec/javascripts/unit/core/connection/protocol_spec.js +420 -0
  93. package/spec/javascripts/unit/core/defaults_spec.js +26 -0
  94. package/spec/javascripts/unit/core/events_dispatcher_spec.js +385 -0
  95. package/spec/javascripts/unit/core/http/http_polling_socket_spec.js +60 -0
  96. package/spec/javascripts/unit/core/http/http_request_spec.js +185 -0
  97. package/spec/javascripts/unit/core/http/http_socket_spec.js +370 -0
  98. package/spec/javascripts/unit/core/http/http_streaming_socket_spec.js +56 -0
  99. package/spec/javascripts/unit/core/http/http_xhr_request_spec.js +164 -0
  100. package/spec/javascripts/unit/core/logger_spec.js +133 -0
  101. package/spec/javascripts/unit/core/pusher_spec.js +613 -0
  102. package/spec/javascripts/unit/core/pusher_with_encryption_spec.js +18 -0
  103. package/spec/javascripts/unit/core/strategies/best_connected_ever_strategy_spec.js +104 -0
  104. package/spec/javascripts/unit/core/strategies/delayed_strategy_spec.js +95 -0
  105. package/spec/javascripts/unit/core/strategies/first_connected_strategy_spec.js +68 -0
  106. package/spec/javascripts/unit/core/strategies/if_strategy_spec.js +165 -0
  107. package/spec/javascripts/unit/core/strategies/sequential_strategy_spec.js +213 -0
  108. package/spec/javascripts/unit/core/strategies/transport_strategy_spec.js +250 -0
  109. package/spec/javascripts/unit/core/strategies/websocket_prioritized_cached_strategy_spec.js +400 -0
  110. package/spec/javascripts/unit/core/timeline/timeline_spec.js +153 -0
  111. package/spec/javascripts/unit/core/transports/assistant_to_the_transport_manager_spec.js +223 -0
  112. package/spec/javascripts/unit/core/transports/hosts_and_ports_spec.js +85 -0
  113. package/spec/javascripts/unit/core/transports/transport_connection_spec.js +585 -0
  114. package/spec/javascripts/unit/core/transports/transport_manager_spec.js +64 -0
  115. package/spec/javascripts/unit/core/user_spec.js +303 -0
  116. package/spec/javascripts/unit/core/utils/periodic_timer_spec.js +74 -0
  117. package/spec/javascripts/unit/core/utils/timers_spec.js +157 -0
  118. package/spec/javascripts/unit/core/utils/url_store_spec.js +14 -0
  119. package/spec/javascripts/unit/core/watchlist_spec.js +48 -0
  120. package/spec/javascripts/unit/core_with_runtime/auth/channel_authorizer_spec.js +137 -0
  121. package/spec/javascripts/unit/core_with_runtime/auth/deprecated_channel_authorizer_spec.js +48 -0
  122. package/spec/javascripts/unit/core_with_runtime/auth/user_authorizer_spec.js +128 -0
  123. package/spec/javascripts/unit/core_with_runtime/readme.md +5 -0
  124. package/spec/javascripts/unit/index.node.js +11 -0
  125. package/spec/javascripts/unit/index.web.js +12 -0
  126. package/spec/javascripts/unit/index.worker.js +11 -0
  127. package/spec/javascripts/unit/isomorphic/transports/hosts_and_ports_spec.js +82 -0
  128. package/spec/javascripts/unit/isomorphic/transports/transports_spec.js +202 -0
  129. package/spec/javascripts/unit/node/timeline_sender_spec.js +83 -0
  130. package/spec/javascripts/unit/web/dom/dependency_loader_spec.js +249 -0
  131. package/spec/javascripts/unit/web/dom/jsonp_request_spec.js +130 -0
  132. package/spec/javascripts/unit/web/dom/script_receiver_factory_spec.js +68 -0
  133. package/spec/javascripts/unit/web/http/http_xdomain_request_spec.js +222 -0
  134. package/spec/javascripts/unit/web/pusher_authorizer_spec.js +64 -0
  135. package/spec/javascripts/unit/web/timeline/timeline_sender_spec.js +131 -0
  136. package/spec/javascripts/unit/web/transports/hosts_and_ports_spec.js +127 -0
  137. package/spec/javascripts/unit/web/transports/transports_spec.js +444 -0
  138. package/spec/javascripts/unit/worker/channel_authorizer_spec.js +156 -0
  139. package/spec/javascripts/unit/worker/timeline_sender_spec.js +76 -0
  140. package/src/core/auth/auth_transports.ts +18 -0
  141. package/src/core/auth/channel_authorizer.ts +64 -0
  142. package/src/core/auth/deprecated_channel_authorizer.ts +58 -0
  143. package/src/core/auth/options.ts +78 -0
  144. package/src/core/auth/user_authenticator.ts +62 -0
  145. package/src/core/base64.ts +49 -0
  146. package/src/core/channels/channel.ts +163 -0
  147. package/src/core/channels/channel_table.ts +7 -0
  148. package/src/core/channels/channels.ts +85 -0
  149. package/src/core/channels/encrypted_channel.ts +149 -0
  150. package/src/core/channels/members.ts +80 -0
  151. package/src/core/channels/metadata.ts +5 -0
  152. package/src/core/channels/presence_channel.ts +113 -0
  153. package/src/core/channels/private_channel.ts +25 -0
  154. package/src/core/config.ts +189 -0
  155. package/src/core/connection/callbacks.ts +21 -0
  156. package/src/core/connection/connection.ts +160 -0
  157. package/src/core/connection/connection_manager.ts +371 -0
  158. package/src/core/connection/connection_manager_options.ts +14 -0
  159. package/src/core/connection/handshake/handshake_payload.ts +10 -0
  160. package/src/core/connection/handshake/index.ts +90 -0
  161. package/src/core/connection/protocol/action.ts +8 -0
  162. package/src/core/connection/protocol/message-types.ts +8 -0
  163. package/src/core/connection/protocol/protocol.ts +154 -0
  164. package/src/core/defaults.ts +66 -0
  165. package/src/core/errors.ts +69 -0
  166. package/src/core/events/callback.ts +6 -0
  167. package/src/core/events/callback_registry.ts +75 -0
  168. package/src/core/events/callback_table.ts +7 -0
  169. package/src/core/events/dispatcher.ts +84 -0
  170. package/src/core/http/ajax.ts +24 -0
  171. package/src/core/http/http_factory.ts +16 -0
  172. package/src/core/http/http_polling_socket.ts +24 -0
  173. package/src/core/http/http_request.ts +81 -0
  174. package/src/core/http/http_socket.ts +220 -0
  175. package/src/core/http/http_streaming_socket.ts +19 -0
  176. package/src/core/http/request_hooks.ts +9 -0
  177. package/src/core/http/socket_hooks.ts +11 -0
  178. package/src/core/http/state.ts +7 -0
  179. package/src/core/http/url_location.ts +6 -0
  180. package/src/core/logger.ts +53 -0
  181. package/src/core/options.ts +59 -0
  182. package/src/core/pusher-licence.js +7 -0
  183. package/src/core/pusher-with-encryption.js +1 -0
  184. package/src/core/pusher-with-encryption.ts +14 -0
  185. package/src/core/pusher.js +2 -0
  186. package/src/core/pusher.ts +249 -0
  187. package/src/core/reachability.ts +7 -0
  188. package/src/core/socket.ts +14 -0
  189. package/src/core/strategies/best_connected_ever_strategy.ts +81 -0
  190. package/src/core/strategies/delayed_strategy.ts +48 -0
  191. package/src/core/strategies/first_connected_strategy.ts +28 -0
  192. package/src/core/strategies/if_strategy.ts +34 -0
  193. package/src/core/strategies/sequential_strategy.ts +129 -0
  194. package/src/core/strategies/strategy.ts +8 -0
  195. package/src/core/strategies/strategy_builder.ts +67 -0
  196. package/src/core/strategies/strategy_options.ts +18 -0
  197. package/src/core/strategies/strategy_runner.ts +6 -0
  198. package/src/core/strategies/transport_strategy.ts +144 -0
  199. package/src/core/strategies/websocket_prioritized_cached_strategy.ts +157 -0
  200. package/src/core/timeline/level.ts +7 -0
  201. package/src/core/timeline/timeline.ts +90 -0
  202. package/src/core/timeline/timeline_sender.ts +33 -0
  203. package/src/core/timeline/timeline_transport.ts +11 -0
  204. package/src/core/transports/assistant_to_the_transport_manager.ts +104 -0
  205. package/src/core/transports/ping_delay_options.ts +7 -0
  206. package/src/core/transports/transport.ts +54 -0
  207. package/src/core/transports/transport_connection.ts +241 -0
  208. package/src/core/transports/transport_connection_options.ts +8 -0
  209. package/src/core/transports/transport_hooks.ts +16 -0
  210. package/src/core/transports/transport_manager.ts +52 -0
  211. package/src/core/transports/transports_table.ts +12 -0
  212. package/src/core/transports/url_scheme.ts +13 -0
  213. package/src/core/transports/url_schemes.ts +47 -0
  214. package/src/core/user.ts +186 -0
  215. package/src/core/util.ts +34 -0
  216. package/src/core/utils/collections.ts +353 -0
  217. package/src/core/utils/factory.ts +75 -0
  218. package/src/core/utils/flat_promise.ts +10 -0
  219. package/src/core/utils/timers/abstract_timer.ts +39 -0
  220. package/src/core/utils/timers/index.ts +39 -0
  221. package/src/core/utils/timers/scheduling.ts +11 -0
  222. package/src/core/utils/timers/timed_callback.ts +5 -0
  223. package/src/core/utils/url_store.ts +48 -0
  224. package/src/core/watchlist.ts +31 -0
  225. package/src/d.ts/constants/index.d.ts +5 -0
  226. package/src/d.ts/faye-websocket/faye-websocket.d.ts +21 -0
  227. package/src/d.ts/global/global.d.ts +1 -0
  228. package/src/d.ts/module/module.d.ts +12 -0
  229. package/src/d.ts/tweetnacl-util/index.d.ts +6 -0
  230. package/src/d.ts/window/events.d.ts +4 -0
  231. package/src/d.ts/window/sockjs.d.ts +3 -0
  232. package/src/d.ts/window/websocket.d.ts +4 -0
  233. package/src/d.ts/window/xmlhttprequest.d.ts +3 -0
  234. package/src/runtimes/interface.ts +59 -0
  235. package/src/runtimes/isomorphic/auth/xhr_auth.ts +90 -0
  236. package/src/runtimes/isomorphic/default_strategy.ts +155 -0
  237. package/src/runtimes/isomorphic/http/http.ts +32 -0
  238. package/src/runtimes/isomorphic/http/http_xhr_request.ts +35 -0
  239. package/src/runtimes/isomorphic/runtime.ts +62 -0
  240. package/src/runtimes/isomorphic/timeline/xhr_timeline.ts +50 -0
  241. package/src/runtimes/isomorphic/transports/transport_connection_initializer.ts +19 -0
  242. package/src/runtimes/isomorphic/transports/transports.ts +81 -0
  243. package/src/runtimes/node/net_info.ts +10 -0
  244. package/src/runtimes/node/runtime.ts +68 -0
  245. package/src/runtimes/react-native/net_info.ts +42 -0
  246. package/src/runtimes/react-native/runtime.ts +65 -0
  247. package/src/runtimes/web/auth/jsonp_auth.ts +51 -0
  248. package/src/runtimes/web/browser.ts +24 -0
  249. package/src/runtimes/web/default_strategy.ts +201 -0
  250. package/src/runtimes/web/dom/dependencies.ts +16 -0
  251. package/src/runtimes/web/dom/dependency_loader.ts +93 -0
  252. package/src/runtimes/web/dom/json2.js +486 -0
  253. package/src/runtimes/web/dom/jsonp_request.ts +52 -0
  254. package/src/runtimes/web/dom/script_receiver.ts +8 -0
  255. package/src/runtimes/web/dom/script_receiver_factory.ts +57 -0
  256. package/src/runtimes/web/dom/script_request.ts +85 -0
  257. package/src/runtimes/web/dom/sockjs/COPYING +11 -0
  258. package/src/runtimes/web/dom/sockjs/Changelog +147 -0
  259. package/src/runtimes/web/dom/sockjs/LICENSE-MIT-SockJS +19 -0
  260. package/src/runtimes/web/dom/sockjs/Makefile +109 -0
  261. package/src/runtimes/web/dom/sockjs/README.md +388 -0
  262. package/src/runtimes/web/dom/sockjs/VERSION-GEN +17 -0
  263. package/src/runtimes/web/dom/sockjs/bin/render.coffee +111 -0
  264. package/src/runtimes/web/dom/sockjs/bin/run_testling.sh +135 -0
  265. package/src/runtimes/web/dom/sockjs/lib/all.js +9 -0
  266. package/src/runtimes/web/dom/sockjs/lib/dom.js +185 -0
  267. package/src/runtimes/web/dom/sockjs/lib/dom2.js +280 -0
  268. package/src/runtimes/web/dom/sockjs/lib/eventemitter.js +57 -0
  269. package/src/runtimes/web/dom/sockjs/lib/heartbeater.js +70 -0
  270. package/src/runtimes/web/dom/sockjs/lib/index.js +41 -0
  271. package/src/runtimes/web/dom/sockjs/lib/info.js +117 -0
  272. package/src/runtimes/web/dom/sockjs/lib/json2.min.js +1 -0
  273. package/src/runtimes/web/dom/sockjs/lib/reventtarget.js +55 -0
  274. package/src/runtimes/web/dom/sockjs/lib/simpleevent.js +28 -0
  275. package/src/runtimes/web/dom/sockjs/lib/sockjs.js +288 -0
  276. package/src/runtimes/web/dom/sockjs/lib/test-hooks.js +16 -0
  277. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-eventsource.js +29 -0
  278. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-htmlfile.js +35 -0
  279. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-within.js +100 -0
  280. package/src/runtimes/web/dom/sockjs/lib/trans-iframe-xhr-polling.js +30 -0
  281. package/src/runtimes/web/dom/sockjs/lib/trans-iframe.js +103 -0
  282. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-polling.js +106 -0
  283. package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-receiver.js +116 -0
  284. package/src/runtimes/web/dom/sockjs/lib/trans-polling.js +44 -0
  285. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-eventsource.js +41 -0
  286. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-htmlfile.js +65 -0
  287. package/src/runtimes/web/dom/sockjs/lib/trans-receiver-xhr.js +42 -0
  288. package/src/runtimes/web/dom/sockjs/lib/trans-sender.js +138 -0
  289. package/src/runtimes/web/dom/sockjs/lib/trans-xhr.js +29 -0
  290. package/src/runtimes/web/dom/sockjs/lib/utils.js +297 -0
  291. package/src/runtimes/web/dom/sockjs/package.json +18 -0
  292. package/src/runtimes/web/dom/sockjs/version +1 -0
  293. package/src/runtimes/web/http/http.ts +8 -0
  294. package/src/runtimes/web/http/http_xdomain_request.ts +37 -0
  295. package/src/runtimes/web/net_info.ts +50 -0
  296. package/src/runtimes/web/runtime.ts +174 -0
  297. package/src/runtimes/web/timeline/jsonp_timeline.ts +34 -0
  298. package/src/runtimes/web/transports/transport_connection_initializer.ts +39 -0
  299. package/src/runtimes/web/transports/transports.ts +65 -0
  300. package/src/runtimes/worker/auth/fetch_auth.ts +69 -0
  301. package/src/runtimes/worker/net_info.ts +10 -0
  302. package/src/runtimes/worker/runtime.ts +75 -0
  303. package/src/runtimes/worker/timeline/fetch_timeline.ts +39 -0
  304. package/tsconfig.json +26 -0
  305. package/types/spec/javascripts/helpers/node/mock-dom-dependencies.d.ts +1 -0
  306. package/types/spec/javascripts/helpers/pusher_integration_class.d.ts +4 -0
  307. package/types/src/core/auth/auth_transports.d.ts +9 -0
  308. package/types/src/core/auth/channel_authorizer.d.ts +3 -0
  309. package/types/src/core/auth/deprecated_channel_authorizer.d.ts +18 -0
  310. package/types/src/core/auth/options.d.ts +48 -0
  311. package/types/src/core/auth/user_authenticator.d.ts +3 -0
  312. package/types/src/core/base64.d.ts +1 -0
  313. package/types/src/core/channels/channel.d.ts +23 -0
  314. package/types/src/core/channels/channel_table.d.ts +5 -0
  315. package/types/src/core/channels/channels.d.ts +12 -0
  316. package/types/src/core/channels/encrypted_channel.d.ts +15 -0
  317. package/types/src/core/channels/members.d.ts +14 -0
  318. package/types/src/core/channels/metadata.d.ts +4 -0
  319. package/types/src/core/channels/presence_channel.d.ts +13 -0
  320. package/types/src/core/channels/private_channel.d.ts +5 -0
  321. package/types/src/core/config.d.ts +31 -0
  322. package/types/src/core/connection/callbacks.d.ts +18 -0
  323. package/types/src/core/connection/connection.d.ts +16 -0
  324. package/types/src/core/connection/connection_manager.d.ts +50 -0
  325. package/types/src/core/connection/connection_manager_options.d.ts +11 -0
  326. package/types/src/core/connection/handshake/handshake_payload.d.ts +8 -0
  327. package/types/src/core/connection/handshake/index.d.ts +12 -0
  328. package/types/src/core/connection/protocol/action.d.ts +7 -0
  329. package/types/src/core/connection/protocol/message-types.d.ts +7 -0
  330. package/types/src/core/connection/protocol/protocol.d.ts +10 -0
  331. package/types/src/core/defaults.d.ts +26 -0
  332. package/types/src/core/errors.d.ts +28 -0
  333. package/types/src/core/events/callback.d.ts +5 -0
  334. package/types/src/core/events/callback_registry.d.ts +11 -0
  335. package/types/src/core/events/callback_table.d.ts +5 -0
  336. package/types/src/core/events/dispatcher.d.ts +14 -0
  337. package/types/src/core/http/ajax.d.ts +16 -0
  338. package/types/src/core/http/http_factory.d.ts +13 -0
  339. package/types/src/core/http/http_polling_socket.d.ts +3 -0
  340. package/types/src/core/http/http_request.d.ts +17 -0
  341. package/types/src/core/http/http_socket.d.ts +32 -0
  342. package/types/src/core/http/http_streaming_socket.d.ts +3 -0
  343. package/types/src/core/http/request_hooks.d.ts +6 -0
  344. package/types/src/core/http/socket_hooks.d.ts +8 -0
  345. package/types/src/core/http/state.d.ts +6 -0
  346. package/types/src/core/http/url_location.d.ts +5 -0
  347. package/types/src/core/logger.d.ts +11 -0
  348. package/types/src/core/options.d.ts +34 -0
  349. package/types/src/core/pusher-with-encryption.d.ts +5 -0
  350. package/types/src/core/pusher.d.ts +49 -0
  351. package/types/src/core/reachability.d.ts +5 -0
  352. package/types/src/core/socket.d.ts +12 -0
  353. package/types/src/core/strategies/best_connected_ever_strategy.d.ts +10 -0
  354. package/types/src/core/strategies/delayed_strategy.d.ts +15 -0
  355. package/types/src/core/strategies/first_connected_strategy.d.ts +8 -0
  356. package/types/src/core/strategies/if_strategy.d.ts +10 -0
  357. package/types/src/core/strategies/sequential_strategy.d.ts +16 -0
  358. package/types/src/core/strategies/strategy.d.ts +6 -0
  359. package/types/src/core/strategies/strategy_builder.d.ts +5 -0
  360. package/types/src/core/strategies/strategy_options.d.ts +16 -0
  361. package/types/src/core/strategies/strategy_runner.d.ts +5 -0
  362. package/types/src/core/strategies/transport_strategy.d.ts +15 -0
  363. package/types/src/core/strategies/websocket_prioritized_cached_strategy.d.ts +20 -0
  364. package/types/src/core/timeline/level.d.ts +6 -0
  365. package/types/src/core/timeline/timeline.d.ts +25 -0
  366. package/types/src/core/timeline/timeline_sender.d.ts +13 -0
  367. package/types/src/core/timeline/timeline_transport.d.ts +6 -0
  368. package/types/src/core/transports/assistant_to_the_transport_manager.d.ts +14 -0
  369. package/types/src/core/transports/ping_delay_options.d.ts +6 -0
  370. package/types/src/core/transports/transport.d.ts +8 -0
  371. package/types/src/core/transports/transport_connection.d.ts +35 -0
  372. package/types/src/core/transports/transport_connection_options.d.ts +6 -0
  373. package/types/src/core/transports/transport_hooks.d.ts +13 -0
  374. package/types/src/core/transports/transport_manager.d.ts +14 -0
  375. package/types/src/core/transports/transports_table.d.ts +10 -0
  376. package/types/src/core/transports/url_scheme.d.ts +11 -0
  377. package/types/src/core/transports/url_schemes.d.ts +4 -0
  378. package/types/src/core/user.d.ts +21 -0
  379. package/types/src/core/util.d.ts +8 -0
  380. package/types/src/core/utils/collections.d.ts +18 -0
  381. package/types/src/core/utils/factory.d.ts +29 -0
  382. package/types/src/core/utils/flat_promise.d.ts +6 -0
  383. package/types/src/core/utils/timers/abstract_timer.d.ts +10 -0
  384. package/types/src/core/utils/timers/index.d.ts +9 -0
  385. package/types/src/core/utils/timers/scheduling.d.ts +8 -0
  386. package/types/src/core/utils/timers/timed_callback.d.ts +4 -0
  387. package/types/src/core/utils/url_store.d.ts +4 -0
  388. package/types/src/core/watchlist.d.ts +8 -0
  389. package/types/src/runtimes/interface.d.ts +43 -0
  390. package/types/src/runtimes/isomorphic/auth/xhr_auth.d.ts +3 -0
  391. package/types/src/runtimes/isomorphic/default_strategy.d.ts +5 -0
  392. package/types/src/runtimes/isomorphic/http/http.d.ts +3 -0
  393. package/types/src/runtimes/isomorphic/http/http_xhr_request.d.ts +3 -0
  394. package/types/src/runtimes/isomorphic/runtime.d.ts +2 -0
  395. package/types/src/runtimes/isomorphic/timeline/xhr_timeline.d.ts +6 -0
  396. package/types/src/runtimes/isomorphic/transports/transport_connection_initializer.d.ts +1 -0
  397. package/types/src/runtimes/isomorphic/transports/transports.d.ts +5 -0
  398. package/types/src/runtimes/node/net_info.d.ts +6 -0
  399. package/types/src/runtimes/node/runtime.d.ts +3 -0
  400. package/types/src/runtimes/react-native/net_info.d.ts +8 -0
  401. package/types/src/runtimes/react-native/runtime.d.ts +3 -0
  402. package/types/src/runtimes/web/auth/jsonp_auth.d.ts +3 -0
  403. package/types/src/runtimes/web/browser.d.ts +19 -0
  404. package/types/src/runtimes/web/default_strategy.d.ts +5 -0
  405. package/types/src/runtimes/web/dom/dependencies.d.ts +4 -0
  406. package/types/src/runtimes/web/dom/dependency_loader.d.ts +10 -0
  407. package/types/src/runtimes/web/dom/jsonp_request.d.ts +10 -0
  408. package/types/src/runtimes/web/dom/script_receiver.d.ts +7 -0
  409. package/types/src/runtimes/web/dom/script_receiver_factory.d.ts +10 -0
  410. package/types/src/runtimes/web/dom/script_request.d.ts +9 -0
  411. package/types/src/runtimes/web/http/http.d.ts +2 -0
  412. package/types/src/runtimes/web/http/http_xdomain_request.d.ts +3 -0
  413. package/types/src/runtimes/web/net_info.d.ts +7 -0
  414. package/types/src/runtimes/web/runtime.d.ts +3 -0
  415. package/types/src/runtimes/web/timeline/jsonp_timeline.d.ts +6 -0
  416. package/types/src/runtimes/web/transports/transport_connection_initializer.d.ts +1 -0
  417. package/types/src/runtimes/web/transports/transports.d.ts +2 -0
  418. package/types/src/runtimes/worker/auth/fetch_auth.d.ts +3 -0
  419. package/types/src/runtimes/worker/net_info.d.ts +6 -0
  420. package/types/src/runtimes/worker/runtime.d.ts +3 -0
  421. package/types/src/runtimes/worker/timeline/fetch_timeline.d.ts +6 -0
  422. package/webpack/config.node.js +26 -0
  423. package/webpack/config.react-native.js +35 -0
  424. package/webpack/config.shared.js +50 -0
  425. package/webpack/config.web.js +36 -0
  426. package/webpack/config.worker.js +42 -0
  427. package/webpack/dev.server.js +17 -0
  428. package/webpack/hosting_config.js +6 -0
  429. package/with-encryption/index.d.ts +29 -0
  430. package/with-encryption/index.js +4 -0
  431. package/worker/index.d.ts +29 -0
  432. package/worker/index.js +1 -0
  433. package/worker/with-encryption/index.d.ts +29 -0
  434. package/worker/with-encryption/index.js +1 -0
@@ -0,0 +1,353 @@
1
+ import base64encode from '../base64';
2
+ import Util from '../util';
3
+
4
+ /** Merges multiple objects into the target argument.
5
+ *
6
+ * For properties that are plain Objects, performs a deep-merge. For the
7
+ * rest it just copies the value of the property.
8
+ *
9
+ * To extend prototypes use it as following:
10
+ * Pusher.Util.extend(Target.prototype, Base.prototype)
11
+ *
12
+ * You can also use it to merge objects without altering them:
13
+ * Pusher.Util.extend({}, object1, object2)
14
+ *
15
+ * @param {Object} target
16
+ * @return {Object} the target argument
17
+ */
18
+ export function extend<T>(target: any, ...sources: any[]): T {
19
+ for (var i = 0; i < sources.length; i++) {
20
+ var extensions = sources[i];
21
+ for (var property in extensions) {
22
+ if (
23
+ extensions[property] &&
24
+ extensions[property].constructor &&
25
+ extensions[property].constructor === Object
26
+ ) {
27
+ target[property] = extend(target[property] || {}, extensions[property]);
28
+ } else {
29
+ target[property] = extensions[property];
30
+ }
31
+ }
32
+ }
33
+ return target;
34
+ }
35
+
36
+ export function stringify(): string {
37
+ var m = ['Pusher'];
38
+ for (var i = 0; i < arguments.length; i++) {
39
+ if (typeof arguments[i] === 'string') {
40
+ m.push(arguments[i]);
41
+ } else {
42
+ m.push(safeJSONStringify(arguments[i]));
43
+ }
44
+ }
45
+ return m.join(' : ');
46
+ }
47
+
48
+ export function arrayIndexOf(array: any[], item: any): number {
49
+ // MSIE doesn't have array.indexOf
50
+ var nativeIndexOf = Array.prototype.indexOf;
51
+ if (array === null) {
52
+ return -1;
53
+ }
54
+ if (nativeIndexOf && array.indexOf === nativeIndexOf) {
55
+ return array.indexOf(item);
56
+ }
57
+ for (var i = 0, l = array.length; i < l; i++) {
58
+ if (array[i] === item) {
59
+ return i;
60
+ }
61
+ }
62
+ return -1;
63
+ }
64
+
65
+ /** Applies a function f to all properties of an object.
66
+ *
67
+ * Function f gets 3 arguments passed:
68
+ * - element from the object
69
+ * - key of the element
70
+ * - reference to the object
71
+ *
72
+ * @param {Object} object
73
+ * @param {Function} f
74
+ */
75
+ export function objectApply(object: any, f: Function) {
76
+ for (var key in object) {
77
+ if (Object.prototype.hasOwnProperty.call(object, key)) {
78
+ f(object[key], key, object);
79
+ }
80
+ }
81
+ }
82
+
83
+ /** Return a list of objects own proerty keys
84
+ *
85
+ * @param {Object} object
86
+ * @returns {Array}
87
+ */
88
+ export function keys(object: any): string[] {
89
+ var keys = [];
90
+ objectApply(object, function(_, key) {
91
+ keys.push(key);
92
+ });
93
+ return keys;
94
+ }
95
+
96
+ /** Return a list of object's own property values
97
+ *
98
+ * @param {Object} object
99
+ * @returns {Array}
100
+ */
101
+ export function values(object: any): any[] {
102
+ var values = [];
103
+ objectApply(object, function(value) {
104
+ values.push(value);
105
+ });
106
+ return values;
107
+ }
108
+
109
+ /** Applies a function f to all elements of an array.
110
+ *
111
+ * Function f gets 3 arguments passed:
112
+ * - element from the array
113
+ * - index of the element
114
+ * - reference to the array
115
+ *
116
+ * @param {Array} array
117
+ * @param {Function} f
118
+ */
119
+ export function apply(array: any[], f: Function, context?: any) {
120
+ for (var i = 0; i < array.length; i++) {
121
+ f.call(context || global, array[i], i, array);
122
+ }
123
+ }
124
+
125
+ /** Maps all elements of the array and returns the result.
126
+ *
127
+ * Function f gets 4 arguments passed:
128
+ * - element from the array
129
+ * - index of the element
130
+ * - reference to the source array
131
+ * - reference to the destination array
132
+ *
133
+ * @param {Array} array
134
+ * @param {Function} f
135
+ */
136
+ export function map(array: any[], f: Function): any[] {
137
+ var result = [];
138
+ for (var i = 0; i < array.length; i++) {
139
+ result.push(f(array[i], i, array, result));
140
+ }
141
+ return result;
142
+ }
143
+
144
+ /** Maps all elements of the object and returns the result.
145
+ *
146
+ * Function f gets 4 arguments passed:
147
+ * - element from the object
148
+ * - key of the element
149
+ * - reference to the source object
150
+ * - reference to the destination object
151
+ *
152
+ * @param {Object} object
153
+ * @param {Function} f
154
+ */
155
+ export function mapObject(object: any, f: Function): any {
156
+ var result = {};
157
+ objectApply(object, function(value, key) {
158
+ result[key] = f(value);
159
+ });
160
+ return result;
161
+ }
162
+
163
+ /** Filters elements of the array using a test function.
164
+ *
165
+ * Function test gets 4 arguments passed:
166
+ * - element from the array
167
+ * - index of the element
168
+ * - reference to the source array
169
+ * - reference to the destination array
170
+ *
171
+ * @param {Array} array
172
+ * @param {Function} f
173
+ */
174
+ export function filter(array: any[], test: Function): any[] {
175
+ test =
176
+ test ||
177
+ function(value) {
178
+ return !!value;
179
+ };
180
+
181
+ var result = [];
182
+ for (var i = 0; i < array.length; i++) {
183
+ if (test(array[i], i, array, result)) {
184
+ result.push(array[i]);
185
+ }
186
+ }
187
+ return result;
188
+ }
189
+
190
+ /** Filters properties of the object using a test function.
191
+ *
192
+ * Function test gets 4 arguments passed:
193
+ * - element from the object
194
+ * - key of the element
195
+ * - reference to the source object
196
+ * - reference to the destination object
197
+ *
198
+ * @param {Object} object
199
+ * @param {Function} f
200
+ */
201
+ export function filterObject(object: Object, test: Function) {
202
+ var result = {};
203
+ objectApply(object, function(value, key) {
204
+ if ((test && test(value, key, object, result)) || Boolean(value)) {
205
+ result[key] = value;
206
+ }
207
+ });
208
+ return result;
209
+ }
210
+
211
+ /** Flattens an object into a two-dimensional array.
212
+ *
213
+ * @param {Object} object
214
+ * @return {Array} resulting array of [key, value] pairs
215
+ */
216
+ export function flatten(object: Object): any[] {
217
+ var result = [];
218
+ objectApply(object, function(value, key) {
219
+ result.push([key, value]);
220
+ });
221
+ return result;
222
+ }
223
+
224
+ /** Checks whether any element of the array passes the test.
225
+ *
226
+ * Function test gets 3 arguments passed:
227
+ * - element from the array
228
+ * - index of the element
229
+ * - reference to the source array
230
+ *
231
+ * @param {Array} array
232
+ * @param {Function} f
233
+ */
234
+ export function any(array: any[], test: Function): boolean {
235
+ for (var i = 0; i < array.length; i++) {
236
+ if (test(array[i], i, array)) {
237
+ return true;
238
+ }
239
+ }
240
+ return false;
241
+ }
242
+
243
+ /** Checks whether all elements of the array pass the test.
244
+ *
245
+ * Function test gets 3 arguments passed:
246
+ * - element from the array
247
+ * - index of the element
248
+ * - reference to the source array
249
+ *
250
+ * @param {Array} array
251
+ * @param {Function} f
252
+ */
253
+ export function all(array: any[], test: Function): boolean {
254
+ for (var i = 0; i < array.length; i++) {
255
+ if (!test(array[i], i, array)) {
256
+ return false;
257
+ }
258
+ }
259
+ return true;
260
+ }
261
+
262
+ export function encodeParamsObject(data): string {
263
+ return mapObject(data, function(value) {
264
+ if (typeof value === 'object') {
265
+ value = safeJSONStringify(value);
266
+ }
267
+ return encodeURIComponent(base64encode(value.toString()));
268
+ });
269
+ }
270
+
271
+ export function buildQueryString(data: any): string {
272
+ var params = filterObject(data, function(value) {
273
+ return value !== undefined;
274
+ });
275
+
276
+ var query = map(
277
+ flatten(encodeParamsObject(params)),
278
+ Util.method('join', '=')
279
+ ).join('&');
280
+
281
+ return query;
282
+ }
283
+
284
+ /**
285
+ * See https://github.com/douglascrockford/JSON-js/blob/master/cycle.js
286
+ *
287
+ * Remove circular references from an object. Required for JSON.stringify in
288
+ * React Native, which tends to blow up a lot.
289
+ *
290
+ * @param {any} object
291
+ * @return {any} Decycled object
292
+ */
293
+ export function decycleObject(object: any): any {
294
+ var objects = [],
295
+ paths = [];
296
+
297
+ return (function derez(value, path) {
298
+ var i, name, nu;
299
+
300
+ switch (typeof value) {
301
+ case 'object':
302
+ if (!value) {
303
+ return null;
304
+ }
305
+ for (i = 0; i < objects.length; i += 1) {
306
+ if (objects[i] === value) {
307
+ return { $ref: paths[i] };
308
+ }
309
+ }
310
+
311
+ objects.push(value);
312
+ paths.push(path);
313
+
314
+ if (Object.prototype.toString.apply(value) === '[object Array]') {
315
+ nu = [];
316
+ for (i = 0; i < value.length; i += 1) {
317
+ nu[i] = derez(value[i], path + '[' + i + ']');
318
+ }
319
+ } else {
320
+ nu = {};
321
+ for (name in value) {
322
+ if (Object.prototype.hasOwnProperty.call(value, name)) {
323
+ nu[name] = derez(
324
+ value[name],
325
+ path + '[' + JSON.stringify(name) + ']'
326
+ );
327
+ }
328
+ }
329
+ }
330
+ return nu;
331
+ case 'number':
332
+ case 'string':
333
+ case 'boolean':
334
+ return value;
335
+ }
336
+ })(object, '$');
337
+ }
338
+
339
+ /**
340
+ * Provides a cross-browser and cross-platform way to safely stringify objects
341
+ * into JSON. This is particularly necessary for ReactNative, where circular JSON
342
+ * structures throw an exception.
343
+ *
344
+ * @param {any} source The object to stringify
345
+ * @return {string} The serialized output.
346
+ */
347
+ export function safeJSONStringify(source: any): string {
348
+ try {
349
+ return JSON.stringify(source);
350
+ } catch (e) {
351
+ return JSON.stringify(decycleObject(source));
352
+ }
353
+ }
@@ -0,0 +1,75 @@
1
+ import Handshake from '../connection/handshake';
2
+ import AssistantToTheTransportManager from '../transports/assistant_to_the_transport_manager';
3
+ import PingDelayOptions from '../transports/ping_delay_options';
4
+ import Transport from '../transports/transport';
5
+ import TransportConnection from '../transports/transport_connection';
6
+ import TransportManager from '../transports/transport_manager';
7
+
8
+ import * as nacl from 'tweetnacl';
9
+ import Channel from '../channels/channel';
10
+ import Channels from '../channels/channels';
11
+ import EncryptedChannel from '../channels/encrypted_channel';
12
+ import PresenceChannel from '../channels/presence_channel';
13
+ import PrivateChannel from '../channels/private_channel';
14
+ import ConnectionManager from '../connection/connection_manager';
15
+ import ConnectionManagerOptions from '../connection/connection_manager_options';
16
+ import Pingerchips from '../pusher';
17
+ import Timeline from '../timeline/timeline';
18
+ import {
19
+ default as TimelineSender,
20
+ TimelineSenderOptions
21
+ } from '../timeline/timeline_sender';
22
+
23
+ var Factory = {
24
+ createChannels(): Channels {
25
+ return new Channels();
26
+ },
27
+
28
+ createConnectionManager(
29
+ key: string,
30
+ options: ConnectionManagerOptions
31
+ ): ConnectionManager {
32
+ return new ConnectionManager(key, options);
33
+ },
34
+
35
+ createChannel(name: string, pusher: Pingerchips): Channel {
36
+ return new Channel(name, pusher);
37
+ },
38
+
39
+ createPrivateChannel(name: string, pusher: Pingerchips): PrivateChannel {
40
+ return new PrivateChannel(name, pusher);
41
+ },
42
+
43
+ createPresenceChannel(name: string, pusher: Pingerchips): PresenceChannel {
44
+ return new PresenceChannel(name, pusher);
45
+ },
46
+
47
+ createEncryptedChannel(
48
+ name: string,
49
+ pusher: Pingerchips,
50
+ nacl: nacl
51
+ ): EncryptedChannel {
52
+ return new EncryptedChannel(name, pusher, nacl);
53
+ },
54
+
55
+ createTimelineSender(timeline: Timeline, options: TimelineSenderOptions) {
56
+ return new TimelineSender(timeline, options);
57
+ },
58
+
59
+ createHandshake(
60
+ transport: TransportConnection,
61
+ callback: (HandshakePayload) => void
62
+ ): Handshake {
63
+ return new Handshake(transport, callback);
64
+ },
65
+
66
+ createAssistantToTheTransportManager(
67
+ manager: TransportManager,
68
+ transport: Transport,
69
+ options: PingDelayOptions
70
+ ): AssistantToTheTransportManager {
71
+ return new AssistantToTheTransportManager(manager, transport, options);
72
+ }
73
+ };
74
+
75
+ export default Factory;
@@ -0,0 +1,10 @@
1
+ function flatPromise() {
2
+ let resolve, reject;
3
+ const promise = new Promise((res, rej) => {
4
+ resolve = res;
5
+ reject = rej;
6
+ });
7
+ return { promise, resolve, reject };
8
+ }
9
+
10
+ export default flatPromise;
@@ -0,0 +1,39 @@
1
+ import TimedCallback from './timed_callback';
2
+ import { Delay, Scheduler, Canceller } from './scheduling';
3
+
4
+ abstract class Timer {
5
+ protected clear: Canceller;
6
+ protected timer: number | void;
7
+
8
+ constructor(
9
+ set: Scheduler,
10
+ clear: Canceller,
11
+ delay: Delay,
12
+ callback: TimedCallback
13
+ ) {
14
+ this.clear = clear;
15
+ this.timer = set(() => {
16
+ if (this.timer) {
17
+ this.timer = callback(this.timer);
18
+ }
19
+ }, delay);
20
+ }
21
+
22
+ /** Returns whether the timer is still running.
23
+ *
24
+ * @return {Boolean}
25
+ */
26
+ isRunning(): boolean {
27
+ return this.timer !== null;
28
+ }
29
+
30
+ /** Aborts a timer when it's running. */
31
+ ensureAborted() {
32
+ if (this.timer) {
33
+ this.clear(this.timer);
34
+ this.timer = null;
35
+ }
36
+ }
37
+ }
38
+
39
+ export default Timer;
@@ -0,0 +1,39 @@
1
+ import Timer from './abstract_timer';
2
+ import TimedCallback from './timed_callback';
3
+ import { Delay } from './scheduling';
4
+
5
+ // We need to bind clear functions this way to avoid exceptions on IE8
6
+ function clearTimeout(timer) {
7
+ global.clearTimeout(timer);
8
+ }
9
+ function clearInterval(timer) {
10
+ global.clearInterval(timer);
11
+ }
12
+
13
+ /** Cross-browser compatible one-off timer abstraction.
14
+ *
15
+ * @param {Number} delay
16
+ * @param {Function} callback
17
+ */
18
+ export class OneOffTimer extends Timer {
19
+ constructor(delay: Delay, callback: TimedCallback) {
20
+ super(setTimeout, clearTimeout, delay, function(timer) {
21
+ callback();
22
+ return null;
23
+ });
24
+ }
25
+ }
26
+
27
+ /** Cross-browser compatible periodic timer abstraction.
28
+ *
29
+ * @param {Number} delay
30
+ * @param {Function} callback
31
+ */
32
+ export class PeriodicTimer extends Timer {
33
+ constructor(delay: Delay, callback: TimedCallback) {
34
+ super(setInterval, clearInterval, delay, function(timer) {
35
+ callback();
36
+ return timer;
37
+ });
38
+ }
39
+ }
@@ -0,0 +1,11 @@
1
+ interface Scheduler {
2
+ (TimedCallback, number): number;
3
+ }
4
+
5
+ interface Canceller {
6
+ (number): void;
7
+ }
8
+
9
+ type Delay = number;
10
+
11
+ export { Scheduler, Canceller, Delay };
@@ -0,0 +1,5 @@
1
+ interface TimedCallback {
2
+ (number?): number | void;
3
+ }
4
+
5
+ export default TimedCallback;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * A place to store help URLs for error messages etc
3
+ */
4
+
5
+ const urlStore = {
6
+ baseUrl: 'https://pusher.com',
7
+ urls: {
8
+ authenticationEndpoint: {
9
+ path: '/docs/channels/server_api/authenticating_users'
10
+ },
11
+ authorizationEndpoint: {
12
+ path: '/docs/channels/server_api/authorizing-users/'
13
+ },
14
+ javascriptQuickStart: {
15
+ path: '/docs/javascript_quick_start'
16
+ },
17
+ triggeringClientEvents: {
18
+ path: '/docs/client_api_guide/client_events#trigger-events'
19
+ },
20
+ encryptedChannelSupport: {
21
+ fullUrl:
22
+ 'https://github.com/pusher/pusher-js/tree/cc491015371a4bde5743d1c87a0fbac0feb53195#encrypted-channel-support'
23
+ }
24
+ }
25
+ };
26
+
27
+ /** Builds a consistent string with links to pusher documentation
28
+ *
29
+ * @param {string} key - relevant key in the url_store.urls object
30
+ * @return {string} suffix string to append to log message
31
+ */
32
+ const buildLogSuffix = function(key: string): string {
33
+ const urlPrefix = 'See:';
34
+ const urlObj = urlStore.urls[key];
35
+ if (!urlObj) return '';
36
+
37
+ let url;
38
+ if (urlObj.fullUrl) {
39
+ url = urlObj.fullUrl;
40
+ } else if (urlObj.path) {
41
+ url = urlStore.baseUrl + urlObj.path;
42
+ }
43
+
44
+ if (!url) return '';
45
+ return `${urlPrefix} ${url}`;
46
+ };
47
+
48
+ export default { buildLogSuffix };
@@ -0,0 +1,31 @@
1
+ import EventsDispatcher from './events/dispatcher';
2
+ import Logger from './logger';
3
+ import Pingerchips from './pusher';
4
+
5
+ export default class WatchlistFacade extends EventsDispatcher {
6
+ private pusher: Pingerchips;
7
+
8
+ public constructor(pusher: Pingerchips) {
9
+ super(function(eventName, data) {
10
+ Logger.debug(`No callbacks on watchlist events for ${eventName}`);
11
+ });
12
+
13
+ this.pusher = pusher;
14
+ this.bindWatchlistInternalEvent();
15
+ }
16
+
17
+ handleEvent(pusherEvent) {
18
+ pusherEvent.data.events.forEach(watchlistEvent => {
19
+ this.emit(watchlistEvent.name, watchlistEvent);
20
+ });
21
+ }
22
+
23
+ private bindWatchlistInternalEvent() {
24
+ this.pusher.connection.bind('message', pusherEvent => {
25
+ var eventName = pusherEvent.event;
26
+ if (eventName === 'pusher_internal:watchlist_events') {
27
+ this.handleEvent(pusherEvent);
28
+ }
29
+ });
30
+ }
31
+ }
@@ -0,0 +1,5 @@
1
+ declare var VERSION;
2
+ declare var CDN_HTTP;
3
+ declare var CDN_HTTPS;
4
+ declare var DEPENDENCY_SUFFIX;
5
+ declare var RUNTIME;
@@ -0,0 +1,21 @@
1
+ declare module 'faye-websocket' {
2
+ interface MessageEvent {
3
+ data: any;
4
+ }
5
+
6
+ interface CloseEvent {
7
+ code: number;
8
+ reason: string;
9
+ wasClean: boolean;
10
+ }
11
+
12
+ export class Client {
13
+ public onopen: () => void;
14
+ public onmessage: (event: MessageEvent) => void;
15
+ public onclose: (event: CloseEvent) => void;
16
+
17
+ constructor(url: string);
18
+ send(data: string): void;
19
+ close(code?: number, reason?: string): void;
20
+ }
21
+ }
@@ -0,0 +1 @@
1
+ declare const global: any;
@@ -0,0 +1,12 @@
1
+ declare var module: {
2
+ exports: any;
3
+ };
4
+
5
+ declare var require: {
6
+ <T>(path: string): T;
7
+ (paths: string[], callback: (...modules: any[]) => void): void;
8
+ ensure: (
9
+ paths: string[],
10
+ callback: (require: <T>(path: string) => T) => void
11
+ ) => void;
12
+ };
@@ -0,0 +1,6 @@
1
+ declare module 'tweetnacl-util' {
2
+ export function encodeUTF8(data: Uint8Array): string;
3
+ export function decodeUTF8(data: string): Uint8Array;
4
+ export function encodeBase64(data: Uint8Array): string;
5
+ export function decodeBase64(data: string): Uint8Array;
6
+ }
@@ -0,0 +1,4 @@
1
+ interface Window {
2
+ attachEvent: any;
3
+ detachEvent: any;
4
+ }
@@ -0,0 +1,3 @@
1
+ interface Window {
2
+ SockJS: any;
3
+ }
@@ -0,0 +1,4 @@
1
+ interface Window {
2
+ WebSocket: any;
3
+ MozWebSocket: any;
4
+ }
@@ -0,0 +1,3 @@
1
+ interface Window {
2
+ XMLHttpRequest: any;
3
+ }