@cyberismo/data-handler 0.0.14 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/dist/card-metadata-updater.js +1 -3
  2. package/dist/card-metadata-updater.js.map +1 -1
  3. package/dist/command-handler.js +10 -16
  4. package/dist/command-handler.js.map +1 -1
  5. package/dist/command-manager.d.ts +1 -1
  6. package/dist/command-manager.js +4 -3
  7. package/dist/command-manager.js.map +1 -1
  8. package/dist/commands/create.js +13 -59
  9. package/dist/commands/create.js.map +1 -1
  10. package/dist/commands/edit.d.ts +1 -15
  11. package/dist/commands/edit.js +15 -89
  12. package/dist/commands/edit.js.map +1 -1
  13. package/dist/commands/export.js +4 -17
  14. package/dist/commands/export.js.map +1 -1
  15. package/dist/commands/import.js +3 -5
  16. package/dist/commands/import.js.map +1 -1
  17. package/dist/commands/move.d.ts +1 -2
  18. package/dist/commands/move.js +108 -146
  19. package/dist/commands/move.js.map +1 -1
  20. package/dist/commands/remove.js +9 -44
  21. package/dist/commands/remove.js.map +1 -1
  22. package/dist/commands/rename.js +2 -7
  23. package/dist/commands/rename.js.map +1 -1
  24. package/dist/commands/show.d.ts +7 -25
  25. package/dist/commands/show.js +38 -102
  26. package/dist/commands/show.js.map +1 -1
  27. package/dist/commands/transition.js +27 -30
  28. package/dist/commands/transition.js.map +1 -1
  29. package/dist/commands/update.d.ts +5 -3
  30. package/dist/commands/update.js +19 -5
  31. package/dist/commands/update.js.map +1 -1
  32. package/dist/commands/validate.d.ts +3 -3
  33. package/dist/commands/validate.js +19 -26
  34. package/dist/commands/validate.js.map +1 -1
  35. package/dist/containers/card-container.d.ts +87 -24
  36. package/dist/containers/card-container.js +183 -279
  37. package/dist/containers/card-container.js.map +1 -1
  38. package/dist/containers/project/calculation-engine.d.ts +6 -0
  39. package/dist/containers/project/calculation-engine.js +19 -12
  40. package/dist/containers/project/calculation-engine.js.map +1 -1
  41. package/dist/containers/project/card-cache.d.ts +146 -0
  42. package/dist/containers/project/card-cache.js +411 -0
  43. package/dist/containers/project/card-cache.js.map +1 -0
  44. package/dist/containers/project/resource-collector.d.ts +24 -1
  45. package/dist/containers/project/resource-collector.js +8 -1
  46. package/dist/containers/project/resource-collector.js.map +1 -1
  47. package/dist/containers/project.d.ts +117 -83
  48. package/dist/containers/project.js +418 -252
  49. package/dist/containers/project.js.map +1 -1
  50. package/dist/containers/template.d.ts +15 -31
  51. package/dist/containers/template.js +97 -104
  52. package/dist/containers/template.js.map +1 -1
  53. package/dist/index.d.ts +1 -0
  54. package/dist/index.js +1 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/interfaces/folder-content-interfaces.d.ts +2 -1
  57. package/dist/interfaces/folder-content-interfaces.js.map +1 -1
  58. package/dist/interfaces/macros.d.ts +1 -0
  59. package/dist/interfaces/macros.js +1 -1
  60. package/dist/interfaces/macros.js.map +1 -1
  61. package/dist/interfaces/project-interfaces.d.ts +5 -1
  62. package/dist/interfaces/project-interfaces.js.map +1 -1
  63. package/dist/interfaces/resource-interfaces.d.ts +11 -21
  64. package/dist/interfaces/resource-interfaces.js +3 -0
  65. package/dist/interfaces/resource-interfaces.js.map +1 -1
  66. package/dist/macros/common.d.ts +10 -10
  67. package/dist/macros/createCards/index.d.ts +0 -13
  68. package/dist/macros/createCards/index.js.map +1 -1
  69. package/dist/macros/createCards/types.d.ts +44 -0
  70. package/dist/macros/createCards/types.js +15 -0
  71. package/dist/macros/createCards/types.js.map +1 -0
  72. package/dist/macros/graph/index.d.ts +2 -6
  73. package/dist/macros/graph/index.js +2 -2
  74. package/dist/macros/graph/index.js.map +1 -1
  75. package/dist/macros/graph/types.d.ts +23 -0
  76. package/dist/macros/graph/types.js +15 -0
  77. package/dist/macros/graph/types.js.map +1 -0
  78. package/dist/macros/image/index.d.ts +8 -16
  79. package/dist/macros/image/index.js +36 -33
  80. package/dist/macros/image/index.js.map +1 -1
  81. package/dist/macros/image/types.d.ts +38 -0
  82. package/dist/macros/image/types.js +15 -0
  83. package/dist/macros/image/types.js.map +1 -0
  84. package/dist/macros/include/index.d.ts +1 -6
  85. package/dist/macros/include/index.js +4 -7
  86. package/dist/macros/include/index.js.map +1 -1
  87. package/dist/macros/include/types.d.ts +31 -0
  88. package/dist/macros/include/types.js +15 -0
  89. package/dist/macros/include/types.js.map +1 -0
  90. package/dist/macros/percentage/index.d.ts +0 -6
  91. package/dist/macros/percentage/index.js.map +1 -1
  92. package/dist/macros/percentage/types.d.ts +31 -0
  93. package/dist/macros/percentage/types.js +15 -0
  94. package/dist/macros/percentage/types.js.map +1 -0
  95. package/dist/macros/report/index.d.ts +0 -3
  96. package/dist/macros/report/index.js.map +1 -1
  97. package/dist/macros/report/types.d.ts +19 -0
  98. package/dist/macros/report/types.js +15 -0
  99. package/dist/macros/report/types.js.map +1 -0
  100. package/dist/macros/scoreCard/index.d.ts +0 -6
  101. package/dist/macros/scoreCard/index.js.map +1 -1
  102. package/dist/macros/scoreCard/types.d.ts +31 -0
  103. package/dist/macros/scoreCard/types.js +15 -0
  104. package/dist/macros/scoreCard/types.js.map +1 -0
  105. package/dist/macros/types.d.ts +25 -0
  106. package/dist/macros/types.js +2 -0
  107. package/dist/macros/types.js.map +1 -0
  108. package/dist/macros/vega/index.d.ts +0 -4
  109. package/dist/macros/vega/index.js.map +1 -1
  110. package/dist/macros/vega/types.d.ts +20 -0
  111. package/dist/macros/vega/types.js +2 -0
  112. package/dist/macros/vega/types.js.map +1 -0
  113. package/dist/macros/vegalite/index.d.ts +0 -4
  114. package/dist/macros/vegalite/index.js.map +1 -1
  115. package/dist/macros/vegalite/types.d.ts +20 -0
  116. package/dist/macros/vegalite/types.js +15 -0
  117. package/dist/macros/vegalite/types.js.map +1 -0
  118. package/dist/macros/xref/index.d.ts +0 -3
  119. package/dist/macros/xref/index.js +5 -14
  120. package/dist/macros/xref/index.js.map +1 -1
  121. package/dist/macros/xref/types.d.ts +19 -0
  122. package/dist/macros/xref/types.js +15 -0
  123. package/dist/macros/xref/types.js.map +1 -0
  124. package/dist/module-manager.js +4 -4
  125. package/dist/module-manager.js.map +1 -1
  126. package/dist/project-settings.js.map +1 -1
  127. package/dist/resources/calculation-resource.d.ts +4 -32
  128. package/dist/resources/calculation-resource.js +0 -55
  129. package/dist/resources/calculation-resource.js.map +1 -1
  130. package/dist/resources/card-type-resource.d.ts +4 -21
  131. package/dist/resources/card-type-resource.js +13 -44
  132. package/dist/resources/card-type-resource.js.map +1 -1
  133. package/dist/resources/field-type-resource.d.ts +4 -21
  134. package/dist/resources/field-type-resource.js +14 -38
  135. package/dist/resources/field-type-resource.js.map +1 -1
  136. package/dist/resources/file-resource.d.ts +12 -29
  137. package/dist/resources/file-resource.js +19 -293
  138. package/dist/resources/file-resource.js.map +1 -1
  139. package/dist/resources/folder-resource.d.ts +31 -50
  140. package/dist/resources/folder-resource.js +68 -96
  141. package/dist/resources/folder-resource.js.map +1 -1
  142. package/dist/resources/graph-model-resource.d.ts +5 -33
  143. package/dist/resources/graph-model-resource.js +8 -61
  144. package/dist/resources/graph-model-resource.js.map +1 -1
  145. package/dist/resources/graph-view-resource.d.ts +5 -28
  146. package/dist/resources/graph-view-resource.js +6 -45
  147. package/dist/resources/graph-view-resource.js.map +1 -1
  148. package/dist/resources/link-type-resource.d.ts +4 -21
  149. package/dist/resources/link-type-resource.js +6 -31
  150. package/dist/resources/link-type-resource.js.map +1 -1
  151. package/dist/resources/report-resource.d.ts +5 -17
  152. package/dist/resources/report-resource.js +6 -44
  153. package/dist/resources/report-resource.js.map +1 -1
  154. package/dist/resources/resource-object.d.ts +58 -23
  155. package/dist/resources/resource-object.js +293 -24
  156. package/dist/resources/resource-object.js.map +1 -1
  157. package/dist/resources/template-resource.d.ts +4 -15
  158. package/dist/resources/template-resource.js +10 -25
  159. package/dist/resources/template-resource.js.map +1 -1
  160. package/dist/resources/workflow-resource.d.ts +4 -23
  161. package/dist/resources/workflow-resource.js +12 -38
  162. package/dist/resources/workflow-resource.js.map +1 -1
  163. package/dist/utils/card-utils.d.ts +69 -19
  164. package/dist/utils/card-utils.js +179 -30
  165. package/dist/utils/card-utils.js.map +1 -1
  166. package/dist/utils/clingo-facts.js +11 -3
  167. package/dist/utils/clingo-facts.js.map +1 -1
  168. package/dist/utils/clingo-parser.js +1 -1
  169. package/dist/utils/clingo-parser.js.map +1 -1
  170. package/dist/utils/constants.d.ts +2 -0
  171. package/dist/utils/constants.js +4 -0
  172. package/dist/utils/constants.js.map +1 -1
  173. package/dist/utils/csv.js +1 -1
  174. package/dist/utils/csv.js.map +1 -1
  175. package/package.json +5 -5
  176. package/src/card-metadata-updater.ts +3 -5
  177. package/src/command-handler.ts +11 -18
  178. package/src/command-manager.ts +4 -3
  179. package/src/commands/create.ts +17 -83
  180. package/src/commands/edit.ts +16 -132
  181. package/src/commands/export.ts +8 -29
  182. package/src/commands/import.ts +4 -6
  183. package/src/commands/move.ts +144 -179
  184. package/src/commands/remove.ts +9 -52
  185. package/src/commands/rename.ts +2 -7
  186. package/src/commands/show.ts +50 -143
  187. package/src/commands/transition.ts +30 -33
  188. package/src/commands/update.ts +27 -9
  189. package/src/commands/validate.ts +21 -36
  190. package/src/containers/card-container.ts +200 -360
  191. package/src/containers/project/calculation-engine.ts +21 -13
  192. package/src/containers/project/card-cache.ts +497 -0
  193. package/src/containers/project/resource-collector.ts +9 -1
  194. package/src/containers/project.ts +529 -327
  195. package/src/containers/template.ts +109 -127
  196. package/src/index.ts +1 -0
  197. package/src/interfaces/folder-content-interfaces.ts +7 -1
  198. package/src/interfaces/macros.ts +2 -0
  199. package/src/interfaces/project-interfaces.ts +7 -1
  200. package/src/interfaces/resource-interfaces.ts +12 -24
  201. package/src/macros/createCards/index.ts +1 -12
  202. package/src/macros/createCards/types.ts +46 -0
  203. package/src/macros/graph/index.ts +3 -7
  204. package/src/macros/graph/types.ts +24 -0
  205. package/src/macros/image/index.ts +50 -61
  206. package/src/macros/image/types.ts +39 -0
  207. package/src/macros/include/index.ts +6 -15
  208. package/src/macros/include/types.ts +32 -0
  209. package/src/macros/percentage/index.ts +1 -7
  210. package/src/macros/percentage/types.ts +32 -0
  211. package/src/macros/report/index.ts +1 -4
  212. package/src/macros/report/types.ts +20 -0
  213. package/src/macros/scoreCard/index.ts +1 -7
  214. package/src/macros/scoreCard/types.ts +32 -0
  215. package/src/macros/types.ts +48 -0
  216. package/src/macros/vega/index.ts +1 -4
  217. package/src/macros/vega/types.ts +21 -0
  218. package/src/macros/vegalite/index.ts +1 -4
  219. package/src/macros/vegalite/types.ts +22 -0
  220. package/src/macros/xref/index.ts +6 -20
  221. package/src/macros/xref/types.ts +20 -0
  222. package/src/module-manager.ts +5 -5
  223. package/src/project-settings.ts +1 -1
  224. package/src/resources/calculation-resource.ts +6 -76
  225. package/src/resources/card-type-resource.ts +24 -59
  226. package/src/resources/field-type-resource.ts +22 -51
  227. package/src/resources/file-resource.ts +27 -409
  228. package/src/resources/folder-resource.ts +98 -124
  229. package/src/resources/graph-model-resource.ts +17 -74
  230. package/src/resources/graph-view-resource.ts +14 -54
  231. package/src/resources/link-type-resource.ts +13 -40
  232. package/src/resources/report-resource.ts +17 -57
  233. package/src/resources/resource-object.ts +435 -32
  234. package/src/resources/template-resource.ts +16 -29
  235. package/src/resources/workflow-resource.ts +26 -50
  236. package/src/utils/card-utils.ts +217 -31
  237. package/src/utils/clingo-facts.ts +13 -3
  238. package/src/utils/clingo-parser.ts +1 -1
  239. package/src/utils/constants.ts +6 -0
  240. package/src/utils/csv.ts +1 -1
