@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,379 @@
1
+ import { CoreContext } from '../context';
2
+ import { ID } from '../user';
3
+ import { DeepNullable } from '../utils/ts-helpers';
4
+ export type Callback<Ctx extends CoreContext = CoreContext> = (ctx: Ctx) => Promise<unknown> | unknown;
5
+ export type CustomerioEventType = 'track' | 'page' | 'identify' | 'group' | 'alias' | 'screen';
6
+ export type JSONPrimitive = string | number | boolean | null;
7
+ export type JSONValue = JSONPrimitive | JSONObject | JSONArray;
8
+ export type JSONObject = {
9
+ [member: string]: JSONValue;
10
+ };
11
+ export type JSONArray = JSONValue[];
12
+ export type EventProperties = Record<string, any>;
13
+ export type Integrations = {
14
+ All?: boolean;
15
+ [integration: string]: boolean | JSONObject | undefined;
16
+ };
17
+ export interface CoreOptions {
18
+ integrations?: Integrations;
19
+ timestamp?: Timestamp;
20
+ context?: CoreExtraContext;
21
+ anonymousId?: string;
22
+ userId?: string;
23
+ traits?: Traits;
24
+ /**
25
+ * Override the messageId. Under normal circumstances, this is not recommended -- but necessary for deduping events.
26
+ *
27
+ * **Currently, This option only works in `@customerio/cdp-analytics-node`.**
28
+ */
29
+ messageId?: string;
30
+ [key: string]: any;
31
+ }
32
+ /**
33
+ * Context is a dictionary of extra information that provides useful context about a datapoint, for example the user’s ip address or locale. You should only use Context fields for their intended meaning.
34
+ */
35
+ export interface CoreExtraContext {
36
+ /**
37
+ * This is usually used to flag an .identify() call to just update the trait, rather than "last seen".
38
+ */
39
+ active?: boolean;
40
+ /**
41
+ * Current user's IP address.
42
+ */
43
+ ip?: string;
44
+ /**
45
+ * Locale string for the current user, for example en-US.
46
+ * @example en-US
47
+ */
48
+ locale?: string;
49
+ /**
50
+ * Dictionary of information about the user’s current location.
51
+ */
52
+ location?: {
53
+ /**
54
+ * @example San Francisco
55
+ */
56
+ city?: string;
57
+ /**
58
+ * @example United States
59
+ */
60
+ country?: string;
61
+ /**
62
+ * @example 40.2964197
63
+ */
64
+ latitude?: string;
65
+ /**
66
+ * @example -76.9411617
67
+ */
68
+ longitude?: string;
69
+ /**
70
+ * @example CA
71
+ */
72
+ region?: string;
73
+ /**
74
+ * @example 100
75
+ */
76
+ speed?: number;
77
+ };
78
+ /**
79
+ * Dictionary of information about the current web page.
80
+ */
81
+ page?: {
82
+ /**
83
+ * @example /academy/
84
+ */
85
+ path?: string;
86
+ /**
87
+ * @example https://www.foo.com/
88
+ */
89
+ referrer?: string;
90
+ /**
91
+ * @example projectId=123
92
+ */
93
+ search?: string;
94
+ /**
95
+ * @example Analytics Academy
96
+ */
97
+ title?: string;
98
+ /**
99
+ * @example https://foobar.com/academy/
100
+ */
101
+ url?: string;
102
+ };
103
+ /**
104
+ * User agent of the device making the request.
105
+ */
106
+ userAgent?: string;
107
+ /**
108
+ * Information about the current library.
109
+ *
110
+ * **Automatically filled out by the library.**
111
+ *
112
+ * This type should probably be "never"
113
+ */
114
+ library?: {
115
+ /**
116
+ * @example analytics-node-next/latest
117
+ */
118
+ name: string;
119
+ /**
120
+ * @example "1.43.1"
121
+ */
122
+ version: string;
123
+ };
124
+ /**
125
+ * This is useful in cases where you need to track an event,
126
+ * but also associate information from a previous identify call.
127
+ * You should fill this object the same way you would fill traits in an identify call.
128
+ */
129
+ traits?: Traits;
130
+ /**
131
+ * Dictionary of information about the campaign that resulted in the API call, containing name, source, medium, term, content, and any other custom UTM parameter.
132
+ */
133
+ campaign?: {
134
+ name: string;
135
+ term: string;
136
+ source: string;
137
+ medium: string;
138
+ content: string;
139
+ };
140
+ /**
141
+ * Dictionary of information about the way the user was referred to the website or app.
142
+ */
143
+ referrer?: {
144
+ type?: string;
145
+ name?: string;
146
+ url?: string;
147
+ link?: string;
148
+ id?: string;
149
+ btid?: string;
150
+ urid?: string;
151
+ };
152
+ amp?: {
153
+ id: string;
154
+ };
155
+ [key: string]: any;
156
+ }
157
+ export interface CoreCustomerioEvent {
158
+ messageId?: string;
159
+ type: CustomerioEventType;
160
+ category?: string;
161
+ name?: string;
162
+ properties?: EventProperties;
163
+ traits?: Traits;
164
+ integrations?: Integrations;
165
+ context?: CoreExtraContext;
166
+ options?: CoreOptions;
167
+ userId?: ID;
168
+ anonymousId?: ID;
169
+ groupId?: ID;
170
+ previousId?: ID;
171
+ event?: string;
172
+ writeKey?: string;
173
+ sentAt?: Date;
174
+ _metadata?: CustomerioEventMetadata;
175
+ timestamp?: Timestamp;
176
+ }
177
+ export interface CustomerioEventMetadata {
178
+ failedInitializations?: unknown[];
179
+ bundled?: string[];
180
+ unbundled?: string[];
181
+ nodeVersion?: string;
182
+ bundledConfigIds?: string[];
183
+ unbundledConfigIds?: string[];
184
+ bundledIds?: string[];
185
+ }
186
+ export type Timestamp = Date | string;
187
+ /**
188
+ * A Plan allows users to specify events and which destinations they would like them to be sent to
189
+ */
190
+ export interface Plan {
191
+ track?: TrackPlan;
192
+ identify?: TrackPlan;
193
+ group?: TrackPlan;
194
+ }
195
+ export interface TrackPlan {
196
+ [key: string]: PlanEvent | undefined;
197
+ __default?: PlanEvent;
198
+ }
199
+ export interface PlanEvent {
200
+ /**
201
+ * Whether or not this plan event is enabled
202
+ */
203
+ enabled: boolean;
204
+ /**
205
+ * Which integrations the plan event applies to
206
+ */
207
+ integrations?: {
208
+ [key: string]: boolean;
209
+ };
210
+ }
211
+ type DbId = string | number;
212
+ type PhoneNumber = string | number;
213
+ /**
214
+ * Traits are pieces of information you know about a group.
215
+ */
216
+ type BaseGroupTraits = DeepNullable<{
217
+ /**
218
+ * Street address of a group.
219
+ */
220
+ address?: BaseUserTraits['address'];
221
+ /**
222
+ * URL to an avatar image for the group.
223
+ */
224
+ avatar?: BaseUserTraits['avatar'];
225
+ /**
226
+ * Date the group's account was first created. We recommend ISO-8601 date strings.
227
+ */
228
+ createdAt?: BaseUserTraits['createdAt'];
229
+ /**
230
+ * Description of a group
231
+ */
232
+ description?: BaseUserTraits['description'];
233
+ /**
234
+ * Email address of group.
235
+ */
236
+ email?: BaseUserTraits['email'];
237
+ /**
238
+ * Number of employees of a group, typically used for companies.
239
+ */
240
+ employees?: string | number;
241
+ /**
242
+ * Unique ID in your database for a group.
243
+ */
244
+ id?: BaseUserTraits['id'];
245
+ /**
246
+ * Industry a group is part of.
247
+ */
248
+ industry?: BaseUserTraits['industry'];
249
+ /**
250
+ * Name of a group.
251
+ */
252
+ name?: BaseUserTraits['name'];
253
+ /**
254
+ * Phone number of a group
255
+ */
256
+ phone?: BaseUserTraits['phone'];
257
+ /**
258
+ * Website of a group.
259
+ */
260
+ website?: BaseUserTraits['website'];
261
+ /**
262
+ * Plan that a group is in.
263
+ */
264
+ plan?: BaseUserTraits['plan'];
265
+ }>;
266
+ /**
267
+ * Traits are pieces of information you know about a user.
268
+ */
269
+ type BaseUserTraits = DeepNullable<{
270
+ /**
271
+ * Unique ID in your database for a user
272
+ */
273
+ id?: DbId;
274
+ /**
275
+ * Industry a user works in
276
+ */
277
+ industry?: string;
278
+ /**
279
+ * First name of a user.
280
+ */
281
+ firstName?: string;
282
+ /**
283
+ * Last name of a user.
284
+ */
285
+ lastName?: string;
286
+ /**
287
+ * Full name of a user. If you only pass a first and last name we will automatically fill in the full name for you.
288
+ */
289
+ name?: string;
290
+ /**
291
+ * Phone number of a user
292
+ */
293
+ phone?: PhoneNumber;
294
+ /**
295
+ * Title of a user, usually related to their position at a specific company.
296
+ * @example VP of Engineering
297
+ */
298
+ title?: string;
299
+ /**
300
+ * User's username. This should be unique to each user, like the usernames of Twitter or GitHub.
301
+ */
302
+ username?: string;
303
+ /**
304
+ * Website of a user.
305
+ */
306
+ website?: string;
307
+ /**
308
+ * Street address of a user.
309
+ */
310
+ address?: {
311
+ city?: string;
312
+ country?: string;
313
+ postalCode?: string;
314
+ state?: string;
315
+ street?: string;
316
+ };
317
+ /**
318
+ * Age of a user.
319
+ */
320
+ age?: number;
321
+ /**
322
+ * URL to an avatar image for the user.
323
+ */
324
+ avatar?: string;
325
+ /**
326
+ * User's birthday.
327
+ */
328
+ birthday?: Timestamp;
329
+ /**
330
+ * User's company.
331
+ */
332
+ company?: {
333
+ name?: string;
334
+ id?: DbId;
335
+ industry?: BaseUserTraits['industry'];
336
+ employee_count?: number;
337
+ plan?: BaseUserTraits['plan'];
338
+ };
339
+ /**
340
+ Plan that a user is in.
341
+
342
+ * @example enterprise
343
+ */
344
+ plan?: string;
345
+ /**
346
+ * Date the user's account was first created. We recommend using ISO-8601 date strings.
347
+ */
348
+ createdAt?: Timestamp;
349
+ /**
350
+ * Description of user, such as bio.
351
+ */
352
+ description?: string;
353
+ /**
354
+ * Email address of a user.
355
+ */
356
+ email?: string;
357
+ /**
358
+ * @example female
359
+ */
360
+ gender?: string;
361
+ }>;
362
+ /**
363
+ * Traits are pieces of information you know about a group.
364
+ */
365
+ export type GroupTraits = BaseGroupTraits & {
366
+ [customTrait: string]: any;
367
+ };
368
+ /**
369
+ * Traits are pieces of information you know about a user.
370
+ */
371
+ export type UserTraits = BaseUserTraits & {
372
+ [customTrait: string]: any;
373
+ };
374
+ /**
375
+ * Traits are pieces of information you know about a user or group.
376
+ */
377
+ export type Traits = UserTraits | GroupTraits;
378
+ export {};
379
+ //# sourceMappingURL=interfaces.d.ts.map
@@ -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