@cyberismo/data-handler 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +702 -0
- package/dist/card-metadata-updater.d.ts +33 -0
- package/dist/card-metadata-updater.js +121 -0
- package/dist/card-metadata-updater.js.map +1 -0
- package/dist/command-handler.d.ts +96 -0
- package/dist/command-handler.js +557 -0
- package/dist/command-handler.js.map +1 -0
- package/dist/command-manager.d.ts +43 -0
- package/dist/command-manager.js +73 -0
- package/dist/command-manager.js.map +1 -0
- package/dist/commands/calculate.d.ts +86 -0
- package/dist/commands/calculate.js +444 -0
- package/dist/commands/calculate.js.map +1 -0
- package/dist/commands/create.d.ts +114 -0
- package/dist/commands/create.js +389 -0
- package/dist/commands/create.js.map +1 -0
- package/dist/commands/edit.d.ts +37 -0
- package/dist/commands/edit.js +99 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/export-site.d.ts +45 -0
- package/dist/commands/export-site.js +301 -0
- package/dist/commands/export-site.js.map +1 -0
- package/dist/commands/export.d.ts +53 -0
- package/dist/commands/export.js +251 -0
- package/dist/commands/export.js.map +1 -0
- package/dist/commands/import.d.ts +53 -0
- package/dist/commands/import.js +133 -0
- package/dist/commands/import.js.map +1 -0
- package/dist/commands/index.d.ts +26 -0
- package/dist/commands/index.js +27 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/move.d.ts +55 -0
- package/dist/commands/move.js +341 -0
- package/dist/commands/move.js.map +1 -0
- package/dist/commands/remove.d.ts +38 -0
- package/dist/commands/remove.js +192 -0
- package/dist/commands/remove.js.map +1 -0
- package/dist/commands/rename.d.ts +46 -0
- package/dist/commands/rename.js +289 -0
- package/dist/commands/rename.js.map +1 -0
- package/dist/commands/show.d.ts +124 -0
- package/dist/commands/show.js +345 -0
- package/dist/commands/show.js.map +1 -0
- package/dist/commands/transition.d.ts +27 -0
- package/dist/commands/transition.js +92 -0
- package/dist/commands/transition.js.map +1 -0
- package/dist/commands/update.d.ts +29 -0
- package/dist/commands/update.js +64 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/commands/validate.d.ts +143 -0
- package/dist/commands/validate.js +689 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/containers/card-container.d.ts +44 -0
- package/dist/containers/card-container.js +282 -0
- package/dist/containers/card-container.js.map +1 -0
- package/dist/containers/project/project-paths.d.ts +46 -0
- package/dist/containers/project/project-paths.js +105 -0
- package/dist/containers/project/project-paths.js.map +1 -0
- package/dist/containers/project/resource-collector.d.ts +86 -0
- package/dist/containers/project/resource-collector.js +331 -0
- package/dist/containers/project/resource-collector.js.map +1 -0
- package/dist/containers/project.d.ts +351 -0
- package/dist/containers/project.js +896 -0
- package/dist/containers/project.js.map +1 -0
- package/dist/containers/template.d.ts +108 -0
- package/dist/containers/template.js +433 -0
- package/dist/containers/template.js.map +1 -0
- package/dist/exceptions/index.d.ts +19 -0
- package/dist/exceptions/index.js +26 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/adoc.d.ts +12 -0
- package/dist/interfaces/adoc.js +13 -0
- package/dist/interfaces/adoc.js.map +1 -0
- package/dist/interfaces/macros.d.ts +45 -0
- package/dist/interfaces/macros.js +13 -0
- package/dist/interfaces/macros.js.map +1 -0
- package/dist/interfaces/project-interfaces.d.ts +121 -0
- package/dist/interfaces/project-interfaces.js +21 -0
- package/dist/interfaces/project-interfaces.js.map +1 -0
- package/dist/interfaces/request-status-interfaces.d.ts +28 -0
- package/dist/interfaces/request-status-interfaces.js +20 -0
- package/dist/interfaces/request-status-interfaces.js.map +1 -0
- package/dist/interfaces/resource-interfaces.d.ts +117 -0
- package/dist/interfaces/resource-interfaces.js +20 -0
- package/dist/interfaces/resource-interfaces.js.map +1 -0
- package/dist/macros/base-macro.d.ts +31 -0
- package/dist/macros/base-macro.js +126 -0
- package/dist/macros/base-macro.js.map +1 -0
- package/dist/macros/common.d.ts +17 -0
- package/dist/macros/common.js +23 -0
- package/dist/macros/common.js.map +1 -0
- package/dist/macros/createCards/index.d.ts +36 -0
- package/dist/macros/createCards/index.js +35 -0
- package/dist/macros/createCards/index.js.map +1 -0
- package/dist/macros/createCards/metadata.d.ts +14 -0
- package/dist/macros/createCards/metadata.js +18 -0
- package/dist/macros/createCards/metadata.js.map +1 -0
- package/dist/macros/graph/index.d.ts +29 -0
- package/dist/macros/graph/index.js +91 -0
- package/dist/macros/graph/index.js.map +1 -0
- package/dist/macros/graph/metadata.d.ts +14 -0
- package/dist/macros/graph/metadata.js +18 -0
- package/dist/macros/graph/metadata.js.map +1 -0
- package/dist/macros/index.d.ts +93 -0
- package/dist/macros/index.js +237 -0
- package/dist/macros/index.js.map +1 -0
- package/dist/macros/report/index.d.ts +26 -0
- package/dist/macros/report/index.js +70 -0
- package/dist/macros/report/index.js.map +1 -0
- package/dist/macros/report/metadata.d.ts +14 -0
- package/dist/macros/report/metadata.js +18 -0
- package/dist/macros/report/metadata.js.map +1 -0
- package/dist/macros/scoreCard/index.d.ts +30 -0
- package/dist/macros/scoreCard/index.js +38 -0
- package/dist/macros/scoreCard/index.js.map +1 -0
- package/dist/macros/scoreCard/metadata.d.ts +14 -0
- package/dist/macros/scoreCard/metadata.js +18 -0
- package/dist/macros/scoreCard/metadata.js.map +1 -0
- package/dist/macros/task-queue.d.ts +46 -0
- package/dist/macros/task-queue.js +69 -0
- package/dist/macros/task-queue.js.map +1 -0
- package/dist/module-manager.d.ts +62 -0
- package/dist/module-manager.js +350 -0
- package/dist/module-manager.js.map +1 -0
- package/dist/permissions/action-guard.d.ts +28 -0
- package/dist/permissions/action-guard.js +61 -0
- package/dist/permissions/action-guard.js.map +1 -0
- package/dist/project-settings.d.ts +42 -0
- package/dist/project-settings.js +120 -0
- package/dist/project-settings.js.map +1 -0
- package/dist/resources/array-handler.d.ts +28 -0
- package/dist/resources/array-handler.js +116 -0
- package/dist/resources/array-handler.js.map +1 -0
- package/dist/resources/card-type-resource.d.ts +72 -0
- package/dist/resources/card-type-resource.js +334 -0
- package/dist/resources/card-type-resource.js.map +1 -0
- package/dist/resources/create-defaults.d.ts +81 -0
- package/dist/resources/create-defaults.js +184 -0
- package/dist/resources/create-defaults.js.map +1 -0
- package/dist/resources/field-type-resource.d.ts +88 -0
- package/dist/resources/field-type-resource.js +411 -0
- package/dist/resources/field-type-resource.js.map +1 -0
- package/dist/resources/file-resource.d.ts +50 -0
- package/dist/resources/file-resource.js +301 -0
- package/dist/resources/file-resource.js.map +1 -0
- package/dist/resources/folder-resource.d.ts +66 -0
- package/dist/resources/folder-resource.js +100 -0
- package/dist/resources/folder-resource.js.map +1 -0
- package/dist/resources/graph-model-resource.d.ts +78 -0
- package/dist/resources/graph-model-resource.js +164 -0
- package/dist/resources/graph-model-resource.js.map +1 -0
- package/dist/resources/graph-view-resource.d.ts +78 -0
- package/dist/resources/graph-view-resource.js +163 -0
- package/dist/resources/graph-view-resource.js.map +1 -0
- package/dist/resources/link-type-resource.d.ts +62 -0
- package/dist/resources/link-type-resource.js +150 -0
- package/dist/resources/link-type-resource.js.map +1 -0
- package/dist/resources/report-resource.d.ts +77 -0
- package/dist/resources/report-resource.js +171 -0
- package/dist/resources/report-resource.js.map +1 -0
- package/dist/resources/resource-object.d.ts +108 -0
- package/dist/resources/resource-object.js +147 -0
- package/dist/resources/resource-object.js.map +1 -0
- package/dist/resources/template-resource.d.ts +82 -0
- package/dist/resources/template-resource.js +173 -0
- package/dist/resources/template-resource.js.map +1 -0
- package/dist/resources/workflow-resource.d.ts +67 -0
- package/dist/resources/workflow-resource.js +156 -0
- package/dist/resources/workflow-resource.js.map +1 -0
- package/dist/types/queries.d.ts +142 -0
- package/dist/types/queries.js +16 -0
- package/dist/types/queries.js.map +1 -0
- package/dist/utils/card-utils.d.ts +34 -0
- package/dist/utils/card-utils.js +78 -0
- package/dist/utils/card-utils.js.map +1 -0
- package/dist/utils/clingo-fact-builder.d.ts +58 -0
- package/dist/utils/clingo-fact-builder.js +126 -0
- package/dist/utils/clingo-fact-builder.js.map +1 -0
- package/dist/utils/clingo-facts.d.ts +97 -0
- package/dist/utils/clingo-facts.js +352 -0
- package/dist/utils/clingo-facts.js.map +1 -0
- package/dist/utils/clingo-parser.d.ts +59 -0
- package/dist/utils/clingo-parser.js +403 -0
- package/dist/utils/clingo-parser.js.map +1 -0
- package/dist/utils/clingo-program-builder.d.ts +39 -0
- package/dist/utils/clingo-program-builder.js +57 -0
- package/dist/utils/clingo-program-builder.js.map +1 -0
- package/dist/utils/common-utils.d.ts +24 -0
- package/dist/utils/common-utils.js +47 -0
- package/dist/utils/common-utils.js.map +1 -0
- package/dist/utils/constants.d.ts +18 -0
- package/dist/utils/constants.js +27 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/csv.d.ts +18 -0
- package/dist/utils/csv.js +45 -0
- package/dist/utils/csv.js.map +1 -0
- package/dist/utils/file-utils.d.ts +69 -0
- package/dist/utils/file-utils.js +158 -0
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/json.d.ts +61 -0
- package/dist/utils/json.js +108 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/lexorank.d.ts +59 -0
- package/dist/utils/lexorank.js +159 -0
- package/dist/utils/lexorank.js.map +1 -0
- package/dist/utils/log-utils.d.ts +40 -0
- package/dist/utils/log-utils.js +109 -0
- package/dist/utils/log-utils.js.map +1 -0
- package/dist/utils/random.d.ts +19 -0
- package/dist/utils/random.js +34 -0
- package/dist/utils/random.js.map +1 -0
- package/dist/utils/resource-utils.d.ts +45 -0
- package/dist/utils/resource-utils.js +137 -0
- package/dist/utils/resource-utils.js.map +1 -0
- package/dist/utils/sanitize-svg.d.ts +18 -0
- package/dist/utils/sanitize-svg.js +38 -0
- package/dist/utils/sanitize-svg.js.map +1 -0
- package/dist/utils/user-preferences.d.ts +64 -0
- package/dist/utils/user-preferences.js +106 -0
- package/dist/utils/user-preferences.js.map +1 -0
- package/dist/utils/validate.d.ts +26 -0
- package/dist/utils/validate.js +53 -0
- package/dist/utils/validate.js.map +1 -0
- package/dist/utils/value-utils.d.ts +58 -0
- package/dist/utils/value-utils.js +181 -0
- package/dist/utils/value-utils.js.map +1 -0
- package/package.json +67 -0
- package/src/card-metadata-updater.ts +182 -0
- package/src/command-handler.ts +686 -0
- package/src/command-manager.ts +99 -0
- package/src/commands/calculate.ts +591 -0
- package/src/commands/create.ts +559 -0
- package/src/commands/edit.ts +123 -0
- package/src/commands/export-site.ts +356 -0
- package/src/commands/export.ts +315 -0
- package/src/commands/import.ts +169 -0
- package/src/commands/index.ts +42 -0
- package/src/commands/move.ts +451 -0
- package/src/commands/remove.ts +244 -0
- package/src/commands/rename.ts +378 -0
- package/src/commands/show.ts +442 -0
- package/src/commands/transition.ts +127 -0
- package/src/commands/update.ts +76 -0
- package/src/commands/validate.ts +962 -0
- package/src/containers/card-container.ts +378 -0
- package/src/containers/project/project-paths.ts +127 -0
- package/src/containers/project/resource-collector.ts +379 -0
- package/src/containers/project.ts +1135 -0
- package/src/containers/template.ts +573 -0
- package/src/exceptions/index.ts +29 -0
- package/src/index.ts +33 -0
- package/src/interfaces/adoc.ts +18 -0
- package/src/interfaces/macros.ts +54 -0
- package/src/interfaces/project-interfaces.ts +208 -0
- package/src/interfaces/request-status-interfaces.ts +30 -0
- package/src/interfaces/resource-interfaces.ts +179 -0
- package/src/macros/base-macro.ts +176 -0
- package/src/macros/common.ts +24 -0
- package/src/macros/createCards/index.ts +57 -0
- package/src/macros/createCards/metadata.ts +21 -0
- package/src/macros/graph/index.ts +130 -0
- package/src/macros/graph/metadata.ts +21 -0
- package/src/macros/index.ts +321 -0
- package/src/macros/report/index.ts +88 -0
- package/src/macros/report/metadata.ts +21 -0
- package/src/macros/scoreCard/index.ts +55 -0
- package/src/macros/scoreCard/metadata.ts +21 -0
- package/src/macros/task-queue.ts +79 -0
- package/src/module-manager.ts +443 -0
- package/src/permissions/action-guard.ts +77 -0
- package/src/project-settings.ts +140 -0
- package/src/resources/array-handler.ts +141 -0
- package/src/resources/card-type-resource.ts +455 -0
- package/src/resources/create-defaults.ts +216 -0
- package/src/resources/field-type-resource.ts +533 -0
- package/src/resources/file-resource.ts +433 -0
- package/src/resources/folder-resource.ts +140 -0
- package/src/resources/graph-model-resource.ts +205 -0
- package/src/resources/graph-view-resource.ts +199 -0
- package/src/resources/link-type-resource.ts +191 -0
- package/src/resources/report-resource.ts +224 -0
- package/src/resources/resource-object.ts +246 -0
- package/src/resources/template-resource.ts +210 -0
- package/src/resources/workflow-resource.ts +205 -0
- package/src/types/queries.ts +149 -0
- package/src/utils/card-utils.ts +83 -0
- package/src/utils/clingo-fact-builder.ts +167 -0
- package/src/utils/clingo-facts.ts +550 -0
- package/src/utils/clingo-parser.ts +519 -0
- package/src/utils/clingo-program-builder.ts +71 -0
- package/src/utils/common-utils.ts +54 -0
- package/src/utils/constants.ts +32 -0
- package/src/utils/csv.ts +53 -0
- package/src/utils/file-utils.ts +182 -0
- package/src/utils/json.ts +118 -0
- package/src/utils/lexorank.ts +180 -0
- package/src/utils/log-utils.ts +127 -0
- package/src/utils/random.ts +37 -0
- package/src/utils/resource-utils.ts +180 -0
- package/src/utils/sanitize-svg.ts +46 -0
- package/src/utils/user-preferences.ts +126 -0
- package/src/utils/validate.ts +66 -0
- package/src/utils/value-utils.ts +189 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Cyberismo
|
|
3
|
+
Copyright © Cyberismo Ltd and contributors 2025
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify it under
|
|
6
|
+
the terms of the GNU Affero General Public License version 3 as published by
|
|
7
|
+
the Free Software Foundation. This program is distributed in the hope that it
|
|
8
|
+
will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
|
9
|
+
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
10
|
+
See the GNU Affero General Public License for more details.
|
|
11
|
+
You should have received a copy of the GNU Affero General Public
|
|
12
|
+
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
13
|
+
*/
|
|
14
|
+
import type { Project } from './containers/project.js';
|
|
15
|
+
import type { UpdateField } from './types/queries.js';
|
|
16
|
+
/**
|
|
17
|
+
* Handles the updating of card metadata from clingo query result.
|
|
18
|
+
*
|
|
19
|
+
* todo: Once 'Card' class is created, the functionality in this class
|
|
20
|
+
* can be incorporated there and this class can be removed.
|
|
21
|
+
*/
|
|
22
|
+
export declare class CardMetadataUpdater {
|
|
23
|
+
/**
|
|
24
|
+
* Applies a given array of changes to card(s).
|
|
25
|
+
* @param project Current project.
|
|
26
|
+
* @param fieldsToUpdate Array of field updates. Each update consists of cardKey, fieldName and new value.
|
|
27
|
+
*/
|
|
28
|
+
static apply(project: Project, fieldsToUpdate: UpdateField[]): Promise<void>;
|
|
29
|
+
private static applyFieldChange;
|
|
30
|
+
private static groupChangesByCard;
|
|
31
|
+
private static reportErrors;
|
|
32
|
+
private static updateCardMetadata;
|
|
33
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Cyberismo
|
|
3
|
+
Copyright © Cyberismo Ltd and contributors 2025
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify it under
|
|
6
|
+
the terms of the GNU Affero General Public License version 3 as published by
|
|
7
|
+
the Free Software Foundation. This program is distributed in the hope that it
|
|
8
|
+
will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
|
|
9
|
+
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
10
|
+
See the GNU Affero General Public License for more details.
|
|
11
|
+
You should have received a copy of the GNU Affero General Public
|
|
12
|
+
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
13
|
+
*/
|
|
14
|
+
import { FieldTypeResource } from './resources/field-type-resource.js';
|
|
15
|
+
import { logger } from './utils/log-utils.js';
|
|
16
|
+
/**
|
|
17
|
+
* Handles the updating of card metadata from clingo query result.
|
|
18
|
+
*
|
|
19
|
+
* todo: Once 'Card' class is created, the functionality in this class
|
|
20
|
+
* can be incorporated there and this class can be removed.
|
|
21
|
+
*/
|
|
22
|
+
export class CardMetadataUpdater {
|
|
23
|
+
/**
|
|
24
|
+
* Applies a given array of changes to card(s).
|
|
25
|
+
* @param project Current project.
|
|
26
|
+
* @param fieldsToUpdate Array of field updates. Each update consists of cardKey, fieldName and new value.
|
|
27
|
+
*/
|
|
28
|
+
static async apply(project, fieldsToUpdate) {
|
|
29
|
+
if (!fieldsToUpdate || fieldsToUpdate.length === 0) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
const updates = CardMetadataUpdater.groupChangesByCard(fieldsToUpdate);
|
|
33
|
+
const updatePromises = [];
|
|
34
|
+
for (const [cardKey, changes] of updates.entries()) {
|
|
35
|
+
updatePromises.push(CardMetadataUpdater.updateCardMetadata(project, cardKey, changes));
|
|
36
|
+
}
|
|
37
|
+
const results = await Promise.all(updatePromises);
|
|
38
|
+
CardMetadataUpdater.reportErrors(results);
|
|
39
|
+
}
|
|
40
|
+
// Applies a single field change to a card's metadata.
|
|
41
|
+
static async applyFieldChange(project, metadata, change) {
|
|
42
|
+
const result = {
|
|
43
|
+
success: true,
|
|
44
|
+
errors: [],
|
|
45
|
+
};
|
|
46
|
+
if (change.field === 'title' || change.field === 'workflowState') {
|
|
47
|
+
metadata[change.field] = FieldTypeResource.fromClingoResult(change.newValue, 'shortText');
|
|
48
|
+
return result;
|
|
49
|
+
}
|
|
50
|
+
if (change.field === 'cardType' || change.field === 'rank') {
|
|
51
|
+
result.success = false;
|
|
52
|
+
result.errors.push(`For card ${change.card} cannot change card's ${change.field}.`);
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
const fieldType = await project.resource(change.field);
|
|
56
|
+
if (!fieldType) {
|
|
57
|
+
result.success = false;
|
|
58
|
+
result.errors.push(`Field type '${change.field}' from transition change does not exist in the project.`);
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
61
|
+
metadata[change.field] = FieldTypeResource.fromClingoResult(change.newValue, fieldType.dataType);
|
|
62
|
+
return result;
|
|
63
|
+
}
|
|
64
|
+
// Groups changes by card key. Returns grouped map. Mapping is by cardKey.
|
|
65
|
+
static groupChangesByCard(fieldsToUpdate) {
|
|
66
|
+
const updatesByCardKey = new Map();
|
|
67
|
+
fieldsToUpdate.forEach((change) => {
|
|
68
|
+
const cardKey = change.card;
|
|
69
|
+
if (!updatesByCardKey.has(cardKey)) {
|
|
70
|
+
updatesByCardKey.set(cardKey, []);
|
|
71
|
+
}
|
|
72
|
+
const cardChanges = updatesByCardKey.get(cardKey);
|
|
73
|
+
if (cardChanges) {
|
|
74
|
+
cardChanges.push({
|
|
75
|
+
field: change.field,
|
|
76
|
+
card: change.card,
|
|
77
|
+
newValue: change.newValue,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return updatesByCardKey;
|
|
82
|
+
}
|
|
83
|
+
// Reports errors from update operations to the logger.
|
|
84
|
+
static reportErrors(results) {
|
|
85
|
+
const allErrors = results
|
|
86
|
+
.filter((result) => !result.success)
|
|
87
|
+
.flatMap((result) => result.errors);
|
|
88
|
+
if (allErrors.length > 0) {
|
|
89
|
+
allErrors.push('On transition change to card(s) can not be applied.');
|
|
90
|
+
logger.error(allErrors.join('\n'));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
// Updates a single card's metadata with the provided changes.
|
|
94
|
+
static async updateCardMetadata(project, cardKey, changes) {
|
|
95
|
+
const result = {
|
|
96
|
+
success: true,
|
|
97
|
+
errors: [],
|
|
98
|
+
};
|
|
99
|
+
const card = await project.findSpecificCard(cardKey, {
|
|
100
|
+
metadata: true,
|
|
101
|
+
});
|
|
102
|
+
if (!card || !card.metadata) {
|
|
103
|
+
result.success = false;
|
|
104
|
+
result.errors.push(`Card ${cardKey} does not exist in the project. Changes cannot be applied.`);
|
|
105
|
+
return result;
|
|
106
|
+
}
|
|
107
|
+
const updatePromises = changes.map((change) => CardMetadataUpdater.applyFieldChange(project, card.metadata, change));
|
|
108
|
+
const updateResults = await Promise.all(updatePromises);
|
|
109
|
+
for (const updateResult of updateResults) {
|
|
110
|
+
if (!updateResult.success) {
|
|
111
|
+
result.success = false;
|
|
112
|
+
result.errors.push(...updateResult.errors);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (result.success) {
|
|
116
|
+
project.updateCardMetadata(card, card.metadata);
|
|
117
|
+
}
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=card-metadata-updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-metadata-updater.js","sourceRoot":"","sources":["../src/card-metadata-updater.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Cyberismo
|
|
3
|
+
Copyright © Cyberismo Ltd and contributors 2024
|
|
4
|
+
This program is free software: you can redistribute it and/or modify it under
|
|
5
|
+
the terms of the GNU Affero General Public License version 3 as published by
|
|
6
|
+
the Free Software Foundation.
|
|
7
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
8
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
9
|
+
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
10
|
+
details. You should have received a copy of the GNU Affero General Public
|
|
11
|
+
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
12
|
+
*/
|
|
13
|
+
import type { requestStatus } from './interfaces/request-status-interfaces.js';
|
|
14
|
+
export interface CardsOptions {
|
|
15
|
+
details?: boolean;
|
|
16
|
+
forceStart?: boolean;
|
|
17
|
+
projectPath?: string;
|
|
18
|
+
repeat?: number;
|
|
19
|
+
showUse?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare enum Cmd {
|
|
22
|
+
add = "add",
|
|
23
|
+
calc = "calc",
|
|
24
|
+
create = "create",
|
|
25
|
+
edit = "edit",
|
|
26
|
+
export = "export",
|
|
27
|
+
import = "import",
|
|
28
|
+
move = "move",
|
|
29
|
+
rank = "rank",
|
|
30
|
+
remove = "remove",
|
|
31
|
+
rename = "rename",
|
|
32
|
+
report = "report",
|
|
33
|
+
show = "show",
|
|
34
|
+
start = "start",
|
|
35
|
+
transition = "transition",
|
|
36
|
+
update = "update",
|
|
37
|
+
updateModules = "update-modules",
|
|
38
|
+
validate = "validate"
|
|
39
|
+
}
|
|
40
|
+
export declare enum ExportFormats {
|
|
41
|
+
adoc = "adoc",
|
|
42
|
+
html = "html",
|
|
43
|
+
site = "site"
|
|
44
|
+
}
|
|
45
|
+
export { CommandManager } from './command-manager.js';
|
|
46
|
+
/**
|
|
47
|
+
* Class that handles all CLI commands.
|
|
48
|
+
*/
|
|
49
|
+
export declare class Commands {
|
|
50
|
+
private commands?;
|
|
51
|
+
private projectPath;
|
|
52
|
+
private validateCmd;
|
|
53
|
+
constructor();
|
|
54
|
+
/**
|
|
55
|
+
* Executes one command for CLI.
|
|
56
|
+
*
|
|
57
|
+
* @note internal functions that this method calls, should return a Promise and throw on error.
|
|
58
|
+
* No internal trap harnesses; all exceptions from internal methods should be caught by this methods trap handler.
|
|
59
|
+
* If internal method has payload, the method should return requestStatus that can be directly returned from calling that function.
|
|
60
|
+
*
|
|
61
|
+
* @param command command to execute
|
|
62
|
+
* @param args arguments for the command
|
|
63
|
+
* @param options options for the command
|
|
64
|
+
* @returns request status; 200 if success; 400 in handled error; 500 in unknown error
|
|
65
|
+
*/
|
|
66
|
+
command(command: Cmd, args: string[], options: CardsOptions): Promise<requestStatus>;
|
|
67
|
+
private commandType;
|
|
68
|
+
private commandTarget;
|
|
69
|
+
private doSetProject;
|
|
70
|
+
private doHandleCommand;
|
|
71
|
+
/**
|
|
72
|
+
* Returns project path, if running operation within project folder.
|
|
73
|
+
* @param path Initial path from where the project path search is started.
|
|
74
|
+
*/
|
|
75
|
+
getProjectPath(path?: string): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Returns project path, if running operation within project folder.
|
|
78
|
+
* Implementation will automatically look for valid project path starting from 'path' and moving upwards in the
|
|
79
|
+
* path until 'root' is reached.
|
|
80
|
+
* @param path Initial path from where the project path search is started.
|
|
81
|
+
* Returns valid project path (contains both .cards and cardRoot subfolders).
|
|
82
|
+
*/
|
|
83
|
+
setProjectPath(path?: string): Promise<string>;
|
|
84
|
+
private addCard;
|
|
85
|
+
private createCard;
|
|
86
|
+
private export;
|
|
87
|
+
private generateLogicProgram;
|
|
88
|
+
private import;
|
|
89
|
+
private importCsv;
|
|
90
|
+
private remove;
|
|
91
|
+
private runLogicProgram;
|
|
92
|
+
private runReport;
|
|
93
|
+
private show;
|
|
94
|
+
private startApp;
|
|
95
|
+
private validate;
|
|
96
|
+
}
|