@@ -23,17 +23,11 @@ export class Transition {
23
23
  * @param transition which transition to do
24
24
  */
25
25
  async cardTransition(cardKey, transition) {
26
- // Card details
27
- const details = await this.project.cardDetailsById(cardKey, {
28
- metadata: true,
29
- });
30
- if (!details || !details.metadata) {
31
- throw new Error(`Card ${cardKey} does not exist in the project`);
32
- }
26
+ const card = this.project.findCard(cardKey);
33
27
  // Card type
34
- const cardType = await this.project.resource(details.metadata?.cardType);
28
+ const cardType = this.project.resource(card.metadata?.cardType || '');
35
29
  if (cardType === undefined) {
36
- throw new Error(`Card's card type '${details.metadata?.cardType}' does not exist in the project`);
30
+ throw new Error(`Card's card type '${card.metadata?.cardType}' does not exist in the project`);
37
31
  }
38
32
  // Workflow
39
33
  const workflow = await this.project.resource(cardType.workflow);
@@ -41,11 +35,11 @@ export class Transition {
41
35
  throw new Error(`Card's workflow '${cardType.workflow}' does not exist in the project`);
42
36
  }
43
37
  // Check that the state transition can be made "from".
44
- const foundFrom = workflow.transitions.find((item) => (details.metadata &&
45
- item.fromState.includes(details.metadata?.workflowState)) ||
38
+ const foundFrom = workflow.transitions.find((item) => (card.metadata &&
39
+ item.fromState.includes(card.metadata?.workflowState)) ||
46
40
  item.fromState.includes('*'));
47
41
  if (!foundFrom) {
48
- throw new Error(`Card's workflow '${cardType.workflow}' does not contain transition from card's current state '${details.metadata?.workflowState}'`);
42
+ throw new Error(`Card's workflow '${cardType.workflow}' does not contain transition from card's current state '${card.metadata?.workflowState}'`);
49
43
  }
50
44
  // Check that the state transition can be made "to".
51
45
  const found = workflow.transitions.find((item) => item.name === transition.name);
@@ -54,28 +48,31 @@ export class Transition {
54
48
  throw new Error(`Card's workflow '${cardType.workflow}' does not contain state transition '${transition.name}'.
55
49
  \nThe available transitions are: ${transitionNames.join(', ')}`);
56
50
  }
57
- if (!(found.fromState.includes(details.metadata?.workflowState) ||
51
+ if (!((card.metadata?.workflowState &&
52
+ found.fromState.includes(card.metadata.workflowState)) ||
58
53
  found.fromState.includes('*'))) {
59
- throw new Error(`Card's workflow '${cardType.workflow}' does not contain state transition from state '${details.metadata?.workflowState}' for '${transition.name}`);
54
+ throw new Error(`Card's workflow '${cardType.workflow}' does not contain state transition from state '${card.metadata?.workflowState}' for '${transition.name}`);
60
55
  }
61
56
  const actionGuard = new ActionGuard(this.project.calculationEngine);
62
57
  await actionGuard.checkPermission('transition', cardKey, transition.name);
63
- details.metadata.workflowState = found.toState;
64
- details.metadata.lastUpdated = new Date().toISOString();
65
- details.metadata.lastTransitioned = new Date().toISOString();
66
- return this.project
67
- .updateCardMetadata(details, details.metadata)
68
- .then(async () => this.transitionChangesQuery(cardKey, transition.name))
69
- .then(async (queryResult) => {
70
- if (!queryResult ||
71
- queryResult.at(0) === undefined ||
72
- queryResult.at(0)?.updateFields === undefined) {
73
- return;
74
- }
75
- const fieldsToUpdate = queryResult.at(0).updateFields;
76
- return CardMetadataUpdater.apply(this.project, fieldsToUpdate);
77
- })
78
- .catch((error) => console.error(error));
58
+ if (card.metadata) {
59
+ card.metadata.workflowState = found.toState;
60
+ card.metadata.lastUpdated = new Date().toISOString();
61
+ card.metadata.lastTransitioned = new Date().toISOString();
62
+ return this.project
63
+ .updateCardMetadata(card, card.metadata)
64
+ .then(async () => this.transitionChangesQuery(cardKey, transition.name))
65
+ .then(async (queryResult) => {
66
+ if (!queryResult ||
67
+ queryResult.at(0) === undefined ||
68
+ queryResult.at(0)?.updateFields === undefined) {
69
+ return;
70
+ }
71
+ const fieldsToUpdate = queryResult.at(0).updateFields;
72
+ return CardMetadataUpdater.apply(this.project, fieldsToUpdate);
73
+ })
74
+ .catch((error) => console.error(error));
75
+ }
79
76
  }
80
77
  // Wrapper to run onTransition query.
81
78
  async transitionChangesQuery(cardKey, transition) {
@@ -1 +1 @@
1
- {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../src/commands/transition.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transition.js","sourceRoot":"","sources":["../../src/commands/transition.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@
11
11
  */
12
12
  import type { OperationFor, UpdateOperations } from '../resources/resource-object.js';
13
13
  import { Project } from '../containers/project.js';
14
+ import type { UpdateKey } from '../interfaces/resource-interfaces.js';
14
15
  /**
15
16
  * Class that handles 'update' commands.
16
17
  */
@@ -21,7 +22,7 @@ export declare class Update {
21
22
  * Updates single resource property.
22
23
  * @param name Name of the resource to operate on.
23
24
  * @param operation Operation to perform ('add', 'remove', 'change', 'rank')
24
- * @param key Property to change in resource JSON
25
+ * @param key Property to change in resource JSON. If content, content/<property>
25
26
  * @param value Value for 'key'
26
27
  * @param optionalDetail Additional detail needed for some operations. For example, 'update' needs a new value.
27
28
  * @param mappingTable Optional mapping table for workflow state transitions (only used for workflow changes)
@@ -34,10 +35,11 @@ export declare class Update {
34
35
  * Update single resource property
35
36
  * This is similar to updateValue, but allows the operation to be fully specified
36
37
  * @param name Name of the resource to operate on.
37
- * @param key Property to change in resource JSON
38
+ * @param updateKey Property to change in resource or in resource content.
38
39
  * @param operation The full operation object
39
40
  * @template Type Type of the target of the operation
40
41
  * @template T Type of operation ('add', 'remove', 'change', 'rank')
42
+ * @template K Type of the key to change
41
43
  */
42
- applyResourceOperation<Type, T extends UpdateOperations>(name: string, key: string, operation: OperationFor<Type, T>): Promise<void>;
44
+ applyResourceOperation<Type, T extends UpdateOperations, K extends string>(name: string, updateKey: UpdateKey<K>, operation: OperationFor<Type, T>): Promise<void>;
43
45
  }
@@ -23,7 +23,7 @@ export class Update {
23
23
  * Updates single resource property.
24
24
  * @param name Name of the resource to operate on.
25
25
  * @param operation Operation to perform ('add', 'remove', 'change', 'rank')
26
- * @param key Property to change in resource JSON
26
+ * @param key Property to change in resource JSON. If content, content/<property>
27
27
  * @param value Value for 'key'
28
28
  * @param optionalDetail Additional detail needed for some operations. For example, 'update' needs a new value.
29
29
  * @param mappingTable Optional mapping table for workflow state transitions (only used for workflow changes)
@@ -62,20 +62,34 @@ export class Update {
62
62
  ? optionalDetail
63
63
  : undefined;
64
64
  }
65
- await this.applyResourceOperation(name, key, op);
65
+ const splitKey = key.split('/');
66
+ if (splitKey.length !== 1 && splitKey.length !== 2) {
67
+ throw new Error(`Invalid key format: ${key}. Use 'property' or 'content/<property>'.`);
68
+ }
69
+ if (splitKey.length === 2 && splitKey[0] !== 'content') {
70
+ throw new Error(`Invalid key format: ${key}. When using 'content', always use as 'content/<property>'.`);
71
+ }
72
+ const [parsedKey, subKey] = splitKey;
73
+ if (parsedKey === 'content') {
74
+ await this.applyResourceOperation(name, { key: parsedKey, subKey }, op);
75
+ }
76
+ else {
77
+ await this.applyResourceOperation(name, { key: parsedKey }, op);
78
+ }
66
79
  }
67
80
  /**
68
81
  * Update single resource property
69
82
  * This is similar to updateValue, but allows the operation to be fully specified
70
83
  * @param name Name of the resource to operate on.
71
- * @param key Property to change in resource JSON
84
+ * @param updateKey Property to change in resource or in resource content.
72
85
  * @param operation The full operation object
73
86
  * @template Type Type of the target of the operation
74
87
  * @template T Type of operation ('add', 'remove', 'change', 'rank')
88
+ * @template K Type of the key to change
75
89
  */
76
- async applyResourceOperation(name, key, operation) {
90
+ async applyResourceOperation(name, updateKey, operation) {
77
91
  const resource = Project.resourceObject(this.project, resourceName(name));
78
- await resource?.update(key, operation);
92
+ await resource?.update(updateKey, operation);
79
93
  this.project.collectLocalResources();
80
94
  }
81
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAWF,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D;;GAEG;AACH,MAAM,OAAO,MAAM;IACG;IAApB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;;;;;;;OAQG;IACI,KAAK,CAAC,WAAW,CACtB,IAAY,EACZ,SAA2B,EAC3B,GAAW,EACX,KAAW,EACX,cAAqB,EAAE,kEAAkE;IACzF,YAAuD;QAEvD,MAAM,EAAE,GAAoB;YAC1B,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,EAAU;YAClB,EAAE,EAAE,EAAU;YACd,QAAQ,EAAE,CAAW;SACtB,CAAC;QAEF,qCAAqC;QACrC,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;YACvB,EAAyB,CAAC,MAAM,GAAG,KAAK,CAAC;QAC5C,CAAC;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjC,EAA4B,CAAC,MAAM,GAAG,cAAc;gBACnD,CAAC,CAAC,KAAK;gBACP,CAAC,CAAE,cAAuB,CAAC;YAC5B,EAA4B,CAAC,EAAE,GAAG,cAAc;gBAC/C,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAE,KAAc,CAAC;YACpB,uDAAuD;YACvD,IAAI,YAAY,EAAE,CAAC;gBAChB,EAA4B,CAAC,YAAY,GAAG,YAAY,CAAC;YAC5D,CAAC;QACH,CAAC;aAAM,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAC/B,EAA0B,CAAC,QAAQ,GAAG,cAAwB,CAAC;YAC/D,EAA0B,CAAC,MAAM,GAAG,KAAK,CAAC;QAC7C,CAAC;aAAM,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;YACjC,EAA4B,CAAC,MAAM,GAAG,KAAK,CAAC;YAC5C,EAA4B,CAAC,gBAAgB,GAAG,cAAc;gBAC7D,CAAC,CAAC,cAAc;gBAChB,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,sBAAsB,CACjC,IAAY,EACZ,GAAW,EACX,SAAgC;QAEhC,MAAM,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1E,MAAM,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IACvC,CAAC;CACF"}
1
+ {"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
@@ -102,7 +102,7 @@ export declare class Validate {
102
102
  * @param prefixes currently used project prefixes
103
103
  * @returns resource name as valid resource name; throws in error cases.
104
104
  */
105
- validResourceName(resourceType: ResourceTypes, name: string, prefixes: string[]): Promise<string>;
105
+ validResourceName(resourceType: ResourceTypes, name: string, prefixes: string[]): string;
106
106
  /**
107
107
  * Validates that 'prefix' is valid project prefix.
108
108
  * @param prefix project prefix
@@ -120,7 +120,7 @@ export declare class Validate {
120
120
  * Validates the labels of a card
121
121
  * @param card card to validate. Card must have metadata.
122
122
  */
123
- validateCardLabels(card: Card): Promise<string>;
123
+ validateCardLabels(card: Card): string;
124
124
  /**
125
125
  * Checks if card's current workflow state matches workflow that card's card type is using.
126
126
  * Template cards are expected to have empty workflow state.
@@ -128,7 +128,7 @@ export declare class Validate {
128
128
  * @param card Card object to validate
129
129
  * @returns string containing all validation errors
130
130
  */
131
- validateWorkflowState(project: Project, card: Card): Promise<string>;
131
+ validateWorkflowState(project: Project, card: Card): string;
132
132
  /**
133
133
  * Validates a single resource.
134
134
  * @param resource Resource to validate
@@ -104,15 +104,12 @@ export class Validate {
104
104
  }
105
105
  // Puts resource to a local cache if found and returns the resource.
106
106
  // If value is already cached, returns from cache.
107
- async getAndCacheResource(project, cachedValues, valueName) {
108
- return (cachedValues.get(valueName) ||
109
- project.resource(valueName).then((resource) => {
110
- if (!resource) {
111
- return undefined;
112
- }
113
- cachedValues.set(valueName, resource);
114
- return resource;
115
- }));
107
+ getAndCacheResource(project, cachedValues, valueName) {
108
+ const resource = project.resource(valueName);
109
+ if (resource) {
110
+ cachedValues.set(valueName, resource);
111
+ }
112
+ return resource;
116
113
  }
117
114
  parseValidatorMessage(errorObject) {
118
115
  let parsedErrorMessage = '';
@@ -266,7 +263,7 @@ export class Validate {
266
263
  const errors = [];
267
264
  if (cardType && fieldArray) {
268
265
  const validationPromises = fieldArray.map(async (field) => {
269
- const fieldType = await this.getAndCacheResource(project, this.validatedFieldTypes, field);
266
+ const fieldType = this.getAndCacheResource(project, this.validatedFieldTypes, field);
270
267
  if (!fieldType) {
271
268
  return `Card type '${cardType.name}' has invalid reference to unknown ${nameOfArray} '${field}'`;
272
269
  }
@@ -391,14 +388,15 @@ export class Validate {
391
388
  else {
392
389
  const errorMsg = [];
393
390
  const project = projectFn();
391
+ await project.populateCaches();
394
392
  // Then, validate that each 'contentSchema' children as well.
395
393
  const result = await this.readAndValidateContentFiles(project, projectPath);
396
394
  if (result.length > 0) {
397
395
  errorMsg.push(...result);
398
396
  }
399
397
  // Finally, validate that each card is correct
400
- const cards = await project.cards();
401
- cards.push(...(await project.allTemplateCards()));
398
+ const cards = project.cards();
399
+ cards.push(...project.allTemplateCards());
402
400
  const cardIds = new Map();
403
401
  for (const card of cards) {
404
402
  if (cardIds.has(card.key)) {
@@ -408,9 +406,8 @@ export class Validate {
408
406
  cardIds.set(card.key, 1);
409
407
  }
410
408
  if (card.metadata) {
411
- // validate card's workflow
412
409
  if (!isTemplateCard(card)) {
413
- const validWorkflow = await this.validateWorkflowState(project, card);
410
+ const validWorkflow = this.validateWorkflowState(project, card);
414
411
  if (validWorkflow.length !== 0) {
415
412
  errorMsg.push(validWorkflow);
416
413
  }
@@ -429,7 +426,7 @@ export class Validate {
429
426
  await evaluateMacros(card.content, {
430
427
  context: 'localApp',
431
428
  mode: 'validate',
432
- project,
429
+ project: project,
433
430
  cardKey: card.key,
434
431
  });
435
432
  }
@@ -494,15 +491,11 @@ export class Validate {
494
491
  * @param prefixes currently used project prefixes
495
492
  * @returns resource name as valid resource name; throws in error cases.
496
493
  */
497
- async validResourceName(resourceType, name, prefixes) {
494
+ validResourceName(resourceType, name, prefixes) {
498
495
  const resource = resourceName(name);
499
496
  resource.type = resource.type ? resource.type : resourceType;
500
- // a bit shaky way to ensure that prefix is set; first of the project prefixes should be the actual project prefix.
501
497
  if (resource.prefix === '') {
502
- resource.prefix = prefixes.length > 0 ? prefixes.at(0) || '' : '';
503
- if (resource.prefix === '') {
504
- throw new Error(`Project prefix cannot be empty string`);
505
- }
498
+ throw new Error(`Project prefix cannot be empty string`);
506
499
  }
507
500
  if (!prefixes.includes(resource.prefix)) {
508
501
  throw new Error(`Resource name can only refer to project that it is part of. Prefix '${resource.prefix}' is not included in '[${prefixes.join(',')}]'`);
@@ -537,7 +530,7 @@ export class Validate {
537
530
  if (!card.metadata) {
538
531
  throw new Error(`Card '${card.key}' has no metadata. Card object needs to be instantiated with '{metadata: true}'`);
539
532
  }
540
- const cardType = await this.getAndCacheResource(project, this.validatedCardTypes, card.metadata?.cardType);
533
+ const cardType = this.getAndCacheResource(project, this.validatedCardTypes, card.metadata?.cardType);
541
534
  if (!cardType) {
542
535
  validationErrors.push(`Card '${card.key}' has invalid card type '${card.metadata?.cardType}'`);
543
536
  return validationErrors.join('\n');
@@ -595,7 +588,7 @@ export class Validate {
595
588
  * Validates the labels of a card
596
589
  * @param card card to validate. Card must have metadata.
597
590
  */
598
- async validateCardLabels(card) {
591
+ validateCardLabels(card) {
599
592
  const validationErrors = [];
600
593
  if (!card.metadata) {
601
594
  validationErrors.push(`Card '${card.key}' has no metadata. Card object needs to be instantiated with '{metadata: true}'`);
@@ -623,13 +616,13 @@ export class Validate {
623
616
  * @param card Card object to validate
624
617
  * @returns string containing all validation errors
625
618
  */
626
- async validateWorkflowState(project, card) {
619
+ validateWorkflowState(project, card) {
627
620
  const validationErrors = [];
628
621
  if (!card.metadata) {
629
622
  validationErrors.push(`Card '${card.key}' has no metadata. Card object needs to be instantiated with '{metadata: true}'`);
630
623
  }
631
624
  // Use caches for cardTypes and workflows, to avoid re-reading the same JSON files multiple times.
632
- const cardType = await this.getAndCacheResource(project, this.validatedCardTypes, card.metadata?.cardType || '');
625
+ const cardType = this.getAndCacheResource(project, this.validatedCardTypes, card.metadata?.cardType || '');
633
626
  if (!cardType) {
634
627
  validationErrors.push(`Card '${card.key}' has invalid card type '${card.metadata?.cardType}'`);
635
628
  return validationErrors.join('\n');
@@ -638,7 +631,7 @@ export class Validate {
638
631
  validationErrors.push(`Card type '${card.metadata?.cardType}' does not have 'workflow'`);
639
632
  return validationErrors.join('\n');
640
633
  }
641
- const workflow = await this.getAndCacheResource(project, this.validatedWorkflows, cardType.workflow);
634
+ const workflow = this.getAndCacheResource(project, this.validatedWorkflows, cardType.workflow);
642
635
  if (!workflow) {
643
636
  validationErrors.push(`Workflow of '${cardType.workflow}' card type '${card.metadata?.cardType}' does not exist in the project`);
644
637
  return validationErrors.join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -11,40 +11,103 @@
11
11
  You should have received a copy of the GNU Affero General Public
12
12
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
13
  */
14
- import { type CardAttachment, type Card, type FetchCardDetails } from '../interfaces/project-interfaces.js';
14
+ import { CardCache } from './project/card-cache.js';
15
+ import type { CardAttachment, Card, FetchCardDetails } from '../interfaces/project-interfaces.js';
15
16
  /**
16
17
  * Card container base class. Used for both Project and Template.
17
18
  * Contains common card-related functionality.
18
19
  */
19
20
  export declare class CardContainer {
20
21
  basePath: string;
22
+ protected cardCache: CardCache;
21
23
  protected containerName: string;
22
- static projectConfigFileName: string;
23
- static cardMetadataFile: string;
24
+ protected prefix: string;
24
25
  static cardContentFile: string;
26
+ static cardMetadataFile: string;
27
+ static projectConfigFileName: string;
25
28
  static schemaContentFile: string;
26
- constructor(path: string, name: string);
27
- private childrenCards;
28
- private doCollectAttachments;
29
- private doCollectCards;
30
- private doFindCard;
31
- private getAttachments;
32
- private getChildren;
33
- private getContent;
34
- private getMetadata;
35
- private injectLinksIfMissing;
36
- private parentCard;
37
- protected attachments(path: string): Promise<CardAttachment[]>;
38
- protected cards(path: string, details?: FetchCardDetails, directChildrenOnly?: boolean): Promise<Card[]>;
39
- protected findCard(path: string, cardKey: string, details?: FetchCardDetails): Promise<Card | undefined>;
40
- protected hasCard(cardKey: string, path: string): boolean;
29
+ constructor(path: string, prefix: string, name: string);
30
+ private filterCardDetails;
31
+ private filterCardsDetails;
32
+ /**
33
+ * Determines the container from a given path.
34
+ * @param path The filesystem path to analyze
35
+ * @returns Location string: 'project' for project cards, template name for template cards
36
+ */
37
+ protected determineContainer(path: string): string;
38
+ /**
39
+ * Populates the card cache with all cards from all locations.
40
+ */
41
+ protected populateCardsCache(): Promise<void>;
42
+ /**
43
+ * Populates template cards into the cache.
44
+ */
45
+ protected populateTemplateCards(): Promise<void>;
46
+ /**
47
+ * Lists all attachments from the container.
48
+ * @param path Path where attachments should be collected.
49
+ * @returns attachments from the container.
50
+ */
51
+ protected attachments(path: string): CardAttachment[];
52
+ /**
53
+ * Shows all cards from the container with the given details (by default all of them).
54
+ * @param path Path where cards should be listed.
55
+ * @param details Which details of the card should be included
56
+ * @returns all cards from the container
57
+ */
58
+ protected cards(path: string, details?: FetchCardDetails): Card[];
59
+ /**
60
+ * Finds a specific card.
61
+ * @param cardKey Card key to find
62
+ * @param details Card details to be included in the card
63
+ * @throws if card does not exist in the container
64
+ */
65
+ protected findCard(cardKey: string, details?: FetchCardDetails): Card;
66
+ /**
67
+ * Removes a card. If card has children, they are removed as well.
68
+ * @param cardKey Card key to remove.
69
+ * @returns true, if card was removed; false otherwise
70
+ */
71
+ protected removeCard(cardKey: string): Promise<boolean>;
72
+ /**
73
+ * Persists the whole card.
74
+ * @param card Card to persist
75
+ */
41
76
  protected saveCard(card: Card): Promise<void>;
42
- protected saveCardContent(card: Card): Promise<void>;
43
- protected saveCardMetadata(card: Card): Promise<void>;
44
77
  /**
45
- * Show cards with hierarchy structure from a given path.
46
- * @param path The path to read cards from
47
- * @returns an array of cards with proper parent-child relationships.
78
+ * Persists card content.
79
+ * @param card Card to persist.
80
+ * @returns true if card was updated; false otherwise.
81
+ */
82
+ protected saveCardContent(card: Card): Promise<boolean>;
83
+ /**
84
+ * Persists card metadata.
85
+ * @param card Card to persist
86
+ * @returns true if card was updated; false otherwise.
87
+ */
88
+ protected saveCardMetadata(card: Card): Promise<boolean>;
89
+ /**
90
+ * Show root cards from a given path.
91
+ * @param path The path to get cards from
92
+ * @returns an array of root-level cards (each with their children populated).
93
+ */
94
+ protected showCards(path: string): Card[];
95
+ /**
96
+ * Checks if container has the specified card.
97
+ * @param cardKey Card key to check
98
+ * @return true, if card is in the container
99
+ */
100
+ hasCard(cardKey: string): boolean;
101
+ /**
102
+ * Checks if container has the specified project card.
103
+ * @param cardKey Card key to check
104
+ * @return true, if card is in the container
105
+ */
106
+ hasProjectCard(cardKey: string): boolean;
107
+ /**
108
+ * Checks if container has the specified template card.
109
+ * @param cardKey Card key to check
110
+ * @return true, if card is in the container
48
111
  */
49
- protected showCards(path: string): Promise<Card[]>;
112
+ hasTemplateCard(cardKey: string): boolean;
50
113
  }