@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
@@ -1 +1 @@
1
- {"version":3,"file":"calculation-engine.js","sourceRoot":"","sources":["../../../src/containers/project/calculation-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculation-engine.js","sourceRoot":"","sources":["../../../src/containers/project/calculation-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation. This program is distributed in the hope that it
7
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
+ See the GNU Affero General Public License for more details.
10
+ You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ import type { Card, CardAttachment, CardMetadata } from '../../interfaces/project-interfaces.js';
14
+ /**
15
+ * Extended card interface that includes location metadata.
16
+ * For project cards: location = 'project'
17
+ * For template cards: location = template name (e.g., 'decision/templates/decision')
18
+ */
19
+ interface CachedCard extends Card {
20
+ location: string;
21
+ }
22
+ /**
23
+ *
24
+ */
25
+ export declare class CardCache {
26
+ private prefix;
27
+ private cardCache;
28
+ private cachePopulated;
29
+ constructor(prefix: string);
30
+ private buildChildrenRelationshipsRecursively;
31
+ private determineLocationFromPath;
32
+ private entries;
33
+ private fetchAttachments;
34
+ private fetchContent;
35
+ private fetchMetadata;
36
+ private fetchFileEntries;
37
+ private populateFromCards;
38
+ private static get logger();
39
+ /**
40
+ * Adds attachment to a card in the cache.
41
+ * @param cardKey card key for which to add new attachment
42
+ * @param fileName attachment fileName
43
+ * @returns true, if attachment was added to the cache; false otherwise.
44
+ */
45
+ addAttachment(cardKey: string, fileName: string): boolean;
46
+ /**
47
+ * Empties the cache.
48
+ */
49
+ clear(): void;
50
+ /**
51
+ * Removes a card from the cache.
52
+ * @param cardKey card key to remove
53
+ * @returns true, if card was removed from the cache; false otherwise
54
+ */
55
+ deleteCard(cardKey: string): boolean;
56
+ /**
57
+ * Removes attachment from a card in the cache.
58
+ * @param cardKey card key of card from which attachment is to be removed
59
+ * @param filename attachment filename to remove
60
+ * @returns true, if attachment was removed from the cache; false otherwise
61
+ */
62
+ deleteAttachment(cardKey: string, filename: string): boolean;
63
+ /**
64
+ * Removes template's cards from the cache.
65
+ * @param templateName Name of the template
66
+ */
67
+ deleteCardsFromTemplate(templateName: string): void;
68
+ /**
69
+ * Returns all the template cards in the cache.
70
+ * @returns all the template cards in the cache.
71
+ */
72
+ getAllTemplateCards(): CachedCard[];
73
+ /**
74
+ * Returns a card from the cache.
75
+ * @param cardKey card key to find
76
+ * @returns card from the cache; if not found then returns undefined.
77
+ */
78
+ getCard(cardKey: string): CachedCard | undefined;
79
+ /**
80
+ * Returns all the cards in the cache.
81
+ * @returns all the cards in the cache
82
+ */
83
+ getCards(): CachedCard[];
84
+ /**
85
+ * Returns all the attachments in the cache for a given card key.
86
+ * @param cardKey Card key for which to fetch all the attachments for.
87
+ * @returns all the attachments in the cache for a given card key.
88
+ */
89
+ getCardAttachments(cardKey: string): CardAttachment[] | undefined;
90
+ /**
91
+ * Checks if card is in the cache; false otherwise.
92
+ * @param cardKey card key to check
93
+ * @returns true if card is in the cache; false otherwise
94
+ */
95
+ hasCard(cardKey: string): boolean;
96
+ /**
97
+ * Checks if card in cache has attachment.
98
+ * @param cardKey card key to check
99
+ * @param filename attachment file name to find
100
+ * @returns true, if card in cache has attachment; false otherwise.
101
+ */
102
+ hasCardAttachment(cardKey: string, filename: string): boolean;
103
+ /**
104
+ * Checks if cache has been already populated.
105
+ * @returns true if cache has already been populated; otherwise false
106
+ */
107
+ get isPopulated(): boolean;
108
+ /**
109
+ * Re-builds the existing cache's parent-child relationships info.
110
+ */
111
+ populateChildrenRelationships(): void;
112
+ /**
113
+ * Populates the cache from a given path
114
+ * @param path File system path where the cache should be built from.
115
+ * @param buildRelationships Whether to build parent-child relationships immediately
116
+ */
117
+ populateFromPath(path: string, buildRelationships?: boolean): Promise<void>;
118
+ /**
119
+ * Updates, or adds a card to cache.
120
+ * @param cardKey Card key
121
+ * @param cardData Updated data.
122
+ */
123
+ updateCard(cardKey: string, cardData: Card): void;
124
+ /**
125
+ * Updates card's attachments.
126
+ * @param cardKey card key of a card to update
127
+ * @param attachments Attachments to use in the card.
128
+ * @returns true, if update succeeded; false otherwise.
129
+ */
130
+ updateCardAttachments(cardKey: string, attachments: CardAttachment[]): boolean;
131
+ /**
132
+ * Updates card's content in the cache.
133
+ * @param cardKey card key of a card to update.
134
+ * @param content New content for the card.
135
+ * @returns true, if update succeeded; false otherwise.
136
+ */
137
+ updateCardContent(cardKey: string, content: string): boolean;
138
+ /**
139
+ * Updates card's metadata in the cache.
140
+ * @param cardKey card key of a card to update.
141
+ * @param metadata New metadata for the card.
142
+ * @returns true, if update succeeded; false otherwise.
143
+ */
144
+ updateCardMetadata(cardKey: string, metadata: CardMetadata): boolean;
145
+ }
146
+ export {};
@@ -0,0 +1,411 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation. This program is distributed in the hope that it
7
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
+ See the GNU Affero General Public License for more details.
10
+ You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ import { basename, join } from 'node:path';
14
+ import { readdir, readFile } from 'node:fs/promises';
15
+ import { CardNameRegEx } from '../../interfaces/project-interfaces.js';
16
+ import { cardPathParts, parentCard } from '../../utils/card-utils.js';
17
+ import { getChildLogger } from '../../utils/log-utils.js';
18
+ import { pathExists } from '../../utils/file-utils.js';
19
+ import mime from 'mime-types';
20
+ const cardMetadataFile = 'index.json';
21
+ const cardContentFile = 'index.adoc';
22
+ /**
23
+ *
24
+ */
25
+ export class CardCache {
26
+ prefix;
27
+ cardCache = new Map();
28
+ cachePopulated = false;
29
+ constructor(prefix) {
30
+ this.prefix = prefix;
31
+ }
32
+ // Recursively builds children relationships for all cards in the cache.
33
+ buildChildrenRelationshipsRecursively() {
34
+ // Helper function to recursively populate children for a card
35
+ const populateChildren = (cardKey, cardCopy) => {
36
+ const directChildren = [];
37
+ for (const potentialChild of this.getCards()) {
38
+ if (potentialChild.parent === cardKey) {
39
+ directChildren.push(potentialChild.key);
40
+ }
41
+ }
42
+ cardCopy.children = directChildren;
43
+ };
44
+ // Populate children for all cards in the cache
45
+ for (const card of this.getCards()) {
46
+ populateChildren(card.key, card);
47
+ }
48
+ }
49
+ // Determines the location from a given path: 'project' for project cards, template name for template cards
50
+ determineLocationFromPath(path) {
51
+ return cardPathParts(this.prefix, path).template || 'project';
52
+ }
53
+ // Gets all directory entries recursively.
54
+ async entries(path) {
55
+ try {
56
+ return await readdir(path, { withFileTypes: true, recursive: true });
57
+ }
58
+ catch (error) {
59
+ CardCache.logger.error({ error }, 'Reading entries');
60
+ return [];
61
+ }
62
+ }
63
+ // Gets attachments from disk.
64
+ async fetchAttachments(currentPath) {
65
+ const attachmentPath = join(currentPath, 'a');
66
+ if (!pathExists(attachmentPath)) {
67
+ CardCache.logger.info(`No attachment path for ${currentPath}`);
68
+ return [];
69
+ }
70
+ const fileAttachments = await this.entries(attachmentPath);
71
+ const attachments = [];
72
+ const seenAttachments = new Set();
73
+ fileAttachments.forEach((attachment) => {
74
+ const cardKey = basename(currentPath);
75
+ const attachmentKey = `${cardKey}:${attachment.parentPath}:${attachment.name}`;
76
+ // Skip duplicate attachments based on card, path, and filename
77
+ if (!seenAttachments.has(attachmentKey)) {
78
+ seenAttachments.add(attachmentKey);
79
+ attachments.push({
80
+ card: cardKey,
81
+ fileName: attachment.name,
82
+ path: attachment.parentPath,
83
+ mimeType: mime.lookup(attachment.name) || null,
84
+ });
85
+ }
86
+ else {
87
+ CardCache.logger.warn(`Duplicate attachment found during cache population: ${attachment.name} for card ${cardKey}`);
88
+ }
89
+ });
90
+ return attachments;
91
+ }
92
+ // Gets content from disk.
93
+ async fetchContent(currentPath) {
94
+ return readFile(join(currentPath, cardContentFile), {
95
+ encoding: 'utf-8',
96
+ });
97
+ }
98
+ // Gets metadata from disk.
99
+ async fetchMetadata(currentPath) {
100
+ function injectLinksIfMissing(metadata) {
101
+ if (metadata !== '' && !metadata.includes('"links":')) {
102
+ const end = metadata.lastIndexOf('}');
103
+ metadata = metadata.slice(0, end - 1) + ',\n "links": []\n' + '}';
104
+ }
105
+ return metadata;
106
+ }
107
+ let metadata = await readFile(join(currentPath, cardMetadataFile), {
108
+ encoding: 'utf-8',
109
+ });
110
+ metadata = injectLinksIfMissing(metadata);
111
+ return metadata;
112
+ }
113
+ // Builds the card cache from filesystem.
114
+ async fetchFileEntries(path) {
115
+ const allEntries = await this.entries(path);
116
+ const cardEntries = allEntries.filter((entry) => entry.isDirectory() && CardNameRegEx.test(entry.name));
117
+ // Process all card entries in parallel
118
+ const cardPromises = cardEntries.map(async (entry) => {
119
+ const currentPath = join(entry.parentPath, entry.name);
120
+ const location = this.determineLocationFromPath(currentPath);
121
+ const [cardContent, cardMetadata, cardAttachments] = await Promise.all([
122
+ this.fetchContent(currentPath),
123
+ this.fetchMetadata(currentPath),
124
+ this.fetchAttachments(currentPath),
125
+ ]);
126
+ return {
127
+ key: entry.name,
128
+ path: currentPath,
129
+ children: [],
130
+ attachments: Array.isArray(cardAttachments) ? cardAttachments : [],
131
+ content: typeof cardContent === 'string' ? cardContent : '',
132
+ metadata: JSON.parse(cardMetadata),
133
+ parent: parentCard(currentPath),
134
+ location: location,
135
+ };
136
+ });
137
+ // Wait for all cards to be processed and add them to the cards array
138
+ const processedCards = await Promise.all(cardPromises);
139
+ return processedCards;
140
+ }
141
+ // Populates the cache from the given array of cards
142
+ populateFromCards(cards, buildRelationships = true) {
143
+ const newMap = new Map(cards?.map((card) => {
144
+ return [card.key, card];
145
+ }));
146
+ this.cardCache = new Map([...this.cardCache, ...newMap]);
147
+ // Remove possible duplicates, card IDs must be unique
148
+ const cardIds = cards.map((item) => item.key);
149
+ const duplicates = cardIds.reduce((acc, v, i, arr) => arr.indexOf(v) === i || acc.includes(v) ? acc : acc.concat(v), []);
150
+ if (duplicates.length > 0) {
151
+ throw new Error(`Duplicate card keys found: ${duplicates}`);
152
+ }
153
+ if (buildRelationships) {
154
+ this.populateChildrenRelationships();
155
+ }
156
+ this.cachePopulated = true;
157
+ CardCache.logger.info(`Card cache populated`);
158
+ }
159
+ // Returns instance of logger.
160
+ static get logger() {
161
+ return getChildLogger({
162
+ module: 'cardCache',
163
+ });
164
+ }
165
+ /**
166
+ * Adds attachment to a card in the cache.
167
+ * @param cardKey card key for which to add new attachment
168
+ * @param fileName attachment fileName
169
+ * @returns true, if attachment was added to the cache; false otherwise.
170
+ */
171
+ addAttachment(cardKey, fileName) {
172
+ const card = this.cardCache.get(cardKey);
173
+ if (!card) {
174
+ CardCache.logger.warn(`Cannot add attachment to card '${cardKey}. Card does not exist.'`);
175
+ return false;
176
+ }
177
+ const attachmentFolder = join(card.path, 'a');
178
+ const attachment = {
179
+ card: cardKey,
180
+ path: attachmentFolder,
181
+ fileName: fileName,
182
+ mimeType: mime.lookup(fileName) || null,
183
+ };
184
+ // Check for duplicate attachments based on card, path, and filename
185
+ const isDuplicate = card.attachments.some((existingAttachment) => existingAttachment.card === attachment.card &&
186
+ existingAttachment.path === attachment.path &&
187
+ existingAttachment.fileName === attachment.fileName);
188
+ if (isDuplicate) {
189
+ CardCache.logger.warn(`Duplicate attachment prevented: ${attachment.fileName} for card ${cardKey}`);
190
+ return false;
191
+ }
192
+ card.attachments.push(attachment);
193
+ this.cardCache.set(cardKey, card);
194
+ return true;
195
+ }
196
+ /**
197
+ * Empties the cache.
198
+ */
199
+ clear() {
200
+ CardCache.logger.info(`Card cache cleared`);
201
+ this.cachePopulated = false;
202
+ this.cardCache.clear();
203
+ }
204
+ /**
205
+ * Removes a card from the cache.
206
+ * @param cardKey card key to remove
207
+ * @returns true, if card was removed from the cache; false otherwise
208
+ */
209
+ deleteCard(cardKey) {
210
+ const cardExists = this.cardCache.has(cardKey);
211
+ if (cardExists) {
212
+ this.cardCache.delete(cardKey);
213
+ }
214
+ return cardExists;
215
+ }
216
+ /**
217
+ * Removes attachment from a card in the cache.
218
+ * @param cardKey card key of card from which attachment is to be removed
219
+ * @param filename attachment filename to remove
220
+ * @returns true, if attachment was removed from the cache; false otherwise
221
+ */
222
+ deleteAttachment(cardKey, filename) {
223
+ const cachedCard = this.cardCache.get(cardKey);
224
+ if (cachedCard && cachedCard.attachments) {
225
+ const attachmentExists = cachedCard.attachments.find((item) => item.fileName === filename);
226
+ cachedCard.attachments = cachedCard.attachments.filter((attachment) => attachment.fileName !== filename);
227
+ return attachmentExists ? true : false;
228
+ }
229
+ return false;
230
+ }
231
+ /**
232
+ * Removes template's cards from the cache.
233
+ * @param templateName Name of the template
234
+ */
235
+ deleteCardsFromTemplate(templateName) {
236
+ for (const card of this.cardCache.values()) {
237
+ if (card.location === templateName) {
238
+ this.deleteCard(card.key);
239
+ }
240
+ }
241
+ }
242
+ /**
243
+ * Returns all the template cards in the cache.
244
+ * @returns all the template cards in the cache.
245
+ */
246
+ getAllTemplateCards() {
247
+ return Array.from(this.cardCache.values()).filter((item) => item.location !== 'project');
248
+ }
249
+ /**
250
+ * Returns a card from the cache.
251
+ * @param cardKey card key to find
252
+ * @returns card from the cache; if not found then returns undefined.
253
+ */
254
+ getCard(cardKey) {
255
+ return this.cardCache.get(cardKey);
256
+ }
257
+ /**
258
+ * Returns all the cards in the cache.
259
+ * @returns all the cards in the cache
260
+ */
261
+ getCards() {
262
+ return Array.from(this.cardCache.values());
263
+ }
264
+ /**
265
+ * Returns all the attachments in the cache for a given card key.
266
+ * @param cardKey Card key for which to fetch all the attachments for.
267
+ * @returns all the attachments in the cache for a given card key.
268
+ */
269
+ getCardAttachments(cardKey) {
270
+ const card = this.cardCache.get(cardKey);
271
+ if (!card) {
272
+ CardCache.logger.warn(`Card '${cardKey}' not found`);
273
+ return undefined;
274
+ }
275
+ return card.attachments;
276
+ }
277
+ /**
278
+ * Checks if card is in the cache; false otherwise.
279
+ * @param cardKey card key to check
280
+ * @returns true if card is in the cache; false otherwise
281
+ */
282
+ hasCard(cardKey) {
283
+ return this.cardCache.has(cardKey);
284
+ }
285
+ /**
286
+ * Checks if card in cache has attachment.
287
+ * @param cardKey card key to check
288
+ * @param filename attachment file name to find
289
+ * @returns true, if card in cache has attachment; false otherwise.
290
+ */
291
+ hasCardAttachment(cardKey, filename) {
292
+ const card = this.cardCache.get(cardKey);
293
+ if (!card) {
294
+ CardCache.logger.warn(`Card '${cardKey}' not found`);
295
+ return false;
296
+ }
297
+ const attachment = card.attachments.find((item) => item.fileName === filename);
298
+ return attachment ? true : false;
299
+ }
300
+ /**
301
+ * Checks if cache has been already populated.
302
+ * @returns true if cache has already been populated; otherwise false
303
+ */
304
+ get isPopulated() {
305
+ return this.cachePopulated;
306
+ }
307
+ /**
308
+ * Re-builds the existing cache's parent-child relationships info.
309
+ */
310
+ populateChildrenRelationships() {
311
+ CardCache.logger.info(`Card children relationships re-built`);
312
+ for (const card of this.getCards()) {
313
+ card.children = [];
314
+ }
315
+ this.buildChildrenRelationshipsRecursively();
316
+ }
317
+ /**
318
+ * Populates the cache from a given path
319
+ * @param path File system path where the cache should be built from.
320
+ * @param buildRelationships Whether to build parent-child relationships immediately
321
+ */
322
+ async populateFromPath(path, buildRelationships = true) {
323
+ const cards = await this.fetchFileEntries(path);
324
+ this.populateFromCards(cards, buildRelationships);
325
+ }
326
+ /**
327
+ * Updates, or adds a card to cache.
328
+ * @param cardKey Card key
329
+ * @param cardData Updated data.
330
+ */
331
+ updateCard(cardKey, cardData) {
332
+ const card = this.cardCache.get(cardKey);
333
+ if (!card) {
334
+ const targetLocation = this.determineLocationFromPath(cardData.path);
335
+ const extendedCard = {
336
+ ...cardData,
337
+ location: targetLocation,
338
+ };
339
+ this.cardCache.set(cardKey, extendedCard);
340
+ return;
341
+ }
342
+ if (!card?.path) {
343
+ CardCache.logger.info(`Missing path for a card '${cardKey}'`);
344
+ throw new Error(`No path in card!`);
345
+ }
346
+ if (!cardData?.path) {
347
+ CardCache.logger.info(`Missing path for a card data '${cardKey}'`);
348
+ throw new Error(`No path in card data!`);
349
+ }
350
+ const targetLocation = this.determineLocationFromPath(cardData.path);
351
+ const extendedCard = {
352
+ ...card, // Existing card data
353
+ ...cardData, // Override with new data
354
+ location: targetLocation,
355
+ // Explicitly preserve certain data if it exists in the cached card but not in cardData
356
+ metadata: cardData.metadata ?? card.metadata,
357
+ content: cardData.content ?? card.content,
358
+ attachments: cardData.attachments ?? card.attachments,
359
+ };
360
+ this.cardCache.set(cardKey, extendedCard);
361
+ }
362
+ /**
363
+ * Updates card's attachments.
364
+ * @param cardKey card key of a card to update
365
+ * @param attachments Attachments to use in the card.
366
+ * @returns true, if update succeeded; false otherwise.
367
+ */
368
+ updateCardAttachments(cardKey, attachments) {
369
+ const card = this.cardCache.get(cardKey);
370
+ if (!card) {
371
+ CardCache.logger.warn(`Card '${cardKey}' not found`);
372
+ return false;
373
+ }
374
+ card.attachments = attachments;
375
+ this.cardCache.set(cardKey, card);
376
+ return true;
377
+ }
378
+ /**
379
+ * Updates card's content in the cache.
380
+ * @param cardKey card key of a card to update.
381
+ * @param content New content for the card.
382
+ * @returns true, if update succeeded; false otherwise.
383
+ */
384
+ updateCardContent(cardKey, content) {
385
+ const card = this.cardCache.get(cardKey);
386
+ if (!card) {
387
+ CardCache.logger.warn(`Card '${cardKey}' not found`);
388
+ return false;
389
+ }
390
+ card.content = content;
391
+ this.cardCache.set(cardKey, card);
392
+ return true;
393
+ }
394
+ /**
395
+ * Updates card's metadata in the cache.
396
+ * @param cardKey card key of a card to update.
397
+ * @param metadata New metadata for the card.
398
+ * @returns true, if update succeeded; false otherwise.
399
+ */
400
+ updateCardMetadata(cardKey, metadata) {
401
+ const card = this.cardCache.get(cardKey);
402
+ if (!card) {
403
+ CardCache.logger.warn(`Card '${cardKey}' not found`);
404
+ return false;
405
+ }
406
+ card.metadata = metadata;
407
+ this.cardCache.set(cardKey, card);
408
+ return true;
409
+ }
410
+ }
411
+ //# sourceMappingURL=card-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-cache.js","sourceRoot":"","sources":["../../../src/containers/project/card-cache.ts"],"names":[],"mappings":"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"}