@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 @@
1
+ export {};
@@ -0,0 +1,92 @@
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
+ /* eslint-disable no-shadow */
7
+ var nock_1 = __importDefault(require("nock"));
8
+ var chai_1 = require("chai");
9
+ var sinon_1 = require("sinon");
10
+ var wix_eventually_1 = __importDefault(require("wix-eventually"));
11
+ var environment_1 = __importDefault(require("../../src/environments/web/environment"));
12
+ var setup_global_mock_navigator_1 = __importDefault(require("../helpers/setup-global-mock-navigator"));
13
+ var eventually = wix_eventually_1.default.with({ timeout: 1000, interval: 10 });
14
+ describe('web environment', function () {
15
+ var cleanup;
16
+ var mockNavigator;
17
+ var webEnvironment;
18
+ describe('inside web environment', function () {
19
+ beforeEach(function () {
20
+ cleanup = require('jsdom-global')('', {
21
+ url: 'http://some-url.com',
22
+ });
23
+ mockNavigator = (0, setup_global_mock_navigator_1.default)();
24
+ webEnvironment = (0, environment_1.default)({ url: 'some-url.com' });
25
+ });
26
+ beforeEach(function () {
27
+ (0, sinon_1.spy)(webEnvironment.network, 'emit');
28
+ });
29
+ afterEach(function () {
30
+ cleanup();
31
+ });
32
+ describe('network', function () {
33
+ it('emits events on network state changes', function () {
34
+ mockNavigator.goOnline();
35
+ (0, chai_1.expect)(webEnvironment.network.emit).to.have.been.calledWith('online');
36
+ });
37
+ });
38
+ describe('http', function () {
39
+ disableWebSocketTransporterBeofreAndAfterEach();
40
+ useProductionNodeEnvBeforeAndAfterEach();
41
+ afterEach(function () { return nock_1.default.cleanAll(); });
42
+ describe('protocol detection', function () {
43
+ it('uses http in case that protocol detected via browser API', function () {
44
+ var interceptor = (0, nock_1.default)('http://some-url.com')
45
+ .post('/http')
46
+ .reply(204);
47
+ webEnvironment.transportsManager.connect();
48
+ return eventually(function () { return (0, chai_1.expect)(interceptor.isDone()).to.be.true; });
49
+ });
50
+ it('uses https when protocol is not http', function () {
51
+ cleanup();
52
+ cleanup = require('jsdom-global')('', {
53
+ url: 'https://some-url.com',
54
+ });
55
+ process.env.NODE_ENV = 'production';
56
+ var webEnvironment = (0, environment_1.default)({ url: 'some-url.com' });
57
+ var interceptor = (0, nock_1.default)('https://some-url.com')
58
+ .post('/http')
59
+ .reply(204);
60
+ webEnvironment.transportsManager.connect();
61
+ return eventually(function () { return (0, chai_1.expect)(interceptor.isDone()).to.be.true; });
62
+ });
63
+ });
64
+ });
65
+ });
66
+ // yes, these tests are shitty. should create a node env asap. a
67
+ describe('outside web environment', function () {
68
+ it('should not throw on WebEnvironment creation', function () {
69
+ (0, environment_1.default)({ url: 'some-url' });
70
+ });
71
+ });
72
+ function disableWebSocketTransporterBeofreAndAfterEach() {
73
+ var _websocketGlobal;
74
+ before(function () {
75
+ _websocketGlobal = global.WebSocket;
76
+ delete global.WebSocket;
77
+ });
78
+ after(function () {
79
+ global.WebSocket = _websocketGlobal;
80
+ });
81
+ }
82
+ function useProductionNodeEnvBeforeAndAfterEach() {
83
+ var nodeEnv = process.env.NODE_ENV;
84
+ before(function () {
85
+ process.env.NODE_ENV = 'production';
86
+ });
87
+ after(function () {
88
+ process.env.NODE_ENV = nodeEnv;
89
+ });
90
+ }
91
+ });
92
+ //# sourceMappingURL=web.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.spec.js","sourceRoot":"","sources":["../../../test/environments/web.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var chai_1 = require("chai");
4
+ var event_emitter_1 = require("../src/utils/event-emitter");
5
+ describe('Emitter', function () {
6
+ describe('.on(event, fn)', function () {
7
+ it('should add listeners', function () {
8
+ var emitter = new event_emitter_1.Emitter();
9
+ var calls = [];
10
+ emitter.on('foo', function (val) {
11
+ calls.push('one', val);
12
+ });
13
+ emitter.on('foo', function (val) {
14
+ calls.push('two', val);
15
+ });
16
+ emitter.emit('foo', 1);
17
+ emitter.emit('bar', 1);
18
+ emitter.emit('foo', 2);
19
+ (0, chai_1.expect)(calls).eql(['one', 1, 'two', 1, 'one', 2, 'two', 2]);
20
+ });
21
+ it('should add listeners for events which are same names with methods of Object.prototype', function () {
22
+ var emitter = new event_emitter_1.Emitter();
23
+ var calls = [];
24
+ emitter.on('constructor', function (val) {
25
+ calls.push('one', val);
26
+ });
27
+ emitter.on('__proto__', function (val) {
28
+ calls.push('two', val);
29
+ });
30
+ emitter.emit('constructor', 1);
31
+ emitter.emit('__proto__', 2);
32
+ (0, chai_1.expect)(calls).eql(['one', 1, 'two', 2]);
33
+ });
34
+ });
35
+ describe('.once(event, fn)', function () {
36
+ it('should add a single-shot listener', function () {
37
+ var emitter = new event_emitter_1.Emitter();
38
+ var calls = [];
39
+ emitter.once('foo', function (val) {
40
+ calls.push('one', val);
41
+ });
42
+ emitter.emit('foo', 1);
43
+ emitter.emit('foo', 2);
44
+ emitter.emit('foo', 3);
45
+ emitter.emit('bar', 1);
46
+ (0, chai_1.expect)(calls).eql(['one', 1]);
47
+ });
48
+ });
49
+ describe('.off(event, fn)', function () {
50
+ it('should remove a listener', function () {
51
+ var emitter = new event_emitter_1.Emitter();
52
+ var calls = [];
53
+ function one() {
54
+ calls.push('one');
55
+ }
56
+ function two() {
57
+ calls.push('two');
58
+ }
59
+ emitter.on('foo', one);
60
+ emitter.on('foo', two);
61
+ emitter.off('foo', two);
62
+ emitter.emit('foo');
63
+ (0, chai_1.expect)(calls).eql(['one']);
64
+ });
65
+ it('should work with .once()', function () {
66
+ var emitter = new event_emitter_1.Emitter();
67
+ var calls = [];
68
+ function one() {
69
+ calls.push('one');
70
+ }
71
+ emitter.once('foo', one);
72
+ emitter.once('fee', one);
73
+ emitter.off('foo', one);
74
+ emitter.emit('foo');
75
+ (0, chai_1.expect)(calls).eql([]);
76
+ });
77
+ it('should work when called from an event', function () {
78
+ var emitter = new event_emitter_1.Emitter();
79
+ var called;
80
+ function b() {
81
+ called = true;
82
+ }
83
+ emitter.on('tobi', function () {
84
+ emitter.off('tobi', b);
85
+ });
86
+ emitter.on('tobi', b);
87
+ emitter.emit('tobi');
88
+ (0, chai_1.expect)(called).to.be.true;
89
+ called = false;
90
+ emitter.emit('tobi');
91
+ (0, chai_1.expect)(called).to.be.false;
92
+ });
93
+ });
94
+ describe('.off(event)', function () {
95
+ it('should remove all listeners for an event', function () {
96
+ var emitter = new event_emitter_1.Emitter();
97
+ var calls = [];
98
+ function one() {
99
+ calls.push('one');
100
+ }
101
+ function two() {
102
+ calls.push('two');
103
+ }
104
+ emitter.on('foo', one);
105
+ emitter.on('foo', two);
106
+ emitter.off('foo');
107
+ emitter.emit('foo');
108
+ emitter.emit('foo');
109
+ (0, chai_1.expect)(calls).eql([]);
110
+ });
111
+ it('should remove event array to avoid memory leak', function () {
112
+ var emitter = new event_emitter_1.Emitter();
113
+ var calls = [];
114
+ function cb() { }
115
+ emitter.on('foo', cb);
116
+ emitter.off('foo', cb);
117
+ (0, chai_1.expect)(emitter._callbacks).not.to.have.property('$foo');
118
+ });
119
+ it('should only remove the event array when the last subscriber unsubscribes', function () {
120
+ var emitter = new event_emitter_1.Emitter();
121
+ var calls = [];
122
+ function cb1() { }
123
+ function cb2() { }
124
+ emitter.on('foo', cb1);
125
+ emitter.on('foo', cb2);
126
+ emitter.off('foo', cb1);
127
+ (0, chai_1.expect)(emitter._callbacks).to.have.property('$foo');
128
+ });
129
+ });
130
+ describe('.off()', function () {
131
+ it('should remove all listeners', function () {
132
+ var emitter = new event_emitter_1.Emitter();
133
+ var calls = [];
134
+ function one() {
135
+ calls.push('one');
136
+ }
137
+ function two() {
138
+ calls.push('two');
139
+ }
140
+ emitter.on('foo', one);
141
+ emitter.on('bar', two);
142
+ emitter.emit('foo');
143
+ emitter.emit('bar');
144
+ emitter.off();
145
+ emitter.emit('foo');
146
+ emitter.emit('bar');
147
+ (0, chai_1.expect)(calls).eql(['one', 'two']);
148
+ });
149
+ });
150
+ describe('.listeners(event)', function () {
151
+ describe('when handlers are present', function () {
152
+ it('should return an array of callbacks', function () {
153
+ var emitter = new event_emitter_1.Emitter();
154
+ function foo() { }
155
+ emitter.on('foo', foo);
156
+ (0, chai_1.expect)(emitter.listeners('foo')).to.eql([foo]);
157
+ });
158
+ });
159
+ describe('when no handlers are present', function () {
160
+ it('should return an empty array', function () {
161
+ var emitter = new event_emitter_1.Emitter();
162
+ (0, chai_1.expect)(emitter.listeners('foo')).to.eql([]);
163
+ });
164
+ });
165
+ });
166
+ describe('.hasListeners(event)', function () {
167
+ describe('when handlers are present', function () {
168
+ it('should return true', function () {
169
+ var emitter = new event_emitter_1.Emitter();
170
+ emitter.on('foo', function () { });
171
+ (0, chai_1.expect)(emitter.hasListeners('foo')).to.be.true;
172
+ });
173
+ });
174
+ describe('when no handlers are present', function () {
175
+ it('should return false', function () {
176
+ var emitter = new event_emitter_1.Emitter();
177
+ (0, chai_1.expect)(emitter.hasListeners('foo')).to.be.false;
178
+ });
179
+ });
180
+ });
181
+ });
182
+ //# sourceMappingURL=event-emitter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-emitter.spec.js","sourceRoot":"","sources":["../../test/event-emitter.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { Emitter } from '../../src/utils/event-emitter';
2
+ import Channel from '../../src/channels/channel';
3
+ export declare function toConnect(emitter: Emitter): Promise<unknown>;
4
+ export declare function awaitSuccessfulSubscribe(channel: Channel): Promise<unknown>;
5
+ export declare function awaitFailedSubscribe(channel: Channel): Promise<unknown>;
6
+ export declare function awaitDisconnected(channel: Channel): Promise<unknown>;
7
+ export declare function awaitEvent(channel: Channel, event: string): Promise<any[]>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.awaitEvent = exports.awaitDisconnected = exports.awaitFailedSubscribe = exports.awaitSuccessfulSubscribe = exports.toConnect = void 0;
4
+ function toConnect(emitter) {
5
+ return new Promise(function (resolve) { return emitter.on('open', resolve); });
6
+ }
7
+ exports.toConnect = toConnect;
8
+ function awaitSuccessfulSubscribe(channel) {
9
+ return new Promise(function (resolve) {
10
+ return channel.on('@duplexer:subscription_succeeded', resolve);
11
+ });
12
+ }
13
+ exports.awaitSuccessfulSubscribe = awaitSuccessfulSubscribe;
14
+ function awaitFailedSubscribe(channel) {
15
+ return new Promise(function (resolve) {
16
+ return channel.on('@duplexer:subscription_failed', resolve);
17
+ });
18
+ }
19
+ exports.awaitFailedSubscribe = awaitFailedSubscribe;
20
+ function awaitDisconnected(channel) {
21
+ return new Promise(function (resolve) {
22
+ return channel.on('@duplexer:disconnected', resolve);
23
+ });
24
+ }
25
+ exports.awaitDisconnected = awaitDisconnected;
26
+ function awaitEvent(channel, event) {
27
+ return new Promise(function (resolve) {
28
+ return channel.on(event, function () {
29
+ var args = [];
30
+ for (var _i = 0; _i < arguments.length; _i++) {
31
+ args[_i] = arguments[_i];
32
+ }
33
+ return resolve(args);
34
+ });
35
+ });
36
+ }
37
+ exports.awaitEvent = awaitEvent;
38
+ //# sourceMappingURL=as-promised.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"as-promised.js","sourceRoot":"","sources":["../../../test/helpers/as-promised.ts"],"names":[],"mappings":";;;AAGA,SAAgB,SAAS,CAAC,OAAgB;IACxC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,EAA3B,CAA2B,CAAC,CAAC;AAC/D,CAAC;AAFD,8BAEC;AAED,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACzB,OAAA,OAAO,CAAC,EAAE,CAAC,kCAAkC,EAAE,OAAO,CAAC;IAAvD,CAAuD,CACxD,CAAC;AACJ,CAAC;AAJD,4DAIC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACzB,OAAA,OAAO,CAAC,EAAE,CAAC,+BAA+B,EAAE,OAAO,CAAC;IAApD,CAAoD,CACrD,CAAC;AACJ,CAAC;AAJD,oDAIC;AAED,SAAgB,iBAAiB,CAAC,OAAgB;IAChD,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO;QACzB,OAAA,OAAO,CAAC,EAAE,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAA7C,CAA6C,CAC9C,CAAC;AACJ,CAAC;AAJD,8CAIC;AAED,SAAgB,UAAU,CAAC,OAAgB,EAAE,KAAa;IACxD,OAAO,IAAI,OAAO,CAAQ,UAAC,OAAO;QAChC,OAAA,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;YAAC,cAAc;iBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;gBAAd,yBAAc;;YAAK,OAAA,OAAO,CAAC,IAAI,CAAC;QAAb,CAAa,CAAC;IAApD,CAAoD,CACrD,CAAC;AACJ,CAAC;AAJD,gCAIC"}
@@ -0,0 +1,8 @@
1
+ import { Emitter } from '../../src/utils/event-emitter';
2
+ export declare function cleanEmitter(emitter: Emitter): void;
3
+ export declare function expectReceivePacket(emitter: Emitter, packet: any): void;
4
+ export declare function expectToNotEmitEvents(emitter: Emitter): void;
5
+ export declare function expectConnectionIsOpenOnce(emitter: Emitter): void;
6
+ export declare function expectConnectionIsClosed(emitter: Emitter): void;
7
+ export declare function expectConnectError(emitter: Emitter): void;
8
+ export declare function expectNoConnectError(emitter: Emitter): void;
@@ -0,0 +1,43 @@
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.expectNoConnectError = exports.expectConnectError = exports.expectConnectionIsClosed = exports.expectConnectionIsOpenOnce = exports.expectToNotEmitEvents = exports.expectReceivePacket = exports.cleanEmitter = void 0;
7
+ var chai_1 = require("chai");
8
+ var sinon_1 = __importDefault(require("sinon"));
9
+ function cleanEmitter(emitter) {
10
+ emitter.emit.resetHistory();
11
+ }
12
+ exports.cleanEmitter = cleanEmitter;
13
+ function expectReceivePacket(emitter, packet) {
14
+ (0, chai_1.expect)(emitter.emit).to.have.been.calledWith('message', packet);
15
+ }
16
+ exports.expectReceivePacket = expectReceivePacket;
17
+ function expectToNotEmitEvents(emitter) {
18
+ // eslint-disable-next-line
19
+ (0, chai_1.expect)(emitter.emit).to.not.have.been.called;
20
+ }
21
+ exports.expectToNotEmitEvents = expectToNotEmitEvents;
22
+ function expectConnectionIsOpen(emitter) {
23
+ (0, chai_1.expect)(emitter.emit.lastCall).to.have.been.calledWith('open', sinon_1.default.match.has('type', 'connection_established'));
24
+ }
25
+ function expectConnectionIsOpenOnce(emitter) {
26
+ // eslint-disable-next-line
27
+ (0, chai_1.expect)(emitter.emit).to.have.been.calledOnce;
28
+ expectConnectionIsOpen(emitter);
29
+ }
30
+ exports.expectConnectionIsOpenOnce = expectConnectionIsOpenOnce;
31
+ function expectConnectionIsClosed(emitter) {
32
+ (0, chai_1.expect)(emitter.emit.lastCall).to.have.been.calledWith('close');
33
+ }
34
+ exports.expectConnectionIsClosed = expectConnectionIsClosed;
35
+ function expectConnectError(emitter) {
36
+ (0, chai_1.expect)(emitter.emit.lastCall).to.have.been.calledWith('connect_error', sinon_1.default.match.object);
37
+ }
38
+ exports.expectConnectError = expectConnectError;
39
+ function expectNoConnectError(emitter) {
40
+ (0, chai_1.expect)(emitter.emit).to.not.have.been.calledWith('connect_error');
41
+ }
42
+ exports.expectNoConnectError = expectNoConnectError;
43
+ //# sourceMappingURL=assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../test/helpers/assertions.ts"],"names":[],"mappings":";;;;;;AAAA,6BAA8B;AAC9B,gDAA0B;AAG1B,SAAgB,YAAY,CAAC,OAAgB;IAC1C,OAAO,CAAC,IAAuB,CAAC,YAAY,EAAE,CAAC;AAClD,CAAC;AAFD,oCAEC;AAED,SAAgB,mBAAmB,CAAC,OAAgB,EAAE,MAAW;IAC/D,IAAA,aAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;AAClE,CAAC;AAFD,kDAEC;AAED,SAAgB,qBAAqB,CAAC,OAAgB;IACpD,2BAA2B;IAC3B,IAAA,aAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;AAC/C,CAAC;AAHD,sDAGC;AAED,SAAS,sBAAsB,CAAC,OAAgB;IAC9C,IAAA,aAAM,EAAE,OAAO,CAAC,IAAuB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CACvE,MAAM,EACN,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAClD,CAAC;AACJ,CAAC;AAED,SAAgB,0BAA0B,CAAC,OAAgB;IACzD,2BAA2B;IAC3B,IAAA,aAAM,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;IAC7C,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAJD,gEAIC;AAED,SAAgB,wBAAwB,CAAC,OAAgB;IACvD,IAAA,aAAM,EAAE,OAAO,CAAC,IAAuB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CACvE,OAAO,CACR,CAAC;AACJ,CAAC;AAJD,4DAIC;AAED,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,IAAA,aAAM,EAAE,OAAO,CAAC,IAAuB,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CACvE,eAAe,EACf,eAAK,CAAC,KAAK,CAAC,MAAM,CACnB,CAAC;AACJ,CAAC;AALD,gDAKC;AAED,SAAgB,oBAAoB,CAAC,OAAgB;IACnD,IAAA,aAAM,EAAC,OAAO,CAAC,IAAsB,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAChE,eAAe,CAChB,CAAC;AACJ,CAAC;AAJD,oDAIC"}
@@ -0,0 +1,10 @@
1
+ import { WixHttpTestkit } from '@wix/wix-http-testkit';
2
+ export interface AuthServerTestkit extends WixHttpTestkit {
3
+ setOnAuthRequest(onAuthRequest: () => boolean): void;
4
+ onAuthRequest(): boolean;
5
+ }
6
+ export declare function factory(opts: DuplexerClientParams): AuthServerTestkit;
7
+ export interface DuplexerClientParams {
8
+ apiKey: string;
9
+ apiSecret: string;
10
+ }
@@ -0,0 +1,61 @@
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.factory = void 0;
7
+ var body_parser_1 = __importDefault(require("body-parser"));
8
+ var cors_1 = __importDefault(require("cors"));
9
+ var wix_http_testkit_1 = require("@wix/wix-http-testkit");
10
+ var wix_duplexer_client_node_1 = require("@wix/wix-duplexer-client-node");
11
+ function factory(opts) {
12
+ var testkit = (0, wix_http_testkit_1.server)({ port: 3300 });
13
+ withAuthServerMethods(testkit);
14
+ asAuthServer(testkit, opts);
15
+ return testkit;
16
+ }
17
+ exports.factory = factory;
18
+ function withAuthServerMethods(testkit) {
19
+ testkit.setOnAuthRequest = function (onAuthRequest) {
20
+ testkit.onAuthRequest = onAuthRequest;
21
+ };
22
+ }
23
+ function asAuthServer(testkit, opts) {
24
+ var server = testkit.getApp();
25
+ var duplexerClient = wix_duplexer_client_node_1.DuplexerClient.asSecretBasedClient()
26
+ .withKey(opts.apiKey)
27
+ .withSecret(opts.apiSecret)
28
+ .build();
29
+ server.use((0, cors_1.default)({ credentials: true }));
30
+ server.use(body_parser_1.default.json());
31
+ server.post('/auth', function (req, res) {
32
+ var _a = req.body, sessionId = _a.sessionId, channelName = _a.channelName;
33
+ if (testkit.onAuthRequest() && verifyChannel(req)) {
34
+ var auth = duplexerClient.signSubscriptionToken(sessionId, channelName);
35
+ res.send(auth);
36
+ }
37
+ else {
38
+ return res.status(500).send('Failed!');
39
+ }
40
+ });
41
+ server.post('/auth-with-write-permissions', function (req, res) {
42
+ var _a = req.body, sessionId = _a.sessionId, channelName = _a.channelName;
43
+ var user = typeof req.query.userInfo === 'string'
44
+ ? { info: JSON.parse(req.query.userInfo) }
45
+ : undefined;
46
+ var auth = duplexerClient.signSubscriptionToken(sessionId, channelName, {
47
+ permissions: wix_duplexer_client_node_1.SubscriptionPermissions.RW,
48
+ user: user,
49
+ });
50
+ res.send(auth);
51
+ });
52
+ }
53
+ function verifyChannel(req) {
54
+ var _a = req.body, sessionId = _a.sessionId, channelName = _a.channelName;
55
+ return (['@private-channel', '@presence-channel'].indexOf(channelName) >= 0 &&
56
+ req.body.custom &&
57
+ req.body.custom.mustBeAttachedProperty &&
58
+ req.headers['must-be-attached-header'] &&
59
+ sessionId.length >= 20);
60
+ }
61
+ //# sourceMappingURL=auth-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-server.js","sourceRoot":"","sources":["../../../test/helpers/auth-server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import Environment from '../../src/environments/core/environment';
2
+ export default function anHttpPollingEnvironment(url: string, v?: string): Environment;
@@ -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
+ var in_memory_network_1 = __importDefault(require("./in-memory-network"));
7
+ var environment_1 = __importDefault(require("../../src/environments/core/environment"));
8
+ var http_polling_1 = __importDefault(require("../../src/transport/http-polling"));
9
+ var transports_manager_1 = __importDefault(require("../../src/transport/transports-manager"));
10
+ var strategy_builder_1 = __importDefault(require("../../src/strategies/strategy-builder"));
11
+ function anHttpPollingEnvironment(url, v) {
12
+ if (v === void 0) { v = '1'; }
13
+ var network = new in_memory_network_1.default();
14
+ var httpPolling = new http_polling_1.default(url);
15
+ var httpPollingStrategy = (0, strategy_builder_1.default)(httpPolling).build();
16
+ var transportsManager = new transports_manager_1.default([httpPollingStrategy]);
17
+ return new environment_1.default({ network: network, transportsManager: transportsManager });
18
+ }
19
+ exports.default = anHttpPollingEnvironment;
20
+ //# sourceMappingURL=http-polling-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-polling-environment.js","sourceRoot":"","sources":["../../../test/helpers/http-polling-environment.ts"],"names":[],"mappings":";;;;;AAAA,0EAAkD;AAClD,wFAAkE;AAClE,kFAA2D;AAC3D,8FAAuE;AACvE,2FAAqE;AAErE,SAAwB,wBAAwB,CAAC,GAAW,EAAE,CAAO;IAAP,kBAAA,EAAA,OAAO;IACnE,IAAM,OAAO,GAAG,IAAI,2BAAe,EAAE,CAAC;IACtC,IAAM,WAAW,GAAG,IAAI,sBAAW,CAAC,GAAG,CAAC,CAAC;IACzC,IAAM,mBAAmB,GAAG,IAAA,0BAAgB,EAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;IAClE,IAAM,iBAAiB,GAAG,IAAI,4BAAiB,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACvE,OAAO,IAAI,qBAAW,CAAC,EAAE,OAAO,SAAA,EAAE,iBAAiB,mBAAA,EAAE,CAAC,CAAC;AACzD,CAAC;AAND,2CAMC"}
@@ -0,0 +1,15 @@
1
+ import Environment from '../../src/environments/core/environment';
2
+ import InMemoryNetwork from './in-memory-network';
3
+ import InMemoryTransport from './in-memory-transport';
4
+ export default function anInMemoryEnvironment({ asyncTransporter, keepAliveTransporter, }?: InMemoryEnvironmentOpts): {
5
+ environment: Environment;
6
+ network: InMemoryNetwork;
7
+ primaryTransport: InMemoryTransport;
8
+ primaryStrategy: import("../../src/strategies/strategy").default;
9
+ secondaryTransport: InMemoryTransport;
10
+ secondaryStrategy: import("../../src/strategies/strategy").default;
11
+ };
12
+ export interface InMemoryEnvironmentOpts {
13
+ asyncTransporter?: boolean;
14
+ keepAliveTransporter?: boolean;
15
+ }
@@ -0,0 +1,39 @@
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("../../src/environments/core/environment"));
7
+ var in_memory_network_1 = __importDefault(require("./in-memory-network"));
8
+ var in_memory_transport_1 = __importDefault(require("./in-memory-transport"));
9
+ var transports_manager_1 = __importDefault(require("../../src/transport/transports-manager"));
10
+ var strategy_builder_1 = __importDefault(require("../../src/strategies/strategy-builder"));
11
+ function anInMemoryEnvironment(_a) {
12
+ var _b = _a === void 0 ? {} : _a, _c = _b.asyncTransporter, asyncTransporter = _c === void 0 ? false : _c, _d = _b.keepAliveTransporter, keepAliveTransporter = _d === void 0 ? true : _d;
13
+ var network = new in_memory_network_1.default();
14
+ var primaryTransport = new in_memory_transport_1.default({
15
+ asyncTransporter: asyncTransporter,
16
+ keepAliveTransporter: keepAliveTransporter,
17
+ id: 'primary',
18
+ });
19
+ var secondaryTransport = new in_memory_transport_1.default({
20
+ asyncTransporter: asyncTransporter,
21
+ keepAliveTransporter: keepAliveTransporter,
22
+ id: 'secondary',
23
+ });
24
+ var primaryStrategy = (0, strategy_builder_1.default)(primaryTransport).build();
25
+ var secondaryStrategy = (0, strategy_builder_1.default)(secondaryTransport)
26
+ .withBackoff(100)
27
+ .build();
28
+ var transportsManager = new transports_manager_1.default([primaryStrategy]);
29
+ return {
30
+ environment: new environment_1.default({ network: network, transportsManager: transportsManager }),
31
+ network: network,
32
+ primaryTransport: primaryTransport,
33
+ primaryStrategy: primaryStrategy,
34
+ secondaryTransport: secondaryTransport,
35
+ secondaryStrategy: secondaryStrategy,
36
+ };
37
+ }
38
+ exports.default = anInMemoryEnvironment;
39
+ //# sourceMappingURL=in-memory-environemnt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-environemnt.js","sourceRoot":"","sources":["../../../test/helpers/in-memory-environemnt.ts"],"names":[],"mappings":";;;;;AAAA,wFAAkE;AAClE,0EAAkD;AAClD,8EAAsD;AACtD,8FAAuE;AACvE,2FAAqE;AAErE,SAAwB,qBAAqB,CAAC,EAGf;QAHe,qBAGjB,EAAE,KAAA,EAF7B,wBAAwB,EAAxB,gBAAgB,mBAAG,KAAK,KAAA,EACxB,4BAA2B,EAA3B,oBAAoB,mBAAG,IAAI,KAAA;IAE3B,IAAM,OAAO,GAAG,IAAI,2BAAe,EAAE,CAAC;IACtC,IAAM,gBAAgB,GAAG,IAAI,6BAAiB,CAAC;QAC7C,gBAAgB,kBAAA;QAChB,oBAAoB,sBAAA;QACpB,EAAE,EAAE,SAAS;KACd,CAAC,CAAC;IACH,IAAM,kBAAkB,GAAG,IAAI,6BAAiB,CAAC;QAC/C,gBAAgB,kBAAA;QAChB,oBAAoB,sBAAA;QACpB,EAAE,EAAE,WAAW;KAChB,CAAC,CAAC;IACH,IAAM,eAAe,GAAG,IAAA,0BAAgB,EAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;IACnE,IAAM,iBAAiB,GAAG,IAAA,0BAAgB,EAAC,kBAAkB,CAAC;SAC3D,WAAW,CAAC,GAAG,CAAC;SAChB,KAAK,EAAE,CAAC;IACX,IAAM,iBAAiB,GAAG,IAAI,4BAAiB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;IAEnE,OAAO;QACL,WAAW,EAAE,IAAI,qBAAW,CAAC,EAAE,OAAO,SAAA,EAAE,iBAAiB,mBAAA,EAAE,CAAC;QAC5D,OAAO,SAAA;QACP,gBAAgB,kBAAA;QAChB,eAAe,iBAAA;QACf,kBAAkB,oBAAA;QAClB,iBAAiB,mBAAA;KAClB,CAAC;AACJ,CAAC;AA7BD,wCA6BC"}
@@ -0,0 +1,5 @@
1
+ import Network from '../../src/environments/core/network';
2
+ export default class InMemoryNetwork extends Network {
3
+ listenConnectionStateChanges(): void;
4
+ simulateOnlineConnection(): void;
5
+ }
@@ -0,0 +1,37 @@
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("../../src/environments/core/network"));
22
+ var InMemoryNetwork = /** @class */ (function (_super) {
23
+ __extends(InMemoryNetwork, _super);
24
+ function InMemoryNetwork() {
25
+ return _super !== null && _super.apply(this, arguments) || this;
26
+ }
27
+ InMemoryNetwork.prototype.listenConnectionStateChanges = function () {
28
+ var _this = this;
29
+ this.on('__simulateOnline', function () { return _this.connectionIsOnline(); });
30
+ };
31
+ InMemoryNetwork.prototype.simulateOnlineConnection = function () {
32
+ this.emit('__simulateOnline');
33
+ };
34
+ return InMemoryNetwork;
35
+ }(network_1.default));
36
+ exports.default = InMemoryNetwork;
37
+ //# sourceMappingURL=in-memory-network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"in-memory-network.js","sourceRoot":"","sources":["../../../test/helpers/in-memory-network.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,gFAA0D;AAE1D;IAA6C,mCAAO;IAApD;;IAQA,CAAC;IAPC,sDAA4B,GAA5B;QAAA,iBAEC;QADC,IAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,cAAM,OAAA,KAAI,CAAC,kBAAkB,EAAE,EAAzB,CAAyB,CAAC,CAAC;IAC/D,CAAC;IAED,kDAAwB,GAAxB;QACE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IACH,sBAAC;AAAD,CAAC,AARD,CAA6C,iBAAO,GAQnD"}