@wix/duplexer-js 2.0.5

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 (280) hide show
  1. package/README.md +239 -0
  2. package/dist/src/_external-types.d.ts +1 -0
  3. package/dist/src/authenticator.d.ts +22 -0
  4. package/dist/src/authenticator.js +42 -0
  5. package/dist/src/authenticator.js.map +1 -0
  6. package/dist/src/channels/channel.d.ts +29 -0
  7. package/dist/src/channels/channel.js +159 -0
  8. package/dist/src/channels/channel.js.map +1 -0
  9. package/dist/src/channels/channels.d.ts +13 -0
  10. package/dist/src/channels/channels.js +41 -0
  11. package/dist/src/channels/channels.js.map +1 -0
  12. package/dist/src/channels/subscription-error.d.ts +6 -0
  13. package/dist/src/channels/subscription-error.js +3 -0
  14. package/dist/src/channels/subscription-error.js.map +1 -0
  15. package/dist/src/connection-manager.d.ts +62 -0
  16. package/dist/src/connection-manager.js +228 -0
  17. package/dist/src/connection-manager.js.map +1 -0
  18. package/dist/src/constants.d.ts +5 -0
  19. package/dist/src/constants.js +9 -0
  20. package/dist/src/constants.js.map +1 -0
  21. package/dist/src/domain.d.ts +3 -0
  22. package/dist/src/domain.js +3 -0
  23. package/dist/src/domain.js.map +1 -0
  24. package/dist/src/duplexer.d.ts +41 -0
  25. package/dist/src/duplexer.js +125 -0
  26. package/dist/src/duplexer.js.map +1 -0
  27. package/dist/src/environments/core/environment.d.ts +13 -0
  28. package/dist/src/environments/core/environment.js +25 -0
  29. package/dist/src/environments/core/environment.js.map +1 -0
  30. package/dist/src/environments/core/network.d.ts +6 -0
  31. package/dist/src/environments/core/network.js +32 -0
  32. package/dist/src/environments/core/network.js.map +1 -0
  33. package/dist/src/environments/react-native/environment.d.ts +7 -0
  34. package/dist/src/environments/react-native/environment.js +27 -0
  35. package/dist/src/environments/react-native/environment.js.map +1 -0
  36. package/dist/src/environments/react-native/network.d.ts +6 -0
  37. package/dist/src/environments/react-native/network.js +54 -0
  38. package/dist/src/environments/react-native/network.js.map +1 -0
  39. package/dist/src/environments/react-native/transports.d.ts +8 -0
  40. package/dist/src/environments/react-native/transports.js +31 -0
  41. package/dist/src/environments/react-native/transports.js.map +1 -0
  42. package/dist/src/environments/web/environment.d.ts +8 -0
  43. package/dist/src/environments/web/environment.js +19 -0
  44. package/dist/src/environments/web/environment.js.map +1 -0
  45. package/dist/src/environments/web/network.d.ts +4 -0
  46. package/dist/src/environments/web/network.js +38 -0
  47. package/dist/src/environments/web/network.js.map +1 -0
  48. package/dist/src/environments/web/transports.d.ts +8 -0
  49. package/dist/src/environments/web/transports.js +51 -0
  50. package/dist/src/environments/web/transports.js.map +1 -0
  51. package/dist/src/errors/is-transport-error.d.ts +1 -0
  52. package/dist/src/errors/is-transport-error.js +7 -0
  53. package/dist/src/errors/is-transport-error.js.map +1 -0
  54. package/dist/src/index.d.ts +11 -0
  55. package/dist/src/index.js +25 -0
  56. package/dist/src/index.js.map +1 -0
  57. package/dist/src/instance-updater.d.ts +5 -0
  58. package/dist/src/instance-updater.js +3 -0
  59. package/dist/src/instance-updater.js.map +1 -0
  60. package/dist/src/keep-alive.d.ts +18 -0
  61. package/dist/src/keep-alive.js +66 -0
  62. package/dist/src/keep-alive.js.map +1 -0
  63. package/dist/src/ready-state.d.ts +6 -0
  64. package/dist/src/ready-state.js +10 -0
  65. package/dist/src/ready-state.js.map +1 -0
  66. package/dist/src/strategies/strategy-builder.d.ts +11 -0
  67. package/dist/src/strategies/strategy-builder.js +34 -0
  68. package/dist/src/strategies/strategy-builder.js.map +1 -0
  69. package/dist/src/strategies/strategy-presets.d.ts +4 -0
  70. package/dist/src/strategies/strategy-presets.js +20 -0
  71. package/dist/src/strategies/strategy-presets.js.map +1 -0
  72. package/dist/src/strategies/strategy.d.ts +25 -0
  73. package/dist/src/strategies/strategy.js +153 -0
  74. package/dist/src/strategies/strategy.js.map +1 -0
  75. package/dist/src/timeline/noop-timeline.d.ts +5 -0
  76. package/dist/src/timeline/noop-timeline.js +15 -0
  77. package/dist/src/timeline/noop-timeline.js.map +1 -0
  78. package/dist/src/timeline/timeline.d.ts +7 -0
  79. package/dist/src/timeline/timeline.js +3 -0
  80. package/dist/src/timeline/timeline.js.map +1 -0
  81. package/dist/src/transport/http-polling.d.ts +27 -0
  82. package/dist/src/transport/http-polling.js +245 -0
  83. package/dist/src/transport/http-polling.js.map +1 -0
  84. package/dist/src/transport/http.d.ts +14 -0
  85. package/dist/src/transport/http.js +106 -0
  86. package/dist/src/transport/http.js.map +1 -0
  87. package/dist/src/transport/params.d.ts +3 -0
  88. package/dist/src/transport/params.js +70 -0
  89. package/dist/src/transport/params.js.map +1 -0
  90. package/dist/src/transport/transport-error.d.ts +8 -0
  91. package/dist/src/transport/transport-error.js +3 -0
  92. package/dist/src/transport/transport-error.js.map +1 -0
  93. package/dist/src/transport/transport-params.d.ts +3 -0
  94. package/dist/src/transport/transport-params.js +3 -0
  95. package/dist/src/transport/transport-params.js.map +1 -0
  96. package/dist/src/transport/transport.d.ts +50 -0
  97. package/dist/src/transport/transport.js +120 -0
  98. package/dist/src/transport/transport.js.map +1 -0
  99. package/dist/src/transport/transports-manager.d.ts +42 -0
  100. package/dist/src/transport/transports-manager.js +248 -0
  101. package/dist/src/transport/transports-manager.js.map +1 -0
  102. package/dist/src/transport/unrecoverable.d.ts +1 -0
  103. package/dist/src/transport/unrecoverable.js +8 -0
  104. package/dist/src/transport/unrecoverable.js.map +1 -0
  105. package/dist/src/transport/websocket.d.ts +18 -0
  106. package/dist/src/transport/websocket.js +155 -0
  107. package/dist/src/transport/websocket.js.map +1 -0
  108. package/dist/src/utils/assert.d.ts +1 -0
  109. package/dist/src/utils/assert.js +34 -0
  110. package/dist/src/utils/assert.js.map +1 -0
  111. package/dist/src/utils/cancel-token.d.ts +10 -0
  112. package/dist/src/utils/cancel-token.js +28 -0
  113. package/dist/src/utils/cancel-token.js.map +1 -0
  114. package/dist/src/utils/deferred.d.ts +9 -0
  115. package/dist/src/utils/deferred.js +27 -0
  116. package/dist/src/utils/deferred.js.map +1 -0
  117. package/dist/src/utils/event-emitter.d.ts +15 -0
  118. package/dist/src/utils/event-emitter.js +106 -0
  119. package/dist/src/utils/event-emitter.js.map +1 -0
  120. package/dist/src/utils/on.d.ts +4 -0
  121. package/dist/src/utils/on.js +10 -0
  122. package/dist/src/utils/on.js.map +1 -0
  123. package/dist/src/utils/request.d.ts +20 -0
  124. package/dist/src/utils/request.js +164 -0
  125. package/dist/src/utils/request.js.map +1 -0
  126. package/dist/src/utils/timer.d.ts +8 -0
  127. package/dist/src/utils/timer.js +17 -0
  128. package/dist/src/utils/timer.js.map +1 -0
  129. package/dist/src/utils/utils.d.ts +1 -0
  130. package/dist/src/utils/utils.js +8 -0
  131. package/dist/src/utils/utils.js.map +1 -0
  132. package/dist/src/virtual-socket.d.ts +42 -0
  133. package/dist/src/virtual-socket.js +199 -0
  134. package/dist/src/virtual-socket.js.map +1 -0
  135. package/dist/statics/duplexer.bundle.js +982 -0
  136. package/dist/statics/duplexer.bundle.js.map +1 -0
  137. package/dist/statics/duplexer.bundle.min.js +2 -0
  138. package/dist/statics/duplexer.bundle.min.js.map +1 -0
  139. package/dist/statics/manifest.json +3 -0
  140. package/dist/statics/manifest.min.json +3 -0
  141. package/dist/test/_external-types.d.ts +2 -0
  142. package/dist/test/_global-types.d.ts +10 -0
  143. package/dist/test/_setup-global-hooks.spec.d.ts +1 -0
  144. package/dist/test/_setup-global-hooks.spec.js +13 -0
  145. package/dist/test/_setup-global-hooks.spec.js.map +1 -0
  146. package/dist/test/client-events.it.d.ts +1 -0
  147. package/dist/test/client-events.it.js +33 -0
  148. package/dist/test/client-events.it.js.map +1 -0
  149. package/dist/test/connect.spec.d.ts +1 -0
  150. package/dist/test/connect.spec.js +71 -0
  151. package/dist/test/connect.spec.js.map +1 -0
  152. package/dist/test/connection-manager.spec.d.ts +1 -0
  153. package/dist/test/connection-manager.spec.js +523 -0
  154. package/dist/test/connection-manager.spec.js.map +1 -0
  155. package/dist/test/duplexer.it.d.ts +1 -0
  156. package/dist/test/duplexer.it.js +243 -0
  157. package/dist/test/duplexer.it.js.map +1 -0
  158. package/dist/test/duplexer.spec.d.ts +1 -0
  159. package/dist/test/duplexer.spec.js +337 -0
  160. package/dist/test/duplexer.spec.js.map +1 -0
  161. package/dist/test/environments/web.it.d.ts +1 -0
  162. package/dist/test/environments/web.it.js +30 -0
  163. package/dist/test/environments/web.it.js.map +1 -0
  164. package/dist/test/environments/web.spec.d.ts +1 -0
  165. package/dist/test/environments/web.spec.js +92 -0
  166. package/dist/test/environments/web.spec.js.map +1 -0
  167. package/dist/test/event-emitter.spec.d.ts +1 -0
  168. package/dist/test/event-emitter.spec.js +182 -0
  169. package/dist/test/event-emitter.spec.js.map +1 -0
  170. package/dist/test/helpers/as-promised.d.ts +7 -0
  171. package/dist/test/helpers/as-promised.js +38 -0
  172. package/dist/test/helpers/as-promised.js.map +1 -0
  173. package/dist/test/helpers/assertions.d.ts +8 -0
  174. package/dist/test/helpers/assertions.js +43 -0
  175. package/dist/test/helpers/assertions.js.map +1 -0
  176. package/dist/test/helpers/auth-server.d.ts +10 -0
  177. package/dist/test/helpers/auth-server.js +61 -0
  178. package/dist/test/helpers/auth-server.js.map +1 -0
  179. package/dist/test/helpers/http-polling-environment.d.ts +2 -0
  180. package/dist/test/helpers/http-polling-environment.js +20 -0
  181. package/dist/test/helpers/http-polling-environment.js.map +1 -0
  182. package/dist/test/helpers/in-memory-environemnt.d.ts +15 -0
  183. package/dist/test/helpers/in-memory-environemnt.js +39 -0
  184. package/dist/test/helpers/in-memory-environemnt.js.map +1 -0
  185. package/dist/test/helpers/in-memory-network.d.ts +5 -0
  186. package/dist/test/helpers/in-memory-network.js +37 -0
  187. package/dist/test/helpers/in-memory-network.js.map +1 -0
  188. package/dist/test/helpers/in-memory-timeline.d.ts +8 -0
  189. package/dist/test/helpers/in-memory-timeline.js +24 -0
  190. package/dist/test/helpers/in-memory-timeline.js.map +1 -0
  191. package/dist/test/helpers/in-memory-transport.d.ts +68 -0
  192. package/dist/test/helpers/in-memory-transport.js +271 -0
  193. package/dist/test/helpers/in-memory-transport.js.map +1 -0
  194. package/dist/test/helpers/server-interceptor.d.ts +10 -0
  195. package/dist/test/helpers/server-interceptor.js +138 -0
  196. package/dist/test/helpers/server-interceptor.js.map +1 -0
  197. package/dist/test/helpers/setup-global-mock-navigator.d.ts +4 -0
  198. package/dist/test/helpers/setup-global-mock-navigator.js +22 -0
  199. package/dist/test/helpers/setup-global-mock-navigator.js.map +1 -0
  200. package/dist/test/helpers/window.d.ts +1 -0
  201. package/dist/test/helpers/window.js +17 -0
  202. package/dist/test/helpers/window.js.map +1 -0
  203. package/dist/test/keep-alive.it.spec.d.ts +1 -0
  204. package/dist/test/keep-alive.it.spec.js +42 -0
  205. package/dist/test/keep-alive.it.spec.js.map +1 -0
  206. package/dist/test/keep-alive.spec.d.ts +1 -0
  207. package/dist/test/keep-alive.spec.js +140 -0
  208. package/dist/test/keep-alive.spec.js.map +1 -0
  209. package/dist/test/ng/channel-support.d.ts +39 -0
  210. package/dist/test/ng/channel-support.js +178 -0
  211. package/dist/test/ng/channel-support.js.map +1 -0
  212. package/dist/test/ng/channels.spec.d.ts +1 -0
  213. package/dist/test/ng/channels.spec.js +79 -0
  214. package/dist/test/ng/channels.spec.js.map +1 -0
  215. package/dist/test/ng/client-events.it.d.ts +1 -0
  216. package/dist/test/ng/client-events.it.js +75 -0
  217. package/dist/test/ng/client-events.it.js.map +1 -0
  218. package/dist/test/ng/connect.it.d.ts +1 -0
  219. package/dist/test/ng/connect.it.js +128 -0
  220. package/dist/test/ng/connect.it.js.map +1 -0
  221. package/dist/test/ng/corvid-environment.d.ts +22 -0
  222. package/dist/test/ng/corvid-environment.js +44 -0
  223. package/dist/test/ng/corvid-environment.js.map +1 -0
  224. package/dist/test/ng/environment.d.ts +49 -0
  225. package/dist/test/ng/environment.js +250 -0
  226. package/dist/test/ng/environment.js.map +1 -0
  227. package/dist/test/ng/setup.d.ts +54 -0
  228. package/dist/test/ng/setup.js +256 -0
  229. package/dist/test/ng/setup.js.map +1 -0
  230. package/dist/test/ng/subscribe.it.d.ts +1 -0
  231. package/dist/test/ng/subscribe.it.js +354 -0
  232. package/dist/test/ng/subscribe.it.js.map +1 -0
  233. package/dist/test/ng/unsubscribe.it.d.ts +1 -0
  234. package/dist/test/ng/unsubscribe.it.js +73 -0
  235. package/dist/test/ng/unsubscribe.it.js.map +1 -0
  236. package/dist/test/ng/util-functions.d.ts +7 -0
  237. package/dist/test/ng/util-functions.js +73 -0
  238. package/dist/test/ng/util-functions.js.map +1 -0
  239. package/dist/test/proto/client/index.d.ts +2852 -0
  240. package/dist/test/proto/index.d.ts +1421 -0
  241. package/dist/test/proto/server/index.d.ts +2832 -0
  242. package/dist/test/restore-overrides.it.d.ts +1 -0
  243. package/dist/test/restore-overrides.it.js +38 -0
  244. package/dist/test/restore-overrides.it.js.map +1 -0
  245. package/dist/test/setup.d.ts +1 -0
  246. package/dist/test/setup.js +5 -0
  247. package/dist/test/setup.js.map +1 -0
  248. package/dist/test/strategy.spec.d.ts +1 -0
  249. package/dist/test/strategy.spec.js +209 -0
  250. package/dist/test/strategy.spec.js.map +1 -0
  251. package/dist/test/subscribe.it.d.ts +1 -0
  252. package/dist/test/subscribe.it.js +216 -0
  253. package/dist/test/subscribe.it.js.map +1 -0
  254. package/dist/test/subscribe.spec.d.ts +1 -0
  255. package/dist/test/subscribe.spec.js +86 -0
  256. package/dist/test/subscribe.spec.js.map +1 -0
  257. package/dist/test/transporters/http-polling.it.d.ts +1 -0
  258. package/dist/test/transporters/http-polling.it.js +118 -0
  259. package/dist/test/transporters/http-polling.it.js.map +1 -0
  260. package/dist/test/transporters/http-polling.spec.d.ts +1 -0
  261. package/dist/test/transporters/http-polling.spec.js +354 -0
  262. package/dist/test/transporters/http-polling.spec.js.map +1 -0
  263. package/dist/test/transporters/transporter.spec.d.ts +1 -0
  264. package/dist/test/transporters/transporter.spec.js +46 -0
  265. package/dist/test/transporters/transporter.spec.js.map +1 -0
  266. package/dist/test/transporters/websocket.spec.d.ts +1 -0
  267. package/dist/test/transporters/websocket.spec.js +26 -0
  268. package/dist/test/transporters/websocket.spec.js.map +1 -0
  269. package/dist/test/transports-manager.spec.d.ts +1 -0
  270. package/dist/test/transports-manager.spec.js +346 -0
  271. package/dist/test/transports-manager.spec.js.map +1 -0
  272. package/dist/test/utils/request.spec.d.ts +1 -0
  273. package/dist/test/utils/request.spec.js +274 -0
  274. package/dist/test/utils/request.spec.js.map +1 -0
  275. package/dist/test/virtual-socket.it.d.ts +1 -0
  276. package/dist/test/virtual-socket.it.js +153 -0
  277. package/dist/test/virtual-socket.it.js.map +1 -0
  278. package/package.json +131 -0
  279. package/react-native.d.ts +1 -0
  280. package/react-native.js +1 -0
