@powerhousedao/shared 6.0.0-dev.62 → 6.0.0-dev.63

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.
Files changed (34) hide show
  1. package/dist/analytics/analytics-path.d.ts +36 -0
  2. package/dist/analytics/analytics-path.d.ts.map +1 -0
  3. package/dist/analytics/analytics-path.js +170 -0
  4. package/dist/analytics/analytics-path.js.map +1 -0
  5. package/dist/analytics/analytics-period.d.ts +40 -0
  6. package/dist/analytics/analytics-period.d.ts.map +1 -0
  7. package/dist/analytics/analytics-period.js +204 -0
  8. package/dist/analytics/analytics-period.js.map +1 -0
  9. package/dist/analytics/constants.d.ts +35 -0
  10. package/dist/analytics/constants.d.ts.map +1 -0
  11. package/dist/analytics/constants.js +40 -0
  12. package/dist/analytics/constants.js.map +1 -0
  13. package/dist/analytics/index.d.ts +5 -0
  14. package/dist/analytics/index.d.ts.map +1 -0
  15. package/dist/analytics/index.js +5 -0
  16. package/dist/analytics/index.js.map +1 -0
  17. package/dist/analytics/types.d.ts +85 -0
  18. package/dist/analytics/types.d.ts.map +1 -0
  19. package/dist/analytics/types.js +2 -0
  20. package/dist/analytics/types.js.map +1 -0
  21. package/dist/processors/drive-analytics/document-processor.d.ts +1 -1
  22. package/dist/processors/drive-analytics/document-processor.d.ts.map +1 -1
  23. package/dist/processors/drive-analytics/document-processor.js +1 -1
  24. package/dist/processors/drive-analytics/document-processor.js.map +1 -1
  25. package/dist/processors/drive-analytics/drive-processor.d.ts +1 -1
  26. package/dist/processors/drive-analytics/drive-processor.d.ts.map +1 -1
  27. package/dist/processors/drive-analytics/drive-processor.js +1 -1
  28. package/dist/processors/drive-analytics/drive-processor.js.map +1 -1
  29. package/dist/processors/drive-analytics/index.d.ts +1 -1
  30. package/dist/processors/drive-analytics/index.d.ts.map +1 -1
  31. package/dist/processors/types.d.ts +1 -1
  32. package/dist/processors/types.d.ts.map +1 -1
  33. package/dist/tsconfig.tsbuildinfo +1 -1
  34. package/package.json +16 -9
