@powerhousedao/analytics-engine-core 6.0.0-dev.105 → 6.0.0-dev.107

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.
@@ -0,0 +1,130 @@
1
+ import { AnalyticsDimension, AnalyticsGranularity, AnalyticsPath, AnalyticsPathSegment, AnalyticsPeriod, AnalyticsQuery, AnalyticsSerializerTypes, AnalyticsSeries, AnalyticsSeriesInput, AnalyticsSeriesQuery, AnalyticsUpdateCallback, CompoundAnalyticsQuery, IAnalyticsStore, MultiCurrencyConversion } from "@powerhousedao/shared/analytics";
2
+ import { DateTime } from "luxon";
3
+
4
+ //#region src/AnalyticsProfiler.d.ts
5
+ interface IAnalyticsProfiler {
6
+ get prefix(): string;
7
+ push: (system: string) => void;
8
+ pop: () => void;
9
+ popAndReturn: (result: any) => any;
10
+ record: <T>(metric: string, fn: () => Promise<T>) => Promise<T>;
11
+ recordSync: <T>(metric: string, fn: () => T) => T;
12
+ }
13
+ declare class AnalyticsProfiler implements IAnalyticsProfiler {
14
+ private readonly _ns;
15
+ private readonly _logger;
16
+ private readonly _stack;
17
+ private _prefix;
18
+ constructor(_ns: string, _logger: (metricName: string, ms: number) => void);
19
+ get prefix(): string;
20
+ push(system: string): void;
21
+ pop(): void;
22
+ popAndReturn(result: any): any;
23
+ record<T>(metric: string, fn: () => Promise<T>): Promise<T>;
24
+ recordSync<T>(metric: string, fn: () => T): T;
25
+ updatePrefix(): void;
26
+ }
27
+ declare class PassthroughAnalyticsProfiler implements IAnalyticsProfiler {
28
+ get prefix(): string;
29
+ push(system: string): void;
30
+ pop(): void;
31
+ popAndReturn(result: any): any;
32
+ record<T>(metric: string, fn: () => Promise<T>): Promise<T>;
33
+ recordSync<T>(metric: string, fn: () => T): T;
34
+ }
35
+ //#endregion
36
+ //#region src/AnalyticsDiscretizer.d.ts
37
+ type GroupedPeriodResult = {
38
+ period: string;
39
+ start: DateTime;
40
+ end: DateTime;
41
+ rows: Array<{
42
+ dimensions: Record<string, AnalyticsDimension>;
43
+ metric: string;
44
+ unit: string | null;
45
+ value: number;
46
+ /**
47
+ * The sum of all metric values over this period?
48
+ */
49
+ sum: number;
50
+ }>;
51
+ };
52
+ type GroupedPeriodResults = Array<GroupedPeriodResult>;
53
+ //#endregion
54
+ //#region src/AnalyticsQueryEngine.d.ts
55
+ declare class AnalyticsQueryEngine {
56
+ private readonly _analyticsStore;
57
+ private readonly _profiler;
58
+ constructor(_analyticsStore: IAnalyticsStore, profiler?: IAnalyticsProfiler);
59
+ executeCompound(query: CompoundAnalyticsQuery): Promise<GroupedPeriodResults>;
60
+ execute(query: AnalyticsQuery): Promise<GroupedPeriodResults>;
61
+ executeMultiCurrency(query: AnalyticsQuery, mcc: MultiCurrencyConversion): Promise<GroupedPeriodResults>;
62
+ private _applyVectorOperator;
63
+ private _applyScalarOperator;
64
+ private _calculateOutputValue;
65
+ private _executeSeriesQuery;
66
+ private _applyLods;
67
+ private _applyDimensionsLods;
68
+ getDimensions(): Promise<any>;
69
+ }
70
+ //#endregion
71
+ //#region src/AnalyticsSubscriptionManager.d.ts
72
+ declare class NotificationError extends Error {
73
+ readonly innerErrors: Error[];
74
+ constructor(errors: Error[]);
75
+ }
76
+ /**
77
+ * Manages subscriptions for analytics paths.
78
+ */
79
+ declare class AnalyticsSubscriptionManager {
80
+ private _subscriptions;
81
+ /**
82
+ * Subscribe to updates for an analytics path. A subscribed function will be
83
+ * called for:
84
+ *
85
+ * - exact path matches
86
+ * - matching child paths (i.e. an update to /a/b/c will trigger a callback
87
+ * for /a/b/c, /a/b, and /a)
88
+ * - wildcard matches
89
+ *
90
+ * @param path The analytics path to subscribe to.
91
+ * @param callback Function to be called when the path is updated.
92
+ *
93
+ * @returns A function that, when called, unsubscribes from the updates.
94
+ */
95
+ subscribeToPath(path: AnalyticsPath, callback: AnalyticsUpdateCallback): () => void;
96
+ /**
97
+ * Notifies subscribers about updates to paths.
98
+ *
99
+ * @param paths The paths that were updated.
100
+ */
101
+ notifySubscribers(paths: AnalyticsPath[]): void;
102
+ /**
103
+ * Normalizes a path string to ensure consistent comparison.
104
+ */
105
+ private normalizePath;
106
+ /**
107
+ * Checks if a path matches a subscription pattern that may contain wildcards.
108
+ */
109
+ private pathMatchesWildcardPattern;
110
+ /**
111
+ * Gets all path prefixes for a given path.
112
+ *
113
+ * For example, for '/a/b/c' it returns ['/a', '/a/b', '/a/b/c'].
114
+ */
115
+ private getPathPrefixes;
116
+ }
117
+ //#endregion
118
+ //#region src/types.d.ts
119
+ type SqlQueryLogger = (index: number, query: string) => void;
120
+ type SqlResultsLogger = (index: number, results: any) => void;
121
+ interface ISqlExecutor {
122
+ execute(rawSql: string, params?: unknown[]): Promise<any>;
123
+ }
124
+ //#endregion
125
+ //#region src/util.d.ts
126
+ declare const defaultQueryLogger: (tag: string) => SqlQueryLogger;
127
+ declare const defaultResultsLogger: (tag: string) => SqlResultsLogger;
128
+ //#endregion
129
+ export { type AnalyticsDimension, AnalyticsGranularity, AnalyticsPath, AnalyticsPathSegment, AnalyticsPeriod, AnalyticsProfiler, type AnalyticsQuery, AnalyticsQueryEngine, AnalyticsSerializerTypes, type AnalyticsSeries, type AnalyticsSeriesInput, type AnalyticsSeriesQuery, AnalyticsSubscriptionManager, type AnalyticsUpdateCallback, type GroupedPeriodResult, type GroupedPeriodResults, type IAnalyticsProfiler, type IAnalyticsStore, ISqlExecutor, NotificationError, PassthroughAnalyticsProfiler, SqlQueryLogger, SqlResultsLogger, defaultQueryLogger, defaultResultsLogger };
130
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/AnalyticsProfiler.ts","../src/AnalyticsDiscretizer.ts","../src/AnalyticsQueryEngine.ts","../src/AnalyticsSubscriptionManager.ts","../src/types.ts","../src/util.ts"],"mappings":";;;;UAAiB,kBAAA;EAAA,IACX,MAAA;EAEJ,IAAA,GAAO,MAAA;EACP,GAAA;EACA,YAAA,GAAe,MAAA;EAEf,MAAA,MAAY,MAAA,UAAgB,EAAA,QAAU,OAAA,CAAQ,CAAA,MAAO,OAAA,CAAQ,CAAA;EAC7D,UAAA,MAAgB,MAAA,UAAgB,EAAA,QAAU,CAAA,KAAM,CAAA;AAAA;AAAA,cAGrC,iBAAA,YAA6B,kBAAA;EAAA,iBAKrB,GAAA;EAAA,iBACA,OAAA;EAAA,iBALF,MAAA;EAAA,QACT,OAAA;cAGW,GAAA,UACA,OAAA,GAAU,UAAA,UAAoB,EAAA;EAAA,IAK7C,MAAA,CAAA;EAIJ,IAAA,CAAK,MAAA;EAML,GAAA,CAAA;EAMA,YAAA,CAAa,MAAA;EAMP,MAAA,GAAA,CAAU,MAAA,UAAgB,EAAA,QAAU,OAAA,CAAQ,CAAA,IAAK,OAAA,CAAQ,CAAA;EAW/D,UAAA,GAAA,CAAc,MAAA,UAAgB,EAAA,QAAU,CAAA,GAAI,CAAA;EAW5C,YAAA,CAAA;AAAA;AAAA,cASW,4BAAA,YAAwC,kBAAA;EAAA,IAC/C,MAAA,CAAA;EAIJ,IAAA,CAAK,MAAA;EAIL,GAAA,CAAA;EAIA,YAAA,CAAa,MAAA;EAIP,MAAA,GAAA,CAAU,MAAA,UAAgB,EAAA,QAAU,OAAA,CAAQ,CAAA,IAAE,OAAA,CAAA,CAAA;EAIpD,UAAA,GAAA,CAAc,MAAA,UAAgB,EAAA,QAAU,CAAA,GAAC,CAAA;AAAA;;;KC9E/B,mBAAA;EACV,MAAA;EACA,KAAA,EAAO,QAAA;EACP,GAAA,EAAK,QAAA;EACL,IAAA,EAAM,KAAA;IACJ,UAAA,EAAY,MAAA,SAAe,kBAAA;IAC3B,MAAA;IACA,IAAA;IACA,KAAA;IDlB+C;;;ICuB/C,GAAA;EAAA;AAAA;AAAA,KAIQ,oBAAA,GAAuB,KAAA,CAAM,mBAAA;;;cCd5B,oBAAA;EAAA,iBAIQ,eAAA;EAAA,iBAHF,SAAA;cAGE,eAAA,EAAiB,eAAA,EAClC,QAAA,GAAW,kBAAA;EAKA,eAAA,CACX,KAAA,EAAO,sBAAA,GACN,OAAA,CAAQ,oBAAA;EA0DE,OAAA,CAAQ,KAAA,EAAO,cAAA,GAAiB,OAAA,CAAQ,oBAAA;EAsBxC,oBAAA,CACX,KAAA,EAAO,cAAA,EACP,GAAA,EAAK,uBAAA,GACJ,OAAA,CAAQ,oBAAA;EAAA,QAwCG,oBAAA;EAAA,QAgBA,oBAAA;EAAA,QAoDN,qBAAA;EAAA,QAiBM,mBAAA;EAAA,QAcN,UAAA;EAAA,QAUA,oBAAA;EAmBK,aAAA,CAAA,GAAiB,OAAA;AAAA;;;cCzRnB,iBAAA,SAA0B,KAAA;EAAA,SACrB,WAAA,EAAa,KAAA;cAEjB,MAAA,EAAQ,KAAA;AAAA;;;;cAWT,4BAAA;EAAA,QACH,cAAA;EHVkC;;;;;;;;;;;;;;EG0BnC,eAAA,CACL,IAAA,EAAM,aAAA,EACN,QAAA,EAAU,uBAAA;EH7BgB;;;;;EGyDrB,iBAAA,CAAkB,KAAA,EAAO,aAAA;EHxDU;;;EAAA,QG0HlC,aAAA;EH1HyC;AAGnD;;EAHmD,QGoIzC,0BAAA;EHhG0C;;;;;EAAA,QG+I1C,eAAA;AAAA;;;KC3LE,cAAA,IAAkB,KAAA,UAAe,KAAA;AAAA,KAEjC,gBAAA,IAAoB,KAAA,UAAe,OAAA;AAAA,UAE9B,YAAA;EACf,OAAA,CAAQ,MAAA,UAAgB,MAAA,eAAqB,OAAA;AAAA;;;cCHlC,kBAAA,GACV,GAAA,aAAc,cAAA;AAAA,cAKJ,oBAAA,GACV,GAAA,aAAc,gBAAA"}