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.
- package/.editorconfig +14 -0
- package/.github/ISSUE_TEMPLATE.md +11 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +14 -0
- package/.github/dependabot.yml +14 -0
- package/.github/stale.yml +26 -0
- package/.github/workflows/release.yml +112 -0
- package/.github/workflows/release_pr.yml +43 -0
- package/.github/workflows/run-tests.yml +62 -0
- package/.gitmodules +3 -0
- package/.prettierrc +2 -0
- package/CHANGELOG.md +924 -0
- package/LICENCE +19 -0
- package/Makefile +78 -0
- package/README.md +707 -0
- package/bower.json +28 -0
- package/dist/node/pusher.js +10870 -0
- package/dist/node/pusher.js.map +1 -0
- package/dist/react-native/pusher.js +9 -0
- package/dist/react-native/pusher.js.map +1 -0
- package/dist/web/json2.js +486 -0
- package/dist/web/json2.min.js +1 -0
- package/dist/web/pusher-with-encryption.js +7009 -0
- package/dist/web/pusher-with-encryption.js.map +1 -0
- package/dist/web/pusher-with-encryption.min.js +9 -0
- package/dist/web/pusher-with-encryption.min.js.map +1 -0
- package/dist/web/pusher.js +4587 -0
- package/dist/web/pusher.js.map +1 -0
- package/dist/web/pusher.min.js +9 -0
- package/dist/web/pusher.min.js.map +1 -0
- package/dist/web/sockjs.js +2435 -0
- package/dist/web/sockjs.min.js +89 -0
- package/dist/worker/pusher-with-encryption.worker.js +6622 -0
- package/dist/worker/pusher-with-encryption.worker.js.map +1 -0
- package/dist/worker/pusher-with-encryption.worker.min.js +9 -0
- package/dist/worker/pusher-with-encryption.worker.min.js.map +1 -0
- package/dist/worker/pusher.worker.js +4200 -0
- package/dist/worker/pusher.worker.js.map +1 -0
- package/dist/worker/pusher.worker.min.js +9 -0
- package/dist/worker/pusher.worker.min.js.map +1 -0
- package/index.d.ts +29 -0
- package/integration_tests_server/index.js +176 -0
- package/integration_tests_server/package-lock.json +1177 -0
- package/integration_tests_server/package.json +15 -0
- package/node.js +1 -0
- package/package.json +70 -0
- package/pusher-with-encryption/index.js +1 -0
- package/react-native/index.d.ts +29 -0
- package/react-native/index.js +1 -0
- package/spec/config/jasmine/helpers/reporter.js +14 -0
- package/spec/config/jasmine/integration.json +13 -0
- package/spec/config/jasmine/unit.json +13 -0
- package/spec/config/jasmine/webpack.integration.js +33 -0
- package/spec/config/jasmine/webpack.unit.js +30 -0
- package/spec/config/karma/available_browsers.json +4957 -0
- package/spec/config/karma/config.ci.js +25 -0
- package/spec/config/karma/config.common.js +50 -0
- package/spec/config/karma/config.integration.js +26 -0
- package/spec/config/karma/config.unit.js +10 -0
- package/spec/config/karma/config.worker.js +34 -0
- package/spec/config/karma/integration.js +24 -0
- package/spec/config/karma/unit.js +20 -0
- package/spec/javascripts/helpers/mocks.js +274 -0
- package/spec/javascripts/helpers/node/integration.js +33 -0
- package/spec/javascripts/helpers/node/mock-dom-dependencies.ts +1 -0
- package/spec/javascripts/helpers/pusher_integration.js +1 -0
- package/spec/javascripts/helpers/pusher_integration_class.ts +12 -0
- package/spec/javascripts/helpers/timers/promises.js +9 -0
- package/spec/javascripts/helpers/waitsFor.js +37 -0
- package/spec/javascripts/helpers/web/integration.js +44 -0
- package/spec/javascripts/helpers/worker/mock-dom-dependencies.js +1 -0
- package/spec/javascripts/integration/core/cluster_config_spec.js +153 -0
- package/spec/javascripts/integration/core/falling_back_spec.js +195 -0
- package/spec/javascripts/integration/core/pusher_spec/index.js +68 -0
- package/spec/javascripts/integration/core/pusher_spec/test_builder.js +715 -0
- package/spec/javascripts/integration/core/timeout_configuration_spec.js +200 -0
- package/spec/javascripts/integration/core/transport_lists_spec.js +103 -0
- package/spec/javascripts/integration/index.node.js +12 -0
- package/spec/javascripts/integration/index.web.js +63 -0
- package/spec/javascripts/integration/index.worker.js +13 -0
- package/spec/javascripts/integration/web/dom/jsonp_spec.js +97 -0
- package/spec/javascripts/integration/web/dom/script_request_spec.js +90 -0
- package/spec/javascripts/polyfills/index.js +105 -0
- package/spec/javascripts/unit/core/channels/channel_spec.js +355 -0
- package/spec/javascripts/unit/core/channels/channels_spec.js +94 -0
- package/spec/javascripts/unit/core/channels/encrypted_channel_spec.js +343 -0
- package/spec/javascripts/unit/core/channels/presence_channel_spec.js +553 -0
- package/spec/javascripts/unit/core/channels/private_channel_spec.js +182 -0
- package/spec/javascripts/unit/core/config_spec.js +507 -0
- package/spec/javascripts/unit/core/connection/connection_manager_spec.js +656 -0
- package/spec/javascripts/unit/core/connection/connection_spec.js +286 -0
- package/spec/javascripts/unit/core/connection/handshake_spec.js +160 -0
- package/spec/javascripts/unit/core/connection/protocol_spec.js +420 -0
- package/spec/javascripts/unit/core/defaults_spec.js +26 -0
- package/spec/javascripts/unit/core/events_dispatcher_spec.js +385 -0
- package/spec/javascripts/unit/core/http/http_polling_socket_spec.js +60 -0
- package/spec/javascripts/unit/core/http/http_request_spec.js +185 -0
- package/spec/javascripts/unit/core/http/http_socket_spec.js +370 -0
- package/spec/javascripts/unit/core/http/http_streaming_socket_spec.js +56 -0
- package/spec/javascripts/unit/core/http/http_xhr_request_spec.js +164 -0
- package/spec/javascripts/unit/core/logger_spec.js +133 -0
- package/spec/javascripts/unit/core/pusher_spec.js +613 -0
- package/spec/javascripts/unit/core/pusher_with_encryption_spec.js +18 -0
- package/spec/javascripts/unit/core/strategies/best_connected_ever_strategy_spec.js +104 -0
- package/spec/javascripts/unit/core/strategies/delayed_strategy_spec.js +95 -0
- package/spec/javascripts/unit/core/strategies/first_connected_strategy_spec.js +68 -0
- package/spec/javascripts/unit/core/strategies/if_strategy_spec.js +165 -0
- package/spec/javascripts/unit/core/strategies/sequential_strategy_spec.js +213 -0
- package/spec/javascripts/unit/core/strategies/transport_strategy_spec.js +250 -0
- package/spec/javascripts/unit/core/strategies/websocket_prioritized_cached_strategy_spec.js +400 -0
- package/spec/javascripts/unit/core/timeline/timeline_spec.js +153 -0
- package/spec/javascripts/unit/core/transports/assistant_to_the_transport_manager_spec.js +223 -0
- package/spec/javascripts/unit/core/transports/hosts_and_ports_spec.js +85 -0
- package/spec/javascripts/unit/core/transports/transport_connection_spec.js +585 -0
- package/spec/javascripts/unit/core/transports/transport_manager_spec.js +64 -0
- package/spec/javascripts/unit/core/user_spec.js +303 -0
- package/spec/javascripts/unit/core/utils/periodic_timer_spec.js +74 -0
- package/spec/javascripts/unit/core/utils/timers_spec.js +157 -0
- package/spec/javascripts/unit/core/utils/url_store_spec.js +14 -0
- package/spec/javascripts/unit/core/watchlist_spec.js +48 -0
- package/spec/javascripts/unit/core_with_runtime/auth/channel_authorizer_spec.js +137 -0
- package/spec/javascripts/unit/core_with_runtime/auth/deprecated_channel_authorizer_spec.js +48 -0
- package/spec/javascripts/unit/core_with_runtime/auth/user_authorizer_spec.js +128 -0
- package/spec/javascripts/unit/core_with_runtime/readme.md +5 -0
- package/spec/javascripts/unit/index.node.js +11 -0
- package/spec/javascripts/unit/index.web.js +12 -0
- package/spec/javascripts/unit/index.worker.js +11 -0
- package/spec/javascripts/unit/isomorphic/transports/hosts_and_ports_spec.js +82 -0
- package/spec/javascripts/unit/isomorphic/transports/transports_spec.js +202 -0
- package/spec/javascripts/unit/node/timeline_sender_spec.js +83 -0
- package/spec/javascripts/unit/web/dom/dependency_loader_spec.js +249 -0
- package/spec/javascripts/unit/web/dom/jsonp_request_spec.js +130 -0
- package/spec/javascripts/unit/web/dom/script_receiver_factory_spec.js +68 -0
- package/spec/javascripts/unit/web/http/http_xdomain_request_spec.js +222 -0
- package/spec/javascripts/unit/web/pusher_authorizer_spec.js +64 -0
- package/spec/javascripts/unit/web/timeline/timeline_sender_spec.js +131 -0
- package/spec/javascripts/unit/web/transports/hosts_and_ports_spec.js +127 -0
- package/spec/javascripts/unit/web/transports/transports_spec.js +444 -0
- package/spec/javascripts/unit/worker/channel_authorizer_spec.js +156 -0
- package/spec/javascripts/unit/worker/timeline_sender_spec.js +76 -0
- package/src/core/auth/auth_transports.ts +18 -0
- package/src/core/auth/channel_authorizer.ts +64 -0
- package/src/core/auth/deprecated_channel_authorizer.ts +58 -0
- package/src/core/auth/options.ts +78 -0
- package/src/core/auth/user_authenticator.ts +62 -0
- package/src/core/base64.ts +49 -0
- package/src/core/channels/channel.ts +163 -0
- package/src/core/channels/channel_table.ts +7 -0
- package/src/core/channels/channels.ts +85 -0
- package/src/core/channels/encrypted_channel.ts +149 -0
- package/src/core/channels/members.ts +80 -0
- package/src/core/channels/metadata.ts +5 -0
- package/src/core/channels/presence_channel.ts +113 -0
- package/src/core/channels/private_channel.ts +25 -0
- package/src/core/config.ts +189 -0
- package/src/core/connection/callbacks.ts +21 -0
- package/src/core/connection/connection.ts +160 -0
- package/src/core/connection/connection_manager.ts +371 -0
- package/src/core/connection/connection_manager_options.ts +14 -0
- package/src/core/connection/handshake/handshake_payload.ts +10 -0
- package/src/core/connection/handshake/index.ts +90 -0
- package/src/core/connection/protocol/action.ts +8 -0
- package/src/core/connection/protocol/message-types.ts +8 -0
- package/src/core/connection/protocol/protocol.ts +154 -0
- package/src/core/defaults.ts +66 -0
- package/src/core/errors.ts +69 -0
- package/src/core/events/callback.ts +6 -0
- package/src/core/events/callback_registry.ts +75 -0
- package/src/core/events/callback_table.ts +7 -0
- package/src/core/events/dispatcher.ts +84 -0
- package/src/core/http/ajax.ts +24 -0
- package/src/core/http/http_factory.ts +16 -0
- package/src/core/http/http_polling_socket.ts +24 -0
- package/src/core/http/http_request.ts +81 -0
- package/src/core/http/http_socket.ts +220 -0
- package/src/core/http/http_streaming_socket.ts +19 -0
- package/src/core/http/request_hooks.ts +9 -0
- package/src/core/http/socket_hooks.ts +11 -0
- package/src/core/http/state.ts +7 -0
- package/src/core/http/url_location.ts +6 -0
- package/src/core/logger.ts +53 -0
- package/src/core/options.ts +59 -0
- package/src/core/pusher-licence.js +7 -0
- package/src/core/pusher-with-encryption.js +1 -0
- package/src/core/pusher-with-encryption.ts +14 -0
- package/src/core/pusher.js +2 -0
- package/src/core/pusher.ts +249 -0
- package/src/core/reachability.ts +7 -0
- package/src/core/socket.ts +14 -0
- package/src/core/strategies/best_connected_ever_strategy.ts +81 -0
- package/src/core/strategies/delayed_strategy.ts +48 -0
- package/src/core/strategies/first_connected_strategy.ts +28 -0
- package/src/core/strategies/if_strategy.ts +34 -0
- package/src/core/strategies/sequential_strategy.ts +129 -0
- package/src/core/strategies/strategy.ts +8 -0
- package/src/core/strategies/strategy_builder.ts +67 -0
- package/src/core/strategies/strategy_options.ts +18 -0
- package/src/core/strategies/strategy_runner.ts +6 -0
- package/src/core/strategies/transport_strategy.ts +144 -0
- package/src/core/strategies/websocket_prioritized_cached_strategy.ts +157 -0
- package/src/core/timeline/level.ts +7 -0
- package/src/core/timeline/timeline.ts +90 -0
- package/src/core/timeline/timeline_sender.ts +33 -0
- package/src/core/timeline/timeline_transport.ts +11 -0
- package/src/core/transports/assistant_to_the_transport_manager.ts +104 -0
- package/src/core/transports/ping_delay_options.ts +7 -0
- package/src/core/transports/transport.ts +54 -0
- package/src/core/transports/transport_connection.ts +241 -0
- package/src/core/transports/transport_connection_options.ts +8 -0
- package/src/core/transports/transport_hooks.ts +16 -0
- package/src/core/transports/transport_manager.ts +52 -0
- package/src/core/transports/transports_table.ts +12 -0
- package/src/core/transports/url_scheme.ts +13 -0
- package/src/core/transports/url_schemes.ts +47 -0
- package/src/core/user.ts +186 -0
- package/src/core/util.ts +34 -0
- package/src/core/utils/collections.ts +353 -0
- package/src/core/utils/factory.ts +75 -0
- package/src/core/utils/flat_promise.ts +10 -0
- package/src/core/utils/timers/abstract_timer.ts +39 -0
- package/src/core/utils/timers/index.ts +39 -0
- package/src/core/utils/timers/scheduling.ts +11 -0
- package/src/core/utils/timers/timed_callback.ts +5 -0
- package/src/core/utils/url_store.ts +48 -0
- package/src/core/watchlist.ts +31 -0
- package/src/d.ts/constants/index.d.ts +5 -0
- package/src/d.ts/faye-websocket/faye-websocket.d.ts +21 -0
- package/src/d.ts/global/global.d.ts +1 -0
- package/src/d.ts/module/module.d.ts +12 -0
- package/src/d.ts/tweetnacl-util/index.d.ts +6 -0
- package/src/d.ts/window/events.d.ts +4 -0
- package/src/d.ts/window/sockjs.d.ts +3 -0
- package/src/d.ts/window/websocket.d.ts +4 -0
- package/src/d.ts/window/xmlhttprequest.d.ts +3 -0
- package/src/runtimes/interface.ts +59 -0
- package/src/runtimes/isomorphic/auth/xhr_auth.ts +90 -0
- package/src/runtimes/isomorphic/default_strategy.ts +155 -0
- package/src/runtimes/isomorphic/http/http.ts +32 -0
- package/src/runtimes/isomorphic/http/http_xhr_request.ts +35 -0
- package/src/runtimes/isomorphic/runtime.ts +62 -0
- package/src/runtimes/isomorphic/timeline/xhr_timeline.ts +50 -0
- package/src/runtimes/isomorphic/transports/transport_connection_initializer.ts +19 -0
- package/src/runtimes/isomorphic/transports/transports.ts +81 -0
- package/src/runtimes/node/net_info.ts +10 -0
- package/src/runtimes/node/runtime.ts +68 -0
- package/src/runtimes/react-native/net_info.ts +42 -0
- package/src/runtimes/react-native/runtime.ts +65 -0
- package/src/runtimes/web/auth/jsonp_auth.ts +51 -0
- package/src/runtimes/web/browser.ts +24 -0
- package/src/runtimes/web/default_strategy.ts +201 -0
- package/src/runtimes/web/dom/dependencies.ts +16 -0
- package/src/runtimes/web/dom/dependency_loader.ts +93 -0
- package/src/runtimes/web/dom/json2.js +486 -0
- package/src/runtimes/web/dom/jsonp_request.ts +52 -0
- package/src/runtimes/web/dom/script_receiver.ts +8 -0
- package/src/runtimes/web/dom/script_receiver_factory.ts +57 -0
- package/src/runtimes/web/dom/script_request.ts +85 -0
- package/src/runtimes/web/dom/sockjs/COPYING +11 -0
- package/src/runtimes/web/dom/sockjs/Changelog +147 -0
- package/src/runtimes/web/dom/sockjs/LICENSE-MIT-SockJS +19 -0
- package/src/runtimes/web/dom/sockjs/Makefile +109 -0
- package/src/runtimes/web/dom/sockjs/README.md +388 -0
- package/src/runtimes/web/dom/sockjs/VERSION-GEN +17 -0
- package/src/runtimes/web/dom/sockjs/bin/render.coffee +111 -0
- package/src/runtimes/web/dom/sockjs/bin/run_testling.sh +135 -0
- package/src/runtimes/web/dom/sockjs/lib/all.js +9 -0
- package/src/runtimes/web/dom/sockjs/lib/dom.js +185 -0
- package/src/runtimes/web/dom/sockjs/lib/dom2.js +280 -0
- package/src/runtimes/web/dom/sockjs/lib/eventemitter.js +57 -0
- package/src/runtimes/web/dom/sockjs/lib/heartbeater.js +70 -0
- package/src/runtimes/web/dom/sockjs/lib/index.js +41 -0
- package/src/runtimes/web/dom/sockjs/lib/info.js +117 -0
- package/src/runtimes/web/dom/sockjs/lib/json2.min.js +1 -0
- package/src/runtimes/web/dom/sockjs/lib/reventtarget.js +55 -0
- package/src/runtimes/web/dom/sockjs/lib/simpleevent.js +28 -0
- package/src/runtimes/web/dom/sockjs/lib/sockjs.js +288 -0
- package/src/runtimes/web/dom/sockjs/lib/test-hooks.js +16 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-iframe-eventsource.js +29 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-iframe-htmlfile.js +35 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-iframe-within.js +100 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-iframe-xhr-polling.js +30 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-iframe.js +103 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-polling.js +106 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-jsonp-receiver.js +116 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-polling.js +44 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-receiver-eventsource.js +41 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-receiver-htmlfile.js +65 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-receiver-xhr.js +42 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-sender.js +138 -0
- package/src/runtimes/web/dom/sockjs/lib/trans-xhr.js +29 -0
- package/src/runtimes/web/dom/sockjs/lib/utils.js +297 -0
- package/src/runtimes/web/dom/sockjs/package.json +18 -0
- package/src/runtimes/web/dom/sockjs/version +1 -0
- package/src/runtimes/web/http/http.ts +8 -0
- package/src/runtimes/web/http/http_xdomain_request.ts +37 -0
- package/src/runtimes/web/net_info.ts +50 -0
- package/src/runtimes/web/runtime.ts +174 -0
- package/src/runtimes/web/timeline/jsonp_timeline.ts +34 -0
- package/src/runtimes/web/transports/transport_connection_initializer.ts +39 -0
- package/src/runtimes/web/transports/transports.ts +65 -0
- package/src/runtimes/worker/auth/fetch_auth.ts +69 -0
- package/src/runtimes/worker/net_info.ts +10 -0
- package/src/runtimes/worker/runtime.ts +75 -0
- package/src/runtimes/worker/timeline/fetch_timeline.ts +39 -0
- package/tsconfig.json +26 -0
- package/types/spec/javascripts/helpers/node/mock-dom-dependencies.d.ts +1 -0
- package/types/spec/javascripts/helpers/pusher_integration_class.d.ts +4 -0
- package/types/src/core/auth/auth_transports.d.ts +9 -0
- package/types/src/core/auth/channel_authorizer.d.ts +3 -0
- package/types/src/core/auth/deprecated_channel_authorizer.d.ts +18 -0
- package/types/src/core/auth/options.d.ts +48 -0
- package/types/src/core/auth/user_authenticator.d.ts +3 -0
- package/types/src/core/base64.d.ts +1 -0
- package/types/src/core/channels/channel.d.ts +23 -0
- package/types/src/core/channels/channel_table.d.ts +5 -0
- package/types/src/core/channels/channels.d.ts +12 -0
- package/types/src/core/channels/encrypted_channel.d.ts +15 -0
- package/types/src/core/channels/members.d.ts +14 -0
- package/types/src/core/channels/metadata.d.ts +4 -0
- package/types/src/core/channels/presence_channel.d.ts +13 -0
- package/types/src/core/channels/private_channel.d.ts +5 -0
- package/types/src/core/config.d.ts +31 -0
- package/types/src/core/connection/callbacks.d.ts +18 -0
- package/types/src/core/connection/connection.d.ts +16 -0
- package/types/src/core/connection/connection_manager.d.ts +50 -0
- package/types/src/core/connection/connection_manager_options.d.ts +11 -0
- package/types/src/core/connection/handshake/handshake_payload.d.ts +8 -0
- package/types/src/core/connection/handshake/index.d.ts +12 -0
- package/types/src/core/connection/protocol/action.d.ts +7 -0
- package/types/src/core/connection/protocol/message-types.d.ts +7 -0
- package/types/src/core/connection/protocol/protocol.d.ts +10 -0
- package/types/src/core/defaults.d.ts +26 -0
- package/types/src/core/errors.d.ts +28 -0
- package/types/src/core/events/callback.d.ts +5 -0
- package/types/src/core/events/callback_registry.d.ts +11 -0
- package/types/src/core/events/callback_table.d.ts +5 -0
- package/types/src/core/events/dispatcher.d.ts +14 -0
- package/types/src/core/http/ajax.d.ts +16 -0
- package/types/src/core/http/http_factory.d.ts +13 -0
- package/types/src/core/http/http_polling_socket.d.ts +3 -0
- package/types/src/core/http/http_request.d.ts +17 -0
- package/types/src/core/http/http_socket.d.ts +32 -0
- package/types/src/core/http/http_streaming_socket.d.ts +3 -0
- package/types/src/core/http/request_hooks.d.ts +6 -0
- package/types/src/core/http/socket_hooks.d.ts +8 -0
- package/types/src/core/http/state.d.ts +6 -0
- package/types/src/core/http/url_location.d.ts +5 -0
- package/types/src/core/logger.d.ts +11 -0
- package/types/src/core/options.d.ts +34 -0
- package/types/src/core/pusher-with-encryption.d.ts +5 -0
- package/types/src/core/pusher.d.ts +49 -0
- package/types/src/core/reachability.d.ts +5 -0
- package/types/src/core/socket.d.ts +12 -0
- package/types/src/core/strategies/best_connected_ever_strategy.d.ts +10 -0
- package/types/src/core/strategies/delayed_strategy.d.ts +15 -0
- package/types/src/core/strategies/first_connected_strategy.d.ts +8 -0
- package/types/src/core/strategies/if_strategy.d.ts +10 -0
- package/types/src/core/strategies/sequential_strategy.d.ts +16 -0
- package/types/src/core/strategies/strategy.d.ts +6 -0
- package/types/src/core/strategies/strategy_builder.d.ts +5 -0
- package/types/src/core/strategies/strategy_options.d.ts +16 -0
- package/types/src/core/strategies/strategy_runner.d.ts +5 -0
- package/types/src/core/strategies/transport_strategy.d.ts +15 -0
- package/types/src/core/strategies/websocket_prioritized_cached_strategy.d.ts +20 -0
- package/types/src/core/timeline/level.d.ts +6 -0
- package/types/src/core/timeline/timeline.d.ts +25 -0
- package/types/src/core/timeline/timeline_sender.d.ts +13 -0
- package/types/src/core/timeline/timeline_transport.d.ts +6 -0
- package/types/src/core/transports/assistant_to_the_transport_manager.d.ts +14 -0
- package/types/src/core/transports/ping_delay_options.d.ts +6 -0
- package/types/src/core/transports/transport.d.ts +8 -0
- package/types/src/core/transports/transport_connection.d.ts +35 -0
- package/types/src/core/transports/transport_connection_options.d.ts +6 -0
- package/types/src/core/transports/transport_hooks.d.ts +13 -0
- package/types/src/core/transports/transport_manager.d.ts +14 -0
- package/types/src/core/transports/transports_table.d.ts +10 -0
- package/types/src/core/transports/url_scheme.d.ts +11 -0
- package/types/src/core/transports/url_schemes.d.ts +4 -0
- package/types/src/core/user.d.ts +21 -0
- package/types/src/core/util.d.ts +8 -0
- package/types/src/core/utils/collections.d.ts +18 -0
- package/types/src/core/utils/factory.d.ts +29 -0
- package/types/src/core/utils/flat_promise.d.ts +6 -0
- package/types/src/core/utils/timers/abstract_timer.d.ts +10 -0
- package/types/src/core/utils/timers/index.d.ts +9 -0
- package/types/src/core/utils/timers/scheduling.d.ts +8 -0
- package/types/src/core/utils/timers/timed_callback.d.ts +4 -0
- package/types/src/core/utils/url_store.d.ts +4 -0
- package/types/src/core/watchlist.d.ts +8 -0
- package/types/src/runtimes/interface.d.ts +43 -0
- package/types/src/runtimes/isomorphic/auth/xhr_auth.d.ts +3 -0
- package/types/src/runtimes/isomorphic/default_strategy.d.ts +5 -0
- package/types/src/runtimes/isomorphic/http/http.d.ts +3 -0
- package/types/src/runtimes/isomorphic/http/http_xhr_request.d.ts +3 -0
- package/types/src/runtimes/isomorphic/runtime.d.ts +2 -0
- package/types/src/runtimes/isomorphic/timeline/xhr_timeline.d.ts +6 -0
- package/types/src/runtimes/isomorphic/transports/transport_connection_initializer.d.ts +1 -0
- package/types/src/runtimes/isomorphic/transports/transports.d.ts +5 -0
- package/types/src/runtimes/node/net_info.d.ts +6 -0
- package/types/src/runtimes/node/runtime.d.ts +3 -0
- package/types/src/runtimes/react-native/net_info.d.ts +8 -0
- package/types/src/runtimes/react-native/runtime.d.ts +3 -0
- package/types/src/runtimes/web/auth/jsonp_auth.d.ts +3 -0
- package/types/src/runtimes/web/browser.d.ts +19 -0
- package/types/src/runtimes/web/default_strategy.d.ts +5 -0
- package/types/src/runtimes/web/dom/dependencies.d.ts +4 -0
- package/types/src/runtimes/web/dom/dependency_loader.d.ts +10 -0
- package/types/src/runtimes/web/dom/jsonp_request.d.ts +10 -0
- package/types/src/runtimes/web/dom/script_receiver.d.ts +7 -0
- package/types/src/runtimes/web/dom/script_receiver_factory.d.ts +10 -0
- package/types/src/runtimes/web/dom/script_request.d.ts +9 -0
- package/types/src/runtimes/web/http/http.d.ts +2 -0
- package/types/src/runtimes/web/http/http_xdomain_request.d.ts +3 -0
- package/types/src/runtimes/web/net_info.d.ts +7 -0
- package/types/src/runtimes/web/runtime.d.ts +3 -0
- package/types/src/runtimes/web/timeline/jsonp_timeline.d.ts +6 -0
- package/types/src/runtimes/web/transports/transport_connection_initializer.d.ts +1 -0
- package/types/src/runtimes/web/transports/transports.d.ts +2 -0
- package/types/src/runtimes/worker/auth/fetch_auth.d.ts +3 -0
- package/types/src/runtimes/worker/net_info.d.ts +6 -0
- package/types/src/runtimes/worker/runtime.d.ts +3 -0
- package/types/src/runtimes/worker/timeline/fetch_timeline.d.ts +6 -0
- package/webpack/config.node.js +26 -0
- package/webpack/config.react-native.js +35 -0
- package/webpack/config.shared.js +50 -0
- package/webpack/config.web.js +36 -0
- package/webpack/config.worker.js +42 -0
- package/webpack/dev.server.js +17 -0
- package/webpack/hosting_config.js +6 -0
- package/with-encryption/index.d.ts +29 -0
- package/with-encryption/index.js +4 -0
- package/worker/index.d.ts +29 -0
- package/worker/index.js +1 -0
- package/worker/with-encryption/index.d.ts +29 -0
- package/worker/with-encryption/index.js +1 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
default as Transports,
|
|
3
|
+
streamingConfiguration,
|
|
4
|
+
pollingConfiguration
|
|
5
|
+
} from 'isomorphic/transports/transports';
|
|
6
|
+
import Transport from 'core/transports/transport';
|
|
7
|
+
import TransportHooks from 'core/transports/transport_hooks';
|
|
8
|
+
import * as URLSchemes from 'core/transports/url_schemes';
|
|
9
|
+
import Runtime from 'runtime';
|
|
10
|
+
import { Dependencies } from '../dom/dependencies';
|
|
11
|
+
import * as Collections from 'core/utils/collections';
|
|
12
|
+
|
|
13
|
+
var SockJSTransport = new Transport(<TransportHooks>{
|
|
14
|
+
file: 'sockjs',
|
|
15
|
+
urls: URLSchemes.sockjs,
|
|
16
|
+
handlesActivityChecks: true,
|
|
17
|
+
supportsPing: false,
|
|
18
|
+
|
|
19
|
+
isSupported: function() {
|
|
20
|
+
return true;
|
|
21
|
+
},
|
|
22
|
+
isInitialized: function() {
|
|
23
|
+
return window.SockJS !== undefined;
|
|
24
|
+
},
|
|
25
|
+
getSocket: function(url, options) {
|
|
26
|
+
return new window.SockJS(url, null, {
|
|
27
|
+
js_path: Dependencies.getPath('sockjs', {
|
|
28
|
+
useTLS: options.useTLS
|
|
29
|
+
}),
|
|
30
|
+
ignore_null_origin: options.ignoreNullOrigin
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
beforeOpen: function(socket, path) {
|
|
34
|
+
socket.send(
|
|
35
|
+
JSON.stringify({
|
|
36
|
+
path: path
|
|
37
|
+
})
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
var xdrConfiguration = {
|
|
43
|
+
isSupported: function(environment): boolean {
|
|
44
|
+
var yes = Runtime.isXDRSupported(environment.useTLS);
|
|
45
|
+
return yes;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/** HTTP streaming transport using XDomainRequest (IE 8,9). */
|
|
50
|
+
var XDRStreamingTransport = new Transport(
|
|
51
|
+
<TransportHooks>(
|
|
52
|
+
Collections.extend({}, streamingConfiguration, xdrConfiguration)
|
|
53
|
+
)
|
|
54
|
+
);
|
|
55
|
+
|
|
56
|
+
/** HTTP long-polling transport using XDomainRequest (IE 8,9). */
|
|
57
|
+
var XDRPollingTransport = new Transport(
|
|
58
|
+
<TransportHooks>Collections.extend({}, pollingConfiguration, xdrConfiguration)
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
Transports.xdr_streaming = XDRStreamingTransport;
|
|
62
|
+
Transports.xdr_polling = XDRPollingTransport;
|
|
63
|
+
Transports.sockjs = SockJSTransport;
|
|
64
|
+
|
|
65
|
+
export default Transports;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import AbstractRuntime from 'runtimes/interface';
|
|
2
|
+
import { AuthTransport } from 'core/auth/auth_transports';
|
|
3
|
+
import {
|
|
4
|
+
AuthRequestType,
|
|
5
|
+
AuthTransportCallback,
|
|
6
|
+
InternalAuthOptions
|
|
7
|
+
} from 'core/auth/options';
|
|
8
|
+
import { HTTPAuthError } from 'core/errors';
|
|
9
|
+
|
|
10
|
+
var fetchAuth: AuthTransport = function(
|
|
11
|
+
context: AbstractRuntime,
|
|
12
|
+
query: string,
|
|
13
|
+
authOptions: InternalAuthOptions,
|
|
14
|
+
authRequestType: AuthRequestType,
|
|
15
|
+
callback: AuthTransportCallback
|
|
16
|
+
) {
|
|
17
|
+
var headers = new Headers();
|
|
18
|
+
headers.set('Content-Type', 'application/x-www-form-urlencoded');
|
|
19
|
+
|
|
20
|
+
for (var headerName in authOptions.headers) {
|
|
21
|
+
headers.set(headerName, authOptions.headers[headerName]);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (authOptions.headersProvider != null) {
|
|
25
|
+
const dynamicHeaders = authOptions.headersProvider();
|
|
26
|
+
for (var headerName in dynamicHeaders) {
|
|
27
|
+
headers.set(headerName, dynamicHeaders[headerName]);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
var body = query;
|
|
32
|
+
var request = new Request(authOptions.endpoint, {
|
|
33
|
+
headers,
|
|
34
|
+
body,
|
|
35
|
+
credentials: 'same-origin',
|
|
36
|
+
method: 'POST'
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
return fetch(request)
|
|
40
|
+
.then(response => {
|
|
41
|
+
let { status } = response;
|
|
42
|
+
if (status === 200) {
|
|
43
|
+
// manually parse the json so we can provide a more helpful error in
|
|
44
|
+
// failure case
|
|
45
|
+
return response.text();
|
|
46
|
+
}
|
|
47
|
+
throw new HTTPAuthError(
|
|
48
|
+
status,
|
|
49
|
+
`Could not get ${authRequestType.toString()} info from your auth endpoint, status: ${status}`
|
|
50
|
+
);
|
|
51
|
+
})
|
|
52
|
+
.then(data => {
|
|
53
|
+
let parsedData;
|
|
54
|
+
try {
|
|
55
|
+
parsedData = JSON.parse(data);
|
|
56
|
+
} catch (e) {
|
|
57
|
+
throw new HTTPAuthError(
|
|
58
|
+
200,
|
|
59
|
+
`JSON returned from ${authRequestType.toString()} endpoint was invalid, yet status code was 200. Data was: ${data}`
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
callback(null, parsedData);
|
|
63
|
+
})
|
|
64
|
+
.catch(err => {
|
|
65
|
+
callback(err, null);
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default fetchAuth;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { default as EventsDispatcher } from 'core/events/dispatcher';
|
|
2
|
+
import Reachability from 'core/reachability';
|
|
3
|
+
|
|
4
|
+
export class NetInfo extends EventsDispatcher implements Reachability {
|
|
5
|
+
isOnline(): boolean {
|
|
6
|
+
return true;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export var Network = new NetInfo();
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import Isomorphic from 'isomorphic/runtime';
|
|
2
|
+
import Runtime from '../interface';
|
|
3
|
+
import { Network } from './net_info';
|
|
4
|
+
import fetchAuth from './auth/fetch_auth';
|
|
5
|
+
import { AuthTransports } from 'core/auth/auth_transports';
|
|
6
|
+
import fetchTimeline from './timeline/fetch_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 Worker: 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: fetchTimeline,
|
|
43
|
+
|
|
44
|
+
getAuthorizers(): AuthTransports {
|
|
45
|
+
return { ajax: fetchAuth };
|
|
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
|
+
/**
|
|
62
|
+
* Return values in the range of [0, 1[
|
|
63
|
+
*/
|
|
64
|
+
const random = function() {
|
|
65
|
+
const crypto = globalThis.crypto || globalThis['msCrypto'];
|
|
66
|
+
const random = crypto.getRandomValues(new Uint32Array(1))[0];
|
|
67
|
+
|
|
68
|
+
return random / 2 ** 32;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
return Math.floor(random() * max);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export default Worker;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import Logger from 'core/logger';
|
|
2
|
+
import TimelineSender from 'core/timeline/timeline_sender';
|
|
3
|
+
import * as Collections from 'core/utils/collections';
|
|
4
|
+
import Util from 'core/util';
|
|
5
|
+
import Runtime from 'runtime';
|
|
6
|
+
import TimelineTransport from 'core/timeline/timeline_transport';
|
|
7
|
+
|
|
8
|
+
var getAgent = function(sender: TimelineSender, useTLS: boolean) {
|
|
9
|
+
return function(data: any, callback: Function) {
|
|
10
|
+
var scheme = 'http' + (useTLS ? 's' : '') + '://';
|
|
11
|
+
var url =
|
|
12
|
+
scheme + (sender.host || sender.options.host) + sender.options.path;
|
|
13
|
+
var query = Collections.buildQueryString(data);
|
|
14
|
+
url += '/' + 2 + '?' + query;
|
|
15
|
+
|
|
16
|
+
fetch(url)
|
|
17
|
+
.then(response => {
|
|
18
|
+
if (response.status !== 200) {
|
|
19
|
+
throw `received ${response.status} from stats.pusher.com`;
|
|
20
|
+
}
|
|
21
|
+
return response.json();
|
|
22
|
+
})
|
|
23
|
+
.then(({ host }) => {
|
|
24
|
+
if (host) {
|
|
25
|
+
sender.host = host;
|
|
26
|
+
}
|
|
27
|
+
})
|
|
28
|
+
.catch(err => {
|
|
29
|
+
Logger.debug('TimelineSender Error: ', err);
|
|
30
|
+
});
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
var fetchTimeline = {
|
|
35
|
+
name: 'xhr',
|
|
36
|
+
getAgent
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export default fetchTimeline;
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"sourceMap": true,
|
|
4
|
+
"module": "es6",
|
|
5
|
+
"declaration": true,
|
|
6
|
+
"declarationDir": "types",
|
|
7
|
+
"target": "ES6",
|
|
8
|
+
"removeComments": true,
|
|
9
|
+
"moduleResolution": "node",
|
|
10
|
+
"baseUrl": "src",
|
|
11
|
+
"paths": {
|
|
12
|
+
"*": [
|
|
13
|
+
"*",
|
|
14
|
+
"runtimes/*"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
17
|
+
"lib": [
|
|
18
|
+
"ScriptHost",
|
|
19
|
+
"DOM",
|
|
20
|
+
"ES5"
|
|
21
|
+
]
|
|
22
|
+
},
|
|
23
|
+
"exclude": [
|
|
24
|
+
"node_modules"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare var Dependencies: {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import AbstractRuntime from '../../runtimes/interface';
|
|
2
|
+
import { AuthRequestType, InternalAuthOptions } from './options';
|
|
3
|
+
interface AuthTransport {
|
|
4
|
+
(context: AbstractRuntime, query: string, authOptions: InternalAuthOptions, authRequestType: AuthRequestType, callback: Function): void;
|
|
5
|
+
}
|
|
6
|
+
interface AuthTransports {
|
|
7
|
+
[index: string]: AuthTransport;
|
|
8
|
+
}
|
|
9
|
+
export { AuthTransport, AuthTransports };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import Channel from '../channels/channel';
|
|
2
|
+
import { ChannelAuthorizationCallback, ChannelAuthorizationHandler, InternalAuthOptions } from './options';
|
|
3
|
+
export interface DeprecatedChannelAuthorizer {
|
|
4
|
+
authorize(socketId: string, callback: ChannelAuthorizationCallback): void;
|
|
5
|
+
}
|
|
6
|
+
export interface ChannelAuthorizerGenerator {
|
|
7
|
+
(channel: Channel, options: DeprecatedAuthorizerOptions): DeprecatedChannelAuthorizer;
|
|
8
|
+
}
|
|
9
|
+
export interface DeprecatedAuthOptions {
|
|
10
|
+
params?: any;
|
|
11
|
+
headers?: any;
|
|
12
|
+
}
|
|
13
|
+
export interface DeprecatedAuthorizerOptions {
|
|
14
|
+
authTransport: 'ajax' | 'jsonp';
|
|
15
|
+
authEndpoint: string;
|
|
16
|
+
auth?: DeprecatedAuthOptions;
|
|
17
|
+
}
|
|
18
|
+
export declare const ChannelAuthorizerProxy: (pusher: any, authOptions: InternalAuthOptions, channelAuthorizerGenerator: ChannelAuthorizerGenerator) => ChannelAuthorizationHandler;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export declare enum AuthRequestType {
|
|
2
|
+
UserAuthentication = "user-authentication",
|
|
3
|
+
ChannelAuthorization = "channel-authorization"
|
|
4
|
+
}
|
|
5
|
+
export interface ChannelAuthorizationData {
|
|
6
|
+
auth: string;
|
|
7
|
+
channel_data?: string;
|
|
8
|
+
shared_secret?: string;
|
|
9
|
+
}
|
|
10
|
+
export type ChannelAuthorizationCallback = (error: Error | null, authData: ChannelAuthorizationData | null) => void;
|
|
11
|
+
export interface ChannelAuthorizationRequestParams {
|
|
12
|
+
socketId: string;
|
|
13
|
+
channelName: string;
|
|
14
|
+
}
|
|
15
|
+
export interface ChannelAuthorizationHandler {
|
|
16
|
+
(params: ChannelAuthorizationRequestParams, callback: ChannelAuthorizationCallback): void;
|
|
17
|
+
}
|
|
18
|
+
export interface UserAuthenticationData {
|
|
19
|
+
auth: string;
|
|
20
|
+
user_data: string;
|
|
21
|
+
}
|
|
22
|
+
export type UserAuthenticationCallback = (error: Error | null, authData: UserAuthenticationData | null) => void;
|
|
23
|
+
export interface UserAuthenticationRequestParams {
|
|
24
|
+
socketId: string;
|
|
25
|
+
}
|
|
26
|
+
export interface UserAuthenticationHandler {
|
|
27
|
+
(params: UserAuthenticationRequestParams, callback: UserAuthenticationCallback): void;
|
|
28
|
+
}
|
|
29
|
+
export type AuthTransportCallback = ChannelAuthorizationCallback | UserAuthenticationCallback;
|
|
30
|
+
export interface AuthOptionsT<AuthHandler> {
|
|
31
|
+
transport: 'ajax' | 'jsonp';
|
|
32
|
+
endpoint: string;
|
|
33
|
+
params?: any;
|
|
34
|
+
headers?: any;
|
|
35
|
+
paramsProvider?: () => any;
|
|
36
|
+
headersProvider?: () => any;
|
|
37
|
+
customHandler?: AuthHandler;
|
|
38
|
+
}
|
|
39
|
+
export declare type UserAuthenticationOptions = AuthOptionsT<UserAuthenticationHandler>;
|
|
40
|
+
export declare type ChannelAuthorizationOptions = AuthOptionsT<ChannelAuthorizationHandler>;
|
|
41
|
+
export interface InternalAuthOptions {
|
|
42
|
+
transport: 'ajax' | 'jsonp';
|
|
43
|
+
endpoint: string;
|
|
44
|
+
params?: any;
|
|
45
|
+
headers?: any;
|
|
46
|
+
paramsProvider?: () => any;
|
|
47
|
+
headersProvider?: () => any;
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function encode(s: any): string;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ChannelAuthorizationCallback } from '../auth/options';
|
|
2
|
+
import { PusherEvent } from '../connection/protocol/message-types';
|
|
3
|
+
import { default as EventsDispatcher } from '../events/dispatcher';
|
|
4
|
+
import Pingerchips from '../pusher';
|
|
5
|
+
export default class Channel extends EventsDispatcher {
|
|
6
|
+
name: string;
|
|
7
|
+
pusher: Pingerchips;
|
|
8
|
+
subscribed: boolean;
|
|
9
|
+
subscriptionPending: boolean;
|
|
10
|
+
subscriptionCancelled: boolean;
|
|
11
|
+
subscriptionCount: null;
|
|
12
|
+
constructor(name: string, pusher: Pingerchips);
|
|
13
|
+
authorize(socketId: string, callback: ChannelAuthorizationCallback): void;
|
|
14
|
+
trigger(event: string, data: any): boolean;
|
|
15
|
+
disconnect(): void;
|
|
16
|
+
handleEvent(event: PusherEvent): void;
|
|
17
|
+
handleSubscriptionSucceededEvent(event: PusherEvent): void;
|
|
18
|
+
handleSubscriptionCountEvent(event: PusherEvent): void;
|
|
19
|
+
subscribe(): void;
|
|
20
|
+
unsubscribe(): void;
|
|
21
|
+
cancelSubscription(): void;
|
|
22
|
+
reinstateSubscription(): void;
|
|
23
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import Pingerchips from '../pusher';
|
|
2
|
+
import Channel from './channel';
|
|
3
|
+
import ChannelTable from './channel_table';
|
|
4
|
+
export default class Channels {
|
|
5
|
+
channels: ChannelTable;
|
|
6
|
+
constructor();
|
|
7
|
+
add(name: string, pusher: Pingerchips): Channel;
|
|
8
|
+
all(): Channel[];
|
|
9
|
+
find(name: string): Channel;
|
|
10
|
+
remove(name: string): Channel;
|
|
11
|
+
disconnect(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as nacl from 'tweetnacl';
|
|
2
|
+
import { ChannelAuthorizationCallback } from '../auth/options';
|
|
3
|
+
import { PusherEvent } from '../connection/protocol/message-types';
|
|
4
|
+
import Pingerchips from '../pusher';
|
|
5
|
+
import PrivateChannel from './private_channel';
|
|
6
|
+
export default class EncryptedChannel extends PrivateChannel {
|
|
7
|
+
key: Uint8Array;
|
|
8
|
+
nacl: nacl;
|
|
9
|
+
constructor(name: string, pusher: Pingerchips, nacl: nacl);
|
|
10
|
+
authorize(socketId: string, callback: ChannelAuthorizationCallback): void;
|
|
11
|
+
trigger(event: string, data: any): boolean;
|
|
12
|
+
handleEvent(event: PusherEvent): void;
|
|
13
|
+
private handleEncryptedEvent;
|
|
14
|
+
getDataToEmit(bytes: Uint8Array): string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default class Members {
|
|
2
|
+
members: any;
|
|
3
|
+
count: number;
|
|
4
|
+
myID: any;
|
|
5
|
+
me: any;
|
|
6
|
+
constructor();
|
|
7
|
+
get(id: string): any;
|
|
8
|
+
each(callback: Function): void;
|
|
9
|
+
setMyID(id: string): void;
|
|
10
|
+
onSubscription(subscriptionData: any): void;
|
|
11
|
+
addMember(memberData: any): any;
|
|
12
|
+
removeMember(memberData: any): any;
|
|
13
|
+
reset(): void;
|
|
14
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { PusherEvent } from '../connection/protocol/message-types';
|
|
2
|
+
import Pingerchips from '../pusher';
|
|
3
|
+
import Members from './members';
|
|
4
|
+
import PrivateChannel from './private_channel';
|
|
5
|
+
export default class PresenceChannel extends PrivateChannel {
|
|
6
|
+
members: Members;
|
|
7
|
+
constructor(name: string, pusher: Pingerchips);
|
|
8
|
+
authorize(socketId: string, callback: Function): void;
|
|
9
|
+
handleEvent(event: PusherEvent): void;
|
|
10
|
+
handleInternalEvent(event: PusherEvent): void;
|
|
11
|
+
handleSubscriptionSucceededEvent(event: PusherEvent): void;
|
|
12
|
+
disconnect(): void;
|
|
13
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Options } from './options';
|
|
2
|
+
import { ChannelAuthorizationHandler, UserAuthenticationHandler } from './auth/options';
|
|
3
|
+
import * as nacl from 'tweetnacl';
|
|
4
|
+
export type AuthTransport = 'ajax' | 'jsonp';
|
|
5
|
+
export type Transport = 'ws' | 'wss' | 'xhr_streaming' | 'xhr_polling' | 'sockjs';
|
|
6
|
+
export interface Config {
|
|
7
|
+
activityTimeout: number;
|
|
8
|
+
enableStats: boolean;
|
|
9
|
+
httpHost: string;
|
|
10
|
+
httpPath: string;
|
|
11
|
+
httpPort: number;
|
|
12
|
+
httpsPort: number;
|
|
13
|
+
pongTimeout: number;
|
|
14
|
+
statsHost: string;
|
|
15
|
+
unavailableTimeout: number;
|
|
16
|
+
useTLS: boolean;
|
|
17
|
+
wsHost: string;
|
|
18
|
+
wsPath: string;
|
|
19
|
+
wsPort: number;
|
|
20
|
+
wssPort: number;
|
|
21
|
+
userAuthenticator: UserAuthenticationHandler;
|
|
22
|
+
channelAuthorizer: ChannelAuthorizationHandler;
|
|
23
|
+
forceTLS?: boolean;
|
|
24
|
+
cluster?: string;
|
|
25
|
+
disabledTransports?: Transport[];
|
|
26
|
+
enabledTransports?: Transport[];
|
|
27
|
+
ignoreNullOrigin?: boolean;
|
|
28
|
+
nacl?: nacl;
|
|
29
|
+
timelineParams?: any;
|
|
30
|
+
}
|
|
31
|
+
export declare function getConfig(opts: Options, pusher: any): Config;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import HandshakePayload from './handshake/handshake_payload';
|
|
2
|
+
import Action from './protocol/action';
|
|
3
|
+
export interface ErrorCallbacks {
|
|
4
|
+
tls_only: (result: Action | HandshakePayload) => void;
|
|
5
|
+
refused: (result: Action | HandshakePayload) => void;
|
|
6
|
+
backoff: (result: Action | HandshakePayload) => void;
|
|
7
|
+
retry: (result: Action | HandshakePayload) => void;
|
|
8
|
+
}
|
|
9
|
+
export interface HandshakeCallbacks {
|
|
10
|
+
connected: (handshake: HandshakePayload) => void;
|
|
11
|
+
}
|
|
12
|
+
export interface ConnectionCallbacks {
|
|
13
|
+
message: (message: any) => void;
|
|
14
|
+
ping: () => void;
|
|
15
|
+
activity: () => void;
|
|
16
|
+
error: (error: any) => void;
|
|
17
|
+
closed: () => void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { default as EventsDispatcher } from '../events/dispatcher';
|
|
2
|
+
import TransportConnection from '../transports/transport_connection';
|
|
3
|
+
import Socket from '../socket';
|
|
4
|
+
export default class Connection extends EventsDispatcher implements Socket {
|
|
5
|
+
id: string;
|
|
6
|
+
transport: TransportConnection;
|
|
7
|
+
activityTimeout: number;
|
|
8
|
+
constructor(id: string, transport: TransportConnection);
|
|
9
|
+
handlesActivityChecks(): boolean;
|
|
10
|
+
send(data: any): boolean;
|
|
11
|
+
send_event(name: string, data: any, channel?: string): boolean;
|
|
12
|
+
ping(): void;
|
|
13
|
+
close(): void;
|
|
14
|
+
private bindListeners;
|
|
15
|
+
private handleCloseEvent;
|
|
16
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { default as EventsDispatcher } from '../events/dispatcher';
|
|
2
|
+
import { OneOffTimer as Timer } from '../utils/timers';
|
|
3
|
+
import Connection from './connection';
|
|
4
|
+
import Strategy from '../strategies/strategy';
|
|
5
|
+
import StrategyRunner from '../strategies/strategy_runner';
|
|
6
|
+
import Timeline from '../timeline/timeline';
|
|
7
|
+
import ConnectionManagerOptions from './connection_manager_options';
|
|
8
|
+
import { ErrorCallbacks, HandshakeCallbacks, ConnectionCallbacks } from './callbacks';
|
|
9
|
+
export default class ConnectionManager extends EventsDispatcher {
|
|
10
|
+
key: string;
|
|
11
|
+
options: ConnectionManagerOptions;
|
|
12
|
+
state: string;
|
|
13
|
+
connection: Connection;
|
|
14
|
+
usingTLS: boolean;
|
|
15
|
+
timeline: Timeline;
|
|
16
|
+
socket_id: string;
|
|
17
|
+
unavailableTimer: Timer;
|
|
18
|
+
activityTimer: Timer;
|
|
19
|
+
retryTimer: Timer;
|
|
20
|
+
activityTimeout: number;
|
|
21
|
+
strategy: Strategy;
|
|
22
|
+
runner: StrategyRunner;
|
|
23
|
+
errorCallbacks: ErrorCallbacks;
|
|
24
|
+
handshakeCallbacks: HandshakeCallbacks;
|
|
25
|
+
connectionCallbacks: ConnectionCallbacks;
|
|
26
|
+
constructor(key: string, options: ConnectionManagerOptions);
|
|
27
|
+
connect(): void;
|
|
28
|
+
send(data: any): boolean;
|
|
29
|
+
send_event(name: string, data: any, channel?: string): boolean;
|
|
30
|
+
disconnect(): void;
|
|
31
|
+
isUsingTLS(): boolean;
|
|
32
|
+
private startConnecting;
|
|
33
|
+
private abortConnecting;
|
|
34
|
+
private disconnectInternally;
|
|
35
|
+
private updateStrategy;
|
|
36
|
+
private retryIn;
|
|
37
|
+
private clearRetryTimer;
|
|
38
|
+
private setUnavailableTimer;
|
|
39
|
+
private clearUnavailableTimer;
|
|
40
|
+
private sendActivityCheck;
|
|
41
|
+
private resetActivityCheck;
|
|
42
|
+
private stopActivityCheck;
|
|
43
|
+
private buildConnectionCallbacks;
|
|
44
|
+
private buildHandshakeCallbacks;
|
|
45
|
+
private buildErrorCallbacks;
|
|
46
|
+
private setConnection;
|
|
47
|
+
private abandonConnection;
|
|
48
|
+
private updateState;
|
|
49
|
+
private shouldRetry;
|
|
50
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import Timeline from '../timeline/timeline';
|
|
2
|
+
import Strategy from '../strategies/strategy';
|
|
3
|
+
interface ConnectionManagerOptions {
|
|
4
|
+
timeline: Timeline;
|
|
5
|
+
getStrategy: (StrategyOptions: any) => Strategy;
|
|
6
|
+
unavailableTimeout: number;
|
|
7
|
+
pongTimeout: number;
|
|
8
|
+
activityTimeout: number;
|
|
9
|
+
useTLS: boolean;
|
|
10
|
+
}
|
|
11
|
+
export default ConnectionManagerOptions;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import TransportConnection from '../../transports/transport_connection';
|
|
2
|
+
import Action from '../protocol/action';
|
|
3
|
+
import Connection from '../connection';
|
|
4
|
+
interface HandshakePayload extends Action {
|
|
5
|
+
transport: TransportConnection;
|
|
6
|
+
connection?: Connection;
|
|
7
|
+
}
|
|
8
|
+
export default HandshakePayload;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import TransportConnection from '../../transports/transport_connection';
|
|
2
|
+
export default class Handshake {
|
|
3
|
+
transport: TransportConnection;
|
|
4
|
+
callback: (HandshakePayload: any) => void;
|
|
5
|
+
onMessage: Function;
|
|
6
|
+
onClosed: Function;
|
|
7
|
+
constructor(transport: TransportConnection, callback: (HandshakePayload: any) => void);
|
|
8
|
+
close(): void;
|
|
9
|
+
private bindListeners;
|
|
10
|
+
private unbindListeners;
|
|
11
|
+
private finish;
|
|
12
|
+
}
|