@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,70 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.withParams = exports.createParams = void 0;
40
+ function createParams(instanceUpdater, siteRevision) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var params, instance;
43
+ return __generator(this, function (_a) {
44
+ switch (_a.label) {
45
+ case 0:
46
+ params = new URLSearchParams();
47
+ if (!instanceUpdater) return [3 /*break*/, 2];
48
+ return [4 /*yield*/, instanceUpdater.getInstance()];
49
+ case 1:
50
+ instance = _a.sent();
51
+ params.append('v', '2');
52
+ params.append('instance', instance);
53
+ _a.label = 2;
54
+ case 2:
55
+ if (siteRevision) {
56
+ params.append('siteRevision', siteRevision);
57
+ }
58
+ return [2 /*return*/, params];
59
+ }
60
+ });
61
+ });
62
+ }
63
+ exports.createParams = createParams;
64
+ function withParams(url, params) {
65
+ var rawParams = params.toString();
66
+ var qs = rawParams === '' ? '' : "?".concat(rawParams);
67
+ return "".concat(url).concat(qs);
68
+ }
69
+ exports.withParams = withParams;
70
+ //# sourceMappingURL=params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"params.js","sourceRoot":"","sources":["../../../src/transport/params.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAsB,YAAY,CAChC,eAAgC,EAChC,YAAoB;;;;;;oBAEd,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;yBAEjC,eAAe,EAAf,wBAAe;oBACA,qBAAM,eAAe,CAAC,WAAW,EAAE,EAAA;;oBAA9C,QAAQ,GAAG,SAAmC;oBAEpD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;oBACxB,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;;;oBAGtC,IAAI,YAAY,EAAE,CAAC;wBACjB,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;oBAC9C,CAAC;oBAED,sBAAO,MAAM,EAAC;;;;CACf;AAlBD,oCAkBC;AAED,SAAgB,UAAU,CAAC,GAAW,EAAE,MAAuB;IAC7D,IAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACpC,IAAM,EAAE,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAI,SAAS,CAAE,CAAC;IACnD,OAAO,UAAG,GAAG,SAAG,EAAE,CAAE,CAAC;AACvB,CAAC;AAJD,gCAIC"}
@@ -0,0 +1,8 @@
1
+ export type TransportType = 'websocket' | 'http_long_polling';
2
+ export interface TransportError {
3
+ transport: TransportType;
4
+ status: number;
5
+ message: string;
6
+ recoverable: boolean;
7
+ }
8
+ export type InternalTransportError = Omit<TransportError, 'transport'>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transport-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-error.js","sourceRoot":"","sources":["../../../src/transport/transport-error.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export default interface TransportParams {
2
+ [key: string]: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=transport-params.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport-params.js","sourceRoot":"","sources":["../../../src/transport/transport-params.ts"],"names":[],"mappings":""}
@@ -0,0 +1,50 @@
1
+ import { Emitter } from '../utils/event-emitter';
2
+ import { Protocol } from '@wix/wix-duplexer-typescript-definitions';
3
+ import { PollPayloadProtocol } from '@wix/wix-duplexer-protocol/dist/lib/PollPayloadBuilder';
4
+ import ReadyState from '../ready-state';
5
+ import { TransportError, InternalTransportError, TransportType } from './transport-error';
6
+ export interface WriteOptions {
7
+ affectState: boolean;
8
+ }
9
+ export interface TransportOpts {
10
+ keepAlive: boolean;
11
+ }
12
+ /**
13
+ * Transport responsibilities:
14
+ *
15
+ * - Open/close connection
16
+ * - Encode/decode packets and pass through
17
+ * - Mark connection as open by waiting for connection_established packet, dealing with session id
18
+ * - Todo: handling packets queue (move from virtual socket)
19
+ *
20
+ * Events:
21
+ *
22
+ * - "open" - on "connection_established" packet from connectioon.
23
+ * - "close" - on close either from transport side or client one, error might be attached.
24
+ * - "packet" - pass through packets coming from connection.
25
+ */
26
+ export default abstract class Transport extends Emitter {
27
+ private readonly keepAlive;
28
+ protected payload: PollPayloadProtocol;
29
+ readyState: ReadyState;
30
+ sessionId: string;
31
+ constructor(opts: TransportOpts);
32
+ get keepAliveEnabled(): boolean;
33
+ send(packet: Protocol.Packet, opts?: WriteOptions): void;
34
+ updatePayload(params: PollPayloadProtocol): void;
35
+ close(error?: InternalTransportError): void;
36
+ abstract get name(): TransportType;
37
+ abstract open(): Promise<void>;
38
+ protected abstract closeClient(): void;
39
+ protected transportError(error: InternalTransportError): TransportError;
40
+ protected abstract write(packet: Protocol.Packet, opts?: WriteOptions): void;
41
+ protected onData(packet: Protocol.Packet | Protocol.Packet[]): void;
42
+ /**
43
+ * this function should be called by transport when it decides to close - for whatever
44
+ * reason (usually unexpected on such as network error or invalid request). then it
45
+ * propagaes to the client until it reaches virtual socket.
46
+ */
47
+ protected onTransportClose(error: TransportError): void;
48
+ protected restoreState(): void;
49
+ private handlePacket;
50
+ }
@@ -0,0 +1,120 @@
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 __assign = (this && this.__assign) || function () {
18
+ __assign = Object.assign || function(t) {
19
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
20
+ s = arguments[i];
21
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
+ t[p] = s[p];
23
+ }
24
+ return t;
25
+ };
26
+ return __assign.apply(this, arguments);
27
+ };
28
+ var __importDefault = (this && this.__importDefault) || function (mod) {
29
+ return (mod && mod.__esModule) ? mod : { "default": mod };
30
+ };
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ /* eslint-disable no-shadow */
33
+ var event_emitter_1 = require("../utils/event-emitter");
34
+ var ready_state_1 = __importDefault(require("../ready-state"));
35
+ /**
36
+ * Transport responsibilities:
37
+ *
38
+ * - Open/close connection
39
+ * - Encode/decode packets and pass through
40
+ * - Mark connection as open by waiting for connection_established packet, dealing with session id
41
+ * - Todo: handling packets queue (move from virtual socket)
42
+ *
43
+ * Events:
44
+ *
45
+ * - "open" - on "connection_established" packet from connectioon.
46
+ * - "close" - on close either from transport side or client one, error might be attached.
47
+ * - "packet" - pass through packets coming from connection.
48
+ */
49
+ var Transport = /** @class */ (function (_super) {
50
+ __extends(Transport, _super);
51
+ function Transport(opts) {
52
+ var _this = _super.call(this) || this;
53
+ _this.readyState = ready_state_1.default.CLOSED;
54
+ _this.restoreState();
55
+ _this.keepAlive = opts.keepAlive;
56
+ return _this;
57
+ }
58
+ Object.defineProperty(Transport.prototype, "keepAliveEnabled", {
59
+ get: function () {
60
+ return this.keepAlive;
61
+ },
62
+ enumerable: false,
63
+ configurable: true
64
+ });
65
+ Transport.prototype.send = function (packet, opts) {
66
+ this.write(packet, opts);
67
+ };
68
+ Transport.prototype.updatePayload = function (params) {
69
+ this.payload = params;
70
+ };
71
+ Transport.prototype.close = function (error) {
72
+ var transportError = error ? this.transportError(error) : undefined;
73
+ this.closeClient();
74
+ this.onTransportClose(transportError);
75
+ };
76
+ Transport.prototype.transportError = function (error) {
77
+ return __assign(__assign({}, error), { transport: this.name });
78
+ };
79
+ Transport.prototype.onData = function (packet) {
80
+ var _this = this;
81
+ if (!Array.isArray(packet)) {
82
+ this.handlePacket(packet);
83
+ }
84
+ else {
85
+ packet.forEach(function (packet) { return _this.handlePacket(packet); });
86
+ }
87
+ };
88
+ /**
89
+ * this function should be called by transport when it decides to close - for whatever
90
+ * reason (usually unexpected on such as network error or invalid request). then it
91
+ * propagaes to the client until it reaches virtual socket.
92
+ */
93
+ Transport.prototype.onTransportClose = function (error) {
94
+ if (this.readyState !== ready_state_1.default.CLOSED) {
95
+ this.restoreState();
96
+ this.emit('close', error);
97
+ }
98
+ else {
99
+ this.emit('connect_error', error);
100
+ }
101
+ };
102
+ Transport.prototype.restoreState = function () {
103
+ this.readyState = ready_state_1.default.CLOSED;
104
+ this.sessionId = '';
105
+ };
106
+ Transport.prototype.handlePacket = function (packet) {
107
+ switch (packet.type) {
108
+ case 'connection_established':
109
+ this.sessionId = packet.sessionId;
110
+ this.readyState = ready_state_1.default.OPEN;
111
+ this.emit('open', packet);
112
+ break;
113
+ default:
114
+ this.emit('packet', packet);
115
+ }
116
+ };
117
+ return Transport;
118
+ }(event_emitter_1.Emitter));
119
+ exports.default = Transport;
120
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/transport/transport.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8BAA8B;AAC9B,wDAAiD;AAGjD,+DAAwC;AAexC;;;;;;;;;;;;;GAaG;AACH;IAAgD,6BAAO;IAOrD,mBAAY,IAAmB;QAC7B,YAAA,MAAK,WAAE,SAAC;QAJH,gBAAU,GAAG,qBAAU,CAAC,MAAM,CAAC;QAMpC,KAAI,CAAC,YAAY,EAAE,CAAC;QACpB,KAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;;IAClC,CAAC;IAED,sBAAI,uCAAgB;aAApB;YACE,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;;;OAAA;IAED,wBAAI,GAAJ,UAAK,MAAuB,EAAE,IAAmB;QAC/C,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC3B,CAAC;IAED,iCAAa,GAAb,UAAc,MAA2B;QACvC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,yBAAK,GAAL,UAAM,KAA8B;QAClC,IAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtE,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;IAQS,kCAAc,GAAxB,UAAyB,KAA6B;QACpD,6BAAY,KAAK,KAAE,SAAS,EAAE,IAAI,CAAC,IAAI,IAAG;IAC5C,CAAC;IAIS,0BAAM,GAAhB,UAAiB,MAA2C;QAA5D,iBAMC;QALC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,OAAO,CAAC,UAAC,MAAM,IAAK,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAzB,CAAyB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACO,oCAAgB,GAA1B,UAA2B,KAAqB;QAC9C,IAAI,IAAI,CAAC,UAAU,KAAK,qBAAU,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAES,gCAAY,GAAtB;QACE,IAAI,CAAC,UAAU,GAAG,qBAAU,CAAC,MAAM,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAEO,gCAAY,GAApB,UAAqB,MAAuB;QAC1C,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,wBAAwB;gBAC3B,IAAI,CAAC,SAAS,GACZ,MACD,CAAC,SAAS,CAAC;gBACZ,IAAI,CAAC,UAAU,GAAG,qBAAU,CAAC,IAAI,CAAC;gBAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;gBAC1B,MAAM;YAER;gBACE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACH,gBAAC;AAAD,CAAC,AAtFD,CAAgD,uBAAO,GAsFtD"}
@@ -0,0 +1,42 @@
1
+ import { Emitter } from '../utils/event-emitter';
2
+ import { Protocol } from '@wix/wix-duplexer-typescript-definitions';
3
+ import Strategy from '../strategies/strategy';
4
+ import Transport from './transport';
5
+ import ReadyState from '../ready-state';
6
+ export interface ConnectState {
7
+ success: boolean;
8
+ connectionEstablishedPacket?: Protocol.ConnectionEstablishedPacket;
9
+ }
10
+ /**
11
+ * TransportsManager responsibilities:
12
+ *
13
+ * - Initizlize "first to connect" (according given strategies)
14
+ * - Close active connection or connection process
15
+ *
16
+ * Events:
17
+ * - "close" - in case (1) connected trasnport closed or (2) connect canceled
18
+ * - "connect_error" - passes through "close" events coming from trasnports during connection
19
+ * phase, may occurs several times during the connect tries.
20
+ * - "message" - pass through packets coming from open transport.
21
+ */
22
+ export default class TransportsManager extends Emitter {
23
+ private readonly strategies;
24
+ private _transport;
25
+ private disposables;
26
+ private cancelToken;
27
+ readyState: ReadyState;
28
+ constructor(strategies: Strategy[]);
29
+ get transport(): Transport;
30
+ connect(): Promise<ConnectState>;
31
+ close(): void;
32
+ isOpen(): boolean;
33
+ isClosed(): boolean;
34
+ private isOpening;
35
+ private connectToFirstToRespondStrategy;
36
+ private onClose;
37
+ private abortStrategiesWithNoOpenTransport;
38
+ private listenAndEmitConnectErrorsInAllTransportsOnConnecting;
39
+ private listenEventsOfActiveTransport;
40
+ private removeListeners;
41
+ private onData;
42
+ }
@@ -0,0 +1,248 @@
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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
59
+ }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
62
+ var __importDefault = (this && this.__importDefault) || function (mod) {
63
+ return (mod && mod.__esModule) ? mod : { "default": mod };
64
+ };
65
+ Object.defineProperty(exports, "__esModule", { value: true });
66
+ var event_emitter_1 = require("../utils/event-emitter");
67
+ var ready_state_1 = __importDefault(require("../ready-state"));
68
+ var on_1 = __importDefault(require("../utils/on"));
69
+ var deferred_1 = __importDefault(require("../utils/deferred"));
70
+ /**
71
+ * TransportsManager responsibilities:
72
+ *
73
+ * - Initizlize "first to connect" (according given strategies)
74
+ * - Close active connection or connection process
75
+ *
76
+ * Events:
77
+ * - "close" - in case (1) connected trasnport closed or (2) connect canceled
78
+ * - "connect_error" - passes through "close" events coming from trasnports during connection
79
+ * phase, may occurs several times during the connect tries.
80
+ * - "message" - pass through packets coming from open transport.
81
+ */
82
+ var TransportsManager = /** @class */ (function (_super) {
83
+ __extends(TransportsManager, _super);
84
+ function TransportsManager(strategies) {
85
+ var _this = _super.call(this) || this;
86
+ _this.strategies = strategies;
87
+ _this.disposables = [];
88
+ _this.readyState = ready_state_1.default.CLOSED;
89
+ return _this;
90
+ }
91
+ Object.defineProperty(TransportsManager.prototype, "transport", {
92
+ get: function () {
93
+ return this._transport;
94
+ },
95
+ enumerable: false,
96
+ configurable: true
97
+ });
98
+ TransportsManager.prototype.connect = function () {
99
+ return __awaiter(this, void 0, void 0, function () {
100
+ var connectionEstablishedPacket, e_1;
101
+ return __generator(this, function (_a) {
102
+ switch (_a.label) {
103
+ case 0:
104
+ if (this.readyState !== ready_state_1.default.CLOSED) {
105
+ return [2 /*return*/, connectCanceled()];
106
+ }
107
+ this.cancelToken = new deferred_1.default();
108
+ this.readyState = ready_state_1.default.OPENING;
109
+ this.listenAndEmitConnectErrorsInAllTransportsOnConnecting();
110
+ _a.label = 1;
111
+ case 1:
112
+ _a.trys.push([1, 3, , 4]);
113
+ return [4 /*yield*/, this.connectToFirstToRespondStrategy()];
114
+ case 2:
115
+ connectionEstablishedPacket =
116
+ _a.sent();
117
+ return [3 /*break*/, 4];
118
+ case 3:
119
+ e_1 = _a.sent();
120
+ return [2 /*return*/, connectCanceled()];
121
+ case 4:
122
+ this.cancelToken = null;
123
+ this.removeListeners();
124
+ this.abortStrategiesWithNoOpenTransport();
125
+ this.listenEventsOfActiveTransport();
126
+ return [2 /*return*/, connectSuccess(connectionEstablishedPacket)];
127
+ }
128
+ });
129
+ });
130
+ };
131
+ TransportsManager.prototype.close = function () {
132
+ if (this.isOpen()) {
133
+ // transport emits 'close' event, so this.onClose() will be called later on
134
+ this.transport.close();
135
+ }
136
+ else if (this.isOpening()) {
137
+ this.cancelToken && this.cancelToken.reject();
138
+ this.onClose();
139
+ this.strategies.forEach(function (s) { return s.abort(); });
140
+ }
141
+ };
142
+ TransportsManager.prototype.isOpen = function () {
143
+ return this.readyState === ready_state_1.default.OPEN;
144
+ };
145
+ TransportsManager.prototype.isClosed = function () {
146
+ return this.readyState === ready_state_1.default.CLOSED;
147
+ };
148
+ TransportsManager.prototype.isOpening = function () {
149
+ return this.readyState === ready_state_1.default.OPENING;
150
+ };
151
+ TransportsManager.prototype.connectToFirstToRespondStrategy = function () {
152
+ return __awaiter(this, void 0, void 0, function () {
153
+ var _a, transport, connectionEstablishedPacket;
154
+ return __generator(this, function (_b) {
155
+ switch (_b.label) {
156
+ case 0: return [4 /*yield*/, Promise.race(__spreadArray(__spreadArray([], this.strategies.map(function (s) { return s.connect(); }), true), [
157
+ this.cancelToken.promise,
158
+ ], false))];
159
+ case 1:
160
+ _a = _b.sent(), transport = _a.transport, connectionEstablishedPacket = _a.connectionEstablishedPacket;
161
+ this._transport = transport;
162
+ this.readyState = ready_state_1.default.OPEN;
163
+ return [2 /*return*/, connectionEstablishedPacket];
164
+ }
165
+ });
166
+ });
167
+ };
168
+ TransportsManager.prototype.onClose = function (error) {
169
+ this.readyState = ready_state_1.default.CLOSED;
170
+ this._transport = null;
171
+ this.cancelToken = null;
172
+ this.removeListeners();
173
+ /**
174
+ * the reason we always propagaes 'close' event is that some entities in the system
175
+ * have to make a clean up or just react, for instance:
176
+ *
177
+ * - connection manager MAY reconnect.
178
+ * - vritual socket must notify to its user (disconnected event).
179
+ *
180
+ * so it doesn't matter WHY close happened - everyone should always get notified.
181
+ */
182
+ this.emit('close', error);
183
+ };
184
+ TransportsManager.prototype.abortStrategiesWithNoOpenTransport = function () {
185
+ this.strategies
186
+ .filter(function (s) { return s.transport.readyState !== ready_state_1.default.OPEN; })
187
+ .forEach(function (s) { return s.abort(); });
188
+ };
189
+ TransportsManager.prototype.listenAndEmitConnectErrorsInAllTransportsOnConnecting = function () {
190
+ var _this = this;
191
+ this.disposables = this.strategies.map(function (s) {
192
+ return (0, on_1.default)(s, 'connect_error', function (error) {
193
+ if (error.recoverable) {
194
+ _this.emit('connect_error', error);
195
+ }
196
+ else {
197
+ _this.close();
198
+ }
199
+ });
200
+ });
201
+ };
202
+ TransportsManager.prototype.listenEventsOfActiveTransport = function () {
203
+ var _this = this;
204
+ this.disposables = [
205
+ /**
206
+ * might be called either because transport got error or due to a side-effect
207
+ * when someone calls TransportsManager.close().
208
+ */
209
+ (0, on_1.default)(this.transport, 'close', function (error) {
210
+ _this.onClose(error);
211
+ }),
212
+ (0, on_1.default)(this.transport, 'packet', function (packet) {
213
+ _this.onData(packet);
214
+ }),
215
+ ];
216
+ };
217
+ TransportsManager.prototype.removeListeners = function () {
218
+ this.disposables.forEach(function (l) { return l.destroy(); });
219
+ this.disposables = [];
220
+ };
221
+ // todo: rewrite this method, it looks ugly
222
+ TransportsManager.prototype.onData = function (packet) {
223
+ switch (packet.type) {
224
+ case 'message':
225
+ case 'ack':
226
+ case 'error':
227
+ case 'UpdateRestoreStrategyOverrides':
228
+ this.emit('message', packet);
229
+ break;
230
+ default:
231
+ break;
232
+ }
233
+ };
234
+ return TransportsManager;
235
+ }(event_emitter_1.Emitter));
236
+ exports.default = TransportsManager;
237
+ function connectSuccess(connectionEstablishedPacket) {
238
+ return {
239
+ success: true,
240
+ connectionEstablishedPacket: connectionEstablishedPacket,
241
+ };
242
+ }
243
+ function connectCanceled() {
244
+ return {
245
+ success: false,
246
+ };
247
+ }
248
+ //# sourceMappingURL=transports-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports-manager.js","sourceRoot":"","sources":["../../../src/transport/transports-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function isRecoverableCode(code: number): boolean;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRecoverableCode = void 0;
4
+ function isRecoverableCode(code) {
5
+ return [401].every(function (unrecoverableStatus) { return unrecoverableStatus !== code; });
6
+ }
7
+ exports.isRecoverableCode = isRecoverableCode;
8
+ //# sourceMappingURL=unrecoverable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unrecoverable.js","sourceRoot":"","sources":["../../../src/transport/unrecoverable.ts"],"names":[],"mappings":";;;AAAA,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,UAAC,mBAAmB,IAAK,OAAA,mBAAmB,KAAK,IAAI,EAA5B,CAA4B,CAAC,CAAC;AAC5E,CAAC;AAFD,8CAEC"}
@@ -0,0 +1,18 @@
1
+ import { Protocol } from '@wix/wix-duplexer-typescript-definitions';
2
+ import Transport from './transport';
3
+ import { TransportType } from './transport-error';
4
+ import { InstanceUpdater } from '../instance-updater';
5
+ export default class WS extends Transport {
6
+ private readonly url;
7
+ private readonly instanceUpdater;
8
+ private readonly siteRevision?;
9
+ private ws;
10
+ constructor(url: string, instanceUpdater?: InstanceUpdater, siteRevision?: string);
11
+ static isSupported(): boolean;
12
+ get name(): TransportType;
13
+ open(): Promise<void>;
14
+ protected closeClient(): void;
15
+ protected write(packet: Protocol.Packet): void;
16
+ private listen;
17
+ private cleanWebSocketHooks;
18
+ }