@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,228 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
54
+ return (mod && mod.__esModule) ? mod : { "default": mod };
55
+ };
56
+ Object.defineProperty(exports, "__esModule", { value: true });
57
+ var event_emitter_1 = require("./utils/event-emitter");
58
+ var on_1 = __importDefault(require("./utils/on"));
59
+ var keep_alive_1 = __importDefault(require("./keep-alive"));
60
+ var assert_1 = require("./utils/assert");
61
+ var is_transport_error_1 = __importDefault(require("./errors/is-transport-error"));
62
+ /**
63
+ * ConnectionManager responsibilities:
64
+ * - Auto reconnections on abrupt disconnections and environment state changes
65
+ * - Keep alive (in relevant transports only)
66
+ * - Network state changes (on online hints)
67
+ * - Dealing with TransportsManager
68
+ *
69
+ * Events:
70
+ * - "open" - on connection open, depends on result from TransportsManager#connect
71
+ * - "close" - passed through from TransportsManager
72
+ * - "connect_error" - passed through from TransportsManager
73
+ * - "message" - passed through from TransportsManager
74
+ */
75
+ var ConnectionManager = /** @class */ (function (_super) {
76
+ __extends(ConnectionManager, _super);
77
+ function ConnectionManager(opts) {
78
+ var _this = _super.call(this) || this;
79
+ _this.opts = opts;
80
+ _this.environment = opts.environment;
81
+ _this.timeline = opts.timeline;
82
+ _this.autoConnectEnabled = opts.autoConnectEnabed;
83
+ _this.listenNeworkStateChanges();
84
+ _this.listenTransportEvents();
85
+ return _this;
86
+ }
87
+ Object.defineProperty(ConnectionManager.prototype, "sessionId", {
88
+ get: function () {
89
+ return this.transport.sessionId;
90
+ },
91
+ enumerable: false,
92
+ configurable: true
93
+ });
94
+ ConnectionManager.prototype.updatePayload = function (payload) {
95
+ this.transport.updatePayload(payload);
96
+ };
97
+ ConnectionManager.prototype.send = function (packet, opts) {
98
+ this.transport.send(packet, opts);
99
+ };
100
+ ConnectionManager.prototype.close = function () {
101
+ this.autoConnect = false;
102
+ this.environment.transportsManager.close();
103
+ this.dispose();
104
+ };
105
+ Object.defineProperty(ConnectionManager.prototype, "readyState", {
106
+ get: function () {
107
+ return this.environment.transportsManager.readyState;
108
+ },
109
+ enumerable: false,
110
+ configurable: true
111
+ });
112
+ ConnectionManager.prototype.connect = function () {
113
+ return __awaiter(this, void 0, void 0, function () {
114
+ var result;
115
+ return __generator(this, function (_a) {
116
+ switch (_a.label) {
117
+ case 0:
118
+ this.autoConnect = this.autoConnectEnabled;
119
+ return [4 /*yield*/, this.environment.transportsManager.connect()];
120
+ case 1:
121
+ result = _a.sent();
122
+ if (result.success) {
123
+ this.keepAlive = new keep_alive_1.default(this.transport, this.opts);
124
+ this.transport.keepAliveEnabled && this.keepAlive.schedule();
125
+ this.timeline.log({
126
+ type: 'connect_succeeded',
127
+ data: {
128
+ transport: this.transport.name,
129
+ },
130
+ });
131
+ this.emit('open', result.connectionEstablishedPacket);
132
+ }
133
+ return [2 /*return*/];
134
+ }
135
+ });
136
+ });
137
+ };
138
+ ConnectionManager.prototype.isClosed = function () {
139
+ return this.environment.transportsManager.isClosed();
140
+ };
141
+ ConnectionManager.prototype.isOpen = function () {
142
+ return this.environment.transportsManager.isOpen();
143
+ };
144
+ Object.defineProperty(ConnectionManager.prototype, "transport", {
145
+ get: function () {
146
+ (0, assert_1.defined)(this.environment.transportsManager.transport, 'transport was not initialized yet');
147
+ return this.environment.transportsManager.transport;
148
+ },
149
+ enumerable: false,
150
+ configurable: true
151
+ });
152
+ /**
153
+ * we reconnect in the following scenarios only:
154
+ *
155
+ * - unexpected close, due to command that errored out or any other unexpected
156
+ * network error.
157
+ * - keep alive failed to return a pong during the defined timeout/timeframe.
158
+ * - sessions expired.
159
+ *
160
+ * note: invalid signed instance is currently an error we do not recover, it's a todo.
161
+ * basically we can recover it, because instance updater provided by the user should
162
+ * always return a valid signed instance, so we can retry multiple times.
163
+ */
164
+ ConnectionManager.prototype.shouldReconnect = function (error) {
165
+ return this.autoConnect && (error === null || error === void 0 ? void 0 : error.recoverable);
166
+ };
167
+ ConnectionManager.prototype.listenNeworkStateChanges = function () {
168
+ var _this = this;
169
+ this.environment.network.on('online', function () {
170
+ /**
171
+ * the ONLY responsibility of "online" hook is to speed up reconnections
172
+ * in case our backoff reached top intervals (10s between reconnections),
173
+ * it should restart it. hence, we MUST NOT close connection in case it
174
+ * is considered ESTABLISHED one (yes - although it MAY be an half-open one).
175
+ * in case of half-open connection, it's keep alive responsibility to
176
+ * disconnect us (and reconnect will happen automatically).
177
+ */
178
+ if (_this.autoConnect && !_this.isOpen()) {
179
+ _this.timeline.log({
180
+ type: 'network_state_changed',
181
+ data: 'online',
182
+ });
183
+ // cleanup strategies and reconnect faster
184
+ _this.close();
185
+ _this.connect();
186
+ }
187
+ });
188
+ };
189
+ ConnectionManager.prototype.listenTransportEvents = function () {
190
+ var _this = this;
191
+ (0, on_1.default)(this.environment.transportsManager, 'connect_error', function (error) {
192
+ _this.timeline.log({
193
+ type: 'connect_error',
194
+ data: error,
195
+ });
196
+ // eventually, it is propagaed to client as "@duplexer:connect_error" event,
197
+ // by VirtualSocket, error is attached.
198
+ _this.emit('connect_error', error);
199
+ });
200
+ (0, on_1.default)(this.environment.transportsManager, 'close', function (error) {
201
+ _this.dispose();
202
+ _this.maybeLogDisconnectionError(error);
203
+ if (_this.shouldReconnect(error)) {
204
+ _this.connect();
205
+ }
206
+ // eventually, it is propagaed to client as "@duplexer:disconnected" event,
207
+ // by VirtualSocket, error is attached in case it exists.
208
+ _this.emit('close', error);
209
+ });
210
+ (0, on_1.default)(this.environment.transportsManager, 'message', function (message) {
211
+ _this.emit('message', message);
212
+ });
213
+ };
214
+ ConnectionManager.prototype.dispose = function () {
215
+ this.keepAlive && this.keepAlive.dispose();
216
+ };
217
+ ConnectionManager.prototype.maybeLogDisconnectionError = function (error) {
218
+ if ((0, is_transport_error_1.default)(error)) {
219
+ this.timeline.log({
220
+ type: 'disconnect_error',
221
+ data: error,
222
+ });
223
+ }
224
+ };
225
+ return ConnectionManager;
226
+ }(event_emitter_1.Emitter));
227
+ exports.default = ConnectionManager;
228
+ //# sourceMappingURL=connection-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection-manager.js","sourceRoot":"","sources":["../../src/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export declare const WixArtifactIdHeader = "x-wix-artifact-id";
2
+ export declare const wsClient = "ws.manager";
3
+ export declare const userChannel = "@user-inbox";
4
+ export declare const wsVs = "ws.vs";
5
+ export declare const DuplexerSocketArtifactId = "com.wixpress.infra.wix-duplexer-sockets-server";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DuplexerSocketArtifactId = exports.wsVs = exports.userChannel = exports.wsClient = exports.WixArtifactIdHeader = void 0;
4
+ exports.WixArtifactIdHeader = 'x-wix-artifact-id';
5
+ exports.wsClient = 'ws.manager';
6
+ exports.userChannel = '@user-inbox';
7
+ exports.wsVs = 'ws.vs';
8
+ exports.DuplexerSocketArtifactId = 'com.wixpress.infra.wix-duplexer-sockets-server';
9
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mBAAmB,GAAG,mBAAmB,CAAC;AAC1C,QAAA,QAAQ,GAAG,YAAY,CAAC;AACxB,QAAA,WAAW,GAAG,aAAa,CAAC;AAC5B,QAAA,IAAI,GAAG,OAAO,CAAC;AACf,QAAA,wBAAwB,GACnC,gDAAgD,CAAC"}
@@ -0,0 +1,3 @@
1
+ export interface Headers {
2
+ [header: string]: string;
3
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=domain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/domain.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import { Emitter } from './utils/event-emitter';
2
+ import { Protocol } from '@wix/wix-duplexer-typescript-definitions';
3
+ import { PollOverrideRestoreStrategy } from '@wix/wix-duplexer-protocol/dist/lib/PollOverrideRestoreStrategyBuilder';
4
+ import VirtualSocket, { VirtualSocketOptions } from './virtual-socket';
5
+ import Environment from './environments/core/environment';
6
+ import ConnectionManager from './connection-manager';
7
+ import Timeline from './timeline/timeline';
8
+ import { WriteOptions } from './transport/transport';
9
+ import { InstanceUpdater } from './instance-updater';
10
+ export type TransportType = 'WebSocket' | 'InMemory';
11
+ export interface DuplexerOptions {
12
+ pingInterval?: number;
13
+ pingTimeout?: number;
14
+ secured?: boolean;
15
+ timeline?: Timeline;
16
+ instanceUpdater?: InstanceUpdater;
17
+ siteRevision?: string;
18
+ autoConnect?: boolean;
19
+ }
20
+ export declare class Duplexer extends Emitter {
21
+ private virtualSockets;
22
+ private readonly environment;
23
+ private payloadBuilder;
24
+ private connectionServerTimeDeferred;
25
+ /** @internal */
26
+ connection: ConnectionManager;
27
+ constructor(urlOrEnvironment: string | Environment, { pingInterval, pingTimeout, timeline, autoConnect, instanceUpdater, siteRevision, }?: DuplexerOptions);
28
+ triggerInstanceChanged(): void;
29
+ connect(opts: VirtualSocketOptions): VirtualSocket;
30
+ getConnectionServerTime(): Promise<number>;
31
+ close(): void;
32
+ /** @internal */
33
+ addRestoreOverride(override: PollOverrideRestoreStrategy): void;
34
+ /** @internal */
35
+ closeVirtualSocket(virtualSocket: VirtualSocket): void;
36
+ /** @internal */
37
+ packet(packet: Protocol.Packet, opts?: WriteOptions): void;
38
+ private listen;
39
+ private onClose;
40
+ private overwriteRestoreOverrides;
41
+ }
@@ -0,0 +1,125 @@
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
+ exports.Duplexer = void 0;
22
+ var event_emitter_1 = require("./utils/event-emitter");
23
+ var wix_duplexer_protocol_1 = require("@wix/wix-duplexer-protocol");
24
+ var deferred_1 = __importDefault(require("./utils/deferred"));
25
+ var virtual_socket_1 = __importDefault(require("./virtual-socket"));
26
+ var environment_1 = __importDefault(require("./environments/web/environment"));
27
+ var connection_manager_1 = __importDefault(require("./connection-manager"));
28
+ var noop_timeline_1 = __importDefault(require("./timeline/noop-timeline"));
29
+ var Duplexer = /** @class */ (function (_super) {
30
+ __extends(Duplexer, _super);
31
+ function Duplexer(urlOrEnvironment, _a) {
32
+ var _b = _a === void 0 ? {} : _a, _c = _b.pingInterval, pingInterval = _c === void 0 ? 30000 : _c, _d = _b.pingTimeout, pingTimeout = _d === void 0 ? 5000 : _d, _e = _b.timeline, timeline = _e === void 0 ? (0, noop_timeline_1.default)() : _e, _f = _b.autoConnect, autoConnect = _f === void 0 ? true : _f, instanceUpdater = _b.instanceUpdater, siteRevision = _b.siteRevision;
33
+ var _this = _super.call(this) || this;
34
+ _this.virtualSockets = [];
35
+ _this.payloadBuilder = new wix_duplexer_protocol_1.PollPayloadBuilder();
36
+ _this.connectionServerTimeDeferred = new deferred_1.default();
37
+ _this.environment =
38
+ typeof urlOrEnvironment === 'string'
39
+ ? (0, environment_1.default)({
40
+ url: urlOrEnvironment,
41
+ instanceUpdater: instanceUpdater,
42
+ siteRevision: siteRevision,
43
+ })
44
+ : urlOrEnvironment;
45
+ _this.connection = new connection_manager_1.default({
46
+ pingTimeout: pingTimeout,
47
+ pingInterval: pingInterval,
48
+ environment: _this.environment,
49
+ timeline: timeline,
50
+ autoConnectEnabed: autoConnect,
51
+ });
52
+ _this.listen();
53
+ return _this;
54
+ }
55
+ Duplexer.prototype.triggerInstanceChanged = function () {
56
+ this.close();
57
+ this.connection.connect();
58
+ };
59
+ Duplexer.prototype.connect = function (opts) {
60
+ var vSocket = new virtual_socket_1.default(this, opts);
61
+ this.virtualSockets.push(vSocket);
62
+ return vSocket;
63
+ };
64
+ Duplexer.prototype.getConnectionServerTime = function () {
65
+ return this.connectionServerTimeDeferred.promise;
66
+ };
67
+ Duplexer.prototype.close = function () {
68
+ this.connection.close();
69
+ };
70
+ /** @internal */
71
+ Duplexer.prototype.addRestoreOverride = function (override) {
72
+ var payload = this.payloadBuilder
73
+ .withOverrideRestoreStrategy(override)
74
+ .build();
75
+ this.connection.updatePayload(payload);
76
+ };
77
+ /** @internal */
78
+ Duplexer.prototype.closeVirtualSocket = function (virtualSocket) {
79
+ this.virtualSockets = this.virtualSockets.filter(function (vs) { return vs !== virtualSocket; });
80
+ if (this.virtualSockets.length === 0) {
81
+ this.close();
82
+ }
83
+ };
84
+ /** @internal */
85
+ Duplexer.prototype.packet = function (packet, opts) {
86
+ this.connection.send(packet, opts);
87
+ };
88
+ Duplexer.prototype.listen = function () {
89
+ var _this = this;
90
+ this.connection.on('open', function (packet) {
91
+ var timestampRestoreStrategy = wix_duplexer_protocol_1.RestoreStrategyBuilderFactory.timestamp().withT(packet.t).build();
92
+ _this.payloadBuilder.withDefaultRestoreStrategy(timestampRestoreStrategy);
93
+ _this.connection.updatePayload(_this.payloadBuilder.build());
94
+ _this.emit('open');
95
+ _this.connectionServerTimeDeferred.resolve(packet.t);
96
+ });
97
+ this.connection.on('message', function (message) {
98
+ switch (message.type) {
99
+ case 'UpdateRestoreStrategyOverrides':
100
+ _this.overwriteRestoreOverrides(message
101
+ .overrides);
102
+ break;
103
+ default:
104
+ _this.emit('packet', message);
105
+ }
106
+ });
107
+ this.connection.on('close', this.onClose.bind(this));
108
+ };
109
+ Duplexer.prototype.onClose = function (error) {
110
+ this.emit('close', error);
111
+ this.connectionServerTimeDeferred = new deferred_1.default();
112
+ };
113
+ Duplexer.prototype.overwriteRestoreOverrides = function (overrides) {
114
+ var _this = this;
115
+ this.payloadBuilder = new wix_duplexer_protocol_1.PollPayloadBuilder();
116
+ overrides.forEach(function (override) {
117
+ return _this.payloadBuilder.withOverrideRestoreStrategy(override);
118
+ });
119
+ var payload = this.payloadBuilder.build();
120
+ this.connection.updatePayload(payload);
121
+ };
122
+ return Duplexer;
123
+ }(event_emitter_1.Emitter));
124
+ exports.Duplexer = Duplexer;
125
+ //# sourceMappingURL=duplexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplexer.js","sourceRoot":"","sources":["../../src/duplexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import Network from './network';
2
+ import TransportsManager from '../../transport/transports-manager';
3
+ export default class Environment {
4
+ private readonly _transportsManager;
5
+ private readonly _network;
6
+ constructor(opts: EnvironmentOpts);
7
+ get network(): Network;
8
+ get transportsManager(): TransportsManager;
9
+ }
10
+ export interface EnvironmentOpts {
11
+ network: Network;
12
+ transportsManager: TransportsManager;
13
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var Environment = /** @class */ (function () {
4
+ function Environment(opts) {
5
+ this._transportsManager = opts.transportsManager;
6
+ this._network = opts.network;
7
+ }
8
+ Object.defineProperty(Environment.prototype, "network", {
9
+ get: function () {
10
+ return this._network;
11
+ },
12
+ enumerable: false,
13
+ configurable: true
14
+ });
15
+ Object.defineProperty(Environment.prototype, "transportsManager", {
16
+ get: function () {
17
+ return this._transportsManager;
18
+ },
19
+ enumerable: false,
20
+ configurable: true
21
+ });
22
+ return Environment;
23
+ }());
24
+ exports.default = Environment;
25
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/environments/core/environment.ts"],"names":[],"mappings":";;AAGA;IAIE,qBAAY,IAAqB;QAC/B,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,sBAAI,gCAAO;aAAX;YACE,OAAO,IAAI,CAAC,QAAQ,CAAC;QACvB,CAAC;;;OAAA;IAED,sBAAI,0CAAiB;aAArB;YACE,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC;;;OAAA;IACH,kBAAC;AAAD,CAAC,AAhBD,IAgBC"}
@@ -0,0 +1,6 @@
1
+ import { Emitter } from '../../utils/event-emitter';
2
+ export default abstract class Network extends Emitter {
3
+ constructor();
4
+ protected abstract listenConnectionStateChanges(): void;
5
+ protected connectionIsOnline(): void;
6
+ }
@@ -0,0 +1,32 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ var event_emitter_1 = require("../../utils/event-emitter");
19
+ var Network = /** @class */ (function (_super) {
20
+ __extends(Network, _super);
21
+ function Network() {
22
+ var _this = _super.call(this) || this;
23
+ _this.listenConnectionStateChanges();
24
+ return _this;
25
+ }
26
+ Network.prototype.connectionIsOnline = function () {
27
+ this.emit('online');
28
+ };
29
+ return Network;
30
+ }(event_emitter_1.Emitter));
31
+ exports.default = Network;
32
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/environments/core/network.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2DAAoD;AAEpD;IAA8C,2BAAO;IACnD;QACE,YAAA,MAAK,WAAE,SAAC;QACR,KAAI,CAAC,4BAA4B,EAAE,CAAC;;IACtC,CAAC;IAIS,oCAAkB,GAA5B;QACE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IACH,cAAC;AAAD,CAAC,AAXD,CAA8C,uBAAO,GAWpD"}
@@ -0,0 +1,7 @@
1
+ import Environment from '../core/environment';
2
+ import { InstanceUpdater } from '../..';
3
+ export declare function aReactNativeEnvironment(opts: ReactNativeOpts): Environment;
4
+ export interface ReactNativeOpts {
5
+ instanceUpdater: InstanceUpdater;
6
+ siteRevision?: string;
7
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.aReactNativeEnvironment = void 0;
18
+ var environment_1 = __importDefault(require("../core/environment"));
19
+ var network_1 = require("./network");
20
+ var transports_1 = __importDefault(require("./transports"));
21
+ function aReactNativeEnvironment(opts) {
22
+ var network = new network_1.ReactNativeNetwork();
23
+ var transportsManager = (0, transports_1.default)(__assign(__assign({}, opts), { baseUrl: 'duplexer.wix.com' }));
24
+ return new environment_1.default({ transportsManager: transportsManager, network: network });
25
+ }
26
+ exports.aReactNativeEnvironment = aReactNativeEnvironment;
27
+ //# sourceMappingURL=environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../../src/environments/react-native/environment.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,oEAA8C;AAC9C,qCAA+C;AAC/C,4DAAsC;AAGtC,SAAgB,uBAAuB,CAAC,IAAqB;IAC3D,IAAM,OAAO,GAAG,IAAI,4BAAkB,EAAE,CAAC;IACzC,IAAM,iBAAiB,GAAG,IAAA,oBAAU,wBAC/B,IAAI,KACP,OAAO,EAAE,kBAAkB,IAC3B,CAAC;IACH,OAAO,IAAI,qBAAW,CAAC,EAAE,iBAAiB,mBAAA,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;AACzD,CAAC;AAPD,0DAOC"}
@@ -0,0 +1,6 @@
1
+ import Network from '../core/network';
2
+ export declare class ReactNativeNetwork extends Network {
3
+ private online;
4
+ constructor();
5
+ listenConnectionStateChanges(): void;
6
+ }
@@ -0,0 +1,54 @@
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
+ exports.ReactNativeNetwork = void 0;
22
+ var netinfo_1 = __importDefault(require("@react-native-community/netinfo"));
23
+ var network_1 = __importDefault(require("../core/network"));
24
+ var ReactNativeNetwork = /** @class */ (function (_super) {
25
+ __extends(ReactNativeNetwork, _super);
26
+ function ReactNativeNetwork() {
27
+ var _this = _super.call(this) || this;
28
+ _this.online = true;
29
+ netinfo_1.default.fetch().then(function (_a) {
30
+ var isConnected = _a.isConnected;
31
+ _this.online = isConnected;
32
+ });
33
+ return _this;
34
+ }
35
+ ReactNativeNetwork.prototype.listenConnectionStateChanges = function () {
36
+ var _this = this;
37
+ netinfo_1.default.addEventListener(function (_a) {
38
+ var isConnected = _a.isConnected;
39
+ // React Native counts the switch from Wi-Fi to Cellular
40
+ // as a state change. Return if current and previous states
41
+ // are both online/offline
42
+ if (_this.online === isConnected) {
43
+ return;
44
+ }
45
+ _this.online = isConnected;
46
+ if (_this.online) {
47
+ _this.connectionIsOnline();
48
+ }
49
+ });
50
+ };
51
+ return ReactNativeNetwork;
52
+ }(network_1.default));
53
+ exports.ReactNativeNetwork = ReactNativeNetwork;
54
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/environments/react-native/network.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,4EAAsD;AACtD,4DAAsC;AAEtC;IAAwC,sCAAO;IAG7C;QACE,YAAA,MAAK,WAAE,SAAC;QAHF,YAAM,GAAG,IAAI,CAAC;QAKpB,iBAAO,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,UAAC,EAAe;gBAAb,WAAW,iBAAA;YACjC,KAAI,CAAC,MAAM,GAAG,WAAW,CAAC;QAC5B,CAAC,CAAC,CAAC;;IACL,CAAC;IAEM,yDAA4B,GAAnC;QAAA,iBAeC;QAdC,iBAAO,CAAC,gBAAgB,CAAC,UAAC,EAAe;gBAAb,WAAW,iBAAA;YACrC,wDAAwD;YACxD,2DAA2D;YAC3D,0BAA0B;YAC1B,IAAI,KAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,KAAI,CAAC,MAAM,GAAG,WAAW,CAAC;YAE1B,IAAI,KAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,KAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IACH,yBAAC;AAAD,CAAC,AA3BD,CAAwC,iBAAO,GA2B9C;AA3BY,gDAAkB"}