@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,334 @@
|
|
|
1
|
+
import { FieldTypeResource } from './field-type-resource.js';
|
|
2
|
+
import { DefaultContent, FileResource, ResourcesFrom, resourceName, resourceNameToString, sortCards, } from './file-resource.js';
|
|
3
|
+
import { LinkTypeResource } from './link-type-resource.js';
|
|
4
|
+
import { Template } from '../containers/template.js';
|
|
5
|
+
import { Validate } from '../commands/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Card type resource class.
|
|
8
|
+
*/
|
|
9
|
+
export class CardTypeResource extends FileResource {
|
|
10
|
+
constructor(project, name) {
|
|
11
|
+
super(project, name, 'cardTypes');
|
|
12
|
+
this.contentSchemaId = 'cardTypeSchema';
|
|
13
|
+
this.contentSchema = super.contentSchemaContent(this.contentSchemaId);
|
|
14
|
+
this.initialize();
|
|
15
|
+
this.setContainerValues();
|
|
16
|
+
}
|
|
17
|
+
// Returns cards that have this card type.
|
|
18
|
+
async cardsWithCardType(cards) {
|
|
19
|
+
const resourceName = resourceNameToString(this.resourceName);
|
|
20
|
+
return cards
|
|
21
|
+
.filter((card) => card.metadata?.cardType === resourceName)
|
|
22
|
+
.map((card) => card.key);
|
|
23
|
+
}
|
|
24
|
+
// Collects affected cards.
|
|
25
|
+
async collectCards(cardContent) {
|
|
26
|
+
async function filteredCards(cardSource, cardTypeName) {
|
|
27
|
+
const cards = await cardSource;
|
|
28
|
+
return cards.filter((card) => card.metadata?.cardType === cardTypeName);
|
|
29
|
+
}
|
|
30
|
+
// Collect both project cards ...
|
|
31
|
+
const projectCardsPromise = filteredCards(this.project.cards(this.project.paths.cardRootFolder, cardContent), this.content.name);
|
|
32
|
+
// ... and cards from each template that would be affected.
|
|
33
|
+
const templates = await this.project.templates(ResourcesFrom.localOnly);
|
|
34
|
+
const templateCardsPromises = templates.map((template) => {
|
|
35
|
+
const templateObject = new Template(this.project, template);
|
|
36
|
+
return filteredCards(templateObject.cards('', cardContent), this.content.name);
|
|
37
|
+
});
|
|
38
|
+
// Return all affected cards
|
|
39
|
+
const cards = (await Promise.all([projectCardsPromise, ...templateCardsPromises])).reduce((accumulator, value) => accumulator.concat(value), []);
|
|
40
|
+
return cards;
|
|
41
|
+
}
|
|
42
|
+
// If custom fields change, cards need to be updated.
|
|
43
|
+
// Rename change changes key names in cards.
|
|
44
|
+
async handleCustomFieldsChange(op) {
|
|
45
|
+
const cardContent = {
|
|
46
|
+
metadata: true,
|
|
47
|
+
content: true,
|
|
48
|
+
};
|
|
49
|
+
if (op && op.name === 'rank')
|
|
50
|
+
return;
|
|
51
|
+
// Collect both project cards and template cards.
|
|
52
|
+
const cards = await this.collectCards(cardContent);
|
|
53
|
+
if (op && op.name === 'change') {
|
|
54
|
+
const from = op.target;
|
|
55
|
+
const to = op.to;
|
|
56
|
+
// Then update them all parallel.
|
|
57
|
+
const promises = [];
|
|
58
|
+
for (const card of cards) {
|
|
59
|
+
promises.push(this.updateCardMetadata(card, from, to));
|
|
60
|
+
}
|
|
61
|
+
await Promise.all(promises);
|
|
62
|
+
}
|
|
63
|
+
else if (op && op.name === 'add') {
|
|
64
|
+
// todo: target can be string here as well? Fix at some point
|
|
65
|
+
const item = op.target;
|
|
66
|
+
await this.handleAddNewField(cards, item);
|
|
67
|
+
}
|
|
68
|
+
else if (op && op.name === 'remove') {
|
|
69
|
+
// todo: target can be string here as well? Fix at some point
|
|
70
|
+
const item = op.target;
|
|
71
|
+
await this.handleRemoveField(cards, item);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// When new field is added, add it all affected cards with 'null' value.
|
|
75
|
+
async handleAddNewField(cards, item) {
|
|
76
|
+
for (const card of cards) {
|
|
77
|
+
if (card.metadata) {
|
|
78
|
+
card.metadata[item.name] = null;
|
|
79
|
+
await this.project.updateCardMetadata(card, card.metadata);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// When resource name changes.
|
|
84
|
+
async handleNameChange(existingName) {
|
|
85
|
+
const current = this.content;
|
|
86
|
+
const prefixes = await this.project.projectPrefixes();
|
|
87
|
+
if (current.customFields) {
|
|
88
|
+
current.customFields.map((field) => (field.name = this.updatePrefixInResourceName(field.name, prefixes)));
|
|
89
|
+
}
|
|
90
|
+
if (current.alwaysVisibleFields) {
|
|
91
|
+
current.alwaysVisibleFields = current.alwaysVisibleFields.map((item) => this.updatePrefixInResourceName(item, prefixes));
|
|
92
|
+
}
|
|
93
|
+
if (current.optionallyVisibleFields) {
|
|
94
|
+
current.optionallyVisibleFields = current.optionallyVisibleFields.map((item) => this.updatePrefixInResourceName(item, prefixes));
|
|
95
|
+
}
|
|
96
|
+
current.workflow = this.updatePrefixInResourceName(current.workflow, prefixes);
|
|
97
|
+
await Promise.all([
|
|
98
|
+
super.updateHandleBars(existingName, this.content.name),
|
|
99
|
+
super.updateCalculations(existingName, this.content.name),
|
|
100
|
+
]);
|
|
101
|
+
// Finally, write updated content.
|
|
102
|
+
await this.write();
|
|
103
|
+
}
|
|
104
|
+
// When a field is removed, remove it from all affected cards.
|
|
105
|
+
async handleRemoveField(cards, item) {
|
|
106
|
+
for (const card of cards) {
|
|
107
|
+
if (card.metadata) {
|
|
108
|
+
delete card.metadata[item.name];
|
|
109
|
+
await this.project.updateCardMetadata(card, card.metadata);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Remove value from array.
|
|
114
|
+
// todo: make it as generic and move to utils
|
|
115
|
+
removeValue(array, value) {
|
|
116
|
+
const index = array.findIndex((element) => element === value);
|
|
117
|
+
if (index !== -1) {
|
|
118
|
+
array.splice(index, 1);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Return link types that use this card type.
|
|
122
|
+
async relevantLinkTypes() {
|
|
123
|
+
const resourceName = resourceNameToString(this.resourceName);
|
|
124
|
+
const allLinkTypes = await this.project.linkTypes(ResourcesFrom.all);
|
|
125
|
+
const linkTypeNames = await Promise.all(allLinkTypes.map(async (linkType) => {
|
|
126
|
+
const metadata = await this.project.resource(linkType.name);
|
|
127
|
+
if (!metadata)
|
|
128
|
+
return null;
|
|
129
|
+
const isRelevant = metadata.destinationCardTypes.includes(resourceName) ||
|
|
130
|
+
metadata.sourceCardTypes.includes(resourceName);
|
|
131
|
+
return isRelevant ? linkType.name : null;
|
|
132
|
+
}));
|
|
133
|
+
return linkTypeNames.filter((name) => name !== null);
|
|
134
|
+
}
|
|
135
|
+
// If value from 'customFields' is removed, remove it also from 'optionallyVisible' and 'alwaysVisible' arrays.
|
|
136
|
+
removeValueFromOtherArrays(op) {
|
|
137
|
+
// Update target can be a string, or an object. Of object, fetch only 'name'
|
|
138
|
+
// todo: fetching 'name' or using string as name could be function in resource base class.
|
|
139
|
+
const target = op.target;
|
|
140
|
+
let field = undefined;
|
|
141
|
+
if (target['name']) {
|
|
142
|
+
field = { name: target['name'] };
|
|
143
|
+
}
|
|
144
|
+
const fieldName = (field ? field.name : target);
|
|
145
|
+
this.removeValue(this.data.alwaysVisibleFields, fieldName);
|
|
146
|
+
this.removeValue(this.data.optionallyVisibleFields, fieldName);
|
|
147
|
+
}
|
|
148
|
+
// Sets content container values to be either '[]' or with proper values.
|
|
149
|
+
setContainerValues() {
|
|
150
|
+
const content = this.content;
|
|
151
|
+
if (content.customFields) {
|
|
152
|
+
for (const item of content.customFields) {
|
|
153
|
+
// Set "isCalculated" if it is missing; default = false
|
|
154
|
+
if (item.isCalculated === undefined) {
|
|
155
|
+
item.isCalculated = false;
|
|
156
|
+
}
|
|
157
|
+
// Fetch "displayName" from field type if it is missing.
|
|
158
|
+
if (item.name && item.displayName === undefined) {
|
|
159
|
+
const fieldType = new FieldTypeResource(this.project, resourceName(item.name));
|
|
160
|
+
const fieldTypeContent = fieldType.data;
|
|
161
|
+
if (fieldTypeContent) {
|
|
162
|
+
item.displayName = fieldTypeContent.displayName;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else if (!item.name) {
|
|
166
|
+
console.error(`Custom field '${item.name}' is missing mandatory 'name' in card type '${content.name}'`);
|
|
167
|
+
return undefined;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
content.customFields = [];
|
|
173
|
+
}
|
|
174
|
+
if (!content.alwaysVisibleFields) {
|
|
175
|
+
content.alwaysVisibleFields = [];
|
|
176
|
+
}
|
|
177
|
+
if (!content.optionallyVisibleFields) {
|
|
178
|
+
content.optionallyVisibleFields = [];
|
|
179
|
+
}
|
|
180
|
+
this.content = content;
|
|
181
|
+
}
|
|
182
|
+
// Updates dependent link types.
|
|
183
|
+
async updateLinkTypes(oldName) {
|
|
184
|
+
const linkTypes = await this.project.linkTypes(ResourcesFrom.localOnly);
|
|
185
|
+
const updatePromises = linkTypes.map(async (linkType) => {
|
|
186
|
+
const object = new LinkTypeResource(this.project, resourceName(linkType.name));
|
|
187
|
+
const data = object.data;
|
|
188
|
+
const updates = [];
|
|
189
|
+
const cardTypeFields = ['destinationCardTypes', 'sourceCardTypes'];
|
|
190
|
+
for (const field of cardTypeFields) {
|
|
191
|
+
if (data && data[field].includes(oldName)) {
|
|
192
|
+
const op = {
|
|
193
|
+
name: 'change',
|
|
194
|
+
target: oldName,
|
|
195
|
+
to: this.content.name,
|
|
196
|
+
};
|
|
197
|
+
updates.push(object.update(field, op));
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
if (updates.length > 0) {
|
|
201
|
+
await Promise.all(updates);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
await Promise.all(updatePromises);
|
|
205
|
+
}
|
|
206
|
+
// Update changed custom fields to cards
|
|
207
|
+
async updateCardMetadata(card, from, to) {
|
|
208
|
+
if (card.metadata?.cardType && card.metadata?.cardType.length > 0) {
|
|
209
|
+
if (card.metadata && Object.keys(card.metadata).includes(from)) {
|
|
210
|
+
delete Object.assign(card.metadata, {
|
|
211
|
+
[to]: card.metadata[from],
|
|
212
|
+
})[from];
|
|
213
|
+
await this.project.updateCardMetadata(card, card.metadata);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Creates a new card type object. Base class writes the object to disk automatically.
|
|
219
|
+
* @param workflowName Workflow name that this card type uses.
|
|
220
|
+
*/
|
|
221
|
+
async createCardType(workflowName) {
|
|
222
|
+
if (!workflowName) {
|
|
223
|
+
throw new Error(`Cannot create cardType without providing workflow for it`);
|
|
224
|
+
}
|
|
225
|
+
const validWorkflowName = await Validate.getInstance().validResourceName('workflows', resourceNameToString(resourceName(workflowName)), await this.project.projectPrefixes());
|
|
226
|
+
const workflow = await this.project.resource(workflowName);
|
|
227
|
+
if (!workflow) {
|
|
228
|
+
throw new Error(`Workflow '${workflowName}' does not exist in the project`);
|
|
229
|
+
}
|
|
230
|
+
const content = DefaultContent.cardType(resourceNameToString(this.resourceName), validWorkflowName);
|
|
231
|
+
return super.create(content);
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Returns content data.
|
|
235
|
+
*/
|
|
236
|
+
get data() {
|
|
237
|
+
return super.data;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Deletes file(s) from disk and clears out the memory resident object.
|
|
241
|
+
*/
|
|
242
|
+
async delete() {
|
|
243
|
+
return super.delete();
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Renames resource metadata file and renames memory resident object 'name'.
|
|
247
|
+
* @param newName New name for the resource.
|
|
248
|
+
*/
|
|
249
|
+
async rename(newName) {
|
|
250
|
+
const existingName = this.content.name;
|
|
251
|
+
await super.rename(newName);
|
|
252
|
+
return this.handleNameChange(existingName);
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Shows metadata of the resource.
|
|
256
|
+
* @returns card type metadata.
|
|
257
|
+
*/
|
|
258
|
+
async show() {
|
|
259
|
+
return super.show();
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Updates card type resource.
|
|
263
|
+
* @param key Key to modify
|
|
264
|
+
* @param op Operation to perform on 'key'
|
|
265
|
+
*/
|
|
266
|
+
async update(key, op) {
|
|
267
|
+
const nameChange = key === 'name';
|
|
268
|
+
const customFieldsChange = key === 'customFields';
|
|
269
|
+
const existingName = this.content.name;
|
|
270
|
+
await super.update(key, op);
|
|
271
|
+
const content = this.content;
|
|
272
|
+
if (key === 'name') {
|
|
273
|
+
content.name = super.handleScalar(op);
|
|
274
|
+
}
|
|
275
|
+
else if (key === 'alwaysVisibleFields') {
|
|
276
|
+
content.alwaysVisibleFields = super.handleArray(op, key, content.alwaysVisibleFields);
|
|
277
|
+
}
|
|
278
|
+
else if (key === 'optionallyVisibleFields') {
|
|
279
|
+
content.optionallyVisibleFields = super.handleArray(op, key, content.optionallyVisibleFields);
|
|
280
|
+
}
|
|
281
|
+
else if (key === 'workflow') {
|
|
282
|
+
content.workflow = super.handleScalar(op);
|
|
283
|
+
}
|
|
284
|
+
else if (key === 'customFields') {
|
|
285
|
+
content.customFields = super.handleArray(op, key, content.customFields);
|
|
286
|
+
if (op.name === 'remove') {
|
|
287
|
+
this.removeValueFromOtherArrays(op);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
throw new Error(`Unknown property '${key}' for CardType`);
|
|
292
|
+
}
|
|
293
|
+
await super.postUpdate(content, key, op);
|
|
294
|
+
// Renaming this card type causes that references to its name must be updated.
|
|
295
|
+
if (nameChange) {
|
|
296
|
+
await this.handleNameChange(existingName);
|
|
297
|
+
await this.updateLinkTypes(existingName);
|
|
298
|
+
}
|
|
299
|
+
else if (customFieldsChange) {
|
|
300
|
+
return this.handleCustomFieldsChange(op);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* List where card type is used. This includes card metadata, card content, calculations and link type resources.
|
|
305
|
+
* Always returns card key references first, then any resource references and finally calculation references.
|
|
306
|
+
*
|
|
307
|
+
* @param cards Optional. Check these cards for usage of this resource. If undefined, will check all cards.
|
|
308
|
+
* @returns array of card keys, resource names and calculation filenames that refer this resource.
|
|
309
|
+
*/
|
|
310
|
+
async usage(cards) {
|
|
311
|
+
const allCards = cards ?? (await super.cards());
|
|
312
|
+
const [cardsWithCardType, cardContentReferences, relevantLinkTypes, calculations,] = await Promise.all([
|
|
313
|
+
this.cardsWithCardType(allCards),
|
|
314
|
+
super.usage(allCards),
|
|
315
|
+
this.relevantLinkTypes(),
|
|
316
|
+
super.calculations(),
|
|
317
|
+
]);
|
|
318
|
+
const cardReferences = [
|
|
319
|
+
...cardsWithCardType,
|
|
320
|
+
...cardContentReferences,
|
|
321
|
+
].sort(sortCards);
|
|
322
|
+
// Using Set to avoid duplicate cards
|
|
323
|
+
return [
|
|
324
|
+
...new Set([...cardReferences, ...relevantLinkTypes, ...calculations]),
|
|
325
|
+
];
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Validates the resource. If object is invalid, throws.
|
|
329
|
+
*/
|
|
330
|
+
async validate(content) {
|
|
331
|
+
return super.validate(content);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=card-type-resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card-type-resource.js","sourceRoot":"","sources":["../../src/resources/card-type-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Cyberismo
|
|
3
|
+
Copyright © Cyberismo Ltd and contributors 2024
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
|
|
6
|
+
|
|
7
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|
8
|
+
|
|
9
|
+
You should have received a copy of the GNU Affero General Public
|
|
10
|
+
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
11
|
+
*/
|
|
12
|
+
import type { Card } from '../interfaces/project-interfaces.js';
|
|
13
|
+
import type { CardType, DataType, FieldType, GraphModelMetadata, GraphViewMetadata, Link, LinkType, ReportMetadata, TemplateMetadata, Workflow } from '../interfaces/resource-interfaces.js';
|
|
14
|
+
/**
|
|
15
|
+
* Provides default values for resources and cards.
|
|
16
|
+
*/
|
|
17
|
+
export declare abstract class DefaultContent {
|
|
18
|
+
/**
|
|
19
|
+
* Returns card with default content. Card is automatically ranked last, if siblings are provided.
|
|
20
|
+
* @param cardType Card type; custom values from card type are set to null.
|
|
21
|
+
* @param siblings Optional. If given, content will have been ranked last.
|
|
22
|
+
* @returns card with default content.
|
|
23
|
+
*/
|
|
24
|
+
static card(cardType: CardType, siblings?: Card[]): any;
|
|
25
|
+
/**
|
|
26
|
+
* Default content for card type.
|
|
27
|
+
* @param cardTypeName card type name
|
|
28
|
+
* @param workflowName workflow name
|
|
29
|
+
* @returns Default content for card type.
|
|
30
|
+
*/
|
|
31
|
+
static cardType(cardTypeName: string, workflowName: string): CardType;
|
|
32
|
+
/**
|
|
33
|
+
* Default content for field type.
|
|
34
|
+
* @param fieldTypeName field type name
|
|
35
|
+
* @param dataType data type for the field type
|
|
36
|
+
* @returns Default content for field type.
|
|
37
|
+
*/
|
|
38
|
+
static fieldType(fieldTypeName: string, dataType: DataType): FieldType;
|
|
39
|
+
/**
|
|
40
|
+
* Default content for graph model.
|
|
41
|
+
* @param graphModelName graph model name
|
|
42
|
+
* @returns Default content for graph model.
|
|
43
|
+
*/
|
|
44
|
+
static graphModel(graphModelName: string): GraphModelMetadata;
|
|
45
|
+
/**
|
|
46
|
+
* Default content for graph view.
|
|
47
|
+
* @param graphViewName graph view name
|
|
48
|
+
* @returns Default content for graph view.
|
|
49
|
+
*/
|
|
50
|
+
static graphView(graphViewName: string): GraphViewMetadata;
|
|
51
|
+
/**
|
|
52
|
+
* Default content for link.
|
|
53
|
+
* @param cardKey card key id
|
|
54
|
+
* @param linkTypeName link type name
|
|
55
|
+
* @returns Default content for link.
|
|
56
|
+
*/
|
|
57
|
+
static link(cardKey: string, linkTypeName: string): Link;
|
|
58
|
+
/**
|
|
59
|
+
* Default content for link type.
|
|
60
|
+
* @param linkTypeName link type name
|
|
61
|
+
* @returns Default content for link type.
|
|
62
|
+
*/
|
|
63
|
+
static linkType(linkTypeName: string): LinkType;
|
|
64
|
+
/**
|
|
65
|
+
* Default content for report type.
|
|
66
|
+
* @param reportName report name
|
|
67
|
+
* @returns Default content for report type.
|
|
68
|
+
*/
|
|
69
|
+
static report(reportName: string): ReportMetadata;
|
|
70
|
+
/**
|
|
71
|
+
* Default template content
|
|
72
|
+
* @returns Default template content
|
|
73
|
+
*/
|
|
74
|
+
static template(templateName: string): TemplateMetadata;
|
|
75
|
+
/**
|
|
76
|
+
* Default content for workflow JSON values.
|
|
77
|
+
* @param {string} workflowName workflow name
|
|
78
|
+
* @returns Default content for workflow JSON values.
|
|
79
|
+
*/
|
|
80
|
+
static workflow(workflowName: string): Workflow;
|
|
81
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/**
|
|
2
|
+
Cyberismo
|
|
3
|
+
Copyright © Cyberismo Ltd and contributors 2024
|
|
4
|
+
|
|
5
|
+
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3 as published by the Free Software Foundation.
|
|
6
|
+
|
|
7
|
+
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
|
|
8
|
+
|
|
9
|
+
You should have received a copy of the GNU Affero General Public
|
|
10
|
+
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
11
|
+
*/
|
|
12
|
+
import { WorkflowCategory } from '../interfaces/resource-interfaces.js';
|
|
13
|
+
import { FIRST_RANK, getRankAfter, sortItems } from '../utils/lexorank.js';
|
|
14
|
+
// Helper function to get latest card rank from a set of cards.
|
|
15
|
+
function latestRank(cards) {
|
|
16
|
+
// Only use cards that have 'rank'.
|
|
17
|
+
const filteredCards = cards.filter((c) => c.metadata?.rank !== undefined || c.metadata?.rank !== '');
|
|
18
|
+
let latestRank = sortItems(filteredCards, (c) => c.metadata?.rank || '').pop()
|
|
19
|
+
?.metadata?.rank;
|
|
20
|
+
if (!latestRank) {
|
|
21
|
+
latestRank = FIRST_RANK;
|
|
22
|
+
}
|
|
23
|
+
const newRank = getRankAfter(latestRank);
|
|
24
|
+
latestRank = newRank;
|
|
25
|
+
return latestRank;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Provides default values for resources and cards.
|
|
29
|
+
*/
|
|
30
|
+
export class DefaultContent {
|
|
31
|
+
/**
|
|
32
|
+
* Returns card with default content. Card is automatically ranked last, if siblings are provided.
|
|
33
|
+
* @param cardType Card type; custom values from card type are set to null.
|
|
34
|
+
* @param siblings Optional. If given, content will have been ranked last.
|
|
35
|
+
* @returns card with default content.
|
|
36
|
+
*/
|
|
37
|
+
static card(cardType, siblings) {
|
|
38
|
+
return Object.assign({
|
|
39
|
+
title: 'Untitled',
|
|
40
|
+
cardType: cardType.name,
|
|
41
|
+
workflowState: '',
|
|
42
|
+
rank: siblings ? latestRank(siblings) : '',
|
|
43
|
+
}, ...cardType.customFields
|
|
44
|
+
.filter((field) => !field.isCalculated)
|
|
45
|
+
.map((field) => ({ [field.name]: null })));
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Default content for card type.
|
|
49
|
+
* @param cardTypeName card type name
|
|
50
|
+
* @param workflowName workflow name
|
|
51
|
+
* @returns Default content for card type.
|
|
52
|
+
*/
|
|
53
|
+
static cardType(cardTypeName, workflowName) {
|
|
54
|
+
return {
|
|
55
|
+
name: cardTypeName,
|
|
56
|
+
workflow: workflowName,
|
|
57
|
+
customFields: [],
|
|
58
|
+
alwaysVisibleFields: [],
|
|
59
|
+
optionallyVisibleFields: [],
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Default content for field type.
|
|
64
|
+
* @param fieldTypeName field type name
|
|
65
|
+
* @param dataType data type for the field type
|
|
66
|
+
* @returns Default content for field type.
|
|
67
|
+
*/
|
|
68
|
+
static fieldType(fieldTypeName, dataType) {
|
|
69
|
+
const value = {
|
|
70
|
+
name: fieldTypeName,
|
|
71
|
+
dataType: dataType,
|
|
72
|
+
};
|
|
73
|
+
if (dataType === 'enum') {
|
|
74
|
+
value.enumValues = [{ enumValue: 'value1' }, { enumValue: 'value2' }];
|
|
75
|
+
}
|
|
76
|
+
return value;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Default content for graph model.
|
|
80
|
+
* @param graphModelName graph model name
|
|
81
|
+
* @returns Default content for graph model.
|
|
82
|
+
*/
|
|
83
|
+
static graphModel(graphModelName) {
|
|
84
|
+
return {
|
|
85
|
+
name: graphModelName,
|
|
86
|
+
displayName: '',
|
|
87
|
+
description: '',
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Default content for graph view.
|
|
92
|
+
* @param graphViewName graph view name
|
|
93
|
+
* @returns Default content for graph view.
|
|
94
|
+
*/
|
|
95
|
+
static graphView(graphViewName) {
|
|
96
|
+
return {
|
|
97
|
+
name: graphViewName,
|
|
98
|
+
displayName: '',
|
|
99
|
+
description: '',
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Default content for link.
|
|
104
|
+
* @param cardKey card key id
|
|
105
|
+
* @param linkTypeName link type name
|
|
106
|
+
* @returns Default content for link.
|
|
107
|
+
*/
|
|
108
|
+
static link(cardKey, linkTypeName) {
|
|
109
|
+
return {
|
|
110
|
+
linkType: linkTypeName,
|
|
111
|
+
cardKey: cardKey,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Default content for link type.
|
|
116
|
+
* @param linkTypeName link type name
|
|
117
|
+
* @returns Default content for link type.
|
|
118
|
+
*/
|
|
119
|
+
static linkType(linkTypeName) {
|
|
120
|
+
return {
|
|
121
|
+
name: linkTypeName,
|
|
122
|
+
outboundDisplayName: linkTypeName,
|
|
123
|
+
inboundDisplayName: linkTypeName,
|
|
124
|
+
sourceCardTypes: [],
|
|
125
|
+
destinationCardTypes: [],
|
|
126
|
+
enableLinkDescription: false,
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Default content for report type.
|
|
131
|
+
* @param reportName report name
|
|
132
|
+
* @returns Default content for report type.
|
|
133
|
+
*/
|
|
134
|
+
static report(reportName) {
|
|
135
|
+
return {
|
|
136
|
+
name: reportName,
|
|
137
|
+
displayName: '',
|
|
138
|
+
description: '',
|
|
139
|
+
category: 'Uncategorised report',
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Default template content
|
|
144
|
+
* @returns Default template content
|
|
145
|
+
*/
|
|
146
|
+
static template(templateName) {
|
|
147
|
+
return {
|
|
148
|
+
name: templateName,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Default content for workflow JSON values.
|
|
153
|
+
* @param {string} workflowName workflow name
|
|
154
|
+
* @returns Default content for workflow JSON values.
|
|
155
|
+
*/
|
|
156
|
+
static workflow(workflowName) {
|
|
157
|
+
return {
|
|
158
|
+
name: workflowName,
|
|
159
|
+
states: [
|
|
160
|
+
{ name: 'Draft', category: WorkflowCategory.initial },
|
|
161
|
+
{ name: 'Approved', category: WorkflowCategory.closed },
|
|
162
|
+
{ name: 'Deprecated', category: WorkflowCategory.closed },
|
|
163
|
+
],
|
|
164
|
+
transitions: [
|
|
165
|
+
{
|
|
166
|
+
name: 'Create',
|
|
167
|
+
fromState: [''],
|
|
168
|
+
toState: 'Draft',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
name: 'Approve',
|
|
172
|
+
fromState: ['Draft'],
|
|
173
|
+
toState: 'Approved',
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
name: 'Archive',
|
|
177
|
+
fromState: ['*'],
|
|
178
|
+
toState: 'Deprecated',
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=create-defaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-defaults.js","sourceRoot":"","sources":["../../src/resources/create-defaults.ts"],"names":[],"mappings":"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"}
|