@cyberismo/data-handler 0.0.14 → 0.0.16
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/card-metadata-updater.js +8 -4
- package/dist/card-metadata-updater.js.map +1 -1
- package/dist/command-handler.d.ts +4 -0
- package/dist/command-handler.js +29 -19
- package/dist/command-handler.js.map +1 -1
- package/dist/command-manager.d.ts +25 -2
- package/dist/command-manager.js +30 -5
- package/dist/command-manager.js.map +1 -1
- package/dist/commands/create.d.ts +1 -1
- package/dist/commands/create.js +45 -93
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/edit.d.ts +1 -15
- package/dist/commands/edit.js +15 -89
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/export.d.ts +11 -2
- package/dist/commands/export.js +58 -58
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import.d.ts +9 -1
- package/dist/commands/import.js +17 -11
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/move.d.ts +1 -2
- package/dist/commands/move.js +107 -146
- package/dist/commands/move.js.map +1 -1
- package/dist/commands/remove.d.ts +8 -1
- package/dist/commands/remove.js +17 -48
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/rename.d.ts +4 -9
- package/dist/commands/rename.js +34 -108
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/show.d.ts +22 -34
- package/dist/commands/show.js +103 -151
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/transition.d.ts +9 -2
- package/dist/commands/transition.js +49 -44
- package/dist/commands/transition.js.map +1 -1
- package/dist/commands/update.d.ts +18 -12
- package/dist/commands/update.js +34 -18
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.d.ts +18 -10
- package/dist/commands/validate.js +101 -47
- package/dist/commands/validate.js.map +1 -1
- package/dist/containers/card-container.d.ts +87 -24
- package/dist/containers/card-container.js +183 -279
- package/dist/containers/card-container.js.map +1 -1
- package/dist/containers/project/calculation-engine.d.ts +13 -4
- package/dist/containers/project/calculation-engine.js +79 -77
- package/dist/containers/project/calculation-engine.js.map +1 -1
- package/dist/containers/project/card-cache.d.ts +146 -0
- package/dist/containers/project/card-cache.js +411 -0
- package/dist/containers/project/card-cache.js.map +1 -0
- package/dist/containers/project/project-paths.d.ts +5 -4
- package/dist/containers/project/project-paths.js +16 -12
- package/dist/containers/project/project-paths.js.map +1 -1
- package/dist/containers/project/resource-cache.d.ts +169 -0
- package/dist/containers/project/resource-cache.js +507 -0
- package/dist/containers/project/resource-cache.js.map +1 -0
- package/dist/containers/project/resource-handler.d.ts +129 -0
- package/dist/containers/project/resource-handler.js +206 -0
- package/dist/containers/project/resource-handler.js.map +1 -0
- package/dist/containers/project.d.ts +114 -195
- package/dist/containers/project.js +425 -535
- package/dist/containers/project.js.map +1 -1
- package/dist/containers/template.d.ts +22 -32
- package/dist/containers/template.js +113 -115
- package/dist/containers/template.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/folder-content-interfaces.d.ts +7 -4
- package/dist/interfaces/folder-content-interfaces.js +3 -3
- package/dist/interfaces/folder-content-interfaces.js.map +1 -1
- package/dist/interfaces/macros.d.ts +1 -0
- package/dist/interfaces/macros.js +1 -1
- package/dist/interfaces/macros.js.map +1 -1
- package/dist/interfaces/project-interfaces.d.ts +7 -5
- package/dist/interfaces/project-interfaces.js.map +1 -1
- package/dist/interfaces/resource-interfaces.d.ts +25 -22
- package/dist/interfaces/resource-interfaces.js +3 -0
- package/dist/interfaces/resource-interfaces.js.map +1 -1
- package/dist/macros/common.d.ts +10 -10
- package/dist/macros/createCards/index.d.ts +0 -13
- package/dist/macros/createCards/index.js.map +1 -1
- package/dist/macros/createCards/types.d.ts +44 -0
- package/dist/macros/createCards/types.js +15 -0
- package/dist/macros/createCards/types.js.map +1 -0
- package/dist/macros/graph/index.d.ts +2 -6
- package/dist/macros/graph/index.js +14 -28
- package/dist/macros/graph/index.js.map +1 -1
- package/dist/macros/graph/types.d.ts +23 -0
- package/dist/macros/graph/types.js +15 -0
- package/dist/macros/graph/types.js.map +1 -0
- package/dist/macros/image/index.d.ts +8 -16
- package/dist/macros/image/index.js +36 -33
- package/dist/macros/image/index.js.map +1 -1
- package/dist/macros/image/types.d.ts +38 -0
- package/dist/macros/image/types.js +15 -0
- package/dist/macros/image/types.js.map +1 -0
- package/dist/macros/include/index.d.ts +1 -6
- package/dist/macros/include/index.js +4 -7
- package/dist/macros/include/index.js.map +1 -1
- package/dist/macros/include/types.d.ts +31 -0
- package/dist/macros/include/types.js +15 -0
- package/dist/macros/include/types.js.map +1 -0
- package/dist/macros/index.d.ts +1 -1
- package/dist/macros/index.js +2 -2
- package/dist/macros/index.js.map +1 -1
- package/dist/macros/percentage/index.d.ts +0 -6
- package/dist/macros/percentage/index.js.map +1 -1
- package/dist/macros/percentage/types.d.ts +31 -0
- package/dist/macros/percentage/types.js +15 -0
- package/dist/macros/percentage/types.js.map +1 -0
- package/dist/macros/report/index.d.ts +0 -3
- package/dist/macros/report/index.js +3 -6
- package/dist/macros/report/index.js.map +1 -1
- package/dist/macros/report/types.d.ts +19 -0
- package/dist/macros/report/types.js +15 -0
- package/dist/macros/report/types.js.map +1 -0
- package/dist/macros/scoreCard/index.d.ts +0 -6
- package/dist/macros/scoreCard/index.js.map +1 -1
- package/dist/macros/scoreCard/types.d.ts +31 -0
- package/dist/macros/scoreCard/types.js +15 -0
- package/dist/macros/scoreCard/types.js.map +1 -0
- package/dist/macros/types.d.ts +25 -0
- package/dist/macros/types.js +2 -0
- package/dist/macros/types.js.map +1 -0
- package/dist/macros/vega/index.d.ts +0 -4
- package/dist/macros/vega/index.js.map +1 -1
- package/dist/macros/vega/types.d.ts +20 -0
- package/dist/macros/vega/types.js +2 -0
- package/dist/macros/vega/types.js.map +1 -0
- package/dist/macros/vegalite/index.d.ts +0 -4
- package/dist/macros/vegalite/index.js.map +1 -1
- package/dist/macros/vegalite/types.d.ts +20 -0
- package/dist/macros/vegalite/types.js +15 -0
- package/dist/macros/vegalite/types.js.map +1 -0
- package/dist/macros/xref/index.d.ts +0 -3
- package/dist/macros/xref/index.js +5 -14
- package/dist/macros/xref/index.js.map +1 -1
- package/dist/macros/xref/types.d.ts +19 -0
- package/dist/macros/xref/types.js +15 -0
- package/dist/macros/xref/types.js.map +1 -0
- package/dist/module-manager.d.ts +16 -3
- package/dist/module-manager.js +55 -23
- package/dist/module-manager.js.map +1 -1
- package/dist/project-settings.d.ts +16 -3
- package/dist/project-settings.js +79 -14
- package/dist/project-settings.js.map +1 -1
- package/dist/resources/calculation-resource.d.ts +6 -33
- package/dist/resources/calculation-resource.js +11 -60
- package/dist/resources/calculation-resource.js.map +1 -1
- package/dist/resources/card-type-resource.d.ts +10 -22
- package/dist/resources/card-type-resource.js +46 -66
- package/dist/resources/card-type-resource.js.map +1 -1
- package/dist/resources/create-defaults.d.ts +3 -2
- package/dist/resources/create-defaults.js +3 -2
- package/dist/resources/create-defaults.js.map +1 -1
- package/dist/resources/field-type-resource.d.ts +8 -22
- package/dist/resources/field-type-resource.js +35 -60
- package/dist/resources/field-type-resource.js.map +1 -1
- package/dist/resources/file-resource.d.ts +14 -35
- package/dist/resources/file-resource.js +22 -301
- package/dist/resources/file-resource.js.map +1 -1
- package/dist/resources/folder-resource.d.ts +44 -66
- package/dist/resources/folder-resource.js +102 -149
- package/dist/resources/folder-resource.js.map +1 -1
- package/dist/resources/graph-model-resource.d.ts +9 -34
- package/dist/resources/graph-model-resource.js +18 -64
- package/dist/resources/graph-model-resource.js.map +1 -1
- package/dist/resources/graph-view-resource.d.ts +9 -29
- package/dist/resources/graph-view-resource.js +13 -48
- package/dist/resources/graph-view-resource.js.map +1 -1
- package/dist/resources/link-type-resource.d.ts +9 -23
- package/dist/resources/link-type-resource.js +11 -33
- package/dist/resources/link-type-resource.js.map +1 -1
- package/dist/resources/report-resource.d.ts +10 -23
- package/dist/resources/report-resource.js +20 -67
- package/dist/resources/report-resource.js.map +1 -1
- package/dist/resources/resource-object.d.ts +143 -23
- package/dist/resources/resource-object.js +369 -48
- package/dist/resources/resource-object.js.map +1 -1
- package/dist/resources/template-resource.d.ts +10 -17
- package/dist/resources/template-resource.js +19 -27
- package/dist/resources/template-resource.js.map +1 -1
- package/dist/resources/workflow-resource.d.ts +9 -25
- package/dist/resources/workflow-resource.js +25 -55
- package/dist/resources/workflow-resource.js.map +1 -1
- package/dist/utils/card-utils.d.ts +69 -19
- package/dist/utils/card-utils.js +179 -30
- package/dist/utils/card-utils.js.map +1 -1
- package/dist/utils/clingo-fact-builder.d.ts +25 -14
- package/dist/utils/clingo-fact-builder.js +27 -5
- package/dist/utils/clingo-fact-builder.js.map +1 -1
- package/dist/utils/clingo-facts.js +14 -7
- package/dist/utils/clingo-facts.js.map +1 -1
- package/dist/utils/clingo-parser.js +1 -1
- package/dist/utils/clingo-parser.js.map +1 -1
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.js +4 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/csv.js +1 -1
- package/dist/utils/csv.js.map +1 -1
- package/dist/utils/resource-utils.d.ts +1 -0
- package/dist/utils/resource-utils.js +2 -1
- package/dist/utils/resource-utils.js.map +1 -1
- package/package.json +11 -11
- package/src/card-metadata-updater.ts +9 -7
- package/src/command-handler.ts +35 -23
- package/src/command-manager.ts +32 -19
- package/src/commands/create.ts +59 -160
- package/src/commands/edit.ts +16 -132
- package/src/commands/export.ts +71 -81
- package/src/commands/import.ts +26 -18
- package/src/commands/move.ts +143 -179
- package/src/commands/remove.ts +20 -59
- package/src/commands/rename.ts +45 -156
- package/src/commands/show.ts +153 -211
- package/src/commands/transition.ts +53 -58
- package/src/commands/update.ts +44 -23
- package/src/commands/validate.ts +108 -82
- package/src/containers/card-container.ts +200 -360
- package/src/containers/project/calculation-engine.ts +81 -105
- package/src/containers/project/card-cache.ts +497 -0
- package/src/containers/project/project-paths.ts +21 -13
- package/src/containers/project/resource-cache.ts +648 -0
- package/src/containers/project/resource-handler.ts +265 -0
- package/src/containers/project.ts +551 -693
- package/src/containers/template.ts +129 -142
- package/src/index.ts +1 -0
- package/src/interfaces/folder-content-interfaces.ts +14 -7
- package/src/interfaces/macros.ts +2 -0
- package/src/interfaces/project-interfaces.ts +14 -7
- package/src/interfaces/resource-interfaces.ts +30 -27
- package/src/macros/createCards/index.ts +1 -12
- package/src/macros/createCards/types.ts +46 -0
- package/src/macros/graph/index.ts +27 -52
- package/src/macros/graph/types.ts +24 -0
- package/src/macros/image/index.ts +50 -61
- package/src/macros/image/types.ts +39 -0
- package/src/macros/include/index.ts +6 -15
- package/src/macros/include/types.ts +32 -0
- package/src/macros/index.ts +2 -2
- package/src/macros/percentage/index.ts +1 -7
- package/src/macros/percentage/types.ts +32 -0
- package/src/macros/report/index.ts +4 -13
- package/src/macros/report/types.ts +20 -0
- package/src/macros/scoreCard/index.ts +1 -7
- package/src/macros/scoreCard/types.ts +32 -0
- package/src/macros/types.ts +48 -0
- package/src/macros/vega/index.ts +1 -4
- package/src/macros/vega/types.ts +21 -0
- package/src/macros/vegalite/index.ts +1 -4
- package/src/macros/vegalite/types.ts +22 -0
- package/src/macros/xref/index.ts +6 -20
- package/src/macros/xref/types.ts +20 -0
- package/src/module-manager.ts +79 -22
- package/src/project-settings.ts +84 -15
- package/src/resources/calculation-resource.ts +21 -91
- package/src/resources/card-type-resource.ts +74 -109
- package/src/resources/create-defaults.ts +3 -2
- package/src/resources/field-type-resource.ts +61 -104
- package/src/resources/file-resource.ts +33 -441
- package/src/resources/folder-resource.ts +130 -207
- package/src/resources/graph-model-resource.ts +36 -95
- package/src/resources/graph-view-resource.ts +28 -70
- package/src/resources/link-type-resource.ts +23 -53
- package/src/resources/report-resource.ts +34 -96
- package/src/resources/resource-object.ts +511 -66
- package/src/resources/template-resource.ts +32 -44
- package/src/resources/workflow-resource.ts +42 -85
- package/src/utils/card-utils.ts +217 -31
- package/src/utils/clingo-fact-builder.ts +28 -16
- package/src/utils/clingo-facts.ts +16 -7
- package/src/utils/clingo-parser.ts +1 -1
- package/src/utils/constants.ts +6 -0
- package/src/utils/csv.ts +1 -1
- package/src/utils/resource-utils.ts +2 -1
- package/dist/containers/project/resource-collector.d.ts +0 -87
- package/dist/containers/project/resource-collector.js +0 -337
- package/dist/containers/project/resource-collector.js.map +0 -1
- package/src/containers/project/resource-collector.ts +0 -396
|
@@ -10,279 +10,35 @@
|
|
|
10
10
|
details. You should have received a copy of the GNU Affero General Public
|
|
11
11
|
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
12
12
|
*/
|
|
13
|
-
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import { readFile } from 'node:fs/promises';
|
|
17
|
-
import { ResourceObject, } from './resource-object.js';
|
|
18
|
-
import { DefaultContent } from './create-defaults.js';
|
|
19
|
-
import { deleteFile, pathExists } from '../utils/file-utils.js';
|
|
20
|
-
import { hasCode } from '../utils/error-utils.js';
|
|
21
|
-
import { Project, ResourcesFrom } from '../containers/project.js';
|
|
22
|
-
import { readJsonFile, readJsonFileSync, writeJsonFile, } from '../utils/json.js';
|
|
23
|
-
import { resourceName, resourceNameToPath, resourceNameToString, } from '../utils/resource-utils.js';
|
|
24
|
-
import { sortCards } from '../utils/card-utils.js';
|
|
25
|
-
import { Template } from '../containers/template.js';
|
|
26
|
-
import { Validate } from '../commands/index.js';
|
|
27
|
-
export { DefaultContent, Project, ResourcesFrom, resourceName, resourceNameToString, sortCards, };
|
|
13
|
+
import { resourceName } from '../utils/resource-utils.js';
|
|
14
|
+
import { ResourceObject } from './resource-object.js';
|
|
15
|
+
import { ResourcesFrom } from '../containers/project.js';
|
|
28
16
|
/**
|
|
29
17
|
* Base class for file based resources (card types, field types, link types, workflows, ...)
|
|
30
18
|
*/
|
|
31
19
|
export class FileResource extends ResourceObject {
|
|
32
|
-
type
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
name: '',
|
|
36
|
-
displayName: '',
|
|
37
|
-
};
|
|
38
|
-
cache;
|
|
39
|
-
constructor(project, resourceName, type) {
|
|
40
|
-
super(project, resourceName);
|
|
41
|
-
this.type = type;
|
|
42
|
-
this.cache = this.project.resourceCache;
|
|
43
|
-
}
|
|
44
|
-
// Type of resource.
|
|
45
|
-
resourceType() {
|
|
46
|
-
return this.type;
|
|
47
|
-
}
|
|
48
|
-
// Converts resource name to Resource object.
|
|
49
|
-
resourceObjectToResource(object) {
|
|
50
|
-
return {
|
|
51
|
-
name: object.data ? object.data.name : '',
|
|
52
|
-
path: object.fileName.substring(0, object.fileName.lastIndexOf(sep)),
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
toCache() {
|
|
56
|
-
this.cache.set(resourceNameToString(this.resourceName), this.content);
|
|
20
|
+
constructor(project, name, type) {
|
|
21
|
+
super(project, name, type);
|
|
22
|
+
this.initialize();
|
|
57
23
|
}
|
|
58
24
|
// Collects cards that are using the 'cardTypeName'.
|
|
59
|
-
async collectCards(
|
|
60
|
-
|
|
61
|
-
const cards =
|
|
25
|
+
async collectCards(cardTypeName) {
|
|
26
|
+
function filteredCards(cardSource, cardTypeName) {
|
|
27
|
+
const cards = cardSource;
|
|
62
28
|
return cards.filter((card) => card.metadata?.cardType === cardTypeName);
|
|
63
29
|
}
|
|
64
30
|
// Collect both project cards ...
|
|
65
|
-
const
|
|
31
|
+
const projectCards = filteredCards(this.project.cards(this.project.paths.cardRootFolder), cardTypeName);
|
|
66
32
|
// ... and cards from each template that would be affected.
|
|
67
|
-
const templates =
|
|
68
|
-
const
|
|
69
|
-
const templateObject =
|
|
70
|
-
return filteredCards(templateObject.cards(
|
|
33
|
+
const templates = this.project.resources.templates(ResourcesFrom.localOnly);
|
|
34
|
+
const templateCards = templates.map((template) => {
|
|
35
|
+
const templateObject = template.templateObject();
|
|
36
|
+
return filteredCards(templateObject.cards(), cardTypeName);
|
|
71
37
|
});
|
|
72
38
|
// Return all affected cards
|
|
73
|
-
const cards =
|
|
39
|
+
const cards = [projectCards, ...templateCards].reduce((accumulator, value) => accumulator.concat(value), []);
|
|
74
40
|
return cards;
|
|
75
41
|
}
|
|
76
|
-
// Get (resource folder) type name
|
|
77
|
-
get getType() {
|
|
78
|
-
return super.getType;
|
|
79
|
-
}
|
|
80
|
-
// Get logger instance
|
|
81
|
-
get logger() {
|
|
82
|
-
return super.getLogger(this.getType);
|
|
83
|
-
}
|
|
84
|
-
// Initialize the resource.
|
|
85
|
-
initialize() {
|
|
86
|
-
if (this.resourceName.type === '') {
|
|
87
|
-
this.resourceName.type = this.type;
|
|
88
|
-
}
|
|
89
|
-
if (this.resourceName.prefix === '') {
|
|
90
|
-
this.resourceName.prefix = this.project.projectPrefix;
|
|
91
|
-
}
|
|
92
|
-
if (this.type) {
|
|
93
|
-
this.moduleResource =
|
|
94
|
-
this.resourceName.prefix !== this.project.projectPrefix;
|
|
95
|
-
this.resourceFolder = this.moduleResource
|
|
96
|
-
? join(this.project.paths.modulesFolder, this.resourceName.prefix, this.resourceName.type)
|
|
97
|
-
: this.project.paths.resourcePath(this.type);
|
|
98
|
-
this.fileName = resourceNameToPath(this.project, this.resourceName);
|
|
99
|
-
}
|
|
100
|
-
// Read from cache, if entry exists...
|
|
101
|
-
if (this.cache.has(resourceNameToString(this.resourceName))) {
|
|
102
|
-
this.content = this.cache.get(resourceNameToString(this.resourceName));
|
|
103
|
-
return;
|
|
104
|
-
}
|
|
105
|
-
//... otherwise read from disk and add to cache
|
|
106
|
-
try {
|
|
107
|
-
this.content = readJsonFileSync(this.fileName);
|
|
108
|
-
this.toCache();
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
// do nothing, it is possible that file has not been created yet.
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
// Creates resource.
|
|
115
|
-
async create(newContent) {
|
|
116
|
-
if (pathExists(this.fileName)) {
|
|
117
|
-
throw new Error(`Resource '${this.resourceName.identifier}' already exists in the project`);
|
|
118
|
-
}
|
|
119
|
-
if (this.resourceFolder === '') {
|
|
120
|
-
this.resourceName = resourceName(`${this.project.projectPrefix}/${this.type}/${this.resourceName.identifier}`);
|
|
121
|
-
this.resourceFolder = this.project.paths.resourcePath(this.resourceName.type);
|
|
122
|
-
}
|
|
123
|
-
const validName = await Validate.getInstance().validResourceName(this.resourceType(), resourceNameToString(this.resourceName), await this.project.projectPrefixes());
|
|
124
|
-
let validContent = {};
|
|
125
|
-
if (newContent) {
|
|
126
|
-
validContent = newContent;
|
|
127
|
-
validContent.name = validName;
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
validContent.description = '';
|
|
131
|
-
validContent.displayName = '';
|
|
132
|
-
}
|
|
133
|
-
this.content = validContent;
|
|
134
|
-
await this.write();
|
|
135
|
-
// Notify project & collector
|
|
136
|
-
this.project.addResource(this.resourceObjectToResource(this), this.content);
|
|
137
|
-
}
|
|
138
|
-
// Calculations that use this resource.
|
|
139
|
-
async calculations() {
|
|
140
|
-
const references = [];
|
|
141
|
-
const resourceName = resourceNameToString(this.resourceName);
|
|
142
|
-
for (const calculation of await this.project.calculations(ResourcesFrom.all)) {
|
|
143
|
-
const fileNameWithExtension = calculation.name.endsWith('.lp')
|
|
144
|
-
? calculation.name
|
|
145
|
-
: calculation.name + '.lp';
|
|
146
|
-
const filename = join(calculation.path, basename(fileNameWithExtension));
|
|
147
|
-
try {
|
|
148
|
-
const content = await readFile(filename, 'utf-8');
|
|
149
|
-
if (content.includes(resourceName)) {
|
|
150
|
-
references.push(calculation.name);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
catch (error) {
|
|
154
|
-
// Skip files that don't exist (they may have been renamed or deleted)
|
|
155
|
-
if (hasCode(error) && error.code === 'ENOENT') {
|
|
156
|
-
this.logger.warn(`Skipping non-existent file: ${filename}`);
|
|
157
|
-
continue;
|
|
158
|
-
}
|
|
159
|
-
throw new Error(`Failed to process file ${filename}: ${error.message}`);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
return references;
|
|
163
|
-
}
|
|
164
|
-
// Cards from project.
|
|
165
|
-
async cards() {
|
|
166
|
-
return [
|
|
167
|
-
...(await this.project.cards(undefined, {
|
|
168
|
-
content: true,
|
|
169
|
-
metadata: true,
|
|
170
|
-
})),
|
|
171
|
-
...(await this.project.allTemplateCards({
|
|
172
|
-
content: true,
|
|
173
|
-
metadata: true,
|
|
174
|
-
})),
|
|
175
|
-
];
|
|
176
|
-
}
|
|
177
|
-
// Returns memory resident data as JSON.
|
|
178
|
-
// This is basically same as 'show' but doesn't do any checks; just returns the current content.
|
|
179
|
-
get data() {
|
|
180
|
-
return this.content.name !== '' ? this.content : undefined;
|
|
181
|
-
}
|
|
182
|
-
// Deletes resource.
|
|
183
|
-
async delete() {
|
|
184
|
-
if (this.moduleResource) {
|
|
185
|
-
throw new Error(`Cannot delete module resources`);
|
|
186
|
-
}
|
|
187
|
-
if (!this.fileName.endsWith('.json')) {
|
|
188
|
-
this.fileName += '.json';
|
|
189
|
-
}
|
|
190
|
-
if (!pathExists(this.fileName)) {
|
|
191
|
-
throw new Error(`Resource '${this.resourceName.identifier}' does not exist in the project`);
|
|
192
|
-
}
|
|
193
|
-
const usedIn = await this.usage();
|
|
194
|
-
if (usedIn.length > 0) {
|
|
195
|
-
throw new Error(`Cannot delete resource ${resourceNameToString(this.resourceName)}. It is used by: ${usedIn.join(', ')}`);
|
|
196
|
-
}
|
|
197
|
-
await deleteFile(this.fileName);
|
|
198
|
-
this.project.removeResource(this.resourceObjectToResource(this));
|
|
199
|
-
this.fileName = '';
|
|
200
|
-
}
|
|
201
|
-
async validName(newName) {
|
|
202
|
-
const validName = await Validate.getInstance().validResourceName(this.resourceType(), resourceNameToString(newName), await this.project.projectPrefixes());
|
|
203
|
-
return validName;
|
|
204
|
-
}
|
|
205
|
-
// Called after inherited class has finished 'update' operation.
|
|
206
|
-
async postUpdate(content, key, op) {
|
|
207
|
-
function toValue(op) {
|
|
208
|
-
if (op.name === 'rank')
|
|
209
|
-
return op.newIndex;
|
|
210
|
-
if (op.name === 'add')
|
|
211
|
-
return JSON.stringify(op.target);
|
|
212
|
-
if (op.name === 'remove')
|
|
213
|
-
return JSON.stringify(op.target);
|
|
214
|
-
if (op.name === 'change')
|
|
215
|
-
return JSON.stringify(op.to);
|
|
216
|
-
}
|
|
217
|
-
// Check that new name is valid.
|
|
218
|
-
if (op.name === 'change' && key === 'name') {
|
|
219
|
-
const newName = resourceName(op.to);
|
|
220
|
-
content.name = await this.validName(newName);
|
|
221
|
-
}
|
|
222
|
-
// Once changes have been made; validate the content.
|
|
223
|
-
try {
|
|
224
|
-
await this.validate(content);
|
|
225
|
-
}
|
|
226
|
-
catch (error) {
|
|
227
|
-
if (error instanceof Error) {
|
|
228
|
-
const errorValue = typeof op === 'object' ? toValue(op) : op;
|
|
229
|
-
throw new Error(`Cannot ${op.name} '${key}' --> '${errorValue}: ${error.message}'`);
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
this.content = content;
|
|
233
|
-
await this.write();
|
|
234
|
-
}
|
|
235
|
-
// Reads content from file to memory.
|
|
236
|
-
async read() {
|
|
237
|
-
this.content = await readJsonFile(this.fileName);
|
|
238
|
-
}
|
|
239
|
-
// Renames resource.
|
|
240
|
-
async rename(newName) {
|
|
241
|
-
this.cache.delete(resourceNameToString(this.resourceName));
|
|
242
|
-
if (this.moduleResource) {
|
|
243
|
-
throw new Error(`Cannot rename module resources`);
|
|
244
|
-
}
|
|
245
|
-
if (!pathExists(this.fileName)) {
|
|
246
|
-
throw new Error(`Resource '${this.resourceName.identifier}' does not exist`);
|
|
247
|
-
}
|
|
248
|
-
if (newName.prefix !== this.project.projectPrefix) {
|
|
249
|
-
throw new Error('Can only rename project resources');
|
|
250
|
-
}
|
|
251
|
-
if (newName.type !== this.resourceName.type) {
|
|
252
|
-
throw new Error('Cannot change resource type');
|
|
253
|
-
}
|
|
254
|
-
await Validate.getInstance().validResourceName(this.resourceType(), resourceNameToString(newName), await this.project.projectPrefixes());
|
|
255
|
-
const newFilename = join(this.project.paths.resourcePath(newName.type), newName.identifier + '.json');
|
|
256
|
-
await rename(this.fileName, newFilename);
|
|
257
|
-
this.fileName = newFilename;
|
|
258
|
-
this.content.name = resourceNameToString(newName);
|
|
259
|
-
this.resourceName = newName;
|
|
260
|
-
this.toCache();
|
|
261
|
-
}
|
|
262
|
-
// Show resource data as JSON.
|
|
263
|
-
async show() {
|
|
264
|
-
if (!pathExists(this.fileName)) {
|
|
265
|
-
const resourceType = `${this.type[0].toUpperCase()}${this.type.slice(1, this.type.length - 1)}`;
|
|
266
|
-
const name = resourceNameToString(this.resourceName);
|
|
267
|
-
throw new Error(`${resourceType} '${name}' does not exist in the project`);
|
|
268
|
-
}
|
|
269
|
-
return this.content;
|
|
270
|
-
}
|
|
271
|
-
// Update resource; the base class makes some checks only.
|
|
272
|
-
async update(key,
|
|
273
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
274
|
-
_op) {
|
|
275
|
-
if (!this.data) {
|
|
276
|
-
const name = resourceNameToString(this.resourceName);
|
|
277
|
-
throw new Error(`Resource '${name}' does not exist in the project`);
|
|
278
|
-
}
|
|
279
|
-
if (this.moduleResource) {
|
|
280
|
-
throw new Error(`Cannot update module resources`);
|
|
281
|
-
}
|
|
282
|
-
if (key === '' || key === undefined) {
|
|
283
|
-
throw new Error(`Cannot update empty key`);
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
42
|
// Updates resource key to a new prefix
|
|
287
43
|
updatePrefixInResourceName(name, prefixes) {
|
|
288
44
|
const { identifier, prefix, type } = resourceName(name);
|
|
@@ -293,48 +49,13 @@ export class FileResource extends ResourceObject {
|
|
|
293
49
|
? `${this.project.configuration.cardKeyPrefix}/${type}/${identifier}`
|
|
294
50
|
: name;
|
|
295
51
|
}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
: await this.project.cards(undefined, {
|
|
304
|
-
content: true,
|
|
305
|
-
metadata: true,
|
|
306
|
-
});
|
|
307
|
-
return cardArray
|
|
308
|
-
.filter((card) => card.content?.includes(resourceNameToString(this.resourceName)))
|
|
309
|
-
.map((card) => card.key);
|
|
310
|
-
}
|
|
311
|
-
// Write the content from memory to disk.
|
|
312
|
-
async write() {
|
|
313
|
-
if (this.moduleResource) {
|
|
314
|
-
throw new Error(`Cannot change module resources`);
|
|
315
|
-
}
|
|
316
|
-
// Create folder for resources and add correct .schema file.
|
|
317
|
-
await mkdir(this.resourceFolder, { recursive: true });
|
|
318
|
-
await writeJsonFile(join(this.resourceFolder, '.schema'), this.contentSchema, {
|
|
319
|
-
flag: 'wx',
|
|
320
|
-
});
|
|
321
|
-
// Check if "name" has changed. Changing "name" means renaming the file.
|
|
322
|
-
const nameInContent = resourceName(this.content.name).identifier + '.json';
|
|
323
|
-
const currentFileName = basename(this.fileName);
|
|
324
|
-
if (nameInContent !== currentFileName) {
|
|
325
|
-
const newFileName = join(this.resourceFolder, nameInContent);
|
|
326
|
-
await rename(this.fileName, newFileName);
|
|
327
|
-
this.fileName = newFileName;
|
|
328
|
-
}
|
|
329
|
-
await writeJsonFile(this.fileName, this.content);
|
|
330
|
-
this.toCache();
|
|
331
|
-
}
|
|
332
|
-
// Validate that current memory-based 'content' is valid.
|
|
333
|
-
async validate(content) {
|
|
334
|
-
const invalidJson = Validate.getInstance().validateJson(content ? content : this.content, this.contentSchemaId);
|
|
335
|
-
if (invalidJson.length) {
|
|
336
|
-
throw new Error(`Invalid content JSON: ${invalidJson}`);
|
|
337
|
-
}
|
|
52
|
+
/**
|
|
53
|
+
* Returns the resource metadata content.
|
|
54
|
+
* @returns metadata content
|
|
55
|
+
*/
|
|
56
|
+
show() {
|
|
57
|
+
this.assertResourceExists();
|
|
58
|
+
return this.content;
|
|
338
59
|
}
|
|
339
60
|
}
|
|
340
61
|
//# sourceMappingURL=file-resource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-resource.js","sourceRoot":"","sources":["../../src/resources/file-resource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-resource.js","sourceRoot":"","sources":["../../src/resources/file-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWzD;;GAEG;AACH,MAAM,OAAgB,YAEpB,SAAQ,cAAwB;IAChC,YAAY,OAAgB,EAAE,IAAkB,EAAE,IAAwB;QACxE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,oDAAoD;IAC1C,KAAK,CAAC,YAAY,CAAC,YAAoB;QAC/C,SAAS,aAAa,CAAC,UAAkB,EAAE,YAAoB;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC;YACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,iCAAiC;QACjC,MAAM,YAAY,GAAG,aAAa,CAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EACrD,YAAY,CACb,CAAC;QACF,2DAA2D;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC5E,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,EAAE,CAAC;YACjD,OAAO,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,4BAA4B;QAC5B,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC,MAAM,CACnD,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,EAAE,CACH,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,uCAAuC;IAC7B,0BAA0B,CAAC,IAAY,EAAE,QAAkB;QACnE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,IAAI,UAAU,EAAE;YACrE,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED;;;OAGG;IACI,IAAI;QACT,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -11,104 +11,82 @@
|
|
|
11
11
|
You should have received a copy of the GNU Affero General Public
|
|
12
12
|
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
13
13
|
*/
|
|
14
|
-
import
|
|
15
|
-
import type {
|
|
14
|
+
import { ResourceObject } from './resource-object.js';
|
|
15
|
+
import type { UpdateKey } from '../interfaces/resource-interfaces.js';
|
|
16
|
+
import type { FolderResourceContent } from '../interfaces/folder-content-interfaces.js';
|
|
17
|
+
import type { Operation } from './resource-object.js';
|
|
18
|
+
import type { Project } from '../containers/project.js';
|
|
16
19
|
import type { ResourceFolderType } from '../interfaces/project-interfaces.js';
|
|
17
|
-
import type {
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
+
import type { ResourceBaseMetadata } from '../interfaces/resource-interfaces.js';
|
|
21
|
+
import type { ResourceName } from '../utils/resource-utils.js';
|
|
22
|
+
import type { ShowReturnType } from './resource-object.js';
|
|
20
23
|
/**
|
|
21
|
-
* Folder type resource class.
|
|
24
|
+
* Folder type resource class.
|
|
25
|
+
* These are resources that have their own folders for content.
|
|
22
26
|
*/
|
|
23
|
-
export declare class FolderResource extends
|
|
27
|
+
export declare abstract class FolderResource<T extends ResourceBaseMetadata, U extends FolderResourceContent> extends ResourceObject<T, U> {
|
|
24
28
|
protected internalFolder: string;
|
|
25
|
-
private
|
|
29
|
+
private resourceContent;
|
|
30
|
+
/**
|
|
31
|
+
* Constructs a FolderResource object.
|
|
32
|
+
* @param project Project in which this resource exists.
|
|
33
|
+
* @param name Name for the resource.
|
|
34
|
+
* @param type Type for this resource.
|
|
35
|
+
*/
|
|
26
36
|
constructor(project: Project, name: ResourceName, type: ResourceFolderType);
|
|
27
|
-
private clearContentCache;
|
|
28
|
-
private isContentUpdateKey;
|
|
29
37
|
/**
|
|
30
38
|
* Creates a new folder type object. Base class writes the object to disk automatically.
|
|
31
39
|
* @param newContent Content for the type.
|
|
32
40
|
*/
|
|
33
|
-
protected create(newContent?:
|
|
34
|
-
/**
|
|
35
|
-
* Gets content of all files to properties.
|
|
36
|
-
* @returns object with property names as keys and file contents as values.
|
|
37
|
-
*/
|
|
38
|
-
contentData(): Promise<Record<string, string | Schema>>;
|
|
39
|
-
/**
|
|
40
|
-
* Returns content data.
|
|
41
|
-
*/
|
|
42
|
-
get data(): import("../interfaces/resource-interfaces.js").ResourceBaseMetadata | undefined;
|
|
43
|
-
/**
|
|
44
|
-
* Deletes file(s) from disk and clears out the memory resident object.
|
|
45
|
-
*/
|
|
46
|
-
protected delete(): Promise<void>;
|
|
47
|
-
protected get getType(): string;
|
|
48
|
-
protected get logger(): import("pino").Logger;
|
|
41
|
+
protected create(newContent?: T): Promise<void>;
|
|
49
42
|
/**
|
|
50
43
|
* Initialize the resource item.
|
|
51
44
|
*/
|
|
52
45
|
protected initialize(): void;
|
|
53
46
|
/**
|
|
54
|
-
*
|
|
55
|
-
* @param
|
|
56
|
-
*/
|
|
57
|
-
protected rename(newName: ResourceName): Promise<void>;
|
|
58
|
-
/**
|
|
59
|
-
* Shows metadata of the resource.
|
|
60
|
-
* @returns resource type's metadata.
|
|
61
|
-
*/
|
|
62
|
-
protected show(): Promise<ResourceContent>;
|
|
63
|
-
/**
|
|
64
|
-
* TODO: to be made protected - no direct access to files
|
|
65
|
-
* Shows the content of a file in the resource.
|
|
66
|
-
* @param fileName Name of the file to show.
|
|
67
|
-
* @param json Content is JSON file.
|
|
68
|
-
* @returns the content of the file.
|
|
47
|
+
* For handling name changes.
|
|
48
|
+
* @param previousName The previous name before the change
|
|
69
49
|
*/
|
|
70
|
-
|
|
50
|
+
protected abstract onNameChange?(previousName: string): Promise<void>;
|
|
71
51
|
/**
|
|
72
|
-
*
|
|
73
|
-
* Shows all file names in the resource.
|
|
74
|
-
* @returns all file names in the resource.
|
|
52
|
+
* Set content files. Should not be called by others than resource cache.
|
|
75
53
|
*/
|
|
76
|
-
|
|
54
|
+
setContentFiles(contentFiles: Map<string, string>): void;
|
|
77
55
|
/**
|
|
78
|
-
*
|
|
79
|
-
* @param contentFiles Object with file names as keys and file contents as values.
|
|
56
|
+
* Load all content files from the internal folder and set them.
|
|
80
57
|
*/
|
|
81
|
-
protected
|
|
58
|
+
protected loadContentFiles(): Promise<void>;
|
|
82
59
|
/**
|
|
83
60
|
* Updates a file in the resource.
|
|
84
61
|
* @param fileName The name of the file to update.
|
|
85
62
|
* @param changedContent The new content for the file.
|
|
86
63
|
*/
|
|
87
|
-
|
|
64
|
+
updateFile(fileName: string, changedContent: string): Promise<void>;
|
|
88
65
|
/**
|
|
89
|
-
*
|
|
90
|
-
* @param key Key to modify
|
|
91
|
-
* @param op Operation to perform on 'key'
|
|
92
|
-
* @throws if key is unknown.
|
|
66
|
+
* Writes resource content to disk.
|
|
93
67
|
*/
|
|
94
|
-
protected
|
|
68
|
+
protected write(): Promise<void>;
|
|
95
69
|
/**
|
|
96
|
-
*
|
|
97
|
-
* @
|
|
70
|
+
* Gets content of all files to properties.
|
|
71
|
+
* @returns object with property names as keys and file contents as values.
|
|
98
72
|
*/
|
|
99
|
-
|
|
73
|
+
contentData(): U;
|
|
100
74
|
/**
|
|
101
|
-
*
|
|
102
|
-
* @param cards Optional. If defined, only these cards are checked.
|
|
103
|
-
* @returns an array of card keys, and/or resource names where this resource is used.
|
|
75
|
+
* Deletes file and content folder from disk and clears out the memory resident object.
|
|
104
76
|
*/
|
|
105
|
-
|
|
77
|
+
delete(): Promise<void>;
|
|
106
78
|
/**
|
|
107
|
-
*
|
|
79
|
+
* Shows metadata of the resource and content of the resource.
|
|
80
|
+
* @template T Resource type
|
|
81
|
+
* @template U Resource content
|
|
82
|
+
* @returns resource type's metadata and content.
|
|
108
83
|
*/
|
|
109
|
-
|
|
84
|
+
show(): ShowReturnType<T, U>;
|
|
110
85
|
/**
|
|
111
|
-
*
|
|
86
|
+
* Updates resource.
|
|
87
|
+
* @param updateKey Key to modify
|
|
88
|
+
* @param op Operation to perform on 'key'
|
|
89
|
+
* @throws if key is unknown.
|
|
112
90
|
*/
|
|
113
|
-
|
|
91
|
+
update<Type, K extends string>(updateKey: UpdateKey<K>, op: Operation<Type>): Promise<void>;
|
|
114
92
|
}
|