@cendarsoss/pusher-js 8.4.11

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 (425) 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 +928 -0
  12. package/DELTA_COMPRESSION.md +365 -0
  13. package/DELTA_USAGE.md +179 -0
  14. package/IMPLEMENTATION_SUMMARY.md +261 -0
  15. package/IMPORT_GUIDE.md +638 -0
  16. package/LIBRARY_STRUCTURE_ANALYSIS.md +940 -0
  17. package/LICENCE +19 -0
  18. package/Makefile +14 -0
  19. package/README.md +709 -0
  20. package/TAG_FILTERING_CLIENT.md +471 -0
  21. package/bower.json +19 -0
  22. package/bun.lock +2695 -0
  23. package/dist/node/filter.js +252 -0
  24. package/dist/node/filter.js.map +1 -0
  25. package/dist/node/pusher.js +4434 -0
  26. package/dist/node/pusher.js.map +1 -0
  27. package/dist/web/filter.mjs +252 -0
  28. package/dist/web/filter.mjs.map +1 -0
  29. package/dist/web/pusher.mjs +5889 -0
  30. package/dist/web/pusher.mjs.map +1 -0
  31. package/examples/delta-compression-example.html +372 -0
  32. package/examples/delta-seamless-example.html +185 -0
  33. package/index.d.ts +36 -0
  34. package/integration_tests_server/index.js +176 -0
  35. package/integration_tests_server/package-lock.json +1177 -0
  36. package/integration_tests_server/package.json +15 -0
  37. package/interactive/.env +16 -0
  38. package/interactive/CONFLATION_TEST.md +73 -0
  39. package/interactive/DELTA_COMPRESSION_TESTING.md +262 -0
  40. package/interactive/bun.lock +208 -0
  41. package/interactive/package-lock.json +1075 -0
  42. package/interactive/package.json +32 -0
  43. package/interactive/public/app.js +1363 -0
  44. package/interactive/public/bundle-entry.js +14 -0
  45. package/interactive/public/conflation-test.html +508 -0
  46. package/interactive/public/conflation-test.js +785 -0
  47. package/interactive/public/delta-compression.js +1090 -0
  48. package/interactive/public/dist/bundle.js +5857 -0
  49. package/interactive/public/index.html +392 -0
  50. package/interactive/public/main.js +20 -0
  51. package/interactive/public/style.css +823 -0
  52. package/interactive/server.js +246 -0
  53. package/interactive/test-bundle.html +89 -0
  54. package/interactive/test-delta.js +146 -0
  55. package/node.js +1 -0
  56. package/package.json +94 -0
  57. package/pusher-with-encryption/index.js +1 -0
  58. package/react-native/index.d.ts +29 -0
  59. package/react-native/index.js +1 -0
  60. package/spec/config/jasmine/helpers/reporter.js +14 -0
  61. package/spec/config/jasmine/integration.json +13 -0
  62. package/spec/config/jasmine/unit.json +13 -0
  63. package/spec/config/jasmine/webpack.integration.js +33 -0
  64. package/spec/config/jasmine/webpack.unit.js +30 -0
  65. package/spec/config/karma/available_browsers.json +4957 -0
  66. package/spec/config/karma/config.ci.js +25 -0
  67. package/spec/config/karma/config.common.js +50 -0
  68. package/spec/config/karma/config.integration.js +26 -0
  69. package/spec/config/karma/config.unit.js +10 -0
  70. package/spec/config/karma/config.worker.js +34 -0
  71. package/spec/config/karma/integration.js +24 -0
  72. package/spec/config/karma/unit.js +20 -0
  73. package/spec/javascripts/helpers/mocks.js +274 -0
  74. package/spec/javascripts/helpers/node/integration.js +33 -0
  75. package/spec/javascripts/helpers/node/mock-dom-dependencies.ts +1 -0
  76. package/spec/javascripts/helpers/pusher_integration.js +1 -0
  77. package/spec/javascripts/helpers/pusher_integration_class.ts +12 -0
  78. package/spec/javascripts/helpers/timers/promises.js +9 -0
  79. package/spec/javascripts/helpers/waitsFor.js +37 -0
  80. package/spec/javascripts/helpers/web/integration.js +44 -0
  81. package/spec/javascripts/helpers/worker/mock-dom-dependencies.js +1 -0
  82. package/spec/javascripts/integration/core/cluster_config_spec.js +153 -0
  83. package/spec/javascripts/integration/core/falling_back_spec.js +195 -0
  84. package/spec/javascripts/integration/core/pusher_spec/index.js +68 -0
  85. package/spec/javascripts/integration/core/pusher_spec/test_builder.js +715 -0
  86. package/spec/javascripts/integration/core/timeout_configuration_spec.js +200 -0
  87. package/spec/javascripts/integration/core/transport_lists_spec.js +103 -0
  88. package/spec/javascripts/integration/index.node.js +12 -0
  89. package/spec/javascripts/integration/index.web.js +63 -0
  90. package/spec/javascripts/integration/index.worker.js +13 -0
  91. package/spec/javascripts/integration/web/dom/jsonp_spec.js +97 -0
  92. package/spec/javascripts/integration/web/dom/script_request_spec.js +90 -0
  93. package/spec/javascripts/polyfills/index.js +105 -0
  94. package/spec/javascripts/unit/core/channels/channel_spec.js +355 -0
  95. package/spec/javascripts/unit/core/channels/channels_spec.js +94 -0
  96. package/spec/javascripts/unit/core/channels/encrypted_channel_spec.js +343 -0
  97. package/spec/javascripts/unit/core/channels/presence_channel_spec.js +553 -0
  98. package/spec/javascripts/unit/core/channels/private_channel_spec.js +182 -0
  99. package/spec/javascripts/unit/core/config_spec.js +507 -0
  100. package/spec/javascripts/unit/core/connection/connection_manager_spec.js +656 -0
  101. package/spec/javascripts/unit/core/connection/connection_spec.js +286 -0
  102. package/spec/javascripts/unit/core/connection/handshake_spec.js +160 -0
  103. package/spec/javascripts/unit/core/connection/protocol_spec.js +420 -0
  104. package/spec/javascripts/unit/core/defaults_spec.js +26 -0
  105. package/spec/javascripts/unit/core/events_dispatcher_spec.js +385 -0
  106. package/spec/javascripts/unit/core/http/http_polling_socket_spec.js +60 -0
  107. package/spec/javascripts/unit/core/http/http_request_spec.js +185 -0
  108. package/spec/javascripts/unit/core/http/http_socket_spec.js +370 -0
  109. package/spec/javascripts/unit/core/http/http_streaming_socket_spec.js +56 -0
  110. package/spec/javascripts/unit/core/http/http_xhr_request_spec.js +164 -0
  111. package/spec/javascripts/unit/core/logger_spec.js +133 -0
  112. package/spec/javascripts/unit/core/pusher_spec.js +613 -0
  113. package/spec/javascripts/unit/core/pusher_with_encryption_spec.js +18 -0
  114. package/spec/javascripts/unit/core/strategies/best_connected_ever_strategy_spec.js +104 -0
  115. package/spec/javascripts/unit/core/strategies/delayed_strategy_spec.js +95 -0
  116. package/spec/javascripts/unit/core/strategies/first_connected_strategy_spec.js +68 -0
  117. package/spec/javascripts/unit/core/strategies/if_strategy_spec.js +165 -0
  118. package/spec/javascripts/unit/core/strategies/sequential_strategy_spec.js +213 -0
  119. package/spec/javascripts/unit/core/strategies/transport_strategy_spec.js +250 -0
  120. package/spec/javascripts/unit/core/strategies/websocket_prioritized_cached_strategy_spec.js +400 -0
  121. package/spec/javascripts/unit/core/timeline/timeline_spec.js +153 -0
  122. package/spec/javascripts/unit/core/transports/assistant_to_the_transport_manager_spec.js +223 -0
  123. package/spec/javascripts/unit/core/transports/hosts_and_ports_spec.js +85 -0
  124. package/spec/javascripts/unit/core/transports/transport_connection_spec.js +585 -0
  125. package/spec/javascripts/unit/core/transports/transport_manager_spec.js +64 -0
  126. package/spec/javascripts/unit/core/user_spec.js +303 -0
  127. package/spec/javascripts/unit/core/utils/periodic_timer_spec.js +74 -0
  128. package/spec/javascripts/unit/core/utils/timers_spec.js +157 -0
  129. package/spec/javascripts/unit/core/utils/url_store_spec.js +14 -0
  130. package/spec/javascripts/unit/core/watchlist_spec.js +48 -0
  131. package/spec/javascripts/unit/core_with_runtime/auth/channel_authorizer_spec.js +137 -0
  132. package/spec/javascripts/unit/core_with_runtime/auth/deprecated_channel_authorizer_spec.js +48 -0
  133. package/spec/javascripts/unit/core_with_runtime/auth/user_authorizer_spec.js +128 -0
  134. package/spec/javascripts/unit/core_with_runtime/readme.md +5 -0
  135. package/spec/javascripts/unit/index.node.js +11 -0
  136. package/spec/javascripts/unit/index.web.js +12 -0
  137. package/spec/javascripts/unit/index.worker.js +11 -0
  138. package/spec/javascripts/unit/isomorphic/transports/hosts_and_ports_spec.js +82 -0
  139. package/spec/javascripts/unit/isomorphic/transports/transports_spec.js +202 -0
  140. package/spec/javascripts/unit/node/timeline_sender_spec.js +83 -0
  141. package/spec/javascripts/unit/web/dom/dependency_loader_spec.js +249 -0
  142. package/spec/javascripts/unit/web/dom/jsonp_request_spec.js +130 -0
  143. package/spec/javascripts/unit/web/dom/script_receiver_factory_spec.js +68 -0
  144. package/spec/javascripts/unit/web/http/http_xdomain_request_spec.js +222 -0
  145. package/spec/javascripts/unit/web/pusher_authorizer_spec.js +64 -0
  146. package/spec/javascripts/unit/web/timeline/timeline_sender_spec.js +131 -0
  147. package/spec/javascripts/unit/web/transports/hosts_and_ports_spec.js +127 -0
  148. package/spec/javascripts/unit/web/transports/transports_spec.js +444 -0
  149. package/spec/javascripts/unit/worker/channel_authorizer_spec.js +156 -0
  150. package/spec/javascripts/unit/worker/timeline_sender_spec.js +76 -0
  151. package/src/core/auth/auth_transports.ts +18 -0
  152. package/src/core/auth/channel_authorizer.ts +64 -0
  153. package/src/core/auth/deprecated_channel_authorizer.ts +56 -0
  154. package/src/core/auth/options.ts +76 -0
  155. package/src/core/auth/user_authenticator.ts +62 -0
  156. package/src/core/base64.ts +49 -0
  157. package/src/core/channels/channel.ts +173 -0
  158. package/src/core/channels/channel_table.ts +7 -0
  159. package/src/core/channels/channels.ts +86 -0
  160. package/src/core/channels/encrypted_channel.ts +150 -0
  161. package/src/core/channels/filter.ts +342 -0
  162. package/src/core/channels/members.ts +80 -0
  163. package/src/core/channels/metadata.ts +5 -0
  164. package/src/core/channels/presence_channel.ts +113 -0
  165. package/src/core/channels/private_channel.ts +25 -0
  166. package/src/core/config.ts +189 -0
  167. package/src/core/connection/callbacks.ts +21 -0
  168. package/src/core/connection/connection.ts +160 -0
  169. package/src/core/connection/connection_manager.ts +371 -0
  170. package/src/core/connection/connection_manager_options.ts +14 -0
  171. package/src/core/connection/handshake/handshake_payload.ts +10 -0
  172. package/src/core/connection/handshake/index.ts +90 -0
  173. package/src/core/connection/protocol/action.ts +8 -0
  174. package/src/core/connection/protocol/message-types.ts +11 -0
  175. package/src/core/connection/protocol/protocol.ts +166 -0
  176. package/src/core/defaults.ts +66 -0
  177. package/src/core/delta/channel_state.ts +194 -0
  178. package/src/core/delta/decoders.ts +129 -0
  179. package/src/core/delta/index.ts +10 -0
  180. package/src/core/delta/manager.ts +504 -0
  181. package/src/core/delta/types.ts +60 -0
  182. package/src/core/errors.ts +69 -0
  183. package/src/core/events/callback.ts +6 -0
  184. package/src/core/events/callback_registry.ts +75 -0
  185. package/src/core/events/callback_table.ts +7 -0
  186. package/src/core/events/dispatcher.ts +84 -0
  187. package/src/core/http/ajax.ts +24 -0
  188. package/src/core/http/http_factory.ts +16 -0
  189. package/src/core/http/http_polling_socket.ts +24 -0
  190. package/src/core/http/http_request.ts +81 -0
  191. package/src/core/http/http_socket.ts +220 -0
  192. package/src/core/http/http_streaming_socket.ts +19 -0
  193. package/src/core/http/request_hooks.ts +9 -0
  194. package/src/core/http/socket_hooks.ts +11 -0
  195. package/src/core/http/state.ts +7 -0
  196. package/src/core/http/url_location.ts +6 -0
  197. package/src/core/logger.ts +66 -0
  198. package/src/core/options.ts +61 -0
  199. package/src/core/pusher-licence.js +7 -0
  200. package/src/core/pusher-with-encryption.js +1 -0
  201. package/src/core/pusher-with-encryption.ts +14 -0
  202. package/src/core/pusher.js +10 -0
  203. package/src/core/pusher.ts +412 -0
  204. package/src/core/reachability.ts +7 -0
  205. package/src/core/socket.ts +14 -0
  206. package/src/core/strategies/best_connected_ever_strategy.ts +81 -0
  207. package/src/core/strategies/delayed_strategy.ts +48 -0
  208. package/src/core/strategies/first_connected_strategy.ts +31 -0
  209. package/src/core/strategies/if_strategy.ts +34 -0
  210. package/src/core/strategies/sequential_strategy.ts +129 -0
  211. package/src/core/strategies/strategy.ts +8 -0
  212. package/src/core/strategies/strategy_builder.ts +67 -0
  213. package/src/core/strategies/strategy_options.ts +18 -0
  214. package/src/core/strategies/strategy_runner.ts +6 -0
  215. package/src/core/strategies/transport_strategy.ts +144 -0
  216. package/src/core/strategies/websocket_prioritized_cached_strategy.ts +157 -0
  217. package/src/core/timeline/level.ts +7 -0
  218. package/src/core/timeline/timeline.ts +90 -0
  219. package/src/core/timeline/timeline_sender.ts +33 -0
  220. package/src/core/timeline/timeline_transport.ts +11 -0
  221. package/src/core/transports/assistant_to_the_transport_manager.ts +104 -0
  222. package/src/core/transports/ping_delay_options.ts +7 -0
  223. package/src/core/transports/transport.ts +54 -0
  224. package/src/core/transports/transport_connection.ts +241 -0
  225. package/src/core/transports/transport_connection_options.ts +8 -0
  226. package/src/core/transports/transport_hooks.ts +16 -0
  227. package/src/core/transports/transport_manager.ts +52 -0
  228. package/src/core/transports/transports_table.ts +12 -0
  229. package/src/core/transports/url_scheme.ts +13 -0
  230. package/src/core/transports/url_schemes.ts +47 -0
  231. package/src/core/user.ts +186 -0
  232. package/src/core/util.ts +34 -0
  233. package/src/core/utils/collections.ts +353 -0
  234. package/src/core/utils/factory.ts +79 -0
  235. package/src/core/utils/flat_promise.ts +10 -0
  236. package/src/core/utils/timers/abstract_timer.ts +39 -0
  237. package/src/core/utils/timers/index.ts +39 -0
  238. package/src/core/utils/timers/scheduling.ts +11 -0
  239. package/src/core/utils/timers/timed_callback.ts +5 -0
  240. package/src/core/utils/url_store.ts +48 -0
  241. package/src/core/watchlist.ts +31 -0
  242. package/src/d.ts/constants/index.d.ts +5 -0
  243. package/src/d.ts/faye-websocket/faye-websocket.d.ts +21 -0
  244. package/src/d.ts/global/global.d.ts +1 -0
  245. package/src/d.ts/module/module.d.ts +12 -0
  246. package/src/d.ts/tweetnacl-util/index.d.ts +6 -0
  247. package/src/d.ts/window/events.d.ts +4 -0
  248. package/src/d.ts/window/sockjs.d.ts +3 -0
  249. package/src/d.ts/window/websocket.d.ts +4 -0
  250. package/src/d.ts/window/xmlhttprequest.d.ts +3 -0
  251. package/src/filter.ts +5 -0
  252. package/src/index.ts +8 -0
  253. package/src/runtimes/interface.ts +60 -0
  254. package/src/runtimes/isomorphic/auth/xhr_auth.ts +90 -0
  255. package/src/runtimes/isomorphic/default_strategy.ts +155 -0
  256. package/src/runtimes/isomorphic/http/http.ts +32 -0
  257. package/src/runtimes/isomorphic/http/http_xhr_request.ts +35 -0
  258. package/src/runtimes/isomorphic/runtime.ts +62 -0
  259. package/src/runtimes/isomorphic/timeline/xhr_timeline.ts +50 -0
  260. package/src/runtimes/isomorphic/transports/transport_connection_initializer.ts +19 -0
  261. package/src/runtimes/isomorphic/transports/transports.ts +83 -0
  262. package/src/runtimes/node/net_info.ts +10 -0
  263. package/src/runtimes/node/runtime.ts +68 -0
  264. package/src/runtimes/react-native/net_info.ts +42 -0
  265. package/src/runtimes/react-native/runtime.ts +65 -0
  266. package/src/runtimes/web/auth/jsonp_auth.ts +51 -0
  267. package/src/runtimes/web/browser.ts +24 -0
  268. package/src/runtimes/web/default_strategy.ts +201 -0
  269. package/src/runtimes/web/dom/dependencies.ts +16 -0
  270. package/src/runtimes/web/dom/dependency_loader.ts +93 -0
  271. package/src/runtimes/web/dom/json2.js +486 -0
  272. package/src/runtimes/web/dom/jsonp_request.ts +52 -0
  273. package/src/runtimes/web/dom/script_receiver.ts +8 -0
  274. package/src/runtimes/web/dom/script_receiver_factory.ts +57 -0
  275. package/src/runtimes/web/dom/script_request.ts +85 -0
  276. package/src/runtimes/web/http/http.ts +8 -0
  277. package/src/runtimes/web/http/http_xdomain_request.ts +37 -0
  278. package/src/runtimes/web/net_info.ts +50 -0
  279. package/src/runtimes/web/runtime.ts +174 -0
  280. package/src/runtimes/web/timeline/jsonp_timeline.ts +34 -0
  281. package/src/runtimes/web/transports/transport_connection_initializer.ts +39 -0
  282. package/src/runtimes/web/transports/transports.ts +67 -0
  283. package/src/runtimes/worker/auth/fetch_auth.ts +69 -0
  284. package/src/runtimes/worker/net_info.ts +10 -0
  285. package/src/runtimes/worker/runtime.ts +75 -0
  286. package/src/runtimes/worker/timeline/fetch_timeline.ts +39 -0
  287. package/tsconfig.json +18 -0
  288. package/types/spec/javascripts/helpers/node/mock-dom-dependencies.d.ts +1 -0
  289. package/types/spec/javascripts/helpers/pusher_integration_class.d.ts +4 -0
  290. package/types/src/core/auth/auth_transports.d.ts +9 -0
  291. package/types/src/core/auth/channel_authorizer.d.ts +3 -0
  292. package/types/src/core/auth/deprecated_channel_authorizer.d.ts +18 -0
  293. package/types/src/core/auth/options.d.ts +48 -0
  294. package/types/src/core/auth/user_authenticator.d.ts +3 -0
  295. package/types/src/core/base64.d.ts +1 -0
  296. package/types/src/core/channels/channel.d.ts +25 -0
  297. package/types/src/core/channels/channel_table.d.ts +5 -0
  298. package/types/src/core/channels/channels.d.ts +12 -0
  299. package/types/src/core/channels/encrypted_channel.d.ts +15 -0
  300. package/types/src/core/channels/filter.d.ts +33 -0
  301. package/types/src/core/channels/members.d.ts +14 -0
  302. package/types/src/core/channels/metadata.d.ts +4 -0
  303. package/types/src/core/channels/presence_channel.d.ts +13 -0
  304. package/types/src/core/channels/private_channel.d.ts +5 -0
  305. package/types/src/core/config.d.ts +31 -0
  306. package/types/src/core/connection/callbacks.d.ts +18 -0
  307. package/types/src/core/connection/connection.d.ts +16 -0
  308. package/types/src/core/connection/connection_manager.d.ts +50 -0
  309. package/types/src/core/connection/connection_manager_options.d.ts +11 -0
  310. package/types/src/core/connection/handshake/handshake_payload.d.ts +8 -0
  311. package/types/src/core/connection/handshake/index.d.ts +12 -0
  312. package/types/src/core/connection/protocol/action.d.ts +7 -0
  313. package/types/src/core/connection/protocol/message-types.d.ts +10 -0
  314. package/types/src/core/connection/protocol/protocol.d.ts +10 -0
  315. package/types/src/core/defaults.d.ts +26 -0
  316. package/types/src/core/delta/channel_state.d.ts +23 -0
  317. package/types/src/core/delta/decoders.d.ts +12 -0
  318. package/types/src/core/delta/index.d.ts +4 -0
  319. package/types/src/core/delta/manager.d.ts +27 -0
  320. package/types/src/core/delta/types.d.ts +50 -0
  321. package/types/src/core/errors.d.ts +28 -0
  322. package/types/src/core/events/callback.d.ts +5 -0
  323. package/types/src/core/events/callback_registry.d.ts +11 -0
  324. package/types/src/core/events/callback_table.d.ts +5 -0
  325. package/types/src/core/events/dispatcher.d.ts +14 -0
  326. package/types/src/core/http/ajax.d.ts +16 -0
  327. package/types/src/core/http/http_factory.d.ts +13 -0
  328. package/types/src/core/http/http_polling_socket.d.ts +3 -0
  329. package/types/src/core/http/http_request.d.ts +17 -0
  330. package/types/src/core/http/http_socket.d.ts +32 -0
  331. package/types/src/core/http/http_streaming_socket.d.ts +3 -0
  332. package/types/src/core/http/request_hooks.d.ts +6 -0
  333. package/types/src/core/http/socket_hooks.d.ts +8 -0
  334. package/types/src/core/http/state.d.ts +6 -0
  335. package/types/src/core/http/url_location.d.ts +5 -0
  336. package/types/src/core/logger.d.ts +11 -0
  337. package/types/src/core/options.d.ts +36 -0
  338. package/types/src/core/pusher-with-encryption.d.ts +5 -0
  339. package/types/src/core/pusher.d.ts +56 -0
  340. package/types/src/core/reachability.d.ts +5 -0
  341. package/types/src/core/socket.d.ts +12 -0
  342. package/types/src/core/strategies/best_connected_ever_strategy.d.ts +10 -0
  343. package/types/src/core/strategies/delayed_strategy.d.ts +15 -0
  344. package/types/src/core/strategies/first_connected_strategy.d.ts +8 -0
  345. package/types/src/core/strategies/if_strategy.d.ts +10 -0
  346. package/types/src/core/strategies/sequential_strategy.d.ts +16 -0
  347. package/types/src/core/strategies/strategy.d.ts +6 -0
  348. package/types/src/core/strategies/strategy_builder.d.ts +5 -0
  349. package/types/src/core/strategies/strategy_options.d.ts +16 -0
  350. package/types/src/core/strategies/strategy_runner.d.ts +5 -0
  351. package/types/src/core/strategies/transport_strategy.d.ts +15 -0
  352. package/types/src/core/strategies/websocket_prioritized_cached_strategy.d.ts +20 -0
  353. package/types/src/core/timeline/level.d.ts +6 -0
  354. package/types/src/core/timeline/timeline.d.ts +25 -0
  355. package/types/src/core/timeline/timeline_sender.d.ts +13 -0
  356. package/types/src/core/timeline/timeline_transport.d.ts +6 -0
  357. package/types/src/core/transports/assistant_to_the_transport_manager.d.ts +14 -0
  358. package/types/src/core/transports/ping_delay_options.d.ts +6 -0
  359. package/types/src/core/transports/transport.d.ts +8 -0
  360. package/types/src/core/transports/transport_connection.d.ts +35 -0
  361. package/types/src/core/transports/transport_connection_options.d.ts +6 -0
  362. package/types/src/core/transports/transport_hooks.d.ts +13 -0
  363. package/types/src/core/transports/transport_manager.d.ts +14 -0
  364. package/types/src/core/transports/transports_table.d.ts +10 -0
  365. package/types/src/core/transports/url_scheme.d.ts +11 -0
  366. package/types/src/core/transports/url_schemes.d.ts +4 -0
  367. package/types/src/core/user.d.ts +21 -0
  368. package/types/src/core/util.d.ts +8 -0
  369. package/types/src/core/utils/collections.d.ts +18 -0
  370. package/types/src/core/utils/factory.d.ts +29 -0
  371. package/types/src/core/utils/flat_promise.d.ts +6 -0
  372. package/types/src/core/utils/timers/abstract_timer.d.ts +10 -0
  373. package/types/src/core/utils/timers/index.d.ts +9 -0
  374. package/types/src/core/utils/timers/scheduling.d.ts +8 -0
  375. package/types/src/core/utils/timers/timed_callback.d.ts +4 -0
  376. package/types/src/core/utils/url_store.d.ts +4 -0
  377. package/types/src/core/watchlist.d.ts +8 -0
  378. package/types/src/runtimes/interface.d.ts +43 -0
  379. package/types/src/runtimes/isomorphic/auth/xhr_auth.d.ts +3 -0
  380. package/types/src/runtimes/isomorphic/default_strategy.d.ts +5 -0
  381. package/types/src/runtimes/isomorphic/http/http.d.ts +3 -0
  382. package/types/src/runtimes/isomorphic/http/http_xhr_request.d.ts +3 -0
  383. package/types/src/runtimes/isomorphic/runtime.d.ts +2 -0
  384. package/types/src/runtimes/isomorphic/timeline/xhr_timeline.d.ts +6 -0
  385. package/types/src/runtimes/isomorphic/transports/transport_connection_initializer.d.ts +1 -0
  386. package/types/src/runtimes/isomorphic/transports/transports.d.ts +5 -0
  387. package/types/src/runtimes/node/net_info.d.ts +6 -0
  388. package/types/src/runtimes/node/runtime.d.ts +3 -0
  389. package/types/src/runtimes/react-native/net_info.d.ts +8 -0
  390. package/types/src/runtimes/react-native/runtime.d.ts +3 -0
  391. package/types/src/runtimes/web/auth/jsonp_auth.d.ts +3 -0
  392. package/types/src/runtimes/web/browser.d.ts +19 -0
  393. package/types/src/runtimes/web/default_strategy.d.ts +5 -0
  394. package/types/src/runtimes/web/dom/dependencies.d.ts +4 -0
  395. package/types/src/runtimes/web/dom/dependency_loader.d.ts +10 -0
  396. package/types/src/runtimes/web/dom/jsonp_request.d.ts +10 -0
  397. package/types/src/runtimes/web/dom/script_receiver.d.ts +7 -0
  398. package/types/src/runtimes/web/dom/script_receiver_factory.d.ts +10 -0
  399. package/types/src/runtimes/web/dom/script_request.d.ts +9 -0
  400. package/types/src/runtimes/web/http/http.d.ts +2 -0
  401. package/types/src/runtimes/web/http/http_xdomain_request.d.ts +3 -0
  402. package/types/src/runtimes/web/net_info.d.ts +7 -0
  403. package/types/src/runtimes/web/runtime.d.ts +3 -0
  404. package/types/src/runtimes/web/timeline/jsonp_timeline.d.ts +6 -0
  405. package/types/src/runtimes/web/transports/transport_connection_initializer.d.ts +1 -0
  406. package/types/src/runtimes/web/transports/transports.d.ts +2 -0
  407. package/types/src/runtimes/worker/auth/fetch_auth.d.ts +3 -0
  408. package/types/src/runtimes/worker/net_info.d.ts +6 -0
  409. package/types/src/runtimes/worker/runtime.d.ts +3 -0
  410. package/types/src/runtimes/worker/timeline/fetch_timeline.d.ts +6 -0
  411. package/vite.config.js +52 -0
  412. package/vite.config.node.js +72 -0
  413. package/webpack/config.node.js +26 -0
  414. package/webpack/config.react-native.js +35 -0
  415. package/webpack/config.shared.js +50 -0
  416. package/webpack/config.web.js +36 -0
  417. package/webpack/config.worker.js +42 -0
  418. package/webpack/dev.server.js +17 -0
  419. package/webpack/hosting_config.js +6 -0
  420. package/with-encryption/index.d.ts +29 -0
  421. package/with-encryption/index.js +4 -0
  422. package/worker/index.d.ts +29 -0
  423. package/worker/index.js +1 -0
  424. package/worker/with-encryption/index.d.ts +29 -0
  425. package/worker/with-encryption/index.js +1 -0
