@customerio/cdp-analytics-core 0.0.0-test-oidc

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 +154 -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 +51 -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 +151 -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 +46 -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 +31 -0
  142. package/dist/types/events/index.d.ts.map +1 -0
  143. package/dist/types/events/interfaces.d.ts +379 -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 +8 -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 +40 -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 +285 -0
  198. package/src/events/interfaces.ts +453 -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 +54 -0
  220. package/src/validation/helpers.ts +27 -0
@@ -0,0 +1,6 @@
1
+ export var pickBy = function (obj, fn) {
2
+ return Object.keys(obj)
3
+ .filter(function (k) { return fn(k, obj[k]); })
4
+ .reduce(function (acc, key) { return ((acc[key] = obj[key]), acc); }, {});
5
+ };
6
+ //# sourceMappingURL=pick.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../src/utils/pick.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAM,MAAM,GAAG,UACpB,GAAM,EACN,EAAgC;IAEhC,OAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAS;SAC7B,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAb,CAAa,CAAC;SAC5B,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,EAA5B,CAA4B,EAAE,EAAgB,CAAC,CAAA;AACzE,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ts-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-helpers.js","sourceRoot":"","sources":["../../../src/utils/ts-helpers.ts"],"names":[],"mappings":""}
@@ -0,0 +1,46 @@
1
+ import { __extends } from "tslib";
2
+ import { hasUser, isString, isPlainObject } from './helpers';
3
+ var ValidationError = /** @class */ (function (_super) {
4
+ __extends(ValidationError, _super);
5
+ function ValidationError(field, message) {
6
+ var _this = _super.call(this, message) || this;
7
+ _this.field = field;
8
+ return _this;
9
+ }
10
+ return ValidationError;
11
+ }(Error));
12
+ export { ValidationError };
13
+ export function assertMessageId(event) {
14
+ if (!event.messageId) {
15
+ throw new ValidationError('messageId', 'messageId is missing');
16
+ }
17
+ if (!isString(event.messageId)) {
18
+ throw new ValidationError('messageId', 'messageId is not a string');
19
+ }
20
+ }
21
+ export function validateEvent(event) {
22
+ if (!event || typeof event !== 'object') {
23
+ throw new ValidationError('event', 'Event is missing');
24
+ }
25
+ if (!isString(event.type)) {
26
+ throw new ValidationError('type', 'type is not a string');
27
+ }
28
+ assertMessageId(event);
29
+ if (event.type === 'track') {
30
+ if (!isString(event.event)) {
31
+ throw new ValidationError('event', 'Event is not a string');
32
+ }
33
+ if (!isPlainObject(event.properties)) {
34
+ throw new ValidationError('properties', 'properties is not an object');
35
+ }
36
+ }
37
+ if (['group', 'identify'].includes(event.type)) {
38
+ if (!isPlainObject(event.traits)) {
39
+ throw new ValidationError('traits', 'traits is not an object');
40
+ }
41
+ }
42
+ if (!hasUser(event)) {
43
+ throw new ValidationError('userId/anonymousId/previousId/groupId', 'Must have userId or anonymousId or previousId or groupId');
44
+ }
45
+ }
46
+ //# sourceMappingURL=assertions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertions.js","sourceRoot":"","sources":["../../../src/validation/assertions.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAE5D;IAAqC,mCAAK;IAGxC,yBAAY,KAAa,EAAE,OAAe;QAA1C,YACE,kBAAM,OAAO,CAAC,SAEf;QADC,KAAI,CAAC,KAAK,GAAG,KAAK,CAAA;;IACpB,CAAC;IACH,sBAAC;AAAD,CAAC,AAPD,CAAqC,KAAK,GAOzC;;AAED,MAAM,UAAU,eAAe,CAAC,KAA0B;IACxD,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;QACpB,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,sBAAsB,CAAC,CAAA;KAC/D;IACD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QAC9B,MAAM,IAAI,eAAe,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAA;KACpE;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAkC;IAC9D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACvC,MAAM,IAAI,eAAe,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAA;KACvD;IAED,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QACzB,MAAM,IAAI,eAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAA;KAC1D;IAED,eAAe,CAAC,KAAK,CAAC,CAAA;IAEtB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;QAC1B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC1B,MAAM,IAAI,eAAe,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAA;SAC5D;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACpC,MAAM,IAAI,eAAe,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAA;SACvE;KACF;IAED,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;YAChC,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,yBAAyB,CAAC,CAAA;SAC/D;KACF;IAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,IAAI,eAAe,CACvB,uCAAuC,EACvC,0DAA0D,CAC3D,CAAA;KACF;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ export function isString(obj) {
2
+ return typeof obj === 'string';
3
+ }
4
+ export function isNumber(obj) {
5
+ return typeof obj === 'number';
6
+ }
7
+ export function isFunction(obj) {
8
+ return typeof obj === 'function';
9
+ }
10
+ export function isPlainObject(obj) {
11
+ return (Object.prototype.toString.call(obj).slice(8, -1).toLowerCase() === 'object');
12
+ }
13
+ export function hasUser(event) {
14
+ var _a, _b, _c;
15
+ var id = (_c = (_b = (_a = event.userId) !== null && _a !== void 0 ? _a : event.anonymousId) !== null && _b !== void 0 ? _b : event.groupId) !== null && _c !== void 0 ? _c : event.previousId;
16
+ return isString(id);
17
+ }
18
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../src/validation/helpers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,GAAY;IACnC,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,GAAY;IAEZ,OAAO,CACL,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,QAAQ,CAC5E,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAA0B;;IAChD,IAAM,EAAE,GACN,MAAA,MAAA,MAAA,KAAK,CAAC,MAAM,mCAAI,KAAK,CAAC,WAAW,mCAAI,KAAK,CAAC,OAAO,mCAAI,KAAK,CAAC,UAAU,CAAA;IACxE,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAA;AACrB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { CoreContext } from '../context';
2
+ import { Callback } from '../events/interfaces';
3
+ import { CoreEventQueue } from '../queue/event-queue';
4
+ import { Emitter } from '../emitter';
5
+ export type DispatchOptions<Ctx extends CoreContext = CoreContext> = {
6
+ timeout?: number;
7
+ debug?: boolean;
8
+ callback?: Callback<Ctx>;
9
+ };
10
+ export declare const getDelay: (startTimeInEpochMS: number, timeoutInMS?: number) => number;
11
+ /**
12
+ * Push an event into the dispatch queue and invoke any callbacks.
13
+ *
14
+ * @param event - Event to enqueue.
15
+ * @param queue - Queue to dispatch against.
16
+ * @param emitter - This is typically an instance of "Analytics" -- used for metrics / progress information.
17
+ * @param options
18
+ */
19
+ export declare function dispatch<Ctx extends CoreContext, EQ extends CoreEventQueue<Ctx>>(ctx: Ctx, queue: EQ, emitter: Emitter, options?: DispatchOptions<Ctx>): Promise<Ctx>;
20
+ //# sourceMappingURL=dispatch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../../src/analytics/dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,MAAM,MAAM,eAAe,CAAC,GAAG,SAAS,WAAW,GAAG,WAAW,IAAI;IACnE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;CACzB,CAAA;AAGD,eAAO,MAAM,QAAQ,uBAAwB,MAAM,gBAAgB,MAAM,WAIxE,CAAA;AACD;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,SAAS,WAAW,EACvB,EAAE,SAAS,cAAc,CAAC,GAAG,CAAC,EAE9B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,EAAE,EACT,OAAO,EAAE,OAAO,EAChB,OAAO,CAAC,EAAE,eAAe,CAAC,GAAG,CAAC,GAC7B,OAAO,CAAC,GAAG,CAAC,CAuBd"}
@@ -0,0 +1,12 @@
1
+ export interface CoreAnalytics {
2
+ track(...args: unknown[]): unknown;
3
+ page(...args: unknown[]): unknown;
4
+ identify(...args: unknown[]): unknown;
5
+ group(...args: unknown[]): unknown;
6
+ alias(...args: unknown[]): unknown;
7
+ screen(...args: unknown[]): unknown;
8
+ register(...plugins: unknown[]): Promise<unknown>;
9
+ deregister(...plugins: unknown[]): Promise<unknown>;
10
+ readonly VERSION: string;
11
+ }
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analytics/index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAClC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACjC,QAAQ,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACrC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAClC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAClC,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IACnC,QAAQ,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACjD,UAAU,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACnD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB"}
@@ -0,0 +1,11 @@
1
+ import { CoreContext } from '../context';
2
+ import type { Callback } from '../events';
3
+ export declare function pTimeout<T>(promise: Promise<T>, timeout: number): Promise<T>;
4
+ export declare function sleep(timeoutInMs: number): Promise<void>;
5
+ /**
6
+ * @param ctx
7
+ * @param callback - the function to invoke
8
+ * @param delay - aka "timeout". The amount of time in ms to wait before invoking the callback.
9
+ */
10
+ export declare function invokeCallback<Ctx extends CoreContext>(ctx: Ctx, callback: Callback<Ctx>, delay: number): Promise<Ctx>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/callback/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAa5E;AAED,wBAAgB,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAExD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,SAAS,WAAW,EACpD,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,EACvB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,GAAG,CAAC,CAmBd"}
@@ -0,0 +1,3 @@
1
+ export declare function isOnline(): boolean;
2
+ export declare function isOffline(): boolean;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connection/index.ts"],"names":[],"mappings":"AAEA,wBAAgB,QAAQ,IAAI,OAAO,CAMlC;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
@@ -0,0 +1,44 @@
1
+ import { CoreCustomerioEvent } from '../events/interfaces';
2
+ import { CoreLogger, LogLevel, LogMessage } from '../logger';
3
+ import { CoreStats, CoreMetric } from '../stats';
4
+ export interface SerializedContext {
5
+ id: string;
6
+ event: CoreCustomerioEvent;
7
+ logs: LogMessage[];
8
+ metrics?: CoreMetric[];
9
+ }
10
+ export interface ContextFailedDelivery {
11
+ reason: unknown;
12
+ }
13
+ export interface CancelationOptions {
14
+ retry?: boolean;
15
+ reason?: string;
16
+ type?: string;
17
+ }
18
+ export declare class ContextCancelation {
19
+ retry: boolean;
20
+ type: string;
21
+ reason?: string;
22
+ constructor(options: CancelationOptions);
23
+ }
24
+ export declare abstract class CoreContext<Event extends CoreCustomerioEvent = CoreCustomerioEvent> {
25
+ event: Event;
26
+ logger: CoreLogger;
27
+ stats: CoreStats;
28
+ attempts: number;
29
+ private _failedDelivery?;
30
+ private _id;
31
+ constructor(event: Event, id?: string, stats?: CoreStats, logger?: CoreLogger);
32
+ static system(): void;
33
+ isSame(other: CoreContext): boolean;
34
+ cancel(error?: Error | ContextCancelation): never;
35
+ log(level: LogLevel, message: string, extras?: object): void;
36
+ get id(): string;
37
+ updateEvent(path: string, val: unknown): Event;
38
+ failedDelivery(): ContextFailedDelivery | undefined;
39
+ setFailedDelivery(options: ContextFailedDelivery): void;
40
+ logs(): LogMessage[];
41
+ flush(): void;
42
+ toJSON(): SerializedContext;
43
+ }
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/context/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAI1D,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAa,MAAM,UAAU,CAAA;AAE3D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,mBAAmB,CAAA;IAC1B,IAAI,EAAE,UAAU,EAAE,CAAA;IAClB,OAAO,CAAC,EAAE,UAAU,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,qBAAa,kBAAkB;IAC7B,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;gBAEH,OAAO,EAAE,kBAAkB;CAKxC;AAED,8BAAsB,WAAW,CAC/B,KAAK,SAAS,mBAAmB,GAAG,mBAAmB;IAEvD,KAAK,EAAE,KAAK,CAAA;IACZ,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,SAAS,CAAA;IAChB,QAAQ,SAAI;IAEZ,OAAO,CAAC,eAAe,CAAC,CAAuB;IAC/C,OAAO,CAAC,GAAG,CAAQ;gBAGjB,KAAK,EAAE,KAAK,EACZ,EAAE,SAAS,EACX,KAAK,GAAE,SAA2B,EAClC,MAAM,aAAmB;IAQ3B,MAAM,CAAC,MAAM,IAAI,IAAI;IAIrB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAInC,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,kBAAkB,GAAG,KAAK;IAQjD,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAI5D,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,KAAK;IAc9C,cAAc,IAAI,qBAAqB,GAAG,SAAS;IAInD,iBAAiB,CAAC,OAAO,EAAE,qBAAqB;IAIhD,IAAI,IAAI,UAAU,EAAE;IAIpB,KAAK,IAAI,IAAI;IAKb,MAAM,IAAI,iBAAiB;CAQ5B"}
@@ -0,0 +1,25 @@
1
+ type EventName = string;
2
+ type EventFnArgs = any[];
3
+ type EmitterContract = Record<EventName, EventFnArgs>;
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
+ export declare class Emitter<Contract extends EmitterContract = EmitterContract> {
18
+ private callbacks;
19
+ on<EventName extends keyof Contract>(event: EventName, callback: (...args: Contract[EventName]) => void): this;
20
+ once<EventName extends keyof Contract>(event: EventName, callback: (...args: Contract[EventName]) => void): this;
21
+ off<EventName extends keyof Contract>(event: EventName, callback: (...args: Contract[EventName]) => void): this;
22
+ emit<EventName extends keyof Contract>(event: EventName, ...args: Contract[EventName]): this;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/emitter/index.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG,MAAM,CAAA;AACvB,KAAK,WAAW,GAAG,GAAG,EAAE,CAAA;AACxB,KAAK,eAAe,GAAG,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;AAErD;;;;;;;;;;;;GAYG;AACH,qBAAa,OAAO,CAAC,QAAQ,SAAS,eAAe,GAAG,eAAe;IACrE,OAAO,CAAC,SAAS,CAAwB;IACzC,EAAE,CAAC,SAAS,SAAS,MAAM,QAAQ,EACjC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,GAC/C,IAAI;IASP,IAAI,CAAC,SAAS,SAAS,MAAM,QAAQ,EACnC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,GAC/C,IAAI;IAUP,GAAG,CAAC,SAAS,SAAS,MAAM,QAAQ,EAClC,KAAK,EAAE,SAAS,EAChB,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,GAC/C,IAAI;IAOP,IAAI,CAAC,SAAS,SAAS,MAAM,QAAQ,EACnC,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,GAC3B,IAAI;CAOR"}
@@ -0,0 +1,27 @@
1
+ import { CoreContext } from '../context';
2
+ /**
3
+ * This is the base contract for all emitted errors. This interface may be extended.
4
+ */
5
+ export interface CoreEmittedError<Ctx extends CoreContext> {
6
+ /**
7
+ * e.g. 'delivery_failure'
8
+ */
9
+ code: string;
10
+ /**
11
+ * Why the error occurred. This can be an actual error object or a just a message.
12
+ */
13
+ reason?: unknown;
14
+ ctx?: Ctx;
15
+ }
16
+ export type CoreEmitterContract<Ctx extends CoreContext, Err extends CoreEmittedError<Ctx> = CoreEmittedError<Ctx>> = {
17
+ alias: [ctx: Ctx];
18
+ track: [ctx: Ctx];
19
+ identify: [ctx: Ctx];
20
+ page: [ctx: Ctx];
21
+ screen: [ctx: Ctx];
22
+ group: [ctx: Ctx];
23
+ register: [pluginNames: string[]];
24
+ deregister: [pluginNames: string[]];
25
+ error: [error: Err];
26
+ };
27
+ //# sourceMappingURL=interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/emitter/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAExC;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,GAAG,SAAS,WAAW;IACvD;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,GAAG,CAAA;CACV;AAED,MAAM,MAAM,mBAAmB,CAC7B,GAAG,SAAS,WAAW,EACvB,GAAG,SAAS,gBAAgB,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,CAAC,IACvD;IACF,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACjB,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACpB,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAChB,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAClB,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IACjB,QAAQ,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IACjC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC,CAAA;IACnC,KAAK,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;CACpB,CAAA"}
@@ -0,0 +1,31 @@
1
+ export * from './interfaces';
2
+ import { ID, User } from '../user';
3
+ import { Integrations, EventProperties, CoreCustomerioEvent, CoreOptions, UserTraits, GroupTraits } from './interfaces';
4
+ interface EventFactorySettings {
5
+ createMessageId: () => string;
6
+ user?: User;
7
+ }
8
+ /**
9
+ * This is currently only used by node.js, but the original idea was to have something that could be shared between browser and node.
10
+ * Unfortunately, there are some differences in the way the two environments handle events, so this is not currently shared.
11
+ */
12
+ export declare class EventFactory {
13
+ createMessageId: EventFactorySettings['createMessageId'];
14
+ user?: User;
15
+ constructor(settings: EventFactorySettings);
16
+ track(event: string, properties?: EventProperties, options?: CoreOptions, globalIntegrations?: Integrations): CoreCustomerioEvent;
17
+ page(category: string | null, page: string | null, properties?: EventProperties, options?: CoreOptions, globalIntegrations?: Integrations): CoreCustomerioEvent;
18
+ screen(category: string | null, screen: string | null, properties?: EventProperties, options?: CoreOptions, globalIntegrations?: Integrations): CoreCustomerioEvent;
19
+ identify(userId: ID, traits?: UserTraits, options?: CoreOptions, globalIntegrations?: Integrations): CoreCustomerioEvent;
20
+ group(groupId: ID, traits?: GroupTraits, options?: CoreOptions, globalIntegrations?: Integrations): CoreCustomerioEvent;
21
+ alias(to: string, from: string | null, // TODO: can we make this undefined?
22
+ options?: CoreOptions, globalIntegrations?: Integrations): CoreCustomerioEvent;
23
+ private baseEvent;
24
+ /**
25
+ * Builds the context part of an event based on "foreign" keys that
26
+ * are provided in the `Options` parameter for an Event
27
+ */
28
+ private context;
29
+ normalize(event: CoreCustomerioEvent): CoreCustomerioEvent;
30
+ }
31
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAClC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,WAAW,EAEX,UAAU,EACV,WAAW,EACZ,MAAM,cAAc,CAAA;AAKrB,UAAU,oBAAoB;IAC5B,eAAe,EAAE,MAAM,MAAM,CAAA;IAC7B,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,eAAe,EAAE,oBAAoB,CAAC,iBAAiB,CAAC,CAAA;IACxD,IAAI,CAAC,EAAE,IAAI,CAAA;gBAEC,QAAQ,EAAE,oBAAoB;IAK1C,KAAK,CACH,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,eAAe,EAC5B,OAAO,CAAC,EAAE,WAAW,EACrB,kBAAkB,CAAC,EAAE,YAAY;IAYnC,IAAI,CACF,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,UAAU,CAAC,EAAE,eAAe,EAC5B,OAAO,CAAC,EAAE,WAAW,EACrB,kBAAkB,CAAC,EAAE,YAAY,GAChC,mBAAmB;IAwBtB,MAAM,CACJ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,UAAU,CAAC,EAAE,eAAe,EAC5B,OAAO,CAAC,EAAE,WAAW,EACrB,kBAAkB,CAAC,EAAE,YAAY,GAChC,mBAAmB;IAsBtB,QAAQ,CACN,MAAM,EAAE,EAAE,EACV,MAAM,CAAC,EAAE,UAAU,EACnB,OAAO,CAAC,EAAE,WAAW,EACrB,kBAAkB,CAAC,EAAE,YAAY,GAChC,mBAAmB;IAWtB,KAAK,CACH,OAAO,EAAE,EAAE,EACX,MAAM,CAAC,EAAE,WAAW,EACpB,OAAO,CAAC,EAAE,WAAW,EACrB,kBAAkB,CAAC,EAAE,YAAY,GAChC,mBAAmB;IAWtB,KAAK,CACH,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,oCAAoC;IACzD,OAAO,CAAC,EAAE,WAAW,EACrB,kBAAkB,CAAC,EAAE,YAAY,GAChC,mBAAmB;IAyBtB,OAAO,CAAC,SAAS;IAqBjB;;;OAGG;IACH,OAAO,CAAC,OAAO;IAuCR,SAAS,CAAC,KAAK,EAAE,mBAAmB,GAAG,mBAAmB;CAkDlE"}