@cyberismo/data-handler 0.0.14 → 0.0.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/dist/card-metadata-updater.js +8 -4
  2. package/dist/card-metadata-updater.js.map +1 -1
  3. package/dist/command-handler.d.ts +4 -0
  4. package/dist/command-handler.js +29 -19
  5. package/dist/command-handler.js.map +1 -1
  6. package/dist/command-manager.d.ts +25 -2
  7. package/dist/command-manager.js +30 -5
  8. package/dist/command-manager.js.map +1 -1
  9. package/dist/commands/create.d.ts +1 -1
  10. package/dist/commands/create.js +45 -93
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/edit.d.ts +1 -15
  13. package/dist/commands/edit.js +15 -89
  14. package/dist/commands/edit.js.map +1 -1
  15. package/dist/commands/export.d.ts +11 -2
  16. package/dist/commands/export.js +58 -58
  17. package/dist/commands/export.js.map +1 -1
  18. package/dist/commands/import.d.ts +9 -1
  19. package/dist/commands/import.js +17 -11
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/move.d.ts +1 -2
  22. package/dist/commands/move.js +107 -146
  23. package/dist/commands/move.js.map +1 -1
  24. package/dist/commands/remove.d.ts +8 -1
  25. package/dist/commands/remove.js +17 -48
  26. package/dist/commands/remove.js.map +1 -1
  27. package/dist/commands/rename.d.ts +4 -9
  28. package/dist/commands/rename.js +34 -108
  29. package/dist/commands/rename.js.map +1 -1
  30. package/dist/commands/show.d.ts +22 -34
  31. package/dist/commands/show.js +103 -151
  32. package/dist/commands/show.js.map +1 -1
  33. package/dist/commands/transition.d.ts +9 -2
  34. package/dist/commands/transition.js +49 -44
  35. package/dist/commands/transition.js.map +1 -1
  36. package/dist/commands/update.d.ts +18 -12
  37. package/dist/commands/update.js +34 -18
  38. package/dist/commands/update.js.map +1 -1
  39. package/dist/commands/validate.d.ts +18 -10
  40. package/dist/commands/validate.js +101 -47
  41. package/dist/commands/validate.js.map +1 -1
  42. package/dist/containers/card-container.d.ts +87 -24
  43. package/dist/containers/card-container.js +183 -279
  44. package/dist/containers/card-container.js.map +1 -1
  45. package/dist/containers/project/calculation-engine.d.ts +13 -4
  46. package/dist/containers/project/calculation-engine.js +79 -77
  47. package/dist/containers/project/calculation-engine.js.map +1 -1
  48. package/dist/containers/project/card-cache.d.ts +146 -0
  49. package/dist/containers/project/card-cache.js +411 -0
  50. package/dist/containers/project/card-cache.js.map +1 -0
  51. package/dist/containers/project/project-paths.d.ts +5 -4
  52. package/dist/containers/project/project-paths.js +16 -12
  53. package/dist/containers/project/project-paths.js.map +1 -1
  54. package/dist/containers/project/resource-cache.d.ts +169 -0
  55. package/dist/containers/project/resource-cache.js +507 -0
  56. package/dist/containers/project/resource-cache.js.map +1 -0
  57. package/dist/containers/project/resource-handler.d.ts +129 -0
  58. package/dist/containers/project/resource-handler.js +206 -0
  59. package/dist/containers/project/resource-handler.js.map +1 -0
  60. package/dist/containers/project.d.ts +114 -195
  61. package/dist/containers/project.js +425 -535
  62. package/dist/containers/project.js.map +1 -1
  63. package/dist/containers/template.d.ts +22 -32
  64. package/dist/containers/template.js +113 -115
  65. package/dist/containers/template.js.map +1 -1
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.js +1 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/interfaces/folder-content-interfaces.d.ts +7 -4
  70. package/dist/interfaces/folder-content-interfaces.js +3 -3
  71. package/dist/interfaces/folder-content-interfaces.js.map +1 -1
  72. package/dist/interfaces/macros.d.ts +1 -0
  73. package/dist/interfaces/macros.js +1 -1
  74. package/dist/interfaces/macros.js.map +1 -1
  75. package/dist/interfaces/project-interfaces.d.ts +7 -5
  76. package/dist/interfaces/project-interfaces.js.map +1 -1
  77. package/dist/interfaces/resource-interfaces.d.ts +25 -22
  78. package/dist/interfaces/resource-interfaces.js +3 -0
  79. package/dist/interfaces/resource-interfaces.js.map +1 -1
  80. package/dist/macros/common.d.ts +10 -10
  81. package/dist/macros/createCards/index.d.ts +0 -13
  82. package/dist/macros/createCards/index.js.map +1 -1
  83. package/dist/macros/createCards/types.d.ts +44 -0
  84. package/dist/macros/createCards/types.js +15 -0
  85. package/dist/macros/createCards/types.js.map +1 -0
  86. package/dist/macros/graph/index.d.ts +2 -6
  87. package/dist/macros/graph/index.js +14 -28
  88. package/dist/macros/graph/index.js.map +1 -1
  89. package/dist/macros/graph/types.d.ts +23 -0
  90. package/dist/macros/graph/types.js +15 -0
  91. package/dist/macros/graph/types.js.map +1 -0
  92. package/dist/macros/image/index.d.ts +8 -16
  93. package/dist/macros/image/index.js +36 -33
  94. package/dist/macros/image/index.js.map +1 -1
  95. package/dist/macros/image/types.d.ts +38 -0
  96. package/dist/macros/image/types.js +15 -0
  97. package/dist/macros/image/types.js.map +1 -0
  98. package/dist/macros/include/index.d.ts +1 -6
  99. package/dist/macros/include/index.js +4 -7
  100. package/dist/macros/include/index.js.map +1 -1
  101. package/dist/macros/include/types.d.ts +31 -0
  102. package/dist/macros/include/types.js +15 -0
  103. package/dist/macros/include/types.js.map +1 -0
  104. package/dist/macros/index.d.ts +1 -1
  105. package/dist/macros/index.js +2 -2
  106. package/dist/macros/index.js.map +1 -1
  107. package/dist/macros/percentage/index.d.ts +0 -6
  108. package/dist/macros/percentage/index.js.map +1 -1
  109. package/dist/macros/percentage/types.d.ts +31 -0
  110. package/dist/macros/percentage/types.js +15 -0
  111. package/dist/macros/percentage/types.js.map +1 -0
  112. package/dist/macros/report/index.d.ts +0 -3
  113. package/dist/macros/report/index.js +3 -6
  114. package/dist/macros/report/index.js.map +1 -1
  115. package/dist/macros/report/types.d.ts +19 -0
  116. package/dist/macros/report/types.js +15 -0
  117. package/dist/macros/report/types.js.map +1 -0
  118. package/dist/macros/scoreCard/index.d.ts +0 -6
  119. package/dist/macros/scoreCard/index.js.map +1 -1
  120. package/dist/macros/scoreCard/types.d.ts +31 -0
  121. package/dist/macros/scoreCard/types.js +15 -0
  122. package/dist/macros/scoreCard/types.js.map +1 -0
  123. package/dist/macros/types.d.ts +25 -0
  124. package/dist/macros/types.js +2 -0
  125. package/dist/macros/types.js.map +1 -0
  126. package/dist/macros/vega/index.d.ts +0 -4
  127. package/dist/macros/vega/index.js.map +1 -1
  128. package/dist/macros/vega/types.d.ts +20 -0
  129. package/dist/macros/vega/types.js +2 -0
  130. package/dist/macros/vega/types.js.map +1 -0
  131. package/dist/macros/vegalite/index.d.ts +0 -4
  132. package/dist/macros/vegalite/index.js.map +1 -1
  133. package/dist/macros/vegalite/types.d.ts +20 -0
  134. package/dist/macros/vegalite/types.js +15 -0
  135. package/dist/macros/vegalite/types.js.map +1 -0
  136. package/dist/macros/xref/index.d.ts +0 -3
  137. package/dist/macros/xref/index.js +5 -14
  138. package/dist/macros/xref/index.js.map +1 -1
  139. package/dist/macros/xref/types.d.ts +19 -0
  140. package/dist/macros/xref/types.js +15 -0
  141. package/dist/macros/xref/types.js.map +1 -0
  142. package/dist/module-manager.d.ts +16 -3
  143. package/dist/module-manager.js +55 -23
  144. package/dist/module-manager.js.map +1 -1
  145. package/dist/project-settings.d.ts +16 -3
  146. package/dist/project-settings.js +79 -14
  147. package/dist/project-settings.js.map +1 -1
  148. package/dist/resources/calculation-resource.d.ts +6 -33
  149. package/dist/resources/calculation-resource.js +11 -60
  150. package/dist/resources/calculation-resource.js.map +1 -1
  151. package/dist/resources/card-type-resource.d.ts +10 -22
  152. package/dist/resources/card-type-resource.js +46 -66
  153. package/dist/resources/card-type-resource.js.map +1 -1
  154. package/dist/resources/create-defaults.d.ts +3 -2
  155. package/dist/resources/create-defaults.js +3 -2
  156. package/dist/resources/create-defaults.js.map +1 -1
  157. package/dist/resources/field-type-resource.d.ts +8 -22
  158. package/dist/resources/field-type-resource.js +35 -60
  159. package/dist/resources/field-type-resource.js.map +1 -1
  160. package/dist/resources/file-resource.d.ts +14 -35
  161. package/dist/resources/file-resource.js +22 -301
  162. package/dist/resources/file-resource.js.map +1 -1
  163. package/dist/resources/folder-resource.d.ts +44 -66
  164. package/dist/resources/folder-resource.js +102 -149
  165. package/dist/resources/folder-resource.js.map +1 -1
  166. package/dist/resources/graph-model-resource.d.ts +9 -34
  167. package/dist/resources/graph-model-resource.js +18 -64
  168. package/dist/resources/graph-model-resource.js.map +1 -1
  169. package/dist/resources/graph-view-resource.d.ts +9 -29
  170. package/dist/resources/graph-view-resource.js +13 -48
  171. package/dist/resources/graph-view-resource.js.map +1 -1
  172. package/dist/resources/link-type-resource.d.ts +9 -23
  173. package/dist/resources/link-type-resource.js +11 -33
  174. package/dist/resources/link-type-resource.js.map +1 -1
  175. package/dist/resources/report-resource.d.ts +10 -23
  176. package/dist/resources/report-resource.js +20 -67
  177. package/dist/resources/report-resource.js.map +1 -1
  178. package/dist/resources/resource-object.d.ts +143 -23
  179. package/dist/resources/resource-object.js +369 -48
  180. package/dist/resources/resource-object.js.map +1 -1
  181. package/dist/resources/template-resource.d.ts +10 -17
  182. package/dist/resources/template-resource.js +19 -27
  183. package/dist/resources/template-resource.js.map +1 -1
  184. package/dist/resources/workflow-resource.d.ts +9 -25
  185. package/dist/resources/workflow-resource.js +25 -55
  186. package/dist/resources/workflow-resource.js.map +1 -1
  187. package/dist/utils/card-utils.d.ts +69 -19
  188. package/dist/utils/card-utils.js +179 -30
  189. package/dist/utils/card-utils.js.map +1 -1
  190. package/dist/utils/clingo-fact-builder.d.ts +25 -14
  191. package/dist/utils/clingo-fact-builder.js +27 -5
  192. package/dist/utils/clingo-fact-builder.js.map +1 -1
  193. package/dist/utils/clingo-facts.js +14 -7
  194. package/dist/utils/clingo-facts.js.map +1 -1
  195. package/dist/utils/clingo-parser.js +1 -1
  196. package/dist/utils/clingo-parser.js.map +1 -1
  197. package/dist/utils/constants.d.ts +2 -0
  198. package/dist/utils/constants.js +4 -0
  199. package/dist/utils/constants.js.map +1 -1
  200. package/dist/utils/csv.js +1 -1
  201. package/dist/utils/csv.js.map +1 -1
  202. package/dist/utils/resource-utils.d.ts +1 -0
  203. package/dist/utils/resource-utils.js +2 -1
  204. package/dist/utils/resource-utils.js.map +1 -1
  205. package/package.json +11 -11
  206. package/src/card-metadata-updater.ts +9 -7
  207. package/src/command-handler.ts +35 -23
  208. package/src/command-manager.ts +32 -19
  209. package/src/commands/create.ts +59 -160
  210. package/src/commands/edit.ts +16 -132
  211. package/src/commands/export.ts +71 -81
  212. package/src/commands/import.ts +26 -18
  213. package/src/commands/move.ts +143 -179
  214. package/src/commands/remove.ts +20 -59
  215. package/src/commands/rename.ts +45 -156
  216. package/src/commands/show.ts +153 -211
  217. package/src/commands/transition.ts +53 -58
  218. package/src/commands/update.ts +44 -23
  219. package/src/commands/validate.ts +108 -82
  220. package/src/containers/card-container.ts +200 -360
  221. package/src/containers/project/calculation-engine.ts +81 -105
  222. package/src/containers/project/card-cache.ts +497 -0
  223. package/src/containers/project/project-paths.ts +21 -13
  224. package/src/containers/project/resource-cache.ts +648 -0
  225. package/src/containers/project/resource-handler.ts +265 -0
  226. package/src/containers/project.ts +551 -693
  227. package/src/containers/template.ts +129 -142
  228. package/src/index.ts +1 -0
  229. package/src/interfaces/folder-content-interfaces.ts +14 -7
  230. package/src/interfaces/macros.ts +2 -0
  231. package/src/interfaces/project-interfaces.ts +14 -7
  232. package/src/interfaces/resource-interfaces.ts +30 -27
  233. package/src/macros/createCards/index.ts +1 -12
  234. package/src/macros/createCards/types.ts +46 -0
  235. package/src/macros/graph/index.ts +27 -52
  236. package/src/macros/graph/types.ts +24 -0
  237. package/src/macros/image/index.ts +50 -61
  238. package/src/macros/image/types.ts +39 -0
  239. package/src/macros/include/index.ts +6 -15
  240. package/src/macros/include/types.ts +32 -0
  241. package/src/macros/index.ts +2 -2
  242. package/src/macros/percentage/index.ts +1 -7
  243. package/src/macros/percentage/types.ts +32 -0
  244. package/src/macros/report/index.ts +4 -13
  245. package/src/macros/report/types.ts +20 -0
  246. package/src/macros/scoreCard/index.ts +1 -7
  247. package/src/macros/scoreCard/types.ts +32 -0
  248. package/src/macros/types.ts +48 -0
  249. package/src/macros/vega/index.ts +1 -4
  250. package/src/macros/vega/types.ts +21 -0
  251. package/src/macros/vegalite/index.ts +1 -4
  252. package/src/macros/vegalite/types.ts +22 -0
  253. package/src/macros/xref/index.ts +6 -20
  254. package/src/macros/xref/types.ts +20 -0
  255. package/src/module-manager.ts +79 -22
  256. package/src/project-settings.ts +84 -15
  257. package/src/resources/calculation-resource.ts +21 -91
  258. package/src/resources/card-type-resource.ts +74 -109
  259. package/src/resources/create-defaults.ts +3 -2
  260. package/src/resources/field-type-resource.ts +61 -104
  261. package/src/resources/file-resource.ts +33 -441
  262. package/src/resources/folder-resource.ts +130 -207
  263. package/src/resources/graph-model-resource.ts +36 -95
  264. package/src/resources/graph-view-resource.ts +28 -70
  265. package/src/resources/link-type-resource.ts +23 -53
  266. package/src/resources/report-resource.ts +34 -96
  267. package/src/resources/resource-object.ts +511 -66
  268. package/src/resources/template-resource.ts +32 -44
  269. package/src/resources/workflow-resource.ts +42 -85
  270. package/src/utils/card-utils.ts +217 -31
  271. package/src/utils/clingo-fact-builder.ts +28 -16
  272. package/src/utils/clingo-facts.ts +16 -7
  273. package/src/utils/clingo-parser.ts +1 -1
  274. package/src/utils/constants.ts +6 -0
  275. package/src/utils/csv.ts +1 -1
  276. package/src/utils/resource-utils.ts +2 -1
  277. package/dist/containers/project/resource-collector.d.ts +0 -87
  278. package/dist/containers/project/resource-collector.js +0 -337
  279. package/dist/containers/project/resource-collector.js.map +0 -1
  280. package/src/containers/project/resource-collector.ts +0 -396
