@powerhousedao/analytics-engine-core 0.6.2 → 0.6.4
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/src/AnalyticsDiscretizer.d.ts +59 -0
- package/dist/src/AnalyticsDiscretizer.d.ts.map +1 -0
- package/dist/src/AnalyticsPath.d.ts +36 -0
- package/dist/src/AnalyticsPath.d.ts.map +1 -0
- package/dist/src/AnalyticsPeriod.d.ts +49 -0
- package/dist/src/AnalyticsPeriod.d.ts.map +1 -0
- package/dist/src/AnalyticsProfiler.d.ts +31 -0
- package/dist/src/AnalyticsProfiler.d.ts.map +1 -0
- package/dist/src/AnalyticsQuery.d.ts +86 -0
- package/dist/src/AnalyticsQuery.d.ts.map +1 -0
- package/dist/src/AnalyticsQueryEngine.d.ts +20 -0
- package/dist/src/AnalyticsQueryEngine.d.ts.map +1 -0
- package/dist/src/AnalyticsQueryResult.d.ts +10 -0
- package/dist/src/AnalyticsQueryResult.d.ts.map +1 -0
- package/dist/src/AnalyticsSubscriptionManager.d.ts +48 -0
- package/dist/src/AnalyticsSubscriptionManager.d.ts.map +1 -0
- package/dist/src/AnalyticsTimeSlicer.d.ts +29 -0
- package/dist/src/AnalyticsTimeSlicer.d.ts.map +1 -0
- package/dist/src/IAnalyticsCache.d.ts +7 -0
- package/dist/src/IAnalyticsCache.d.ts.map +1 -0
- package/dist/src/IAnalyticsStore.d.ts +26 -0
- package/dist/src/IAnalyticsStore.d.ts.map +1 -0
- package/dist/src/index.d.ts +11 -0
- package/dist/src/index.d.ts.map +1 -0
- package/{build → dist/src}/index.js +0 -3
- package/package.json +3 -5
- package/build/index.js.map +0 -18
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { type AnalyticsDimension, AnalyticsGranularity, type AnalyticsSeries } from "./AnalyticsQuery.js";
|
|
2
|
+
import { type AnalyticsPeriod } from "./AnalyticsTimeSlicer.js";
|
|
3
|
+
import { DateTime } from "luxon";
|
|
4
|
+
export declare const getQuarter: (date: DateTime) => number;
|
|
5
|
+
export type GroupedPeriodResult = {
|
|
6
|
+
period: string;
|
|
7
|
+
start: DateTime;
|
|
8
|
+
end: DateTime;
|
|
9
|
+
rows: Array<{
|
|
10
|
+
dimensions: Record<string, AnalyticsDimension>;
|
|
11
|
+
metric: string;
|
|
12
|
+
unit: string | null;
|
|
13
|
+
value: number;
|
|
14
|
+
/**
|
|
15
|
+
* The sum of all metric values over this period?
|
|
16
|
+
*/
|
|
17
|
+
sum: number;
|
|
18
|
+
}>;
|
|
19
|
+
};
|
|
20
|
+
export type GroupedPeriodResults = Array<GroupedPeriodResult>;
|
|
21
|
+
export declare class AnalyticsDiscretizer {
|
|
22
|
+
static discretize(series: AnalyticsSeries<string>[], dimensions: string[], start: DateTime | null, end: DateTime | null, granularity: AnalyticsGranularity): GroupedPeriodResults;
|
|
23
|
+
private static _calculateRange;
|
|
24
|
+
static _groupResultsByPeriod(periods: AnalyticsPeriod[], dimensionedResults: DimensionedSeries[]): GroupedPeriodResults;
|
|
25
|
+
static _getPeriodString(p: AnalyticsPeriod): string;
|
|
26
|
+
static _discretizeNode(node: DiscretizerIndexNode, dimensionValues: Record<string, string>, remainingDimensions: string[], periods: AnalyticsPeriod[]): DimensionedSeries[];
|
|
27
|
+
static _discretizeLeaf(leaf: DiscretizerIndexLeaf, periods: AnalyticsPeriod[], metric: string, dimensionValues: Record<string, string>): DimensionedSeries[];
|
|
28
|
+
static _discretizeSeries(series: AnalyticsSeries<string>[], periods: AnalyticsPeriod[]): Series;
|
|
29
|
+
static _getValue(series: AnalyticsSeries<string>, when: DateTime): number;
|
|
30
|
+
static _getSingleValue(series: AnalyticsSeries<string>, when: DateTime): number;
|
|
31
|
+
static _getVestValue(series: AnalyticsSeries<string>, when: DateTime): number;
|
|
32
|
+
static _buildIndex(series: AnalyticsSeries<string>[], dimensions: string[]): DiscretizerIndexNode;
|
|
33
|
+
static _buildMetricsIndex(series: AnalyticsSeries<string>[]): DiscretizerIndexNode;
|
|
34
|
+
static _buildUnitIndex(series: AnalyticsSeries<string>[]): DiscretizerIndexLeaf;
|
|
35
|
+
}
|
|
36
|
+
type DiscretizerIndexLeaf = {
|
|
37
|
+
[k: string]: AnalyticsSeries<string>[];
|
|
38
|
+
};
|
|
39
|
+
type DiscretizerIndexNode = {
|
|
40
|
+
[k: string]: DiscretizerIndexNode | DiscretizerIndexLeaf;
|
|
41
|
+
};
|
|
42
|
+
type Series = Record<string, {
|
|
43
|
+
/**
|
|
44
|
+
* How much the metric increased from the beginning of the series to the end of the specified period.
|
|
45
|
+
*/
|
|
46
|
+
inc: number;
|
|
47
|
+
/**
|
|
48
|
+
* The sum of all metric values from the beginning of the series to the end of the specified period.
|
|
49
|
+
*/
|
|
50
|
+
sum: number;
|
|
51
|
+
}>;
|
|
52
|
+
type DimensionedSeries = {
|
|
53
|
+
unit: string;
|
|
54
|
+
metric: string;
|
|
55
|
+
dimensions: Record<string, AnalyticsDimension>;
|
|
56
|
+
series: Series;
|
|
57
|
+
};
|
|
58
|
+
export {};
|
|
59
|
+
//# sourceMappingURL=AnalyticsDiscretizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsDiscretizer.d.ts","sourceRoot":"","sources":["../../src/AnalyticsDiscretizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AnalyticsSerializerTypes } from "./AnalyticsPeriod.js";
|
|
2
|
+
export declare class AnalyticsPath {
|
|
3
|
+
get segments(): AnalyticsPathSegment[];
|
|
4
|
+
private _segments;
|
|
5
|
+
static fromString(path: string): AnalyticsPath;
|
|
6
|
+
static fromStringArray(segments: string[]): AnalyticsPath;
|
|
7
|
+
static fromArray(segments: AnalyticsPathSegment[]): AnalyticsPath;
|
|
8
|
+
static fromJSON(json: any): AnalyticsPath;
|
|
9
|
+
constructor(segments: AnalyticsPathSegment[]);
|
|
10
|
+
toJSON(): {
|
|
11
|
+
_t: AnalyticsSerializerTypes;
|
|
12
|
+
_v: string;
|
|
13
|
+
};
|
|
14
|
+
toString(tail?: string): string;
|
|
15
|
+
firstSegment(): AnalyticsPathSegment;
|
|
16
|
+
reduce(): AnalyticsPath;
|
|
17
|
+
applyLod(levelOfDetail: number): AnalyticsPath;
|
|
18
|
+
}
|
|
19
|
+
export declare class AnalyticsPathSegment {
|
|
20
|
+
get filters(): NullableStrings;
|
|
21
|
+
get groups(): NullableStrings;
|
|
22
|
+
private _filters;
|
|
23
|
+
private _groups;
|
|
24
|
+
static fromString(segment: string): AnalyticsPathSegment;
|
|
25
|
+
static escape(segment: string): string;
|
|
26
|
+
static unescape(segment: string): string;
|
|
27
|
+
constructor(filters?: NullableStrings, groups?: NullableStrings);
|
|
28
|
+
toJSON(): {
|
|
29
|
+
_t: AnalyticsSerializerTypes;
|
|
30
|
+
_v: string;
|
|
31
|
+
};
|
|
32
|
+
toString(): string;
|
|
33
|
+
}
|
|
34
|
+
type NullableStrings = string[] | null;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=AnalyticsPath.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPath.d.ts","sourceRoot":"","sources":["../../src/AnalyticsPath.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,qBAAa,aAAa;IACxB,IAAI,QAAQ,IAAI,oBAAoB,EAAE,CAErC;IAED,OAAO,CAAC,SAAS,CAAyB;WAE5B,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;WAQvC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa;WAMlD,SAAS,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,aAAa;WAI1D,QAAQ,CAAC,IAAI,EAAE,GAAG,GAAG,aAAa;gBAOpC,QAAQ,EAAE,oBAAoB,EAAE;IAIrC,MAAM;;;;IAON,QAAQ,CAAC,IAAI,GAAE,MAAW,GAAG,MAAM;IAInC,YAAY,IAAI,oBAAoB;IAMpC,MAAM,IAAI,aAAa;IAUvB,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa;CAStD;AAED,qBAAa,oBAAoB;IAC/B,IAAI,OAAO,IAAI,eAAe,CAE7B;IACD,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,OAAO,CAAyB;WAE1B,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,oBAAoB;WA0BjD,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;WAK/B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;gBAKnC,OAAO,GAAE,eAAsB,EAAE,MAAM,GAAE,eAAoB;IAKlE,MAAM;;;;IAON,QAAQ,IAAI,MAAM;CAoB1B;AAED,KAAK,eAAe,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare enum AnalyticsSerializerTypes {
|
|
2
|
+
AnalyticsPath = 0,
|
|
3
|
+
AnalyticsPathSegment = 1,
|
|
4
|
+
AnalyticsPeriod = 2
|
|
5
|
+
}
|
|
6
|
+
export declare enum AnalyticsPeriodType {
|
|
7
|
+
Year = 0,
|
|
8
|
+
Quarter = 1,
|
|
9
|
+
Month = 2
|
|
10
|
+
}
|
|
11
|
+
export declare class AnalyticsPeriod {
|
|
12
|
+
get type(): AnalyticsPeriodType;
|
|
13
|
+
get year(): number;
|
|
14
|
+
get quarter(): number | null;
|
|
15
|
+
get month(): number | null;
|
|
16
|
+
private _type;
|
|
17
|
+
private _year;
|
|
18
|
+
private _quarter;
|
|
19
|
+
private _month;
|
|
20
|
+
toJSON(): {
|
|
21
|
+
_t: AnalyticsSerializerTypes;
|
|
22
|
+
_v: string;
|
|
23
|
+
};
|
|
24
|
+
static fromString(period: string): AnalyticsPeriod;
|
|
25
|
+
static fillRange(p1: AnalyticsPeriod | string, p2: AnalyticsPeriod | string): AnalyticsPeriod[];
|
|
26
|
+
static normalizeQuarters(year: number, quarter: number): PeriodTriple;
|
|
27
|
+
static normalizeMonths(year: number, month: number): PeriodTriple;
|
|
28
|
+
constructor(year: number, quarter?: number, month?: number);
|
|
29
|
+
equals(period: AnalyticsPeriod | string): boolean;
|
|
30
|
+
toString(): string;
|
|
31
|
+
startAsSqlDate(): string;
|
|
32
|
+
comesAfter(period: AnalyticsPeriod): boolean;
|
|
33
|
+
comesBefore(period: AnalyticsPeriod): boolean;
|
|
34
|
+
contains(period: AnalyticsPeriod): boolean;
|
|
35
|
+
firstMonth(): AnalyticsPeriod;
|
|
36
|
+
lastMonth(): AnalyticsPeriod;
|
|
37
|
+
nextPeriod(n?: number): AnalyticsPeriod;
|
|
38
|
+
previousPeriod(n?: number): AnalyticsPeriod;
|
|
39
|
+
private _start;
|
|
40
|
+
private _end;
|
|
41
|
+
private _getNumericComparator;
|
|
42
|
+
private _addPeriods;
|
|
43
|
+
private _initAsYear;
|
|
44
|
+
private _initAsQuarter;
|
|
45
|
+
private _initAsMonth;
|
|
46
|
+
}
|
|
47
|
+
type PeriodTriple = [number, number | undefined, number | undefined];
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=AnalyticsPeriod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsPeriod.d.ts","sourceRoot":"","sources":["../../src/AnalyticsPeriod.ts"],"names":[],"mappings":"AAAA,oBAAY,wBAAwB;IAClC,aAAa,IAAA;IACb,oBAAoB,IAAA;IACpB,eAAe,IAAA;CAChB;AAED,oBAAY,mBAAmB;IAC7B,IAAI,IAAA;IACJ,OAAO,IAAA;IACP,KAAK,IAAA;CACN;AAED,qBAAa,eAAe;IAC1B,IAAI,IAAI,IAAI,mBAAmB,CAE9B;IACD,IAAI,IAAI,IAAI,MAAM,CAEjB;IACD,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAE3B;IACD,IAAI,KAAK,IAAI,MAAM,GAAG,IAAI,CAEzB;IAED,OAAO,CAAC,KAAK,CAAiD;IAC9D,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,MAAM,CAAuB;IAE9B,MAAM;;;;WAOC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe;WA2B3C,SAAS,CACrB,EAAE,EAAE,eAAe,GAAG,MAAM,EAC5B,EAAE,EAAE,eAAe,GAAG,MAAM,GAC3B,eAAe,EAAE;WA0BN,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY;WAM9D,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,YAAY;gBAOrD,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;IAY1D,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,OAAO;IAOjD,QAAQ,IAAI,MAAM;IAgBlB,cAAc,IAAI,MAAM;IAqBxB,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO;IAI5C,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO;IAI7C,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO;IAI1C,UAAU,IAAI,eAAe;IAU7B,SAAS,IAAI,eAAe;IAU5B,UAAU,CAAC,CAAC,GAAE,MAAU,GAAG,eAAe;IAI1C,cAAc,CAAC,CAAC,GAAE,MAAU,GAAG,eAAe;IAIrD,OAAO,CAAC,MAAM;IAId,OAAO,CAAC,IAAI;IAIZ,OAAO,CAAC,qBAAqB;IAY7B,OAAO,CAAC,WAAW;IAsBnB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,YAAY;CAgBrB;AAOD,KAAK,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface IAnalyticsProfiler {
|
|
2
|
+
get prefix(): string;
|
|
3
|
+
push: (system: string) => void;
|
|
4
|
+
pop: () => void;
|
|
5
|
+
popAndReturn: (result: any) => any;
|
|
6
|
+
record: <T>(metric: string, fn: () => Promise<T>) => Promise<T>;
|
|
7
|
+
recordSync: <T>(metric: string, fn: () => T) => T;
|
|
8
|
+
}
|
|
9
|
+
export declare class AnalyticsProfiler implements IAnalyticsProfiler {
|
|
10
|
+
private readonly _ns;
|
|
11
|
+
private readonly _logger;
|
|
12
|
+
private readonly _stack;
|
|
13
|
+
private _prefix;
|
|
14
|
+
constructor(_ns: string, _logger: (metricName: string, ms: number) => void);
|
|
15
|
+
get prefix(): string;
|
|
16
|
+
push(system: string): void;
|
|
17
|
+
pop(): void;
|
|
18
|
+
popAndReturn(result: any): any;
|
|
19
|
+
record<T>(metric: string, fn: () => Promise<T>): Promise<T>;
|
|
20
|
+
recordSync<T>(metric: string, fn: () => T): T;
|
|
21
|
+
updatePrefix(): void;
|
|
22
|
+
}
|
|
23
|
+
export declare class PassthroughAnalyticsProfiler implements IAnalyticsProfiler {
|
|
24
|
+
get prefix(): string;
|
|
25
|
+
push(system: string): void;
|
|
26
|
+
pop(): void;
|
|
27
|
+
popAndReturn(result: any): any;
|
|
28
|
+
record<T>(metric: string, fn: () => Promise<T>): Promise<T>;
|
|
29
|
+
recordSync<T>(metric: string, fn: () => T): T;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=AnalyticsProfiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsProfiler.d.ts","sourceRoot":"","sources":["../../src/AnalyticsProfiler.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IACjC,IAAI,MAAM,IAAI,MAAM,CAAC;IAErB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,GAAG,EAAE,MAAM,IAAI,CAAC;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IAEnC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;IAChE,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;CACnD;AAED,qBAAa,iBAAkB,YAAW,kBAAkB;IAKxD,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAL1B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAc;gBAGV,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI;IAKpE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAM1B,GAAG,IAAI,IAAI;IAMX,YAAY,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG;IAMxB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAWjE,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAW7C,YAAY,IAAI,IAAI;CAOrB;AAED,qBAAa,4BAA6B,YAAW,kBAAkB;IACrE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,CAAC,MAAM,EAAE,MAAM;IAInB,GAAG;IAIH,YAAY,CAAC,MAAM,EAAE,GAAG;IAIlB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC;IAIpD,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC;CAG1C"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { DateTime } from "luxon";
|
|
2
|
+
import { AnalyticsPath } from "./AnalyticsPath.js";
|
|
3
|
+
export type AnalyticsSeriesQuery = {
|
|
4
|
+
start: DateTime | null;
|
|
5
|
+
end: DateTime | null;
|
|
6
|
+
metrics: string[];
|
|
7
|
+
currency?: AnalyticsPath;
|
|
8
|
+
select: Record<string, AnalyticsPath[]>;
|
|
9
|
+
};
|
|
10
|
+
export type AnalyticsQuery = AnalyticsSeriesQuery & {
|
|
11
|
+
granularity: AnalyticsGranularity;
|
|
12
|
+
lod: Record<string, number | null>;
|
|
13
|
+
};
|
|
14
|
+
export type AnalyticsSeries<D = string | AnalyticsDimension> = {
|
|
15
|
+
source: AnalyticsPath;
|
|
16
|
+
start: DateTime;
|
|
17
|
+
end: DateTime | null;
|
|
18
|
+
metric: string;
|
|
19
|
+
value: number;
|
|
20
|
+
unit: string | null;
|
|
21
|
+
fn: string;
|
|
22
|
+
params: Record<string, any> | null;
|
|
23
|
+
dimensions: Record<string, D>;
|
|
24
|
+
};
|
|
25
|
+
export type AnalyticsDimension = {
|
|
26
|
+
path: AnalyticsPath;
|
|
27
|
+
icon: string;
|
|
28
|
+
label: string;
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
31
|
+
export declare enum AnalyticsMetric {
|
|
32
|
+
Budget = 0,
|
|
33
|
+
Forecast = 1,
|
|
34
|
+
Actuals = 2,
|
|
35
|
+
PaymentsOnChain = 3,
|
|
36
|
+
PaymentsOffChainIncluded = 4,
|
|
37
|
+
FTEs = 5
|
|
38
|
+
}
|
|
39
|
+
export type CompoundAnalyticsQuery = {
|
|
40
|
+
start: DateTime | null;
|
|
41
|
+
end: DateTime | null;
|
|
42
|
+
granularity: AnalyticsGranularity;
|
|
43
|
+
lod: Record<string, number | null>;
|
|
44
|
+
select: Record<string, AnalyticsPath[]>;
|
|
45
|
+
expression: CompoundAnalyticsExpression;
|
|
46
|
+
};
|
|
47
|
+
export type CompoundAnalyticsExpression = {
|
|
48
|
+
inputs: CompoundAnalyticsInputs;
|
|
49
|
+
operator: CompoundOperator;
|
|
50
|
+
operand: AnalyticsOperand;
|
|
51
|
+
resultCurrency?: AnalyticsPath;
|
|
52
|
+
};
|
|
53
|
+
export type CompoundAnalyticsInputs = {
|
|
54
|
+
metrics: string[];
|
|
55
|
+
currency?: AnalyticsPath;
|
|
56
|
+
};
|
|
57
|
+
export type AnalyticsOperand = {
|
|
58
|
+
metric: string;
|
|
59
|
+
currency?: AnalyticsPath;
|
|
60
|
+
useSum: boolean;
|
|
61
|
+
};
|
|
62
|
+
export declare enum CompoundOperator {
|
|
63
|
+
VectorAdd = 0,
|
|
64
|
+
VectorSubtract = 1,
|
|
65
|
+
ScalarMultiply = 2,
|
|
66
|
+
ScalarDivide = 3
|
|
67
|
+
}
|
|
68
|
+
export type MultiCurrencyConversion = {
|
|
69
|
+
targetCurrency?: AnalyticsPath;
|
|
70
|
+
conversions: ConversionMetric[];
|
|
71
|
+
};
|
|
72
|
+
export type ConversionMetric = {
|
|
73
|
+
metric: string;
|
|
74
|
+
currency?: AnalyticsPath;
|
|
75
|
+
};
|
|
76
|
+
export declare enum AnalyticsGranularity {
|
|
77
|
+
Total = 0,
|
|
78
|
+
Annual = 1,
|
|
79
|
+
SemiAnnual = 2,
|
|
80
|
+
Quarterly = 3,
|
|
81
|
+
Monthly = 4,
|
|
82
|
+
Weekly = 5,
|
|
83
|
+
Daily = 6,
|
|
84
|
+
Hourly = 7
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=AnalyticsQuery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsQuery.d.ts","sourceRoot":"","sources":["../../src/AnalyticsQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type GroupedPeriodResults } from "./AnalyticsDiscretizer.js";
|
|
2
|
+
import { type IAnalyticsProfiler } from "./AnalyticsProfiler.js";
|
|
3
|
+
import { type AnalyticsQuery, type CompoundAnalyticsQuery, type MultiCurrencyConversion } from "./AnalyticsQuery.js";
|
|
4
|
+
import { type IAnalyticsStore } from "./IAnalyticsStore.js";
|
|
5
|
+
export declare class AnalyticsQueryEngine {
|
|
6
|
+
private readonly _analyticsStore;
|
|
7
|
+
private readonly _profiler;
|
|
8
|
+
constructor(_analyticsStore: IAnalyticsStore, profiler?: IAnalyticsProfiler);
|
|
9
|
+
executeCompound(query: CompoundAnalyticsQuery): Promise<GroupedPeriodResults>;
|
|
10
|
+
execute(query: AnalyticsQuery): Promise<GroupedPeriodResults>;
|
|
11
|
+
executeMultiCurrency(query: AnalyticsQuery, mcc: MultiCurrencyConversion): Promise<GroupedPeriodResults>;
|
|
12
|
+
private _applyVectorOperator;
|
|
13
|
+
private _applyScalarOperator;
|
|
14
|
+
private _calculateOutputValue;
|
|
15
|
+
private _executeSeriesQuery;
|
|
16
|
+
private _applyLods;
|
|
17
|
+
private _applyDimensionsLods;
|
|
18
|
+
getDimensions(): Promise<any>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=AnalyticsQueryEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsQueryEngine.d.ts","sourceRoot":"","sources":["../../src/AnalyticsQueryEngine.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,KAAK,kBAAkB,EAExB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAE7B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D,qBAAa,oBAAoB;IAI7B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAHlC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;gBAG5B,eAAe,EAAE,eAAe,EACjD,QAAQ,CAAC,EAAE,kBAAkB;IAKlB,eAAe,CAC1B,KAAK,EAAE,sBAAsB,GAC5B,OAAO,CAAC,oBAAoB,CAAC;IA0DnB,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAsB7D,oBAAoB,CAC/B,KAAK,EAAE,cAAc,EACrB,GAAG,EAAE,uBAAuB,GAC3B,OAAO,CAAC,oBAAoB,CAAC;YAwClB,oBAAoB;YAgBpB,oBAAoB;IAoDlC,OAAO,CAAC,qBAAqB;YAiBf,mBAAmB;IAcjC,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,oBAAoB;IAmBf,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC;CAW3C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AnalyticsPath } from "./AnalyticsPath.js";
|
|
2
|
+
import { AnalyticsPeriod } from "./AnalyticsPeriod.js";
|
|
3
|
+
export type AnalyticsQueryResultRow = {
|
|
4
|
+
period: AnalyticsPeriod;
|
|
5
|
+
dimensions: Record<string, AnalyticsPath>;
|
|
6
|
+
currency: string;
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
export type AnalyticsQueryResult = Array<AnalyticsQueryResultRow>;
|
|
10
|
+
//# sourceMappingURL=AnalyticsQueryResult.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsQueryResult.d.ts","sourceRoot":"","sources":["../../src/AnalyticsQueryResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,uBAAuB,CAAC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { AnalyticsPath } from "./AnalyticsPath.js";
|
|
2
|
+
import type { AnalyticsUpdateCallback } from "./IAnalyticsStore.js";
|
|
3
|
+
export declare class NotificationError extends Error {
|
|
4
|
+
readonly innerErrors: Error[];
|
|
5
|
+
constructor(errors: Error[]);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Manages subscriptions for analytics paths.
|
|
9
|
+
*/
|
|
10
|
+
export declare class AnalyticsSubscriptionManager {
|
|
11
|
+
private _subscriptions;
|
|
12
|
+
/**
|
|
13
|
+
* Subscribe to updates for an analytics path. A subscribed function will be
|
|
14
|
+
* called for:
|
|
15
|
+
*
|
|
16
|
+
* - exact path matches
|
|
17
|
+
* - matching child paths (i.e. an update to /a/b/c will trigger a callback
|
|
18
|
+
* for /a/b/c, /a/b, and /a)
|
|
19
|
+
* - wildcard matches
|
|
20
|
+
*
|
|
21
|
+
* @param path The analytics path to subscribe to.
|
|
22
|
+
* @param callback Function to be called when the path is updated.
|
|
23
|
+
*
|
|
24
|
+
* @returns A function that, when called, unsubscribes from the updates.
|
|
25
|
+
*/
|
|
26
|
+
subscribeToPath(path: AnalyticsPath, callback: AnalyticsUpdateCallback): () => void;
|
|
27
|
+
/**
|
|
28
|
+
* Notifies subscribers about updates to paths.
|
|
29
|
+
*
|
|
30
|
+
* @param paths The paths that were updated.
|
|
31
|
+
*/
|
|
32
|
+
notifySubscribers(paths: AnalyticsPath[]): void;
|
|
33
|
+
/**
|
|
34
|
+
* Normalizes a path string to ensure consistent comparison.
|
|
35
|
+
*/
|
|
36
|
+
private normalizePath;
|
|
37
|
+
/**
|
|
38
|
+
* Checks if a path matches a subscription pattern that may contain wildcards.
|
|
39
|
+
*/
|
|
40
|
+
private pathMatchesWildcardPattern;
|
|
41
|
+
/**
|
|
42
|
+
* Gets all path prefixes for a given path.
|
|
43
|
+
*
|
|
44
|
+
* For example, for '/a/b/c' it returns ['/a', '/a/b', '/a/b/c'].
|
|
45
|
+
*/
|
|
46
|
+
private getPathPrefixes;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=AnalyticsSubscriptionManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsSubscriptionManager.d.ts","sourceRoot":"","sources":["../../src/AnalyticsSubscriptionManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAEpE,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,WAAW,EAAE,KAAK,EAAE,CAAC;gBAEzB,MAAM,EAAE,KAAK,EAAE;CAM5B;AAED;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,cAAc,CAAwD;IAE9E;;;;;;;;;;;;;OAaG;IACI,eAAe,CACpB,IAAI,EAAE,aAAa,EACnB,QAAQ,EAAE,uBAAuB,GAChC,MAAM,IAAI;IAsBb;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI;IA+DtD;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;;;OAIG;IACH,OAAO,CAAC,eAAe;CAgBxB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DateTime } from "luxon";
|
|
2
|
+
import { AnalyticsGranularity } from "./AnalyticsQuery.js";
|
|
3
|
+
export type AnalyticsRange = {
|
|
4
|
+
start: DateTime;
|
|
5
|
+
end: DateTime;
|
|
6
|
+
granularity: AnalyticsGranularity;
|
|
7
|
+
};
|
|
8
|
+
export type AnalyticsPeriod = {
|
|
9
|
+
period: string;
|
|
10
|
+
start: DateTime;
|
|
11
|
+
end: DateTime;
|
|
12
|
+
};
|
|
13
|
+
interface AnalyticsPeriodSeries {
|
|
14
|
+
start: DateTime;
|
|
15
|
+
end: DateTime;
|
|
16
|
+
granularity: AnalyticsGranularity;
|
|
17
|
+
next(): AnalyticsPeriod | null;
|
|
18
|
+
}
|
|
19
|
+
export declare const getPeriodSeriesArray: (range: AnalyticsRange) => AnalyticsPeriod[];
|
|
20
|
+
export declare const getPeriodSeries: (range: AnalyticsRange) => AnalyticsPeriodSeries;
|
|
21
|
+
export declare const _nextAnnualPeriod: (nextStart: DateTime, seriesEnd: DateTime) => AnalyticsPeriod | null;
|
|
22
|
+
export declare const _nextSemiAnnualPeriod: (nextStart: DateTime, seriesEnd: DateTime) => AnalyticsPeriod | null;
|
|
23
|
+
export declare const _nextQuarterlyPeriod: (nextStart: DateTime, seriesEnd: DateTime) => AnalyticsPeriod | null;
|
|
24
|
+
export declare const _nextMonthlyPeriod: (nextStart: DateTime, seriesEnd: DateTime) => AnalyticsPeriod | null;
|
|
25
|
+
export declare const _nextWeeklyPeriod: (nextStart: DateTime, seriesEnd: DateTime) => AnalyticsPeriod | null;
|
|
26
|
+
export declare const _nextDailyPeriod: (nextStart: DateTime, seriesEnd: DateTime) => AnalyticsPeriod | null;
|
|
27
|
+
export declare const _nextHourlyPeriod: (nextStart: DateTime, seriesEnd: DateTime) => AnalyticsPeriod | null;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=AnalyticsTimeSlicer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsTimeSlicer.d.ts","sourceRoot":"","sources":["../../src/AnalyticsTimeSlicer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,WAAW,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;CACf,CAAC;AAEF,UAAU,qBAAqB;IAC7B,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,EAAE,QAAQ,CAAC;IACd,WAAW,EAAE,oBAAoB,CAAC;IAClC,IAAI,IAAI,eAAe,GAAG,IAAI,CAAC;CAChC;AAED,eAAO,MAAM,oBAAoB,GAC/B,OAAO,cAAc,KACpB,eAAe,EAWjB,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,OAAO,cAAc,KACpB,qBAKF,CAAC;AA+DF,eAAO,MAAM,iBAAiB,GAC5B,WAAW,QAAQ,EACnB,WAAW,QAAQ,KAClB,eAAe,GAAG,IAiBpB,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,WAAW,QAAQ,EACnB,WAAW,QAAQ,KAClB,eAAe,GAAG,IAwBpB,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,WAAW,QAAQ,EACnB,WAAW,QAAQ,KAClB,eAAe,GAAG,IA4BpB,CAAC;AACF,eAAO,MAAM,kBAAkB,GAC7B,WAAW,QAAQ,EACnB,WAAW,QAAQ,KAClB,eAAe,GAAG,IA4BpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,WAAW,QAAQ,EACnB,WAAW,QAAQ,KAClB,eAAe,GAAG,IA8BpB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,WAAW,QAAQ,EACnB,WAAW,QAAQ,KAClB,eAAe,GAAG,IAiBpB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,WAAW,QAAQ,EACnB,WAAW,QAAQ,KAClB,eAAe,GAAG,IAmBpB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { GroupedPeriodResults } from "./AnalyticsDiscretizer.js";
|
|
2
|
+
import type { AnalyticsQuery } from "./AnalyticsQuery.js";
|
|
3
|
+
export interface IAnalyticsCache {
|
|
4
|
+
get(query: AnalyticsQuery): Promise<GroupedPeriodResults | null>;
|
|
5
|
+
set(query: AnalyticsQuery, expirySecs?: number): void;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=IAnalyticsCache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAnalyticsCache.d.ts","sourceRoot":"","sources":["../../src/IAnalyticsCache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IACjE,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACvD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DateTime } from "luxon";
|
|
2
|
+
import { AnalyticsPath } from "./AnalyticsPath.js";
|
|
3
|
+
import type { AnalyticsSeries, AnalyticsSeriesQuery } from "./AnalyticsQuery.js";
|
|
4
|
+
export type AnalyticsSeriesInput = {
|
|
5
|
+
start: DateTime;
|
|
6
|
+
end?: DateTime | null;
|
|
7
|
+
source: AnalyticsPath;
|
|
8
|
+
metric: string;
|
|
9
|
+
value: number;
|
|
10
|
+
unit?: string | null;
|
|
11
|
+
fn?: string | null;
|
|
12
|
+
params?: Record<string, any> | null;
|
|
13
|
+
dimensions: Record<string, AnalyticsPath>;
|
|
14
|
+
dimensionMetadata?: Record<string, string>;
|
|
15
|
+
};
|
|
16
|
+
export type AnalyticsUpdateCallback = (source: AnalyticsPath) => void;
|
|
17
|
+
export interface IAnalyticsStore {
|
|
18
|
+
clearSeriesBySource: (source: AnalyticsPath, cleanUpDimensions?: boolean) => Promise<number>;
|
|
19
|
+
clearEmptyAnalyticsDimensions: () => Promise<number>;
|
|
20
|
+
getMatchingSeries: (query: AnalyticsSeriesQuery) => Promise<AnalyticsSeries[]>;
|
|
21
|
+
addSeriesValue: (input: AnalyticsSeriesInput) => Promise<void>;
|
|
22
|
+
addSeriesValues: (inputs: AnalyticsSeriesInput[]) => Promise<void>;
|
|
23
|
+
getDimensions: () => Promise<any>;
|
|
24
|
+
subscribeToSource: (source: AnalyticsPath, callback: AnalyticsUpdateCallback) => () => void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=IAnalyticsStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IAnalyticsStore.d.ts","sourceRoot":"","sources":["../../src/IAnalyticsStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EACV,eAAe,EACf,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,QAAQ,CAAC;IAChB,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,mBAAmB,EAAE,CACnB,MAAM,EAAE,aAAa,EACrB,iBAAiB,CAAC,EAAE,OAAO,KACxB,OAAO,CAAC,MAAM,CAAC,CAAC;IACrB,6BAA6B,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACrD,iBAAiB,EAAE,CACjB,KAAK,EAAE,oBAAoB,KACxB,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAChC,cAAc,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,eAAe,EAAE,CAAC,MAAM,EAAE,oBAAoB,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,aAAa,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;IAElC,iBAAiB,EAAE,CACjB,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,uBAAuB,KAC9B,MAAM,IAAI,CAAC;CACjB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type { IAnalyticsProfiler } from "./AnalyticsProfiler.js";
|
|
2
|
+
export { AnalyticsProfiler, PassthroughAnalyticsProfiler, } from "./AnalyticsProfiler.js";
|
|
3
|
+
export type { IAnalyticsStore, AnalyticsSeriesInput, AnalyticsUpdateCallback, } from "./IAnalyticsStore.js";
|
|
4
|
+
export { AnalyticsPath, AnalyticsPathSegment } from "./AnalyticsPath.js";
|
|
5
|
+
export type { AnalyticsQuery, AnalyticsSeriesQuery, AnalyticsSeries, AnalyticsDimension, } from "./AnalyticsQuery.js";
|
|
6
|
+
export { AnalyticsGranularity } from "./AnalyticsQuery.js";
|
|
7
|
+
export { AnalyticsQueryEngine } from "./AnalyticsQueryEngine.js";
|
|
8
|
+
export type { GroupedPeriodResult, GroupedPeriodResults, } from "./AnalyticsDiscretizer.js";
|
|
9
|
+
export { AnalyticsSerializerTypes, AnalyticsPeriod, } from "./AnalyticsPeriod.js";
|
|
10
|
+
export * from "./AnalyticsSubscriptionManager.js";
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,4BAA4B,GAC7B,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACzE,YAAY,EACV,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EACV,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,wBAAwB,EACxB,eAAe,GAChB,MAAM,sBAAsB,CAAC;AAC9B,cAAc,mCAAmC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/analytics-engine-core",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.4",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -13,13 +13,11 @@
|
|
|
13
13
|
"exports": {
|
|
14
14
|
".": {
|
|
15
15
|
"types": "./dist/src/index.d.ts",
|
|
16
|
-
"default": "./
|
|
16
|
+
"default": "./dist/src/index.js"
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
"files": [
|
|
20
|
-
"
|
|
21
|
-
"./build/index.js.map",
|
|
22
|
-
"./dist/index.d.ts"
|
|
20
|
+
"dist/src"
|
|
23
21
|
],
|
|
24
22
|
"dependencies": {
|
|
25
23
|
"date-fns": "4.1.0",
|