@powerhousedao/analytics-engine-browser 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.
- package/dist/src/index.js +63318 -3
- package/package.json +12 -6
- package/dist/src/BrowserAnalyticsStore.js +0 -14
- package/dist/src/BrowserAnalyticsStore.js.map +0 -1
- package/dist/src/MemoryAnalyticsStore.js +0 -129
- package/dist/src/MemoryAnalyticsStore.js.map +0 -1
- package/dist/src/PgLiteExecutor.js +0 -60
- package/dist/src/PgLiteExecutor.js.map +0 -1
- package/dist/src/index.js.map +0 -1
- package/dist/test/Integration.test.d.ts +0 -2
- package/dist/test/Integration.test.d.ts.map +0 -1
- package/dist/test/Integration.test.js +0 -301
- package/dist/test/Integration.test.js.map +0 -1
- package/dist/test/MemoryAnalyticsStore.test.d.ts +0 -2
- package/dist/test/MemoryAnalyticsStore.test.d.ts.map +0 -1
- package/dist/test/MemoryAnalyticsStore.test.js +0 -108
- package/dist/test/MemoryAnalyticsStore.test.js.map +0 -1
- package/dist/test/Persistence.test.d.ts +0 -2
- package/dist/test/Persistence.test.d.ts.map +0 -1
- package/dist/test/Persistence.test.js +0 -117
- package/dist/test/Persistence.test.js.map +0 -1
- package/dist/test/utils.d.ts +0 -7
- package/dist/test/utils.d.ts.map +0 -1
- package/dist/test/utils.js +0 -7
- package/dist/test/utils.js.map +0 -1
- package/dist/test/vitest.setup.d.ts +0 -2
- package/dist/test/vitest.setup.d.ts.map +0 -1
- package/dist/test/vitest.setup.js +0 -2
- package/dist/test/vitest.setup.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -23
- package/dist/vitest.config.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@powerhousedao/analytics-engine-browser",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,20 +10,25 @@
|
|
|
10
10
|
"access": "public"
|
|
11
11
|
},
|
|
12
12
|
"type": "module",
|
|
13
|
-
"exports":
|
|
14
|
-
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/src/index.d.ts",
|
|
16
|
+
"default": "./dist/src/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
15
19
|
"files": [
|
|
16
|
-
"dist"
|
|
20
|
+
"dist/src"
|
|
17
21
|
],
|
|
18
22
|
"dependencies": {
|
|
23
|
+
"vite-plugin-node-polyfills": "0.25.0",
|
|
19
24
|
"@electric-sql/pglite": "0.3.15",
|
|
20
25
|
"date-fns": "4.1.0",
|
|
21
26
|
"events": "3.3.0",
|
|
22
27
|
"util": "0.12.5",
|
|
23
28
|
"knex": "3.1.0",
|
|
24
29
|
"luxon": "3.7.2",
|
|
25
|
-
"@powerhousedao/analytics-engine-core": "0.6.
|
|
26
|
-
"@powerhousedao/analytics-engine-knex": "0.6.
|
|
30
|
+
"@powerhousedao/analytics-engine-core": "0.6.3",
|
|
31
|
+
"@powerhousedao/analytics-engine-knex": "0.6.3"
|
|
27
32
|
},
|
|
28
33
|
"devDependencies": {
|
|
29
34
|
"@vitest/browser": "4.0.18",
|
|
@@ -33,6 +38,7 @@
|
|
|
33
38
|
"vitest": "4.0.18"
|
|
34
39
|
},
|
|
35
40
|
"scripts": {
|
|
41
|
+
"bundle": "bun run ./bundle.ts",
|
|
36
42
|
"dev": "pnpm tsc -b -w",
|
|
37
43
|
"test": "vitest --run ./**/*.test.ts"
|
|
38
44
|
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { MemoryAnalyticsStore, } from "./MemoryAnalyticsStore.js";
|
|
2
|
-
import { IdbFs, PGlite } from "@electric-sql/pglite";
|
|
3
|
-
export class BrowserAnalyticsStore extends MemoryAnalyticsStore {
|
|
4
|
-
constructor(options = { databaseName: "analytics" }) {
|
|
5
|
-
if (!options.pgLiteFactory) {
|
|
6
|
-
options.pgLiteFactory = async () => PGlite.create({
|
|
7
|
-
fs: new IdbFs(options.databaseName),
|
|
8
|
-
relaxedDurability: true,
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
super(options);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
//# sourceMappingURL=BrowserAnalyticsStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserAnalyticsStore.js","sourceRoot":"","sources":["../../src/BrowserAnalyticsStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,GAErB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAMrD,MAAM,OAAO,qBAAsB,SAAQ,oBAAoB;IAC7D,YACE,UAAwC,EAAE,YAAY,EAAE,WAAW,EAAE;QAErE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC3B,OAAO,CAAC,aAAa,GAAG,KAAK,IAAI,EAAE,CACjC,MAAM,CAAC,MAAM,CAAC;gBACZ,EAAE,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;gBACnC,iBAAiB,EAAE,IAAI;aACxB,CAAC,CAAC;QACP,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,CAAC;CACF"}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import { PassthroughAnalyticsProfiler, } from "@powerhousedao/analytics-engine-core";
|
|
2
|
-
import { KnexAnalyticsStore, } from "@powerhousedao/analytics-engine-knex";
|
|
3
|
-
import knexFactory from "knex";
|
|
4
|
-
import { parseRawResults, PGLiteQueryExecutor } from "./PgLiteExecutor.js";
|
|
5
|
-
import { PGlite } from "@electric-sql/pglite";
|
|
6
|
-
const initSql = `
|
|
7
|
-
|
|
8
|
-
create table if not exists "AnalyticsSeries"
|
|
9
|
-
(
|
|
10
|
-
id serial primary key,
|
|
11
|
-
source varchar(255) not null,
|
|
12
|
-
start timestamp not null,
|
|
13
|
-
"end" timestamp,
|
|
14
|
-
metric varchar(255) not null,
|
|
15
|
-
value real not null,
|
|
16
|
-
unit varchar(255),
|
|
17
|
-
fn varchar(255) not null,
|
|
18
|
-
params json
|
|
19
|
-
);
|
|
20
|
-
|
|
21
|
-
create unique index if not exists "AnalyticsSeries_pkey"
|
|
22
|
-
on "AnalyticsSeries" (id);
|
|
23
|
-
|
|
24
|
-
create index if not exists analyticsseries_end_index
|
|
25
|
-
on "AnalyticsSeries" ("end");
|
|
26
|
-
|
|
27
|
-
create index if not exists analyticsseries_fn_index
|
|
28
|
-
on "AnalyticsSeries" (fn);
|
|
29
|
-
|
|
30
|
-
create index if not exists analyticsseries_metric_index
|
|
31
|
-
on "AnalyticsSeries" (metric);
|
|
32
|
-
|
|
33
|
-
create index if not exists analyticsseries_source_index
|
|
34
|
-
on "AnalyticsSeries" (source);
|
|
35
|
-
|
|
36
|
-
create index if not exists analyticsseries_start_index
|
|
37
|
-
on "AnalyticsSeries" (start);
|
|
38
|
-
|
|
39
|
-
create index if not exists analyticsseries_unit_index
|
|
40
|
-
on "AnalyticsSeries" (unit);
|
|
41
|
-
|
|
42
|
-
create index if not exists analyticsseries_value_index
|
|
43
|
-
on "AnalyticsSeries" (value);
|
|
44
|
-
|
|
45
|
-
create table if not exists "AnalyticsDimension"
|
|
46
|
-
(
|
|
47
|
-
id serial primary key,
|
|
48
|
-
dimension varchar(255) not null,
|
|
49
|
-
path varchar(255) not null,
|
|
50
|
-
label varchar(255),
|
|
51
|
-
icon varchar(1000),
|
|
52
|
-
description text
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
create unique index if not exists "AnalyticsDimension_pkey"
|
|
56
|
-
on "AnalyticsDimension" (id);
|
|
57
|
-
|
|
58
|
-
create index if not exists analyticsdimension_dimension_index
|
|
59
|
-
on "AnalyticsDimension" (dimension);
|
|
60
|
-
|
|
61
|
-
create index if not exists analyticsdimension_path_index
|
|
62
|
-
on "AnalyticsDimension" (path);
|
|
63
|
-
|
|
64
|
-
create table if not exists "AnalyticsSeries_AnalyticsDimension"
|
|
65
|
-
(
|
|
66
|
-
"seriesId" integer not null
|
|
67
|
-
constraint analyticsseries_analyticsdimension_seriesid_foreign
|
|
68
|
-
references "AnalyticsSeries"
|
|
69
|
-
on delete cascade,
|
|
70
|
-
"dimensionId" integer not null
|
|
71
|
-
constraint analyticsseries_analyticsdimension_dimensionid_foreign
|
|
72
|
-
references "AnalyticsDimension"
|
|
73
|
-
on delete cascade
|
|
74
|
-
);
|
|
75
|
-
|
|
76
|
-
create index if not exists analyticsseries_analyticsdimension_dimensionid_index
|
|
77
|
-
on "AnalyticsSeries_AnalyticsDimension" ("dimensionId");
|
|
78
|
-
|
|
79
|
-
create index if not exists analyticsseries_analyticsdimension_seriesid_index
|
|
80
|
-
on "AnalyticsSeries_AnalyticsDimension" ("seriesId");
|
|
81
|
-
|
|
82
|
-
`;
|
|
83
|
-
export class MemoryAnalyticsStore extends KnexAnalyticsStore {
|
|
84
|
-
_pgLiteFactory;
|
|
85
|
-
_queryLogger;
|
|
86
|
-
_resultsLogger;
|
|
87
|
-
_pgExecutor;
|
|
88
|
-
_profiler;
|
|
89
|
-
_sql = null;
|
|
90
|
-
constructor({ knex, pgLiteFactory, queryLogger, resultsLogger, profiler, } = {}) {
|
|
91
|
-
if (!profiler) {
|
|
92
|
-
profiler = new PassthroughAnalyticsProfiler();
|
|
93
|
-
}
|
|
94
|
-
const executor = new PGLiteQueryExecutor(profiler, queryLogger, resultsLogger);
|
|
95
|
-
super({
|
|
96
|
-
executor,
|
|
97
|
-
knex: knex ||
|
|
98
|
-
knexFactory({
|
|
99
|
-
client: "pg",
|
|
100
|
-
useNullAsDefault: true,
|
|
101
|
-
}),
|
|
102
|
-
});
|
|
103
|
-
this._pgLiteFactory = pgLiteFactory || PGlite.create;
|
|
104
|
-
this._queryLogger = queryLogger || (() => { });
|
|
105
|
-
this._resultsLogger = resultsLogger || (() => { });
|
|
106
|
-
this._profiler = profiler;
|
|
107
|
-
this._pgExecutor = executor;
|
|
108
|
-
}
|
|
109
|
-
async init() {
|
|
110
|
-
this._sql = await this._pgLiteFactory();
|
|
111
|
-
// init executor
|
|
112
|
-
this._pgExecutor.init(this._sql);
|
|
113
|
-
// create tables if they do not exist
|
|
114
|
-
await this._sql.exec(initSql);
|
|
115
|
-
}
|
|
116
|
-
async raw(sql) {
|
|
117
|
-
this._queryLogger(-1, sql);
|
|
118
|
-
return await this._profiler.record("QueryRaw", async () => {
|
|
119
|
-
const results = await this._sql?.exec(sql);
|
|
120
|
-
this._resultsLogger(-1, results);
|
|
121
|
-
return parseRawResults(results || []);
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
async destroy() {
|
|
125
|
-
super.destroy();
|
|
126
|
-
this._sql?.close();
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=MemoryAnalyticsStore.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryAnalyticsStore.js","sourceRoot":"","sources":["../../src/MemoryAnalyticsStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,4BAA4B,GAC7B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACL,kBAAkB,GAGnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,WAAW,MAAM,MAAM,CAAC;AAE/B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4Ef,CAAC;AAUF,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IAClD,cAAc,CAAwB;IACtC,YAAY,CAAiB;IAC7B,cAAc,CAAmB;IACjC,WAAW,CAAsB;IACjC,SAAS,CAAqB;IAC9B,IAAI,GAAkB,IAAI,CAAC;IAEnC,YAAmB,EACjB,IAAI,EACJ,aAAa,EACb,WAAW,EACX,aAAa,EACb,QAAQ,MACuB,EAAE;QACjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,4BAA4B,EAAE,CAAC;QAChD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CACtC,QAAQ,EACR,WAAW,EACX,aAAa,CACd,CAAC;QAEF,KAAK,CAAC;YACJ,QAAQ;YACR,IAAI,EACF,IAAI;gBACJ,WAAW,CAAC;oBACV,MAAM,EAAE,IAAI;oBACZ,gBAAgB,EAAE,IAAI;iBACvB,CAAC;SACL,CAAC,CAAC;QAEH,IAAI,CAAC,cAAc,GAAG,aAAa,IAAI,MAAM,CAAC,MAAM,CAAC;QACrD,IAAI,CAAC,YAAY,GAAG,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,IAAI,CAAC,cAAc,GAAG,aAAa,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAExC,gBAAgB;QAChB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEjC,qCAAqC;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAEM,KAAK,CAAC,GAAG,CAAC,GAAW;QAC1B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAE3B,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACxD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAE3C,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAEjC,OAAO,eAAe,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { PGlite } from "@electric-sql/pglite";
|
|
2
|
-
import {} from "@powerhousedao/analytics-engine-core";
|
|
3
|
-
export const parseRawResults = (rawResults) => {
|
|
4
|
-
const allValues = [];
|
|
5
|
-
for (const returnValue of rawResults.values() || []) {
|
|
6
|
-
const { fields, rows } = returnValue;
|
|
7
|
-
const values = new Array(rows.length);
|
|
8
|
-
for (let i = 0, iLen = values.length; i < iLen; i++) {
|
|
9
|
-
const row = rows[i];
|
|
10
|
-
const value = {};
|
|
11
|
-
for (let j = 0, jLen = fields.length; j < jLen; j++) {
|
|
12
|
-
// todo: switch on dataTypeID
|
|
13
|
-
const { name, dataTypeID } = fields[j];
|
|
14
|
-
value[name] = row[name];
|
|
15
|
-
}
|
|
16
|
-
values[i] = value;
|
|
17
|
-
}
|
|
18
|
-
allValues.push(...values);
|
|
19
|
-
}
|
|
20
|
-
return allValues;
|
|
21
|
-
};
|
|
22
|
-
export class PGLiteQueryExecutor {
|
|
23
|
-
_profiler;
|
|
24
|
-
_queryLogger;
|
|
25
|
-
_resultsLogger;
|
|
26
|
-
_index = 0;
|
|
27
|
-
_sql = null;
|
|
28
|
-
constructor(_profiler, _queryLogger, _resultsLogger) {
|
|
29
|
-
this._profiler = _profiler;
|
|
30
|
-
this._queryLogger = _queryLogger;
|
|
31
|
-
this._resultsLogger = _resultsLogger;
|
|
32
|
-
//
|
|
33
|
-
}
|
|
34
|
-
init(sql) {
|
|
35
|
-
this._sql = sql;
|
|
36
|
-
}
|
|
37
|
-
async execute(query) {
|
|
38
|
-
if (!this._sql) {
|
|
39
|
-
throw new Error("PGLiteQueryExecutor not initialized");
|
|
40
|
-
}
|
|
41
|
-
const raw = query.toString();
|
|
42
|
-
const index = this._index++;
|
|
43
|
-
if (this._queryLogger) {
|
|
44
|
-
this._queryLogger(index, raw);
|
|
45
|
-
}
|
|
46
|
-
const results = await this._profiler.record("Query", async () => {
|
|
47
|
-
const rawResults = await this._sql?.exec(raw);
|
|
48
|
-
if (!rawResults) {
|
|
49
|
-
return;
|
|
50
|
-
}
|
|
51
|
-
const allValues = parseRawResults(rawResults);
|
|
52
|
-
return allValues;
|
|
53
|
-
});
|
|
54
|
-
if (this._resultsLogger) {
|
|
55
|
-
this._resultsLogger(index, results);
|
|
56
|
-
}
|
|
57
|
-
return results;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=PgLiteExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PgLiteExecutor.js","sourceRoot":"","sources":["../../src/PgLiteExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAA2B,MAAM,sCAAsC,CAAC;AAQ/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,UAAiB,EAAE,EAAE;IACnD,MAAM,SAAS,GAAG,EAAE,CAAC;IACrB,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;QACrC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAQ,EAAE,CAAC;YACtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;gBACpD,6BAA6B;gBAC7B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvC,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;YAED,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACpB,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,OAAO,mBAAmB;IAKX;IACA;IACA;IANX,MAAM,GAAW,CAAC,CAAC;IACnB,IAAI,GAAkB,IAAI,CAAC;IAEnC,YACmB,SAA6B,EAC7B,YAA6B,EAC7B,cAAiC;QAFjC,cAAS,GAAT,SAAS,CAAoB;QAC7B,iBAAY,GAAZ,YAAY,CAAiB;QAC7B,mBAAc,GAAd,cAAc,CAAmB;QAElD,EAAE;IACJ,CAAC;IAED,IAAI,CAAC,GAAW;QACd,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,OAAO,CAAkB,KAA8B;QAC3D,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC;QAED,MAAM,OAAO,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO;YACT,CAAC;YAED,MAAM,SAAS,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;YAC9C,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
|
package/dist/src/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Integration.test.d.ts","sourceRoot":"","sources":["../../test/Integration.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,301 +0,0 @@
|
|
|
1
|
-
import { DateTime } from "luxon";
|
|
2
|
-
import { afterAll, beforeAll, describe, it, expect } from "vitest";
|
|
3
|
-
import { AnalyticsPath, AnalyticsQueryEngine, AnalyticsGranularity, } from "@powerhousedao/analytics-engine-core";
|
|
4
|
-
import { MemoryAnalyticsStore } from "../src/MemoryAnalyticsStore.js";
|
|
5
|
-
let store;
|
|
6
|
-
let engine;
|
|
7
|
-
const TEST_SOURCE = AnalyticsPath.fromString("test/analytics/Integration.spec");
|
|
8
|
-
const getResultsForGranularity = async (granularity, start, end) => {
|
|
9
|
-
const query = {
|
|
10
|
-
start,
|
|
11
|
-
end,
|
|
12
|
-
granularity,
|
|
13
|
-
metrics: ["Budget"],
|
|
14
|
-
currency: AnalyticsPath.fromString("DAI"),
|
|
15
|
-
select: {
|
|
16
|
-
budget: [AnalyticsPath.fromString("atlas/legacy/core-units/PE-001")],
|
|
17
|
-
category: [AnalyticsPath.fromString("atlas/headcount")],
|
|
18
|
-
project: [TEST_SOURCE],
|
|
19
|
-
},
|
|
20
|
-
lod: {
|
|
21
|
-
budget: 3,
|
|
22
|
-
category: 2,
|
|
23
|
-
project: 2,
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
const result = await engine.execute(query);
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
|
-
beforeAll(async () => {
|
|
30
|
-
store = new MemoryAnalyticsStore();
|
|
31
|
-
await store.init();
|
|
32
|
-
engine = new AnalyticsQueryEngine(store);
|
|
33
|
-
// clear all records first
|
|
34
|
-
await store.clearSeriesBySource(TEST_SOURCE, true);
|
|
35
|
-
// budget
|
|
36
|
-
await store.addSeriesValues([
|
|
37
|
-
{
|
|
38
|
-
start: DateTime.utc(2021, 1, 1),
|
|
39
|
-
source: TEST_SOURCE,
|
|
40
|
-
value: 10000,
|
|
41
|
-
unit: "DAI",
|
|
42
|
-
metric: "budget",
|
|
43
|
-
dimensions: {
|
|
44
|
-
budget: AnalyticsPath.fromString("atlas/legacy/core-units/PE-001"),
|
|
45
|
-
category: AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/FrontEndEngineering"),
|
|
46
|
-
project: TEST_SOURCE,
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
start: DateTime.utc(2022, 1, 1),
|
|
51
|
-
source: TEST_SOURCE,
|
|
52
|
-
value: 10000,
|
|
53
|
-
unit: "DAI",
|
|
54
|
-
metric: "budget",
|
|
55
|
-
dimensions: {
|
|
56
|
-
budget: AnalyticsPath.fromString("atlas/legacy/core-units/PE-001"),
|
|
57
|
-
category: AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/FrontEndEngineering"),
|
|
58
|
-
project: TEST_SOURCE,
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
start: DateTime.utc(2023, 1, 1),
|
|
63
|
-
source: TEST_SOURCE,
|
|
64
|
-
value: 15000,
|
|
65
|
-
unit: "DAI",
|
|
66
|
-
metric: "budget",
|
|
67
|
-
dimensions: {
|
|
68
|
-
budget: AnalyticsPath.fromString("atlas/legacy/core-units/PE-001"),
|
|
69
|
-
category: AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/SmartContractEngineering"),
|
|
70
|
-
project: TEST_SOURCE,
|
|
71
|
-
},
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
start: DateTime.utc(2022, 1, 1),
|
|
75
|
-
end: DateTime.utc(2023, 1, 1),
|
|
76
|
-
source: TEST_SOURCE,
|
|
77
|
-
value: 240,
|
|
78
|
-
unit: "MKR",
|
|
79
|
-
metric: "Budget",
|
|
80
|
-
fn: "DssVest",
|
|
81
|
-
dimensions: {
|
|
82
|
-
budget: AnalyticsPath.fromString("atlas/legacy/core-units/PE-001"),
|
|
83
|
-
category: AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/SmartContractEngineering"),
|
|
84
|
-
project: TEST_SOURCE,
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
start: DateTime.utc(2023, 1, 1),
|
|
89
|
-
end: DateTime.utc(2024, 1, 1),
|
|
90
|
-
source: TEST_SOURCE,
|
|
91
|
-
value: 240,
|
|
92
|
-
unit: "MKR",
|
|
93
|
-
metric: "budget",
|
|
94
|
-
fn: "DssVest",
|
|
95
|
-
params: {
|
|
96
|
-
cliff: DateTime.utc(2023, 12, 1),
|
|
97
|
-
},
|
|
98
|
-
dimensions: {
|
|
99
|
-
budget: AnalyticsPath.fromString("atlas/legacy/core-units/PE-001"),
|
|
100
|
-
category: AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/SmartContractEngineering"),
|
|
101
|
-
project: TEST_SOURCE,
|
|
102
|
-
},
|
|
103
|
-
},
|
|
104
|
-
]);
|
|
105
|
-
// add fte's
|
|
106
|
-
await store.addSeriesValues([
|
|
107
|
-
{
|
|
108
|
-
start: DateTime.utc(2023, 1, 1),
|
|
109
|
-
source: TEST_SOURCE,
|
|
110
|
-
value: 5.8,
|
|
111
|
-
metric: "FTEs",
|
|
112
|
-
dimensions: {
|
|
113
|
-
project: TEST_SOURCE,
|
|
114
|
-
},
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
start: DateTime.utc(2023, 3, 1),
|
|
118
|
-
source: TEST_SOURCE,
|
|
119
|
-
value: -0.8,
|
|
120
|
-
metric: "FTEs",
|
|
121
|
-
dimensions: {
|
|
122
|
-
project: TEST_SOURCE,
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
]);
|
|
126
|
-
});
|
|
127
|
-
afterAll(async () => {
|
|
128
|
-
store.destroy();
|
|
129
|
-
});
|
|
130
|
-
it("should query records", async () => {
|
|
131
|
-
const query = {
|
|
132
|
-
start: DateTime.utc(2022, 9, 1),
|
|
133
|
-
end: null,
|
|
134
|
-
granularity: AnalyticsGranularity.Total,
|
|
135
|
-
metrics: ["Budget", "Actuals", "FTEs"],
|
|
136
|
-
currency: AnalyticsPath.fromString("DAI,MKR"),
|
|
137
|
-
select: {
|
|
138
|
-
budget: [
|
|
139
|
-
AnalyticsPath.fromString("atlas/legacy/core-units/PE-001"),
|
|
140
|
-
AnalyticsPath.fromString("atlas/legacy/core-units/PE-001"),
|
|
141
|
-
],
|
|
142
|
-
category: [AnalyticsPath.fromString("atlas/headcount")],
|
|
143
|
-
project: [TEST_SOURCE],
|
|
144
|
-
},
|
|
145
|
-
lod: {
|
|
146
|
-
budget: 3,
|
|
147
|
-
category: 2,
|
|
148
|
-
project: 2,
|
|
149
|
-
},
|
|
150
|
-
};
|
|
151
|
-
const result = await engine.execute(query);
|
|
152
|
-
expect(result.length).toBe(1);
|
|
153
|
-
expect(result[0].rows.map((r) => r.unit).sort()).toEqual(["DAI", "MKR"]);
|
|
154
|
-
expect(result[0].rows.map((r) => r.dimensions.budget.path)).toEqual([
|
|
155
|
-
"atlas/legacy/core-units",
|
|
156
|
-
"atlas/legacy/core-units",
|
|
157
|
-
]);
|
|
158
|
-
});
|
|
159
|
-
describe("totals of different granularities", () => {
|
|
160
|
-
const start = DateTime.utc(2022, 1, 1);
|
|
161
|
-
const end = DateTime.utc(2023, 6, 1);
|
|
162
|
-
it("should return one, correct row on total granularity", async () => {
|
|
163
|
-
const result = await getResultsForGranularity(AnalyticsGranularity.Total, start, end);
|
|
164
|
-
expect(result.length).toBe(1);
|
|
165
|
-
expect(result[0].rows[0].sum).toBe(35000);
|
|
166
|
-
expect(result[0].rows[0].value).toBe(15000);
|
|
167
|
-
expect(result[0].period).toBe("total");
|
|
168
|
-
});
|
|
169
|
-
it("should correct value on annual granularity", async () => {
|
|
170
|
-
const result = await getResultsForGranularity(AnalyticsGranularity.Annual, DateTime.utc(2021, 1, 1), end);
|
|
171
|
-
expect(result.length).toBe(3);
|
|
172
|
-
const result2021 = result.find((r) => r.period === "2021");
|
|
173
|
-
expect(result2021).toBeDefined();
|
|
174
|
-
expect(result2021?.rows[0].value).toBe(10000);
|
|
175
|
-
const result2022 = result.find((r) => r.period === "2022");
|
|
176
|
-
expect(result2022).toBeDefined();
|
|
177
|
-
expect(result2022?.rows[0].value).toBe(15000);
|
|
178
|
-
const result2023 = result.find((r) => r.period === "2023");
|
|
179
|
-
expect(result2023).toBeDefined();
|
|
180
|
-
expect(result2023?.rows[0].value).toBe(0);
|
|
181
|
-
});
|
|
182
|
-
/*
|
|
183
|
-
it("should correct sum up on semi annual granularity", async () => {
|
|
184
|
-
const result = await getResultsForGranularity(
|
|
185
|
-
AnalyticsGranularity.SemiAnnual
|
|
186
|
-
);
|
|
187
|
-
expect(result.length).toBe(3);
|
|
188
|
-
expect(getTotalSumOfResults(result)).toBe(total);
|
|
189
|
-
expect(result[result.length - 1].rows[0].sum).toBe(25000);
|
|
190
|
-
expect(result[result.length - 1].period).toBe("2023/H1");
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
it("should correct sum up on monthly granularity", async () => {
|
|
194
|
-
const result = await getResultsForGranularity(AnalyticsGranularity.Monthly);
|
|
195
|
-
expect(result.length).toBe(17);
|
|
196
|
-
expect(getTotalSumOfResults(result)).toBe(total);
|
|
197
|
-
expect(result[result.length - 1].rows[0].sum).toBe(25000);
|
|
198
|
-
expect(result[0].period).toBe("2022/1");
|
|
199
|
-
});
|
|
200
|
-
|
|
201
|
-
it("should correct sum up on weekly granularity", async () => {
|
|
202
|
-
const result = await getResultsForGranularity(AnalyticsGranularity.Weekly);
|
|
203
|
-
expect(result.length).toBe(75);
|
|
204
|
-
expect(getTotalSumOfResults(result)).toBe(total);
|
|
205
|
-
expect(result[result.length - 1].rows[0].sum).toBe(25000);
|
|
206
|
-
expect(result[0].period).toBe("2021/W52");
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
it("should correct sum up on daily granularity", async () => {
|
|
210
|
-
const start = DateTime.utc(2021, 12, 30);
|
|
211
|
-
const end = DateTime.utc(2022, 1, 5);
|
|
212
|
-
const result = await getResultsForGranularity(
|
|
213
|
-
AnalyticsGranularity.Daily,
|
|
214
|
-
start,
|
|
215
|
-
end
|
|
216
|
-
);
|
|
217
|
-
expect(result.length).toBe(6);
|
|
218
|
-
expect(result[result.length - 1].rows[0].sum).toBe(10000);
|
|
219
|
-
expect(result[0].period).toBe("2021/12/30");
|
|
220
|
-
});
|
|
221
|
-
|
|
222
|
-
it("should correct sum up on hourly granularity", async () => {
|
|
223
|
-
const start = DateTime.utc(2021, 12, 31);
|
|
224
|
-
const end = DateTime.utc(2022, 1, 1, 5);
|
|
225
|
-
const result = await getResultsForGranularity(
|
|
226
|
-
AnalyticsGranularity.Hourly,
|
|
227
|
-
start,
|
|
228
|
-
end
|
|
229
|
-
);
|
|
230
|
-
expect(result.length).toBe(6);
|
|
231
|
-
expect(result[result.length - 1].rows[0].sum).toBe(10000);
|
|
232
|
-
expect(result[0].period).toBe("2021/12/31/23");
|
|
233
|
-
});
|
|
234
|
-
*/
|
|
235
|
-
});
|
|
236
|
-
describe("dss vesting", () => {
|
|
237
|
-
it("should return values linear proportional to the time passed", async () => {
|
|
238
|
-
const start = DateTime.utc(2023, 1, 1);
|
|
239
|
-
const end = DateTime.utc(2024, 1, 1);
|
|
240
|
-
const query = {
|
|
241
|
-
start,
|
|
242
|
-
end,
|
|
243
|
-
granularity: AnalyticsGranularity.Monthly,
|
|
244
|
-
metrics: ["Budget", "Actuals"],
|
|
245
|
-
currency: AnalyticsPath.fromString("MKR"),
|
|
246
|
-
select: {
|
|
247
|
-
budget: [AnalyticsPath.fromString("atlas/legacy/core-units/PE-001")],
|
|
248
|
-
category: [
|
|
249
|
-
AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/SmartContractEngineering"),
|
|
250
|
-
],
|
|
251
|
-
project: [TEST_SOURCE],
|
|
252
|
-
},
|
|
253
|
-
lod: {
|
|
254
|
-
budget: 3,
|
|
255
|
-
category: 2,
|
|
256
|
-
project: 2,
|
|
257
|
-
},
|
|
258
|
-
};
|
|
259
|
-
const result = await engine.execute(query);
|
|
260
|
-
// should give us 12 periods, one for each month
|
|
261
|
-
expect(result.length).toBe(12);
|
|
262
|
-
const january = result[0].rows[0];
|
|
263
|
-
const november = result[10].rows[0];
|
|
264
|
-
const december = result[11].rows[0];
|
|
265
|
-
expect(january.value).toBe(0);
|
|
266
|
-
expect(november.value.toFixed(0)).toBe("220"); // vest everything until cliff date
|
|
267
|
-
expect(december.value.toFixed(0)).toBe("20"); // vest normal amount
|
|
268
|
-
});
|
|
269
|
-
it("should return vesting if start and end date > query date", async () => {
|
|
270
|
-
const start = DateTime.utc(2022, 3, 1);
|
|
271
|
-
const end = DateTime.utc(2022, 6, 1);
|
|
272
|
-
const query = {
|
|
273
|
-
start,
|
|
274
|
-
end,
|
|
275
|
-
granularity: AnalyticsGranularity.Monthly,
|
|
276
|
-
metrics: ["Budget", "Actuals"],
|
|
277
|
-
currency: AnalyticsPath.fromString("MKR"),
|
|
278
|
-
select: {
|
|
279
|
-
budget: [AnalyticsPath.fromString("atlas/legacy/core-units/PE-001")],
|
|
280
|
-
category: [
|
|
281
|
-
AnalyticsPath.fromString("atlas/headcount/CompensationAndBenefits/SmartContractEngineering"),
|
|
282
|
-
],
|
|
283
|
-
project: [TEST_SOURCE],
|
|
284
|
-
},
|
|
285
|
-
lod: {
|
|
286
|
-
budget: 3,
|
|
287
|
-
category: 2,
|
|
288
|
-
project: 2,
|
|
289
|
-
},
|
|
290
|
-
};
|
|
291
|
-
const result = await engine.execute(query);
|
|
292
|
-
expect(result.length).toBe(3);
|
|
293
|
-
const feb = result[0].rows[0];
|
|
294
|
-
const march = result[1].rows[0];
|
|
295
|
-
const april = result[2].rows[0];
|
|
296
|
-
expect(feb.value.toFixed(0)).toBe("20");
|
|
297
|
-
expect(march.sum).toBe(feb.sum + march.value);
|
|
298
|
-
expect(april.sum).toBe(march.sum + april.value);
|
|
299
|
-
});
|
|
300
|
-
});
|
|
301
|
-
//# sourceMappingURL=Integration.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Integration.test.js","sourceRoot":"","sources":["../../test/Integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryAnalyticsStore.test.d.ts","sourceRoot":"","sources":["../../test/MemoryAnalyticsStore.test.ts"],"names":[],"mappings":""}
|