@@ -0,0 +1,18 @@
1
+ export declare function extend<T>(target: any, ...sources: any[]): T;
2
+ export declare function stringify(): string;
3
+ export declare function arrayIndexOf(array: any[], item: any): number;
4
+ export declare function objectApply(object: any, f: Function): void;
5
+ export declare function keys(object: any): string[];
6
+ export declare function values(object: any): any[];
7
+ export declare function apply(array: any[], f: Function, context?: any): void;
8
+ export declare function map(array: any[], f: Function): any[];
9
+ export declare function mapObject(object: any, f: Function): any;
10
+ export declare function filter(array: any[], test: Function): any[];
11
+ export declare function filterObject(object: Object, test: Function): {};
12
+ export declare function flatten(object: Object): any[];
13
+ export declare function any(array: any[], test: Function): boolean;
14
+ export declare function all(array: any[], test: Function): boolean;
15
+ export declare function encodeParamsObject(data: any): string;
16
+ export declare function buildQueryString(data: any): string;
17
+ export declare function decycleObject(object: any): any;
18
+ export declare function safeJSONStringify(source: any): string;
@@ -0,0 +1,29 @@
1
+ import AssistantToTheTransportManager from '../transports/assistant_to_the_transport_manager';
2
+ import PingDelayOptions from '../transports/ping_delay_options';
3
+ import Transport from '../transports/transport';
4
+ import TransportManager from '../transports/transport_manager';
5
+ import Handshake from '../connection/handshake';
6
+ import TransportConnection from '../transports/transport_connection';
7
+ import Timeline from '../timeline/timeline';
8
+ import { default as TimelineSender, TimelineSenderOptions } from '../timeline/timeline_sender';
9
+ import PresenceChannel from '../channels/presence_channel';
10
+ import PrivateChannel from '../channels/private_channel';
11
+ import EncryptedChannel from '../channels/encrypted_channel';
12
+ import Channel from '../channels/channel';
13
+ import ConnectionManager from '../connection/connection_manager';
14
+ import ConnectionManagerOptions from '../connection/connection_manager_options';
15
+ import Channels from '../channels/channels';
16
+ import Pusher from '../pusher';
17
+ import * as nacl from 'tweetnacl';
18
+ declare var Factory: {
19
+ createChannels(): Channels;
20
+ createConnectionManager(key: string, options: ConnectionManagerOptions): ConnectionManager;
21
+ createChannel(name: string, pusher: Pusher): Channel;
22
+ createPrivateChannel(name: string, pusher: Pusher): PrivateChannel;
23
+ createPresenceChannel(name: string, pusher: Pusher): PresenceChannel;
24
+ createEncryptedChannel(name: string, pusher: Pusher, nacl: nacl): EncryptedChannel;
25
+ createTimelineSender(timeline: Timeline, options: TimelineSenderOptions): TimelineSender;
26
+ createHandshake(transport: TransportConnection, callback: (HandshakePayload: any) => void): Handshake;
27
+ createAssistantToTheTransportManager(manager: TransportManager, transport: Transport, options: PingDelayOptions): AssistantToTheTransportManager;
28
+ };
29
+ export default Factory;
@@ -0,0 +1,6 @@
1
+ declare function flatPromise(): {
2
+ promise: Promise<unknown>;
3
+ resolve: any;
4
+ reject: any;
5
+ };
6
+ export default flatPromise;
@@ -0,0 +1,10 @@
1
+ import TimedCallback from './timed_callback';
2
+ import { Delay, Scheduler, Canceller } from './scheduling';
3
+ declare abstract class Timer {
4
+ protected clear: Canceller;
5
+ protected timer: number | void;
6
+ constructor(set: Scheduler, clear: Canceller, delay: Delay, callback: TimedCallback);
7
+ isRunning(): boolean;
8
+ ensureAborted(): void;
9
+ }
10
+ export default Timer;
@@ -0,0 +1,9 @@
1
+ import Timer from './abstract_timer';
2
+ import TimedCallback from './timed_callback';
3
+ import { Delay } from './scheduling';
4
+ export declare class OneOffTimer extends Timer {
5
+ constructor(delay: Delay, callback: TimedCallback);
6
+ }
7
+ export declare class PeriodicTimer extends Timer {
8
+ constructor(delay: Delay, callback: TimedCallback);
9
+ }
@@ -0,0 +1,8 @@
1
+ interface Scheduler {
2
+ (TimedCallback: any, number: any): number;
3
+ }
4
+ interface Canceller {
5
+ (number: any): void;
6
+ }
7
+ type Delay = number;
8
+ export { Scheduler, Canceller, Delay };
@@ -0,0 +1,4 @@
1
+ interface TimedCallback {
2
+ (number?: any): number | void;
3
+ }
4
+ export default TimedCallback;
@@ -0,0 +1,4 @@
1
+ declare const _default: {
2
+ buildLogSuffix: (key: string) => string;
3
+ };
4
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import Pusher from './pusher';
2
+ import EventsDispatcher from './events/dispatcher';
3
+ export default class WatchlistFacade extends EventsDispatcher {
4
+ private pusher;
5
+ constructor(pusher: Pusher);
6
+ handleEvent(pusherEvent: any): void;
7
+ private bindWatchlistInternalEvent;
8
+ }
@@ -0,0 +1,43 @@
1
+ import { AuthTransports } from '../core/auth/auth_transports';
2
+ import TimelineTransport from '../core/timeline/timeline_transport';
3
+ import Ajax from '../core/http/ajax';
4
+ import Reachability from '../core/reachability';
5
+ import TransportsTable from '../core/transports/transports_table';
6
+ import Socket from '../core/socket';
7
+ import HTTPFactory from '../core/http/http_factory';
8
+ import HTTPRequest from '../core/http/http_request';
9
+ import Pusher from '../core/pusher';
10
+ import JSONPRequest from './web/dom/jsonp_request';
11
+ import Strategy from '../core/strategies/strategy';
12
+ import { Config } from '../core/config';
13
+ import StrategyOptions from '../core/strategies/strategy_options';
14
+ interface Runtime {
15
+ setup(PusherClass: {
16
+ new (key: string, options: any): Pusher;
17
+ ready(): void;
18
+ }): void;
19
+ getProtocol(): string;
20
+ getAuthorizers(): AuthTransports;
21
+ getLocalStorage(): any;
22
+ TimelineTransport: TimelineTransport;
23
+ createXHR(): Ajax;
24
+ createWebSocket(url: string): Socket;
25
+ getNetwork(): Reachability;
26
+ getDefaultStrategy(config: Config, options: StrategyOptions, defineTransport: Function): Strategy;
27
+ Transports: TransportsTable;
28
+ getWebSocketAPI(): new (url: string) => Socket;
29
+ getXHRAPI(): new () => Ajax;
30
+ addUnloadListener(listener: Function): void;
31
+ removeUnloadListener(listener: Function): void;
32
+ transportConnectionInitializer: Function;
33
+ HTTPFactory: HTTPFactory;
34
+ isXHRSupported(): boolean;
35
+ createSocketRequest(method: string, url: string): HTTPRequest;
36
+ randomInt(max: number): number;
37
+ getDocument?(): Document;
38
+ createScriptRequest?(url: string): any;
39
+ createJSONPRequest?(url: string, data: any): JSONPRequest;
40
+ ScriptReceivers?: any;
41
+ isXDRSupported?(useTLS?: boolean): boolean;
42
+ }
43
+ export default Runtime;
@@ -0,0 +1,3 @@
1
+ import { AuthTransport } from 'core/auth/auth_transports';
2
+ declare const ajax: AuthTransport;
3
+ export default ajax;
@@ -0,0 +1,5 @@
1
+ import Strategy from 'core/strategies/strategy';
2
+ import { Config } from 'core/config';
3
+ import StrategyOptions from 'core/strategies/strategy_options';
4
+ declare var getDefaultStrategy: (config: Config, baseOptions: StrategyOptions, defineTransport: Function) => Strategy;
5
+ export default getDefaultStrategy;
@@ -0,0 +1,3 @@
1
+ import HTTPFactory from 'core/http/http_factory';
2
+ declare var HTTP: HTTPFactory;
3
+ export default HTTP;
@@ -0,0 +1,3 @@
1
+ import RequestHooks from 'core/http/request_hooks';
2
+ declare var hooks: RequestHooks;
3
+ export default hooks;
@@ -0,0 +1,2 @@
1
+ declare var Isomorphic: any;
2
+ export default Isomorphic;
@@ -0,0 +1,6 @@
1
+ import TimelineSender from 'core/timeline/timeline_sender';
2
+ declare var xhr: {
3
+ name: string;
4
+ getAgent: (sender: TimelineSender, useTLS: boolean) => (data: any, callback: Function) => void;
5
+ };
6
+ export default xhr;
@@ -0,0 +1 @@
1
+ export default function (): void;
@@ -0,0 +1,5 @@
1
+ import TransportsTable from 'core/transports/transports_table';
2
+ export declare var streamingConfiguration: unknown;
3
+ export declare var pollingConfiguration: unknown;
4
+ declare var Transports: TransportsTable;
5
+ export default Transports;
@@ -0,0 +1,6 @@
1
+ import { default as EventsDispatcher } from 'core/events/dispatcher';
2
+ import Reachability from 'core/reachability';
3
+ export declare class NetInfo extends EventsDispatcher implements Reachability {
4
+ isOnline(): boolean;
5
+ }
6
+ export declare var Network: NetInfo;
@@ -0,0 +1,3 @@
1
+ import Runtime from '../interface';
2
+ declare const NodeJS: Runtime;
3
+ export default NodeJS;
@@ -0,0 +1,8 @@
1
+ import EventsDispatcher from 'core/events/dispatcher';
2
+ import Reachability from 'core/reachability';
3
+ export declare class NetInfo extends EventsDispatcher implements Reachability {
4
+ online: boolean;
5
+ constructor();
6
+ isOnline(): boolean;
7
+ }
8
+ export declare var Network: NetInfo;
@@ -0,0 +1,3 @@
1
+ import Runtime from '../interface';
2
+ declare const ReactNative: Runtime;
3
+ export default ReactNative;
@@ -0,0 +1,3 @@
1
+ import { AuthTransport } from 'core/auth/auth_transports';
2
+ declare var jsonp: AuthTransport;
3
+ export default jsonp;
@@ -0,0 +1,19 @@
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
+ interface Browser extends AbstractRuntime {
7
+ nextAuthCallbackID: number;
8
+ auth_callbacks: any;
9
+ ScriptReceivers: ScriptReceiverFactory;
10
+ DependenciesReceivers: ScriptReceiverFactory;
11
+ onDocumentBody(callback: Function): any;
12
+ getDocument(): any;
13
+ createJSONPRequest(url: string, data: any): JSONPRequest;
14
+ createScriptRequest(src: string): ScriptRequest;
15
+ isXDRSupported(useTLS?: boolean): boolean;
16
+ createXMLHttpRequest(): Ajax;
17
+ createMicrosoftXHR(): Ajax;
18
+ }
19
+ export default Browser;
@@ -0,0 +1,5 @@
1
+ import Strategy from 'core/strategies/strategy';
2
+ import StrategyOptions from 'core/strategies/strategy_options';
3
+ import { Config } from 'core/config';
4
+ declare var getDefaultStrategy: (config: Config, baseOptions: StrategyOptions, defineTransport: Function) => Strategy;
5
+ export default getDefaultStrategy;
@@ -0,0 +1,4 @@
1
+ import { ScriptReceiverFactory } from './script_receiver_factory';
2
+ import DependencyLoader from './dependency_loader';
3
+ export declare var DependenciesReceivers: ScriptReceiverFactory;
4
+ export declare var Dependencies: DependencyLoader;
@@ -0,0 +1,10 @@
1
+ import { ScriptReceiverFactory } from './script_receiver_factory';
2
+ export default class DependencyLoader {
3
+ options: any;
4
+ receivers: ScriptReceiverFactory;
5
+ loading: any;
6
+ constructor(options: any);
7
+ load(name: string, options: any, callback: Function): void;
8
+ getRoot(options: any): string;
9
+ getPath(name: string, options: any): string;
10
+ }
@@ -0,0 +1,10 @@
1
+ import ScriptReceiver from './script_receiver';
2
+ import ScriptRequest from './script_request';
3
+ export default class JSONPRequest {
4
+ url: string;
5
+ data: any;
6
+ request: ScriptRequest;
7
+ constructor(url: string, data: any);
8
+ send(receiver: ScriptReceiver): void;
9
+ cleanup(): void;
10
+ }
@@ -0,0 +1,7 @@
1
+ interface ScriptReceiver {
2
+ number: number;
3
+ id: string;
4
+ name: string;
5
+ callback: Function;
6
+ }
7
+ export default ScriptReceiver;
@@ -0,0 +1,10 @@
1
+ import ScriptReceiver from './script_receiver';
2
+ export declare class ScriptReceiverFactory {
3
+ lastId: number;
4
+ prefix: string;
5
+ name: string;
6
+ constructor(prefix: string, name: string);
7
+ create(callback: Function): ScriptReceiver;
8
+ remove(receiver: ScriptReceiver): void;
9
+ }
10
+ export declare var ScriptReceivers: ScriptReceiverFactory;
@@ -0,0 +1,9 @@
1
+ import ScriptReceiver from './script_receiver';
2
+ export default class ScriptRequest {
3
+ src: string;
4
+ script: any;
5
+ errorScript: any;
6
+ constructor(src: string);
7
+ send(receiver: ScriptReceiver): void;
8
+ cleanup(): void;
9
+ }
@@ -0,0 +1,2 @@
1
+ import HTTP from 'isomorphic/http/http';
2
+ export default HTTP;
@@ -0,0 +1,3 @@
1
+ import RequestHooks from 'core/http/request_hooks';
2
+ declare var hooks: RequestHooks;
3
+ export default hooks;
@@ -0,0 +1,7 @@
1
+ import Reachability from 'core/reachability';
2
+ import { default as EventsDispatcher } from 'core/events/dispatcher';
3
+ export declare class NetInfo extends EventsDispatcher implements Reachability {
4
+ constructor();
5
+ isOnline(): boolean;
6
+ }
7
+ export declare var Network: NetInfo;
@@ -0,0 +1,3 @@
1
+ import Browser from './browser';
2
+ declare var Runtime: Browser;
3
+ export default Runtime;
@@ -0,0 +1,6 @@
1
+ import TimelineSender from 'core/timeline/timeline_sender';
2
+ declare var jsonp: {
3
+ name: string;
4
+ getAgent: (sender: TimelineSender, useTLS: boolean) => (data: any, callback: Function) => void;
5
+ };
6
+ export default jsonp;
@@ -0,0 +1 @@
1
+ export default function (): void;
@@ -0,0 +1,2 @@
1
+ import { default as Transports } from 'isomorphic/transports/transports';
2
+ export default Transports;
@@ -0,0 +1,3 @@
1
+ import { AuthTransport } from 'core/auth/auth_transports';
2
+ declare var fetchAuth: AuthTransport;
3
+ export default fetchAuth;
@@ -0,0 +1,6 @@
1
+ import { default as EventsDispatcher } from 'core/events/dispatcher';
2
+ import Reachability from 'core/reachability';
3
+ export declare class NetInfo extends EventsDispatcher implements Reachability {
4
+ isOnline(): boolean;
5
+ }
6
+ export declare var Network: NetInfo;
@@ -0,0 +1,3 @@
1
+ import Runtime from '../interface';
2
+ declare const Worker: Runtime;
3
+ export default Worker;
@@ -0,0 +1,6 @@
1
+ import TimelineSender from 'core/timeline/timeline_sender';
2
+ declare var fetchTimeline: {
3
+ name: string;
4
+ getAgent: (sender: TimelineSender, useTLS: boolean) => (data: any, callback: Function) => void;
5
+ };
6
+ export default fetchTimeline;
package/vite.config.js ADDED
@@ -0,0 +1,52 @@
1
+ import { defineConfig } from 'vite';
2
+ import path from 'path';
3
+
4
+ export default defineConfig({
5
+ build: {
6
+ lib: {
7
+ entry: {
8
+ pusher: path.resolve(__dirname, 'src/index.ts'),
9
+ filter: path.resolve(__dirname, 'src/filter.ts'),
10
+ },
11
+ name: 'Pusher',
12
+ formats: ['es'],
13
+ fileName: (format, entryName) => {
14
+ return `${entryName}.mjs`;
15
+ },
16
+ },
17
+ outDir: 'dist/web',
18
+ sourcemap: true,
19
+ minify: false,
20
+ rollupOptions: {
21
+ output: {
22
+ globals: {
23
+ 'fossil-delta': 'fossilDelta',
24
+ '@ably/vcdiff-decoder': 'vcdiff',
25
+ },
26
+ exports: 'auto',
27
+ },
28
+ // Allow circular dependencies (common in this codebase)
29
+ onwarn(warning, warn) {
30
+ if (warning.code === 'CIRCULAR_DEPENDENCY') return;
31
+ warn(warning);
32
+ },
33
+ },
34
+ },
35
+ resolve: {
36
+ alias: {
37
+ // Match tsconfig.json paths
38
+ runtime: path.resolve(__dirname, 'src/runtimes/web/runtime.ts'),
39
+ core: path.resolve(__dirname, 'src/core'),
40
+ isomorphic: path.resolve(__dirname, 'src/runtimes/isomorphic'),
41
+ web: path.resolve(__dirname, 'src/runtimes/web'),
42
+ },
43
+ },
44
+ define: {
45
+ global: 'window',
46
+ RUNTIME: JSON.stringify('web'),
47
+ VERSION: JSON.stringify('8.4.0'),
48
+ CDN_HTTP: JSON.stringify('//js.pusher.com/'),
49
+ CDN_HTTPS: JSON.stringify('//js.pusher.com/'),
50
+ DEPENDENCY_SUFFIX: JSON.stringify(''),
51
+ },
52
+ });
@@ -0,0 +1,72 @@
1
+ import { defineConfig } from 'vite';
2
+ import path from 'path';
3
+
4
+ export default defineConfig({
5
+ build: {
6
+ lib: {
7
+ entry: {
8
+ pusher: path.resolve(__dirname, 'src/index.ts'),
9
+ filter: path.resolve(__dirname, 'src/filter.ts'),
10
+ },
11
+ name: 'Pusher',
12
+ formats: ['cjs'],
13
+ fileName: (format, entryName) => {
14
+ return `${entryName}.js`;
15
+ },
16
+ },
17
+ outDir: 'dist/node',
18
+ sourcemap: true,
19
+ minify: false,
20
+ target: 'node18',
21
+ ssr: true,
22
+ rollupOptions: {
23
+ external: [
24
+ 'ws',
25
+ 'fossil-delta',
26
+ '@ably/vcdiff-decoder',
27
+ 'tweetnacl',
28
+ 'crypto',
29
+ 'http',
30
+ 'https',
31
+ 'net',
32
+ 'tls',
33
+ 'fs',
34
+ 'stream',
35
+ 'child_process',
36
+ 'url',
37
+ 'zlib',
38
+ 'buffer',
39
+ 'events',
40
+ 'faye-websocket',
41
+ 'xmlhttprequest',
42
+ ],
43
+ output: {
44
+ globals: {
45
+ 'fossil-delta': 'fossilDelta',
46
+ '@ably/vcdiff-decoder': 'vcdiff',
47
+ ws: 'WebSocket',
48
+ },
49
+ exports: 'auto',
50
+ },
51
+ onwarn(warning, warn) {
52
+ if (warning.code === 'CIRCULAR_DEPENDENCY') return;
53
+ warn(warning);
54
+ },
55
+ },
56
+ },
57
+ resolve: {
58
+ alias: {
59
+ runtime: path.resolve(__dirname, 'src/runtimes/node/runtime.ts'),
60
+ core: path.resolve(__dirname, 'src/core'),
61
+ isomorphic: path.resolve(__dirname, 'src/runtimes/isomorphic'),
62
+ node: path.resolve(__dirname, 'src/runtimes/node'),
63
+ },
64
+ },
65
+ define: {
66
+ RUNTIME: JSON.stringify('node'),
67
+ VERSION: JSON.stringify('8.4.0'),
68
+ CDN_HTTP: JSON.stringify('//js.pusher.com/'),
69
+ CDN_HTTPS: JSON.stringify('//js.pusher.com/'),
70
+ DEPENDENCY_SUFFIX: JSON.stringify(''),
71
+ },
72
+ });
@@ -0,0 +1,26 @@
1
+ var path = require('path');
2
+ const { merge } = require('webpack-merge');
3
+ var configShared = require('./config.shared');
4
+ var webpack = require('webpack');
5
+
6
+ module.exports = merge({}, configShared, {
7
+ entry: {
8
+ pusher: './src/core/pusher-with-encryption.js',
9
+ },
10
+ output: {
11
+ library: 'Pusher',
12
+ libraryTarget: 'commonjs2',
13
+ path: path.join(__dirname, '../dist/node'),
14
+ filename: 'pusher.js',
15
+ },
16
+ target: 'node',
17
+ resolve: {
18
+ // in order to import the appropriate runtime.ts
19
+ modules: ['src/runtimes/node'],
20
+ },
21
+ plugins: [
22
+ new webpack.DefinePlugin({
23
+ RUNTIME: JSON.stringify('node'),
24
+ }),
25
+ ],
26
+ });
@@ -0,0 +1,35 @@
1
+ var path = require('path');
2
+ var NormalModuleReplacementPlugin =
3
+ require('webpack').NormalModuleReplacementPlugin;
4
+ var version = require('../package').version;
5
+ const { merge } = require('webpack-merge');
6
+ var configShared = require('./config.shared');
7
+ var webpack = require('webpack');
8
+ var buffer = require('buffer');
9
+
10
+ module.exports = merge({}, configShared, {
11
+ entry: {
12
+ pusher: './src/core/pusher-with-encryption.js',
13
+ },
14
+ output: {
15
+ library: 'Pusher',
16
+ libraryTarget: 'commonjs2',
17
+ path: path.join(__dirname, '../dist/react-native'),
18
+ filename: 'pusher.js',
19
+ },
20
+ externals: {
21
+ // our Reachability implementation needs to reference @react-native-community/netinfo.
22
+ '@react-native-community/netinfo': '@react-native-community/netinfo',
23
+ },
24
+ resolve: {
25
+ modules: ['src/runtimes/react-native'],
26
+ },
27
+ plugins: [
28
+ new webpack.DefinePlugin({
29
+ RUNTIME: JSON.stringify('react-native'),
30
+ }),
31
+ new webpack.ProvidePlugin({
32
+ Buffer: ['buffer', 'Buffer'],
33
+ }),
34
+ ],
35
+ });
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ var webpack = require('webpack');
4
+ var fs = require('fs');
5
+ var Config = require('./hosting_config');
6
+ var banner = fs.readFileSync('./src/core/pusher-licence.js', 'utf8');
7
+ banner = banner.replace('<VERSION>', Config.version);
8
+
9
+ var minimize = process.env.MINIMIZE === 'false' ? false : true;
10
+
11
+ module.exports = {
12
+ mode: process.env.MODE || 'production',
13
+ optimization: {
14
+ minimize: minimize,
15
+ },
16
+ entry: {
17
+ pusher: './src/core/pusher.js',
18
+ },
19
+ devtool: 'source-map',
20
+ resolve: {
21
+ extensions: ['.webpack.js', '.web.js', '.ts', '.js'],
22
+ // add runtimes for easier importing of isomorphic runtime modules
23
+ modules: ['src', 'src/runtimes', 'node_modules'],
24
+ },
25
+ module: {
26
+ rules: [
27
+ { test: /\.ts$/, loader: 'ts-loader' },
28
+ {
29
+ test: /\.js$/,
30
+ enforce: 'pre',
31
+ use: ['source-map-loader'],
32
+ },
33
+ ],
34
+ },
35
+ node: {
36
+ // nacl uses Buffer on node.js but has a different code path for the browser.
37
+ // We don't need webpack to include a Buffer polyfill when seeing the usage,
38
+ // as it won't be used.
39
+ Buffer: false,
40
+ },
41
+ plugins: [
42
+ new webpack.BannerPlugin({ banner: banner, raw: true }),
43
+ new webpack.DefinePlugin({
44
+ VERSION: JSON.stringify(Config.version),
45
+ CDN_HTTP: JSON.stringify(Config.cdn_http),
46
+ CDN_HTTPS: JSON.stringify(Config.cdn_https),
47
+ DEPENDENCY_SUFFIX: JSON.stringify(Config.dependency_suffix),
48
+ }),
49
+ ],
50
+ };