@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.
- package/LICENSE.MD +22 -0
- package/README.md +3 -0
- package/dist/cjs/analytics/dispatch.js +54 -0
- package/dist/cjs/analytics/dispatch.js.map +1 -0
- package/dist/cjs/analytics/index.js +3 -0
- package/dist/cjs/analytics/index.js.map +1 -0
- package/dist/cjs/callback/index.js +46 -0
- package/dist/cjs/callback/index.js.map +1 -0
- package/dist/cjs/connection/index.js +16 -0
- package/dist/cjs/connection/index.js.map +1 -0
- package/dist/cjs/context/index.js +87 -0
- package/dist/cjs/context/index.js.map +1 -0
- package/dist/cjs/emitter/index.js +66 -0
- package/dist/cjs/emitter/index.js.map +1 -0
- package/dist/cjs/emitter/interface.js +3 -0
- package/dist/cjs/emitter/interface.js.map +1 -0
- package/dist/cjs/events/index.js +154 -0
- package/dist/cjs/events/index.js.map +1 -0
- package/dist/cjs/events/interfaces.js +3 -0
- package/dist/cjs/events/interfaces.js.map +1 -0
- package/dist/cjs/index.js +25 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/logger/index.js +62 -0
- package/dist/cjs/logger/index.js.map +1 -0
- package/dist/cjs/plugins/index.js +3 -0
- package/dist/cjs/plugins/index.js.map +1 -0
- package/dist/cjs/priority-queue/backoff.js +10 -0
- package/dist/cjs/priority-queue/backoff.js.map +1 -0
- package/dist/cjs/priority-queue/index.js +92 -0
- package/dist/cjs/priority-queue/index.js.map +1 -0
- package/dist/cjs/queue/delivery.js +69 -0
- package/dist/cjs/queue/delivery.js.map +1 -0
- package/dist/cjs/queue/event-queue.js +340 -0
- package/dist/cjs/queue/event-queue.js.map +1 -0
- package/dist/cjs/stats/index.js +96 -0
- package/dist/cjs/stats/index.js.map +1 -0
- package/dist/cjs/task/task-group.js +24 -0
- package/dist/cjs/task/task-group.js.map +1 -0
- package/dist/cjs/user/index.js +3 -0
- package/dist/cjs/user/index.js.map +1 -0
- package/dist/cjs/utils/bind-all.js +18 -0
- package/dist/cjs/utils/bind-all.js.map +1 -0
- package/dist/cjs/utils/environment.js +12 -0
- package/dist/cjs/utils/environment.js.map +1 -0
- package/dist/cjs/utils/get-global.js +21 -0
- package/dist/cjs/utils/get-global.js.map +1 -0
- package/dist/cjs/utils/group-by.js +28 -0
- package/dist/cjs/utils/group-by.js.map +1 -0
- package/dist/cjs/utils/has-properties.js +13 -0
- package/dist/cjs/utils/has-properties.js.map +1 -0
- package/dist/cjs/utils/is-plain-object.js +28 -0
- package/dist/cjs/utils/is-plain-object.js.map +1 -0
- package/dist/cjs/utils/is-thenable.js +15 -0
- package/dist/cjs/utils/is-thenable.js.map +1 -0
- package/dist/cjs/utils/p-while.js +25 -0
- package/dist/cjs/utils/p-while.js.map +1 -0
- package/dist/cjs/utils/pick.js +10 -0
- package/dist/cjs/utils/pick.js.map +1 -0
- package/dist/cjs/utils/ts-helpers.js +3 -0
- package/dist/cjs/utils/ts-helpers.js.map +1 -0
- package/dist/cjs/validation/assertions.js +51 -0
- package/dist/cjs/validation/assertions.js.map +1 -0
- package/dist/cjs/validation/helpers.js +26 -0
- package/dist/cjs/validation/helpers.js.map +1 -0
- package/dist/esm/analytics/dispatch.js +49 -0
- package/dist/esm/analytics/dispatch.js.map +1 -0
- package/dist/esm/analytics/index.js +2 -0
- package/dist/esm/analytics/index.js.map +1 -0
- package/dist/esm/callback/index.js +40 -0
- package/dist/esm/callback/index.js.map +1 -0
- package/dist/esm/connection/index.js +11 -0
- package/dist/esm/connection/index.js.map +1 -0
- package/dist/esm/context/index.js +84 -0
- package/dist/esm/context/index.js.map +1 -0
- package/dist/esm/emitter/index.js +63 -0
- package/dist/esm/emitter/index.js.map +1 -0
- package/dist/esm/emitter/interface.js +2 -0
- package/dist/esm/emitter/interface.js.map +1 -0
- package/dist/esm/events/index.js +151 -0
- package/dist/esm/events/index.js.map +1 -0
- package/dist/esm/events/interfaces.js +2 -0
- package/dist/esm/events/interfaces.js.map +1 -0
- package/dist/esm/index.js +19 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/logger/index.js +59 -0
- package/dist/esm/logger/index.js.map +1 -0
- package/dist/esm/plugins/index.js +2 -0
- package/dist/esm/plugins/index.js.map +1 -0
- package/dist/esm/priority-queue/backoff.js +6 -0
- package/dist/esm/priority-queue/backoff.js.map +1 -0
- package/dist/esm/priority-queue/index.js +89 -0
- package/dist/esm/priority-queue/index.js.map +1 -0
- package/dist/esm/queue/delivery.js +64 -0
- package/dist/esm/queue/delivery.js.map +1 -0
- package/dist/esm/queue/event-queue.js +337 -0
- package/dist/esm/queue/event-queue.js.map +1 -0
- package/dist/esm/stats/index.js +93 -0
- package/dist/esm/stats/index.js.map +1 -0
- package/dist/esm/task/task-group.js +20 -0
- package/dist/esm/task/task-group.js.map +1 -0
- package/dist/esm/user/index.js +2 -0
- package/dist/esm/user/index.js.map +1 -0
- package/dist/esm/utils/bind-all.js +14 -0
- package/dist/esm/utils/bind-all.js.map +1 -0
- package/dist/esm/utils/environment.js +7 -0
- package/dist/esm/utils/environment.js.map +1 -0
- package/dist/esm/utils/get-global.js +17 -0
- package/dist/esm/utils/get-global.js.map +1 -0
- package/dist/esm/utils/group-by.js +24 -0
- package/dist/esm/utils/group-by.js.map +1 -0
- package/dist/esm/utils/has-properties.js +9 -0
- package/dist/esm/utils/has-properties.js.map +1 -0
- package/dist/esm/utils/is-plain-object.js +24 -0
- package/dist/esm/utils/is-plain-object.js.map +1 -0
- package/dist/esm/utils/is-thenable.js +11 -0
- package/dist/esm/utils/is-thenable.js.map +1 -0
- package/dist/esm/utils/p-while.js +21 -0
- package/dist/esm/utils/p-while.js.map +1 -0
- package/dist/esm/utils/pick.js +6 -0
- package/dist/esm/utils/pick.js.map +1 -0
- package/dist/esm/utils/ts-helpers.js +2 -0
- package/dist/esm/utils/ts-helpers.js.map +1 -0
- package/dist/esm/validation/assertions.js +46 -0
- package/dist/esm/validation/assertions.js.map +1 -0
- package/dist/esm/validation/helpers.js +18 -0
- package/dist/esm/validation/helpers.js.map +1 -0
- package/dist/types/analytics/dispatch.d.ts +20 -0
- package/dist/types/analytics/dispatch.d.ts.map +1 -0
- package/dist/types/analytics/index.d.ts +12 -0
- package/dist/types/analytics/index.d.ts.map +1 -0
- package/dist/types/callback/index.d.ts +11 -0
- package/dist/types/callback/index.d.ts.map +1 -0
- package/dist/types/connection/index.d.ts +3 -0
- package/dist/types/connection/index.d.ts.map +1 -0
- package/dist/types/context/index.d.ts +44 -0
- package/dist/types/context/index.d.ts.map +1 -0
- package/dist/types/emitter/index.d.ts +25 -0
- package/dist/types/emitter/index.d.ts.map +1 -0
- package/dist/types/emitter/interface.d.ts +27 -0
- package/dist/types/emitter/interface.d.ts.map +1 -0
- package/dist/types/events/index.d.ts +31 -0
- package/dist/types/events/index.d.ts.map +1 -0
- package/dist/types/events/interfaces.d.ts +379 -0
- package/dist/types/events/interfaces.d.ts.map +1 -0
- package/dist/types/index.d.ts +19 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/logger/index.d.ts +19 -0
- package/dist/types/logger/index.d.ts.map +1 -0
- package/dist/types/plugins/index.d.ts +25 -0
- package/dist/types/plugins/index.d.ts.map +1 -0
- package/dist/types/priority-queue/backoff.d.ts +13 -0
- package/dist/types/priority-queue/backoff.d.ts.map +1 -0
- package/dist/types/priority-queue/index.d.ts +25 -0
- package/dist/types/priority-queue/index.d.ts.map +1 -0
- package/dist/types/queue/delivery.d.ts +5 -0
- package/dist/types/queue/delivery.d.ts.map +1 -0
- package/dist/types/queue/event-queue.d.ts +43 -0
- package/dist/types/queue/event-queue.d.ts.map +1 -0
- package/dist/types/stats/index.d.ts +34 -0
- package/dist/types/stats/index.d.ts.map +1 -0
- package/dist/types/task/task-group.d.ts +6 -0
- package/dist/types/task/task-group.d.ts.map +1 -0
- package/dist/types/user/index.d.ts +6 -0
- package/dist/types/user/index.d.ts.map +1 -0
- package/dist/types/utils/bind-all.d.ts +4 -0
- package/dist/types/utils/bind-all.d.ts.map +1 -0
- package/dist/types/utils/environment.d.ts +3 -0
- package/dist/types/utils/environment.d.ts.map +1 -0
- package/dist/types/utils/get-global.d.ts +2 -0
- package/dist/types/utils/get-global.d.ts.map +1 -0
- package/dist/types/utils/group-by.d.ts +4 -0
- package/dist/types/utils/group-by.d.ts.map +1 -0
- package/dist/types/utils/has-properties.d.ts +4 -0
- package/dist/types/utils/has-properties.d.ts.map +1 -0
- package/dist/types/utils/is-plain-object.d.ts +2 -0
- package/dist/types/utils/is-plain-object.d.ts.map +1 -0
- package/dist/types/utils/is-thenable.d.ts +6 -0
- package/dist/types/utils/is-thenable.d.ts.map +1 -0
- package/dist/types/utils/p-while.d.ts +2 -0
- package/dist/types/utils/p-while.d.ts.map +1 -0
- package/dist/types/utils/pick.d.ts +2 -0
- package/dist/types/utils/pick.d.ts.map +1 -0
- package/dist/types/utils/ts-helpers.d.ts +13 -0
- package/dist/types/utils/ts-helpers.d.ts.map +1 -0
- package/dist/types/validation/assertions.d.ts +8 -0
- package/dist/types/validation/assertions.d.ts.map +1 -0
- package/dist/types/validation/helpers.d.ts +7 -0
- package/dist/types/validation/helpers.d.ts.map +1 -0
- package/package.json +40 -0
- package/src/analytics/dispatch.ts +58 -0
- package/src/analytics/index.ts +11 -0
- package/src/callback/index.ts +51 -0
- package/src/connection/index.ts +13 -0
- package/src/context/index.ts +123 -0
- package/src/emitter/index.ts +65 -0
- package/src/emitter/interface.ts +31 -0
- package/src/events/index.ts +285 -0
- package/src/events/interfaces.ts +453 -0
- package/src/index.ts +18 -0
- package/src/logger/index.ts +74 -0
- package/src/plugins/index.ts +43 -0
- package/src/priority-queue/backoff.ts +24 -0
- package/src/priority-queue/index.ts +103 -0
- package/src/queue/delivery.ts +73 -0
- package/src/queue/event-queue.ts +320 -0
- package/src/stats/index.ts +88 -0
- package/src/task/task-group.ts +31 -0
- package/src/user/index.ts +7 -0
- package/src/utils/bind-all.ts +19 -0
- package/src/utils/environment.ts +7 -0
- package/src/utils/get-global.ts +16 -0
- package/src/utils/group-by.ts +30 -0
- package/src/utils/has-properties.ts +7 -0
- package/src/utils/is-plain-object.ts +26 -0
- package/src/utils/is-thenable.ts +9 -0
- package/src/utils/p-while.ts +12 -0
- package/src/utils/pick.ts +8 -0
- package/src/utils/ts-helpers.ts +13 -0
- package/src/validation/assertions.ts +54 -0
- package/src/validation/helpers.ts +27 -0
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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"}
|