@cyberismo/data-handler 0.0.15 → 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 +7 -1
- package/dist/card-metadata-updater.js.map +1 -1
- package/dist/command-handler.d.ts +4 -0
- package/dist/command-handler.js +19 -3
- package/dist/command-handler.js.map +1 -1
- package/dist/command-manager.d.ts +24 -1
- package/dist/command-manager.js +27 -3
- package/dist/command-manager.js.map +1 -1
- package/dist/commands/create.d.ts +1 -1
- package/dist/commands/create.js +34 -36
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/export.d.ts +11 -2
- package/dist/commands/export.js +54 -41
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import.d.ts +9 -1
- package/dist/commands/import.js +15 -7
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/move.js +0 -1
- package/dist/commands/move.js.map +1 -1
- package/dist/commands/remove.d.ts +8 -1
- package/dist/commands/remove.js +8 -4
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/rename.d.ts +4 -9
- package/dist/commands/rename.js +32 -101
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/show.d.ts +16 -10
- package/dist/commands/show.js +71 -55
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/transition.d.ts +9 -2
- package/dist/commands/transition.js +25 -17
- package/dist/commands/transition.js.map +1 -1
- package/dist/commands/update.d.ts +16 -12
- package/dist/commands/update.js +19 -17
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.d.ts +17 -9
- package/dist/commands/validate.js +96 -35
- package/dist/commands/validate.js.map +1 -1
- package/dist/containers/project/calculation-engine.d.ts +7 -4
- package/dist/containers/project/calculation-engine.js +61 -66
- package/dist/containers/project/calculation-engine.js.map +1 -1
- 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 +38 -153
- package/dist/containers/project.js +129 -405
- package/dist/containers/project.js.map +1 -1
- package/dist/containers/template.d.ts +8 -2
- package/dist/containers/template.js +20 -15
- package/dist/containers/template.js.map +1 -1
- package/dist/interfaces/folder-content-interfaces.d.ts +5 -3
- package/dist/interfaces/folder-content-interfaces.js +3 -3
- package/dist/interfaces/folder-content-interfaces.js.map +1 -1
- package/dist/interfaces/project-interfaces.d.ts +2 -4
- package/dist/interfaces/project-interfaces.js.map +1 -1
- package/dist/interfaces/resource-interfaces.d.ts +14 -1
- package/dist/interfaces/resource-interfaces.js.map +1 -1
- package/dist/macros/graph/index.js +12 -26
- package/dist/macros/graph/index.js.map +1 -1
- 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/report/index.js +3 -6
- package/dist/macros/report/index.js.map +1 -1
- package/dist/module-manager.d.ts +16 -3
- package/dist/module-manager.js +51 -19
- 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 +4 -3
- package/dist/resources/calculation-resource.js +11 -5
- package/dist/resources/calculation-resource.js.map +1 -1
- package/dist/resources/card-type-resource.d.ts +6 -1
- package/dist/resources/card-type-resource.js +34 -23
- 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 +4 -1
- package/dist/resources/field-type-resource.js +22 -23
- package/dist/resources/field-type-resource.js.map +1 -1
- package/dist/resources/file-resource.d.ts +5 -9
- package/dist/resources/file-resource.js +6 -11
- package/dist/resources/file-resource.js.map +1 -1
- package/dist/resources/folder-resource.d.ts +29 -32
- package/dist/resources/folder-resource.js +59 -78
- package/dist/resources/folder-resource.js.map +1 -1
- package/dist/resources/graph-model-resource.d.ts +4 -1
- package/dist/resources/graph-model-resource.js +11 -4
- package/dist/resources/graph-model-resource.js.map +1 -1
- package/dist/resources/graph-view-resource.d.ts +5 -2
- package/dist/resources/graph-view-resource.js +7 -3
- package/dist/resources/graph-view-resource.js.map +1 -1
- package/dist/resources/link-type-resource.d.ts +5 -2
- package/dist/resources/link-type-resource.js +5 -2
- package/dist/resources/link-type-resource.js.map +1 -1
- package/dist/resources/report-resource.d.ts +6 -7
- package/dist/resources/report-resource.js +14 -23
- package/dist/resources/report-resource.js.map +1 -1
- package/dist/resources/resource-object.d.ts +93 -8
- package/dist/resources/resource-object.js +162 -110
- package/dist/resources/resource-object.js.map +1 -1
- package/dist/resources/template-resource.d.ts +7 -3
- package/dist/resources/template-resource.js +10 -3
- package/dist/resources/template-resource.js.map +1 -1
- package/dist/resources/workflow-resource.d.ts +5 -2
- package/dist/resources/workflow-resource.js +18 -22
- package/dist/resources/workflow-resource.js.map +1 -1
- package/dist/utils/card-utils.d.ts +2 -2
- package/dist/utils/card-utils.js +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 +3 -4
- package/dist/utils/clingo-facts.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 +8 -8
- package/src/card-metadata-updater.ts +6 -2
- package/src/command-handler.ts +24 -5
- package/src/command-manager.ts +29 -17
- package/src/commands/create.ts +43 -78
- package/src/commands/export.ts +63 -52
- package/src/commands/import.ts +24 -14
- package/src/commands/move.ts +0 -1
- package/src/commands/remove.ts +11 -7
- package/src/commands/rename.ts +43 -149
- package/src/commands/show.ts +113 -78
- package/src/commands/transition.ts +26 -28
- package/src/commands/update.ts +25 -22
- package/src/commands/validate.ts +108 -67
- package/src/containers/project/calculation-engine.ts +61 -93
- 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 +178 -522
- package/src/containers/template.ts +24 -19
- package/src/interfaces/folder-content-interfaces.ts +7 -6
- package/src/interfaces/project-interfaces.ts +7 -6
- package/src/interfaces/resource-interfaces.ts +18 -3
- package/src/macros/graph/index.ts +26 -47
- package/src/macros/index.ts +2 -2
- package/src/macros/report/index.ts +3 -9
- package/src/module-manager.ts +74 -17
- package/src/project-settings.ts +83 -14
- package/src/resources/calculation-resource.ts +18 -18
- package/src/resources/card-type-resource.ts +50 -50
- package/src/resources/create-defaults.ts +3 -2
- package/src/resources/field-type-resource.ts +41 -55
- package/src/resources/file-resource.ts +10 -36
- package/src/resources/folder-resource.ts +69 -120
- package/src/resources/graph-model-resource.ts +20 -22
- package/src/resources/graph-view-resource.ts +15 -17
- package/src/resources/link-type-resource.ts +10 -13
- package/src/resources/report-resource.ts +21 -43
- package/src/resources/resource-object.ts +194 -152
- package/src/resources/template-resource.ts +17 -16
- package/src/resources/workflow-resource.ts +25 -44
- package/src/utils/card-utils.ts +2 -2
- package/src/utils/clingo-fact-builder.ts +28 -16
- package/src/utils/clingo-facts.ts +3 -4
- package/src/utils/resource-utils.ts +2 -1
- package/dist/containers/project/resource-collector.d.ts +0 -110
- package/dist/containers/project/resource-collector.js +0 -344
- package/dist/containers/project/resource-collector.js.map +0 -1
- package/src/containers/project/resource-collector.ts +0 -404
|
@@ -12,14 +12,13 @@
|
|
|
12
12
|
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
13
13
|
// node
|
|
14
14
|
import { mkdir, readFile, rename, writeFile } from 'node:fs/promises';
|
|
15
|
-
import { basename, join
|
|
16
|
-
import { hasCode } from '../utils/error-utils.js';
|
|
15
|
+
import { basename, join } from 'node:path';
|
|
17
16
|
import { ArrayHandler } from './array-handler.js';
|
|
18
|
-
import { ResourcesFrom } from '../containers/project/resource-collector.js';
|
|
19
|
-
import { resourceName, resourceNameToPath, resourceNameToString, } from '../utils/resource-utils.js';
|
|
20
|
-
import { getChildLogger } from '../utils/log-utils.js';
|
|
21
17
|
import { deleteFile, pathExists } from '../utils/file-utils.js';
|
|
18
|
+
import { getChildLogger } from '../utils/log-utils.js';
|
|
22
19
|
import { readJsonFile, readJsonFileSync, writeJsonFile, } from '../utils/json.js';
|
|
20
|
+
import { resourceName, resourceNameToPath, resourceNameToString, } from '../utils/resource-utils.js';
|
|
21
|
+
import { ResourcesFrom } from '../containers/project.js';
|
|
23
22
|
/**
|
|
24
23
|
* Abstract class for resources.
|
|
25
24
|
*/
|
|
@@ -28,8 +27,6 @@ export class AbstractResource {
|
|
|
28
27
|
export class ResourceObject extends AbstractResource {
|
|
29
28
|
project;
|
|
30
29
|
resourceName;
|
|
31
|
-
// TODO: Remove when INTDEV-1048 is implemented, since caching is done at object level
|
|
32
|
-
cache;
|
|
33
30
|
static validateInstancePromise;
|
|
34
31
|
content;
|
|
35
32
|
moduleResource;
|
|
@@ -42,17 +39,29 @@ export class ResourceObject extends AbstractResource {
|
|
|
42
39
|
* Path to the resource metadata file (the .json file).
|
|
43
40
|
*/
|
|
44
41
|
fileName = '';
|
|
42
|
+
/**
|
|
43
|
+
* Constructs a ResourceObject instance
|
|
44
|
+
* @param project Project where this resource is
|
|
45
|
+
* @param resourceName Name for the resource
|
|
46
|
+
* @param type Type of resource
|
|
47
|
+
*/
|
|
45
48
|
constructor(project, resourceName, type) {
|
|
46
49
|
super();
|
|
47
50
|
this.project = project;
|
|
48
51
|
this.resourceName = resourceName;
|
|
49
52
|
this.moduleResource =
|
|
50
53
|
this.resourceName.prefix !== this.project.projectPrefix;
|
|
51
|
-
this.cache = this.project.resourceCache;
|
|
52
54
|
this.type = type;
|
|
53
55
|
this.logger = this.getLogger(this.getType);
|
|
54
56
|
this.content = { name: '' }; // not found if name is empty
|
|
55
57
|
}
|
|
58
|
+
// Check if resource already exists. First checks the cache, then filesystem.
|
|
59
|
+
exists() {
|
|
60
|
+
const name = resourceNameToString(this.resourceName);
|
|
61
|
+
const existsInCache = this.project.resources.exists(name);
|
|
62
|
+
return existsInCache || pathExists(this.fileName);
|
|
63
|
+
}
|
|
64
|
+
// Gets Validate command instance.
|
|
56
65
|
static async getValidate() {
|
|
57
66
|
// a bit hacky solution to avoid circular dependencies
|
|
58
67
|
if (!this.validateInstancePromise) {
|
|
@@ -60,58 +69,53 @@ export class ResourceObject extends AbstractResource {
|
|
|
60
69
|
}
|
|
61
70
|
return this.validateInstancePromise;
|
|
62
71
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
72
|
+
// Gets handlebar files.
|
|
73
|
+
async reportHandlerBarFiles(from = ResourcesFrom.all) {
|
|
74
|
+
const reports = this.project.resources.reports(from);
|
|
75
|
+
const handleBarFiles = [];
|
|
76
|
+
for (const report of reports) {
|
|
77
|
+
handleBarFiles.push(...(await report.handleBarFiles()));
|
|
78
|
+
}
|
|
79
|
+
return handleBarFiles;
|
|
68
80
|
}
|
|
69
81
|
// Type of resource.
|
|
70
82
|
resourceType() {
|
|
71
83
|
return this.type;
|
|
72
84
|
}
|
|
73
|
-
toCache() {
|
|
74
|
-
this.cache.set(resourceNameToString(this.resourceName), this.content);
|
|
75
|
-
}
|
|
76
85
|
/**
|
|
77
|
-
* Checks if resource exists
|
|
86
|
+
* Checks if resource exists.
|
|
87
|
+
* This should only throw, if someone creates resources directly; ie. not through the cache
|
|
78
88
|
* @throws if resource does not exist
|
|
79
89
|
*/
|
|
80
90
|
assertResourceExists() {
|
|
81
|
-
if (!
|
|
91
|
+
if (!this.exists()) {
|
|
82
92
|
const resourceType = `${this.type[0].toUpperCase()}${this.type.slice(1, this.type.length - 1)}`;
|
|
83
93
|
const name = resourceNameToString(this.resourceName);
|
|
84
94
|
throw new Error(`${resourceType} '${name}' does not exist in the project`);
|
|
85
95
|
}
|
|
86
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Calculate; empty implementation.
|
|
99
|
+
*/
|
|
87
100
|
async calculate() { }
|
|
88
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Calculations that use this resource.
|
|
103
|
+
* @throws if accessing calculations files failed
|
|
104
|
+
*/
|
|
89
105
|
async calculations() {
|
|
90
106
|
const references = [];
|
|
91
107
|
const resourceName = resourceNameToString(this.resourceName);
|
|
92
|
-
for (const calculation of
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const filename = join(calculation.path, basename(fileNameWithExtension));
|
|
97
|
-
try {
|
|
98
|
-
const content = await readFile(filename, 'utf-8');
|
|
99
|
-
if (content.includes(resourceName)) {
|
|
100
|
-
references.push(calculation.name);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
catch (error) {
|
|
104
|
-
// Skip files that don't exist (they may have been renamed or deleted)
|
|
105
|
-
if (hasCode(error) && error.code === 'ENOENT') {
|
|
106
|
-
this.logger.warn(`Skipping non-existent file: ${filename}`);
|
|
107
|
-
continue;
|
|
108
|
-
}
|
|
109
|
-
throw new Error(`Failed to process file ${filename}: ${error.message}`);
|
|
108
|
+
for (const calculation of this.project.resources.calculations()) {
|
|
109
|
+
const content = calculation.contentData();
|
|
110
|
+
if (content.calculation && content.calculation.includes(resourceName)) {
|
|
111
|
+
references.push(calculation.data.name);
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
114
|
return references;
|
|
113
115
|
}
|
|
114
|
-
|
|
116
|
+
/**
|
|
117
|
+
* Cards from project.
|
|
118
|
+
*/
|
|
115
119
|
cards() {
|
|
116
120
|
return [
|
|
117
121
|
...this.project.cards(undefined),
|
|
@@ -131,17 +135,23 @@ export class ResourceObject extends AbstractResource {
|
|
|
131
135
|
},
|
|
132
136
|
];
|
|
133
137
|
}
|
|
134
|
-
|
|
138
|
+
/**
|
|
139
|
+
* Creates resource.
|
|
140
|
+
* @param newContent Content for resource.
|
|
141
|
+
* @throws when resource already exists in the project.
|
|
142
|
+
*/
|
|
135
143
|
async create(newContent) {
|
|
136
|
-
|
|
144
|
+
this.validateResourceIdentifier();
|
|
145
|
+
if (this.exists()) {
|
|
137
146
|
throw new Error(`Resource '${this.resourceName.identifier}' already exists in the project`);
|
|
138
147
|
}
|
|
139
148
|
if (this.resourceFolder === '') {
|
|
140
149
|
this.resourceName = resourceName(`${this.project.projectPrefix}/${this.type}/${this.resourceName.identifier}`);
|
|
141
150
|
this.resourceFolder = this.project.paths.resourcePath(this.resourceName.type);
|
|
151
|
+
this.fileName = join(this.resourceFolder, this.resourceName.identifier + '.json');
|
|
142
152
|
}
|
|
143
153
|
const validator = await ResourceObject.getValidate();
|
|
144
|
-
const validName = validator.validResourceName(this.resourceType(), resourceNameToString(this.resourceName),
|
|
154
|
+
const validName = validator.validResourceName(this.resourceType(), resourceNameToString(this.resourceName), this.project.projectPrefixes());
|
|
145
155
|
let validContent = {};
|
|
146
156
|
if (newContent) {
|
|
147
157
|
validContent = newContent;
|
|
@@ -153,14 +163,22 @@ export class ResourceObject extends AbstractResource {
|
|
|
153
163
|
}
|
|
154
164
|
this.content = validContent;
|
|
155
165
|
await this.write();
|
|
156
|
-
|
|
157
|
-
this.project.
|
|
166
|
+
const resourceString = resourceNameToString(this.resourceName);
|
|
167
|
+
this.project.resources.add(resourceString, this);
|
|
158
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Gets a logger instance.
|
|
171
|
+
* @param loggerName
|
|
172
|
+
* @returns logger instance
|
|
173
|
+
*/
|
|
159
174
|
getLogger(loggerName) {
|
|
160
175
|
return getChildLogger({
|
|
161
176
|
module: loggerName,
|
|
162
177
|
});
|
|
163
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Returns type of this resource.
|
|
181
|
+
*/
|
|
164
182
|
get getType() {
|
|
165
183
|
return this.type;
|
|
166
184
|
}
|
|
@@ -170,6 +188,7 @@ export class ResourceObject extends AbstractResource {
|
|
|
170
188
|
* @param arrayName Name of the array, for error messages.
|
|
171
189
|
* @param array Array to be updated.
|
|
172
190
|
* @returns Changed array after the operation.
|
|
191
|
+
* @throws when operation cannot be done.
|
|
173
192
|
*/
|
|
174
193
|
handleArray(operation, arrayName, array) {
|
|
175
194
|
const handler = new ArrayHandler();
|
|
@@ -188,6 +207,7 @@ export class ResourceObject extends AbstractResource {
|
|
|
188
207
|
* Updates scalar value. The only accepted operation is 'change'
|
|
189
208
|
* @param operation Operation to perform on scalar.
|
|
190
209
|
* @returns What the scalar should be changed to.
|
|
210
|
+
* @throws when operation cannot be done
|
|
191
211
|
*/
|
|
192
212
|
handleScalar(operation) {
|
|
193
213
|
if (operation.name === 'add' ||
|
|
@@ -197,7 +217,9 @@ export class ResourceObject extends AbstractResource {
|
|
|
197
217
|
}
|
|
198
218
|
return operation.to;
|
|
199
219
|
}
|
|
200
|
-
|
|
220
|
+
/**
|
|
221
|
+
* Initialize the resource.
|
|
222
|
+
*/
|
|
201
223
|
initialize() {
|
|
202
224
|
if (this.resourceName.type === '') {
|
|
203
225
|
this.resourceName.type = this.type;
|
|
@@ -213,22 +235,23 @@ export class ResourceObject extends AbstractResource {
|
|
|
213
235
|
: this.project.paths.resourcePath(this.type);
|
|
214
236
|
this.fileName = resourceNameToPath(this.project, this.resourceName);
|
|
215
237
|
}
|
|
216
|
-
//
|
|
217
|
-
if (this.
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
this.toCache();
|
|
225
|
-
}
|
|
226
|
-
catch {
|
|
227
|
-
// do nothing, it is possible that file has not been created yet.
|
|
228
|
-
this.logger.info(`Initializing resource '${resourceNameToString(this.resourceName)}' failed: failed to read file '${this.fileName}'`);
|
|
238
|
+
// Only load content from disk if resource exists in the cache registry
|
|
239
|
+
if (this.project.resources.exists(resourceNameToString(this.resourceName))) {
|
|
240
|
+
try {
|
|
241
|
+
this.content = readJsonFileSync(this.fileName);
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
this.logger.debug(`Initializing resource '${resourceNameToString(this.resourceName)}' failed: failed to read file '${this.fileName}'`);
|
|
245
|
+
}
|
|
229
246
|
}
|
|
230
247
|
}
|
|
231
|
-
|
|
248
|
+
/**
|
|
249
|
+
* Called after inherited class has finished 'update' operation.
|
|
250
|
+
* @param content New content for resource
|
|
251
|
+
* @param updateKey Which property to change
|
|
252
|
+
* @param op What kind of operation is performed to updateKey
|
|
253
|
+
* @throws if validation fails after the update
|
|
254
|
+
*/
|
|
232
255
|
async postUpdate(content, updateKey, op) {
|
|
233
256
|
function toValue(op) {
|
|
234
257
|
if (op.name === 'rank')
|
|
@@ -258,29 +281,24 @@ export class ResourceObject extends AbstractResource {
|
|
|
258
281
|
this.content = content;
|
|
259
282
|
await this.write();
|
|
260
283
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
if (!content) {
|
|
265
|
-
throw new Error(`Resource '${resourceNameToString(this.resourceName)}' does not exist`);
|
|
266
|
-
}
|
|
267
|
-
if (this.moduleResource) {
|
|
268
|
-
throw new Error(`Cannot update module resources`);
|
|
269
|
-
}
|
|
270
|
-
if (key.key === '' || key === undefined) {
|
|
271
|
-
throw new Error(`Cannot update empty key`);
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
// Reads content from file to memory.
|
|
284
|
+
/**
|
|
285
|
+
* Reads content from file to memory.
|
|
286
|
+
*/
|
|
275
287
|
async read() {
|
|
276
288
|
this.content = await readJsonFile(this.fileName);
|
|
277
289
|
}
|
|
278
|
-
|
|
290
|
+
/**
|
|
291
|
+
* Renames resource.
|
|
292
|
+
* @param newName New name for the resource.
|
|
293
|
+
* @throws if trying to rename module resource, or
|
|
294
|
+
* if resource does not exist,
|
|
295
|
+
* if trying to rename so that type changes
|
|
296
|
+
*/
|
|
279
297
|
async rename(newName) {
|
|
280
298
|
if (this.moduleResource) {
|
|
281
299
|
throw new Error(`Cannot rename module resources`);
|
|
282
300
|
}
|
|
283
|
-
if (!
|
|
301
|
+
if (!this.exists()) {
|
|
284
302
|
throw new Error(`Resource '${this.resourceName.identifier}' does not exist`);
|
|
285
303
|
}
|
|
286
304
|
if (newName.prefix !== this.project.projectPrefix) {
|
|
@@ -290,48 +308,64 @@ export class ResourceObject extends AbstractResource {
|
|
|
290
308
|
throw new Error('Cannot change resource type');
|
|
291
309
|
}
|
|
292
310
|
const validator = await ResourceObject.getValidate();
|
|
293
|
-
validator.validResourceName(this.resourceType(), resourceNameToString(newName),
|
|
311
|
+
validator.validResourceName(this.resourceType(), resourceNameToString(newName), this.project.projectPrefixes());
|
|
294
312
|
const newFilename = join(this.project.paths.resourcePath(newName.type), newName.identifier + '.json');
|
|
313
|
+
const oldName = resourceNameToString(this.resourceName);
|
|
295
314
|
await rename(this.fileName, newFilename);
|
|
296
|
-
this.cache.delete(resourceNameToString(this.resourceName));
|
|
297
315
|
this.fileName = newFilename;
|
|
298
316
|
this.content.name = resourceNameToString(newName);
|
|
299
317
|
this.resourceName = newName;
|
|
300
|
-
this.
|
|
318
|
+
this.project.resources.rename(oldName, this.content.name);
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Update resource; the base class makes some checks only.
|
|
322
|
+
* @template type Resource type
|
|
323
|
+
* @template K Resource key
|
|
324
|
+
* @throws if resource does not exist, or
|
|
325
|
+
* if trying to update module content, or
|
|
326
|
+
* if key is empty
|
|
327
|
+
*/
|
|
328
|
+
async update(key, _op) {
|
|
329
|
+
const content = this.data;
|
|
330
|
+
if (!content) {
|
|
331
|
+
throw new Error(`Resource '${resourceNameToString(this.resourceName)}' does not exist`);
|
|
332
|
+
}
|
|
333
|
+
if (this.moduleResource) {
|
|
334
|
+
throw new Error(`Cannot update module resources`);
|
|
335
|
+
}
|
|
336
|
+
if (key.key === '' || key === undefined) {
|
|
337
|
+
throw new Error(`Cannot update empty key`);
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Validates resource identifier to prevent filesystem operations with invalid names
|
|
342
|
+
* todo: To Validate?
|
|
343
|
+
*/
|
|
344
|
+
validateResourceIdentifier() {
|
|
345
|
+
if (!this.moduleResource && this.resourceName.identifier) {
|
|
346
|
+
const identifier = this.resourceName.identifier;
|
|
347
|
+
if (!/^[a-zA-Z0-9._-]+$/.test(identifier)) {
|
|
348
|
+
throw new Error(`Resource identifier must follow naming rules. Identifier '${identifier}' is invalid`);
|
|
349
|
+
}
|
|
350
|
+
}
|
|
301
351
|
}
|
|
302
352
|
/**
|
|
303
353
|
* Update calculation files.
|
|
304
354
|
* @param from Resource name to update
|
|
305
355
|
* @param to New name for resource
|
|
356
|
+
* @throws if 'from' or 'to' is empty string, or
|
|
357
|
+
* if there was error accessing calculation files.
|
|
306
358
|
*/
|
|
307
359
|
async updateCalculations(from, to) {
|
|
308
360
|
if (!from.trim() || !to.trim()) {
|
|
309
361
|
throw new Error('updateCalculations: "from" and "to" parameters must not be empty');
|
|
310
362
|
}
|
|
311
|
-
const calculations =
|
|
363
|
+
const calculations = this.project.resources.calculations(ResourcesFrom.localOnly);
|
|
312
364
|
await Promise.all(calculations.map(async (calculation) => {
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
const fileNameWithExtension = base.endsWith('.lp')
|
|
318
|
-
? base
|
|
319
|
-
: base + '.lp';
|
|
320
|
-
const filename = join(calculation.path, fileNameWithExtension);
|
|
321
|
-
try {
|
|
322
|
-
const content = await readFile(filename, 'utf-8');
|
|
323
|
-
const updatedContent = content.replaceAll(from, to);
|
|
324
|
-
await writeFile(filename, updatedContent);
|
|
325
|
-
}
|
|
326
|
-
catch (error) {
|
|
327
|
-
if (hasCode(error) && error.code === 'ENOENT') {
|
|
328
|
-
// Skip files that don't exist (they may have been renamed or deleted)
|
|
329
|
-
this.getLogger(this.getType).warn(`Skipping non-existent file: ${filename}`);
|
|
330
|
-
return;
|
|
331
|
-
}
|
|
332
|
-
if (error instanceof Error) {
|
|
333
|
-
throw new Error(`Failed to process file while updating calculation ${filename}: ${error.message}`);
|
|
334
|
-
}
|
|
365
|
+
const content = calculation.contentData();
|
|
366
|
+
if (content.calculation) {
|
|
367
|
+
const updatedContent = content.calculation.replaceAll(from, to);
|
|
368
|
+
await calculation.updateFile('calculation.lp', updatedContent);
|
|
335
369
|
}
|
|
336
370
|
}));
|
|
337
371
|
}
|
|
@@ -340,13 +374,14 @@ export class ResourceObject extends AbstractResource {
|
|
|
340
374
|
* @param from Resource name to update
|
|
341
375
|
* @param to New name for resource
|
|
342
376
|
* @param handleBarFiles Optional. List of handlebar files. If omitted, affects all handlebar files in the project.
|
|
377
|
+
* @throws if 'from' or 'to' is empty string
|
|
343
378
|
*/
|
|
344
379
|
async updateHandleBars(from, to, handleBarFiles) {
|
|
345
380
|
if (!from.trim() || !to.trim()) {
|
|
346
381
|
throw new Error('updateHandleBars: "from" and "to" parameters must not be empty');
|
|
347
382
|
}
|
|
348
383
|
if (!handleBarFiles) {
|
|
349
|
-
handleBarFiles = await this.
|
|
384
|
+
handleBarFiles = await this.reportHandlerBarFiles(ResourcesFrom.localOnly);
|
|
350
385
|
}
|
|
351
386
|
// Process all files in parallel.
|
|
352
387
|
await Promise.all(handleBarFiles.map(async (handleBarFile) => {
|
|
@@ -355,10 +390,14 @@ export class ResourceObject extends AbstractResource {
|
|
|
355
390
|
await writeFile(handleBarFile, Buffer.from(updatedContent));
|
|
356
391
|
}));
|
|
357
392
|
}
|
|
358
|
-
|
|
359
|
-
|
|
393
|
+
/**
|
|
394
|
+
* Check if there are references to the resource in the card content.
|
|
395
|
+
* @note that this needs to be async, since inherited classes need to async operations
|
|
396
|
+
* @param cards cards to check
|
|
397
|
+
* @throws if resource does not exist
|
|
398
|
+
*/
|
|
360
399
|
async usage(cards) {
|
|
361
|
-
if (!
|
|
400
|
+
if (!this.exists()) {
|
|
362
401
|
throw new Error(`Resource '${this.resourceName.identifier}' does not exist in the project`);
|
|
363
402
|
}
|
|
364
403
|
const cardArray = cards?.length ? cards : this.project.cards(undefined);
|
|
@@ -366,12 +405,20 @@ export class ResourceObject extends AbstractResource {
|
|
|
366
405
|
.filter((card) => card.content?.includes(resourceNameToString(this.resourceName)))
|
|
367
406
|
.map((card) => card.key);
|
|
368
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* Checks if resource name is valid.
|
|
410
|
+
* @param newName New name for resource.
|
|
411
|
+
* @returns valid name
|
|
412
|
+
*/
|
|
369
413
|
async validName(newName) {
|
|
370
414
|
const validator = await ResourceObject.getValidate();
|
|
371
|
-
const validName = validator.validResourceName(this.resourceType(), resourceNameToString(newName),
|
|
415
|
+
const validName = validator.validResourceName(this.resourceType(), resourceNameToString(newName), this.project.projectPrefixes());
|
|
372
416
|
return validName;
|
|
373
417
|
}
|
|
374
|
-
|
|
418
|
+
/**
|
|
419
|
+
* Write the content from memory to disk.
|
|
420
|
+
* @throws if trying to write a module resource.
|
|
421
|
+
*/
|
|
375
422
|
async write() {
|
|
376
423
|
if (this.moduleResource) {
|
|
377
424
|
throw new Error(`Cannot change module resources`);
|
|
@@ -384,13 +431,15 @@ export class ResourceObject extends AbstractResource {
|
|
|
384
431
|
// Check if "name" has changed. Changing "name" means renaming the file.
|
|
385
432
|
const nameInContent = resourceName(this.content.name).identifier + '.json';
|
|
386
433
|
const currentFileName = basename(this.fileName);
|
|
434
|
+
const resourceString = resourceNameToString(this.resourceName);
|
|
387
435
|
if (nameInContent !== currentFileName) {
|
|
388
436
|
const newFileName = join(this.resourceFolder, nameInContent);
|
|
389
437
|
await rename(this.fileName, newFileName);
|
|
390
438
|
this.fileName = newFileName;
|
|
439
|
+
this.resourceName = resourceName(this.content.name);
|
|
440
|
+
this.project.resources.rename(resourceString, this.content.name);
|
|
391
441
|
}
|
|
392
442
|
await writeJsonFile(this.fileName, this.content);
|
|
393
|
-
this.toCache();
|
|
394
443
|
}
|
|
395
444
|
/**
|
|
396
445
|
* Returns memory resident data as JSON.
|
|
@@ -402,7 +451,9 @@ export class ResourceObject extends AbstractResource {
|
|
|
402
451
|
}
|
|
403
452
|
/**
|
|
404
453
|
* Deletes the file and removes the resource from project.
|
|
405
|
-
* @throws if resource is a module resource or
|
|
454
|
+
* @throws if resource is a module resource, or
|
|
455
|
+
* if resource does not exist, or
|
|
456
|
+
* if resource is used by other resources.
|
|
406
457
|
*/
|
|
407
458
|
async delete() {
|
|
408
459
|
if (this.moduleResource) {
|
|
@@ -411,7 +462,7 @@ export class ResourceObject extends AbstractResource {
|
|
|
411
462
|
if (!this.fileName.endsWith('.json')) {
|
|
412
463
|
this.fileName += '.json';
|
|
413
464
|
}
|
|
414
|
-
if (!
|
|
465
|
+
if (!this.exists()) {
|
|
415
466
|
throw new Error(`Resource '${this.resourceName.identifier}' does not exist in the project`);
|
|
416
467
|
}
|
|
417
468
|
const usedIn = await this.usage();
|
|
@@ -419,12 +470,13 @@ export class ResourceObject extends AbstractResource {
|
|
|
419
470
|
throw new Error(`Cannot delete resource ${resourceNameToString(this.resourceName)}. It is used by: ${usedIn.join(', ')}`);
|
|
420
471
|
}
|
|
421
472
|
await deleteFile(this.fileName);
|
|
422
|
-
this.project.
|
|
473
|
+
this.project.resources.remove(resourceNameToString(this.resourceName));
|
|
423
474
|
this.fileName = '';
|
|
424
475
|
}
|
|
425
476
|
/**
|
|
426
477
|
* Validates the content of the resource.
|
|
427
478
|
* @param content Content to be validated.
|
|
479
|
+
* @throws if content is invalid.
|
|
428
480
|
*/
|
|
429
481
|
async validate(content) {
|
|
430
482
|
const validator = await ResourceObject.getValidate();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-object.js","sourceRoot":"","sources":["../../src/resources/resource-object.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"resource-object.js","sourceRoot":"","sources":["../../src/resources/resource-object.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,sDAAsD;AAEtD,OAAO;AACP,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GAErB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAwEzD;;GAEG;AACH,MAAM,OAAgB,gBAAgB;CAoBrC;AAID,MAAM,OAAgB,cAGpB,SAAQ,gBAAsB;IAuBlB;IACA;IAvBJ,MAAM,CAAC,uBAAuB,CAA6B;IAEzD,OAAO,CAAI;IACX,cAAc,CAAU;IACxB,aAAa,GAAS,EAAU,CAAC;IACjC,eAAe,GAAW,EAAE,CAAC;IAC7B,IAAI,GAAuB,EAAwB,CAAC;IACpD,cAAc,GAAW,EAAE,CAAC;IAC5B,MAAM,CAAS;IAEzB;;OAEG;IACI,QAAQ,GAAW,EAAE,CAAC;IAE7B;;;;;OAKG;IACH,YACY,OAAgB,EAChB,YAA0B,EACpC,IAAwB;QAExB,KAAK,EAAE,CAAC;QAJE,YAAO,GAAP,OAAO,CAAS;QAChB,iBAAY,GAAZ,YAAY,CAAc;QAIpC,IAAI,CAAC,cAAc;YACjB,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QAC1D,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,EAAO,CAAC,CAAC,6BAA6B;IACjE,CAAC;IAED,6EAA6E;IACrE,MAAM;QACZ,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACrD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,aAAa,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,kCAAkC;IAC1B,MAAM,CAAC,KAAK,CAAC,WAAW;QAC9B,sDAAsD;QACtD,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAClC,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,CACnE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,CACzC,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC;IACtC,CAAC;IAED,wBAAwB;IAChB,KAAK,CAAC,qBAAqB,CAAC,OAAsB,aAAa,CAAC,GAAG;QACzE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrD,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,oBAAoB;IACZ,YAAY;QAClB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACO,oBAAoB;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,YAAY,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YAChG,MAAM,IAAI,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrD,MAAM,IAAI,KAAK,CACb,GAAG,YAAY,KAAK,IAAI,iCAAiC,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,SAAS,KAAI,CAAC;IAE9B;;;OAGG;IACO,KAAK,CAAC,YAAY;QAC1B,MAAM,UAAU,GAAa,EAAE,CAAC;QAChC,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,CAAC;YAChE,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACtE,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;OAEG;IACO,KAAK;QACb,OAAO;YACL,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC;YAChC,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;SACnC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACO,oBAAoB,CAAC,QAAgB;QAC7C,OAAO;YACL;gBACE,EAAE,EAAE,QAAQ;gBACZ,OAAO,EAAE,CAAC;aACX;SACiB,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,MAAM,CAAC,UAAc;QACnC,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAElC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,YAAY,CAAC,UAAU,iCAAiC,CAC3E,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,KAAK,EAAE,EAAE,CAAC;YAC/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAC9B,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAC7E,CAAC;YACF,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CACnD,IAAI,CAAC,YAAY,CAAC,IAA0B,CAC7C,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,YAAY,CAAC,UAAU,GAAG,OAAO,CACvC,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,SAAS,CAAC,iBAAiB,CAC3C,IAAI,CAAC,YAAY,EAAE,EACnB,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,EACvC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAC/B,CAAC;QAEF,IAAI,YAAY,GAAG,EAAO,CAAC;QAC3B,IAAI,UAAU,EAAE,CAAC;YACf,YAAY,GAAG,UAAU,CAAC;YAC1B,YAAY,CAAC,IAAI,GAAG,SAAS,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;YAC9B,YAAY,CAAC,WAAW,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAEnB,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACO,SAAS,CAAC,UAAkB;QACpC,OAAO,cAAc,CAAC;YACpB,MAAM,EAAE,UAAU;SACnB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,IAAc,OAAO;QACnB,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;;;;;OAOG;IACO,WAAW,CACnB,SAA0B,EAC1B,SAAiB,EACjB,KAAa;QAEb,MAAM,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;QACzC,IAAI,MAAM,GAAW,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,gCAAgC,SAAS,MAAM,KAAK,CAAC,OAAO,EAAE,CAC/D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACO,YAAY,CAAO,SAA0B;QACrD,IACE,SAAS,CAAC,IAAI,KAAK,KAAK;YACxB,SAAS,CAAC,IAAI,KAAK,MAAM;YACzB,SAAS,CAAC,IAAI,KAAK,QAAQ,EAC3B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,CAAC,IAAI,kBAAkB,CAAC,CAAC;QAC3E,CAAC;QACD,OAAO,SAAS,CAAC,EAAE,CAAC;IACtB,CAAC;IAED;;OAEG;IACO,UAAU;QAClB,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;QACxD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,IAAI,CAAC,cAAc;gBACjB,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;YAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc;gBACvC,CAAC,CAAC,IAAI,CACF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAChC,IAAI,CAAC,YAAY,CAAC,MAAM,EACxB,IAAI,CAAC,YAAY,CAAC,IAAI,CACvB;gBACH,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,QAAQ,GAAG,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QACtE,CAAC;QACD,uEAAuE;QACvE,IACE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EACtE,CAAC;YACD,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjD,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0BAA0B,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,kCAAkC,IAAI,CAAC,QAAQ,GAAG,CACpH,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,UAAU,CACxB,OAAU,EACV,SAAuB,EACvB,EAAmB;QAEnB,SAAS,OAAO,CAAC,EAAmB;YAClC,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;gBAAE,OAAO,EAAE,CAAC,QAAQ,CAAC;YAC3C,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC3D,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ;gBAAE,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,gCAAgC;QAChC,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,GAAG,KAAK,MAAM,EAAE,CAAC;YACrD,MAAM,OAAO,GAAG,YAAY,CACzB,EAA8B,CAAC,EAAY,CAC7C,CAAC;YACF,OAAO,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,qDAAqD;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7D,MAAM,IAAI,KAAK,CACb,UAAU,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,GAAG,UAAU,UAAU,KAAK,KAAK,CAAC,OAAO,GAAG,CAC7E,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,IAAI;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,MAAM,CAAC,OAAqB;QAC1C,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,YAAY,CAAC,UAAU,kBAAkB,CAC5D,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;QACrD,SAAS,CAAC,iBAAiB,CACzB,IAAI,CAAC,YAAY,EAAE,EACnB,oBAAoB,CAAC,OAAO,CAAC,EAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CACtB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAA0B,CAAC,EACnE,OAAO,CAAC,UAAU,GAAG,OAAO,CAC7B,CAAC;QAEF,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACxD,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAEzC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED;;;;;;;OAOG;IACO,KAAK,CAAC,MAAM,CACpB,GAAiB,EACjB,GAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CACb,aAAa,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;OAGG;IACO,0BAA0B;QAClC,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;YACzD,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAChD,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC1C,MAAM,IAAI,KAAK,CACb,6DAA6D,UAAU,cAAc,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,kBAAkB,CAAC,IAAY,EAAE,EAAU;QACzD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,YAAY,CACtD,aAAa,CAAC,SAAS,CACxB,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACrC,MAAM,OAAO,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,MAAM,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChE,MAAM,WAAW,CAAC,UAAU,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;YACjE,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,gBAAgB,CAC9B,IAAY,EACZ,EAAU,EACV,cAAyB;QAEzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,gEAAgE,CACjE,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAC/C,aAAa,CAAC,SAAS,CACxB,CAAC;QACJ,CAAC;QAED,iCAAiC;QACjC,MAAM,OAAO,CAAC,GAAG,CACf,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/D,MAAM,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC9D,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACO,KAAK,CAAC,KAAK,CAAC,KAAc;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,YAAY,CAAC,UAAU,iCAAiC,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,SAAS,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAExE,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACf,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAChE;aACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,SAAS,CAAC,OAAqB;QAC7C,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,SAAS,CAAC,iBAAiB,CAC3C,IAAI,CAAC,YAAY,EAAE,EACnB,oBAAoB,CAAC,OAAO,CAAC,EAC7B,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAC/B,CAAC;QACF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,KAAK;QACnB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,4DAA4D;QAC5D,MAAM,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,MAAM,aAAa,CACjB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,EACpC,IAAI,CAAC,aAAa,EAClB;YACE,IAAI,EAAE,IAAI;SACX,CACF,CAAC;QACF,wEAAwE;QACxE,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,OAAO,CAAC;QAC3E,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,cAAc,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAE/D,IAAI,aAAa,KAAK,eAAe,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;YAC7D,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;YAC5B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACb,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM;QACjB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CACb,0BAA0B,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,2BAA2B,CAC7F,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACrC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,CAAC,YAAY,CAAC,UAAU,iCAAiC,CAC3E,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACb,0BAA0B,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACzG,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAgB;QACpC,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY,CACxC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAChC,IAAI,CAAC,eAAe,CACrB,CAAC;QACF,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF"}
|
|
@@ -10,10 +10,13 @@
|
|
|
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
|
-
import type { Card, Operation, Project, ResourceName } from './folder-resource.js';
|
|
14
13
|
import { FolderResource } from './folder-resource.js';
|
|
15
|
-
import type { TemplateConfiguration, TemplateMetadata, UpdateKey } from '../interfaces/resource-interfaces.js';
|
|
16
14
|
import { Template } from '../containers/template.js';
|
|
15
|
+
import type { Card } from '../interfaces/project-interfaces.js';
|
|
16
|
+
import type { Operation } from './resource-object.js';
|
|
17
|
+
import type { Project } from '../containers/project.js';
|
|
18
|
+
import type { ResourceName } from '../utils/resource-utils.js';
|
|
19
|
+
import type { TemplateConfiguration, TemplateMetadata, UpdateKey } from '../interfaces/resource-interfaces.js';
|
|
17
20
|
/**
|
|
18
21
|
* Template resource class.
|
|
19
22
|
*/
|
|
@@ -35,6 +38,7 @@ export declare class TemplateResource extends FolderResource<TemplateMetadata, n
|
|
|
35
38
|
create(newContent?: TemplateMetadata): Promise<void>;
|
|
36
39
|
/**
|
|
37
40
|
* Deletes file and folder that this resource is based on.
|
|
41
|
+
* Also removes template cards from the project's card cache.
|
|
38
42
|
*/
|
|
39
43
|
delete(): Promise<void>;
|
|
40
44
|
/**
|
|
@@ -46,7 +50,7 @@ export declare class TemplateResource extends FolderResource<TemplateMetadata, n
|
|
|
46
50
|
* Shows metadata of the resource.
|
|
47
51
|
* @returns template metadata.
|
|
48
52
|
*/
|
|
49
|
-
show():
|
|
53
|
+
show(): TemplateConfiguration;
|
|
50
54
|
/**
|
|
51
55
|
* Returns template card container object.
|
|
52
56
|
* @returns template container object
|
|
@@ -12,7 +12,10 @@
|
|
|
12
12
|
*/
|
|
13
13
|
import { dirname, join } from 'node:path';
|
|
14
14
|
import { mkdir } from 'node:fs/promises';
|
|
15
|
-
import { DefaultContent
|
|
15
|
+
import { DefaultContent } from './create-defaults.js';
|
|
16
|
+
import { FolderResource } from './folder-resource.js';
|
|
17
|
+
import { resourceNameToString } from '../utils/resource-utils.js';
|
|
18
|
+
import { sortCards } from '../utils/card-utils.js';
|
|
16
19
|
import { Template } from '../containers/template.js';
|
|
17
20
|
import { writeJsonFile } from '../utils/json.js';
|
|
18
21
|
/**
|
|
@@ -28,6 +31,7 @@ export class TemplateResource extends FolderResource {
|
|
|
28
31
|
this.contentSchema = super.contentSchemaContent(this.contentSchemaId);
|
|
29
32
|
this.cardsFolder = join(this.internalFolder, 'c');
|
|
30
33
|
// Each template resource contains a template card container (with template cards).
|
|
34
|
+
// todo: Fix Template constructor not to use Resource, but just this filename with path
|
|
31
35
|
this.cardContainer = new Template(this.project, {
|
|
32
36
|
name: resourceNameToString(this.resourceName),
|
|
33
37
|
path: dirname(this.fileName),
|
|
@@ -60,8 +64,11 @@ export class TemplateResource extends FolderResource {
|
|
|
60
64
|
}
|
|
61
65
|
/**
|
|
62
66
|
* Deletes file and folder that this resource is based on.
|
|
67
|
+
* Also removes template cards from the project's card cache.
|
|
63
68
|
*/
|
|
64
69
|
async delete() {
|
|
70
|
+
const templateName = resourceNameToString(this.resourceName);
|
|
71
|
+
this.project.cardsCache.deleteCardsFromTemplate(templateName);
|
|
65
72
|
return super.delete();
|
|
66
73
|
}
|
|
67
74
|
/**
|
|
@@ -77,8 +84,8 @@ export class TemplateResource extends FolderResource {
|
|
|
77
84
|
* Shows metadata of the resource.
|
|
78
85
|
* @returns template metadata.
|
|
79
86
|
*/
|
|
80
|
-
|
|
81
|
-
const templateMetadata =
|
|
87
|
+
show() {
|
|
88
|
+
const templateMetadata = super.show();
|
|
82
89
|
const container = this.templateObject();
|
|
83
90
|
return {
|
|
84
91
|
name: resourceNameToString(this.resourceName),
|