@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/events/interfaces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ export * from './emitter';
2
+ export * from './emitter/interface';
3
+ export * from './plugins';
4
+ export * from './events/interfaces';
5
+ export * from './events';
6
+ export * from './callback';
7
+ export * from './priority-queue';
8
+ export { backoff } from './priority-queue/backoff';
9
+ export * from './context';
10
+ export * from './queue/event-queue';
11
+ export * from './analytics';
12
+ export * from './analytics/dispatch';
13
+ export * from './validation/helpers';
14
+ export * from './validation/assertions';
15
+ export * from './utils/bind-all';
16
+ export * from './stats';
17
+ export { CoreLogger } from './logger';
18
+ export * from './queue/delivery';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,cAAc,WAAW,CAAA;AACzB,cAAc,qBAAqB,CAAA;AACnC,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,sBAAsB,CAAA;AACpC,cAAc,yBAAyB,CAAA;AACvC,cAAc,kBAAkB,CAAA;AAChC,cAAc,SAAS,CAAA;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACrC,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,19 @@
1
+ export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
2
+ export type LogMessage = {
3
+ level: LogLevel;
4
+ message: string;
5
+ time?: Date;
6
+ extras?: Record<string, any>;
7
+ };
8
+ export interface GenericLogger {
9
+ log(level: LogLevel, message: string, extras?: object): void;
10
+ flush(): void;
11
+ logs: LogMessage[];
12
+ }
13
+ export declare class CoreLogger implements GenericLogger {
14
+ private _logs;
15
+ log(level: LogLevel, message: string, extras?: object): void;
16
+ get logs(): LogMessage[];
17
+ flush(): void;
18
+ }
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/logger/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAC1D,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,QAAQ,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,IAAI,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC7B,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5D,KAAK,IAAI,IAAI,CAAA;IACb,IAAI,EAAE,UAAU,EAAE,CAAA;CACnB;AAED,qBAAa,UAAW,YAAW,aAAa;IAC9C,OAAO,CAAC,KAAK,CAAmB;IAEhC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAUrD,IAAW,IAAI,IAAI,UAAU,EAAE,CAE9B;IAEM,KAAK,IAAI,IAAI;CA0CrB"}
@@ -0,0 +1,25 @@
1
+ import type { CoreAnalytics } from '../analytics';
2
+ import type { CoreContext } from '../context';
3
+ interface CorePluginConfig {
4
+ options: any;
5
+ priority: 'critical' | 'non-critical';
6
+ }
7
+ export type PluginType = 'before' | 'after' | 'destination' | 'enrichment' | 'utility';
8
+ export interface CorePlugin<Ctx extends CoreContext = CoreContext, Analytics extends CoreAnalytics = any> {
9
+ name: string;
10
+ alternativeNames?: string[];
11
+ version: string;
12
+ type: PluginType;
13
+ isLoaded: () => boolean;
14
+ load: (ctx: Ctx, instance: Analytics, config?: CorePluginConfig) => Promise<unknown>;
15
+ unload?: (ctx: Ctx, instance: Analytics) => Promise<unknown> | unknown;
16
+ ready?: () => Promise<unknown>;
17
+ track?: (ctx: Ctx) => Promise<Ctx> | Ctx;
18
+ identify?: (ctx: Ctx) => Promise<Ctx> | Ctx;
19
+ page?: (ctx: Ctx) => Promise<Ctx> | Ctx;
20
+ group?: (ctx: Ctx) => Promise<Ctx> | Ctx;
21
+ alias?: (ctx: Ctx) => Promise<Ctx> | Ctx;
22
+ screen?: (ctx: Ctx) => Promise<Ctx> | Ctx;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/plugins/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAE7C,UAAU,gBAAgB;IACxB,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,EAAE,UAAU,GAAG,cAAc,CAAA;CACtC;AAED,MAAM,MAAM,UAAU,GAClB,QAAQ,GACR,OAAO,GACP,aAAa,GACb,YAAY,GACZ,SAAS,CAAA;AAMb,MAAM,WAAW,UAAU,CACzB,GAAG,SAAS,WAAW,GAAG,WAAW,EACrC,SAAS,SAAS,aAAa,GAAG,GAAG;IAErC,IAAI,EAAE,MAAM,CAAA;IACZ,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,UAAU,CAAA;IAChB,QAAQ,EAAE,MAAM,OAAO,CAAA;IACvB,IAAI,EAAE,CACJ,GAAG,EAAE,GAAG,EACR,QAAQ,EAAE,SAAS,EACnB,MAAM,CAAC,EAAE,gBAAgB,KACtB,OAAO,CAAC,OAAO,CAAC,CAAA;IAErB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAA;IACtE,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACxC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IAC3C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACvC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACxC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;IACxC,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;CAC1C"}
@@ -0,0 +1,13 @@
1
+ type BackoffParams = {
2
+ /** The number of milliseconds before starting the first retry. Default is 500 */
3
+ minTimeout?: number;
4
+ /** The maximum number of milliseconds between two retries. Default is Infinity */
5
+ maxTimeout?: number;
6
+ /** The exponential factor to use. Default is 2. */
7
+ factor?: number;
8
+ /** The current attempt */
9
+ attempt: number;
10
+ };
11
+ export declare function backoff(params: BackoffParams): number;
12
+ export {};
13
+ //# sourceMappingURL=backoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backoff.d.ts","sourceRoot":"","sources":["../../../src/priority-queue/backoff.ts"],"names":[],"mappings":"AAAA,KAAK,aAAa,GAAG;IACnB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAA;IAEnB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAA;IAEf,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CASrD"}
@@ -0,0 +1,25 @@
1
+ import { Emitter } from '../emitter';
2
+ /**
3
+ * @internal
4
+ */
5
+ export declare const ON_REMOVE_FROM_FUTURE = "onRemoveFromFuture";
6
+ interface QueueItem {
7
+ id: string;
8
+ }
9
+ export declare class PriorityQueue<Item extends QueueItem = QueueItem> extends Emitter {
10
+ protected future: Item[];
11
+ protected queue: Item[];
12
+ protected seen: Record<string, number>;
13
+ maxAttempts: number;
14
+ constructor(maxAttempts: number, queue: Item[], seen?: Record<string, number>);
15
+ push(...items: Item[]): boolean[];
16
+ pushWithBackoff(item: Item): boolean;
17
+ getAttempts(item: Item): number;
18
+ updateAttempts(item: Item): number;
19
+ includes(item: Item): boolean;
20
+ pop(): Item | undefined;
21
+ get length(): number;
22
+ get todo(): number;
23
+ }
24
+ export {};
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/priority-queue/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAGpC;;GAEG;AACH,eAAO,MAAM,qBAAqB,uBAAuB,CAAA;AAEzD,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAA;CACX;AAED,qBAAa,aAAa,CAAC,IAAI,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,OAAO;IAC5E,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAK;IAC7B,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAA;IACvB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAE/B,WAAW,EAAE,MAAM,CAAA;gBAGxB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQ/B,IAAI,CAAC,GAAG,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE;IAkBjC,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAyB7B,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAI/B,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAKzC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAS7B,GAAG,IAAI,IAAI,GAAG,SAAS;IAIvB,IAAW,MAAM,IAAI,MAAM,CAE1B;IAED,IAAW,IAAI,IAAI,MAAM,CAExB;CACF"}
@@ -0,0 +1,5 @@
1
+ import { CoreContext, ContextCancelation } from '../context';
2
+ import { CorePlugin } from '../plugins';
3
+ export declare function attempt<Ctx extends CoreContext = CoreContext>(ctx: Ctx, plugin: CorePlugin<Ctx>): Promise<Ctx | ContextCancelation | Error>;
4
+ export declare function ensure<Ctx extends CoreContext = CoreContext>(ctx: Ctx, plugin: CorePlugin<Ctx>): Promise<Ctx | undefined>;
5
+ //# sourceMappingURL=delivery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery.d.ts","sourceRoot":"","sources":["../../../src/queue/delivery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAUvC,wBAAgB,OAAO,CAAC,GAAG,SAAS,WAAW,GAAG,WAAW,EAC3D,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,GACtB,OAAO,CAAC,GAAG,GAAG,kBAAkB,GAAG,KAAK,CAAC,CA2C3C;AAED,wBAAgB,MAAM,CAAC,GAAG,SAAS,WAAW,GAAG,WAAW,EAC1D,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,GACtB,OAAO,CAAC,GAAG,GAAG,SAAS,CAAC,CAU1B"}
@@ -0,0 +1,43 @@
1
+ import { CoreAnalytics } from '../analytics';
2
+ import { PriorityQueue } from '../priority-queue';
3
+ import { CoreContext, ContextCancelation } from '../context';
4
+ import { Emitter } from '../emitter';
5
+ import { CorePlugin } from '../plugins';
6
+ import { TaskGroup } from '../task/task-group';
7
+ export type EventQueueEmitterContract<Ctx extends CoreContext> = {
8
+ message_delivered: [ctx: Ctx];
9
+ message_enriched: [ctx: Ctx, plugin: CorePlugin<Ctx>];
10
+ delivery_success: [ctx: Ctx];
11
+ delivery_retry: [ctx: Ctx];
12
+ delivery_failure: [ctx: Ctx, err: Ctx | Error | ContextCancelation];
13
+ flush: [ctx: Ctx, delivered: boolean];
14
+ };
15
+ export declare abstract class CoreEventQueue<Ctx extends CoreContext = CoreContext, Plugin extends CorePlugin<Ctx> = CorePlugin<Ctx>> extends Emitter<EventQueueEmitterContract<Ctx>> {
16
+ /**
17
+ * All event deliveries get suspended until all the tasks in this task group are complete.
18
+ * For example: a middleware that augments the event object should be loaded safely as a
19
+ * critical task, this way, event queue will wait for it to be ready before sending events.
20
+ *
21
+ * This applies to all the events already in the queue, and the upcoming ones
22
+ */
23
+ criticalTasks: TaskGroup;
24
+ queue: PriorityQueue<Ctx>;
25
+ plugins: Plugin[];
26
+ failedInitializations: string[];
27
+ private flushing;
28
+ constructor(priorityQueue: PriorityQueue<Ctx>);
29
+ register(ctx: Ctx, plugin: Plugin, instance: CoreAnalytics): Promise<void>;
30
+ deregister(ctx: Ctx, plugin: CorePlugin<Ctx>, instance: CoreAnalytics): Promise<void>;
31
+ dispatch(ctx: Ctx): Promise<Ctx>;
32
+ private subscribeToDelivery;
33
+ dispatchSingle(ctx: Ctx): Promise<Ctx>;
34
+ isEmpty(): boolean;
35
+ private scheduleFlush;
36
+ private deliver;
37
+ private enqueuRetry;
38
+ flush(): Promise<Ctx[]>;
39
+ private isReady;
40
+ private availableExtensions;
41
+ private flushOne;
42
+ }
43
+ //# sourceMappingURL=event-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-queue.d.ts","sourceRoot":"","sources":["../../../src/queue/event-queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,OAAO,EAAyB,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAExE,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAmB,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAI/D,MAAM,MAAM,yBAAyB,CAAC,GAAG,SAAS,WAAW,IAAI;IAC/D,iBAAiB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC7B,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;IACrD,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC5B,cAAc,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;IAC1B,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,KAAK,GAAG,kBAAkB,CAAC,CAAA;IACnE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;CACtC,CAAA;AAED,8BAAsB,cAAc,CAClC,GAAG,SAAS,WAAW,GAAG,WAAW,EACrC,MAAM,SAAS,UAAU,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAChD,SAAQ,OAAO,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC;IAC/C;;;;;;OAMG;IACH,aAAa,EAAE,SAAS,CAAoB;IAC5C,KAAK,EAAE,aAAa,CAAC,GAAG,CAAC,CAAA;IACzB,OAAO,EAAE,MAAM,EAAE,CAAK;IACtB,qBAAqB,EAAE,MAAM,EAAE,CAAK;IACpC,OAAO,CAAC,QAAQ,CAAQ;gBAEZ,aAAa,EAAE,aAAa,CAAC,GAAG,CAAC;IASvC,QAAQ,CACZ,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC;IAsBV,UAAU,CACd,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,EACvB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,IAAI,CAAC;IAeV,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;YAUxB,mBAAmB;IAiB3B,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAkB5C,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,aAAa;YAqBP,OAAO;IAoBrB,OAAO,CAAC,WAAW;IASb,KAAK,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IA6B7B,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,mBAAmB;YAsCb,QAAQ;CAuDvB"}
@@ -0,0 +1,34 @@
1
+ type CompactMetricType = 'g' | 'c';
2
+ export type CoreMetricType = 'gauge' | 'counter';
3
+ export interface CoreMetric {
4
+ metric: string;
5
+ value: number;
6
+ type: CoreMetricType;
7
+ tags: string[];
8
+ timestamp: number;
9
+ }
10
+ export interface CompactMetric {
11
+ m: string;
12
+ v: number;
13
+ k: CompactMetricType;
14
+ t: string[];
15
+ e: number;
16
+ }
17
+ export declare abstract class CoreStats {
18
+ metrics: CoreMetric[];
19
+ increment(metric: string, by?: number, tags?: string[]): void;
20
+ gauge(metric: string, value: number, tags?: string[]): void;
21
+ flush(): void;
22
+ /**
23
+ * compact keys for smaller payload
24
+ */
25
+ serialize(): CompactMetric[];
26
+ }
27
+ export declare class NullStats extends CoreStats {
28
+ gauge(..._args: Parameters<CoreStats['gauge']>): void;
29
+ increment(..._args: Parameters<CoreStats['increment']>): void;
30
+ flush(..._args: Parameters<CoreStats['flush']>): void;
31
+ serialize(..._args: Parameters<CoreStats['serialize']>): never[];
32
+ }
33
+ export {};
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/stats/index.ts"],"names":[],"mappings":"AAAA,KAAK,iBAAiB,GAAG,GAAG,GAAG,GAAG,CAAA;AAElC,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAA;AAEhD,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,cAAc,CAAA;IACpB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,iBAAiB,CAAA;IACpB,CAAC,EAAE,MAAM,EAAE,CAAA;IACX,CAAC,EAAE,MAAM,CAAA;CACV;AAUD,8BAAsB,SAAS;IAC7B,OAAO,EAAE,UAAU,EAAE,CAAK;IAC1B,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAI,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAUxD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI;IAU3D,KAAK,IAAI,IAAI;IAcb;;OAEG;IACH,SAAS,IAAI,aAAa,EAAE;CAW7B;AAED,qBAAa,SAAU,SAAQ,SAAS;IAC7B,KAAK,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACtD,KAAK,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,SAAS,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CAGhE"}
@@ -0,0 +1,6 @@
1
+ export type TaskGroup = {
2
+ done: () => Promise<void>;
3
+ run: <Operation extends (...args: any[]) => any>(op: Operation) => ReturnType<Operation>;
4
+ };
5
+ export declare const createTaskGroup: () => TaskGroup;
6
+ //# sourceMappingURL=task-group.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task-group.d.ts","sourceRoot":"","sources":["../../../src/task/task-group.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,GAAG,EAAE,CAAC,SAAS,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC7C,EAAE,EAAE,SAAS,KACV,UAAU,CAAC,SAAS,CAAC,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,eAAe,QAAO,SAqBlC,CAAA"}
@@ -0,0 +1,6 @@
1
+ export type ID = string | null | undefined;
2
+ export interface User {
3
+ id(): ID;
4
+ anonymousId(): ID;
5
+ }
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/user/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;AAG1C,MAAM,WAAW,IAAI;IACnB,EAAE,IAAI,EAAE,CAAA;IACR,WAAW,IAAI,EAAE,CAAA;CAClB"}
@@ -0,0 +1,4 @@
1
+ export declare function bindAll<ObjType extends {
2
+ [key: string]: any;
3
+ }, KeyType extends keyof ObjType>(obj: ObjType): ObjType;
4
+ //# sourceMappingURL=bind-all.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bind-all.d.ts","sourceRoot":"","sources":["../../../src/utils/bind-all.ts"],"names":[],"mappings":"AAAA,wBAAgB,OAAO,CACrB,OAAO,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EACtC,OAAO,SAAS,MAAM,OAAO,EAC7B,GAAG,EAAE,OAAO,GAAG,OAAO,CAevB"}
@@ -0,0 +1,3 @@
1
+ export declare function isBrowser(): boolean;
2
+ export declare function isServer(): boolean;
3
+ //# sourceMappingURL=environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environment.d.ts","sourceRoot":"","sources":["../../../src/utils/environment.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,QAAQ,IAAI,OAAO,CAElC"}
@@ -0,0 +1,2 @@
1
+ export declare const getGlobal: () => typeof globalThis | null;
2
+ //# sourceMappingURL=get-global.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-global.d.ts","sourceRoot":"","sources":["../../../src/utils/get-global.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,SAAS,gCAcrB,CAAA"}
@@ -0,0 +1,4 @@
1
+ type Grouper<T> = (obj: T) => string | number;
2
+ export declare function groupBy<T>(collection: T[], grouper: keyof T | Grouper<T>): Record<string, T[]>;
3
+ export {};
4
+ //# sourceMappingURL=group-by.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-by.d.ts","sourceRoot":"","sources":["../../../src/utils/group-by.ts"],"names":[],"mappings":"AAAA,KAAK,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,CAAA;AAE7C,wBAAgB,OAAO,CAAC,CAAC,EACvB,UAAU,EAAE,CAAC,EAAE,EACf,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAwBrB"}
@@ -0,0 +1,4 @@
1
+ export declare function hasProperties<T extends object, K extends string>(obj: T, ...keys: K[]): obj is T & {
2
+ [J in K]: unknown;
3
+ };
4
+ //# sourceMappingURL=has-properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"has-properties.d.ts","sourceRoot":"","sources":["../../../src/utils/has-properties.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAC9D,GAAG,EAAE,CAAC,EACN,GAAG,IAAI,EAAE,CAAC,EAAE,GACX,GAAG,IAAI,CAAC,GAAG;KAAG,CAAC,IAAI,CAAC,GAAG,OAAO;CAAE,CAGlC"}
@@ -0,0 +1,2 @@
1
+ export declare function isPlainObject(o: unknown): o is Record<PropertyKey, unknown>;
2
+ //# sourceMappingURL=is-plain-object.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-plain-object.d.ts","sourceRoot":"","sources":["../../../src/utils/is-plain-object.ts"],"names":[],"mappings":"AAMA,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,CAmB3E"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check if thenable
3
+ * (instanceof Promise doesn't respect realms)
4
+ */
5
+ export declare const isThenable: (value: unknown) => boolean;
6
+ //# sourceMappingURL=is-thenable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-thenable.d.ts","sourceRoot":"","sources":["../../../src/utils/is-thenable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,UAAU,UAAW,OAAO,KAAG,OAID,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const pWhile: <T>(condition: (value: T | undefined) => boolean, action: () => T | PromiseLike<T>) => Promise<void>;
2
+ //# sourceMappingURL=p-while.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"p-while.d.ts","sourceRoot":"","sources":["../../../src/utils/p-while.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,2CACoB,OAAO,uCAE3C,QAAQ,IAAI,CAQd,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare const pickBy: <T extends object, K extends keyof T>(obj: T, fn: (key: K, v: T[K]) => boolean) => Partial<T>;
2
+ //# sourceMappingURL=pick.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pick.d.ts","sourceRoot":"","sources":["../../../src/utils/pick.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,yEAEQ,OAAO,eAKjC,CAAA"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Remove Index Signature
3
+ */
4
+ export type RemoveIndexSignature<T> = {
5
+ [K in keyof T as {} extends Record<K, 1> ? never : K]: T[K];
6
+ };
7
+ /**
8
+ * Recursively make all object properties nullable
9
+ */
10
+ export type DeepNullable<T> = {
11
+ [K in keyof T]: T[K] extends object ? DeepNullable<T[K]> | null : T[K] | null;
12
+ };
13
+ //# sourceMappingURL=ts-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ts-helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/ts-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI;KACnC,CAAC,IAAI,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5D,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI;KAC3B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;CAC9E,CAAA"}
@@ -0,0 +1,7 @@
1
+ import { CoreCustomerioEvent } from '../events';
2
+ export declare class ValidationError extends Error {
3
+ field: string;
4
+ constructor(field: string, message: string);
5
+ }
6
+ export declare function validateEvent(event?: CoreCustomerioEvent | null): void;
7
+ //# sourceMappingURL=assertions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../../src/validation/assertions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAG/C,qBAAa,eAAgB,SAAQ,KAAK;IACxC,KAAK,EAAE,MAAM,CAAA;gBAED,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI3C;AAED,wBAAgB,aAAa,CAAC,KAAK,CAAC,EAAE,mBAAmB,GAAG,IAAI,QA8B/D"}
@@ -0,0 +1,7 @@
1
+ import { CoreCustomerioEvent } from '../events';
2
+ export declare function isString(obj: unknown): obj is string;
3
+ export declare function isNumber(obj: unknown): obj is number;
4
+ export declare function isFunction(obj: unknown): obj is Function;
5
+ export declare function isPlainObject(obj: unknown): obj is Record<string | symbol | number, any>;
6
+ export declare function hasUser(event: CoreCustomerioEvent): boolean;
7
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/validation/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAE/C,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,MAAM,CAEpD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,QAAQ,CAExD;AAED,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAI9C;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAI3D"}
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@customerio/cdp-analytics-core",
3
+ "version": "0.0.1",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/segmentio/analytics-next",
7
+ "directory": "packages/core"
8
+ },
9
+ "license": "MIT",
10
+ "main": "./dist/cjs/index.js",
11
+ "module": "./dist/esm/index.js",
12
+ "types": "./dist/types/index.d.ts",
13
+ "files": [
14
+ "dist/",
15
+ "src/",
16
+ "!**/__tests__/**",
17
+ "!*.tsbuildinfo"
18
+ ],
19
+ "sideEffects": false,
20
+ "scripts": {
21
+ "test": "yarn jest",
22
+ "lint": "yarn concurrently 'yarn:eslint .' 'yarn:tsc --noEmit'",
23
+ "build": "yarn concurrently 'yarn:build:*'",
24
+ "build:esm": "yarn tsc -p tsconfig.build.json",
25
+ "build:cjs": "yarn tsc -p tsconfig.build.json --outDir ./dist/cjs --module commonjs",
26
+ "watch": "yarn build:esm --watch",
27
+ "watch:test": "yarn test --watch",
28
+ "tsc": "yarn run -T tsc",
29
+ "eslint": "yarn run -T eslint",
30
+ "concurrently": "yarn run -T concurrently",
31
+ "jest": "yarn run -T jest"
32
+ },
33
+ "packageManager": "yarn@3.2.1",
34
+ "dependencies": {
35
+ "@lukeed/uuid": "^2.0.0",
36
+ "dset": "^3.1.2",
37
+ "tslib": "^2.4.1"
38
+ }
39
+ }
@@ -0,0 +1,58 @@
1
+ import { CoreContext } from '../context'
2
+ import { Callback } from '../events/interfaces'
3
+ import { CoreEventQueue } from '../queue/event-queue'
4
+ import { invokeCallback } from '../callback'
5
+ import { Emitter } from '../emitter'
6
+
7
+ export type DispatchOptions<Ctx extends CoreContext = CoreContext> = {
8
+ timeout?: number
9
+ debug?: boolean
10
+ callback?: Callback<Ctx>
11
+ }
12
+
13
+ /* The amount of time in ms to wait before invoking the callback. */
14
+ export const getDelay = (startTimeInEpochMS: number, timeoutInMS?: number) => {
15
+ const elapsedTime = Date.now() - startTimeInEpochMS
16
+ // increasing the timeout increases the delay by almost the same amount -- this is weird legacy behavior.
17
+ return Math.max((timeoutInMS ?? 300) - elapsedTime, 0)
18
+ }
19
+ /**
20
+ * Push an event into the dispatch queue and invoke any callbacks.
21
+ *
22
+ * @param event - Event to enqueue.
23
+ * @param queue - Queue to dispatch against.
24
+ * @param emitter - This is typically an instance of "Analytics" -- used for metrics / progress information.
25
+ * @param options
26
+ */
27
+ export async function dispatch<
28
+ Ctx extends CoreContext,
29
+ EQ extends CoreEventQueue<Ctx>
30
+ >(
31
+ ctx: Ctx,
32
+ queue: EQ,
33
+ emitter: Emitter,
34
+ options?: DispatchOptions<Ctx>
35
+ ): Promise<Ctx> {
36
+ emitter.emit('dispatch_start', ctx)
37
+
38
+ const startTime = Date.now()
39
+ let dispatched: Ctx
40
+ if (queue.isEmpty()) {
41
+ dispatched = await queue.dispatchSingle(ctx)
42
+ } else {
43
+ dispatched = await queue.dispatch(ctx)
44
+ }
45
+
46
+ if (options?.callback) {
47
+ dispatched = await invokeCallback(
48
+ dispatched,
49
+ options.callback,
50
+ getDelay(startTime, options.timeout)
51
+ )
52
+ }
53
+ if (options?.debug) {
54
+ dispatched.flush()
55
+ }
56
+
57
+ return dispatched
58
+ }
@@ -0,0 +1,11 @@
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
+ }
@@ -0,0 +1,51 @@
1
+ import { CoreContext } from '../context'
2
+ import type { Callback } from '../events'
3
+
4
+ export function pTimeout<T>(promise: Promise<T>, timeout: number): Promise<T> {
5
+ return new Promise((resolve, reject) => {
6
+ const timeoutId = setTimeout(() => {
7
+ reject(Error('Promise timed out'))
8
+ }, timeout)
9
+
10
+ promise
11
+ .then((val) => {
12
+ clearTimeout(timeoutId)
13
+ return resolve(val)
14
+ })
15
+ .catch(reject)
16
+ })
17
+ }
18
+
19
+ export function sleep(timeoutInMs: number): Promise<void> {
20
+ return new Promise((resolve) => setTimeout(resolve, timeoutInMs))
21
+ }
22
+
23
+ /**
24
+ * @param ctx
25
+ * @param callback - the function to invoke
26
+ * @param delay - aka "timeout". The amount of time in ms to wait before invoking the callback.
27
+ */
28
+ export function invokeCallback<Ctx extends CoreContext>(
29
+ ctx: Ctx,
30
+ callback: Callback<Ctx>,
31
+ delay: number
32
+ ): Promise<Ctx> {
33
+ const cb = () => {
34
+ try {
35
+ return Promise.resolve(callback(ctx))
36
+ } catch (err) {
37
+ return Promise.reject(err)
38
+ }
39
+ }
40
+
41
+ return (
42
+ sleep(delay)
43
+ // pTimeout ensures that the callback can't cause the context to hang
44
+ .then(() => pTimeout(cb(), 1000))
45
+ .catch((err) => {
46
+ ctx?.log('warn', 'Callback Error', { error: err })
47
+ ctx?.stats.increment('callback_error')
48
+ })
49
+ .then(() => ctx)
50
+ )
51
+ }
@@ -0,0 +1,13 @@
1
+ import { isBrowser } from '../utils/environment'
2
+
3
+ export function isOnline(): boolean {
4
+ if (isBrowser()) {
5
+ return window.navigator.onLine
6
+ }
7
+
8
+ return true
9
+ }
10
+
11
+ export function isOffline(): boolean {
12
+ return !isOnline()
13
+ }