@powerhousedao/analytics-engine-core 0.6.1 → 0.6.3

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 (42) hide show
  1. package/dist/src/index.js +5553 -7
  2. package/package.json +9 -4
  3. package/dist/src/AnalyticsDiscretizer.js +0 -237
  4. package/dist/src/AnalyticsDiscretizer.js.map +0 -1
  5. package/dist/src/AnalyticsPath.js +0 -166
  6. package/dist/src/AnalyticsPath.js.map +0 -1
  7. package/dist/src/AnalyticsPeriod.js +0 -214
  8. package/dist/src/AnalyticsPeriod.js.map +0 -1
  9. package/dist/src/AnalyticsProfiler.js +0 -76
  10. package/dist/src/AnalyticsProfiler.js.map +0 -1
  11. package/dist/src/AnalyticsQuery.js +0 -30
  12. package/dist/src/AnalyticsQuery.js.map +0 -1
  13. package/dist/src/AnalyticsQueryEngine.js +0 -173
  14. package/dist/src/AnalyticsQueryEngine.js.map +0 -1
  15. package/dist/src/AnalyticsQueryResult.js +0 -3
  16. package/dist/src/AnalyticsQueryResult.js.map +0 -1
  17. package/dist/src/AnalyticsSubscriptionManager.js +0 -162
  18. package/dist/src/AnalyticsSubscriptionManager.js.map +0 -1
  19. package/dist/src/AnalyticsTimeSlicer.js +0 -212
  20. package/dist/src/AnalyticsTimeSlicer.js.map +0 -1
  21. package/dist/src/IAnalyticsCache.js +0 -2
  22. package/dist/src/IAnalyticsCache.js.map +0 -1
  23. package/dist/src/IAnalyticsStore.js +0 -3
  24. package/dist/src/IAnalyticsStore.js.map +0 -1
  25. package/dist/src/index.js.map +0 -1
  26. package/dist/test/AnalyticsTimeSlicer.spec.d.ts +0 -2
  27. package/dist/test/AnalyticsTimeSlicer.spec.d.ts.map +0 -1
  28. package/dist/test/AnalyticsTimeSlicer.spec.js +0 -448
  29. package/dist/test/AnalyticsTimeSlicer.spec.js.map +0 -1
  30. package/dist/test/Subscriptions.test.d.ts +0 -2
  31. package/dist/test/Subscriptions.test.d.ts.map +0 -1
  32. package/dist/test/Subscriptions.test.js +0 -151
  33. package/dist/test/Subscriptions.test.js.map +0 -1
  34. package/dist/test/vitest.setup.d.ts +0 -2
  35. package/dist/test/vitest.setup.d.ts.map +0 -1
  36. package/dist/test/vitest.setup.js +0 -2
  37. package/dist/test/vitest.setup.js.map +0 -1
  38. package/dist/tsconfig.tsbuildinfo +0 -1
  39. package/dist/vitest.config.d.ts +0 -3
  40. package/dist/vitest.config.d.ts.map +0 -1
  41. package/dist/vitest.config.js +0 -11
  42. package/dist/vitest.config.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsPeriod.js","sourceRoot":"","sources":["../../src/AnalyticsPeriod.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- export class AnalyticsProfiler {
2
- _ns;
3
- _logger;
4
- _stack = [];
5
- _prefix = "";
6
- constructor(_ns, _logger) {
7
- this._ns = _ns;
8
- this._logger = _logger;
9
- this._prefix = _ns;
10
- }
11
- get prefix() {
12
- return this._prefix;
13
- }
14
- push(system) {
15
- this._stack.push(system);
16
- this.updatePrefix();
17
- }
18
- pop() {
19
- if (this._stack.pop()) {
20
- this.updatePrefix();
21
- }
22
- }
23
- popAndReturn(result) {
24
- this.pop();
25
- return result;
26
- }
27
- async record(metric, fn) {
28
- const start = performance.now();
29
- const fullMetric = `${this.prefix}.${metric}`;
30
- try {
31
- return await fn();
32
- }
33
- finally {
34
- this._logger(fullMetric, performance.now() - start);
35
- }
36
- }
37
- recordSync(metric, fn) {
38
- const start = performance.now();
39
- const fullMetric = `${this.prefix}.${metric}`;
40
- try {
41
- return fn();
42
- }
43
- finally {
44
- this._logger(fullMetric, performance.now() - start);
45
- }
46
- }
47
- updatePrefix() {
48
- if (this._stack.length > 0) {
49
- this._prefix = `${this._ns}.${this._stack.join(".")}`;
50
- }
51
- else {
52
- this._prefix = this._ns;
53
- }
54
- }
55
- }
56
- export class PassthroughAnalyticsProfiler {
57
- get prefix() {
58
- return "";
59
- }
60
- push(system) {
61
- //
62
- }
63
- pop() {
64
- //
65
- }
66
- popAndReturn(result) {
67
- return result;
68
- }
69
- async record(metric, fn) {
70
- return await fn();
71
- }
72
- recordSync(metric, fn) {
73
- return fn();
74
- }
75
- }
76
- //# sourceMappingURL=AnalyticsProfiler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsProfiler.js","sourceRoot":"","sources":["../../src/AnalyticsProfiler.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,iBAAiB;IAKT;IACA;IALF,MAAM,GAAa,EAAE,CAAC;IAC/B,OAAO,GAAW,EAAE,CAAC;IAE7B,YACmB,GAAW,EACX,OAAiD;QADjD,QAAG,GAAH,GAAG,CAAQ;QACX,YAAO,GAAP,OAAO,CAA0C;QAElE,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;IACrB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEzB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAED,GAAG;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,YAAY,CAAC,MAAW;QACtB,IAAI,CAAC,GAAG,EAAE,CAAC;QAEX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAI,MAAc,EAAE,EAAoB;QAClD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAE9C,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,UAAU,CAAI,MAAc,EAAE,EAAW;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC;QAE9C,IAAI,CAAC;YACH,OAAO,EAAE,EAAE,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,YAAY;QACV,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1B,CAAC;IACH,CAAC;CACF;AAED,MAAM,OAAO,4BAA4B;IACvC,IAAI,MAAM;QACR,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,MAAc;QACjB,EAAE;IACJ,CAAC;IAED,GAAG;QACD,EAAE;IACJ,CAAC;IAED,YAAY,CAAC,MAAW;QACtB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAI,MAAc,EAAE,EAAoB;QAClD,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAED,UAAU,CAAI,MAAc,EAAE,EAAW;QACvC,OAAO,EAAE,EAAE,CAAC;IACd,CAAC;CACF"}
@@ -1,30 +0,0 @@
1
- import { DateTime } from "luxon";
2
- import { AnalyticsPath } from "./AnalyticsPath.js";
3
- export var AnalyticsMetric;
4
- (function (AnalyticsMetric) {
5
- AnalyticsMetric[AnalyticsMetric["Budget"] = 0] = "Budget";
6
- AnalyticsMetric[AnalyticsMetric["Forecast"] = 1] = "Forecast";
7
- AnalyticsMetric[AnalyticsMetric["Actuals"] = 2] = "Actuals";
8
- AnalyticsMetric[AnalyticsMetric["PaymentsOnChain"] = 3] = "PaymentsOnChain";
9
- AnalyticsMetric[AnalyticsMetric["PaymentsOffChainIncluded"] = 4] = "PaymentsOffChainIncluded";
10
- AnalyticsMetric[AnalyticsMetric["FTEs"] = 5] = "FTEs";
11
- })(AnalyticsMetric || (AnalyticsMetric = {}));
12
- export var CompoundOperator;
13
- (function (CompoundOperator) {
14
- CompoundOperator[CompoundOperator["VectorAdd"] = 0] = "VectorAdd";
15
- CompoundOperator[CompoundOperator["VectorSubtract"] = 1] = "VectorSubtract";
16
- CompoundOperator[CompoundOperator["ScalarMultiply"] = 2] = "ScalarMultiply";
17
- CompoundOperator[CompoundOperator["ScalarDivide"] = 3] = "ScalarDivide";
18
- })(CompoundOperator || (CompoundOperator = {}));
19
- export var AnalyticsGranularity;
20
- (function (AnalyticsGranularity) {
21
- AnalyticsGranularity[AnalyticsGranularity["Total"] = 0] = "Total";
22
- AnalyticsGranularity[AnalyticsGranularity["Annual"] = 1] = "Annual";
23
- AnalyticsGranularity[AnalyticsGranularity["SemiAnnual"] = 2] = "SemiAnnual";
24
- AnalyticsGranularity[AnalyticsGranularity["Quarterly"] = 3] = "Quarterly";
25
- AnalyticsGranularity[AnalyticsGranularity["Monthly"] = 4] = "Monthly";
26
- AnalyticsGranularity[AnalyticsGranularity["Weekly"] = 5] = "Weekly";
27
- AnalyticsGranularity[AnalyticsGranularity["Daily"] = 6] = "Daily";
28
- AnalyticsGranularity[AnalyticsGranularity["Hourly"] = 7] = "Hourly";
29
- })(AnalyticsGranularity || (AnalyticsGranularity = {}));
30
- //# sourceMappingURL=AnalyticsQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsQuery.js","sourceRoot":"","sources":["../../src/AnalyticsQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAkCnD,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;AA6BD,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;AAYD,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"}
@@ -1,173 +0,0 @@
1
- import { AnalyticsDiscretizer, } from "./AnalyticsDiscretizer.js";
2
- import { AnalyticsPath } from "./AnalyticsPath.js";
3
- import { PassthroughAnalyticsProfiler, } from "./AnalyticsProfiler.js";
4
- import { CompoundOperator, } from "./AnalyticsQuery.js";
5
- import {} from "./IAnalyticsStore.js";
6
- export class AnalyticsQueryEngine {
7
- _analyticsStore;
8
- _profiler;
9
- constructor(_analyticsStore, profiler) {
10
- this._analyticsStore = _analyticsStore;
11
- this._profiler = profiler ?? new PassthroughAnalyticsProfiler();
12
- }
13
- async executeCompound(query) {
14
- let result;
15
- const inputsQuery = {
16
- start: query.start,
17
- end: query.end,
18
- granularity: query.granularity,
19
- lod: query.lod,
20
- select: query.select,
21
- metrics: query.expression.inputs.metrics,
22
- currency: query.expression.inputs.currency,
23
- };
24
- const operandQuery = {
25
- start: query.start,
26
- end: query.end,
27
- granularity: query.granularity,
28
- lod: { priceData: 1 },
29
- select: { priceData: [AnalyticsPath.fromString("atlas")] },
30
- metrics: [query.expression.operand.metric],
31
- currency: query.expression.operand.currency,
32
- };
33
- const inputExecute = await this.execute(inputsQuery);
34
- const operandExecute = await this.execute(operandQuery);
35
- if ([CompoundOperator.VectorAdd, CompoundOperator.VectorSubtract].includes(query.expression.operator)) {
36
- result = await this._profiler.record("ApplyVectorOperator", async () => await this._applyVectorOperator(inputExecute, operandExecute, query.expression.operator, query.expression.resultCurrency));
37
- }
38
- else {
39
- result = await this._profiler.record("ApplyScalarOperator", async () => await this._applyScalarOperator(inputExecute, operandExecute, query.expression.operator, query.expression.operand.useSum, query.expression.resultCurrency));
40
- }
41
- return result;
42
- }
43
- async execute(query) {
44
- const seriesResults = await this._executeSeriesQuery(query);
45
- const normalizedSeriesResults = this._profiler.recordSync("ApplyLODs", () => this._applyLods(seriesResults, query.lod));
46
- const dimensions = Object.keys(query.select);
47
- const discretizedResult = this._profiler.recordSync("Discretize", () => normalizedSeriesResults.length < 1
48
- ? []
49
- : AnalyticsDiscretizer.discretize(normalizedSeriesResults, dimensions, query.start, query.end, query.granularity));
50
- return discretizedResult;
51
- }
52
- async executeMultiCurrency(query, mcc) {
53
- const baseQuery = {
54
- ...query,
55
- currency: mcc.targetCurrency ?? query.currency,
56
- };
57
- let result = await this.execute(baseQuery);
58
- for (const conversion of mcc.conversions) {
59
- const nextQuery = {
60
- start: query.start,
61
- end: query.end,
62
- granularity: query.granularity,
63
- lod: query.lod,
64
- select: query.select,
65
- expression: {
66
- inputs: {
67
- metrics: baseQuery.metrics,
68
- currency: conversion.currency,
69
- },
70
- operator: CompoundOperator.ScalarMultiply,
71
- operand: {
72
- metric: conversion.metric,
73
- currency: mcc.targetCurrency,
74
- useSum: true,
75
- },
76
- resultCurrency: mcc.targetCurrency,
77
- },
78
- };
79
- const executedCompound = await this.executeCompound(nextQuery);
80
- result = await this._applyVectorOperator(result, executedCompound, CompoundOperator.VectorAdd, mcc.targetCurrency);
81
- }
82
- return result;
83
- }
84
- async _applyVectorOperator(inputsA, inputsB, operator, resultCurrency) {
85
- if ([CompoundOperator.ScalarMultiply, CompoundOperator.ScalarDivide].includes(operator)) {
86
- throw new Error("Invalid operator for vector operation");
87
- }
88
- return inputsB;
89
- }
90
- async _applyScalarOperator(inputs, // expected input is the budget & actuals in 2022 monthly granularity in MKR
91
- operand, // expected input is the daily mkr price change in 2022 monthly granularity in DAI
92
- operator, // expected to me multiply and later addition
93
- useOperandSum, resultCurrency) {
94
- if ([CompoundOperator.VectorAdd, CompoundOperator.VectorSubtract].includes(operator)) {
95
- throw new Error("Invalid operator for scalar operation");
96
- }
97
- const result = [];
98
- const operandMap = {};
99
- const key = useOperandSum ? "sum" : "value";
100
- for (const operandPeriod of operand) {
101
- if (operandPeriod.rows.length > 0) {
102
- operandMap[operandPeriod.period] = operandPeriod.rows[0][key];
103
- }
104
- }
105
- // let previousValue: number = 1;
106
- for (const inputPeriod of inputs) {
107
- const outputPeriod = {
108
- period: inputPeriod.period,
109
- start: inputPeriod.start,
110
- end: inputPeriod.end,
111
- rows: inputPeriod.rows.map((row) => {
112
- const newRow = {
113
- dimensions: row.dimensions,
114
- metric: row.metric,
115
- unit: resultCurrency ? resultCurrency.toString() : row.unit,
116
- value: this._calculateOutputValue(row.value, operator, operandMap[inputPeriod.period]),
117
- sum: -1,
118
- };
119
- return newRow;
120
- }),
121
- };
122
- result.push(outputPeriod);
123
- }
124
- return result;
125
- }
126
- _calculateOutputValue(input, operator, operand) {
127
- switch (operator) {
128
- case CompoundOperator.VectorAdd:
129
- return input + operand;
130
- case CompoundOperator.VectorSubtract:
131
- return input - operand;
132
- case CompoundOperator.ScalarMultiply:
133
- return input * operand;
134
- case CompoundOperator.ScalarDivide:
135
- return input / operand;
136
- }
137
- }
138
- async _executeSeriesQuery(query) {
139
- const seriesQuery = {
140
- start: query.start,
141
- end: query.end,
142
- select: query.select,
143
- metrics: query.metrics,
144
- currency: query.currency,
145
- };
146
- return await this._analyticsStore.getMatchingSeries(seriesQuery);
147
- }
148
- _applyLods(series, lods) {
149
- return series.map((result) => ({
150
- ...result,
151
- dimensions: this._applyDimensionsLods(result.dimensions, lods),
152
- }));
153
- }
154
- _applyDimensionsLods(dimensionMap, lods) {
155
- const result = {};
156
- for (const [dimension, lod] of Object.entries(lods)) {
157
- if (lod !== null && dimensionMap[dimension]) {
158
- result[dimension] = dimensionMap[dimension]["path"]
159
- .applyLod(lod)
160
- .toString();
161
- result["icon"] = dimensionMap[dimension]["icon"].toString();
162
- result["label"] = dimensionMap[dimension]["label"].toString();
163
- result["description"] =
164
- dimensionMap[dimension]["description"].toString();
165
- }
166
- }
167
- return result;
168
- }
169
- async getDimensions() {
170
- return await this._analyticsStore.getDimensions();
171
- }
172
- }
173
- //# sourceMappingURL=AnalyticsQueryEngine.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsQueryEngine.js","sourceRoot":"","sources":["../../src/AnalyticsQueryEngine.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { AnalyticsPath } from "./AnalyticsPath.js";
2
- import { AnalyticsPeriod } from "./AnalyticsPeriod.js";
3
- //# sourceMappingURL=AnalyticsQueryResult.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsQueryResult.js","sourceRoot":"","sources":["../../src/AnalyticsQueryResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,162 +0,0 @@
1
- import { AnalyticsPath } from "./AnalyticsPath.js";
2
- export class NotificationError extends Error {
3
- innerErrors;
4
- constructor(errors) {
5
- super(errors.map((e) => e.message).join("\n"));
6
- this.name = "NotificationError";
7
- this.innerErrors = errors;
8
- }
9
- }
10
- /**
11
- * Manages subscriptions for analytics paths.
12
- */
13
- export class AnalyticsSubscriptionManager {
14
- _subscriptions = new Map();
15
- /**
16
- * Subscribe to updates for an analytics path. A subscribed function will be
17
- * called for:
18
- *
19
- * - exact path matches
20
- * - matching child paths (i.e. an update to /a/b/c will trigger a callback
21
- * for /a/b/c, /a/b, and /a)
22
- * - wildcard matches
23
- *
24
- * @param path The analytics path to subscribe to.
25
- * @param callback Function to be called when the path is updated.
26
- *
27
- * @returns A function that, when called, unsubscribes from the updates.
28
- */
29
- subscribeToPath(path, callback) {
30
- const pathString = this.normalizePath(path.toString("/"));
31
- if (!this._subscriptions.has(pathString)) {
32
- this._subscriptions.set(pathString, new Set());
33
- }
34
- this._subscriptions.get(pathString).add(callback);
35
- return () => {
36
- const callbacks = this._subscriptions.get(pathString);
37
- if (callbacks) {
38
- callbacks.delete(callback);
39
- // only remove the path entry if there are no more callbacks
40
- if (callbacks.size === 0) {
41
- this._subscriptions.delete(pathString);
42
- }
43
- }
44
- };
45
- }
46
- /**
47
- * Notifies subscribers about updates to paths.
48
- *
49
- * @param paths The paths that were updated.
50
- */
51
- notifySubscribers(paths) {
52
- if (paths.length === 0 || this._subscriptions.size === 0) {
53
- return;
54
- }
55
- const errors = [];
56
- for (const path of paths) {
57
- const pathString = this.normalizePath(path.toString("/"));
58
- const pathPrefixes = this.getPathPrefixes(pathString);
59
- const matchingSubscriptions = [];
60
- // add the exact prefix matches
61
- pathPrefixes
62
- .filter((prefix) => this._subscriptions.has(prefix))
63
- .forEach((prefix) => {
64
- matchingSubscriptions.push({
65
- prefix,
66
- callbacks: this._subscriptions.get(prefix),
67
- });
68
- });
69
- // check all wildcard patterns
70
- for (const [subscriptionPath, callbacks,] of this._subscriptions.entries()) {
71
- // skip if it's already in the exact matches
72
- if (pathPrefixes.includes(subscriptionPath)) {
73
- continue;
74
- }
75
- // hceck if this subscription path (which might have wildcards) matches the update path
76
- if (this.pathMatchesWildcardPattern(pathString, subscriptionPath)) {
77
- matchingSubscriptions.push({
78
- prefix: subscriptionPath,
79
- callbacks,
80
- });
81
- }
82
- }
83
- if (matchingSubscriptions.length === 0)
84
- continue;
85
- // guarantee delivery to all subscribers
86
- for (const { callbacks } of matchingSubscriptions) {
87
- for (const callback of callbacks) {
88
- try {
89
- callback(path);
90
- }
91
- catch (e) {
92
- errors.push(e);
93
- }
94
- }
95
- }
96
- }
97
- if (errors.length > 0) {
98
- throw new NotificationError(errors);
99
- }
100
- }
101
- /**
102
- * Normalizes a path string to ensure consistent comparison.
103
- */
104
- normalizePath(path) {
105
- // Handle potential double slashes by first splitting on slashes and rejoining
106
- const parts = path.split("/").filter((p) => p.length > 0);
107
- const normalized = "/" + parts.join("/");
108
- return normalized;
109
- }
110
- /**
111
- * Checks if a path matches a subscription pattern that may contain wildcards.
112
- */
113
- pathMatchesWildcardPattern(updatePath, subscriptionPath) {
114
- // Handle the wildcard segment case
115
- if (subscriptionPath.includes("*")) {
116
- const updateSegments = updatePath.split("/").filter((s) => s.length > 0);
117
- const subscriptionSegments = subscriptionPath
118
- .split("/")
119
- .filter((s) => s.length > 0);
120
- // If subscription is longer than the update path, it can't match
121
- if (subscriptionSegments.length > updateSegments.length) {
122
- return false;
123
- }
124
- // Compare each segment
125
- for (let i = 0; i < subscriptionSegments.length; i++) {
126
- const subSegment = subscriptionSegments[i];
127
- const updateSegment = updateSegments[i];
128
- // If segment is * or starts with * (wildcard), it matches anything
129
- if (subSegment === "*" || subSegment.startsWith("*:")) {
130
- continue;
131
- }
132
- // Otherwise, segments should match exactly
133
- if (subSegment !== updateSegment) {
134
- return false;
135
- }
136
- }
137
- return true;
138
- }
139
- // If no wildcards, check if subscription is a prefix of the update path
140
- return (updatePath === subscriptionPath ||
141
- updatePath.startsWith(subscriptionPath + "/"));
142
- }
143
- /**
144
- * Gets all path prefixes for a given path.
145
- *
146
- * For example, for '/a/b/c' it returns ['/a', '/a/b', '/a/b/c'].
147
- */
148
- getPathPrefixes(path) {
149
- const segments = path.split("/").filter((s) => s.length > 0);
150
- const prefixes = [];
151
- let currentPath = "";
152
- for (const segment of segments) {
153
- currentPath = currentPath ? `${currentPath}/${segment}` : `/${segment}`;
154
- prefixes.push(currentPath);
155
- }
156
- if (prefixes.length === 0 && path === "/") {
157
- prefixes.push("/");
158
- }
159
- return prefixes;
160
- }
161
- }
162
- //# sourceMappingURL=AnalyticsSubscriptionManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnalyticsSubscriptionManager.js","sourceRoot":"","sources":["../../src/AnalyticsSubscriptionManager.ts"],"names":[],"mappings":"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"}