@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.
- package/dist/index.d.ts +130 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +672 -0
- package/dist/index.js.map +1 -0
- package/package.json +9 -7
- package/dist/src/AnalyticsDiscretizer.d.ts +0 -60
- package/dist/src/AnalyticsDiscretizer.d.ts.map +0 -1
- package/dist/src/AnalyticsPath.d.ts +0 -2
- package/dist/src/AnalyticsPath.d.ts.map +0 -1
- package/dist/src/AnalyticsPeriod.d.ts +0 -2
- package/dist/src/AnalyticsPeriod.d.ts.map +0 -1
- package/dist/src/AnalyticsProfiler.d.ts +0 -31
- package/dist/src/AnalyticsProfiler.d.ts.map +0 -1
- package/dist/src/AnalyticsQuery.d.ts +0 -3
- package/dist/src/AnalyticsQuery.d.ts.map +0 -1
- package/dist/src/AnalyticsQueryEngine.d.ts +0 -20
- package/dist/src/AnalyticsQueryEngine.d.ts.map +0 -1
- package/dist/src/AnalyticsQueryResult.d.ts +0 -10
- package/dist/src/AnalyticsQueryResult.d.ts.map +0 -1
- package/dist/src/AnalyticsSubscriptionManager.d.ts +0 -48
- package/dist/src/AnalyticsSubscriptionManager.d.ts.map +0 -1
- package/dist/src/AnalyticsTimeSlicer.d.ts +0 -29
- package/dist/src/AnalyticsTimeSlicer.d.ts.map +0 -1
- package/dist/src/IAnalyticsCache.d.ts +0 -7
- package/dist/src/IAnalyticsCache.d.ts.map +0 -1
- package/dist/src/IAnalyticsStore.d.ts +0 -2
- package/dist/src/IAnalyticsStore.d.ts.map +0 -1
- package/dist/src/index.d.ts +0 -11
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -5576
package/dist/index.d.ts
ADDED
|
@@ -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"}
|