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,42 @@
1
+ import { default as NativeNetInfo } from '@react-native-community/netinfo';
2
+ import EventsDispatcher from 'core/events/dispatcher';
3
+ import Util from 'core/util';
4
+ import Reachability from 'core/reachability';
5
+
6
+ function hasOnlineConnectionState(connectionState): boolean {
7
+ return connectionState.type.toLowerCase() !== 'none';
8
+ }
9
+
10
+ export class NetInfo extends EventsDispatcher implements Reachability {
11
+ online: boolean;
12
+
13
+ constructor() {
14
+ super();
15
+ this.online = true;
16
+
17
+ NativeNetInfo.fetch().then(connectionState => {
18
+ this.online = hasOnlineConnectionState(connectionState);
19
+ });
20
+
21
+ NativeNetInfo.addEventListener(connectionState => {
22
+ var isNowOnline = hasOnlineConnectionState(connectionState);
23
+
24
+ // React Native counts the switch from Wi-Fi to Cellular
25
+ // as a state change. Return if current and previous states
26
+ // are both online/offline
27
+ if (this.online === isNowOnline) return;
28
+ this.online = isNowOnline;
29
+ if (this.online) {
30
+ this.emit('online');
31
+ } else {
32
+ this.emit('offline');
33
+ }
34
+ });
35
+ }
36
+
37
+ isOnline(): boolean {
38
+ return this.online;
39
+ }
40
+ }
41
+
42
+ export var Network = new NetInfo();
@@ -0,0 +1,65 @@
1
+ import Isomorphic from 'isomorphic/runtime';
2
+ import Runtime from '../interface';
3
+ import { Network } from './net_info';
4
+ import xhrAuth from 'isomorphic/auth/xhr_auth';
5
+ import { AuthTransports } from 'core/auth/auth_transports';
6
+ import xhrTimeline from 'isomorphic/timeline/xhr_timeline';
7
+
8
+ // Very verbose but until unavoidable until
9
+ // TypeScript 2.1, when spread attributes will be
10
+ // supported
11
+ const {
12
+ getDefaultStrategy,
13
+ Transports,
14
+ setup,
15
+ getProtocol,
16
+ isXHRSupported,
17
+ getLocalStorage,
18
+ createXHR,
19
+ createWebSocket,
20
+ addUnloadListener,
21
+ removeUnloadListener,
22
+ transportConnectionInitializer,
23
+ createSocketRequest,
24
+ HTTPFactory
25
+ } = Isomorphic;
26
+
27
+ const ReactNative: Runtime = {
28
+ getDefaultStrategy,
29
+ Transports,
30
+ setup,
31
+ getProtocol,
32
+ isXHRSupported,
33
+ getLocalStorage,
34
+ createXHR,
35
+ createWebSocket,
36
+ addUnloadListener,
37
+ removeUnloadListener,
38
+ transportConnectionInitializer,
39
+ createSocketRequest,
40
+ HTTPFactory,
41
+
42
+ TimelineTransport: xhrTimeline,
43
+
44
+ getAuthorizers(): AuthTransports {
45
+ return { ajax: xhrAuth };
46
+ },
47
+
48
+ getWebSocketAPI() {
49
+ return WebSocket;
50
+ },
51
+
52
+ getXHRAPI() {
53
+ return XMLHttpRequest;
54
+ },
55
+
56
+ getNetwork() {
57
+ return Network;
58
+ },
59
+
60
+ randomInt(max: number): number {
61
+ return Math.floor(Math.random() * max);
62
+ }
63
+ };
64
+
65
+ export default ReactNative;
@@ -0,0 +1,51 @@
1
+ import Browser from '../browser';
2
+ import Logger from 'core/logger';
3
+ import JSONPRequest from '../dom/jsonp_request';
4
+ import { ScriptReceivers } from '../dom/script_receiver_factory';
5
+ import { AuthTransport } from 'core/auth/auth_transports';
6
+ import {
7
+ AuthRequestType,
8
+ AuthTransportCallback,
9
+ InternalAuthOptions
10
+ } from 'core/auth/options';
11
+
12
+ var jsonp: AuthTransport = function(
13
+ context: Browser,
14
+ query: string,
15
+ authOptions: InternalAuthOptions,
16
+ authRequestType: AuthRequestType,
17
+ callback: AuthTransportCallback
18
+ ) {
19
+ if (
20
+ authOptions.headers !== undefined ||
21
+ authOptions.headersProvider != null
22
+ ) {
23
+ Logger.warn(
24
+ `To send headers with the ${authRequestType.toString()} request, you must use AJAX, rather than JSONP.`
25
+ );
26
+ }
27
+
28
+ var callbackName = context.nextAuthCallbackID.toString();
29
+ context.nextAuthCallbackID++;
30
+
31
+ var document = context.getDocument();
32
+ var script = document.createElement('script');
33
+ // Hacked wrapper.
34
+ context.auth_callbacks[callbackName] = function(data) {
35
+ callback(null, data);
36
+ };
37
+
38
+ var callback_name = "Pusher.auth_callbacks['" + callbackName + "']";
39
+ script.src =
40
+ authOptions.endpoint +
41
+ '?callback=' +
42
+ encodeURIComponent(callback_name) +
43
+ '&' +
44
+ query;
45
+
46
+ var head =
47
+ document.getElementsByTagName('head')[0] || document.documentElement;
48
+ head.insertBefore(script, head.firstChild);
49
+ };
50
+
51
+ export default jsonp;
@@ -0,0 +1,24 @@
1
+ import AbstractRuntime from 'runtimes/interface';
2
+ import { ScriptReceiverFactory } from './dom/script_receiver_factory';
3
+ import ScriptRequest from './dom/script_request';
4
+ import JSONPRequest from './dom/jsonp_request';
5
+ import Ajax from 'core/http/ajax';
6
+
7
+ interface Browser extends AbstractRuntime {
8
+ // for jsonp auth
9
+ nextAuthCallbackID: number;
10
+ auth_callbacks: any;
11
+ ScriptReceivers: ScriptReceiverFactory;
12
+ DependenciesReceivers: ScriptReceiverFactory;
13
+ onDocumentBody(callback: Function);
14
+ getDocument(): any;
15
+
16
+ createJSONPRequest(url: string, data: any): JSONPRequest;
17
+ createScriptRequest(src: string): ScriptRequest;
18
+
19
+ isXDRSupported(useTLS?: boolean): boolean;
20
+ createXMLHttpRequest(): Ajax;
21
+ createMicrosoftXHR(): Ajax;
22
+ }
23
+
24
+ export default Browser;
@@ -0,0 +1,201 @@
1
+ import * as Collections from 'core/utils/collections';
2
+ import TransportManager from 'core/transports/transport_manager';
3
+ import Strategy from 'core/strategies/strategy';
4
+ import StrategyOptions from 'core/strategies/strategy_options';
5
+ import SequentialStrategy from 'core/strategies/sequential_strategy';
6
+ import BestConnectedEverStrategy from 'core/strategies/best_connected_ever_strategy';
7
+ import WebSocketPrioritizedCachedStrategy, {
8
+ TransportStrategyDictionary
9
+ } from 'core/strategies/websocket_prioritized_cached_strategy';
10
+ import DelayedStrategy from 'core/strategies/delayed_strategy';
11
+ import IfStrategy from 'core/strategies/if_strategy';
12
+ import FirstConnectedStrategy from 'core/strategies/first_connected_strategy';
13
+ import { Config } from 'core/config';
14
+
15
+ function testSupportsStrategy(strategy: Strategy) {
16
+ return function() {
17
+ return strategy.isSupported();
18
+ };
19
+ }
20
+
21
+ var getDefaultStrategy = function(
22
+ config: Config,
23
+ baseOptions: StrategyOptions,
24
+ defineTransport: Function
25
+ ): Strategy {
26
+ var definedTransports = <TransportStrategyDictionary>{};
27
+
28
+ function defineTransportStrategy(
29
+ name: string,
30
+ type: string,
31
+ priority: number,
32
+ options: StrategyOptions,
33
+ manager?: TransportManager
34
+ ) {
35
+ var transport = defineTransport(
36
+ config,
37
+ name,
38
+ type,
39
+ priority,
40
+ options,
41
+ manager
42
+ );
43
+
44
+ definedTransports[name] = transport;
45
+
46
+ return transport;
47
+ }
48
+
49
+ var ws_options: StrategyOptions = Object.assign({}, baseOptions, {
50
+ hostNonTLS: config.wsHost + ':' + config.wsPort,
51
+ hostTLS: config.wsHost + ':' + config.wssPort,
52
+ httpPath: config.wsPath
53
+ });
54
+ var wss_options: StrategyOptions = Object.assign({}, ws_options, {
55
+ useTLS: true
56
+ });
57
+ var sockjs_options: StrategyOptions = Object.assign({}, baseOptions, {
58
+ hostNonTLS: config.httpHost + ':' + config.httpPort,
59
+ hostTLS: config.httpHost + ':' + config.httpsPort,
60
+ httpPath: config.httpPath
61
+ });
62
+
63
+ var timeouts = {
64
+ loop: true,
65
+ timeout: 15000,
66
+ timeoutLimit: 60000
67
+ };
68
+
69
+ var ws_manager = new TransportManager({
70
+ minPingDelay: 10000,
71
+ maxPingDelay: config.activityTimeout
72
+ });
73
+ var streaming_manager = new TransportManager({
74
+ lives: 2,
75
+ minPingDelay: 10000,
76
+ maxPingDelay: config.activityTimeout
77
+ });
78
+
79
+ var ws_transport = defineTransportStrategy(
80
+ 'ws',
81
+ 'ws',
82
+ 3,
83
+ ws_options,
84
+ ws_manager
85
+ );
86
+ var wss_transport = defineTransportStrategy(
87
+ 'wss',
88
+ 'ws',
89
+ 3,
90
+ wss_options,
91
+ ws_manager
92
+ );
93
+ var sockjs_transport = defineTransportStrategy(
94
+ 'sockjs',
95
+ 'sockjs',
96
+ 1,
97
+ sockjs_options
98
+ );
99
+ var xhr_streaming_transport = defineTransportStrategy(
100
+ 'xhr_streaming',
101
+ 'xhr_streaming',
102
+ 1,
103
+ sockjs_options,
104
+ streaming_manager
105
+ );
106
+ var xdr_streaming_transport = defineTransportStrategy(
107
+ 'xdr_streaming',
108
+ 'xdr_streaming',
109
+ 1,
110
+ sockjs_options,
111
+ streaming_manager
112
+ );
113
+ var xhr_polling_transport = defineTransportStrategy(
114
+ 'xhr_polling',
115
+ 'xhr_polling',
116
+ 1,
117
+ sockjs_options
118
+ );
119
+ var xdr_polling_transport = defineTransportStrategy(
120
+ 'xdr_polling',
121
+ 'xdr_polling',
122
+ 1,
123
+ sockjs_options
124
+ );
125
+
126
+ var ws_loop = new SequentialStrategy([ws_transport], timeouts);
127
+ var wss_loop = new SequentialStrategy([wss_transport], timeouts);
128
+ var sockjs_loop = new SequentialStrategy([sockjs_transport], timeouts);
129
+ var streaming_loop = new SequentialStrategy(
130
+ [
131
+ new IfStrategy(
132
+ testSupportsStrategy(xhr_streaming_transport),
133
+ xhr_streaming_transport,
134
+ xdr_streaming_transport
135
+ )
136
+ ],
137
+ timeouts
138
+ );
139
+ var polling_loop = new SequentialStrategy(
140
+ [
141
+ new IfStrategy(
142
+ testSupportsStrategy(xhr_polling_transport),
143
+ xhr_polling_transport,
144
+ xdr_polling_transport
145
+ )
146
+ ],
147
+ timeouts
148
+ );
149
+
150
+ var http_loop = new SequentialStrategy(
151
+ [
152
+ new IfStrategy(
153
+ testSupportsStrategy(streaming_loop),
154
+ new BestConnectedEverStrategy([
155
+ streaming_loop,
156
+ new DelayedStrategy(polling_loop, { delay: 4000 })
157
+ ]),
158
+ polling_loop
159
+ )
160
+ ],
161
+ timeouts
162
+ );
163
+
164
+ var http_fallback_loop = new IfStrategy(
165
+ testSupportsStrategy(http_loop),
166
+ http_loop,
167
+ sockjs_loop
168
+ );
169
+
170
+ var wsStrategy;
171
+ if (baseOptions.useTLS) {
172
+ wsStrategy = new BestConnectedEverStrategy([
173
+ ws_loop,
174
+ new DelayedStrategy(http_fallback_loop, { delay: 2000 })
175
+ ]);
176
+ } else {
177
+ wsStrategy = new BestConnectedEverStrategy([
178
+ ws_loop,
179
+ new DelayedStrategy(wss_loop, { delay: 2000 }),
180
+ new DelayedStrategy(http_fallback_loop, { delay: 5000 })
181
+ ]);
182
+ }
183
+
184
+ return new WebSocketPrioritizedCachedStrategy(
185
+ new FirstConnectedStrategy(
186
+ new IfStrategy(
187
+ testSupportsStrategy(ws_transport),
188
+ wsStrategy,
189
+ http_fallback_loop
190
+ )
191
+ ),
192
+ definedTransports,
193
+ {
194
+ ttl: 1800000,
195
+ timeline: baseOptions.timeline,
196
+ useTLS: baseOptions.useTLS
197
+ }
198
+ );
199
+ };
200
+
201
+ export default getDefaultStrategy;
@@ -0,0 +1,16 @@
1
+ import { ScriptReceiverFactory } from './script_receiver_factory';
2
+ import Defaults from 'core/defaults';
3
+ import DependencyLoader from './dependency_loader';
4
+
5
+ export var DependenciesReceivers = new ScriptReceiverFactory(
6
+ '_pusher_dependencies',
7
+ 'Pusher.DependenciesReceivers'
8
+ );
9
+
10
+ export var Dependencies = new DependencyLoader({
11
+ cdn_http: Defaults.cdn_http,
12
+ cdn_https: Defaults.cdn_https,
13
+ version: Defaults.VERSION,
14
+ suffix: Defaults.dependency_suffix,
15
+ receivers: DependenciesReceivers
16
+ });
@@ -0,0 +1,93 @@
1
+ import {
2
+ ScriptReceivers,
3
+ ScriptReceiverFactory
4
+ } from './script_receiver_factory';
5
+ import Runtime from 'runtime';
6
+ import ScriptRequest from './script_request';
7
+
8
+ /** Handles loading dependency files.
9
+ *
10
+ * Dependency loaders don't remember whether a resource has been loaded or
11
+ * not. It is caller's responsibility to make sure the resource is not loaded
12
+ * twice. This is because it's impossible to detect resource loading status
13
+ * without knowing its content.
14
+ *
15
+ * Options:
16
+ * - cdn_http - url to HTTP CND
17
+ * - cdn_https - url to HTTPS CDN
18
+ * - version - version of pusher-js
19
+ * - suffix - suffix appended to all names of dependency files
20
+ *
21
+ * @param {Object} options
22
+ */
23
+ export default class DependencyLoader {
24
+ options: any;
25
+ receivers: ScriptReceiverFactory;
26
+ loading: any;
27
+
28
+ constructor(options: any) {
29
+ this.options = options;
30
+ this.receivers = options.receivers || ScriptReceivers;
31
+ this.loading = {};
32
+ }
33
+
34
+ /** Loads the dependency from CDN.
35
+ *
36
+ * @param {String} name
37
+ * @param {Function} callback
38
+ */
39
+ load(name: string, options: any, callback: Function) {
40
+ var self = this;
41
+
42
+ if (self.loading[name] && self.loading[name].length > 0) {
43
+ self.loading[name].push(callback);
44
+ } else {
45
+ self.loading[name] = [callback];
46
+
47
+ var request = Runtime.createScriptRequest(self.getPath(name, options));
48
+ var receiver = self.receivers.create(function(error) {
49
+ self.receivers.remove(receiver);
50
+
51
+ if (self.loading[name]) {
52
+ var callbacks = self.loading[name];
53
+ delete self.loading[name];
54
+
55
+ var successCallback = function(wasSuccessful) {
56
+ if (!wasSuccessful) {
57
+ request.cleanup();
58
+ }
59
+ };
60
+ for (var i = 0; i < callbacks.length; i++) {
61
+ callbacks[i](error, successCallback);
62
+ }
63
+ }
64
+ });
65
+ request.send(receiver);
66
+ }
67
+ }
68
+
69
+ /** Returns a root URL for pusher-js CDN.
70
+ *
71
+ * @returns {String}
72
+ */
73
+ getRoot(options: any): string {
74
+ var cdn;
75
+ var protocol = Runtime.getDocument().location.protocol;
76
+ if ((options && options.useTLS) || protocol === 'https:') {
77
+ cdn = this.options.cdn_https;
78
+ } else {
79
+ cdn = this.options.cdn_http;
80
+ }
81
+ // make sure there are no double slashes
82
+ return cdn.replace(/\/*$/, '') + '/' + this.options.version;
83
+ }
84
+
85
+ /** Returns a full path to a dependency file.
86
+ *
87
+ * @param {String} name
88
+ * @returns {String}
89
+ */
90
+ getPath(name: string, options: any): string {
91
+ return this.getRoot(options) + '/' + name + this.options.suffix + '.js';
92
+ }
93
+ }