@customerio/cdp-analytics-core 0.0.1

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 (220) hide show
  1. package/LICENSE.MD +22 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/analytics/dispatch.js +54 -0
  4. package/dist/cjs/analytics/dispatch.js.map +1 -0
  5. package/dist/cjs/analytics/index.js +3 -0
  6. package/dist/cjs/analytics/index.js.map +1 -0
  7. package/dist/cjs/callback/index.js +46 -0
  8. package/dist/cjs/callback/index.js.map +1 -0
  9. package/dist/cjs/connection/index.js +16 -0
  10. package/dist/cjs/connection/index.js.map +1 -0
  11. package/dist/cjs/context/index.js +87 -0
  12. package/dist/cjs/context/index.js.map +1 -0
  13. package/dist/cjs/emitter/index.js +66 -0
  14. package/dist/cjs/emitter/index.js.map +1 -0
  15. package/dist/cjs/emitter/interface.js +3 -0
  16. package/dist/cjs/emitter/interface.js.map +1 -0
  17. package/dist/cjs/events/index.js +149 -0
  18. package/dist/cjs/events/index.js.map +1 -0
  19. package/dist/cjs/events/interfaces.js +3 -0
  20. package/dist/cjs/events/interfaces.js.map +1 -0
  21. package/dist/cjs/index.js +25 -0
  22. package/dist/cjs/index.js.map +1 -0
  23. package/dist/cjs/logger/index.js +62 -0
  24. package/dist/cjs/logger/index.js.map +1 -0
  25. package/dist/cjs/plugins/index.js +3 -0
  26. package/dist/cjs/plugins/index.js.map +1 -0
  27. package/dist/cjs/priority-queue/backoff.js +10 -0
  28. package/dist/cjs/priority-queue/backoff.js.map +1 -0
  29. package/dist/cjs/priority-queue/index.js +92 -0
  30. package/dist/cjs/priority-queue/index.js.map +1 -0
  31. package/dist/cjs/queue/delivery.js +69 -0
  32. package/dist/cjs/queue/delivery.js.map +1 -0
  33. package/dist/cjs/queue/event-queue.js +340 -0
  34. package/dist/cjs/queue/event-queue.js.map +1 -0
  35. package/dist/cjs/stats/index.js +96 -0
  36. package/dist/cjs/stats/index.js.map +1 -0
  37. package/dist/cjs/task/task-group.js +24 -0
  38. package/dist/cjs/task/task-group.js.map +1 -0
  39. package/dist/cjs/user/index.js +3 -0
  40. package/dist/cjs/user/index.js.map +1 -0
  41. package/dist/cjs/utils/bind-all.js +18 -0
  42. package/dist/cjs/utils/bind-all.js.map +1 -0
  43. package/dist/cjs/utils/environment.js +12 -0
  44. package/dist/cjs/utils/environment.js.map +1 -0
  45. package/dist/cjs/utils/get-global.js +21 -0
  46. package/dist/cjs/utils/get-global.js.map +1 -0
  47. package/dist/cjs/utils/group-by.js +28 -0
  48. package/dist/cjs/utils/group-by.js.map +1 -0
  49. package/dist/cjs/utils/has-properties.js +13 -0
  50. package/dist/cjs/utils/has-properties.js.map +1 -0
  51. package/dist/cjs/utils/is-plain-object.js +28 -0
  52. package/dist/cjs/utils/is-plain-object.js.map +1 -0
  53. package/dist/cjs/utils/is-thenable.js +15 -0
  54. package/dist/cjs/utils/is-thenable.js.map +1 -0
  55. package/dist/cjs/utils/p-while.js +25 -0
  56. package/dist/cjs/utils/p-while.js.map +1 -0
  57. package/dist/cjs/utils/pick.js +10 -0
  58. package/dist/cjs/utils/pick.js.map +1 -0
  59. package/dist/cjs/utils/ts-helpers.js +3 -0
  60. package/dist/cjs/utils/ts-helpers.js.map +1 -0
  61. package/dist/cjs/validation/assertions.js +41 -0
  62. package/dist/cjs/validation/assertions.js.map +1 -0
  63. package/dist/cjs/validation/helpers.js +26 -0
  64. package/dist/cjs/validation/helpers.js.map +1 -0
  65. package/dist/esm/analytics/dispatch.js +49 -0
  66. package/dist/esm/analytics/dispatch.js.map +1 -0
  67. package/dist/esm/analytics/index.js +2 -0
  68. package/dist/esm/analytics/index.js.map +1 -0
  69. package/dist/esm/callback/index.js +40 -0
  70. package/dist/esm/callback/index.js.map +1 -0
  71. package/dist/esm/connection/index.js +11 -0
  72. package/dist/esm/connection/index.js.map +1 -0
  73. package/dist/esm/context/index.js +84 -0
  74. package/dist/esm/context/index.js.map +1 -0
  75. package/dist/esm/emitter/index.js +63 -0
  76. package/dist/esm/emitter/index.js.map +1 -0
  77. package/dist/esm/emitter/interface.js +2 -0
  78. package/dist/esm/emitter/interface.js.map +1 -0
  79. package/dist/esm/events/index.js +146 -0
  80. package/dist/esm/events/index.js.map +1 -0
  81. package/dist/esm/events/interfaces.js +2 -0
  82. package/dist/esm/events/interfaces.js.map +1 -0
  83. package/dist/esm/index.js +19 -0
  84. package/dist/esm/index.js.map +1 -0
  85. package/dist/esm/logger/index.js +59 -0
  86. package/dist/esm/logger/index.js.map +1 -0
  87. package/dist/esm/plugins/index.js +2 -0
  88. package/dist/esm/plugins/index.js.map +1 -0
  89. package/dist/esm/priority-queue/backoff.js +6 -0
  90. package/dist/esm/priority-queue/backoff.js.map +1 -0
  91. package/dist/esm/priority-queue/index.js +89 -0
  92. package/dist/esm/priority-queue/index.js.map +1 -0
  93. package/dist/esm/queue/delivery.js +64 -0
  94. package/dist/esm/queue/delivery.js.map +1 -0
  95. package/dist/esm/queue/event-queue.js +337 -0
  96. package/dist/esm/queue/event-queue.js.map +1 -0
  97. package/dist/esm/stats/index.js +93 -0
  98. package/dist/esm/stats/index.js.map +1 -0
  99. package/dist/esm/task/task-group.js +20 -0
  100. package/dist/esm/task/task-group.js.map +1 -0
  101. package/dist/esm/user/index.js +2 -0
  102. package/dist/esm/user/index.js.map +1 -0
  103. package/dist/esm/utils/bind-all.js +14 -0
  104. package/dist/esm/utils/bind-all.js.map +1 -0
  105. package/dist/esm/utils/environment.js +7 -0
  106. package/dist/esm/utils/environment.js.map +1 -0
  107. package/dist/esm/utils/get-global.js +17 -0
  108. package/dist/esm/utils/get-global.js.map +1 -0
  109. package/dist/esm/utils/group-by.js +24 -0
  110. package/dist/esm/utils/group-by.js.map +1 -0
  111. package/dist/esm/utils/has-properties.js +9 -0
  112. package/dist/esm/utils/has-properties.js.map +1 -0
  113. package/dist/esm/utils/is-plain-object.js +24 -0
  114. package/dist/esm/utils/is-plain-object.js.map +1 -0
  115. package/dist/esm/utils/is-thenable.js +11 -0
  116. package/dist/esm/utils/is-thenable.js.map +1 -0
  117. package/dist/esm/utils/p-while.js +21 -0
  118. package/dist/esm/utils/p-while.js.map +1 -0
  119. package/dist/esm/utils/pick.js +6 -0
  120. package/dist/esm/utils/pick.js.map +1 -0
  121. package/dist/esm/utils/ts-helpers.js +2 -0
  122. package/dist/esm/utils/ts-helpers.js.map +1 -0
  123. package/dist/esm/validation/assertions.js +37 -0
  124. package/dist/esm/validation/assertions.js.map +1 -0
  125. package/dist/esm/validation/helpers.js +18 -0
  126. package/dist/esm/validation/helpers.js.map +1 -0
  127. package/dist/types/analytics/dispatch.d.ts +20 -0
  128. package/dist/types/analytics/dispatch.d.ts.map +1 -0
  129. package/dist/types/analytics/index.d.ts +12 -0
  130. package/dist/types/analytics/index.d.ts.map +1 -0
  131. package/dist/types/callback/index.d.ts +11 -0
  132. package/dist/types/callback/index.d.ts.map +1 -0
  133. package/dist/types/connection/index.d.ts +3 -0
  134. package/dist/types/connection/index.d.ts.map +1 -0
  135. package/dist/types/context/index.d.ts +44 -0
  136. package/dist/types/context/index.d.ts.map +1 -0
  137. package/dist/types/emitter/index.d.ts +25 -0
  138. package/dist/types/emitter/index.d.ts.map +1 -0
  139. package/dist/types/emitter/interface.d.ts +27 -0
  140. package/dist/types/emitter/interface.d.ts.map +1 -0
  141. package/dist/types/events/index.d.ts +27 -0
  142. package/dist/types/events/index.d.ts.map +1 -0
  143. package/dist/types/events/interfaces.d.ts +373 -0
  144. package/dist/types/events/interfaces.d.ts.map +1 -0
  145. package/dist/types/index.d.ts +19 -0
  146. package/dist/types/index.d.ts.map +1 -0
  147. package/dist/types/logger/index.d.ts +19 -0
  148. package/dist/types/logger/index.d.ts.map +1 -0
  149. package/dist/types/plugins/index.d.ts +25 -0
  150. package/dist/types/plugins/index.d.ts.map +1 -0
  151. package/dist/types/priority-queue/backoff.d.ts +13 -0
  152. package/dist/types/priority-queue/backoff.d.ts.map +1 -0
  153. package/dist/types/priority-queue/index.d.ts +25 -0
  154. package/dist/types/priority-queue/index.d.ts.map +1 -0
  155. package/dist/types/queue/delivery.d.ts +5 -0
  156. package/dist/types/queue/delivery.d.ts.map +1 -0
  157. package/dist/types/queue/event-queue.d.ts +43 -0
  158. package/dist/types/queue/event-queue.d.ts.map +1 -0
  159. package/dist/types/stats/index.d.ts +34 -0
  160. package/dist/types/stats/index.d.ts.map +1 -0
  161. package/dist/types/task/task-group.d.ts +6 -0
  162. package/dist/types/task/task-group.d.ts.map +1 -0
  163. package/dist/types/user/index.d.ts +6 -0
  164. package/dist/types/user/index.d.ts.map +1 -0
  165. package/dist/types/utils/bind-all.d.ts +4 -0
  166. package/dist/types/utils/bind-all.d.ts.map +1 -0
  167. package/dist/types/utils/environment.d.ts +3 -0
  168. package/dist/types/utils/environment.d.ts.map +1 -0
  169. package/dist/types/utils/get-global.d.ts +2 -0
  170. package/dist/types/utils/get-global.d.ts.map +1 -0
  171. package/dist/types/utils/group-by.d.ts +4 -0
  172. package/dist/types/utils/group-by.d.ts.map +1 -0
  173. package/dist/types/utils/has-properties.d.ts +4 -0
  174. package/dist/types/utils/has-properties.d.ts.map +1 -0
  175. package/dist/types/utils/is-plain-object.d.ts +2 -0
  176. package/dist/types/utils/is-plain-object.d.ts.map +1 -0
  177. package/dist/types/utils/is-thenable.d.ts +6 -0
  178. package/dist/types/utils/is-thenable.d.ts.map +1 -0
  179. package/dist/types/utils/p-while.d.ts +2 -0
  180. package/dist/types/utils/p-while.d.ts.map +1 -0
  181. package/dist/types/utils/pick.d.ts +2 -0
  182. package/dist/types/utils/pick.d.ts.map +1 -0
  183. package/dist/types/utils/ts-helpers.d.ts +13 -0
  184. package/dist/types/utils/ts-helpers.d.ts.map +1 -0
  185. package/dist/types/validation/assertions.d.ts +7 -0
  186. package/dist/types/validation/assertions.d.ts.map +1 -0
  187. package/dist/types/validation/helpers.d.ts +7 -0
  188. package/dist/types/validation/helpers.d.ts.map +1 -0
  189. package/package.json +39 -0
  190. package/src/analytics/dispatch.ts +58 -0
  191. package/src/analytics/index.ts +11 -0
  192. package/src/callback/index.ts +51 -0
  193. package/src/connection/index.ts +13 -0
  194. package/src/context/index.ts +123 -0
  195. package/src/emitter/index.ts +65 -0
  196. package/src/emitter/interface.ts +31 -0
  197. package/src/events/index.ts +280 -0
  198. package/src/events/interfaces.ts +447 -0
  199. package/src/index.ts +18 -0
  200. package/src/logger/index.ts +74 -0
  201. package/src/plugins/index.ts +43 -0
  202. package/src/priority-queue/backoff.ts +24 -0
  203. package/src/priority-queue/index.ts +103 -0
  204. package/src/queue/delivery.ts +73 -0
  205. package/src/queue/event-queue.ts +320 -0
  206. package/src/stats/index.ts +88 -0
  207. package/src/task/task-group.ts +31 -0
  208. package/src/user/index.ts +7 -0
  209. package/src/utils/bind-all.ts +19 -0
  210. package/src/utils/environment.ts +7 -0
  211. package/src/utils/get-global.ts +16 -0
  212. package/src/utils/group-by.ts +30 -0
  213. package/src/utils/has-properties.ts +7 -0
  214. package/src/utils/is-plain-object.ts +26 -0
  215. package/src/utils/is-thenable.ts +9 -0
  216. package/src/utils/p-while.ts +12 -0
  217. package/src/utils/pick.ts +8 -0
  218. package/src/utils/ts-helpers.ts +13 -0
  219. package/src/validation/assertions.ts +43 -0
  220. package/src/validation/helpers.ts +27 -0