@@ -12,332 +12,236 @@
12
12
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
13
  */
14
14
  // node
15
- import { basename, join, sep } from 'node:path';
16
- import { readdir, readFile, writeFile } from 'node:fs/promises';
17
- import { findParentPath } from '../utils/card-utils.js';
18
- import { getFilesSync } from '../utils/file-utils.js';
19
- import { readJsonFile } from '../utils/json.js';
15
+ import { join } from 'node:path';
16
+ import { writeFile } from 'node:fs/promises';
17
+ import { CardCache } from './project/card-cache.js';
18
+ import { cardPathParts } from '../utils/card-utils.js';
19
+ import { deleteDir } from '../utils/file-utils.js';
20
20
  import { writeJsonFile } from '../utils/json.js';
21
- // interfaces
22
- import { CardNameRegEx, } from '../interfaces/project-interfaces.js';
23
- // asciidoctor
24
21
  import asciidoctor from '@asciidoctor/core';
25
- import mime from 'mime-types';
22
+ import { ROOT } from '../utils/constants.js';
26
23
  /**
27
24
  * Card container base class. Used for both Project and Template.
28
25
  * Contains common card-related functionality.
29
26
  */
30
27
  export class CardContainer {
31
28
  basePath;
29
+ cardCache;
32
30
  containerName;
33
- static projectConfigFileName = 'cardsConfig.json';
34
- static cardMetadataFile = 'index.json';
31
+ prefix;
35
32
  static cardContentFile = 'index.adoc';
33
+ static cardMetadataFile = 'index.json';
34
+ static projectConfigFileName = 'cardsConfig.json';
36
35
  static schemaContentFile = '.schema';
37
- constructor(path, name) {
36
+ constructor(path, prefix, name) {
38
37
  this.basePath = path;
39
38
  this.containerName = name;
39
+ this.prefix = prefix;
40
+ this.cardCache = new CardCache(this.prefix);
41
+ }
42
+ // Filters one card to only include the details requested.
43
+ filterCardDetails(card, details = {
44
+ attachments: true,
45
+ children: true,
46
+ content: true,
47
+ metadata: true,
48
+ parent: true,
49
+ }) {
50
+ const filteredCard = {
51
+ key: card.key,
52
+ path: card.path,
53
+ children: details.children ? card.children : [],
54
+ attachments: details.attachments ? card.attachments : [],
55
+ };
56
+ if (details.content) {
57
+ filteredCard.content = card.content;
58
+ }
59
+ if (details.metadata) {
60
+ filteredCard.metadata = structuredClone(card.metadata);
61
+ }
62
+ if (details.parent) {
63
+ filteredCard.parent = card.parent;
64
+ }
65
+ if (details.calculations) {
66
+ filteredCard.calculations = card.calculations;
67
+ }
68
+ return filteredCard;
69
+ }
70
+ // Filters cards to only include the details requested.
71
+ filterCardsDetails(cards, details) {
72
+ return cards.map((card) => {
73
+ return this.filterCardDetails(card, details);
74
+ });
40
75
  }
41
- // Lists all direct children.
42
- async childrenCards(cardPath, details) {
43
- const containerCards = [];
44
- await this.doCollectCards(cardPath, containerCards, details, true);
45
- return containerCards;
76
+ /**
77
+ * Determines the container from a given path.
78
+ * @param path The filesystem path to analyze
79
+ * @returns Location string: 'project' for project cards, template name for template cards
80
+ */
81
+ determineContainer(path) {
82
+ return cardPathParts(this.prefix, path).template || 'project';
46
83
  }
47
- // Function collects attachments from all cards in one folder.
48
- async doCollectAttachments(folder, attachments) {
49
- const currentPaths = [];
50
- let entries = [];
51
- try {
52
- entries = (await readdir(folder, { withFileTypes: true })).filter((item) => item.isDirectory());
53
- }
54
- catch {
55
- // ignore throws, if currentPaths does not have more values, recursion will stop
56
- }
57
- for (const entry of entries) {
58
- // Investigate the content of card folders' attachment folders, but do not continue to children cards.
59
- // For each attachment folder, collect all files.
60
- if (CardNameRegEx.test(entry.name)) {
61
- currentPaths.push(join(entry.parentPath, entry.name));
62
- }
63
- else if (entry.name === 'c') {
64
- continue;
65
- }
66
- else if (entry.name === 'a') {
67
- const attachmentFolder = join(entry.parentPath, entry.name);
68
- const cardItem = basename(entry.parentPath) || '';
69
- let entryAttachments = [];
70
- try {
71
- entryAttachments = await readdir(attachmentFolder, {
72
- withFileTypes: true,
73
- });
74
- }
75
- catch {
76
- // ignore readdir errors
77
- }
78
- entryAttachments.forEach((attachment) => attachments.push({
79
- card: cardItem,
80
- fileName: attachment.name,
81
- path: attachment.parentPath,
82
- mimeType: mime.lookup(attachment.name) || null,
83
- }));
84
+ /**
85
+ * Populates the card cache with all cards from all locations.
86
+ */
87
+ async populateCardsCache() { }
88
+ /**
89
+ * Populates template cards into the cache.
90
+ */
91
+ async populateTemplateCards() { }
92
+ /**
93
+ * Lists all attachments from the container.
94
+ * @param path Path where attachments should be collected.
95
+ * @returns attachments from the container.
96
+ */
97
+ attachments(path) {
98
+ const attachments = [];
99
+ const targetLocation = this.determineContainer(path);
100
+ const cards = [...this.cardCache.getCards()];
101
+ const filteredCards = cards.filter((card) => {
102
+ if (card.attachments.length === 0) {
103
+ return false;
84
104
  }
85
- }
86
- if (currentPaths) {
87
- const promises = currentPaths.map((item) => this.doCollectAttachments(item, attachments));
88
- await Promise.all(promises);
89
- }
105
+ return card.location === targetLocation;
106
+ });
107
+ filteredCards.forEach((item) => attachments.push(...item.attachments));
90
108
  return attachments;
91
109
  }
92
- // Collects all cards from container.
93
- async doCollectCards(path, cards, details = {}, directChildrenOnly = false) {
94
- let entries = [];
95
- try {
96
- entries = await readdir(path, { withFileTypes: true });
97
- }
98
- catch {
99
- return cards;
100
- }
101
- let finish = false;
102
- const currentPaths = [];
103
- for (const entry of entries) {
104
- if (entry.isDirectory()) {
105
- const currentPath = join(entry.parentPath, entry.name);
106
- currentPaths.push(currentPath);
107
- if (CardNameRegEx.test(entry.name)) {
108
- if (directChildrenOnly) {
109
- // Make recursion stop on the level where first children cards are found.
110
- finish = true;
111
- }
112
- const attachmentFiles = [];
113
- const promiseContainer = [
114
- this.getContent(currentPath, details.content),
115
- this.getMetadata(currentPath, details.metadata),
116
- this.getChildren(currentPath, details),
117
- this.getAttachments(currentPath, attachmentFiles, details.attachments),
118
- ];
119
- const [cardContent, cardMetadata, cardChildren] = await Promise.all(promiseContainer);
120
- cards.push({
121
- key: entry.name,
122
- path: currentPath,
123
- children: details.children ? cardChildren : [],
124
- attachments: details.attachments ? [...attachmentFiles] : [],
125
- ...(details.content && { content: cardContent }),
126
- ...(details.metadata && {
127
- metadata: JSON.parse(cardMetadata),
128
- }),
129
- ...(details.parent && { parent: this.parentCard(currentPath) }),
130
- });
131
- }
132
- }
133
- }
134
- // Continue collecting cards from children
135
- if (!finish && currentPaths) {
136
- const promises = currentPaths.map((item) => this.doCollectCards(item, cards, details, directChildrenOnly));
137
- await Promise.all(promises);
110
+ /**
111
+ * Shows all cards from the container with the given details (by default all of them).
112
+ * @param path Path where cards should be listed.
113
+ * @param details Which details of the card should be included
114
+ * @returns all cards from the container
115
+ */
116
+ cards(path, details) {
117
+ if (!this.cardCache.isPopulated) {
118
+ throw new Error('Cards cache is not populated!');
138
119
  }
139
- return cards;
120
+ const targetLocation = this.determineContainer(path);
121
+ const relevantCards = this.cardCache
122
+ .getCards()
123
+ .filter((cachedCard) => cachedCard.location === targetLocation);
124
+ return this.filterCardsDetails(relevantCards, details);
140
125
  }
141
- // Find specific card
142
- async doFindCard(path, cardKey, details = {}, foundCards) {
143
- const entries = await readdir(path, { withFileTypes: true });
144
- let asciiDocProcessor;
145
- // optimization: do not create AsciiDoctor Processor, unless it is needed.
146
- if (details.contentType && details.contentType === 'html') {
147
- asciiDocProcessor = asciidoctor();
148
- }
149
- for (const entry of entries) {
150
- if (entry.isDirectory()) {
151
- const currentPath = join(entry.parentPath, entry.name);
152
- if (entry.name === cardKey) {
153
- const attachmentFiles = [];
154
- const promiseContainer = [
155
- this.getContent(currentPath, details.content),
156
- this.getMetadata(currentPath, details.metadata),
157
- this.getChildren(currentPath, details),
158
- this.getAttachments(currentPath, attachmentFiles, details.attachments),
159
- ];
160
- const [cardContent, cardMetadata, cardChildren] = await Promise.all(promiseContainer);
161
- const content = details.contentType && details.contentType === 'html'
162
- ? asciiDocProcessor?.convert(cardContent)
163
- : cardContent;
164
- foundCards.push({
165
- key: entry.name,
166
- path: currentPath,
167
- children: details.children ? cardChildren : [],
168
- attachments: details.attachments ? [...attachmentFiles] : [],
169
- ...(details.content && { content: content }),
170
- ...(details.metadata && {
171
- metadata: JSON.parse(cardMetadata),
172
- }),
173
- ...(details.parent && { parent: this.parentCard(currentPath) }),
174
- ...(details.calculations && { calculations: [] }),
175
- });
176
- break; //optimization - there can only be one.
177
- }
178
- // Only continue, if the card has not been found.
179
- if (foundCards.length === 0) {
180
- await this.doFindCard(currentPath, cardKey, details, foundCards);
181
- }
126
+ /**
127
+ * Finds a specific card.
128
+ * @param cardKey Card key to find
129
+ * @param details Card details to be included in the card
130
+ * @throws if card does not exist in the container
131
+ */
132
+ findCard(cardKey, details) {
133
+ const cachedCard = this.cardCache.getCard(cardKey);
134
+ if (cachedCard) {
135
+ // Apply content type transformation if needed
136
+ const content = cachedCard.content;
137
+ if (details?.contentType === 'html' && content) {
138
+ const processor = asciidoctor();
139
+ processor.convert(content);
182
140
  }
141
+ return this.filterCardDetails(cachedCard, details);
183
142
  }
184
- return foundCards;
185
- }
186
- // Gets conditionally attachments
187
- async getAttachments(currentPath, files, include) {
188
- return include ? this.doCollectAttachments(currentPath, files) : [];
189
- }
190
- // Gets conditionally children
191
- async getChildren(currentPath, details = {}) {
192
- return details.children ? this.childrenCards(currentPath, details) : [];
193
- }
194
- // Gets conditionally content
195
- async getContent(currentPath, include) {
196
- return include
197
- ? readFile(join(currentPath, CardContainer.cardContentFile), {
198
- encoding: 'utf-8',
199
- })
200
- : '';
201
- }
202
- // Gets conditionally metadata
203
- async getMetadata(currentPath, include) {
204
- let metadata = include
205
- ? await readFile(join(currentPath, CardContainer.cardMetadataFile), {
206
- encoding: 'utf-8',
207
- })
208
- : '';
209
- metadata = this.injectLinksIfMissing(metadata);
210
- return metadata;
143
+ throw new Error(`Card '${cardKey}' does not exist in the project`);
211
144
  }
212
- // Injects 'links' member - if it is missing - to a string representation of a card.
213
- injectLinksIfMissing(metadata) {
214
- if (metadata !== '' && !metadata.includes('"links":')) {
215
- const end = metadata.lastIndexOf('}');
216
- metadata = metadata.slice(0, end - 1) + ',\n "links": []\n' + '}';
217
- }
218
- return metadata;
219
- }
220
- // Finds parent
221
- parentCard(cardPath) {
222
- const pathParts = cardPath.split(sep);
223
- if (pathParts.at(pathParts.length - 2) === 'cardRoot' ||
224
- (pathParts.length > 3 &&
225
- pathParts.at(pathParts.length - 4) === 'templates')) {
226
- return 'root';
227
- }
228
- else {
229
- return pathParts.at(pathParts.length - 3);
230
- }
231
- }
232
- // Lists all attachments from container.
233
- async attachments(path) {
234
- const attachments = [];
235
- const cards = [];
236
- await this.doCollectCards(path, cards, { attachments: true });
237
- cards.forEach((card) => {
238
- if (card.attachments) {
239
- attachments.push(...card.attachments.flat());
145
+ /**
146
+ * Removes a card. If card has children, they are removed as well.
147
+ * @param cardKey Card key to remove.
148
+ * @returns true, if card was removed; false otherwise
149
+ */
150
+ async removeCard(cardKey) {
151
+ const card = this.cardCache.getCard(cardKey);
152
+ if (card) {
153
+ // Children must removed first
154
+ const children = card.children;
155
+ for (const child of children) {
156
+ await this.removeCard(child);
240
157
  }
241
- });
242
- return attachments;
243
- }
244
- // Lists all cards from container.
245
- async cards(path, details = {}, directChildrenOnly = false) {
246
- const containerCards = [];
247
- await this.doCollectCards(path, containerCards, details, directChildrenOnly);
248
- return containerCards;
249
- }
250
- // Finds a specific card.
251
- async findCard(path, cardKey, details = {}) {
252
- const foundCards = [];
253
- await this.doFindCard(path, cardKey, details, foundCards);
254
- return foundCards.at(0);
255
- }
256
- // Checks if container has the specified card.
257
- hasCard(cardKey, path) {
258
- const allFiles = getFilesSync(path);
259
- const cardIndexJsonFile = join(cardKey, CardContainer.cardMetadataFile);
260
- const found = allFiles.findIndex((file) => file.includes(cardIndexJsonFile));
261
- return found !== -1;
158
+ await deleteDir(card.path);
159
+ return this.cardCache.deleteCard(cardKey);
160
+ }
161
+ return false;
262
162
  }
263
- // Persists card content.
163
+ /**
164
+ * Persists the whole card.
165
+ * @param card Card to persist
166
+ */
264
167
  async saveCard(card) {
265
168
  await this.saveCardContent(card);
266
169
  await this.saveCardMetadata(card);
267
170
  }
268
- // Persists card metadata.
171
+ /**
172
+ * Persists card content.
173
+ * @param card Card to persist.
174
+ * @returns true if card was updated; false otherwise.
175
+ */
269
176
  async saveCardContent(card) {
270
177
  if (card.content != null) {
271
178
  const contentFile = join(card.path, CardContainer.cardContentFile);
272
179
  await writeFile(contentFile, card.content);
180
+ return this.cardCache.updateCardContent(card.key, card.content);
273
181
  }
182
+ return false;
274
183
  }
275
- // Persists card metadata.
184
+ /**
185
+ * Persists card metadata.
186
+ * @param card Card to persist
187
+ * @returns true if card was updated; false otherwise.
188
+ */
276
189
  async saveCardMetadata(card) {
277
190
  if (card.metadata != null) {
278
191
  const metadataFile = join(card.path, CardContainer.cardMetadataFile);
279
192
  card.metadata.lastUpdated = new Date().toISOString();
280
193
  await writeJsonFile(metadataFile, card.metadata);
194
+ return this.cardCache.updateCardMetadata(card.key, card.metadata);
281
195
  }
196
+ return false;
282
197
  }
283
198
  /**
284
- * Show cards with hierarchy structure from a given path.
285
- * @param path The path to read cards from
286
- * @returns an array of cards with proper parent-child relationships.
199
+ * Show root cards from a given path.
200
+ * @param path The path to get cards from
201
+ * @returns an array of root-level cards (each with their children populated).
287
202
  */
288
- async showCards(path) {
289
- const cards = [];
290
- const cardPathMap = new Map();
291
- const entries = await readdir(path, {
292
- withFileTypes: true,
293
- recursive: true,
294
- });
295
- // Checks if Dirent folder is a card folder
296
- function cardFolder(entry, cardPathMap) {
297
- const fullPath = join(entry.parentPath, entry.name);
298
- if (!cardPathMap.has(fullPath)) {
299
- const newCard = {
300
- key: entry.name,
301
- path: fullPath,
302
- children: [],
303
- attachments: [],
203
+ showCards(path) {
204
+ const container = this.determineContainer(path);
205
+ const rootCards = [];
206
+ const relevantCards = Array.from(this.cardCache.getCards()).filter((cachedCard) => cachedCard.location === container);
207
+ relevantCards.forEach((card) => {
208
+ if (card.parent === ROOT ||
209
+ !card.parent ||
210
+ !relevantCards.find((cachedCard) => cachedCard.key === card.parent)) {
211
+ const cardWithChildren = {
212
+ ...card,
213
+ children: card.children,
304
214
  };
305
- cardPathMap.set(fullPath, newCard);
306
- return newCard;
307
- }
308
- }
309
- // Process card directories first
310
- entries
311
- .filter((entry) => entry.isDirectory() && CardNameRegEx.test(entry.name))
312
- .forEach((entry) => {
313
- const card = cardFolder(entry, cardPathMap);
314
- if (card)
315
- cards.push(card);
316
- });
317
- // Process metadata files in parallel
318
- await Promise.all(entries
319
- .filter((entry) => entry.isFile() && entry.name === CardContainer.cardMetadataFile)
320
- .map(async (entry) => {
321
- const parentCard = cardPathMap.get(entry.parentPath);
322
- if (!parentCard)
323
- return;
324
- parentCard.metadata = (await readJsonFile(join(entry.parentPath, entry.name)));
325
- }));
326
- // Finally, build the card hierarchy
327
- Array.from(cardPathMap.entries()).map(([cardPath, card]) => {
328
- const parentPath = findParentPath(cardPath);
329
- if (!parentPath)
330
- return;
331
- const parentCard = cardPathMap.get(parentPath);
332
- if (!parentCard)
333
- return;
334
- parentCard.children.push(card);
335
- const index = cards.indexOf(card);
336
- if (index > -1) {
337
- cards.splice(index, 1);
215
+ rootCards.push(cardWithChildren);
338
216
  }
339
217
  });
340
- return cards;
218
+ return rootCards;
219
+ }
220
+ /**
221
+ * Checks if container has the specified card.
222
+ * @param cardKey Card key to check
223
+ * @return true, if card is in the container
224
+ */
225
+ hasCard(cardKey) {
226
+ return this.cardCache.hasCard(cardKey);
227
+ }
228
+ /**
229
+ * Checks if container has the specified project card.
230
+ * @param cardKey Card key to check
231
+ * @return true, if card is in the container
232
+ */
233
+ hasProjectCard(cardKey) {
234
+ const cachedCard = this.cardCache.getCard(cardKey);
235
+ return cachedCard ? cachedCard.location === 'project' : false;
236
+ }
237
+ /**
238
+ * Checks if container has the specified template card.
239
+ * @param cardKey Card key to check
240
+ * @return true, if card is in the container
241
+ */
242
+ hasTemplateCard(cardKey) {
243
+ const cachedCard = this.cardCache.getCard(cardKey);
244
+ return cachedCard ? cachedCard.location !== 'project' : false;
341
245
  }
342
246
  }
343
247
  //# sourceMappingURL=card-container.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"card-container.js","sourceRoot":"","sources":["../../src/containers/card-container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"card-container.js","sourceRoot":"","sources":["../../src/containers/card-container.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@
12
12
  */
13
13
  import type { BaseResult, ParseResult, QueryName, QueryResult } from '../../types/queries.js';
14
14
  import type { Card, Context } from '../../interfaces/project-interfaces.js';
15
- import { type Project } from '../../containers/project.js';
15
+ import type { Project } from '../../containers/project.js';
16
16
  import { type ResourceName } from '../../utils/resource-utils.js';
17
17
  export declare class CalculationEngine {
18
18
  private project;
@@ -48,6 +48,7 @@ export declare class CalculationEngine {
48
48
  private setCalculationsPrograms;
49
49
  private getCards;
50
50
  private parseClingoResult;
51
+ private queryContent;
51
52
  private run;
52
53
  /**
53
54
  * Generates a logic program.
@@ -58,6 +59,12 @@ export declare class CalculationEngine {
58
59
  * @param changedCard Card that was changed.
59
60
  */
60
61
  handleCardChanged(changedCard: Card): Promise<void>;
62
+ /**
63
+ * When card is moved, rebuild the entire card tree structure.
64
+ * Moving cards changes parent-child relationships, so we need to rebuild
65
+ * the complete card tree facts to ensure consistency.
66
+ */
67
+ handleCardMoved(): Promise<void>;
61
68
  /**
62
69
  * When cards are removed, automatically remove card-specific calculations.
63
70
  * @param deletedCard Card that is to be removed.
@@ -76,21 +83,23 @@ export declare class CalculationEngine {
76
83
  resourceLogicProgram(resourceName: ResourceName): Promise<string>;
77
84
  /**
78
85
  * Runs given logic program and creates a graph using clingraph
79
- * @param data Provide a query or/and a file which can be given to clingraph
80
- * @param timeout Maximum amount of milliseconds clingraph is allowed to run
86
+ * @param model Graph model to use.
87
+ * @param view Graph view to use.
88
+ * @param context In which type of context the query is run.
81
89
  * @returns a base64 encoded image as a string
82
90
  */
83
91
  runGraph(model: string, view: string, context: Context): Promise<string>;
84
92
  /**
85
93
  * Runs a logic program using clingo.
86
94
  * @param query Logic program to be run
95
+ * @param context In which type of context the query is run.
87
96
  * @returns parsed program output
88
97
  */
89
98
  runLogicProgram(query: string, context?: Context): Promise<ParseResult<BaseResult>>;
90
- private queryContent;
91
99
  /**
92
100
  * Runs a pre-defined query.
93
101
  * @param queryName Name of the query file without extension
102
+ * @param context In which type of context the query is run.
94
103
  * @param options Any object that contains state for handlebars
95
104
  * @returns parsed program output
96
105
  */