@@ -0,0 +1,8 @@
1
+ import TransportsManager from '../../transport/transports-manager';
2
+ import { InstanceUpdater } from '../../instance-updater';
3
+ export default function transports(opts: TransportsOpts): TransportsManager;
4
+ export interface TransportsOpts {
5
+ baseUrl: string;
6
+ instanceUpdater: InstanceUpdater;
7
+ siteRevision?: string;
8
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var websocket_1 = __importDefault(require("../../transport/websocket"));
7
+ var http_polling_1 = __importDefault(require("../../transport/http-polling"));
8
+ var transports_manager_1 = __importDefault(require("../../transport/transports-manager"));
9
+ var strategy_presets_1 = require("../../strategies/strategy-presets");
10
+ function transports(opts) {
11
+ var ws = createWebSocket(opts);
12
+ var httpLongPolling = createHttpLongPolling(opts);
13
+ var strategies = [
14
+ (0, strategy_presets_1.primaryPreset)(ws),
15
+ (0, strategy_presets_1.secondaryPreset)(httpLongPolling),
16
+ ];
17
+ return new transports_manager_1.default(strategies);
18
+ }
19
+ exports.default = transports;
20
+ function createWebSocket(opts) {
21
+ var url = "wss://".concat(opts.baseUrl);
22
+ return new websocket_1.default(url, opts.instanceUpdater, opts.siteRevision);
23
+ }
24
+ function createHttpLongPolling(opts) {
25
+ var url = httpUrl(opts.baseUrl);
26
+ return new http_polling_1.default(url, opts.instanceUpdater, opts.siteRevision);
27
+ }
28
+ function httpUrl(baseUrl) {
29
+ return "https://".concat(baseUrl);
30
+ }
31
+ //# sourceMappingURL=transports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../../../src/environments/react-native/transports.ts"],"names":[],"mappings":";;;;;AAAA,wEAAkD;AAClD,8EAAuD;AACvD,0FAAmE;AAEnE,sEAG2C;AAE3C,SAAwB,UAAU,CAAC,IAAoB;IACrD,IAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,IAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACpD,IAAM,UAAU,GAAG;QACjB,IAAA,gCAAa,EAAC,EAAE,CAAC;QACjB,IAAA,kCAAe,EAAC,eAAe,CAAC;KACjC,CAAC;IAEF,OAAO,IAAI,4BAAiB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AATD,6BASC;AAED,SAAS,eAAe,CAAC,IAAoB;IAC3C,IAAM,GAAG,GAAG,gBAAS,IAAI,CAAC,OAAO,CAAE,CAAC;IACpC,OAAO,IAAI,mBAAS,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAoB;IACjD,IAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,sBAAW,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,kBAAW,OAAO,CAAE,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import Environment from '../core/environment';
2
+ import { InstanceUpdater } from '../../instance-updater';
3
+ export default function aWebEnvironment(opts: WebEnvironmentOpts): Environment;
4
+ export interface WebEnvironmentOpts {
5
+ url: string;
6
+ instanceUpdater?: InstanceUpdater;
7
+ siteRevision?: string;
8
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var environment_1 = __importDefault(require("../core/environment"));
7
+ var network_1 = __importDefault(require("./network"));
8
+ var transports_1 = __importDefault(require("./transports"));
9
+ function aWebEnvironment(opts) {
10
+ var network = new network_1.default();
11
+ var transportsManager = (0, transports_1.default)({
12
+ baseUrl: opts.url,
13
+ instanceUpdater: opts.instanceUpdater,
14
+ siteRevision: opts.siteRevision,
15
+ });
16
+ return new environment_1.default({ transportsManager: transportsManager, network: network });
17
+ }
18
+ exports.default = aWebEnvironment;
19
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/environments/web/environment.ts"],"names":[],"mappings":";;;;;AAAA,oEAA8C;AAC9C,sDAAmC;AACnC,4DAAsC;AAGtC,SAAwB,eAAe,CAAC,IAAwB;IAC9D,IAAM,OAAO,GAAG,IAAI,iBAAU,EAAE,CAAC;IACjC,IAAM,iBAAiB,GAAG,IAAA,oBAAU,EAAC;QACnC,OAAO,EAAE,IAAI,CAAC,GAAG;QACjB,eAAe,EAAE,IAAI,CAAC,eAAe;QACrC,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC,CAAC;IACH,OAAO,IAAI,qBAAW,CAAC,EAAE,iBAAiB,mBAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;AACzD,CAAC;AARD,kCAQC"}
@@ -0,0 +1,4 @@
1
+ import Network from '../core/network';
2
+ export default class WebNetwork extends Network {
3
+ listenConnectionStateChanges(): void;
4
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var network_1 = __importDefault(require("../core/network"));
22
+ var WebNetwork = /** @class */ (function (_super) {
23
+ __extends(WebNetwork, _super);
24
+ function WebNetwork() {
25
+ return _super !== null && _super.apply(this, arguments) || this;
26
+ }
27
+ WebNetwork.prototype.listenConnectionStateChanges = function () {
28
+ var _this = this;
29
+ // bad. should create node environment.
30
+ if (typeof window === 'undefined') {
31
+ return;
32
+ }
33
+ window.addEventListener('online', function () { return _this.connectionIsOnline(); });
34
+ };
35
+ return WebNetwork;
36
+ }(network_1.default));
37
+ exports.default = WebNetwork;
38
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/environments/web/network.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,4DAAsC;AAEtC;IAAwC,8BAAO;IAA/C;;IASA,CAAC;IARQ,iDAA4B,GAAnC;QAAA,iBAOC;QANC,uCAAuC;QACvC,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAM,OAAA,KAAI,CAAC,kBAAkB,EAAE,EAAzB,CAAyB,CAAC,CAAC;IACrE,CAAC;IACH,iBAAC;AAAD,CAAC,AATD,CAAwC,iBAAO,GAS9C"}
@@ -0,0 +1,8 @@
1
+ import TransportsManager from '../../transport/transports-manager';
2
+ import { InstanceUpdater } from '../../instance-updater';
3
+ export default function transports(opts: TransportsOpts): TransportsManager;
4
+ export interface TransportsOpts {
5
+ baseUrl: string;
6
+ instanceUpdater: InstanceUpdater;
7
+ siteRevision: string;
8
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var websocket_1 = __importDefault(require("../../transport/websocket"));
7
+ var http_polling_1 = __importDefault(require("../../transport/http-polling"));
8
+ var transports_manager_1 = __importDefault(require("../../transport/transports-manager"));
9
+ var strategy_presets_1 = require("../../strategies/strategy-presets");
10
+ function transports(opts) {
11
+ var _a;
12
+ var strategies = [];
13
+ var ws = createWebSocket(opts);
14
+ var httpLongPolling = createHttpLongPolling(opts);
15
+ // tests purposes only
16
+ var forcedTransport = typeof process !== 'undefined' &&
17
+ typeof ((_a = process.env) === null || _a === void 0 ? void 0 : _a.DUPLEXER_FORCED_TRANSPORT) === 'string'
18
+ ? process.env.DUPLEXER_FORCED_TRANSPORT
19
+ : undefined;
20
+ if (forcedTransport === 'websocket') {
21
+ strategies = [(0, strategy_presets_1.primaryPreset)(ws)];
22
+ }
23
+ else if (forcedTransport === 'http') {
24
+ strategies = [(0, strategy_presets_1.primaryPreset)(httpLongPolling)];
25
+ }
26
+ else if (websocket_1.default.isSupported()) {
27
+ strategies = [(0, strategy_presets_1.primaryPreset)(ws), (0, strategy_presets_1.secondaryPreset)(httpLongPolling)];
28
+ }
29
+ else {
30
+ strategies = [(0, strategy_presets_1.primaryPreset)(httpLongPolling)];
31
+ }
32
+ return new transports_manager_1.default(strategies);
33
+ }
34
+ exports.default = transports;
35
+ function createWebSocket(opts) {
36
+ var protocol = isSSL() ? 'wss://' : 'ws://';
37
+ var url = "".concat(protocol).concat(opts.baseUrl);
38
+ return new websocket_1.default(url, opts.instanceUpdater, opts.siteRevision);
39
+ }
40
+ function createHttpLongPolling(opts) {
41
+ var url = httpUrl(opts.baseUrl);
42
+ return new http_polling_1.default(url, opts.instanceUpdater, opts.siteRevision);
43
+ }
44
+ function httpUrl(baseUrl) {
45
+ var protocol = isSSL() ? 'https://' : 'http://';
46
+ return "".concat(protocol).concat(baseUrl);
47
+ }
48
+ function isSSL() {
49
+ return typeof self !== 'undefined' && self.location.protocol !== 'http:';
50
+ }
51
+ //# sourceMappingURL=transports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../../../src/environments/web/transports.ts"],"names":[],"mappings":";;;;;AAAA,wEAAkD;AAClD,8EAAuD;AAEvD,0FAAmE;AAEnE,sEAG2C;AAE3C,SAAwB,UAAU,CAAC,IAAoB;;IACrD,IAAI,UAAU,GAAe,EAAE,CAAC;IAChC,IAAM,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACjC,IAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAEpD,sBAAsB;IACpB,IAAM,eAAe,GACjB,OAAO,OAAO,KAAK,WAAW;QAC9B,OAAO,CAAA,MAAA,OAAO,CAAC,GAAG,0CAAE,yBAAyB,CAAA,KAAK,QAAQ;QACtD,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB;QACvC,CAAC,CAAC,SAAS,CAAC;IAEtB,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;QACpC,UAAU,GAAG,CAAC,IAAA,gCAAa,EAAC,EAAE,CAAC,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,eAAe,KAAK,MAAM,EAAE,CAAC;QACtC,UAAU,GAAG,CAAC,IAAA,gCAAa,EAAC,eAAe,CAAC,CAAC,CAAC;IAChD,CAAC;SAAM,IAAI,mBAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QACnC,UAAU,GAAG,CAAC,IAAA,gCAAa,EAAC,EAAE,CAAC,EAAE,IAAA,kCAAe,EAAC,eAAe,CAAC,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,UAAU,GAAG,CAAC,IAAA,gCAAa,EAAC,eAAe,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,IAAI,4BAAiB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAvBD,6BAuBC;AAED,SAAS,eAAe,CAAC,IAAoB;IAC3C,IAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9C,IAAM,GAAG,GAAG,UAAG,QAAQ,SAAG,IAAI,CAAC,OAAO,CAAE,CAAC;IACzC,OAAO,IAAI,mBAAS,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAoB;IACjD,IAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,IAAI,sBAAW,CAAC,GAAG,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,IAAM,QAAQ,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAClD,OAAO,UAAG,QAAQ,SAAG,OAAO,CAAE,CAAC;AACjC,CAAC;AAED,SAAS,KAAK;IACZ,OAAO,OAAO,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC;AAC3E,CAAC"}
@@ -0,0 +1 @@
1
+ export default function isTransportError(error: any): boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function isTransportError(error) {
4
+ return error !== undefined && error.transport !== undefined;
5
+ }
6
+ exports.default = isTransportError;
7
+ //# sourceMappingURL=is-transport-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-transport-error.js","sourceRoot":"","sources":["../../../src/errors/is-transport-error.ts"],"names":[],"mappings":";;AAAA,SAAwB,gBAAgB,CAAC,KAAU;IACjD,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC;AAC9D,CAAC;AAFD,mCAEC"}
@@ -0,0 +1,11 @@
1
+ export { RestoreStrategyBuilderFactory } from '@wix/wix-duplexer-protocol';
2
+ export { Duplexer } from './duplexer';
3
+ export { InstanceUpdater } from './instance-updater';
4
+ export { TransportError } from './transport/transport-error';
5
+ export { default as Channel } from './channels/channel';
6
+ export { default as VirtualSocket } from './virtual-socket';
7
+ export { default as Environment } from './environments/core/environment';
8
+ export { default as Network } from './environments/core/network';
9
+ export { default as WebSocketTransport } from './transport/websocket';
10
+ export { default as TransportsManager } from './transport/transports-manager';
11
+ export { primaryPreset } from './strategies/strategy-presets';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.primaryPreset = exports.TransportsManager = exports.WebSocketTransport = exports.Network = exports.Environment = exports.VirtualSocket = exports.Channel = exports.Duplexer = exports.RestoreStrategyBuilderFactory = void 0;
7
+ var wix_duplexer_protocol_1 = require("@wix/wix-duplexer-protocol");
8
+ Object.defineProperty(exports, "RestoreStrategyBuilderFactory", { enumerable: true, get: function () { return wix_duplexer_protocol_1.RestoreStrategyBuilderFactory; } });
9
+ var duplexer_1 = require("./duplexer");
10
+ Object.defineProperty(exports, "Duplexer", { enumerable: true, get: function () { return duplexer_1.Duplexer; } });
11
+ var channel_1 = require("./channels/channel");
12
+ Object.defineProperty(exports, "Channel", { enumerable: true, get: function () { return __importDefault(channel_1).default; } });
13
+ var virtual_socket_1 = require("./virtual-socket");
14
+ Object.defineProperty(exports, "VirtualSocket", { enumerable: true, get: function () { return __importDefault(virtual_socket_1).default; } });
15
+ var environment_1 = require("./environments/core/environment");
16
+ Object.defineProperty(exports, "Environment", { enumerable: true, get: function () { return __importDefault(environment_1).default; } });
17
+ var network_1 = require("./environments/core/network");
18
+ Object.defineProperty(exports, "Network", { enumerable: true, get: function () { return __importDefault(network_1).default; } });
19
+ var websocket_1 = require("./transport/websocket");
20
+ Object.defineProperty(exports, "WebSocketTransport", { enumerable: true, get: function () { return __importDefault(websocket_1).default; } });
21
+ var transports_manager_1 = require("./transport/transports-manager");
22
+ Object.defineProperty(exports, "TransportsManager", { enumerable: true, get: function () { return __importDefault(transports_manager_1).default; } });
23
+ var strategy_presets_1 = require("./strategies/strategy-presets");
24
+ Object.defineProperty(exports, "primaryPreset", { enumerable: true, get: function () { return strategy_presets_1.primaryPreset; } });
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA2E;AAAlE,sIAAA,6BAA6B,OAAA;AACtC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AAGjB,8CAAwD;AAA/C,mHAAA,OAAO,OAAW;AAC3B,mDAA4D;AAAnD,gIAAA,OAAO,OAAiB;AACjC,+DAAyE;AAAhE,2HAAA,OAAO,OAAe;AAC/B,uDAAiE;AAAxD,mHAAA,OAAO,OAAW;AAC3B,mDAAsE;AAA7D,gIAAA,OAAO,OAAsB;AACtC,qEAA8E;AAArE,wIAAA,OAAO,OAAqB;AACrC,kEAA8D;AAArD,iHAAA,aAAa,OAAA"}
@@ -0,0 +1,5 @@
1
+ import { Headers } from './domain';
2
+ export interface InstanceUpdater {
3
+ getInstance(): Promise<string> | string;
4
+ getHeaders?(): Headers;
5
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=instance-updater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance-updater.js","sourceRoot":"","sources":["../../src/instance-updater.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import Transport from './transport/transport';
2
+ import { Emitter } from './utils/event-emitter';
3
+ export interface KeepAliveOpts {
4
+ pingTimeout: number;
5
+ pingInterval: number;
6
+ }
7
+ export default class KeepAlive extends Emitter {
8
+ private readonly transport;
9
+ private readonly opts;
10
+ private timeoutTimer;
11
+ private intervalTimer;
12
+ private started;
13
+ constructor(transport: Transport, opts: KeepAliveOpts);
14
+ schedule(): void;
15
+ dispose(): void;
16
+ private sendHeartbeat;
17
+ private ping;
18
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ var event_emitter_1 = require("./utils/event-emitter");
22
+ var timer_1 = __importDefault(require("./utils/timer"));
23
+ var on_1 = __importDefault(require("./utils/on"));
24
+ var KeepAlive = /** @class */ (function (_super) {
25
+ __extends(KeepAlive, _super);
26
+ function KeepAlive(transport, opts) {
27
+ var _this = _super.call(this) || this;
28
+ _this.transport = transport;
29
+ _this.opts = opts;
30
+ _this.started = false;
31
+ (0, on_1.default)(_this.transport, 'packet', function () { return _this.started && _this.schedule(); });
32
+ return _this;
33
+ }
34
+ KeepAlive.prototype.schedule = function () {
35
+ var _this = this;
36
+ this.dispose();
37
+ this.started = true;
38
+ this.intervalTimer = new timer_1.default(this.opts.pingInterval, function () {
39
+ return _this.sendHeartbeat();
40
+ });
41
+ this.intervalTimer.schedule();
42
+ };
43
+ KeepAlive.prototype.dispose = function () {
44
+ this.started = false;
45
+ this.intervalTimer && this.intervalTimer.cancel();
46
+ this.timeoutTimer && this.timeoutTimer.cancel();
47
+ };
48
+ KeepAlive.prototype.sendHeartbeat = function () {
49
+ var _this = this;
50
+ this.ping();
51
+ this.timeoutTimer = new timer_1.default(this.opts.pingTimeout, function () {
52
+ _this.transport.close({
53
+ status: 0,
54
+ message: 'keep alive has not recieved pong in defined timeframe',
55
+ recoverable: true,
56
+ });
57
+ });
58
+ this.timeoutTimer.schedule();
59
+ };
60
+ KeepAlive.prototype.ping = function () {
61
+ this.transport.send({ type: 'ping' }, { affectState: false });
62
+ };
63
+ return KeepAlive;
64
+ }(event_emitter_1.Emitter));
65
+ exports.default = KeepAlive;
66
+ //# sourceMappingURL=keep-alive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keep-alive.js","sourceRoot":"","sources":["../../src/keep-alive.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AACA,uDAAgD;AAChD,wDAAkC;AAClC,kDAA4B;AAO5B;IAAuC,6BAAO;IAK5C,mBACmB,SAAoB,EACpB,IAAmB;QAEpC,YAAA,MAAK,WAAE,SAAC;QAHS,eAAS,GAAT,SAAS,CAAW;QACpB,UAAI,GAAJ,IAAI,CAAe;QAJ9B,aAAO,GAAG,KAAK,CAAC;QAQtB,IAAA,YAAE,EAAC,KAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAM,OAAA,KAAI,CAAC,OAAO,IAAI,KAAI,CAAC,QAAQ,EAAE,EAA/B,CAA+B,CAAC,CAAC;;IACtE,CAAC;IAEM,4BAAQ,GAAf;QAAA,iBAOC;QANC,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,aAAa,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACrD,OAAA,KAAI,CAAC,aAAa,EAAE;QAApB,CAAoB,CACrB,CAAC;QACF,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAChC,CAAC;IAEM,2BAAO,GAAd;QACE,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;IAClD,CAAC;IAEO,iCAAa,GAArB;QAAA,iBAYC;QAXC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,IAAI,CAAC,YAAY,GAAG,IAAI,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnD,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC;gBACnB,MAAM,EAAE,CAAC;gBACT,OAAO,EAAE,uDAAuD;gBAChE,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAEO,wBAAI,GAAZ;QACE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IACH,gBAAC;AAAD,CAAC,AA9CD,CAAuC,uBAAO,GA8C7C"}
@@ -0,0 +1,6 @@
1
+ declare enum ReadyState {
2
+ CLOSED = 0,
3
+ OPENING = 1,
4
+ OPEN = 2
5
+ }
6
+ export default ReadyState;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var ReadyState;
4
+ (function (ReadyState) {
5
+ ReadyState[ReadyState["CLOSED"] = 0] = "CLOSED";
6
+ ReadyState[ReadyState["OPENING"] = 1] = "OPENING";
7
+ ReadyState[ReadyState["OPEN"] = 2] = "OPEN";
8
+ })(ReadyState || (ReadyState = {}));
9
+ exports.default = ReadyState;
10
+ //# sourceMappingURL=ready-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ready-state.js","sourceRoot":"","sources":["../../src/ready-state.ts"],"names":[],"mappings":";;AAAA,IAAK,UAIJ;AAJD,WAAK,UAAU;IACb,+CAAM,CAAA;IACN,iDAAO,CAAA;IACP,2CAAI,CAAA;AACN,CAAC,EAJI,UAAU,KAAV,UAAU,QAId;AAED,kBAAe,UAAU,CAAC"}
@@ -0,0 +1,11 @@
1
+ import Transport from '../transport/transport';
2
+ import Strategy from './strategy';
3
+ export declare class StrategyBuilder {
4
+ private readonly transport;
5
+ private readonly opts;
6
+ constructor(transport: Transport);
7
+ withDelay(delay: number): this;
8
+ withBackoff(backoff: number): this;
9
+ build(): Strategy;
10
+ }
11
+ export default function aStrategyBuilder(transport: Transport): StrategyBuilder;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.StrategyBuilder = void 0;
7
+ var strategy_1 = __importDefault(require("./strategy"));
8
+ var StrategyBuilder = /** @class */ (function () {
9
+ function StrategyBuilder(transport) {
10
+ this.transport = transport;
11
+ this.opts = {
12
+ delay: 0,
13
+ backoff: 0,
14
+ };
15
+ }
16
+ StrategyBuilder.prototype.withDelay = function (delay) {
17
+ this.opts.delay = delay;
18
+ return this;
19
+ };
20
+ StrategyBuilder.prototype.withBackoff = function (backoff) {
21
+ this.opts.backoff = backoff;
22
+ return this;
23
+ };
24
+ StrategyBuilder.prototype.build = function () {
25
+ return new strategy_1.default(this.transport, this.opts);
26
+ };
27
+ return StrategyBuilder;
28
+ }());
29
+ exports.StrategyBuilder = StrategyBuilder;
30
+ function aStrategyBuilder(transport) {
31
+ return new StrategyBuilder(transport);
32
+ }
33
+ exports.default = aStrategyBuilder;
34
+ //# sourceMappingURL=strategy-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy-builder.js","sourceRoot":"","sources":["../../../src/strategies/strategy-builder.ts"],"names":[],"mappings":";;;;;;AACA,wDAAoD;AAEpD;IAME,yBAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;QALhC,SAAI,GAAiB;YACpC,KAAK,EAAE,CAAC;YACR,OAAO,EAAE,CAAC;SACX,CAAC;IAEkD,CAAC;IAErD,mCAAS,GAAT,UAAU,KAAa;QACrB,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qCAAW,GAAX,UAAY,OAAe;QACzB,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+BAAK,GAAL;QACE,OAAO,IAAI,kBAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IACH,sBAAC;AAAD,CAAC,AArBD,IAqBC;AArBY,0CAAe;AAuB5B,SAAwB,gBAAgB,CAAC,SAAoB;IAC3D,OAAO,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AACxC,CAAC;AAFD,mCAEC"}
@@ -0,0 +1,4 @@
1
+ import Transport from '../transport/transport';
2
+ import Strategy from './strategy';
3
+ export declare function primaryPreset(transport: Transport): Strategy;
4
+ export declare function secondaryPreset(transport: Transport): Strategy;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.secondaryPreset = exports.primaryPreset = void 0;
7
+ var strategy_builder_1 = __importDefault(require("./strategy-builder"));
8
+ var BACKOFF_INITIAL = 150;
9
+ function primaryPreset(transport) {
10
+ return (0, strategy_builder_1.default)(transport).withBackoff(BACKOFF_INITIAL).build();
11
+ }
12
+ exports.primaryPreset = primaryPreset;
13
+ function secondaryPreset(transport) {
14
+ return (0, strategy_builder_1.default)(transport)
15
+ .withDelay(4000)
16
+ .withBackoff(BACKOFF_INITIAL)
17
+ .build();
18
+ }
19
+ exports.secondaryPreset = secondaryPreset;
20
+ //# sourceMappingURL=strategy-presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy-presets.js","sourceRoot":"","sources":["../../../src/strategies/strategy-presets.ts"],"names":[],"mappings":";;;;;;AACA,wEAAkD;AAGlD,IAAM,eAAe,GAAG,GAAG,CAAC;AAE5B,SAAgB,aAAa,CAAC,SAAoB;IAChD,OAAO,IAAA,0BAAgB,EAAC,SAAS,CAAC,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,KAAK,EAAE,CAAC;AAC1E,CAAC;AAFD,sCAEC;AAED,SAAgB,eAAe,CAAC,SAAoB;IAClD,OAAO,IAAA,0BAAgB,EAAC,SAAS,CAAC;SAC/B,SAAS,CAAC,IAAI,CAAC;SACf,WAAW,CAAC,eAAe,CAAC;SAC5B,KAAK,EAAE,CAAC;AACb,CAAC;AALD,0CAKC"}
@@ -0,0 +1,25 @@
1
+ import { Emitter } from '../utils/event-emitter';
2
+ import { Protocol } from '@wix/wix-duplexer-typescript-definitions';
3
+ import Transport from '../transport/transport';
4
+ export default class Strategy extends Emitter {
5
+ private readonly _transport;
6
+ private readonly opts;
7
+ private connectDelayTimeoutId;
8
+ private disposables;
9
+ private readonly backoff;
10
+ private cancelToken;
11
+ constructor(_transport: Transport, opts: StrategyOpts);
12
+ get transport(): Transport;
13
+ connect(): Promise<StrategyConnect>;
14
+ abort(): void;
15
+ private connectWithBackoff;
16
+ private removeListeners;
17
+ }
18
+ export interface StrategyOpts {
19
+ delay: number;
20
+ backoff: number;
21
+ }
22
+ export interface StrategyConnect {
23
+ transport: Transport;
24
+ connectionEstablishedPacket: Protocol.ConnectionEstablishedPacket;
25
+ }