@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.
- 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 +149 -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 +41 -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 +146 -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 +37 -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 +27 -0
- package/dist/types/events/index.d.ts.map +1 -0
- package/dist/types/events/interfaces.d.ts +373 -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 +7 -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 +39 -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 +280 -0
- package/src/events/interfaces.ts +447 -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 +43 -0
- 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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
+
}
|