@@ -0,0 +1,36 @@
1
+ import { AnalyticsSerializerTypes } from "./constants.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=analytics-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-path.d.ts","sourceRoot":"","sources":["../../analytics/analytics-path.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE1D,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,170 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
2
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
4
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
5
+ import { AnalyticsSerializerTypes } from "./constants.js";
6
+ export class AnalyticsPath {
7
+ get segments() {
8
+ return this._segments;
9
+ }
10
+ _segments;
11
+ static fromString(path) {
12
+ const segments = parseSeparatedList(path, "/").map((segment) => AnalyticsPathSegment.fromString(segment));
13
+ return new AnalyticsPath(segments);
14
+ }
15
+ static fromStringArray(segments) {
16
+ return new AnalyticsPath(segments.map((segment) => AnalyticsPathSegment.fromString(segment)));
17
+ }
18
+ static fromArray(segments) {
19
+ return new AnalyticsPath(segments);
20
+ }
21
+ static fromJSON(json) {
22
+ const segments = json._v
23
+ .split("/")
24
+ .map((segment) => AnalyticsPathSegment.fromString(segment));
25
+ return new AnalyticsPath(segments);
26
+ }
27
+ constructor(segments) {
28
+ this._segments = segments;
29
+ }
30
+ toJSON() {
31
+ return {
32
+ _t: AnalyticsSerializerTypes.AnalyticsPath,
33
+ _v: this.toString(),
34
+ };
35
+ }
36
+ toString(tail = "") {
37
+ return this._segments.map((s) => s.toString()).join("/") + tail;
38
+ }
39
+ firstSegment() {
40
+ return this._segments.length > 0
41
+ ? this._segments[0]
42
+ : new AnalyticsPathSegment();
43
+ }
44
+ reduce() {
45
+ const result = this._segments.slice(1);
46
+ if (result.length < 1) {
47
+ result.push(new AnalyticsPathSegment());
48
+ }
49
+ return new AnalyticsPath(result);
50
+ }
51
+ applyLod(levelOfDetail) {
52
+ const segments = [...this._segments];
53
+ while (segments.length < levelOfDetail) {
54
+ segments.push(new AnalyticsPathSegment());
55
+ }
56
+ return new AnalyticsPath(segments.slice(0, levelOfDetail));
57
+ }
58
+ }
59
+ export class AnalyticsPathSegment {
60
+ get filters() {
61
+ return this._filters;
62
+ }
63
+ get groups() {
64
+ return this._groups;
65
+ }
66
+ _filters = null;
67
+ _groups = null;
68
+ static fromString(segment) {
69
+ const elements = parseSeparatedList(segment, ":");
70
+ let filtersArg;
71
+ if (elements[0] === "*") {
72
+ filtersArg = null;
73
+ }
74
+ else {
75
+ filtersArg = parseSeparatedList(elements[0], ",").map((f) => AnalyticsPathSegment.unescape(f));
76
+ }
77
+ let groupsArg;
78
+ if (elements[1] === undefined || elements[1].length < 1) {
79
+ groupsArg = [];
80
+ }
81
+ else if (elements[1] === "*") {
82
+ groupsArg = null;
83
+ }
84
+ else {
85
+ groupsArg = parseSeparatedList(elements[1], ",").map((g) => AnalyticsPathSegment.unescape(g));
86
+ }
87
+ return new AnalyticsPathSegment(filtersArg, groupsArg);
88
+ }
89
+ static escape(segment) {
90
+ // Put a backslash in front of the control characters \ : / and ,
91
+ return segment.replace(/(\\|:|\/|,)/gi, "\\$1");
92
+ }
93
+ static unescape(segment) {
94
+ // Remove backslashes in front of any character
95
+ return segment.replace(/\\(.)/gi, "$1");
96
+ }
97
+ constructor(filters = null, groups = []) {
98
+ this._filters = filters;
99
+ this._groups = groups;
100
+ }
101
+ toJSON() {
102
+ return {
103
+ _t: AnalyticsSerializerTypes.AnalyticsPathSegment,
104
+ _v: this.toString(),
105
+ };
106
+ }
107
+ toString() {
108
+ let result = "";
109
+ if (this._filters === null) {
110
+ result += "*";
111
+ }
112
+ else {
113
+ result += this._filters
114
+ .map((f) => AnalyticsPathSegment.escape(f))
115
+ .join(",");
116
+ }
117
+ if (this._groups === null) {
118
+ result += ":*";
119
+ }
120
+ else if (this._groups.length > 0) {
121
+ result +=
122
+ ":" + this._groups.map((g) => AnalyticsPathSegment.escape(g)).join(",");
123
+ }
124
+ return result;
125
+ }
126
+ }
127
+ // Defining constant regexes instead of dynamic patterns for compiler optimization
128
+ const unescapedSeparatorPattern = {
129
+ ":": /(?<!\\):/,
130
+ ",": /(?<!\\),/,
131
+ "/": /(?<!\\)\//,
132
+ };
133
+ function parseSeparatedList(list, separator) {
134
+ /*
135
+ The basic mechanism is that we split the string by commas that
136
+ aren't escaped with a backslash, using the unescapedSeparatorPattern:
137
+
138
+ - abc,def becomes ['abc', 'def']
139
+ - abc\,def becomes ['abc,def']
140
+
141
+ However, we need to deal with an edge case where the backslash
142
+ itself is escaped with a backslash:
143
+
144
+ - abc\\,def must result in ['abc\\', 'def']
145
+ - whereas unescapedCommaPattern would result in ['abc\\,def']
146
+
147
+ For this edge case, we are first replacing all double backslashes with @@
148
+
149
+ - abc\\,def is first transformed to abc@@,def
150
+ - unescapedCommaPattern would now result in ['abc@@', 'def']
151
+ - substituting @@ with \\ again now gives the intended result ['abc\\', 'def']
152
+
153
+ However, we still want to support the literal string @@ in the input too.
154
+ So, instead of always using @@ as a replacement, we're going to determine a unique
155
+ string first by adding as many @ as needed.
156
+
157
+ - If the original string has @@ in it, we'll use @@@
158
+ - If the original string has @@ and @@@ in it, we'll use @@@@
159
+ - Etc.
160
+ */
161
+ let substituteString = "@@";
162
+ while (list.indexOf(substituteString) > -1) {
163
+ substituteString += "@";
164
+ }
165
+ return list
166
+ .replaceAll("\\\\", substituteString)
167
+ .split(unescapedSeparatorPattern[separator])
168
+ .map((e) => e.replaceAll(substituteString, "\\\\"));
169
+ }
170
+ //# sourceMappingURL=analytics-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-path.js","sourceRoot":"","sources":["../../analytics/analytics-path.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { AnalyticsPeriodType, AnalyticsSerializerTypes } from "./constants.js";
2
+ export declare class AnalyticsPeriod {
3
+ get type(): AnalyticsPeriodType;
4
+ get year(): number;
5
+ get quarter(): number | null;
6
+ get month(): number | null;
7
+ private _type;
8
+ private _year;
9
+ private _quarter;
10
+ private _month;
11
+ toJSON(): {
12
+ _t: AnalyticsSerializerTypes;
13
+ _v: string;
14
+ };
15
+ static fromString(period: string): AnalyticsPeriod;
16
+ static fillRange(p1: AnalyticsPeriod | string, p2: AnalyticsPeriod | string): AnalyticsPeriod[];
17
+ static normalizeQuarters(year: number, quarter: number): PeriodTriple;
18
+ static normalizeMonths(year: number, month: number): PeriodTriple;
19
+ constructor(year: number, quarter?: number, month?: number);
20
+ equals(period: AnalyticsPeriod | string): boolean;
21
+ toString(): string;
22
+ startAsSqlDate(): string;
23
+ comesAfter(period: AnalyticsPeriod): boolean;
24
+ comesBefore(period: AnalyticsPeriod): boolean;
25
+ contains(period: AnalyticsPeriod): boolean;
26
+ firstMonth(): AnalyticsPeriod;
27
+ lastMonth(): AnalyticsPeriod;
28
+ nextPeriod(n?: number): AnalyticsPeriod;
29
+ previousPeriod(n?: number): AnalyticsPeriod;
30
+ private _start;
31
+ private _end;
32
+ private _getNumericComparator;
33
+ private _addPeriods;
34
+ private _initAsYear;
35
+ private _initAsQuarter;
36
+ private _initAsMonth;
37
+ }
38
+ type PeriodTriple = [number, number | undefined, number | undefined];
39
+ export {};
40
+ //# sourceMappingURL=analytics-period.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-period.d.ts","sourceRoot":"","sources":["../../analytics/analytics-period.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,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;IAsBxB,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,204 @@
1
+ import { AnalyticsPeriodType, AnalyticsSerializerTypes } from "./constants.js";
2
+ export class AnalyticsPeriod {
3
+ get type() {
4
+ return this._type;
5
+ }
6
+ get year() {
7
+ return this._year;
8
+ }
9
+ get quarter() {
10
+ return this._quarter;
11
+ }
12
+ get month() {
13
+ return this._month;
14
+ }
15
+ _type = AnalyticsPeriodType.Year;
16
+ _year = 1970;
17
+ _quarter = null;
18
+ _month = null;
19
+ toJSON() {
20
+ return {
21
+ _t: AnalyticsSerializerTypes.AnalyticsPeriod,
22
+ _v: this.toString(),
23
+ };
24
+ }
25
+ static fromString(period) {
26
+ let result;
27
+ if (period.length === 4) {
28
+ result = new AnalyticsPeriod(Number.parseInt(period));
29
+ }
30
+ else if (period.length === 7) {
31
+ if (period[4] !== "/") {
32
+ throw new Error(`Invalid period string: '${period}'`);
33
+ }
34
+ else if (period[5] === "Q") {
35
+ result = new AnalyticsPeriod(Number.parseInt(period.slice(0, 4)), Number.parseInt(period[6]));
36
+ }
37
+ else {
38
+ result = new AnalyticsPeriod(Number.parseInt(period.slice(0, 4)), undefined, Number.parseInt(period.slice(5)));
39
+ }
40
+ }
41
+ else {
42
+ throw new Error(`Invalid period string: '${period}'`);
43
+ }
44
+ return result;
45
+ }
46
+ static fillRange(p1, p2) {
47
+ const obj1 = typeof p1 === "string" ? AnalyticsPeriod.fromString(p1) : p1, obj2 = typeof p2 === "string" ? AnalyticsPeriod.fromString(p2) : p2;
48
+ if (obj1.type !== obj2.type) {
49
+ throw new Error(`Cannot fill range of different type periods ${obj1.toString()} and ${obj2.toString()}.`);
50
+ }
51
+ const [first, last] = obj1.comesBefore(obj2) ? [obj1, obj2] : [obj2, obj1];
52
+ const result = [first];
53
+ let next = first.nextPeriod();
54
+ while (next.comesBefore(last)) {
55
+ result.push(next);
56
+ next = next.nextPeriod();
57
+ }
58
+ if (!last.equals(first)) {
59
+ result.push(last);
60
+ }
61
+ return result;
62
+ }
63
+ static normalizeQuarters(year, quarter) {
64
+ const newYear = year + Math.floor((quarter - 1) / 4);
65
+ const newQuarter = moduloButWithoutBugs(quarter - 1, 4) + 1;
66
+ return [newYear, newQuarter, undefined];
67
+ }
68
+ static normalizeMonths(year, month) {
69
+ const newYear = year + Math.floor((month - 1) / 12);
70
+ const newMonth = moduloButWithoutBugs(month - 1, 12) + 1;
71
+ const newQuarter = Math.floor((newMonth - 1) / 3) + 1;
72
+ return [newYear, newQuarter, newMonth];
73
+ }
74
+ constructor(year, quarter, month) {
75
+ this._initAsYear(year);
76
+ if (quarter !== undefined) {
77
+ this._initAsQuarter(quarter);
78
+ }
79
+ if (month !== undefined) {
80
+ this._initAsMonth(month);
81
+ }
82
+ }
83
+ equals(period) {
84
+ return (this.toString() ===
85
+ (typeof period === "string" ? period : period.toString()));
86
+ }
87
+ toString() {
88
+ let result = this._year + (this._type === AnalyticsPeriodType.Year ? "" : "/");
89
+ if (this._type === AnalyticsPeriodType.Quarter) {
90
+ result += "Q" + this._quarter;
91
+ }
92
+ else if (this._type === AnalyticsPeriodType.Month) {
93
+ if (this._month < 10) {
94
+ result += "0";
95
+ }
96
+ result += this._month;
97
+ }
98
+ return result;
99
+ }
100
+ startAsSqlDate() {
101
+ let result = this._year + "-";
102
+ switch (this._type) {
103
+ case AnalyticsPeriodType.Month:
104
+ result += (this._month < 10 ? "0" : "") + this.month;
105
+ break;
106
+ case AnalyticsPeriodType.Quarter: {
107
+ const firstMonth = (this._quarter - 1) * 3 + 1;
108
+ result += (firstMonth < 10 ? "0" : "") + firstMonth;
109
+ break;
110
+ }
111
+ case AnalyticsPeriodType.Year:
112
+ result += "01";
113
+ break;
114
+ }
115
+ return result + "-01";
116
+ }
117
+ comesAfter(period) {
118
+ return this._start() > period._end();
119
+ }
120
+ comesBefore(period) {
121
+ return period._start() > this._end();
122
+ }
123
+ contains(period) {
124
+ return this._start() <= period._start() && this._end() >= period._end();
125
+ }
126
+ firstMonth() {
127
+ let month = this._month || 1;
128
+ if (this._type === AnalyticsPeriodType.Quarter) {
129
+ month = (this._quarter - 1) * 3 + 1;
130
+ }
131
+ return new AnalyticsPeriod(this._year, undefined, month);
132
+ }
133
+ lastMonth() {
134
+ let month = this._month || 12;
135
+ if (this._type === AnalyticsPeriodType.Quarter) {
136
+ month = this._quarter * 3;
137
+ }
138
+ return new AnalyticsPeriod(this._year, undefined, month);
139
+ }
140
+ nextPeriod(n = 1) {
141
+ return this._addPeriods(n);
142
+ }
143
+ previousPeriod(n = 1) {
144
+ return this._addPeriods(-n);
145
+ }
146
+ _start() {
147
+ return this._getNumericComparator(false);
148
+ }
149
+ _end() {
150
+ return this._getNumericComparator(true);
151
+ }
152
+ _getNumericComparator(endOfPeriod) {
153
+ const defaultQuarter = endOfPeriod ? 4 : 1, defaultMonth = ((this._quarter || defaultQuarter) - 1) * 3 + (endOfPeriod ? 3 : 1), result = this._year * 1000 +
154
+ (this._quarter || defaultQuarter) * 100 +
155
+ (this._month || defaultMonth);
156
+ return result;
157
+ }
158
+ _addPeriods(periods) {
159
+ let result;
160
+ if (this._type === AnalyticsPeriodType.Year) {
161
+ result = new AnalyticsPeriod(this._year + periods);
162
+ }
163
+ else if (this._type === AnalyticsPeriodType.Quarter) {
164
+ const [y, q] = AnalyticsPeriod.normalizeQuarters(this._year, this._quarter + periods);
165
+ result = new AnalyticsPeriod(y, q);
166
+ }
167
+ else {
168
+ const [y, _, m] = AnalyticsPeriod.normalizeMonths(this._year, this._month + periods);
169
+ result = new AnalyticsPeriod(y, undefined, m);
170
+ }
171
+ return result;
172
+ }
173
+ _initAsYear(year) {
174
+ if (year < 1970 || year > 2100) {
175
+ throw new Error(`Invalid period year: '${year}'`);
176
+ }
177
+ this._year = year;
178
+ }
179
+ _initAsQuarter(quarter) {
180
+ if (quarter < 1 || quarter > 4) {
181
+ throw new Error(`Invalid period quarter: ${quarter}`);
182
+ }
183
+ this._quarter = quarter;
184
+ this._type = AnalyticsPeriodType.Quarter;
185
+ }
186
+ _initAsMonth(month) {
187
+ if (month < 1 || month > 12) {
188
+ throw new Error(`Invalid period month: ${month}`);
189
+ }
190
+ if (this.quarter == null) {
191
+ this._initAsQuarter(Math.floor((month - 1) / 3) + 1);
192
+ }
193
+ else if (this.quarter !== Math.floor((month - 1) / 3) + 1) {
194
+ throw new Error(`Period month ${month} outside of quarter ${this.quarter}`);
195
+ }
196
+ this._month = month;
197
+ this._type = AnalyticsPeriodType.Month;
198
+ }
199
+ }
200
+ // See https://stackoverflow.com/questions/4467539/javascript-modulo-gives-a-negative-result-for-negative-numbers
201
+ function moduloButWithoutBugs(base, n) {
202
+ return ((base % n) + n) % n;
203
+ }
204
+ //# sourceMappingURL=analytics-period.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"analytics-period.js","sourceRoot":"","sources":["../../analytics/analytics-period.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/E,MAAM,OAAO,eAAe;IAC1B,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAEO,KAAK,GAAwB,mBAAmB,CAAC,IAAI,CAAC;IACtD,KAAK,GAAW,IAAI,CAAC;IACrB,QAAQ,GAAkB,IAAI,CAAC;IAC/B,MAAM,GAAkB,IAAI,CAAC;IAE9B,MAAM;QACX,OAAO;YACL,EAAE,EAAE,wBAAwB,CAAC,eAAe;YAC5C,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE;SACpB,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,MAAc;QACrC,IAAI,MAAuB,CAAC;QAE5B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,MAAM,GAAG,IAAI,eAAe,CAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACnC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,IAAI,eAAe,CAC1B,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACnC,SAAS,EACT,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACjC,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,GAAG,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,SAAS,CACrB,EAA4B,EAC5B,EAA4B;QAE5B,MAAM,IAAI,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EACvE,IAAI,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEtE,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,+CAA+C,IAAI,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,QAAQ,EAAE,GAAG,CACzF,CAAC;QACJ,CAAC;QAED,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3E,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC;QAEvB,IAAI,IAAI,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,iBAAiB,CAAC,IAAY,EAAE,OAAe;QAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC5D,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1C,CAAC;IAEM,MAAM,CAAC,eAAe,CAAC,IAAY,EAAE,KAAa;QACvD,MAAM,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,YAAmB,IAAY,EAAE,OAAgB,EAAE,KAAc;QAC/D,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAEvB,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,MAAgC;QAC5C,OAAO,CACL,IAAI,CAAC,QAAQ,EAAE;YACf,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAC1D,CAAC;IACJ,CAAC;IAEM,QAAQ;QACb,IAAI,MAAM,GACR,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,KAAK,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChC,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,mBAAmB,CAAC,KAAK,EAAE,CAAC;YACpD,IAAK,IAAI,CAAC,MAAiB,GAAG,EAAE,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,CAAC;YAChB,CAAC;YACD,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC;QACxB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,cAAc;QACnB,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QAE9B,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,mBAAmB,CAAC,KAAK;gBAC5B,MAAM,IAAI,CAAE,IAAI,CAAC,MAAiB,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;gBACjE,MAAM;YAER,KAAK,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;gBACjC,MAAM,UAAU,GAAG,CAAE,IAAI,CAAC,QAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3D,MAAM,IAAI,CAAE,UAAqB,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC;gBAChE,MAAM;YACR,CAAC;YAED,KAAK,mBAAmB,CAAC,IAAI;gBAC3B,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;QACV,CAAC;QAED,OAAO,MAAM,GAAG,KAAK,CAAC;IACxB,CAAC;IAEM,UAAU,CAAC,MAAuB;QACvC,OAAO,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAEM,WAAW,CAAC,MAAuB;QACxC,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAEM,QAAQ,CAAC,MAAuB;QACrC,OAAO,IAAI,CAAC,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;IAC1E,CAAC;IAEM,UAAU;QACf,IAAI,KAAK,GAAW,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;QAErC,IAAI,IAAI,CAAC,KAAK,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC/C,KAAK,GAAG,CAAE,IAAI,CAAC,QAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEM,SAAS;QACd,IAAI,KAAK,GAAW,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAEtC,IAAI,IAAI,CAAC,KAAK,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;YAC/C,KAAK,GAAI,IAAI,CAAC,QAAmB,GAAG,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEM,UAAU,CAAC,IAAY,CAAC;QAC7B,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IAEM,cAAc,CAAC,IAAY,CAAC;QACjC,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAEO,MAAM;QACZ,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IAEO,IAAI;QACV,OAAO,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAEO,qBAAqB,CAAC,WAAoB;QAChD,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxC,YAAY,GACV,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrE,MAAM,GACJ,IAAI,CAAC,KAAK,GAAG,IAAI;YACjB,CAAC,IAAI,CAAC,QAAQ,IAAI,cAAc,CAAC,GAAG,GAAG;YACvC,CAAC,IAAI,CAAC,MAAM,IAAI,YAAY,CAAC,CAAC;QAElC,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,IAAI,MAAuB,CAAC;QAE5B,IAAI,IAAI,CAAC,KAAK,KAAK,mBAAmB,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;QACrD,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;YACtD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,iBAAiB,CAC9C,IAAI,CAAC,KAAK,EACT,IAAI,CAAC,QAAmB,GAAG,OAAO,CACpC,CAAC;YACF,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,eAAe,CAC/C,IAAI,CAAC,KAAK,EACT,IAAI,CAAC,MAAiB,GAAG,OAAO,CAClC,CAAC;YACF,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,IAAY;QAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,GAAG,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC;IAC3C,CAAC;IAEO,YAAY,CAAC,KAAa;QAChC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,gBAAgB,KAAK,uBAAuB,IAAI,CAAC,OAAO,EAAE,CAC3D,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC;IACzC,CAAC;CACF;AAED,iHAAiH;AACjH,SAAS,oBAAoB,CAAC,IAAY,EAAE,CAAS;IACnD,OAAO,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,35 @@
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 enum AnalyticsMetric {
12
+ Budget = 0,
13
+ Forecast = 1,
14
+ Actuals = 2,
15
+ PaymentsOnChain = 3,
16
+ PaymentsOffChainIncluded = 4,
17
+ FTEs = 5
18
+ }
19
+ export declare enum CompoundOperator {
20
+ VectorAdd = 0,
21
+ VectorSubtract = 1,
22
+ ScalarMultiply = 2,
23
+ ScalarDivide = 3
24
+ }
25
+ export declare enum AnalyticsGranularity {
26
+ Total = 0,
27
+ Annual = 1,
28
+ SemiAnnual = 2,
29
+ Quarterly = 3,
30
+ Monthly = 4,
31
+ Weekly = 5,
32
+ Daily = 6,
33
+ Hourly = 7
34
+ }
35
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../analytics/constants.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,oBAAY,eAAe;IACzB,MAAM,IAAA;IACN,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,eAAe,IAAA;IACf,wBAAwB,IAAA;IACxB,IAAI,IAAA;CACL;AACD,oBAAY,gBAAgB;IAC1B,SAAS,IAAA;IACT,cAAc,IAAA;IACd,cAAc,IAAA;IACd,YAAY,IAAA;CACb;AACD,oBAAY,oBAAoB;IAC9B,KAAK,IAAA;IACL,MAAM,IAAA;IACN,UAAU,IAAA;IACV,SAAS,IAAA;IACT,OAAO,IAAA;IACP,MAAM,IAAA;IACN,KAAK,IAAA;IACL,MAAM,IAAA;CACP"}
@@ -0,0 +1,40 @@
1
+ export var AnalyticsSerializerTypes;
2
+ (function (AnalyticsSerializerTypes) {
3
+ AnalyticsSerializerTypes[AnalyticsSerializerTypes["AnalyticsPath"] = 0] = "AnalyticsPath";
4
+ AnalyticsSerializerTypes[AnalyticsSerializerTypes["AnalyticsPathSegment"] = 1] = "AnalyticsPathSegment";
5
+ AnalyticsSerializerTypes[AnalyticsSerializerTypes["AnalyticsPeriod"] = 2] = "AnalyticsPeriod";
6
+ })(AnalyticsSerializerTypes || (AnalyticsSerializerTypes = {}));
7
+ export var AnalyticsPeriodType;
8
+ (function (AnalyticsPeriodType) {
9
+ AnalyticsPeriodType[AnalyticsPeriodType["Year"] = 0] = "Year";
10
+ AnalyticsPeriodType[AnalyticsPeriodType["Quarter"] = 1] = "Quarter";
11
+ AnalyticsPeriodType[AnalyticsPeriodType["Month"] = 2] = "Month";
12
+ })(AnalyticsPeriodType || (AnalyticsPeriodType = {}));
13
+ export var AnalyticsMetric;
14
+ (function (AnalyticsMetric) {
15
+ AnalyticsMetric[AnalyticsMetric["Budget"] = 0] = "Budget";
16
+ AnalyticsMetric[AnalyticsMetric["Forecast"] = 1] = "Forecast";
17
+ AnalyticsMetric[AnalyticsMetric["Actuals"] = 2] = "Actuals";
18
+ AnalyticsMetric[AnalyticsMetric["PaymentsOnChain"] = 3] = "PaymentsOnChain";
19
+ AnalyticsMetric[AnalyticsMetric["PaymentsOffChainIncluded"] = 4] = "PaymentsOffChainIncluded";
20
+ AnalyticsMetric[AnalyticsMetric["FTEs"] = 5] = "FTEs";
21
+ })(AnalyticsMetric || (AnalyticsMetric = {}));
22
+ export var CompoundOperator;
23
+ (function (CompoundOperator) {
24
+ CompoundOperator[CompoundOperator["VectorAdd"] = 0] = "VectorAdd";
25
+ CompoundOperator[CompoundOperator["VectorSubtract"] = 1] = "VectorSubtract";
26
+ CompoundOperator[CompoundOperator["ScalarMultiply"] = 2] = "ScalarMultiply";
27
+ CompoundOperator[CompoundOperator["ScalarDivide"] = 3] = "ScalarDivide";
28
+ })(CompoundOperator || (CompoundOperator = {}));
29
+ export var AnalyticsGranularity;
30
+ (function (AnalyticsGranularity) {
31
+ AnalyticsGranularity[AnalyticsGranularity["Total"] = 0] = "Total";
32
+ AnalyticsGranularity[AnalyticsGranularity["Annual"] = 1] = "Annual";
33
+ AnalyticsGranularity[AnalyticsGranularity["SemiAnnual"] = 2] = "SemiAnnual";
34
+ AnalyticsGranularity[AnalyticsGranularity["Quarterly"] = 3] = "Quarterly";
35
+ AnalyticsGranularity[AnalyticsGranularity["Monthly"] = 4] = "Monthly";
36
+ AnalyticsGranularity[AnalyticsGranularity["Weekly"] = 5] = "Weekly";
37
+ AnalyticsGranularity[AnalyticsGranularity["Daily"] = 6] = "Daily";
38
+ AnalyticsGranularity[AnalyticsGranularity["Hourly"] = 7] = "Hourly";
39
+ })(AnalyticsGranularity || (AnalyticsGranularity = {}));
40
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../analytics/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,wBAIX;AAJD,WAAY,wBAAwB;IAClC,yFAAa,CAAA;IACb,uGAAoB,CAAA;IACpB,6FAAe,CAAA;AACjB,CAAC,EAJW,wBAAwB,KAAxB,wBAAwB,QAInC;AAED,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,6DAAI,CAAA;IACJ,mEAAO,CAAA;IACP,+DAAK,CAAA;AACP,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED,MAAM,CAAN,IAAY,eAOX;AAPD,WAAY,eAAe;IACzB,yDAAM,CAAA;IACN,6DAAQ,CAAA;IACR,2DAAO,CAAA;IACP,2EAAe,CAAA;IACf,6FAAwB,CAAA;IACxB,qDAAI,CAAA;AACN,CAAC,EAPW,eAAe,KAAf,eAAe,QAO1B;AACD,MAAM,CAAN,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,iEAAS,CAAA;IACT,2EAAc,CAAA;IACd,2EAAc,CAAA;IACd,uEAAY,CAAA;AACd,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,QAK3B;AACD,MAAM,CAAN,IAAY,oBASX;AATD,WAAY,oBAAoB;IAC9B,iEAAK,CAAA;IACL,mEAAM,CAAA;IACN,2EAAU,CAAA;IACV,yEAAS,CAAA;IACT,qEAAO,CAAA;IACP,mEAAM,CAAA;IACN,iEAAK,CAAA;IACL,mEAAM,CAAA;AACR,CAAC,EATW,oBAAoB,KAApB,oBAAoB,QAS/B"}
@@ -0,0 +1,5 @@
1
+ export * from "./analytics-path.js";
2
+ export * from "./analytics-period.js";
3
+ export * from "./constants.js";
4
+ export * from "./types.js";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./analytics-path.js";
2
+ export * from "./analytics-period.js";
3
+ export * from "./constants.js";
4
+ export * from "./types.js";
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../analytics/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}