@static-suite/static-suite-data-server 0.0.1 → 0.0.2
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/README.md +564 -104
- package/dist/http/README.md +564 -104
- package/dist/http/routes/dependency.d.ts +10 -0
- package/dist/http/routes/dependency.d.ts.map +1 -0
- package/dist/http/routes/dependency.js +71 -0
- package/dist/http/routes/dump.d.ts.map +1 -1
- package/dist/http/routes/dump.js +15 -10
- package/dist/http/routes/home.js +2 -1
- package/dist/http/routes/index.d.ts.map +1 -1
- package/dist/http/routes/index.js +8 -0
- package/dist/http/routes/status.d.ts.map +1 -1
- package/dist/http/routes/status.js +1 -6
- package/dist/http/views/dependencyIndex.pug +14 -0
- package/dist/lib/dataServer.d.ts +2 -1
- package/dist/lib/dataServer.d.ts.map +1 -1
- package/dist/lib/query/query.types.d.ts +2 -2
- package/dist/lib/query/query.types.d.ts.map +1 -1
- package/dist/lib/query/query.types.js +2 -2
- package/dist/lib/query/queryRunner.d.ts.map +1 -1
- package/dist/lib/query/queryRunner.js +3 -1
- package/dist/lib/store/dataDir/dataDir.types.d.ts +5 -5
- package/dist/lib/store/dataDir/dataDir.types.d.ts.map +1 -1
- package/dist/lib/store/dataDir/dataDirManager.d.ts.map +1 -1
- package/dist/lib/store/dataDir/dataDirManager.js +23 -12
- package/dist/lib/store/dependency/dependency.types.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyFileHelper.d.ts +1 -1
- package/dist/lib/store/dependency/dependencyFileHelper.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyFileHelper.js +5 -3
- package/dist/lib/store/dependency/dependencyManager.d.ts +12 -0
- package/dist/lib/store/dependency/dependencyManager.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyManager.js +7 -5
- package/dist/lib/store/dependency/dependencyTagger.d.ts.map +1 -1
- package/dist/lib/store/dependency/dependencyTagger.js +3 -38
- package/dist/lib/store/diff/{diffManager.types.d.ts → diff.types.d.ts} +14 -6
- package/dist/lib/store/diff/diff.types.d.ts.map +1 -0
- package/dist/lib/store/{dependency/dependencyManager.types.js → diff/diff.types.js} +0 -0
- package/dist/lib/store/diff/diffManager.d.ts +1 -1
- package/dist/lib/store/diff/diffManager.d.ts.map +1 -1
- package/dist/lib/store/diff/diffManager.js +38 -81
- package/dist/lib/store/dump/{dumpManager.types.d.ts → dump.types.d.ts} +21 -8
- package/dist/lib/store/dump/dump.types.d.ts.map +1 -0
- package/dist/lib/store/{diff/diffManager.types.js → dump/dump.types.js} +0 -0
- package/dist/lib/store/dump/dumpManager.d.ts +1 -1
- package/dist/lib/store/dump/dumpManager.d.ts.map +1 -1
- package/dist/lib/store/dump/dumpManager.js +31 -56
- package/dist/lib/store/dump/dumpMetadataHelper.d.ts +7 -0
- package/dist/lib/store/dump/dumpMetadataHelper.d.ts.map +1 -0
- package/dist/lib/store/dump/dumpMetadataHelper.js +61 -0
- package/dist/lib/store/hook/hook.types.d.ts +49 -23
- package/dist/lib/store/hook/hook.types.d.ts.map +1 -1
- package/dist/lib/store/hook/hookManager.d.ts.map +1 -1
- package/dist/lib/store/hook/hookManager.js +19 -8
- package/dist/lib/store/store.d.ts.map +1 -1
- package/dist/lib/store/store.js +9 -4
- package/dist/lib/store/store.types.d.ts +14 -37
- package/dist/lib/store/store.types.d.ts.map +1 -1
- package/dist/lib/store/storeManager.d.ts.map +1 -1
- package/dist/lib/store/storeManager.js +20 -10
- package/dist/lib/store/workDir/storage/getChangedLinesBetween.d.ts +16 -0
- package/dist/lib/store/workDir/storage/getChangedLinesBetween.d.ts.map +1 -0
- package/dist/lib/store/workDir/storage/{getChangedLinesSince.js → getChangedLinesBetween.js} +22 -20
- package/dist/lib/store/workDir/storage/getDataFromLogLine.d.ts.map +1 -1
- package/dist/lib/store/workDir/storage/getDataFromLogLine.js +16 -3
- package/dist/lib/store/workDir/storage/index.d.ts +1 -1
- package/dist/lib/store/workDir/storage/index.d.ts.map +1 -1
- package/dist/lib/store/workDir/storage/index.js +1 -1
- package/dist/lib/store/workDir/workDir.types.d.ts +9 -1
- package/dist/lib/store/workDir/workDir.types.d.ts.map +1 -1
- package/dist/lib/store/workDir/workDirHelper.d.ts +13 -6
- package/dist/lib/store/workDir/workDirHelper.d.ts.map +1 -1
- package/dist/lib/store/workDir/workDirHelper.js +42 -11
- package/dist/lib/utils/fs/fsUtils.d.ts +6 -0
- package/dist/lib/utils/fs/fsUtils.d.ts.map +1 -1
- package/dist/lib/utils/fs/fsUtils.js +20 -1
- package/dist/lib/utils/module/moduleManager.d.ts.map +1 -1
- package/dist/lib/utils/module/moduleManager.js +5 -1
- package/dist/lib/utils/string/stringUtils.d.ts +14 -0
- package/dist/lib/utils/string/stringUtils.d.ts.map +1 -1
- package/dist/lib/utils/string/stringUtils.js +28 -1
- package/dist/static-suite-data-server.d.ts +19 -39
- package/package.json +3 -3
- package/src/http/routes/dependency.ts +91 -0
- package/src/http/routes/dump.ts +21 -10
- package/src/http/routes/home.ts +2 -2
- package/src/http/routes/index.ts +16 -0
- package/src/http/routes/status.ts +1 -9
- package/src/http/views/dependencyIndex.pug +14 -0
- package/src/lib/dataServer.ts +2 -0
- package/src/lib/query/query.types.ts +2 -2
- package/src/lib/query/queryRunner.ts +3 -1
- package/src/lib/store/dataDir/dataDir.types.ts +5 -5
- package/src/lib/store/dataDir/dataDirManager.ts +30 -14
- package/src/lib/store/dependency/dependency.types.ts +0 -5
- package/src/lib/store/dependency/dependencyFileHelper.ts +5 -3
- package/src/lib/store/dependency/dependencyManager.ts +6 -3
- package/src/lib/store/dependency/dependencyTagger.ts +3 -39
- package/src/lib/store/diff/{diffManager.types.ts → diff.types.ts} +14 -5
- package/src/lib/store/diff/diffManager.ts +45 -84
- package/src/lib/store/dump/{dumpManager.types.ts → dump.types.ts} +24 -7
- package/src/lib/store/dump/dumpManager.ts +40 -75
- package/src/lib/store/dump/dumpMetadataHelper.ts +73 -0
- package/src/lib/store/hook/hook.types.ts +58 -23
- package/src/lib/store/hook/hookManager.ts +24 -9
- package/src/lib/store/store.ts +9 -4
- package/src/lib/store/store.types.ts +16 -37
- package/src/lib/store/storeManager.ts +28 -12
- package/src/lib/store/workDir/__tests__/workDirHelper.test.ts +6 -1
- package/src/lib/store/workDir/storage/__tests__/{getChangedLinesSince.test.ts → getChangedLinesBetween.test.ts} +9 -4
- package/src/lib/store/workDir/storage/getChangedLinesBetween.ts +52 -0
- package/src/lib/store/workDir/storage/getDataFromLogLine.ts +22 -3
- package/src/lib/store/workDir/storage/index.ts +1 -1
- package/src/lib/store/workDir/workDir.types.ts +11 -1
- package/src/lib/store/workDir/workDirHelper.ts +45 -11
- package/src/lib/utils/fs/fsUtils.ts +18 -0
- package/src/lib/utils/module/moduleManager.ts +5 -1
- package/src/lib/utils/string/__tests__/stringUtils.test.ts +30 -1
- package/src/lib/utils/string/stringUtils.ts +32 -0
- package/dist/lib/query/queryRunner copy.d.ts +0 -3
- package/dist/lib/query/queryRunner copy.d.ts.map +0 -1
- package/dist/lib/query/queryRunner copy.js +0 -87
- package/dist/lib/store/dependency/dependencyManager copy.d.ts +0 -6
- package/dist/lib/store/dependency/dependencyManager copy.d.ts.map +0 -1
- package/dist/lib/store/dependency/dependencyManager copy.js +0 -91
- package/dist/lib/store/dependency/dependencyManager.types.d.ts +0 -48
- package/dist/lib/store/dependency/dependencyManager.types.d.ts.map +0 -1
- package/dist/lib/store/dependency/dependencyTagManager.d.ts +0 -6
- package/dist/lib/store/dependency/dependencyTagManager.d.ts.map +0 -1
- package/dist/lib/store/dependency/dependencyTagManager.js +0 -33
- package/dist/lib/store/diff/diffManager.types.d.ts.map +0 -1
- package/dist/lib/store/diff/tracker.d.ts +0 -3
- package/dist/lib/store/diff/tracker.d.ts.map +0 -1
- package/dist/lib/store/diff/tracker.js +0 -82
- package/dist/lib/store/diff/tracker.types.d.ts +0 -31
- package/dist/lib/store/diff/tracker.types.d.ts.map +0 -1
- package/dist/lib/store/diff/tracker.types.js +0 -2
- package/dist/lib/store/dump/dumpManager.types.d.ts.map +0 -1
- package/dist/lib/store/dump/dumpManager.types.js +0 -2
- package/dist/lib/store/include/includeIndex.d.ts +0 -6
- package/dist/lib/store/include/includeIndex.d.ts.map +0 -1
- package/dist/lib/store/include/includeIndex.js +0 -65
- package/dist/lib/store/include/includeIndex.types.d.ts +0 -29
- package/dist/lib/store/include/includeIndex.types.d.ts.map +0 -1
- package/dist/lib/store/include/includeIndex.types.js +0 -2
- package/dist/lib/store/workDir/storage/getChangedLinesSince.d.ts +0 -9
- package/dist/lib/store/workDir/storage/getChangedLinesSince.d.ts.map +0 -1
- package/src/lib/store/workDir/storage/getChangedLinesSince.ts +0 -47
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Request, Response } from 'express';
|
|
2
|
+
declare const dependencyIndex: (req: Request, res: Response) => void;
|
|
3
|
+
declare const dependencyTreeRoute: (req: Request, res: Response) => void;
|
|
4
|
+
declare const dependencyTreeReversed: (req: Request, res: Response) => void;
|
|
5
|
+
declare const dependencyExplicitlyInvalidatedTags: (req: Request, res: Response) => void;
|
|
6
|
+
declare const dependencyAllInvalidatedTags: (req: Request, res: Response) => void;
|
|
7
|
+
declare const dependencyInvalidatedFilepaths: (req: Request, res: Response) => void;
|
|
8
|
+
declare const dependencyTagParents: (req: Request, res: Response) => void;
|
|
9
|
+
export { dependencyIndex, dependencyTreeRoute, dependencyTreeReversed, dependencyExplicitlyInvalidatedTags, dependencyAllInvalidatedTags, dependencyInvalidatedFilepaths, dependencyTagParents, };
|
|
10
|
+
//# sourceMappingURL=dependency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency.d.ts","sourceRoot":"","sources":["../../../src/http/routes/dependency.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAc5C,QAAA,MAAM,eAAe,QAAS,OAAO,OAAO,QAAQ,KAAG,IAWtD,CAAC;AAEF,QAAA,MAAM,mBAAmB,QAAS,OAAO,OAAO,QAAQ,KAAG,IAO1D,CAAC;AAEF,QAAA,MAAM,sBAAsB,QAAS,OAAO,OAAO,QAAQ,KAAG,IAU7D,CAAC;AAEF,QAAA,MAAM,mCAAmC,QAClC,OAAO,OACP,QAAQ,KACZ,IAKF,CAAC;AAEF,QAAA,MAAM,4BAA4B,QAAS,OAAO,OAAO,QAAQ,KAAG,IAKnE,CAAC;AAEF,QAAA,MAAM,8BAA8B,QAAS,OAAO,OAAO,QAAQ,KAAG,IAKrE,CAAC;AAEF,QAAA,MAAM,oBAAoB,QAAS,OAAO,OAAO,QAAQ,KAAG,IAO3D,CAAC;AAEF,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,mCAAmC,EACnC,4BAA4B,EAC5B,8BAA8B,EAC9B,oBAAoB,GACrB,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dependencyTagParents = exports.dependencyInvalidatedFilepaths = exports.dependencyAllInvalidatedTags = exports.dependencyExplicitlyInvalidatedTags = exports.dependencyTreeReversed = exports.dependencyTreeRoute = exports.dependencyIndex = void 0;
|
|
4
|
+
const dataDir_1 = require("@lib/store/dataDir");
|
|
5
|
+
const object_1 = require("@lib/utils/object");
|
|
6
|
+
const dependencyManager_1 = require("@lib/store/dependency/dependencyManager");
|
|
7
|
+
const dependencyTagger_1 = require("@lib/store/dependency/dependencyTagger");
|
|
8
|
+
const dependencyIndex = (req, res) => {
|
|
9
|
+
res.render('dependencyIndex', {
|
|
10
|
+
links: {
|
|
11
|
+
'/dependency/tree': 'Dependency tree',
|
|
12
|
+
'/dependency/tree/reversed': 'Reversed dependency tree',
|
|
13
|
+
'/dependency/invalidated/tags': 'Explicitly invalidated tags',
|
|
14
|
+
'/dependency/invalidated/tags/all': 'All invalidated tags in cascade',
|
|
15
|
+
'/dependency/invalidated/filepaths': 'Invalidated filepaths',
|
|
16
|
+
'/dependency/tag/parents': 'Tag parents',
|
|
17
|
+
},
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
exports.dependencyIndex = dependencyIndex;
|
|
21
|
+
const dependencyTreeRoute = (req, res) => {
|
|
22
|
+
dataDir_1.dataDirManager.update();
|
|
23
|
+
const args = req.query;
|
|
24
|
+
const response = args?.tag ? dependencyTagger_1.dependencyTree.get(args.tag) : dependencyTagger_1.dependencyTree;
|
|
25
|
+
res.status(200);
|
|
26
|
+
res.set({ 'Content-Type': 'application/json' });
|
|
27
|
+
res.send((0, object_1.jsonify)(response));
|
|
28
|
+
};
|
|
29
|
+
exports.dependencyTreeRoute = dependencyTreeRoute;
|
|
30
|
+
const dependencyTreeReversed = (req, res) => {
|
|
31
|
+
dataDir_1.dataDirManager.update();
|
|
32
|
+
const reversedDependencyTree = (0, dependencyTagger_1.getReversedDependencyTree)();
|
|
33
|
+
const args = req.query;
|
|
34
|
+
const response = args?.tag
|
|
35
|
+
? reversedDependencyTree.get(args.tag)
|
|
36
|
+
: reversedDependencyTree;
|
|
37
|
+
res.status(200);
|
|
38
|
+
res.set({ 'Content-Type': 'application/json' });
|
|
39
|
+
res.send((0, object_1.jsonify)(response));
|
|
40
|
+
};
|
|
41
|
+
exports.dependencyTreeReversed = dependencyTreeReversed;
|
|
42
|
+
const dependencyExplicitlyInvalidatedTags = (req, res) => {
|
|
43
|
+
dataDir_1.dataDirManager.update();
|
|
44
|
+
res.status(200);
|
|
45
|
+
res.set({ 'Content-Type': 'application/json' });
|
|
46
|
+
res.send((0, object_1.jsonify)(dependencyTagger_1.invalidatedTags));
|
|
47
|
+
};
|
|
48
|
+
exports.dependencyExplicitlyInvalidatedTags = dependencyExplicitlyInvalidatedTags;
|
|
49
|
+
const dependencyAllInvalidatedTags = (req, res) => {
|
|
50
|
+
dataDir_1.dataDirManager.update();
|
|
51
|
+
res.status(200);
|
|
52
|
+
res.set({ 'Content-Type': 'application/json' });
|
|
53
|
+
res.send((0, dependencyManager_1.getAllInvalidatedTags)());
|
|
54
|
+
};
|
|
55
|
+
exports.dependencyAllInvalidatedTags = dependencyAllInvalidatedTags;
|
|
56
|
+
const dependencyInvalidatedFilepaths = (req, res) => {
|
|
57
|
+
dataDir_1.dataDirManager.update();
|
|
58
|
+
res.status(200);
|
|
59
|
+
res.set({ 'Content-Type': 'application/json' });
|
|
60
|
+
res.send(dependencyManager_1.dependencyManager.getInvalidatedFilepaths());
|
|
61
|
+
};
|
|
62
|
+
exports.dependencyInvalidatedFilepaths = dependencyInvalidatedFilepaths;
|
|
63
|
+
const dependencyTagParents = (req, res) => {
|
|
64
|
+
dataDir_1.dataDirManager.update();
|
|
65
|
+
const args = req.query;
|
|
66
|
+
const response = args?.tag ? (0, object_1.jsonify)((0, dependencyManager_1.getTagParents)(args.tag)) : null;
|
|
67
|
+
res.status(200);
|
|
68
|
+
res.set({ 'Content-Type': 'application/json' });
|
|
69
|
+
res.send(response);
|
|
70
|
+
};
|
|
71
|
+
exports.dependencyTagParents = dependencyTagParents;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../src/http/routes/dump.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK5C,QAAA,MAAM,SAAS,QAAS,OAAO,OAAO,QAAQ,KAAG,IAShD,CAAC;
|
|
1
|
+
{"version":3,"file":"dump.d.ts","sourceRoot":"","sources":["../../../src/http/routes/dump.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAK5C,QAAA,MAAM,SAAS,QAAS,OAAO,OAAO,QAAQ,KAAG,IAShD,CAAC;AAmBF,QAAA,MAAM,eAAe,QAAS,OAAO,OAAO,QAAQ,KAAG,IAEtD,CAAC;AAEF,QAAA,MAAM,QAAQ,QAAS,OAAO,OAAO,QAAQ,KAAG,IAE/C,CAAC;AASF,QAAA,MAAM,gBAAgB,QAAS,OAAO,OAAO,QAAQ,KAAG,IAIvD,CAAC;AAEF,QAAA,MAAM,iBAAiB,QAAS,OAAO,OAAO,QAAQ,KAAG,IAQxD,CAAC;AAEF,OAAO,EACL,SAAS,EACT,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,GAClB,CAAC"}
|
package/dist/http/routes/dump.js
CHANGED
|
@@ -9,7 +9,7 @@ const dump_1 = require("@lib/store/dump");
|
|
|
9
9
|
const object_1 = require("@lib/utils/object");
|
|
10
10
|
const config_1 = require("@lib/config");
|
|
11
11
|
const dumpIndex = (req, res) => {
|
|
12
|
-
res.render('
|
|
12
|
+
res.render('dumpIndex', {
|
|
13
13
|
links: {
|
|
14
14
|
'/dump/incremental': 'Execute an incremental dump',
|
|
15
15
|
'/dump/full': 'Execute a full dump',
|
|
@@ -19,18 +19,23 @@ const dumpIndex = (req, res) => {
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
exports.dumpIndex = dumpIndex;
|
|
22
|
-
const
|
|
23
|
-
const dump = dump_1.dumpManager.dump({ incremental
|
|
22
|
+
const dumpAction = (req, res, incremental) => {
|
|
23
|
+
const dump = dump_1.dumpManager.dump({ incremental });
|
|
24
|
+
const dumpAsJson = (0, object_1.jsonify)(dump);
|
|
25
|
+
const args = req.query;
|
|
26
|
+
if (args?.noDiff !== undefined) {
|
|
27
|
+
delete dumpAsJson.diff;
|
|
28
|
+
}
|
|
24
29
|
res.status(200);
|
|
25
30
|
res.set({ 'Content-Type': 'application/json' });
|
|
26
|
-
res.send(
|
|
31
|
+
res.send(dumpAsJson);
|
|
32
|
+
};
|
|
33
|
+
const dumpIncremental = (req, res) => {
|
|
34
|
+
dumpAction(req, res, true);
|
|
27
35
|
};
|
|
28
36
|
exports.dumpIncremental = dumpIncremental;
|
|
29
37
|
const dumpFull = (req, res) => {
|
|
30
|
-
|
|
31
|
-
res.status(200);
|
|
32
|
-
res.set({ 'Content-Type': 'application/json' });
|
|
33
|
-
res.send((0, object_1.jsonify)(dump));
|
|
38
|
+
dumpAction(req, res, false);
|
|
34
39
|
};
|
|
35
40
|
exports.dumpFull = dumpFull;
|
|
36
41
|
const getMetadata = () => {
|
|
@@ -47,8 +52,8 @@ const dumpMetadataShow = (req, res) => {
|
|
|
47
52
|
exports.dumpMetadataShow = dumpMetadataShow;
|
|
48
53
|
const dumpMetadataReset = (req, res) => {
|
|
49
54
|
const args = req.query;
|
|
50
|
-
if (args?.
|
|
51
|
-
dump_1.dumpManager.reset(
|
|
55
|
+
if (args?.uniqueId) {
|
|
56
|
+
dump_1.dumpManager.reset(args.uniqueId);
|
|
52
57
|
}
|
|
53
58
|
res.status(200);
|
|
54
59
|
res.set({ 'Content-Type': 'application/json' });
|
package/dist/http/routes/home.js
CHANGED
|
@@ -5,7 +5,8 @@ const home = (req, res) => {
|
|
|
5
5
|
res.render('home', {
|
|
6
6
|
links: {
|
|
7
7
|
'/data': 'Browse all data loaded into the server',
|
|
8
|
-
'/
|
|
8
|
+
'/dependency': 'Dependency data',
|
|
9
|
+
'/dump': 'Dump operations',
|
|
9
10
|
'/query': 'List of available queries',
|
|
10
11
|
'/task': 'List of available tasks',
|
|
11
12
|
'/cache': 'List of available cache bins',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/http/routes/index.ts"],"names":[],"mappings":"AAgCA,QAAA,MAAM,MAAM,4CAAW,CAAC;AA8BxB,eAAe,MAAM,CAAC"}
|
|
@@ -9,6 +9,7 @@ const data_1 = require("./data");
|
|
|
9
9
|
const docs_1 = require("./docs");
|
|
10
10
|
const task_1 = require("./task");
|
|
11
11
|
const dump_1 = require("./dump");
|
|
12
|
+
const dependency_1 = require("./dependency");
|
|
12
13
|
const routes = (0, express_1.Router)();
|
|
13
14
|
routes.get('/', home_1.home);
|
|
14
15
|
routes.get('/docs', docs_1.docs);
|
|
@@ -29,5 +30,12 @@ routes.get('/dump/incremental', dump_1.dumpIncremental);
|
|
|
29
30
|
routes.get('/dump/full', dump_1.dumpFull);
|
|
30
31
|
routes.get('/dump/metadata/show', dump_1.dumpMetadataShow);
|
|
31
32
|
routes.get('/dump/metadata/reset', dump_1.dumpMetadataReset);
|
|
33
|
+
routes.get('/dependency/tree/reversed', dependency_1.dependencyTreeReversed);
|
|
34
|
+
routes.get('/dependency/tree', dependency_1.dependencyTreeRoute);
|
|
35
|
+
routes.get('/dependency/invalidated/tags', dependency_1.dependencyExplicitlyInvalidatedTags);
|
|
36
|
+
routes.get('/dependency/invalidated/tags/all', dependency_1.dependencyAllInvalidatedTags);
|
|
37
|
+
routes.get('/dependency/invalidated/filepaths', dependency_1.dependencyInvalidatedFilepaths);
|
|
38
|
+
routes.get('/dependency/tag/parents', dependency_1.dependencyTagParents);
|
|
39
|
+
routes.get('/dependency', dependency_1.dependencyIndex);
|
|
32
40
|
routes.get(['/data/*', '/data'], data_1.data);
|
|
33
41
|
exports.default = routes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/http/routes/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/http/routes/status.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAU5C,QAAA,MAAM,WAAW,QAAS,OAAO,OAAO,QAAQ,KAAG,IAWlD,CAAC;AAEF,QAAA,MAAM,WAAW,QAAS,OAAO,OAAO,QAAQ,KAAG,IAelD,CAAC;AAEF,QAAA,MAAM,cAAc,QAAS,OAAO,OAAO,QAAQ,KAAG,IAKrD,CAAC;AAEF,QAAA,MAAM,eAAe,QAAS,OAAO,OAAO,QAAQ,KAAG,IAStD,CAAC;AAEF,QAAA,MAAM,iBAAiB,QAAS,OAAO,OAAO,QAAQ,KAAG,IAKxD,CAAC;AAEF,QAAA,MAAM,UAAU,QAAS,OAAO,OAAO,QAAQ,KAAG,IAKjD,CAAC;AAEF,OAAO,EACL,WAAW,EACX,WAAW,EACX,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,UAAU,GACX,CAAC"}
|
|
@@ -8,8 +8,6 @@ const cache_1 = require("@lib/utils/cache");
|
|
|
8
8
|
const store_1 = require("@lib/store");
|
|
9
9
|
const object_1 = require("@lib/utils/object");
|
|
10
10
|
const diffManager_1 = require("@lib/store/diff/diffManager");
|
|
11
|
-
const dependencyManager_1 = require("@lib/store/dependency/dependencyManager");
|
|
12
|
-
const dependencyTagger_1 = require("@lib/store/dependency/dependencyTagger");
|
|
13
11
|
const statusIndex = (req, res) => {
|
|
14
12
|
res.render('statusIndex', {
|
|
15
13
|
links: {
|
|
@@ -27,14 +25,11 @@ const statusBasic = (req, res) => {
|
|
|
27
25
|
dataDir_1.dataDirManager.update();
|
|
28
26
|
const response = {
|
|
29
27
|
config: config_1.config,
|
|
30
|
-
dataDirLastUpdate: dataDir_1.dataDirManager.
|
|
28
|
+
dataDirLastUpdate: dataDir_1.dataDirManager.getModificationUniqueId(),
|
|
31
29
|
query: {
|
|
32
30
|
numberOfExecutions: query_1.queryRunner.getCount(),
|
|
33
31
|
numberOfCachedQueries: cache_1.cache.bin('query').size,
|
|
34
32
|
},
|
|
35
|
-
dependencyTree: (0, object_1.jsonify)(dependencyTagger_1.dependencyTree),
|
|
36
|
-
reversedDependencyTree: (0, object_1.jsonify)((0, dependencyTagger_1.getReversedDependencyTree)()),
|
|
37
|
-
invalidatedFilepaths: dependencyManager_1.dependencyManager.getInvalidatedFilepaths(),
|
|
38
33
|
};
|
|
39
34
|
res.status(200);
|
|
40
35
|
res.set({ 'Content-Type': 'application/json' });
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
extends includes/layout.pug
|
|
2
|
+
|
|
3
|
+
block vars
|
|
4
|
+
- var title = "Dependency | Static Suite Data Server"
|
|
5
|
+
|
|
6
|
+
block content
|
|
7
|
+
h1(class="title is-1")="Dependency"
|
|
8
|
+
table(class="table is-fullwidth is-hoverable")
|
|
9
|
+
tbody
|
|
10
|
+
each description, link in links
|
|
11
|
+
tr
|
|
12
|
+
td
|
|
13
|
+
a(href=link)= link
|
|
14
|
+
td=description
|
package/dist/lib/dataServer.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LogLevel, LogFile } from '@lib/utils/logger/logger.types';
|
|
2
2
|
import { Store } from '@lib/store/store.types';
|
|
3
|
+
import { TaskRunner } from '@lib/task/task.types';
|
|
3
4
|
import { QueryRunner, QuerySuccessfulResponse, QueryErrorResponse, QueryArgs, QueryModule, CacheStatus } from '@lib/query/query.types';
|
|
4
5
|
import { RunMode, DataServerReturn, DataServerInitOptions } from './dataServer.types';
|
|
5
6
|
/**
|
|
@@ -17,5 +18,5 @@ declare const dataServer: {
|
|
|
17
18
|
*/
|
|
18
19
|
init: (options: DataServerInitOptions) => DataServerReturn;
|
|
19
20
|
};
|
|
20
|
-
export { dataServer, DataServerInitOptions, DataServerReturn, RunMode, LogLevel, LogFile, Store, QueryRunner, QuerySuccessfulResponse, QueryErrorResponse, QueryArgs, QueryModule, CacheStatus, };
|
|
21
|
+
export { dataServer, DataServerInitOptions, DataServerReturn, RunMode, LogLevel, LogFile, Store, QueryRunner, QuerySuccessfulResponse, QueryErrorResponse, QueryArgs, QueryModule, TaskRunner, CacheStatus, };
|
|
21
22
|
//# sourceMappingURL=dataServer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataServer.d.ts","sourceRoot":"","sources":["../../src/lib/dataServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAKnE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,QAAA,MAAM,UAAU;IACd;;;;;;OAMG;oBACa,qBAAqB,KAAG,gBAAgB;CA6BzD,CAAC;AACF,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,EACL,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,WAAW,GACZ,CAAC"}
|
|
1
|
+
{"version":3,"file":"dataServer.d.ts","sourceRoot":"","sources":["../../src/lib/dataServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAKnE,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAG/C,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,OAAO,EACP,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B;;;;GAIG;AACH,QAAA,MAAM,UAAU;IACd;;;;;;OAMG;oBACa,qBAAqB,KAAG,gBAAgB;CA6BzD,CAAC;AACF,OAAO,EACL,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,QAAQ,EACR,OAAO,EACP,KAAK,EACL,WAAW,EACX,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,UAAU,EACV,WAAW,GACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.types.d.ts","sourceRoot":"","sources":["../../../src/lib/query/query.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C;;;;GAIG;AACH,oBAAY,WAAW,GAAG;IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,GAAG,CAAC,eAAe,EAAE,MAAM,GAAG,uBAAuB,GAAG,kBAAkB,CAAC;IAE3E;;;;;;;OAOG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE5C;;GAEG;AACH,oBAAY,iBAAiB,GAAG;IAC9B;;OAEG;IACH,MAAM,EAAE,GAAG,CAAC;IAEZ;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,WAAW;IACrB,IAAI,
|
|
1
|
+
{"version":3,"file":"query.types.d.ts","sourceRoot":"","sources":["../../../src/lib/query/query.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C;;;;GAIG;AACH,oBAAY,WAAW,GAAG;IACxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,GAAG,CAAC,eAAe,EAAE,MAAM,GAAG,uBAAuB,GAAG,kBAAkB,CAAC;IAE3E;;;;;;;OAOG;IACH,QAAQ,IAAI,MAAM,CAAC;CACpB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAE5C;;GAEG;AACH,oBAAY,iBAAiB,GAAG;IAC9B;;OAEG;IACH,MAAM,EAAE,GAAG,CAAC;IAEZ;;;;;;;;;OASG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB,CAAC;AAEF;;;;GAIG;AACH,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,GAAG,QAAQ;CACZ;AAED;;;;;;;;GAQG;AACH,oBAAY,uBAAuB,GAAG;IACpC;;OAEG;IACH,IAAI,EAAE,GAAG,CAAC;IAEV;;OAEG;IACH,QAAQ,EAAE;QACR;;;;;;;WAOG;QACH,WAAW,EAAE,MAAM,CAAC;QAEpB;;WAEG;QACH,UAAU,EAAE,MAAM,CAAC;QAEnB;;WAEG;QACH,KAAK,EAAE,WAAW,CAAC;QAEnB;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,oBAAY,WAAW,GAAG;IACxB;;;;;;;;OAQG;IACH,OAAO,CAAC,OAAO,EAAE;QACf;;WAEG;QACH,KAAK,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,SAAS,CAAC;KACjB,GAAG,iBAAiB,CAAC;CACvB,CAAC;AAEF;;;;;;;;GAQG;AACH,oBAAY,kBAAkB,GAAG;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,kBAChB,uBAAuB,GAAG,kBAAkB,wCAEF,CAAC;AAE5D,oBAAY,eAAe,GAAG;IAC5B;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAErC;;OAEG;IACH,oBAAoB,IAAI,IAAI,CAAC;IAE7B;;;;;OAKG;IACH,cAAc,CACZ,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,GACnC,IAAI,CAAC;IAER;;;;OAIG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;CACjC,CAAC"}
|
|
@@ -8,8 +8,8 @@ exports.isQueryErrorResponse = exports.CacheStatus = void 0;
|
|
|
8
8
|
*/
|
|
9
9
|
var CacheStatus;
|
|
10
10
|
(function (CacheStatus) {
|
|
11
|
-
CacheStatus[
|
|
12
|
-
CacheStatus[
|
|
11
|
+
CacheStatus["MISS"] = "miss";
|
|
12
|
+
CacheStatus["HIT"] = "hit";
|
|
13
13
|
})(CacheStatus = exports.CacheStatus || (exports.CacheStatus = {}));
|
|
14
14
|
/**
|
|
15
15
|
* Tells whether a query response is erroneous or not.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queryRunner.d.ts","sourceRoot":"","sources":["../../../src/lib/query/queryRunner.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,WAAW,EAKZ,MAAM,eAAe,CAAC;AAkBvB,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"queryRunner.d.ts","sourceRoot":"","sources":["../../../src/lib/query/queryRunner.ts"],"names":[],"mappings":"AAQA,OAAO,EAEL,WAAW,EAKZ,MAAM,eAAe,CAAC;AAkBvB,eAAO,MAAM,WAAW,EAAE,WA8EzB,CAAC"}
|
|
@@ -65,11 +65,13 @@ exports.queryRunner = {
|
|
|
65
65
|
if (queryResponse?.cacheable !== false) {
|
|
66
66
|
queryCache.set(cacheId, queryResult);
|
|
67
67
|
}
|
|
68
|
-
// Set tags for this query
|
|
68
|
+
// Set tags for this query, replacing any other, because query
|
|
69
|
+
// dependencies are set only by their "tags" field.
|
|
69
70
|
const queryTags = queryResponse.tags && queryResponse.tags?.length > 0
|
|
70
71
|
? queryResponse.tags
|
|
71
72
|
: ['*'];
|
|
72
73
|
dependencyTagger_1.dependencyTagger.setDependency(queryDefinition, queryTags);
|
|
74
|
+
queryResult.tags = queryTags;
|
|
73
75
|
}
|
|
74
76
|
catch (e) {
|
|
75
77
|
// Log error and rethrow.
|
|
@@ -20,17 +20,17 @@ export declare type DataDirManager = {
|
|
|
20
20
|
*/
|
|
21
21
|
update(): ChangedFiles;
|
|
22
22
|
/**
|
|
23
|
-
* Get
|
|
23
|
+
* Get unique id of last modification of data directory.
|
|
24
24
|
*
|
|
25
25
|
* @remarks
|
|
26
26
|
* Metadata about when and how is the data directory updated is
|
|
27
27
|
* stored in the work directory. If that directory is not present or
|
|
28
|
-
* not initialized with proper data, it returns the
|
|
29
|
-
* If the store is not yet loaded, it returns a
|
|
28
|
+
* not initialized with proper data, it returns the unique id of the store.
|
|
29
|
+
* If the store is not yet loaded, it returns a unique id in the past,
|
|
30
30
|
* the Unix Epoch (00:00:00 UTC on 1 January 1970).
|
|
31
31
|
*
|
|
32
|
-
* @returns The
|
|
32
|
+
* @returns The unique id of last modification of data directory
|
|
33
33
|
*/
|
|
34
|
-
|
|
34
|
+
getModificationUniqueId(): string;
|
|
35
35
|
};
|
|
36
36
|
//# sourceMappingURL=dataDir.types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataDir.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dataDir/dataDir.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;GAEG;AACH,oBAAY,cAAc,GAAG;IAC3B;;;OAGG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;;;OASG;IACH,MAAM,IAAI,YAAY,CAAC;IAEvB;;;;;;;;;;;OAWG;IACH,
|
|
1
|
+
{"version":3,"file":"dataDir.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dataDir/dataDir.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD;;GAEG;AACH,oBAAY,cAAc,GAAG;IAC3B;;;OAGG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;;;;;;OASG;IACH,MAAM,IAAI,YAAY,CAAC;IAEvB;;;;;;;;;;;OAWG;IACH,uBAAuB,IAAI,MAAM,CAAC;CACnC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataDirManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dataDir/dataDirManager.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"dataDirManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dataDir/dataDirManager.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMjD,eAAO,MAAM,cAAc,EAAE,cAuH5B,CAAC"}
|
|
@@ -16,6 +16,7 @@ const hook_1 = require("@lib/store/hook");
|
|
|
16
16
|
const query_1 = require("@lib/query");
|
|
17
17
|
const task_1 = require("@lib/task");
|
|
18
18
|
const dependencyManager_1 = require("../dependency/dependencyManager");
|
|
19
|
+
let initialUniqueIdAlreadySet = false;
|
|
19
20
|
exports.dataDirManager = {
|
|
20
21
|
load: () => {
|
|
21
22
|
logger_1.logger.info('Loading data dir...');
|
|
@@ -28,9 +29,16 @@ exports.dataDirManager = {
|
|
|
28
29
|
hook_1.hookManager.reset();
|
|
29
30
|
query_1.queryManager.reset();
|
|
30
31
|
task_1.taskManager.reset();
|
|
32
|
+
dependencyManager_1.dependencyManager.reset();
|
|
31
33
|
// Invoke "store load start" hook.
|
|
32
34
|
hook_1.hookManager.invokeOnStoreLoadStart();
|
|
33
|
-
|
|
35
|
+
const modificationUniqueId = exports.dataDirManager.getModificationUniqueId();
|
|
36
|
+
if (!initialUniqueIdAlreadySet) {
|
|
37
|
+
store_1.store.initialUniqueId = modificationUniqueId;
|
|
38
|
+
initialUniqueIdAlreadySet = true;
|
|
39
|
+
}
|
|
40
|
+
store_1.store.currentUniqueId = modificationUniqueId;
|
|
41
|
+
logger_1.logger.info(`Found unique id: ${store_1.store.currentUniqueId}`);
|
|
34
42
|
// Add all files, one by one.
|
|
35
43
|
const relativeFilePaths = (0, fs_1.findFilesInDir)(config_1.config.dataDir);
|
|
36
44
|
const storeHydrationStartDate = Date.now();
|
|
@@ -46,23 +54,24 @@ exports.dataDirManager = {
|
|
|
46
54
|
logger_1.logger.info(`${relativeFilePaths.length} files loaded in ${Date.now() - startDate}ms.`);
|
|
47
55
|
},
|
|
48
56
|
update: () => {
|
|
49
|
-
const
|
|
57
|
+
const dataDirModificationUniqueId = exports.dataDirManager.getModificationUniqueId();
|
|
50
58
|
let changedFiles = {
|
|
51
59
|
updated: [],
|
|
52
60
|
deleted: [],
|
|
61
|
+
fromUniqueId: store_1.store.currentUniqueId,
|
|
62
|
+
toUniqueId: dataDirModificationUniqueId,
|
|
53
63
|
};
|
|
54
|
-
if (store_1.store.
|
|
55
|
-
if (
|
|
56
|
-
// Save store.syncDate to a variable and set it ASAP
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
store_1.store.syncDate = dataDirModificationDate;
|
|
64
|
+
if (store_1.store.currentUniqueId) {
|
|
65
|
+
if (dataDirModificationUniqueId > store_1.store.currentUniqueId) {
|
|
66
|
+
// Save store.syncDate to a variable and set it ASAP.
|
|
67
|
+
const storeLastUniqueId = store_1.store.currentUniqueId;
|
|
68
|
+
store_1.store.currentUniqueId = dataDirModificationUniqueId;
|
|
60
69
|
const startDate = microtime_1.default.now();
|
|
61
|
-
logger_1.logger.debug(`Data dir outdated. Current
|
|
70
|
+
logger_1.logger.debug(`Data dir outdated. Current unique id in memory is ${storeLastUniqueId} but data dir is ${dataDirModificationUniqueId}`);
|
|
62
71
|
// Before updating anything, track down which filepaths are invalidated with
|
|
63
72
|
// the current set of dependencies, before those dependencies change.
|
|
64
73
|
dependencyManager_1.dependencyManager.trackInvalidatedFilepaths();
|
|
65
|
-
changedFiles = workDir_1.workDirHelper.
|
|
74
|
+
changedFiles = workDir_1.workDirHelper.getChangedFilesBetween(storeLastUniqueId, dataDirModificationUniqueId);
|
|
66
75
|
hook_1.hookManager.invokeOnStoreChangeStart(changedFiles);
|
|
67
76
|
changedFiles.updated.forEach(file => {
|
|
68
77
|
storeManager_1.storeManager.update(file);
|
|
@@ -85,7 +94,7 @@ exports.dataDirManager = {
|
|
|
85
94
|
logger_1.logger.debug(`Data dir updated in ${execTimeMs}ms.`);
|
|
86
95
|
}
|
|
87
96
|
else {
|
|
88
|
-
logger_1.logger.debug(`Data dir up to date. Current
|
|
97
|
+
logger_1.logger.debug(`Data dir up to date. Current unique id in memory is ${store_1.store.currentUniqueId} and data dir is ${dataDirModificationUniqueId}`);
|
|
89
98
|
}
|
|
90
99
|
}
|
|
91
100
|
else {
|
|
@@ -93,5 +102,7 @@ exports.dataDirManager = {
|
|
|
93
102
|
}
|
|
94
103
|
return changedFiles;
|
|
95
104
|
},
|
|
96
|
-
|
|
105
|
+
getModificationUniqueId: () => workDir_1.workDirHelper.getModificationUniqueId() ||
|
|
106
|
+
store_1.store.currentUniqueId ||
|
|
107
|
+
workDir_1.unixEpochUniqueId,
|
|
97
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependency.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,gBAAgB,GAAG;IAC7B;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE1D;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE1D;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9D;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"dependency.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependency.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,gBAAgB,GAAG;IAC7B;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE1D;;;;;;;OAOG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE1D;;;;;;OAMG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE9D;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACtC,CAAC;AAEF;;GAEG;AACH,oBAAY,iBAAiB,GAAG;IAC9B;;;;;;;;OAQG;IACH,yBAAyB,IAAI,IAAI,CAAC;IAElC;;;;;;;OAOG;IACH,uBAAuB,IAAI;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAEpE;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AAEF,oBAAY,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Json } from '@lib/utils/object/object.types';
|
|
2
2
|
export declare const dependencyIncludeHelper: {
|
|
3
|
-
|
|
3
|
+
addIncludeDependencies: (filepath: string, json: Json) => void;
|
|
4
4
|
deleteIncludeDependencies: (filepath: string, json: Json) => void;
|
|
5
5
|
};
|
|
6
6
|
//# sourceMappingURL=dependencyFileHelper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencyFileHelper.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyFileHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAGtD,eAAO,MAAM,uBAAuB;uCACC,MAAM,QAAQ,IAAI,KAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"dependencyFileHelper.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyFileHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAGtD,eAAO,MAAM,uBAAuB;uCACC,MAAM,QAAQ,IAAI,KAAG,IAAI;0CA6BtB,MAAM,QAAQ,IAAI,KAAG,IAAI;CAkBhE,CAAC"}
|
|
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.dependencyIncludeHelper = void 0;
|
|
4
4
|
const dependencyTagger_1 = require("./dependencyTagger");
|
|
5
5
|
exports.dependencyIncludeHelper = {
|
|
6
|
-
|
|
6
|
+
addIncludeDependencies: (filepath, json) => {
|
|
7
7
|
const includes = json?.metadata?.includes;
|
|
8
8
|
if (includes?.static) {
|
|
9
9
|
const staticIncludes = Object.values(includes?.static);
|
|
10
|
-
dependencyTagger_1.dependencyTagger.
|
|
10
|
+
dependencyTagger_1.dependencyTagger.addDependency(filepath, staticIncludes);
|
|
11
11
|
}
|
|
12
12
|
if (includes?.dynamic) {
|
|
13
13
|
const dynamicIncludes = Object.values(includes?.dynamic);
|
|
14
|
-
dependencyTagger_1.dependencyTagger.
|
|
14
|
+
dependencyTagger_1.dependencyTagger.addDependency(filepath, dynamicIncludes);
|
|
15
15
|
// Queries are invalidated by any data change until they are executed,
|
|
16
16
|
// when they return their dependencies. They are "globally invalidable" when:
|
|
17
17
|
// 1) Are added for the first time
|
|
@@ -23,6 +23,8 @@ exports.dependencyIncludeHelper = {
|
|
|
23
23
|
// 2) When that query is executed, it has a dependency on "node:1234"
|
|
24
24
|
// 3) When that file with a query is updated, the query has again a dependency on "*"
|
|
25
25
|
dynamicIncludes.forEach(queryDefinition => {
|
|
26
|
+
// This is explicity a "set" operation, because query dependencies are
|
|
27
|
+
// only set from a query's "tags" field.
|
|
26
28
|
dependencyTagger_1.dependencyTagger.setDependency(queryDefinition, ['*']);
|
|
27
29
|
});
|
|
28
30
|
}
|
|
@@ -1,4 +1,16 @@
|
|
|
1
1
|
import { DependencyManager } from './dependency.types';
|
|
2
|
+
/**
|
|
3
|
+
* Gets a list of parents of a dependency tag
|
|
4
|
+
*/
|
|
5
|
+
export declare const getTagParents: (tag: string, parents?: Set<string>) => Set<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Gets a recursive list of invalidated tags.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* Iterates over all explicitly invalidated tags, and obtains all
|
|
11
|
+
* its parents.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getAllInvalidatedTags: () => string[];
|
|
2
14
|
/**
|
|
3
15
|
* Manager that keeps control of dependencies between data.
|
|
4
16
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencyManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"dependencyManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAQvD;;GAEG;AACH,eAAO,MAAM,aAAa,QACnB,MAAM,4BAEV,IAAI,MAAM,CAUZ,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,QAAO,MAAM,EAkB9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBA2B/B,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.dependencyManager = void 0;
|
|
3
|
+
exports.dependencyManager = exports.getAllInvalidatedTags = exports.getTagParents = void 0;
|
|
4
4
|
const store_1 = require("../store");
|
|
5
5
|
const dependencyTagger_1 = require("./dependencyTagger");
|
|
6
6
|
const invalidatedFilepaths = {
|
|
@@ -16,11 +16,12 @@ const getTagParents = (tag, parents = new Set()) => {
|
|
|
16
16
|
?.forEach(parent => {
|
|
17
17
|
if (!parents.has(parent)) {
|
|
18
18
|
parents.add(parent);
|
|
19
|
-
getTagParents(parent, parents);
|
|
19
|
+
(0, exports.getTagParents)(parent, parents);
|
|
20
20
|
}
|
|
21
21
|
});
|
|
22
22
|
return parents;
|
|
23
23
|
};
|
|
24
|
+
exports.getTagParents = getTagParents;
|
|
24
25
|
/**
|
|
25
26
|
* Gets a recursive list of invalidated tags.
|
|
26
27
|
*
|
|
@@ -28,7 +29,7 @@ const getTagParents = (tag, parents = new Set()) => {
|
|
|
28
29
|
* Iterates over all explicitly invalidated tags, and obtains all
|
|
29
30
|
* its parents.
|
|
30
31
|
*/
|
|
31
|
-
const
|
|
32
|
+
const getAllInvalidatedTags = () => {
|
|
32
33
|
const allInvalidatedTags = new Set();
|
|
33
34
|
const invalidatedTagsArray = Array.from(dependencyTagger_1.invalidatedTags);
|
|
34
35
|
if (invalidatedTagsArray.length > 0) {
|
|
@@ -40,18 +41,19 @@ const getInvalidatedTags = () => {
|
|
|
40
41
|
allInvalidatedTags.add(invalidatedTag);
|
|
41
42
|
}
|
|
42
43
|
// Search for parents of this invalidated tag.
|
|
43
|
-
getTagParents(invalidatedTag).forEach(parentTag => {
|
|
44
|
+
(0, exports.getTagParents)(invalidatedTag).forEach(parentTag => {
|
|
44
45
|
allInvalidatedTags.add(parentTag);
|
|
45
46
|
});
|
|
46
47
|
});
|
|
47
48
|
return Array.from(allInvalidatedTags);
|
|
48
49
|
};
|
|
50
|
+
exports.getAllInvalidatedTags = getAllInvalidatedTags;
|
|
49
51
|
/**
|
|
50
52
|
* Manager that keeps control of dependencies between data.
|
|
51
53
|
*/
|
|
52
54
|
exports.dependencyManager = {
|
|
53
55
|
trackInvalidatedFilepaths: () => {
|
|
54
|
-
const allInvalidatedTags =
|
|
56
|
+
const allInvalidatedTags = (0, exports.getAllInvalidatedTags)();
|
|
55
57
|
allInvalidatedTags.forEach(invalidatedTag => {
|
|
56
58
|
if (store_1.store.deleted.has(invalidatedTag)) {
|
|
57
59
|
invalidatedFilepaths.deleted.add(invalidatedTag);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencyTagger.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyTagger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEtE,eAAO,MAAM,cAAc,EAAE,cAA+C,CAAC;AAE7E,eAAO,MAAM,eAAe,aAAoB,CAAC;AAMjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,sBAiBrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"dependencyTagger.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyTagger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEtE,eAAO,MAAM,cAAc,EAAE,cAA+C,CAAC;AAE7E,eAAO,MAAM,eAAe,aAAoB,CAAC;AAMjD;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,sBAiBrC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,gBAkC9B,CAAC"}
|
|
@@ -56,44 +56,9 @@ exports.dependencyTagger = {
|
|
|
56
56
|
},
|
|
57
57
|
invalidateTags: tags => {
|
|
58
58
|
tags.forEach(tag => {
|
|
59
|
-
|
|
59
|
+
if (tag) {
|
|
60
|
+
exports.invalidatedTags.add(tag);
|
|
61
|
+
}
|
|
60
62
|
});
|
|
61
63
|
},
|
|
62
64
|
};
|
|
63
|
-
/*
|
|
64
|
-
import { DependencyTagger } from './dependency.types';
|
|
65
|
-
|
|
66
|
-
export const dependencyTree = new Map<string, Set<string>>();
|
|
67
|
-
|
|
68
|
-
export const invalidatedTags = new Set<string>();
|
|
69
|
-
|
|
70
|
-
export const dependencyTagger: DependencyTagger = {
|
|
71
|
-
setDependency: (tag, dependsOnTags) => {
|
|
72
|
-
dependsOnTags.forEach(dependsOnTag => {
|
|
73
|
-
const previousData = dependencyTree.get(dependsOnTag);
|
|
74
|
-
if (previousData) {
|
|
75
|
-
previousData.add(tag);
|
|
76
|
-
} else {
|
|
77
|
-
dependencyTree.set(dependsOnTag, new Set<string>([tag]));
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
},
|
|
81
|
-
|
|
82
|
-
deleteDependency: (tag, dependsOnTags) => {
|
|
83
|
-
dependsOnTags.forEach(dependsOnTag => {
|
|
84
|
-
const previousData = dependencyTree.get(dependsOnTag);
|
|
85
|
-
if (previousData) {
|
|
86
|
-
previousData.delete(tag);
|
|
87
|
-
if (previousData.size === 0) {
|
|
88
|
-
dependencyTree.delete(dependsOnTag);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
invalidateTags: tags => {
|
|
95
|
-
tags.forEach(tag => {
|
|
96
|
-
invalidatedTags.add(tag);
|
|
97
|
-
});
|
|
98
|
-
},
|
|
99
|
-
}; */
|