@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,8 +12,8 @@
12
12
  */
13
13
  // node
14
14
  import { basename, join, resolve, sep } from 'node:path';
15
- import { copyFile, mkdir, readdir, rm, writeFile } from 'node:fs/promises';
16
15
  import { readdirSync } from 'node:fs';
16
+ import { copyFile, mkdir, rm, writeFile } from 'node:fs/promises';
17
17
  // Base class
18
18
  import { CardContainer } from './card-container.js';
19
19
  import { CardNameRegEx, } from '../interfaces/project-interfaces.js';
@@ -21,24 +21,34 @@ import { pathExists, stripExtension } from '../utils/file-utils.js';
21
21
  import { DefaultContent } from '../resources/create-defaults.js';
22
22
  import { EMPTY_RANK, FIRST_RANK, getRankAfter, sortItems, } from '../utils/lexorank.js';
23
23
  import { getChildLogger } from '../utils/log-utils.js';
24
- import { readJsonFile } from '../utils/json.js';
24
+ import { isModulePath } from '../utils/card-utils.js';
25
25
  import { Project } from './project.js';
26
26
  import { resourceName } from '../utils/resource-utils.js';
27
+ import { ROOT } from '../utils/constants.js';
27
28
  // creates template instance based on a project path and name
28
29
  export class Template extends CardContainer {
30
+ templateName;
29
31
  templatePath;
30
32
  templateCardsPath;
33
+ fullTemplateName; // Full template name from resource (e.g., 'test/templates/page')
31
34
  project;
32
35
  get logger() {
33
36
  return getChildLogger({
34
37
  module: 'template',
35
38
  });
36
39
  }
40
+ /**
41
+ * Creates an instance of Template container that holds template related cards.
42
+ * @param project Project in which template is.
43
+ * @param template Template resource that this container is connected to.
44
+ */
45
+ // @todo: Fix the constructor to not use Resource, but resource full path
37
46
  constructor(project, template) {
38
47
  // Templates might come from modules. Remove module name from template name.
39
48
  const templateName = stripExtension(basename(template.name));
40
- super(template.path, templateName);
41
- // prevent constructing a new project object, if one is passed to this class.
49
+ super(template.path, project.projectPrefix, templateName);
50
+ this.templateName = templateName;
51
+ this.fullTemplateName = template.name;
42
52
  this.project = project;
43
53
  // optimization - if template.path is set - use it
44
54
  this.templatePath =
@@ -47,25 +57,6 @@ export class Template extends CardContainer {
47
57
  : this.setTemplatePath(template.name);
48
58
  this.templateCardsPath = join(this.templatePath, 'c');
49
59
  }
50
- // Fetches project top level cards only.
51
- // Top level cards are those that have parent as 'root'.
52
- // todo: This should be in 'project' or 'card-container'
53
- async rootLevelProjectCards() {
54
- const entries = (await readdir(this.project.paths.cardRootFolder, {
55
- withFileTypes: true,
56
- })).filter((entry) => entry.isDirectory() && CardNameRegEx.test(entry.name));
57
- const cardPromises = entries.map(async (entry) => {
58
- const currentPath = join(entry.parentPath, entry.name);
59
- return {
60
- key: entry.name,
61
- path: currentPath,
62
- metadata: await readJsonFile(join(currentPath, CardContainer.cardMetadataFile)),
63
- children: [],
64
- attachments: [],
65
- };
66
- });
67
- return Promise.all(cardPromises);
68
- }
69
60
  // Creates card(s) as project cards from template.
70
61
  async doCreateCards(cards, parentCard) {
71
62
  const templateIDMap = new Map();
@@ -78,10 +69,10 @@ export class Template extends CardContainer {
78
69
  templateIDMap.set(card.key, newCardIds.at(index) || '');
79
70
  });
80
71
  // Handle ranking for parent cards
81
- const parentCards = sortItems(cards.filter((c) => c.parent === 'root'), (c) => c?.metadata?.rank || '');
72
+ const parentCards = sortItems(cards.filter((c) => c.parent === ROOT), (c) => c?.metadata?.rank || '');
82
73
  const futureSiblings = parentCard
83
- ? parentCard.children || []
84
- : await this.rootLevelProjectCards();
74
+ ? this.project.cardKeysToCards(parentCard.children)
75
+ : this.rootLevelProjectCards();
85
76
  let latestRank = sortItems(futureSiblings.filter((c) => c.metadata?.rank !== undefined), (c) => c.metadata?.rank || '').pop()?.metadata?.rank || FIRST_RANK;
86
77
  // Update ranks
87
78
  parentCards.forEach((card) => {
@@ -109,6 +100,25 @@ export class Template extends CardContainer {
109
100
  card.path = card.path.replace(templatesFolder, parentCard ? parentCard.path : this.project.paths.cardRootFolder);
110
101
  }
111
102
  card.key = templateIDMap.get(card.key) || card.key;
103
+ // Set parent field based on template hierarchy and creation location
104
+ // Store the original template parent before key remapping
105
+ const originalParentKey = card.parent;
106
+ if (parentCard) {
107
+ if (!originalParentKey || originalParentKey === ROOT) {
108
+ card.parent = parentCard.key;
109
+ }
110
+ else {
111
+ card.parent = templateIDMap.get(originalParentKey) || parentCard.key;
112
+ }
113
+ }
114
+ else {
115
+ if (!originalParentKey || originalParentKey === ROOT) {
116
+ card.parent = ROOT;
117
+ }
118
+ else {
119
+ card.parent = templateIDMap.get(originalParentKey) || ROOT;
120
+ }
121
+ }
112
122
  };
113
123
  // Process attachments
114
124
  const processAttachments = async (card) => {
@@ -130,14 +140,12 @@ export class Template extends CardContainer {
130
140
  const processMetadata = async (card, parentCards) => {
131
141
  if (!card.metadata)
132
142
  return card;
133
- const cardType = await this.project.resource(card.metadata.cardType || '');
134
- if (!cardType) {
135
- throw new Error(`Card type '${card.metadata.cardType}' of card ${card.key} cannot be found`);
136
- }
137
- const workflow = await this.project.resource(cardType.workflow);
138
- if (!workflow) {
139
- throw new Error(`Workflow '${cardType.workflow}' cannot be found`);
140
- }
143
+ const cardType = this.project.resources
144
+ .byType(card.metadata?.cardType, 'cardTypes')
145
+ .show();
146
+ const workflow = this.project.resources
147
+ .byType(cardType.workflow, 'workflows')
148
+ .show();
141
149
  const initialWorkflowState = workflow.transitions.find((item) => item.fromState.includes('') || item.fromState.length === 0);
142
150
  if (!initialWorkflowState) {
143
151
  throw new Error(`Workflow '${cardType.workflow}' initial state cannot be found`);
@@ -166,7 +174,9 @@ export class Template extends CardContainer {
166
174
  const parentCards = await createMappingAndRanks();
167
175
  const templatesFolder = this.templateFolder();
168
176
  // Process all cards in parallel
169
- const processedCards = await Promise.all(cards.map(async (card) => {
177
+ // Create deep copies to avoid mutating the cached template cards
178
+ const processedCards = await Promise.all(cards.map(async (originalCard) => {
179
+ const card = structuredClone(originalCard);
170
180
  // Update paths and keys
171
181
  updateCardPaths(card, templateIDMap, templatesFolder);
172
182
  // Process metadata and attachments in parallel
@@ -177,21 +187,29 @@ export class Template extends CardContainer {
177
187
  // Create directory and write files
178
188
  await mkdir(processedCard.path, { recursive: true });
179
189
  await Promise.all([
180
- processedCard.metadata && this.saveCardMetadata(processedCard),
190
+ this.saveCardMetadata(processedCard),
181
191
  writeFile(join(processedCard.path, Project.cardContentFile), processedAttachments.content || ''),
182
192
  ]);
183
193
  return processedCard;
184
194
  }));
195
+ await this.project.handleNewCards(processedCards);
185
196
  return processedCards;
186
197
  }
187
198
  catch (error) {
188
199
  await this.removeCards(templateIDMap);
189
- if (error instanceof Error) {
190
- throw new Error(`Failed to create cards: ${error.message}`);
191
- }
200
+ this.logger.error({ error }, 'Failed to create cards');
192
201
  throw error;
193
202
  }
194
203
  }
204
+ // Helper method to find a card.
205
+ findCardDirect(cardKey) {
206
+ const allCards = this.cards();
207
+ const result = allCards.find((card) => card.key === cardKey);
208
+ if (!result) {
209
+ throw new Error(`Card '${cardKey}' is not part of template`);
210
+ }
211
+ return result;
212
+ }
195
213
  // fetches path to module.
196
214
  moduleTemplatePath(templateName) {
197
215
  // If template path has already been deduced, return it.
@@ -211,20 +229,21 @@ export class Template extends CardContainer {
211
229
  const templateFolderInModule = join(module.parentPath, module.name, 'templates', templateName);
212
230
  const exists = pathExists(templateFolderInModule);
213
231
  if (exists) {
232
+ this.templatePath = templateFolderInModule;
214
233
  return templateFolderInModule;
215
234
  }
216
235
  }
217
236
  return '';
218
237
  }
219
238
  // Removes cards
239
+ // Helper for doCreateCards; not intended for any other use.
220
240
  async removeCards(cardMap) {
221
- const tasks = [];
241
+ const cards = [];
222
242
  // Find all cards that need to be removed.
223
243
  cardMap.forEach((createdCard) => {
224
- tasks.push(this.project.findSpecificCard(createdCard));
244
+ const card = this.project.findCard(createdCard);
245
+ cards.push(card);
225
246
  });
226
- // Remove empty results.
227
- const cards = (await Promise.all(tasks)).filter((item) => item !== undefined);
228
247
  // Delete card folders.
229
248
  const deleteAll = [];
230
249
  cards.forEach((card) => {
@@ -232,6 +251,11 @@ export class Template extends CardContainer {
232
251
  });
233
252
  await Promise.all(deleteAll);
234
253
  }
254
+ // Fetches project top level cards only.
255
+ rootLevelProjectCards() {
256
+ const allProjectCards = this.project.cards(this.project.paths.cardRootFolder);
257
+ return allProjectCards.filter((card) => card.parent === ROOT);
258
+ }
235
259
  // Set path to template location.
236
260
  setTemplatePath(templateName) {
237
261
  const { prefix, identifier } = resourceName(templateName);
@@ -260,18 +284,18 @@ export class Template extends CardContainer {
260
284
  */
261
285
  async addCard(cardTypeName, parentCard) {
262
286
  const destinationCardPath = parentCard
263
- ? join(await this.cardFolder(parentCard.key), 'c')
287
+ ? join(this.cardFolder(parentCard.key), 'c')
264
288
  : this.templateCardsPath;
265
289
  let newCardKey = '';
266
290
  try {
291
+ // todo: to use cache instead of file access
267
292
  if (!pathExists(this.templateFolder())) {
268
293
  throw new Error(`Template '${this.containerName}' does not exist`);
269
294
  }
270
- const cardType = await this.project.resource(cardTypeName);
271
- if (cardType === undefined) {
272
- throw new Error(`Card type '${cardTypeName}' does not exist`);
273
- }
274
- if (parentCard && !this.hasCard(parentCard.key)) {
295
+ const cardType = this.project.resources
296
+ .byType(cardTypeName, 'cardTypes')
297
+ .show();
298
+ if (parentCard && !this.hasTemplateCard(parentCard.key)) {
275
299
  throw new Error(`Card '${parentCard.key}' does not exist in template '${this.containerName}'`);
276
300
  }
277
301
  const cardIds = await this.project.listCardIds();
@@ -280,8 +304,8 @@ export class Template extends CardContainer {
280
304
  ? join(destinationCardPath, newCardKey)
281
305
  : join(this.templateCardsPath, newCardKey);
282
306
  const templateCards = parentCard
283
- ? parentCard.children || []
284
- : await this.cards();
307
+ ? this.project.cardKeysToCards(parentCard.children)
308
+ : this.cards();
285
309
  const defaultContent = DefaultContent.card(cardType, templateCards);
286
310
  await mkdir(templateCardToCreate, { recursive: true });
287
311
  const defaultCard = {
@@ -291,13 +315,14 @@ export class Template extends CardContainer {
291
315
  children: [],
292
316
  attachments: [],
293
317
  content: '',
318
+ parent: parentCard ? parentCard.key : ROOT,
294
319
  };
295
320
  await this.saveCard(defaultCard);
321
+ await this.project.handleNewCards([defaultCard]);
296
322
  }
297
323
  catch (error) {
298
- if (error instanceof Error) {
299
- throw new Error(error.message);
300
- }
324
+ this.logger.error({ error });
325
+ throw error;
301
326
  }
302
327
  return newCardKey;
303
328
  }
@@ -305,57 +330,39 @@ export class Template extends CardContainer {
305
330
  * Return all attachment in the template.
306
331
  * @returns all attachments in the template.
307
332
  */
308
- async attachments() {
309
- return super.attachments(this.templateCardsPath);
333
+ attachments() {
334
+ return this.project.attachmentsByPath(this.templateCardsPath);
310
335
  }
311
336
  /**
312
337
  * Returns path to card's attachment folder.
313
338
  * @param cardKey card key
314
339
  * @returns path to card's attachment folder.
315
340
  */
316
- async cardAttachmentFolder(cardKey) {
317
- const pathToCard = await this.cardFolder(cardKey);
318
- if (!pathToCard) {
319
- throw new Error(`Template card '${cardKey}' not found`);
320
- }
341
+ cardAttachmentFolder(cardKey) {
342
+ const pathToCard = this.project.findCard(cardKey)?.path;
321
343
  return join(pathToCard, 'a');
322
344
  }
323
- /**
324
- * Returns details (as defined by cardDetails) of a card.
325
- * @param cardKey card key (project prefix and a number, e.g. test_1)
326
- * @param cardDetails which card details are returned.
327
- * @returns Card details, or undefined if the card cannot be found.
328
- */
329
- async cardDetailsById(cardKey, cardDetails) {
330
- return super.findCard(this.templateCardsPath, cardKey, cardDetails);
331
- }
332
345
  /**
333
346
  * returns path to card's folder.
334
347
  * @param cardKey card key
335
348
  * @returns path to card's folder.
336
349
  */
337
- async cardFolder(cardKey) {
338
- const found = await super.findCard(this.templateCardsPath, cardKey);
350
+ cardFolder(cardKey) {
351
+ const found = this.findCardDirect(cardKey);
339
352
  return found ? found.path : '';
340
353
  }
341
354
  /**
342
- * Returns all cards in the template. Cards have content and metadata.
355
+ * Returns all cards in the template.
343
356
  * @param placeHolderPath This is not used. Needed to be compatible with base class.
344
- * @param details Optional. Which details are returned for each card. If missing, default value will be used.
345
357
  * @returns Template cards in the template.
346
358
  */
347
- async cards(placeHolderPath, details) {
359
+ cards(placeHolderPath) {
348
360
  if (placeHolderPath) {
349
361
  this.logger.warn('A non-used variable was used in the cards method');
350
362
  }
351
- const cardDetails = details
352
- ? details
353
- : {
354
- content: true,
355
- contentType: 'adoc',
356
- metadata: true,
357
- };
358
- return super.cards(this.templateCardsPath, cardDetails);
363
+ // Filter cards from the project's card cache that belong to this template.
364
+ const allCards = [...this.project.cardsCache.getCards()];
365
+ return allCards.filter((card) => card.location !== 'project' && card.location === this.fullTemplateName);
359
366
  }
360
367
  /**
361
368
  * Creates cards from a template. If parent card is specified, then cards are created to underneath a parent.
@@ -363,13 +370,7 @@ export class Template extends CardContainer {
363
370
  * @returns array of created card keys
364
371
  */
365
372
  async createCards(parentCard) {
366
- const cards = await this.cards('', {
367
- content: true,
368
- contentType: 'adoc',
369
- metadata: true,
370
- attachments: true,
371
- parent: true,
372
- });
373
+ const cards = this.cards();
373
374
  if (cards.length === 0) {
374
375
  throw new Error(`No cards in template '${this.containerName}'. Please add template cards with 'add' command first.`);
375
376
  }
@@ -378,10 +379,9 @@ export class Template extends CardContainer {
378
379
  /**
379
380
  * Returns specific card.
380
381
  * @param cardKey Card key to find from template.
381
- * @param details Card details to include in return value.
382
382
  * @returns specific card details
383
383
  */
384
- async findSpecificCard(cardKey, details = {}) {
384
+ findCard(cardKey) {
385
385
  const cardPrefix = cardKey.split('_').at(0);
386
386
  const moduleCardFromProject = this.basePath.includes('local') &&
387
387
  this.project.projectPrefix !== cardPrefix;
@@ -389,31 +389,43 @@ export class Template extends CardContainer {
389
389
  this.project.projectPrefix === cardPrefix;
390
390
  // If the result is impossible, return undefined.
391
391
  if (moduleCardFromProject || projectCardFromModule) {
392
- return undefined;
392
+ throw new Error(`Card '${cardKey}' is not part of template`);
393
393
  }
394
- return super.findCard(this.templateCardsPath, cardKey, details);
394
+ return this.findCardDirect(cardKey);
395
395
  }
396
396
  /**
397
397
  * Checks if a specific card key exists in a template.
398
398
  * @param cardKey Card key to find from template.
399
- * @return true if card with a given card key exists in the template, false otherwise.
399
+ * @returns true if card with a given card key exists in the template, false otherwise.
400
400
  */
401
- hasCard(cardKey) {
402
- return super.hasCard(cardKey, this.templateCardsPath);
401
+ hasTemplateCard(cardKey) {
402
+ return this.project.hasTemplateCard(cardKey);
403
403
  }
404
404
  /**
405
405
  * Check if template name exists already in the project.
406
406
  * @returns true, if template is exists in project; false otherwise
407
407
  */
408
408
  isCreated() {
409
+ // todo: to use cache instead of file access
409
410
  return pathExists(this.templateCardsPath);
410
411
  }
411
412
  /**
412
- * Returns an array of all the cards in the project. Cards don't have content nor metadata.
413
- * @returns all cards in the project.
413
+ * Returns an array of all the cards in the template.
414
+ * @returns all cards in the template.
414
415
  */
415
- async listCards() {
416
- return super.cards(this.templateCardsPath);
416
+ listCards() {
417
+ // Construct the full template name to match what's stored in cache
418
+ const fullTemplateName = isModulePath(this.basePath)
419
+ ? `${this.basePath.split(`${sep}modules${sep}`)[1].split(`${sep}templates`)[0]}/templates/${this.templateName}`
420
+ : `${this.project.projectPrefix}/templates/${this.templateName}`;
421
+ const templateCards = Array.from(this.project.cardsCache.getCards()).filter((cachedCard) => {
422
+ if (cachedCard.location === 'project') {
423
+ return false;
424
+ }
425
+ const storedTemplateName = cachedCard.location;
426
+ return storedTemplateName === fullTemplateName;
427
+ });
428
+ return templateCards;
417
429
  }
418
430
  /**
419
431
  * Returns path to 'templates/<name>/c' folder.
@@ -422,13 +434,6 @@ export class Template extends CardContainer {
422
434
  templateCardsFolder() {
423
435
  return this.templateCardsPath;
424
436
  }
425
- /**
426
- * Path to template configuration json file.
427
- * @returns path to the template's configuration file.
428
- */
429
- templateConfigurationFilePath() {
430
- return join(this.templatePath, '..', this.containerName + '.json');
431
- }
432
437
  /**
433
438
  * Returns path to 'templates' folder.
434
439
  * @returns path to the project's folder that contains templates.
@@ -436,12 +441,5 @@ export class Template extends CardContainer {
436
441
  templateFolder() {
437
442
  return this.templatePath;
438
443
  }
439
- /**
440
- * Show cards of a template with hierarchy structure.
441
- * @returns an array of all template cards with proper parent-child relationships.
442
- */
443
- async showTemplateCards() {
444
- return this.showCards(this.templateCardsPath);
445
- }
446
444
  }
447
445
  //# sourceMappingURL=template.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/containers/template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/containers/template.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,7 @@
12
12
  import { Cmd, CmdKey, CmdValue, Commands, CommandManager, ExportFormats } from './command-handler.js';
13
13
  import { Validate } from './commands/validate.js';
14
14
  export * from './interfaces/project-interfaces.js';
15
+ export * from './interfaces/macros.js';
15
16
  import { requestStatus } from './interfaces/request-status-interfaces.js';
16
17
  import { UpdateOperations } from './resources/resource-object.js';
17
18
  export type { Operation, OperationFor, AddOperation, ChangeOperation, RankOperation, RemoveOperation, } from './resources/resource-object.js';
package/dist/index.js CHANGED
@@ -12,6 +12,7 @@
12
12
  import { Cmd, Commands, CommandManager, ExportFormats, } from './command-handler.js';
13
13
  import { Validate } from './commands/validate.js';
14
14
  export * from './interfaces/project-interfaces.js';
15
+ export * from './interfaces/macros.js';
15
16
  import { evaluateMacros } from './macros/index.js';
16
17
  import { isResourceFolderType, resourceName, resourceNameToString, } from './utils/resource-utils.js';
17
18
  import { moduleNameFromCardKey } from './utils/card-utils.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EACL,GAAG,EAGH,QAAQ,EACR,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,cAAc,oCAAoC,CAAC;AAWnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,GAAG,EAGH,cAAc,EACd,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EAErB,YAAY,EACZ,oBAAoB,EAEpB,QAAQ,EACR,cAAc,GACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAEF,OAAO,EACL,GAAG,EAGH,QAAQ,EACR,cAAc,EACd,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,wBAAwB,CAAC;AAWvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EACL,GAAG,EAGH,cAAc,EACd,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EAErB,YAAY,EACZ,oBAAoB,EAEpB,QAAQ,EACR,cAAc,GACf,CAAC"}
@@ -11,6 +11,7 @@
11
11
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
12
  */
13
13
  import type { Schema } from 'jsonschema';
14
+ export type { Schema };
14
15
  export declare const ALL_FILE_MAPPINGS: {
15
16
  readonly 'calculation.lp': "calculation";
16
17
  readonly 'index.adoc.hbs': "contentTemplate";
@@ -19,7 +20,7 @@ export declare const ALL_FILE_MAPPINGS: {
19
20
  readonly 'query.lp.hbs': "queryTemplate";
20
21
  readonly 'view.lp.hbs': "viewTemplate";
21
22
  };
22
- export declare const REVERSE_FILE_MAPPINGS: {
23
+ export declare const CONTENT_FILES: {
23
24
  readonly calculation: "calculation.lp";
24
25
  readonly contentTemplate: "index.adoc.hbs";
25
26
  readonly model: "model.lp";
@@ -27,21 +28,23 @@ export declare const REVERSE_FILE_MAPPINGS: {
27
28
  readonly schema: "parameterSchema.json";
28
29
  readonly viewTemplate: "view.lp.hbs";
29
30
  };
30
- export type ContentPropertyName = keyof typeof REVERSE_FILE_MAPPINGS;
31
+ export type ContentPropertyName = keyof typeof CONTENT_FILES;
31
32
  export interface CalculationContent {
32
33
  calculation: string;
33
34
  }
34
35
  export interface GraphModelContent {
35
- model?: string;
36
+ model: string;
36
37
  }
37
38
  export interface GraphViewContent {
38
39
  viewTemplate?: string;
40
+ schema?: Schema;
39
41
  }
40
42
  export interface ReportContent {
41
43
  contentTemplate: string;
42
44
  queryTemplate: string;
43
45
  schema?: Schema;
44
46
  }
47
+ export type FolderResourceContent = CalculationContent | GraphModelContent | GraphViewContent | ReportContent;
45
48
  /**
46
49
  * Get filename with property name
47
50
  * @param propertyName Property name.
@@ -53,4 +56,4 @@ export declare function filename(propertyName: string): string | undefined;
53
56
  * @param filename Filename.
54
57
  * @returns property name that matches filename
55
58
  */
56
- export declare function propertyName(filename: string): ContentPropertyName | undefined;
59
+ export declare function contentPropertyName(filename: string): ContentPropertyName | undefined;
@@ -20,7 +20,7 @@ export const ALL_FILE_MAPPINGS = {
20
20
  'view.lp.hbs': 'viewTemplate',
21
21
  };
22
22
  // Reverse mappings from property names to filenames
23
- export const REVERSE_FILE_MAPPINGS = {
23
+ export const CONTENT_FILES = {
24
24
  calculation: 'calculation.lp',
25
25
  contentTemplate: 'index.adoc.hbs',
26
26
  model: 'model.lp',
@@ -34,14 +34,14 @@ export const REVERSE_FILE_MAPPINGS = {
34
34
  * @returns filename that matches property name
35
35
  */
36
36
  export function filename(propertyName) {
37
- return REVERSE_FILE_MAPPINGS[propertyName];
37
+ return CONTENT_FILES[propertyName];
38
38
  }
39
39
  /**
40
40
  * Get property name for a filename
41
41
  * @param filename Filename.
42
42
  * @returns property name that matches filename
43
43
  */
44
- export function propertyName(filename) {
44
+ export function contentPropertyName(filename) {
45
45
  return ALL_FILE_MAPPINGS[filename];
46
46
  }
47
47
  //# sourceMappingURL=folder-content-interfaces.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"folder-content-interfaces.js","sourceRoot":"","sources":["../../src/interfaces/folder-content-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAIF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gBAAgB,EAAE,aAAa;IAC/B,gBAAgB,EAAE,iBAAiB;IACnC,UAAU,EAAE,OAAO;IACnB,sBAAsB,EAAE,QAAQ;IAChC,cAAc,EAAE,eAAe;IAC/B,aAAa,EAAE,cAAc;CACrB,CAAC;AAEX,oDAAoD;AACpD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW,EAAE,gBAAgB;IAC7B,eAAe,EAAE,gBAAgB;IACjC,KAAK,EAAE,UAAU;IACjB,aAAa,EAAE,cAAc;IAC7B,MAAM,EAAE,sBAAsB;IAC9B,YAAY,EAAE,aAAa;CACnB,CAAC;AA2BX;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,YAAoB;IAC3C,OAAO,qBAAqB,CAC1B,YAAkD,CACnD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,QAAgB;IAEhB,OAAO,iBAAiB,CAAC,QAA0C,CAAC,CAAC;AACvE,CAAC"}
1
+ {"version":3,"file":"folder-content-interfaces.js","sourceRoot":"","sources":["../../src/interfaces/folder-content-interfaces.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAMF,2DAA2D;AAC3D,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gBAAgB,EAAE,aAAa;IAC/B,gBAAgB,EAAE,iBAAiB;IACnC,UAAU,EAAE,OAAO;IACnB,sBAAsB,EAAE,QAAQ;IAChC,cAAc,EAAE,eAAe;IAC/B,aAAa,EAAE,cAAc;CACrB,CAAC;AAEX,oDAAoD;AACpD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,WAAW,EAAE,gBAAgB;IAC7B,eAAe,EAAE,gBAAgB;IACjC,KAAK,EAAE,UAAU;IACjB,aAAa,EAAE,cAAc;IAC7B,MAAM,EAAE,sBAAsB;IAC9B,YAAY,EAAE,aAAa;CACnB,CAAC;AAkCX;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,YAAoB;IAC3C,OAAO,aAAa,CAAC,YAA0C,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB;IAEhB,OAAO,iBAAiB,CAAC,QAA0C,CAAC,CAAC;AACvE,CAAC"}
@@ -49,3 +49,4 @@ export interface HandlebarsOptions {
49
49
  fn: (arg0: unknown) => string;
50
50
  }
51
51
  export type MacroName = keyof typeof macroMetadata;
52
+ export * from '../macros/types.js';
@@ -9,5 +9,5 @@
9
9
  You should have received a copy of the GNU Affero General Public
10
10
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
11
11
  */
12
- export {};
12
+ export * from '../macros/types.js';
13
13
  //# sourceMappingURL=macros.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"macros.js","sourceRoot":"","sources":["../../src/interfaces/macros.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE"}
1
+ {"version":3,"file":"macros.js","sourceRoot":"","sources":["../../src/interfaces/macros.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;EAUE;AAoDF,cAAc,oBAAoB,CAAC"}