@static-suite/static-suite-data-server 0.0.1 → 0.0.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 (146) hide show
  1. package/README.md +569 -107
  2. package/dist/http/README.md +569 -107
  3. package/dist/http/routes/dependency.d.ts +10 -0
  4. package/dist/http/routes/dependency.d.ts.map +1 -0
  5. package/dist/http/routes/dependency.js +71 -0
  6. package/dist/http/routes/dump.d.ts.map +1 -1
  7. package/dist/http/routes/dump.js +15 -10
  8. package/dist/http/routes/home.js +2 -1
  9. package/dist/http/routes/index.d.ts.map +1 -1
  10. package/dist/http/routes/index.js +8 -0
  11. package/dist/http/routes/status.d.ts.map +1 -1
  12. package/dist/http/routes/status.js +1 -6
  13. package/dist/http/views/dependencyIndex.pug +14 -0
  14. package/dist/lib/dataServer.d.ts +2 -1
  15. package/dist/lib/dataServer.d.ts.map +1 -1
  16. package/dist/lib/query/query.types.d.ts +2 -2
  17. package/dist/lib/query/query.types.d.ts.map +1 -1
  18. package/dist/lib/query/query.types.js +2 -2
  19. package/dist/lib/query/queryRunner.d.ts.map +1 -1
  20. package/dist/lib/query/queryRunner.js +3 -1
  21. package/dist/lib/store/dataDir/dataDir.types.d.ts +5 -5
  22. package/dist/lib/store/dataDir/dataDir.types.d.ts.map +1 -1
  23. package/dist/lib/store/dataDir/dataDirManager.d.ts.map +1 -1
  24. package/dist/lib/store/dataDir/dataDirManager.js +23 -12
  25. package/dist/lib/store/dependency/dependency.types.d.ts.map +1 -1
  26. package/dist/lib/store/dependency/dependencyFileHelper.d.ts +1 -1
  27. package/dist/lib/store/dependency/dependencyFileHelper.d.ts.map +1 -1
  28. package/dist/lib/store/dependency/dependencyFileHelper.js +5 -3
  29. package/dist/lib/store/dependency/dependencyManager.d.ts +12 -0
  30. package/dist/lib/store/dependency/dependencyManager.d.ts.map +1 -1
  31. package/dist/lib/store/dependency/dependencyManager.js +7 -5
  32. package/dist/lib/store/dependency/dependencyTagger.d.ts.map +1 -1
  33. package/dist/lib/store/dependency/dependencyTagger.js +3 -38
  34. package/dist/lib/store/diff/{diffManager.types.d.ts → diff.types.d.ts} +14 -6
  35. package/dist/lib/store/diff/diff.types.d.ts.map +1 -0
  36. package/dist/lib/store/{dependency/dependencyManager.types.js → diff/diff.types.js} +0 -0
  37. package/dist/lib/store/diff/diffManager.d.ts +1 -1
  38. package/dist/lib/store/diff/diffManager.d.ts.map +1 -1
  39. package/dist/lib/store/diff/diffManager.js +38 -81
  40. package/dist/lib/store/dump/{dumpManager.types.d.ts → dump.types.d.ts} +21 -8
  41. package/dist/lib/store/dump/dump.types.d.ts.map +1 -0
  42. package/dist/lib/store/{diff/diffManager.types.js → dump/dump.types.js} +0 -0
  43. package/dist/lib/store/dump/dumpManager.d.ts +1 -1
  44. package/dist/lib/store/dump/dumpManager.d.ts.map +1 -1
  45. package/dist/lib/store/dump/dumpManager.js +31 -56
  46. package/dist/lib/store/dump/dumpMetadataHelper.d.ts +7 -0
  47. package/dist/lib/store/dump/dumpMetadataHelper.d.ts.map +1 -0
  48. package/dist/lib/store/dump/dumpMetadataHelper.js +61 -0
  49. package/dist/lib/store/hook/hook.types.d.ts +49 -23
  50. package/dist/lib/store/hook/hook.types.d.ts.map +1 -1
  51. package/dist/lib/store/hook/hookManager.d.ts.map +1 -1
  52. package/dist/lib/store/hook/hookManager.js +19 -8
  53. package/dist/lib/store/store.d.ts.map +1 -1
  54. package/dist/lib/store/store.js +9 -4
  55. package/dist/lib/store/store.types.d.ts +14 -37
  56. package/dist/lib/store/store.types.d.ts.map +1 -1
  57. package/dist/lib/store/storeManager.d.ts.map +1 -1
  58. package/dist/lib/store/storeManager.js +20 -10
  59. package/dist/lib/store/workDir/storage/getChangedLinesBetween.d.ts +16 -0
  60. package/dist/lib/store/workDir/storage/getChangedLinesBetween.d.ts.map +1 -0
  61. package/dist/lib/store/workDir/storage/{getChangedLinesSince.js → getChangedLinesBetween.js} +22 -20
  62. package/dist/lib/store/workDir/storage/getDataFromLogLine.d.ts.map +1 -1
  63. package/dist/lib/store/workDir/storage/getDataFromLogLine.js +16 -3
  64. package/dist/lib/store/workDir/storage/index.d.ts +1 -1
  65. package/dist/lib/store/workDir/storage/index.d.ts.map +1 -1
  66. package/dist/lib/store/workDir/storage/index.js +1 -1
  67. package/dist/lib/store/workDir/workDir.types.d.ts +9 -1
  68. package/dist/lib/store/workDir/workDir.types.d.ts.map +1 -1
  69. package/dist/lib/store/workDir/workDirHelper.d.ts +13 -6
  70. package/dist/lib/store/workDir/workDirHelper.d.ts.map +1 -1
  71. package/dist/lib/store/workDir/workDirHelper.js +42 -11
  72. package/dist/lib/utils/fs/fsUtils.d.ts +6 -0
  73. package/dist/lib/utils/fs/fsUtils.d.ts.map +1 -1
  74. package/dist/lib/utils/fs/fsUtils.js +20 -1
  75. package/dist/lib/utils/module/moduleManager.d.ts.map +1 -1
  76. package/dist/lib/utils/module/moduleManager.js +5 -1
  77. package/dist/lib/utils/string/stringUtils.d.ts +14 -0
  78. package/dist/lib/utils/string/stringUtils.d.ts.map +1 -1
  79. package/dist/lib/utils/string/stringUtils.js +28 -1
  80. package/dist/static-suite-data-server.d.ts +19 -39
  81. package/package.json +3 -3
  82. package/src/http/routes/dependency.ts +91 -0
  83. package/src/http/routes/dump.ts +21 -10
  84. package/src/http/routes/home.ts +2 -2
  85. package/src/http/routes/index.ts +16 -0
  86. package/src/http/routes/status.ts +1 -9
  87. package/src/http/views/dependencyIndex.pug +14 -0
  88. package/src/lib/dataServer.ts +2 -0
  89. package/src/lib/query/query.types.ts +2 -2
  90. package/src/lib/query/queryRunner.ts +3 -1
  91. package/src/lib/store/dataDir/dataDir.types.ts +5 -5
  92. package/src/lib/store/dataDir/dataDirManager.ts +30 -14
  93. package/src/lib/store/dependency/dependency.types.ts +0 -5
  94. package/src/lib/store/dependency/dependencyFileHelper.ts +5 -3
  95. package/src/lib/store/dependency/dependencyManager.ts +6 -3
  96. package/src/lib/store/dependency/dependencyTagger.ts +3 -39
  97. package/src/lib/store/diff/{diffManager.types.ts → diff.types.ts} +14 -5
  98. package/src/lib/store/diff/diffManager.ts +45 -84
  99. package/src/lib/store/dump/{dumpManager.types.ts → dump.types.ts} +24 -7
  100. package/src/lib/store/dump/dumpManager.ts +40 -75
  101. package/src/lib/store/dump/dumpMetadataHelper.ts +73 -0
  102. package/src/lib/store/hook/hook.types.ts +58 -23
  103. package/src/lib/store/hook/hookManager.ts +24 -9
  104. package/src/lib/store/store.ts +9 -4
  105. package/src/lib/store/store.types.ts +16 -37
  106. package/src/lib/store/storeManager.ts +28 -12
  107. package/src/lib/store/workDir/__tests__/workDirHelper.test.ts +6 -1
  108. package/src/lib/store/workDir/storage/__tests__/{getChangedLinesSince.test.ts → getChangedLinesBetween.test.ts} +9 -4
  109. package/src/lib/store/workDir/storage/getChangedLinesBetween.ts +52 -0
  110. package/src/lib/store/workDir/storage/getDataFromLogLine.ts +22 -3
  111. package/src/lib/store/workDir/storage/index.ts +1 -1
  112. package/src/lib/store/workDir/workDir.types.ts +11 -1
  113. package/src/lib/store/workDir/workDirHelper.ts +45 -11
  114. package/src/lib/utils/fs/fsUtils.ts +18 -0
  115. package/src/lib/utils/module/moduleManager.ts +5 -1
  116. package/src/lib/utils/string/__tests__/stringUtils.test.ts +30 -1
  117. package/src/lib/utils/string/stringUtils.ts +32 -0
  118. package/dist/lib/query/queryRunner copy.d.ts +0 -3
  119. package/dist/lib/query/queryRunner copy.d.ts.map +0 -1
  120. package/dist/lib/query/queryRunner copy.js +0 -87
  121. package/dist/lib/store/dependency/dependencyManager copy.d.ts +0 -6
  122. package/dist/lib/store/dependency/dependencyManager copy.d.ts.map +0 -1
  123. package/dist/lib/store/dependency/dependencyManager copy.js +0 -91
  124. package/dist/lib/store/dependency/dependencyManager.types.d.ts +0 -48
  125. package/dist/lib/store/dependency/dependencyManager.types.d.ts.map +0 -1
  126. package/dist/lib/store/dependency/dependencyTagManager.d.ts +0 -6
  127. package/dist/lib/store/dependency/dependencyTagManager.d.ts.map +0 -1
  128. package/dist/lib/store/dependency/dependencyTagManager.js +0 -33
  129. package/dist/lib/store/diff/diffManager.types.d.ts.map +0 -1
  130. package/dist/lib/store/diff/tracker.d.ts +0 -3
  131. package/dist/lib/store/diff/tracker.d.ts.map +0 -1
  132. package/dist/lib/store/diff/tracker.js +0 -82
  133. package/dist/lib/store/diff/tracker.types.d.ts +0 -31
  134. package/dist/lib/store/diff/tracker.types.d.ts.map +0 -1
  135. package/dist/lib/store/diff/tracker.types.js +0 -2
  136. package/dist/lib/store/dump/dumpManager.types.d.ts.map +0 -1
  137. package/dist/lib/store/dump/dumpManager.types.js +0 -2
  138. package/dist/lib/store/include/includeIndex.d.ts +0 -6
  139. package/dist/lib/store/include/includeIndex.d.ts.map +0 -1
  140. package/dist/lib/store/include/includeIndex.js +0 -65
  141. package/dist/lib/store/include/includeIndex.types.d.ts +0 -29
  142. package/dist/lib/store/include/includeIndex.types.d.ts.map +0 -1
  143. package/dist/lib/store/include/includeIndex.types.js +0 -2
  144. package/dist/lib/store/workDir/storage/getChangedLinesSince.d.ts +0 -9
  145. package/dist/lib/store/workDir/storage/getChangedLinesSince.d.ts.map +0 -1
  146. package/src/lib/store/workDir/storage/getChangedLinesSince.ts +0 -47