package/LICENSE.MD ADDED
@@ -0,0 +1,22 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright © 2021 Segment
4
+ Copyright © 2023 Customer.io
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ of this software and associated documentation files (the "Software"), to deal
8
+ in the Software without restriction, including without limitation the rights
9
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ copies of the Software, and to permit persons to whom the Software is
11
+ furnished to do so, subject to the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be included in
14
+ all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ THE SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,3 @@
1
+ # Analytics Core
2
+
3
+ This package represents core 'shared' functionality that is shared by analytics packages. This is not designed to be used directly, but internal to analytics-node and analytics-browser.
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.dispatch = exports.getDelay = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var callback_1 = require("../callback");
6
+ /* The amount of time in ms to wait before invoking the callback. */
7
+ var getDelay = function (startTimeInEpochMS, timeoutInMS) {
8
+ var elapsedTime = Date.now() - startTimeInEpochMS;
9
+ // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.
10
+ return Math.max((timeoutInMS !== null && timeoutInMS !== void 0 ? timeoutInMS : 300) - elapsedTime, 0);
11
+ };
12
+ exports.getDelay = getDelay;
13
+ /**
14
+ * Push an event into the dispatch queue and invoke any callbacks.
15
+ *
16
+ * @param event - Event to enqueue.
17
+ * @param queue - Queue to dispatch against.
18
+ * @param emitter - This is typically an instance of "Analytics" -- used for metrics / progress information.
19
+ * @param options
20
+ */
21
+ function dispatch(ctx, queue, emitter, options) {
22
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
23
+ var startTime, dispatched;
24
+ return tslib_1.__generator(this, function (_a) {
25
+ switch (_a.label) {
26
+ case 0:
27
+ emitter.emit('dispatch_start', ctx);
28
+ startTime = Date.now();
29
+ if (!queue.isEmpty()) return [3 /*break*/, 2];
30
+ return [4 /*yield*/, queue.dispatchSingle(ctx)];
31
+ case 1:
32
+ dispatched = _a.sent();
33
+ return [3 /*break*/, 4];
34
+ case 2: return [4 /*yield*/, queue.dispatch(ctx)];
35
+ case 3:
36
+ dispatched = _a.sent();
37
+ _a.label = 4;
38
+ case 4:
39
+ if (!(options === null || options === void 0 ? void 0 : options.callback)) return [3 /*break*/, 6];
40
+ return [4 /*yield*/, (0, callback_1.invokeCallback)(dispatched, options.callback, (0, exports.getDelay)(startTime, options.timeout))];
41
+ case 5:
42
+ dispatched = _a.sent();
43
+ _a.label = 6;
44
+ case 6:
45
+ if (options === null || options === void 0 ? void 0 : options.debug) {
46
+ dispatched.flush();
47
+ }
48
+ return [2 /*return*/, dispatched];
49
+ }
50
+ });
51
+ });
52
+ }
53
+ exports.dispatch = dispatch;
54
+ //# sourceMappingURL=dispatch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.js","sourceRoot":"","sources":["../../../src/analytics/dispatch.ts"],"names":[],"mappings":";;;;AAGA,wCAA4C;AAS5C,oEAAoE;AAC7D,IAAM,QAAQ,GAAG,UAAC,kBAA0B,EAAE,WAAoB;IACvE,IAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAA;IACnD,yGAAyG;IACzG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,GAAG,CAAC,GAAG,WAAW,EAAE,CAAC,CAAC,CAAA;AACxD,CAAC,CAAA;AAJY,QAAA,QAAQ,YAIpB;AACD;;;;;;;GAOG;AACH,SAAsB,QAAQ,CAI5B,GAAQ,EACR,KAAS,EACT,OAAgB,EAChB,OAA8B;;;;;;oBAE9B,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,CAAA;oBAE7B,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;yBAExB,KAAK,CAAC,OAAO,EAAE,EAAf,wBAAe;oBACJ,qBAAM,KAAK,CAAC,cAAc,CAAC,GAAG,CAAC,EAAA;;oBAA5C,UAAU,GAAG,SAA+B,CAAA;;wBAE/B,qBAAM,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAA;;oBAAtC,UAAU,GAAG,SAAyB,CAAA;;;yBAGpC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAA,EAAjB,wBAAiB;oBACN,qBAAM,IAAA,yBAAc,EAC/B,UAAU,EACV,OAAO,CAAC,QAAQ,EAChB,IAAA,gBAAQ,EAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CACrC,EAAA;;oBAJD,UAAU,GAAG,SAIZ,CAAA;;;oBAEH,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,EAAE;wBAClB,UAAU,CAAC,KAAK,EAAE,CAAA;qBACnB;oBAED,sBAAO,UAAU,EAAA;;;;CAClB;AA/BD,4BA+BC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.invokeCallback = exports.sleep = exports.pTimeout = void 0;
4
+ function pTimeout(promise, timeout) {
5
+ return new Promise(function (resolve, reject) {
6
+ var timeoutId = setTimeout(function () {
7
+ reject(Error('Promise timed out'));
8
+ }, timeout);
9
+ promise
10
+ .then(function (val) {
11
+ clearTimeout(timeoutId);
12
+ return resolve(val);
13
+ })
14
+ .catch(reject);
15
+ });
16
+ }
17
+ exports.pTimeout = pTimeout;
18
+ function sleep(timeoutInMs) {
19
+ return new Promise(function (resolve) { return setTimeout(resolve, timeoutInMs); });
20
+ }
21
+ exports.sleep = sleep;
22
+ /**
23
+ * @param ctx
24
+ * @param callback - the function to invoke
25
+ * @param delay - aka "timeout". The amount of time in ms to wait before invoking the callback.
26
+ */
27
+ function invokeCallback(ctx, callback, delay) {
28
+ var cb = function () {
29
+ try {
30
+ return Promise.resolve(callback(ctx));
31
+ }
32
+ catch (err) {
33
+ return Promise.reject(err);
34
+ }
35
+ };
36
+ return (sleep(delay)
37
+ // pTimeout ensures that the callback can't cause the context to hang
38
+ .then(function () { return pTimeout(cb(), 1000); })
39
+ .catch(function (err) {
40
+ ctx === null || ctx === void 0 ? void 0 : ctx.log('warn', 'Callback Error', { error: err });
41
+ ctx === null || ctx === void 0 ? void 0 : ctx.stats.increment('callback_error');
42
+ })
43
+ .then(function () { return ctx; }));
44
+ }
45
+ exports.invokeCallback = invokeCallback;
46
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/callback/index.ts"],"names":[],"mappings":";;;AAGA,SAAgB,QAAQ,CAAI,OAAmB,EAAE,OAAe;IAC9D,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;QACjC,IAAM,SAAS,GAAG,UAAU,CAAC;YAC3B,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAA;QACpC,CAAC,EAAE,OAAO,CAAC,CAAA;QAEX,OAAO;aACJ,IAAI,CAAC,UAAC,GAAG;YACR,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAA;QACrB,CAAC,CAAC;aACD,KAAK,CAAC,MAAM,CAAC,CAAA;IAClB,CAAC,CAAC,CAAA;AACJ,CAAC;AAbD,4BAaC;AAED,SAAgB,KAAK,CAAC,WAAmB;IACvC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,UAAU,CAAC,OAAO,EAAE,WAAW,CAAC,EAAhC,CAAgC,CAAC,CAAA;AACnE,CAAC;AAFD,sBAEC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAC5B,GAAQ,EACR,QAAuB,EACvB,KAAa;IAEb,IAAM,EAAE,GAAG;QACT,IAAI;YACF,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;SACtC;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SAC3B;IACH,CAAC,CAAA;IAED,OAAO,CACL,KAAK,CAAC,KAAK,CAAC;QACV,qEAAqE;SACpE,IAAI,CAAC,cAAM,OAAA,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAApB,CAAoB,CAAC;SAChC,KAAK,CAAC,UAAC,GAAG;QACT,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;QAClD,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IACxC,CAAC,CAAC;SACD,IAAI,CAAC,cAAM,OAAA,GAAG,EAAH,CAAG,CAAC,CACnB,CAAA;AACH,CAAC;AAvBD,wCAuBC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isOffline = exports.isOnline = void 0;
4
+ var environment_1 = require("../utils/environment");
5
+ function isOnline() {
6
+ if ((0, environment_1.isBrowser)()) {
7
+ return window.navigator.onLine;
8
+ }
9
+ return true;
10
+ }
11
+ exports.isOnline = isOnline;
12
+ function isOffline() {
13
+ return !isOnline();
14
+ }
15
+ exports.isOffline = isOffline;
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/connection/index.ts"],"names":[],"mappings":";;;AAAA,oDAAgD;AAEhD,SAAgB,QAAQ;IACtB,IAAI,IAAA,uBAAS,GAAE,EAAE;QACf,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAA;KAC/B;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAND,4BAMC;AAED,SAAgB,SAAS;IACvB,OAAO,CAAC,QAAQ,EAAE,CAAA;AACpB,CAAC;AAFD,8BAEC"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoreContext = exports.ContextCancelation = void 0;
4
+ var uuid_1 = require("@lukeed/uuid");
5
+ var dset_1 = require("dset");
6
+ var logger_1 = require("../logger");
7
+ var stats_1 = require("../stats");
8
+ var ContextCancelation = /** @class */ (function () {
9
+ function ContextCancelation(options) {
10
+ var _a, _b, _c;
11
+ this.retry = (_a = options.retry) !== null && _a !== void 0 ? _a : true;
12
+ this.type = (_b = options.type) !== null && _b !== void 0 ? _b : 'plugin Error';
13
+ this.reason = (_c = options.reason) !== null && _c !== void 0 ? _c : '';
14
+ }
15
+ return ContextCancelation;
16
+ }());
17
+ exports.ContextCancelation = ContextCancelation;
18
+ var CoreContext = /** @class */ (function () {
19
+ function CoreContext(event, id, stats, logger) {
20
+ if (id === void 0) { id = (0, uuid_1.v4)(); }
21
+ if (stats === void 0) { stats = new stats_1.NullStats(); }
22
+ if (logger === void 0) { logger = new logger_1.CoreLogger(); }
23
+ this.attempts = 0;
24
+ this.event = event;
25
+ this._id = id;
26
+ this.logger = logger;
27
+ this.stats = stats;
28
+ }
29
+ CoreContext.system = function () {
30
+ // This should be overridden by the subclass to return an instance of the subclass.
31
+ };
32
+ CoreContext.prototype.isSame = function (other) {
33
+ return other.id === this.id;
34
+ };
35
+ CoreContext.prototype.cancel = function (error) {
36
+ if (error) {
37
+ throw error;
38
+ }
39
+ throw new ContextCancelation({ reason: 'Context Cancel' });
40
+ };
41
+ CoreContext.prototype.log = function (level, message, extras) {
42
+ this.logger.log(level, message, extras);
43
+ };
44
+ Object.defineProperty(CoreContext.prototype, "id", {
45
+ get: function () {
46
+ return this._id;
47
+ },
48
+ enumerable: false,
49
+ configurable: true
50
+ });
51
+ CoreContext.prototype.updateEvent = function (path, val) {
52
+ var _a;
53
+ // Don't allow integrations that are set to false to be overwritten with integration settings.
54
+ if (path.split('.')[0] === 'integrations') {
55
+ var integrationName = path.split('.')[1];
56
+ if (((_a = this.event.integrations) === null || _a === void 0 ? void 0 : _a[integrationName]) === false) {
57
+ return this.event;
58
+ }
59
+ }
60
+ (0, dset_1.dset)(this.event, path, val);
61
+ return this.event;
62
+ };
63
+ CoreContext.prototype.failedDelivery = function () {
64
+ return this._failedDelivery;
65
+ };
66
+ CoreContext.prototype.setFailedDelivery = function (options) {
67
+ this._failedDelivery = options;
68
+ };
69
+ CoreContext.prototype.logs = function () {
70
+ return this.logger.logs;
71
+ };
72
+ CoreContext.prototype.flush = function () {
73
+ this.logger.flush();
74
+ this.stats.flush();
75
+ };
76
+ CoreContext.prototype.toJSON = function () {
77
+ return {
78
+ id: this._id,
79
+ event: this.event,
80
+ logs: this.logger.logs,
81
+ metrics: this.stats.metrics,
82
+ };
83
+ };
84
+ return CoreContext;
85
+ }());
86
+ exports.CoreContext = CoreContext;
87
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":";;;AAEA,qCAAyC;AACzC,6BAA2B;AAC3B,oCAA4D;AAC5D,kCAA2D;AAmB3D;IAKE,4BAAY,OAA2B;;QACrC,IAAI,CAAC,KAAK,GAAG,MAAA,OAAO,CAAC,KAAK,mCAAI,IAAI,CAAA;QAClC,IAAI,CAAC,IAAI,GAAG,MAAA,OAAO,CAAC,IAAI,mCAAI,cAAc,CAAA;QAC1C,IAAI,CAAC,MAAM,GAAG,MAAA,OAAO,CAAC,MAAM,mCAAI,EAAE,CAAA;IACpC,CAAC;IACH,yBAAC;AAAD,CAAC,AAVD,IAUC;AAVY,gDAAkB;AAY/B;IAWE,qBACE,KAAY,EACZ,EAAW,EACX,KAAkC,EAClC,MAAyB;QAFzB,mBAAA,EAAA,SAAK,SAAI,GAAE;QACX,sBAAA,EAAA,YAAuB,iBAAS,EAAE;QAClC,uBAAA,EAAA,aAAa,mBAAU,EAAE;QAT3B,aAAQ,GAAG,CAAC,CAAA;QAWV,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IACpB,CAAC;IAEM,kBAAM,GAAb;QACE,mFAAmF;IACrF,CAAC;IAED,4BAAM,GAAN,UAAO,KAAkB;QACvB,OAAO,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAA;IAC7B,CAAC;IAED,4BAAM,GAAN,UAAO,KAAkC;QACvC,IAAI,KAAK,EAAE;YACT,MAAM,KAAK,CAAA;SACZ;QAED,MAAM,IAAI,kBAAkB,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAA;IAC5D,CAAC;IAED,yBAAG,GAAH,UAAI,KAAe,EAAE,OAAe,EAAE,MAAe;QACnD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,sBAAI,2BAAE;aAAN;YACE,OAAO,IAAI,CAAC,GAAG,CAAA;QACjB,CAAC;;;OAAA;IAED,iCAAW,GAAX,UAAY,IAAY,EAAE,GAAY;;QACpC,8FAA8F;QAC9F,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,EAAE;YACzC,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAE1C,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,0CAAG,eAAe,CAAC,MAAK,KAAK,EAAE;gBACxD,OAAO,IAAI,CAAC,KAAK,CAAA;aAClB;SACF;QAED,IAAA,WAAI,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,oCAAc,GAAd;QACE,OAAO,IAAI,CAAC,eAAe,CAAA;IAC7B,CAAC;IAED,uCAAiB,GAAjB,UAAkB,OAA8B;QAC9C,IAAI,CAAC,eAAe,GAAG,OAAO,CAAA;IAChC,CAAC;IAED,0BAAI,GAAJ;QACE,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,2BAAK,GAAL;QACE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAA;QACnB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAED,4BAAM,GAAN;QACE,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;SAC5B,CAAA;IACH,CAAC;IACH,kBAAC;AAAD,CAAC,AAtFD,IAsFC;AAtFqB,kCAAW"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Emitter = void 0;
4
+ /**
5
+ * Event Emitter that takes the expected contract as a generic
6
+ * @example
7
+ * ```ts
8
+ * type Contract = {
9
+ * delivery_success: [DeliverySuccessResponse, Metrics],
10
+ * delivery_failure: [DeliveryError]
11
+ * }
12
+ * new Emitter<Contract>()
13
+ * .on('delivery_success', (res, metrics) => ...)
14
+ * .on('delivery_failure', (err) => ...)
15
+ * ```
16
+ */
17
+ var Emitter = /** @class */ (function () {
18
+ function Emitter() {
19
+ this.callbacks = {};
20
+ }
21
+ Emitter.prototype.on = function (event, callback) {
22
+ if (!this.callbacks[event]) {
23
+ this.callbacks[event] = [callback];
24
+ }
25
+ else {
26
+ this.callbacks[event].push(callback);
27
+ }
28
+ return this;
29
+ };
30
+ Emitter.prototype.once = function (event, callback) {
31
+ var _this = this;
32
+ var on = function () {
33
+ var args = [];
34
+ for (var _i = 0; _i < arguments.length; _i++) {
35
+ args[_i] = arguments[_i];
36
+ }
37
+ _this.off(event, on);
38
+ callback.apply(_this, args);
39
+ };
40
+ this.on(event, on);
41
+ return this;
42
+ };
43
+ Emitter.prototype.off = function (event, callback) {
44
+ var _a;
45
+ var fns = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];
46
+ var without = fns.filter(function (fn) { return fn !== callback; });
47
+ this.callbacks[event] = without;
48
+ return this;
49
+ };
50
+ Emitter.prototype.emit = function (event) {
51
+ var _this = this;
52
+ var _a;
53
+ var args = [];
54
+ for (var _i = 1; _i < arguments.length; _i++) {
55
+ args[_i - 1] = arguments[_i];
56
+ }
57
+ var callbacks = (_a = this.callbacks[event]) !== null && _a !== void 0 ? _a : [];
58
+ callbacks.forEach(function (callback) {
59
+ callback.apply(_this, args);
60
+ });
61
+ return this;
62
+ };
63
+ return Emitter;
64
+ }());
65
+ exports.Emitter = Emitter;
66
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/emitter/index.ts"],"names":[],"mappings":";;;AAIA;;;;;;;;;;;;GAYG;AACH;IAAA;QACU,cAAS,GAAsB,EAAE,CAAA;IA8C3C,CAAC;IA7CC,oBAAE,GAAF,UACE,KAAgB,EAChB,QAAgD;QAEhD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAwB,CAAA;SAC1D;aAAM;YACL,IAAI,CAAC,SAAS,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;SACtC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED,sBAAI,GAAJ,UACE,KAAgB,EAChB,QAAgD;QAFlD,iBAWC;QAPC,IAAM,EAAE,GAAG;YAAC,cAA4B;iBAA5B,UAA4B,EAA5B,qBAA4B,EAA5B,IAA4B;gBAA5B,yBAA4B;;YACtC,KAAI,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;YACnB,QAAQ,CAAC,KAAK,CAAC,KAAI,EAAE,IAAI,CAAC,CAAA;QAC5B,CAAC,CAAA;QAED,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;QAClB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,qBAAG,GAAH,UACE,KAAgB,EAChB,QAAgD;;QAEhD,IAAM,GAAG,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAA;QACvC,IAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,KAAK,QAAQ,EAAf,CAAe,CAAwB,CAAA;QAC1E,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,OAAO,CAAA;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,sBAAI,GAAJ,UACE,KAAgB;QADlB,iBASC;;QAPC,cAA4B;aAA5B,UAA4B,EAA5B,qBAA4B,EAA5B,IAA4B;YAA5B,6BAA4B;;QAE5B,IAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAA;QAC7C,SAAS,CAAC,OAAO,CAAC,UAAC,QAAQ;YACzB,QAAQ,CAAC,KAAK,CAAC,KAAI,EAAE,IAAI,CAAC,CAAA;QAC5B,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;IACH,cAAC;AAAD,CAAC,AA/CD,IA+CC;AA/CY,0BAAO"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/emitter/interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.EventFactory = void 0;
4
+ var tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./interfaces"), exports);
6
+ var dset_1 = require("dset");
7
+ var pick_1 = require("../utils/pick");
8
+ var assertions_1 = require("../validation/assertions");
9
+ var EventFactory = /** @class */ (function () {
10
+ function EventFactory(settings) {
11
+ this.user = settings.user;
12
+ this.createMessageId = settings.createMessageId;
13
+ }
14
+ EventFactory.prototype.track = function (event, properties, options, globalIntegrations) {
15
+ return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { event: event, type: 'track', properties: properties !== null && properties !== void 0 ? properties : {}, options: tslib_1.__assign({}, options), integrations: tslib_1.__assign({}, globalIntegrations) }));
16
+ };
17
+ EventFactory.prototype.page = function (category, page, properties, options, globalIntegrations) {
18
+ var _a;
19
+ var event = {
20
+ type: 'page',
21
+ properties: tslib_1.__assign({}, properties),
22
+ options: tslib_1.__assign({}, options),
23
+ integrations: tslib_1.__assign({}, globalIntegrations),
24
+ };
25
+ if (category !== null) {
26
+ event.category = category;
27
+ event.properties = (_a = event.properties) !== null && _a !== void 0 ? _a : {};
28
+ event.properties.category = category;
29
+ }
30
+ if (page !== null) {
31
+ event.name = page;
32
+ }
33
+ return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), event));
34
+ };
35
+ EventFactory.prototype.screen = function (category, screen, properties, options, globalIntegrations) {
36
+ var event = {
37
+ type: 'screen',
38
+ properties: tslib_1.__assign({}, properties),
39
+ options: tslib_1.__assign({}, options),
40
+ integrations: tslib_1.__assign({}, globalIntegrations),
41
+ };
42
+ if (category !== null) {
43
+ event.category = category;
44
+ }
45
+ if (screen !== null) {
46
+ event.name = screen;
47
+ }
48
+ return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), event));
49
+ };
50
+ EventFactory.prototype.identify = function (userId, traits, options, globalIntegrations) {
51
+ return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { type: 'identify', userId: userId, traits: traits !== null && traits !== void 0 ? traits : {}, options: tslib_1.__assign({}, options), integrations: globalIntegrations }));
52
+ };
53
+ EventFactory.prototype.group = function (groupId, traits, options, globalIntegrations) {
54
+ return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), { type: 'group', traits: traits !== null && traits !== void 0 ? traits : {}, options: tslib_1.__assign({}, options), integrations: tslib_1.__assign({}, globalIntegrations), //
55
+ groupId: groupId }));
56
+ };
57
+ EventFactory.prototype.alias = function (to, from, // TODO: can we make this undefined?
58
+ options, globalIntegrations) {
59
+ var base = {
60
+ userId: to,
61
+ type: 'alias',
62
+ options: tslib_1.__assign({}, options),
63
+ integrations: tslib_1.__assign({}, globalIntegrations),
64
+ };
65
+ if (from !== null) {
66
+ base.previousId = from;
67
+ }
68
+ if (to === undefined) {
69
+ return this.normalize(tslib_1.__assign(tslib_1.__assign({}, base), this.baseEvent()));
70
+ }
71
+ return this.normalize(tslib_1.__assign(tslib_1.__assign({}, this.baseEvent()), base));
72
+ };
73
+ EventFactory.prototype.baseEvent = function () {
74
+ var base = {
75
+ integrations: {},
76
+ options: {},
77
+ };
78
+ if (!this.user)
79
+ return base;
80
+ var user = this.user;
81
+ if (user.id()) {
82
+ base.userId = user.id();
83
+ }
84
+ if (user.anonymousId()) {
85
+ base.anonymousId = user.anonymousId();
86
+ }
87
+ return base;
88
+ };
89
+ /**
90
+ * Builds the context part of an event based on "foreign" keys that
91
+ * are provided in the `Options` parameter for an Event
92
+ */
93
+ EventFactory.prototype.context = function (options) {
94
+ var _a;
95
+ /**
96
+ * If the event options are known keys from this list, we move them to the top level of the event.
97
+ * Any other options are moved to context.
98
+ */
99
+ var eventOverrideKeys = [
100
+ 'userId',
101
+ 'anonymousId',
102
+ 'timestamp',
103
+ ];
104
+ delete options['integrations'];
105
+ var providedOptionsKeys = Object.keys(options);
106
+ var context = (_a = options.context) !== null && _a !== void 0 ? _a : {};
107
+ var eventOverrides = {};
108
+ providedOptionsKeys.forEach(function (key) {
109
+ if (key === 'context') {
110
+ return;
111
+ }
112
+ if (eventOverrideKeys.includes(key)) {
113
+ (0, dset_1.dset)(eventOverrides, key, options[key]);
114
+ }
115
+ else {
116
+ (0, dset_1.dset)(context, key, options[key]);
117
+ }
118
+ });
119
+ return [context, eventOverrides];
120
+ };
121
+ EventFactory.prototype.normalize = function (event) {
122
+ var _a, _b;
123
+ var integrationBooleans = Object.keys((_a = event.integrations) !== null && _a !== void 0 ? _a : {}).reduce(function (integrationNames, name) {
124
+ var _a;
125
+ var _b;
126
+ return tslib_1.__assign(tslib_1.__assign({}, integrationNames), (_a = {}, _a[name] = Boolean((_b = event.integrations) === null || _b === void 0 ? void 0 : _b[name]), _a));
127
+ }, {});
128
+ // filter out any undefined options
129
+ event.options = (0, pick_1.pickBy)(event.options || {}, function (_, value) {
130
+ return value !== undefined;
131
+ });
132
+ // This is pretty trippy, but here's what's going on:
133
+ // - a) We don't pass initial integration options as part of the event, only if they're true or false
134
+ // - b) We do accept per integration overrides (like integrations.Amplitude.sessionId) at the event level
135
+ // Hence the need to convert base integration options to booleans, but maintain per event integration overrides
136
+ var allIntegrations = tslib_1.__assign(tslib_1.__assign({}, integrationBooleans), (_b = event.options) === null || _b === void 0 ? void 0 : _b.integrations);
137
+ var _c = event.options
138
+ ? this.context(event.options)
139
+ : [], context = _c[0], overrides = _c[1];
140
+ var options = event.options, rest = tslib_1.__rest(event, ["options"]);
141
+ var body = tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({ timestamp: new Date() }, rest), { integrations: allIntegrations, context: context }), overrides);
142
+ var evt = tslib_1.__assign(tslib_1.__assign({}, body), { messageId: this.createMessageId() });
143
+ (0, assertions_1.validateEvent)(evt);
144
+ return evt;
145
+ };
146
+ return EventFactory;
147
+ }());
148
+ exports.EventFactory = EventFactory;
149
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/events/index.ts"],"names":[],"mappings":";;;;AAAA,uDAA4B;AAC5B,6BAA2B;AAW3B,sCAAsC;AACtC,uDAAwD;AAQxD;IAIE,sBAAY,QAA8B;QACxC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;QACzB,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAA;IACjD,CAAC;IAED,4BAAK,GAAL,UACE,KAAa,EACb,UAA4B,EAC5B,OAAqB,EACrB,kBAAiC;QAEjC,OAAO,IAAI,CAAC,SAAS,uCAChB,IAAI,CAAC,SAAS,EAAE,KACnB,KAAK,OAAA,EACL,IAAI,EAAE,OAAO,EACb,UAAU,EAAE,UAAU,aAAV,UAAU,cAAV,UAAU,GAAI,EAAE,EAC5B,OAAO,uBAAO,OAAO,GACrB,YAAY,uBAAO,kBAAkB,KACrC,CAAA;IACJ,CAAC;IAED,2BAAI,GAAJ,UACE,QAAuB,EACvB,IAAmB,EACnB,UAA4B,EAC5B,OAAqB,EACrB,kBAAiC;;QAEjC,IAAM,KAAK,GAAwB;YACjC,IAAI,EAAE,MAAM;YACZ,UAAU,uBAAO,UAAU,CAAE;YAC7B,OAAO,uBAAO,OAAO,CAAE;YACvB,YAAY,uBAAO,kBAAkB,CAAE;SACxC,CAAA;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;YACzB,KAAK,CAAC,UAAU,GAAG,MAAA,KAAK,CAAC,UAAU,mCAAI,EAAE,CAAA;YACzC,KAAK,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;SACrC;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;SAClB;QAED,OAAO,IAAI,CAAC,SAAS,uCAChB,IAAI,CAAC,SAAS,EAAE,GAChB,KAAK,EACR,CAAA;IACJ,CAAC;IAED,6BAAM,GAAN,UACE,QAAuB,EACvB,MAAqB,EACrB,UAA4B,EAC5B,OAAqB,EACrB,kBAAiC;QAEjC,IAAM,KAAK,GAAwB;YACjC,IAAI,EAAE,QAAQ;YACd,UAAU,uBAAO,UAAU,CAAE;YAC7B,OAAO,uBAAO,OAAO,CAAE;YACvB,YAAY,uBAAO,kBAAkB,CAAE;SACxC,CAAA;QAED,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAA;SAC1B;QAED,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,KAAK,CAAC,IAAI,GAAG,MAAM,CAAA;SACpB;QAED,OAAO,IAAI,CAAC,SAAS,uCAChB,IAAI,CAAC,SAAS,EAAE,GAChB,KAAK,EACR,CAAA;IACJ,CAAC;IAED,+BAAQ,GAAR,UACE,MAAU,EACV,MAAmB,EACnB,OAAqB,EACrB,kBAAiC;QAEjC,OAAO,IAAI,CAAC,SAAS,uCAChB,IAAI,CAAC,SAAS,EAAE,KACnB,IAAI,EAAE,UAAU,EAChB,MAAM,QAAA,EACN,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EACpB,OAAO,uBAAO,OAAO,GACrB,YAAY,EAAE,kBAAkB,IAChC,CAAA;IACJ,CAAC;IAED,4BAAK,GAAL,UACE,OAAW,EACX,MAAoB,EACpB,OAAqB,EACrB,kBAAiC;QAEjC,OAAO,IAAI,CAAC,SAAS,uCAChB,IAAI,CAAC,SAAS,EAAE,KACnB,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EACpB,OAAO,uBAAO,OAAO,GACrB,YAAY,uBAAO,kBAAkB,GAAI,EAAE;YAC3C,OAAO,SAAA,IACP,CAAA;IACJ,CAAC;IAED,4BAAK,GAAL,UACE,EAAU,EACV,IAAmB,EAAE,oCAAoC;IACzD,OAAqB,EACrB,kBAAiC;QAEjC,IAAM,IAAI,GAAwB;YAChC,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,OAAO;YACb,OAAO,uBAAO,OAAO,CAAE;YACvB,YAAY,uBAAO,kBAAkB,CAAE;SACxC,CAAA;QAED,IAAI,IAAI,KAAK,IAAI,EAAE;YACjB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;SACvB;QAED,IAAI,EAAE,KAAK,SAAS,EAAE;YACpB,OAAO,IAAI,CAAC,SAAS,uCAChB,IAAI,GACJ,IAAI,CAAC,SAAS,EAAE,EACnB,CAAA;SACH;QAED,OAAO,IAAI,CAAC,SAAS,uCAChB,IAAI,CAAC,SAAS,EAAE,GAChB,IAAI,EACP,CAAA;IACJ,CAAC;IAEO,gCAAS,GAAjB;QACE,IAAM,IAAI,GAAiC;YACzC,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,EAAE;SACZ,CAAA;QAED,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO,IAAI,CAAA;QAE3B,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;QAEtB,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE;YACb,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;SACxB;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;SACtC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;OAGG;IACK,8BAAO,GAAf,UACE,OAAoB;;QAGpB;;;WAGG;QACH,IAAM,iBAAiB,GAAqB;YAC1C,QAAQ;YACR,aAAa;YACb,WAAW;SACZ,CAAA;QAED,OAAO,OAAO,CAAC,cAAc,CAAC,CAAA;QAC9B,IAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAG5C,CAAA;QAEH,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,mCAAI,EAAE,CAAA;QACrC,IAAM,cAAc,GAAG,EAAE,CAAA;QAEzB,mBAAmB,CAAC,OAAO,CAAC,UAAC,GAAG;YAC9B,IAAI,GAAG,KAAK,SAAS,EAAE;gBACrB,OAAM;aACP;YAED,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACnC,IAAA,WAAI,EAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;aACxC;iBAAM;gBACL,IAAA,WAAI,EAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;aACjC;QACH,CAAC,CAAC,CAAA;QAEF,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;IAClC,CAAC;IAEM,gCAAS,GAAhB,UAAiB,KAA0B;;QACzC,IAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAA,KAAK,CAAC,YAAY,mCAAI,EAAE,CAAC,CAAC,MAAM,CACtE,UAAC,gBAAgB,EAAE,IAAI;;;YACrB,6CACK,gBAAgB,gBAClB,IAAI,IAAG,OAAO,CAAC,MAAA,KAAK,CAAC,YAAY,0CAAG,IAAI,CAAC,CAAC,OAC5C;QACH,CAAC,EACD,EAA6B,CAC9B,CAAA;QAED,mCAAmC;QACnC,KAAK,CAAC,OAAO,GAAG,IAAA,aAAM,EAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,UAAC,CAAC,EAAE,KAAK;YACnD,OAAO,KAAK,KAAK,SAAS,CAAA;QAC5B,CAAC,CAAC,CAAA;QAEF,qDAAqD;QACrD,qGAAqG;QACrG,yGAAyG;QACzG,+GAA+G;QAC/G,IAAM,eAAe,yCAEhB,mBAAmB,GAGnB,MAAA,KAAK,CAAC,OAAO,0CAAE,YAAY,CAC/B,CAAA;QAEK,IAAA,KAAuB,KAAK,CAAC,OAAO;YACxC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YAC7B,CAAC,CAAC,EAAE,EAFC,OAAO,QAAA,EAAE,SAAS,QAEnB,CAAA;QAEE,IAAA,OAAO,GAAc,KAAK,QAAnB,EAAK,IAAI,kBAAK,KAAK,EAA5B,WAAoB,CAAF,CAAU;QAElC,IAAM,IAAI,wDACR,SAAS,EAAE,IAAI,IAAI,EAAE,IAClB,IAAI,KACP,YAAY,EAAE,eAAe,EAC7B,OAAO,SAAA,KACJ,SAAS,CACb,CAAA;QAED,IAAM,GAAG,yCACJ,IAAI,KACP,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,GAClC,CAAA;QAED,IAAA,0BAAa,EAAC,GAAG,CAAC,CAAA;QAClB,OAAO,GAAG,CAAA;IACZ,CAAC;IACH,mBAAC;AAAD,CAAC,AAlQD,IAkQC;AAlQY,oCAAY"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/events/interfaces.ts"],"names":[],"mappings":""}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoreLogger = exports.backoff = void 0;
4
+ var tslib_1 = require("tslib");
5
+ tslib_1.__exportStar(require("./emitter"), exports);
6
+ tslib_1.__exportStar(require("./emitter/interface"), exports);
7
+ tslib_1.__exportStar(require("./plugins"), exports);
8
+ tslib_1.__exportStar(require("./events/interfaces"), exports);
9
+ tslib_1.__exportStar(require("./events"), exports);
10
+ tslib_1.__exportStar(require("./callback"), exports);
11
+ tslib_1.__exportStar(require("./priority-queue"), exports);
12
+ var backoff_1 = require("./priority-queue/backoff");
13
+ Object.defineProperty(exports, "backoff", { enumerable: true, get: function () { return backoff_1.backoff; } });
14
+ tslib_1.__exportStar(require("./context"), exports);
15
+ tslib_1.__exportStar(require("./queue/event-queue"), exports);
16
+ tslib_1.__exportStar(require("./analytics"), exports);
17
+ tslib_1.__exportStar(require("./analytics/dispatch"), exports);
18
+ tslib_1.__exportStar(require("./validation/helpers"), exports);
19
+ tslib_1.__exportStar(require("./validation/assertions"), exports);
20
+ tslib_1.__exportStar(require("./utils/bind-all"), exports);
21
+ tslib_1.__exportStar(require("./stats"), exports);
22
+ var logger_1 = require("./logger");
23
+ Object.defineProperty(exports, "CoreLogger", { enumerable: true, get: function () { return logger_1.CoreLogger; } });
24
+ tslib_1.__exportStar(require("./queue/delivery"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,oDAAyB;AACzB,8DAAmC;AACnC,oDAAyB;AACzB,8DAAmC;AACnC,mDAAwB;AACxB,qDAA0B;AAC1B,2DAAgC;AAChC,oDAAkD;AAAzC,kGAAA,OAAO,OAAA;AAChB,oDAAyB;AACzB,8DAAmC;AACnC,sDAA2B;AAC3B,+DAAoC;AACpC,+DAAoC;AACpC,kEAAuC;AACvC,2DAAgC;AAChC,kDAAuB;AACvB,mCAAqC;AAA5B,oGAAA,UAAU,OAAA;AACnB,2DAAgC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CoreLogger = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var CoreLogger = /** @class */ (function () {
6
+ function CoreLogger() {
7
+ this._logs = [];
8
+ }
9
+ CoreLogger.prototype.log = function (level, message, extras) {
10
+ var time = new Date();
11
+ this._logs.push({
12
+ level: level,
13
+ message: message,
14
+ time: time,
15
+ extras: extras,
16
+ });
17
+ };
18
+ Object.defineProperty(CoreLogger.prototype, "logs", {
19
+ get: function () {
20
+ return this._logs;
21
+ },
22
+ enumerable: false,
23
+ configurable: true
24
+ });
25
+ CoreLogger.prototype.flush = function () {
26
+ if (this.logs.length > 1) {
27
+ var formatted = this._logs.reduce(function (logs, log) {
28
+ var _a;
29
+ var _b, _c;
30
+ var line = tslib_1.__assign(tslib_1.__assign({}, log), { json: JSON.stringify(log.extras, null, ' '), extras: log.extras });
31
+ delete line['time'];
32
+ var key = (_c = (_b = log.time) === null || _b === void 0 ? void 0 : _b.toISOString()) !== null && _c !== void 0 ? _c : '';
33
+ if (logs[key]) {
34
+ key = "".concat(key, "-").concat(Math.random());
35
+ }
36
+ return tslib_1.__assign(tslib_1.__assign({}, logs), (_a = {}, _a[key] = line, _a));
37
+ }, {});
38
+ // ie doesn't like console.table
39
+ if (console.table) {
40
+ console.table(formatted);
41
+ }
42
+ else {
43
+ console.log(formatted);
44
+ }
45
+ }
46
+ else {
47
+ this.logs.forEach(function (logEntry) {
48
+ var level = logEntry.level, message = logEntry.message, extras = logEntry.extras;
49
+ if (level === 'info' || level === 'debug') {
50
+ console.log(message, extras !== null && extras !== void 0 ? extras : '');
51
+ }
52
+ else {
53
+ console[level](message, extras !== null && extras !== void 0 ? extras : '');
54
+ }
55
+ });
56
+ }
57
+ this._logs = [];
58
+ };
59
+ return CoreLogger;
60
+ }());
61
+ exports.CoreLogger = CoreLogger;
62
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":";;;;AAcA;IAAA;QACU,UAAK,GAAiB,EAAE,CAAA;IA0DlC,CAAC;IAxDC,wBAAG,GAAH,UAAI,KAAe,EAAE,OAAe,EAAE,MAAe;QACnD,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAA;QACvB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YACd,KAAK,OAAA;YACL,OAAO,SAAA;YACP,IAAI,MAAA;YACJ,MAAM,QAAA;SACP,CAAC,CAAA;IACJ,CAAC;IAED,sBAAW,4BAAI;aAAf;YACE,OAAO,IAAI,CAAC,KAAK,CAAA;QACnB,CAAC;;;OAAA;IAEM,0BAAK,GAAZ;QACE,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACxB,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,GAAG;;;gBAC5C,IAAM,IAAI,yCACL,GAAG,KACN,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,EAC3C,MAAM,EAAE,GAAG,CAAC,MAAM,GACnB,CAAA;gBAED,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;gBAEnB,IAAI,GAAG,GAAG,MAAA,MAAA,GAAG,CAAC,IAAI,0CAAE,WAAW,EAAE,mCAAI,EAAE,CAAA;gBACvC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;oBACb,GAAG,GAAG,UAAG,GAAG,cAAI,IAAI,CAAC,MAAM,EAAE,CAAE,CAAA;iBAChC;gBAED,6CACK,IAAI,gBACN,GAAG,IAAG,IAAI,OACZ;YACH,CAAC,EAAE,EAAgC,CAAC,CAAA;YAEpC,gCAAgC;YAChC,IAAI,OAAO,CAAC,KAAK,EAAE;gBACjB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;aACzB;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;aACvB;SACF;aAAM;YACL,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,QAAQ;gBACjB,IAAA,KAAK,GAAsB,QAAQ,MAA9B,EAAE,OAAO,GAAa,QAAQ,QAArB,EAAE,MAAM,GAAK,QAAQ,OAAb,CAAa;gBAE3C,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,OAAO,EAAE;oBACzC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAA;iBACnC;qBAAM;oBACL,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,CAAC,CAAA;iBACtC;YACH,CAAC,CAAC,CAAA;SACH;QAED,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;IACH,iBAAC;AAAD,CAAC,AA3DD,IA2DC;AA3DY,gCAAU"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.backoff = void 0;
4
+ function backoff(params) {
5
+ var random = Math.random() + 1;
6
+ var _a = params.minTimeout, minTimeout = _a === void 0 ? 500 : _a, _b = params.factor, factor = _b === void 0 ? 2 : _b, attempt = params.attempt, _c = params.maxTimeout, maxTimeout = _c === void 0 ? Infinity : _c;
7
+ return Math.min(random * minTimeout * Math.pow(factor, attempt), maxTimeout);
8
+ }
9
+ exports.backoff = backoff;
10
+ //# sourceMappingURL=backoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff.js","sourceRoot":"","sources":["../../../src/priority-queue/backoff.ts"],"names":[],"mappings":";;;AAcA,SAAgB,OAAO,CAAC,MAAqB;IAC3C,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAE9B,IAAA,KAIE,MAAM,WAJQ,EAAhB,UAAU,mBAAG,GAAG,KAAA,EAChB,KAGE,MAAM,OAHE,EAAV,MAAM,mBAAG,CAAC,KAAA,EACV,OAAO,GAEL,MAAM,QAFD,EACP,KACE,MAAM,WADa,EAArB,UAAU,mBAAG,QAAQ,KAAA,CACb;IACV,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,CAAA;AAC9E,CAAC;AATD,0BASC"}