@@ -1,6 +0,0 @@
1
- import { DependencyManager } from './dependencyManager.types';
2
- /**
3
- * Manager that keeps control of dependencies between data.
4
- */
5
- export declare const dependencyManager: DependencyManager;
6
- //# sourceMappingURL=dependencyManager%20copy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencyManager copy.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyManager copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2C9D;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAsD/B,CAAC"}
@@ -1,91 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dependencyManager = void 0;
4
- const dependencyTree = new Map();
5
- const invalidatedTags = new Set();
6
- const invalidatedFilepaths = new Set();
7
- /**
8
- * Gets a list of parents of a dependency tag
9
- */
10
- const getTagParents = (tag, parents = new Set()) => {
11
- dependencyTree.forEach((children, parent) => {
12
- if (children.has(tag)) {
13
- parents.add(parent);
14
- getTagParents(parent, parents);
15
- }
16
- });
17
- return parents;
18
- };
19
- /**
20
- * Gets a recursive list of invalidated tags.
21
- *
22
- * @remarks
23
- * Iterates over all explicitly invalidated tags, and obtains all
24
- * its parents.
25
- */
26
- const getInvalidatedTags = () => {
27
- const tags = new Set();
28
- invalidatedTags.forEach(invalidatedTag => {
29
- // Mark this tag as invalidated.
30
- tags.add(invalidatedTag);
31
- // Search for parents of this invalidated tag.
32
- getTagParents(invalidatedTag).forEach(parentTag => {
33
- tags.add(parentTag);
34
- });
35
- });
36
- return Array.from(tags);
37
- };
38
- /**
39
- * Manager that keeps control of dependencies between data.
40
- */
41
- exports.dependencyManager = {
42
- setDependency: (tag, dependsOnTags) => {
43
- const previousData = dependencyTree.get(tag);
44
- if (previousData) {
45
- dependsOnTags.forEach(dependsOnTag => previousData.add(dependsOnTag));
46
- }
47
- else {
48
- dependencyTree.set(tag, new Set(dependsOnTags));
49
- }
50
- },
51
- deleteDependency: (tag, dependsOnTags) => {
52
- const previousData = dependencyTree.get(tag);
53
- if (previousData) {
54
- dependsOnTags.forEach(dependsOnTag => previousData.delete(dependsOnTag));
55
- if (previousData.size === 0) {
56
- dependencyTree.delete(tag);
57
- }
58
- }
59
- },
60
- invalidateTags: tags => {
61
- tags.forEach(tag => {
62
- invalidatedTags.add(tag);
63
- });
64
- },
65
- trackInvalidatedFilepaths: () => {
66
- // const invalidFilepaths = new Set<string>();
67
- return getInvalidatedTags();
68
- /* store.data.forEach((json: Json, relativeFilepath: string) => {
69
- if (json.metadata?.includes?.dynamic) {
70
- Object.values(json.metadata.includes.dynamic).forEach(
71
- queryDefinition => {
72
- const tagsByQuery = tagsByQueryIndex.get(queryDefinition);
73
- if (tagsByQuery) {
74
- // eslint-disable-next-line no-restricted-syntax
75
- for (const invalidatedTag of invalidatedTags) {
76
- if (tagsByQuery.has(invalidatedTag)) {
77
- invalidFilepaths.add(relativeFilepath);
78
- break;
79
- }
80
- }
81
- } else {
82
- invalidFilepaths.add(relativeFilepath);
83
- }
84
- },
85
- );
86
- }
87
- }); */
88
- // return Array.from(invalidFilepaths);
89
- },
90
- getInvalidatedFilepaths: () => Array.from(invalidatedFilepaths),
91
- };
@@ -1,48 +0,0 @@
1
- /**
2
- * Manager that keeps control of dependencies between data.
3
- */
4
- export declare type DependencyManager = {
5
- /**
6
- * Sets a dependency relationship between a tag that depends on another tags.
7
- *
8
- * @param tag - A tag to set a dependency for.
9
- * @param dependsOnTags - An array of tags that depends on first parameter tag.
10
- */
11
- setDependency(tag: string, dependsOnTags: string[]): void;
12
- /**
13
- * Deletes a dependency relationship between a tag that depends on another tags.
14
- *
15
- * @param tag - A tag to delete a dependency for.
16
- * @param dependsOnTags - An array of tags that depends on first parameter tag.
17
- */
18
- deleteDependency(tag: string, dependsOnTags: string[]): void;
19
- /**
20
- * Marks dependency items with any of the specified tags as invalid.
21
- *
22
- * @param tags - The list of tags for which to invalidate dependency items.
23
- */
24
- invalidateTags(tags: string[]): void;
25
- /**
26
- * Resets the list of invalidated tags once consumed.
27
- */
28
- /**
29
- * Calculates and tracks down a list of filepaths which contain an invalidated tag.
30
- *
31
- * @remarks
32
- * It calculates which filepaths have been invalidated, and stores them so they
33
- * can be consumed later. This function should be called before the store is updated,
34
- * before any dependency data changes, to avoid losing the set of invalidated filepaths
35
- * between updates.
36
- */
37
- trackInvalidatedFilepaths(): void;
38
- /**
39
- * Gets a list of filepaths which contain an invalidated tag.
40
- *
41
- * @remarks
42
- * It uses the set of tracked down filepaths from
43
- *
44
- * @returns A list of filepaths which contain an invalidated tag.
45
- */
46
- getInvalidatedFilepaths(): string[];
47
- };
48
- //# sourceMappingURL=dependencyManager.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencyManager.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyManager.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,iBAAiB,GAAG;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE1D;;;;;OAKG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAE7D;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAErC;;OAEG;IAGH;;;;;;;;OAQG;IACH,yBAAyB,IAAI,IAAI,CAAC;IAElC;;;;;;;OAOG;IACH,uBAAuB,IAAI,MAAM,EAAE,CAAC;CACrC,CAAC"}
@@ -1,6 +0,0 @@
1
- import { DependencyManager } from './dependencyManager.types';
2
- /**
3
- * Manager that keeps control of dependencies between data.
4
- */
5
- export declare const dependencyManager: DependencyManager;
6
- //# sourceMappingURL=dependencyTagManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dependencyTagManager.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dependency/dependencyTagManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AA2C9D;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAsD/B,CAAC"}
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dependencyTagManager = exports.invalidatedTags = exports.dependencyTree = void 0;
4
- exports.dependencyTree = new Map();
5
- exports.invalidatedTags = new Set();
6
- /**
7
- * Manager that keeps control of dependencies between data.
8
- */
9
- exports.dependencyTagManager = {
10
- setDependency: (tag, dependsOnTags) => {
11
- const previousData = exports.dependencyTree.get(tag);
12
- if (previousData) {
13
- dependsOnTags.forEach(dependsOnTag => previousData.add(dependsOnTag));
14
- }
15
- else {
16
- exports.dependencyTree.set(tag, new Set(dependsOnTags));
17
- }
18
- },
19
- deleteDependency: (tag, dependsOnTags) => {
20
- const previousData = exports.dependencyTree.get(tag);
21
- if (previousData) {
22
- dependsOnTags.forEach(dependsOnTag => previousData.delete(dependsOnTag));
23
- if (previousData.size === 0) {
24
- exports.dependencyTree.delete(tag);
25
- }
26
- }
27
- },
28
- invalidateTags: tags => {
29
- tags.forEach(tag => {
30
- exports.invalidatedTags.add(tag);
31
- });
32
- },
33
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"diffManager.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/diff/diffManager.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,WAAW,GAAG;IACxB;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;CACnD,CAAC;AAEF;;GAEG;AACH,oBAAY,IAAI,GAAG;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAErB;;OAEG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACtB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { Tracker } from './tracker.types';
2
- export declare const tracker: Tracker;
3
- //# sourceMappingURL=tracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracker.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/diff/tracker.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AA0B1C,eAAO,MAAM,OAAO,EAAE,OA0DrB,CAAC"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.tracker = void 0;
7
- const os_1 = __importDefault(require("os"));
8
- const fs_1 = __importDefault(require("fs"));
9
- const path_1 = __importDefault(require("path"));
10
- const config_1 = require("@lib/config");
11
- const logger_1 = require("@lib/utils/logger");
12
- const object_1 = require("@lib/utils/object");
13
- const includeIndex_1 = require("../include/includeIndex");
14
- /**
15
- * A list of changed files with includes that have changed since last reset.
16
- */
17
- const changedFiles = new Set();
18
- /**
19
- * A flag to tell wether getChangedFiles() has been already called.
20
- */
21
- let isChangedFilesInitialized = false;
22
- // Ensure several concurrent Data Servers use different files.
23
- let trackerFilepath = null;
24
- const getTrackerFilepath = () => {
25
- if (!trackerFilepath) {
26
- const dataDirHash = config_1.config.dataDir
27
- .replace(/\//g, '-')
28
- .replace(/([^a-zA-Z0-9-])/g, '')
29
- .replace(/^-/g, '')
30
- .replace(/-$/g, '');
31
- trackerFilepath = `${os_1.default.homedir()}/.static-suite/data-server/${dataDirHash}/tracker.json`;
32
- }
33
- return trackerFilepath;
34
- };
35
- exports.tracker = {
36
- trackChangedFile(relativeFilepath) {
37
- // Add parents.
38
- includeIndex_1.includeIndex
39
- .getParents(relativeFilepath)
40
- .forEach((parentRelativeFilepath) => {
41
- changedFiles.add(parentRelativeFilepath);
42
- });
43
- // Add the passed file.
44
- changedFiles.add(relativeFilepath);
45
- // Store memory data into disk
46
- const trackerFile = getTrackerFilepath();
47
- const dataToStore = JSON.stringify({ changedFiles: (0, object_1.jsonify)(changedFiles) });
48
- try {
49
- if (!fs_1.default.existsSync(trackerFile)) {
50
- fs_1.default.mkdirSync(path_1.default.dirname(trackerFile), { recursive: true });
51
- }
52
- fs_1.default.writeFileSync(trackerFile, dataToStore);
53
- }
54
- catch (e) {
55
- logger_1.logger.error(`Error writing tracker file located at "${trackerFile}": ${e}`);
56
- }
57
- },
58
- getChangedFiles: () => {
59
- const trackerFile = getTrackerFilepath();
60
- // The first time this function is executed (after Data Server is started for the first time),
61
- // it tries to get changed files from previously stored value on disk.
62
- if (!isChangedFilesInitialized && fs_1.default.existsSync(trackerFile)) {
63
- try {
64
- const trackerFileData = JSON.parse(fs_1.default.readFileSync(trackerFile).toString().trim());
65
- isChangedFilesInitialized = true;
66
- trackerFileData.changedFiles?.forEach((changedFile) => changedFiles.add(changedFile));
67
- }
68
- catch (e) {
69
- logger_1.logger.error(`Error reading tracker file located at "${trackerFile}": ${e}`);
70
- }
71
- }
72
- return Array.from(changedFiles);
73
- },
74
- reset: () => {
75
- changedFiles.clear();
76
- // Delete tracker file.
77
- const trackerFile = getTrackerFilepath();
78
- if (fs_1.default.existsSync(trackerFile)) {
79
- fs_1.default.unlinkSync(trackerFile);
80
- }
81
- },
82
- };
@@ -1,31 +0,0 @@
1
- /**
2
- * Track changed files affected by includes.
3
- */
4
- export declare type Tracker = {
5
- /**
6
- * Gets a set of changed files from a file and adds them to a temporary stack.
7
- *
8
- * @remarks
9
- * Between two builds, stored data can be mutated when dataDirManager::update() runs. That
10
- * creates a problem when an include or file is removed, since once store is updated we cannot
11
- * go back in time to track past changes. To avoid this, track changes files whenever store
12
- * is updated.
13
- *
14
- * This function only tracks changed files affected by static includes. There is no need to track
15
- * intermediate changes in query results, since they are evaluated on demand.
16
- *
17
- * @param relativeFilepath - Relative file path, inside dataDir, to the file to be processed.
18
- */
19
- trackChangedFile(relativeFilepath: string): void;
20
- /**
21
- * Gets the current set of changed files.
22
- *
23
- * @returns an array of changed files.
24
- */
25
- getChangedFiles(): string[];
26
- /**
27
- * Resets current set of changed files.
28
- */
29
- reset(): void;
30
- };
31
- //# sourceMappingURL=tracker.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracker.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/diff/tracker.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,OAAO,GAAG;IACpB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAEjD;;;;OAIG;IACH,eAAe,IAAI,MAAM,EAAE,CAAC;IAE5B;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf,CAAC"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1 +0,0 @@
1
- {"version":3,"file":"dumpManager.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/dump/dumpManager.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,WAAW,GAAG;IACxB;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAE/C;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF;;GAEG;AACH,oBAAY,IAAI,GAAG;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,OAAO,EAAE,GAAG,CACV,MAAM,EACN;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAC7D,CAAC;IAEF;;;;;OAKG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAE1E;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +0,0 @@
1
- import { IncludeIndex } from '@lib/store/include/includeIndex.types';
2
- /**
3
- * Service that updates the include index that holds relationships between data.
4
- */
5
- export declare const includeIndex: IncludeIndex;
6
- //# sourceMappingURL=includeIndex.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"includeIndex.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/include/includeIndex.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AA0BrE;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,YAkD1B,CAAC"}
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.includeIndex = void 0;
4
- const store_1 = require("@lib/store");
5
- /**
6
- * Helper method to get a recursive list of files containing a given file.
7
- *
8
- * @param relativeFilepath - Relative file path, inside dataDir, to the file to be searched for.
9
- * @param parentStack - Stack of already found parents.
10
- *
11
- * @returns A list of files as a Set of strings
12
- */
13
- const getRecursiveParents = (relativeFilepath, parentStack) => {
14
- const parents = store_1.store.index.include.static.get(relativeFilepath);
15
- if (parents) {
16
- parents.forEach((parentRelativeFilepath) => {
17
- parentStack.add(parentRelativeFilepath);
18
- getRecursiveParents(parentRelativeFilepath, parentStack);
19
- });
20
- }
21
- return parentStack;
22
- };
23
- /**
24
- * Service that updates the include index that holds relationships between data.
25
- */
26
- exports.includeIndex = {
27
- set: (relativeFilepath, fileContents) => {
28
- const staticIncludes = fileContents?.metadata?.includes?.static;
29
- if (staticIncludes) {
30
- Object.values(staticIncludes).forEach((includeRelativeFilepath) => {
31
- const includeMap = store_1.store.index.include.static.get(includeRelativeFilepath) ||
32
- store_1.store.index.include.static
33
- .set(includeRelativeFilepath, new Set())
34
- .get(includeRelativeFilepath);
35
- includeMap?.add(relativeFilepath);
36
- });
37
- }
38
- const dynamicIncludes = fileContents?.metadata?.includes?.dynamic;
39
- if (dynamicIncludes) {
40
- // todo
41
- }
42
- },
43
- remove: (relativeFilepath, fileContents) => {
44
- const staticIncludes = fileContents?.metadata?.includes?.static;
45
- if (staticIncludes) {
46
- Object.values(staticIncludes).forEach((includeRelativeFilepath) => {
47
- const includeMap = store_1.store.index.include.static.get(includeRelativeFilepath) ||
48
- store_1.store.index.include.static
49
- .set(includeRelativeFilepath, new Set())
50
- .get(includeRelativeFilepath);
51
- if (includeMap) {
52
- includeMap.delete(relativeFilepath);
53
- if (includeMap.size === 0) {
54
- store_1.store.index.include.static.delete(includeRelativeFilepath);
55
- }
56
- }
57
- });
58
- }
59
- const dynamicIncludes = fileContents?.metadata?.includes?.dynamic;
60
- if (dynamicIncludes) {
61
- // todo
62
- }
63
- },
64
- getParents: (relativeFilepath) => Array.from(getRecursiveParents(relativeFilepath, new Set())),
65
- };
@@ -1,29 +0,0 @@
1
- import { Json } from '@lib/utils/object/object.types';
2
- /**
3
- * Service that updates the include index that holds relationships between data.
4
- */
5
- export declare type IncludeIndex = {
6
- /**
7
- * Sets include information for a file.
8
- *
9
- * @param relativeFilepath - Relative file path, inside dataDir, to the file to be set.
10
- * @param fileContents - Contents of the file to be set.
11
- */
12
- set(relativeFilepath: string, fileContents: Json): void;
13
- /**
14
- * Removes include information for a file.
15
- *
16
- * @param relativeFilepath - Relative file path, inside dataDir, to the file to be removed.
17
- * @param fileContents - Contents of the file to be removed.
18
- */
19
- remove(relativeFilepath: string, fileContents: Json): void;
20
- /**
21
- * Gets a recursive list of files containing a given file.
22
- *
23
- * @param relativeFilepath - Relative file path, inside dataDir, to the file to be searched for.
24
- *
25
- * @returns A list of files as an array of strings
26
- */
27
- getParents(relativeFilepath: string): string[];
28
- };
29
- //# sourceMappingURL=includeIndex.types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"includeIndex.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/store/include/includeIndex.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AAEtD;;GAEG;AACH,oBAAY,YAAY,GAAG;IACzB;;;;;OAKG;IACH,GAAG,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAExD;;;;;OAKG;IACH,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAE3D;;;;;;OAMG;IACH,UAAU,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAChD,CAAC"}
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
1
- /**
2
- * Get changed files since a date.
3
- *
4
- * @param sinceDate - Date to search
5
-
6
- * @returns Array of changed lines
7
- */
8
- export declare const getChangedLinesSince: (sinceDate: Date) => string[];
9
- //# sourceMappingURL=getChangedLinesSince.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getChangedLinesSince.d.ts","sourceRoot":"","sources":["../../../../../src/lib/store/workDir/storage/getChangedLinesSince.ts"],"names":[],"mappings":"AAIA;;;;;;KAMK;AACL,eAAO,MAAM,oBAAoB,cAAe,IAAI,KAAG,MAAM,EAmC5D,CAAC"}
@@ -1,47 +0,0 @@
1
- import fs from 'fs';
2
- import { logger } from '@lib/utils/logger';
3
- import { getLogFile } from './getLogFile';
4
-
5
- /**
6
- * Get changed files since a date.
7
- *
8
- * @param sinceDate - Date to search
9
-
10
- * @returns Array of changed lines
11
- */
12
- export const getChangedLinesSince = (sinceDate: Date): string[] => {
13
- let allLines: string[] = [];
14
- const logFile = getLogFile();
15
- if (logFile) {
16
- try {
17
- allLines = fs.readFileSync(logFile).toString().split('\n');
18
- } catch (e) {
19
- logger.error(
20
- `Error reading metadata log file located at ${`logFile`}: ${e}`,
21
- );
22
- }
23
- }
24
-
25
- // todo - Do not use dates and use timestamps in all cases
26
- // to avoid having to fix offsets.
27
- const date = new Date();
28
- const dateOffset = -(date.getTimezoneOffset() * 60 * 1000);
29
-
30
- const changedLines = allLines.filter(line => {
31
- const uniqueId = line.substring(0, 32);
32
- if (!uniqueId) {
33
- return false;
34
- }
35
- const dateString = uniqueId.replace(
36
- /(\d{4})-(\d{2})-(\d{2})_(\d{2})-(\d{2})-(\d{2})\.(\d{3}).*/,
37
- '$1-$2-$3T$4:$5:$6.$7',
38
- );
39
- const uniqueIdDate = Date.parse(dateString) + dateOffset;
40
- return uniqueIdDate && uniqueIdDate > sinceDate.getTime();
41
- });
42
- logger.debug(`Found ${changedLines.length} changed lines`);
43
- changedLines.forEach(line => {
44
- logger.debug(`Found changed line: ${line}`);
45
- });
46
- return changedLines;
47
- };