@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
@@ -11,48 +11,61 @@
11
11
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
12
  */
13
13
  // node
14
- import { existsSync, readFileSync } from 'node:fs';
14
+ import { readFileSync } from 'node:fs';
15
15
  import { homedir } from 'node:os';
16
16
  import { join, resolve } from 'node:path';
17
17
  import { spawn } from 'node:child_process';
18
18
  import { writeFile } from 'node:fs/promises';
19
19
  import { MODULE_LIST_FULL_PATH } from './fetch.js';
20
- import mime from 'mime-types';
21
- import { Project } from '../containers/project.js';
22
- import { resourceName, resourceNameToString, } from '../utils/resource-utils.js';
23
- import { TemplateResource } from '../resources/template-resource.js';
24
20
  import { UserPreferences } from '../utils/user-preferences.js';
25
21
  import ReportMacro from '../macros/report/index.js';
26
22
  import TaskQueue from '../macros/task-queue.js';
27
23
  import { evaluateMacros } from '../macros/index.js';
28
- import { FolderResource } from '../resources/folder-resource.js';
29
24
  import { readJsonFile } from '../utils/json.js';
30
25
  import { getChildLogger } from '../utils/log-utils.js';
26
+ import { buildCardHierarchy, flattenCardArray } from '../utils/card-utils.js';
31
27
  /**
32
28
  * Show command.
33
29
  */
34
30
  export class Show {
35
31
  project;
36
- resourceFunction;
32
+ resourceFunctions = {
33
+ calculations: (from) => this.resourceNames('calculations', from),
34
+ cardTypes: (from) => this.resourceNames('cardTypes', from),
35
+ fieldTypes: (from) => this.resourceNames('fieldTypes', from),
36
+ graphModels: (from) => this.resourceNames('graphModels', from),
37
+ graphViews: (from) => this.resourceNames('graphViews', from),
38
+ linkTypes: (from) => this.resourceNames('linkTypes', from),
39
+ reports: (from) => this.resourceNames('reports', from),
40
+ templates: (from) => this.resourceNames('templates', from),
41
+ workflows: (from) => this.resourceNames('workflows', from),
42
+ };
37
43
  constructor(project) {
38
44
  this.project = project;
39
- this.resourceFunction = new Map([
40
- ['calculations', this.project.calculations.bind(this.project)],
41
- ['cardTypes', this.project.cardTypes.bind(this.project)],
42
- ['fieldTypes', this.project.fieldTypes.bind(this.project)],
43
- ['graphModels', this.project.graphModels.bind(this.project)],
44
- ['graphViews', this.project.graphViews.bind(this.project)],
45
- ['linkTypes', this.project.linkTypes.bind(this.project)],
46
- ['reports', this.project.reports.bind(this.project)],
47
- ['templates', this.project.templates.bind(this.project)],
48
- ['workflows', this.project.workflows.bind(this.project)],
49
- ]);
50
45
  }
51
46
  get logger() {
52
47
  return getChildLogger({
53
48
  module: 'show',
54
49
  });
55
50
  }
51
+ // Gets all template attachments
52
+ async attachmentsFromTemplates() {
53
+ const templateAttachments = [];
54
+ const templates = this.project.resources.templates();
55
+ for (const template of templates) {
56
+ const templateObject = template.templateObject();
57
+ if (templateObject) {
58
+ templateAttachments.push(...templateObject.attachments());
59
+ }
60
+ }
61
+ return templateAttachments;
62
+ }
63
+ // Fetch resource names as a list
64
+ resourceNames(resourceType, from) {
65
+ return this.project.resources
66
+ .resourceTypes(resourceType, from)
67
+ .map((item) => item.data?.name || '');
68
+ }
56
69
  // Collect all labels from cards.
57
70
  collectLabels = (cards) => {
58
71
  return cards.reduce((labels, card) => {
@@ -60,26 +73,12 @@ export class Show {
60
73
  if (card.metadata?.labels) {
61
74
  labels.push(...card.metadata.labels);
62
75
  }
63
- // Recursively collect labels from subcards, if they exist
64
- if (card.children) {
65
- labels.push(...this.collectLabels(card.children));
66
- }
67
76
  return labels;
68
77
  }, []);
69
78
  };
70
79
  // Returns attachment details
71
- async getAttachment(cardKey, filename) {
72
- const details = {
73
- content: false,
74
- metadata: true,
75
- children: false,
76
- parent: false,
77
- attachments: true,
78
- };
79
- const card = await this.project.cardDetailsById(cardKey, details);
80
- if (card === undefined) {
81
- throw new Error(`Card '${cardKey}' does not exist in the project`);
82
- }
80
+ getAttachment(cardKey, filename) {
81
+ const card = this.project.findCard(cardKey);
83
82
  const attachment = card.attachments?.find((a) => a.fileName === filename) ?? undefined;
84
83
  return attachment;
85
84
  }
@@ -103,30 +102,23 @@ export class Show {
103
102
  * Shows all template cards in a project.
104
103
  * @returns all template cards in a project.
105
104
  */
106
- async showAllTemplateCards() {
107
- return Promise.all((await this.project.templates()).map(async (template) => {
108
- const templateResource = new TemplateResource(this.project, resourceName(template.name));
105
+ showAllTemplateCards() {
106
+ return this.project.resources.templates().map((template) => {
107
+ const cards = template.templateObject().listCards();
108
+ const buildCards = buildCardHierarchy(cards);
109
109
  return {
110
- name: template.name,
111
- cards: await templateResource.templateObject().showTemplateCards(),
110
+ name: template.data?.name || '',
111
+ cards: buildCards,
112
112
  };
113
- }));
113
+ });
114
114
  }
115
115
  /**
116
116
  * Shows all attachments (either template or project attachments) from a project.
117
117
  * @returns array of card attachments
118
118
  */
119
119
  async showAttachments() {
120
- const attachments = await this.project.attachments();
121
- const templateAttachments = [];
122
- const templates = await this.project.templates();
123
- for (const template of templates) {
124
- const templateResource = new TemplateResource(this.project, resourceName(template.name));
125
- const templateObject = templateResource.templateObject();
126
- if (templateObject) {
127
- templateAttachments.push(...(await templateObject.attachments()));
128
- }
129
- }
120
+ const attachments = this.project.attachments();
121
+ const templateAttachments = await this.attachmentsFromTemplates();
130
122
  attachments.push(...templateAttachments);
131
123
  return attachments;
132
124
  }
@@ -136,27 +128,19 @@ export class Show {
136
128
  * @param filename attachment filename
137
129
  * @returns attachment details
138
130
  */
139
- async showAttachment(cardKey, filename) {
131
+ showAttachment(cardKey, filename) {
140
132
  if (!cardKey) {
141
133
  throw new Error(`Mandatory parameter 'cardKey' missing`);
142
134
  }
143
- const attachment = await this.getAttachment(cardKey, filename);
144
- let attachmentPath = '';
145
- if (attachment) {
146
- attachmentPath = `${attachment.path}/${attachment.fileName}`;
147
- }
148
- if (!attachment || !existsSync(attachmentPath)) {
135
+ const attachment = this.getAttachment(cardKey, filename);
136
+ if (!attachment) {
149
137
  throw new Error(`Attachment '${filename}' not found for card ${cardKey}`);
150
138
  }
151
- else {
152
- const fileBuffer = readFileSync(attachmentPath);
153
- let mimeType = mime.lookup(attachmentPath);
154
- if (mimeType === false) {
155
- mimeType = 'application/octet-stream';
156
- }
157
- const payload = { fileBuffer, mimeType };
158
- return payload;
159
- }
139
+ const attachmentPath = `${attachment.path}/${attachment.fileName}`;
140
+ const fileBuffer = readFileSync(attachmentPath);
141
+ const mimeType = attachment.mimeType || 'application/octet-stream';
142
+ const payload = { fileBuffer, mimeType };
143
+ return payload;
160
144
  }
161
145
  /**
162
146
  * Opens an attachment using a configured application or the operating system's default application.
@@ -166,7 +150,7 @@ export class Show {
166
150
  * @todo: Move away from Show.
167
151
  */
168
152
  async openAttachment(cardKey, filename, waitDelay = 1000) {
169
- const attachment = await this.getAttachment(cardKey, filename);
153
+ const attachment = this.getAttachment(cardKey, filename);
170
154
  if (!attachment) {
171
155
  throw new Error(`Attachment '${filename}' not found for card ${cardKey}`);
172
156
  }
@@ -195,19 +179,26 @@ export class Show {
195
179
  /**
196
180
  * Shows details of a particular card (template card, or project card)
197
181
  * @note Note that parameter 'cardKey' is optional due to technical limitations of class calling this class. It must be defined to get valid results.
198
- * @param details card details to show
199
182
  * @param cardKey card key to find
183
+ * @param contentType Content format in which content is to be shown
200
184
  * @returns card details
201
185
  */
202
- async showCardDetails(details, cardKey) {
186
+ showCardDetails(cardKey, contentType) {
203
187
  if (!cardKey) {
204
188
  throw new Error(`Mandatory parameter 'cardKey' missing`);
205
189
  }
206
- const cardDetails = await this.project.cardDetailsById(cardKey, details);
207
- if (cardDetails === undefined) {
208
- throw new Error(`Card '${cardKey}' does not exist in the project`);
190
+ // todo: Make a constant about this
191
+ const details = {
192
+ parent: true,
193
+ metadata: true,
194
+ children: true,
195
+ attachments: true,
196
+ content: true,
197
+ };
198
+ if (contentType) {
199
+ details.contentType = contentType;
209
200
  }
210
- return cardDetails;
201
+ return this.project.findCard(cardKey, details);
211
202
  }
212
203
  /**
213
204
  * Shows all cards (either template or project cards) from a project.
@@ -230,52 +221,13 @@ export class Show {
230
221
  * @returns array of card type details
231
222
  */
232
223
  async showCardTypesWithDetails() {
233
- const promiseContainer = [];
234
- for (const cardType of await this.project.cardTypes()) {
235
- const cardTypeDetails = await this.project.resource(cardType.name);
236
- if (cardTypeDetails) {
237
- promiseContainer.push(cardTypeDetails);
224
+ const container = [];
225
+ for (const cardType of this.project.resources.cardTypes()) {
226
+ if (cardType.data) {
227
+ container.push(cardType.data);
238
228
  }
239
229
  }
240
- const results = await Promise.all(promiseContainer);
241
- return results.filter((item) => item);
242
- }
243
- /**
244
- * Shows the content of a file in a resource.
245
- * TODO: To be removed
246
- * @deprecated
247
- * @param resourceName Name of the resource.
248
- * @param fileName Name of the file to show.
249
- * @returns the content of the file.
250
- */
251
- async showFile(resourceName, fileName) {
252
- const resourceNameStr = resourceNameToString(resourceName);
253
- if (!(await this.project.resourceExists(resourceName.type, resourceNameStr))) {
254
- throw new Error(`Resource '${resourceNameStr}' does not exist in the project`);
255
- }
256
- const resource = Project.resourceObject(this.project, resourceName);
257
- if (!(resource instanceof FolderResource)) {
258
- throw new Error(`Resource '${resourceNameStr}' is not a folder resource`);
259
- }
260
- return resource.showFile(fileName);
261
- }
262
- /**
263
- * Shows all file names in a folder resource.
264
- * TODO: To be removed
265
- * @deprecated
266
- * @param resourceName Name of the resource.
267
- * @returns all file names in the resource.
268
- */
269
- async showFileNames(resourceName) {
270
- const resourceNameStr = resourceNameToString(resourceName);
271
- if (!(await this.project.resourceExists(resourceName.type, resourceNameStr))) {
272
- throw new Error(`Resource '${resourceNameStr}' does not exist in the project`);
273
- }
274
- const resource = Project.resourceObject(this.project, resourceName);
275
- if (!(resource instanceof FolderResource)) {
276
- throw new Error(`Resource '${resourceNameStr}' is not a folder resource`);
277
- }
278
- return resource.showFileNames();
230
+ return container;
279
231
  }
280
232
  /**
281
233
  * Shows importable modules.
@@ -290,9 +242,9 @@ export class Show {
290
242
  async showImportableModules(showAll, showDetails) {
291
243
  try {
292
244
  const moduleList = (await readJsonFile(resolve(this.project.basePath, MODULE_LIST_FULL_PATH))).modules;
293
- const currentModules = await this.project.modules();
245
+ const currentModules = this.project.resources.moduleNames();
294
246
  const nonImportedModules = moduleList.filter((item) => {
295
- return !currentModules.some((module) => item.name === module.name);
247
+ return !currentModules.some((module) => item.name === module);
296
248
  });
297
249
  if (showAll && showDetails) {
298
250
  return moduleList;
@@ -318,12 +270,9 @@ export class Show {
318
270
  * Returns all unique labels in a project
319
271
  * @returns labels in a list
320
272
  */
321
- async showLabels() {
322
- const cards = await this.project.showProjectCards();
323
- const templateCards = await this.project.allTemplateCards({
324
- metadata: true,
325
- children: true,
326
- });
273
+ showLabels() {
274
+ const cards = flattenCardArray(this.project.showProjectCards(), this.project);
275
+ const templateCards = this.project.allTemplateCards();
327
276
  const labels = this.collectLabels([...cards, ...templateCards]);
328
277
  return Array.from(new Set(labels));
329
278
  }
@@ -356,19 +305,17 @@ export class Show {
356
305
  }
357
306
  /**
358
307
  * Returns all project cards in the project. Cards don't have content and nor metadata.
359
- * @note AppUi uses this method.
360
308
  * @returns array of cards
361
309
  */
362
- async showProjectCards() {
363
- const projectCards = await this.project.showProjectCards();
364
- return projectCards;
310
+ showProjectCards() {
311
+ return this.project.showProjectCards();
365
312
  }
366
313
  /**
367
314
  * Shows all modules (if any) in a project.
368
315
  * @returns all modules in a project.
369
316
  */
370
- async showModules() {
371
- return (await this.project.modules()).map((item) => item.name).sort();
317
+ showModules() {
318
+ return this.project.resources.moduleNames().sort();
372
319
  }
373
320
  /**
374
321
  * Shows details of a particular project.
@@ -382,12 +329,15 @@ export class Show {
382
329
  * @param reportName Name of the report to show
383
330
  * @param cardKey Card key to use for the report
384
331
  * @param parameters Additional parameters for the report
332
+ * @param context Context for resource (includes a project instance)
385
333
  * @param outputPath Optional output path for the report
386
334
  * @returns Report results as a string
387
335
  * @throws Error if the report does not exist
388
336
  */
389
337
  async showReportResults(reportName, cardKey, parameters, context, outputPath) {
390
- if (!(await this.project.reports()).some((report) => report.name === reportName)) {
338
+ if (!this.project.resources
339
+ .reports()
340
+ .some((report) => report.data?.name === reportName)) {
391
341
  throw new Error(`Report '${reportName}' does not exist`);
392
342
  }
393
343
  await this.project.calculationEngine.generate();
@@ -417,14 +367,15 @@ export class Show {
417
367
  }
418
368
  return outputPath ? '' : (result ?? '');
419
369
  }
420
- /**
421
- * Shows details of certain resource.
422
- * @param name Name of resource.
423
- * @returns resource metadata as JSON.
424
- */
425
- async showResource(name, showUse = false) {
426
- const strictNameCheck = true;
427
- const resource = Project.resourceObject(this.project, resourceName(name, strictNameCheck));
370
+ async showResource(name, arg2, arg3) {
371
+ const hasResourceType = typeof arg2 === 'string';
372
+ const resourceType = hasResourceType ? arg2 : null;
373
+ const showUse = hasResourceType ? arg3 : arg2;
374
+ const type = this.project.resources.extractType(name);
375
+ if (resourceType !== null && resourceType !== type) {
376
+ throw new Error(`While fetching '${name}': Expected type '${resourceType}', but got '${type}' instead`);
377
+ }
378
+ const resource = this.project.resources.byType(name, type);
428
379
  const [details, usage] = await Promise.all([
429
380
  resource?.show(),
430
381
  showUse ? resource?.usage() : [],
@@ -445,31 +396,32 @@ export class Show {
445
396
  * @returns sorted array of resources
446
397
  */
447
398
  async showResources(type) {
448
- const func = this.resourceFunction.get(type);
399
+ const func = this.resourceFunctions[type];
449
400
  if (!func)
450
401
  return [];
451
- return (await func()).map((item) => item.name).sort();
402
+ return func().sort();
452
403
  }
453
404
  /**
454
405
  * Shows all templates with full details in a project.
455
406
  * @returns all templates in a project.
456
407
  */
457
408
  async showTemplatesWithDetails() {
458
- const promiseContainer = (await this.project.templates()).map((template) => new TemplateResource(this.project, resourceName(template.name)).show());
459
- const result = await Promise.all(promiseContainer);
460
- return result.filter(Boolean);
409
+ const templates = [];
410
+ for (const template of this.project.resources.templates()) {
411
+ templates.push(template.show());
412
+ }
413
+ return templates;
461
414
  }
462
415
  /**
463
416
  * Shows all workflows with full details in a project.
464
417
  * @returns workflows with full details
465
418
  */
466
- async showWorkflowsWithDetails() {
467
- const promiseContainer = [];
468
- for (const workflow of await this.project.workflows()) {
469
- promiseContainer.push(this.project.resource(workflow.name));
419
+ showWorkflowsWithDetails() {
420
+ const workflows = [];
421
+ for (const workflow of this.project.resources.workflows()) {
422
+ workflows.push(workflow.data);
470
423
  }
471
- const results = await Promise.all(promiseContainer);
472
- return results.filter((item) => item);
424
+ return workflows;
473
425
  }
474
426
  }
475
427
  //# sourceMappingURL=show.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
@@ -10,16 +10,23 @@
10
10
  details. You should have received a copy of the GNU Affero General Public
11
11
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
12
  */
13
- import type { WorkflowState } from '../interfaces/resource-interfaces.js';
14
13
  import type { Project } from '../containers/project.js';
14
+ import type { WorkflowState } from '../interfaces/resource-interfaces.js';
15
+ /**
16
+ * Handles transitions.
17
+ */
15
18
  export declare class Transition {
16
19
  private project;
20
+ /**
21
+ * Creates an instance of Transition command.
22
+ * @param project Project to use.
23
+ */
17
24
  constructor(project: Project);
25
+ private transitionChangesQuery;
18
26
  /**
19
27
  * Transitions a card from its current state to a new state.
20
28
  * @param cardKey card key
21
29
  * @param transition which transition to do
22
30
  */
23
31
  cardTransition(cardKey: string, transition: WorkflowState): Promise<void>;
24
- private transitionChangesQuery;
25
32
  }
@@ -12,40 +12,51 @@
12
12
  */
13
13
  import { ActionGuard } from '../permissions/action-guard.js';
14
14
  import { CardMetadataUpdater } from '../card-metadata-updater.js';
15
+ /**
16
+ * Handles transitions.
17
+ */
15
18
  export class Transition {
16
19
  project;
20
+ /**
21
+ * Creates an instance of Transition command.
22
+ * @param project Project to use.
23
+ */
17
24
  constructor(project) {
18
25
  this.project = project;
19
26
  }
27
+ // Wrapper to run onTransition query.
28
+ async transitionChangesQuery(cardKey, transition) {
29
+ if (!cardKey || !transition)
30
+ return undefined;
31
+ return this.project.calculationEngine.runQuery('onTransition', 'localApp', {
32
+ cardKey,
33
+ transition,
34
+ });
35
+ }
20
36
  /**
21
37
  * Transitions a card from its current state to a new state.
22
38
  * @param cardKey card key
23
39
  * @param transition which transition to do
24
40
  */
25
41
  async cardTransition(cardKey, transition) {
26
- // Card details
27
- const details = await this.project.cardDetailsById(cardKey, {
28
- metadata: true,
29
- });
30
- if (!details || !details.metadata) {
31
- throw new Error(`Card ${cardKey} does not exist in the project`);
42
+ const card = this.project.findCard(cardKey);
43
+ if (!card.metadata?.cardType) {
44
+ throw new Error(`Card does not have card type`);
32
45
  }
33
46
  // Card type
34
- const cardType = await this.project.resource(details.metadata?.cardType);
35
- if (cardType === undefined) {
36
- throw new Error(`Card's card type '${details.metadata?.cardType}' does not exist in the project`);
37
- }
47
+ const cardType = this.project.resources
48
+ .byType(card.metadata?.cardType, 'cardTypes')
49
+ .show();
38
50
  // Workflow
39
- const workflow = await this.project.resource(cardType.workflow);
40
- if (workflow === undefined) {
41
- throw new Error(`Card's workflow '${cardType.workflow}' does not exist in the project`);
42
- }
51
+ const workflow = this.project.resources
52
+ .byType(cardType.workflow, 'workflows')
53
+ .show();
43
54
  // Check that the state transition can be made "from".
44
- const foundFrom = workflow.transitions.find((item) => (details.metadata &&
45
- item.fromState.includes(details.metadata?.workflowState)) ||
55
+ const foundFrom = workflow.transitions.find((item) => (card.metadata &&
56
+ item.fromState.includes(card.metadata?.workflowState)) ||
46
57
  item.fromState.includes('*'));
47
58
  if (!foundFrom) {
48
- throw new Error(`Card's workflow '${cardType.workflow}' does not contain transition from card's current state '${details.metadata?.workflowState}'`);
59
+ throw new Error(`Card's workflow '${cardType.workflow}' does not contain transition from card's current state '${card.metadata?.workflowState}'`);
49
60
  }
50
61
  // Check that the state transition can be made "to".
51
62
  const found = workflow.transitions.find((item) => item.name === transition.name);
@@ -54,37 +65,31 @@ export class Transition {
54
65
  throw new Error(`Card's workflow '${cardType.workflow}' does not contain state transition '${transition.name}'.
55
66
  \nThe available transitions are: ${transitionNames.join(', ')}`);
56
67
  }
57
- if (!(found.fromState.includes(details.metadata?.workflowState) ||
68
+ if (!((card.metadata?.workflowState &&
69
+ found.fromState.includes(card.metadata.workflowState)) ||
58
70
  found.fromState.includes('*'))) {
59
- throw new Error(`Card's workflow '${cardType.workflow}' does not contain state transition from state '${details.metadata?.workflowState}' for '${transition.name}`);
71
+ throw new Error(`Card's workflow '${cardType.workflow}' does not contain state transition from state '${card.metadata?.workflowState}' for '${transition.name}`);
60
72
  }
61
73
  const actionGuard = new ActionGuard(this.project.calculationEngine);
62
74
  await actionGuard.checkPermission('transition', cardKey, transition.name);
63
- details.metadata.workflowState = found.toState;
64
- details.metadata.lastUpdated = new Date().toISOString();
65
- details.metadata.lastTransitioned = new Date().toISOString();
66
- return this.project
67
- .updateCardMetadata(details, details.metadata)
68
- .then(async () => this.transitionChangesQuery(cardKey, transition.name))
69
- .then(async (queryResult) => {
70
- if (!queryResult ||
71
- queryResult.at(0) === undefined ||
72
- queryResult.at(0)?.updateFields === undefined) {
73
- return;
74
- }
75
- const fieldsToUpdate = queryResult.at(0).updateFields;
76
- return CardMetadataUpdater.apply(this.project, fieldsToUpdate);
77
- })
78
- .catch((error) => console.error(error));
79
- }
80
- // Wrapper to run onTransition query.
81
- async transitionChangesQuery(cardKey, transition) {
82
- if (!cardKey || !transition)
83
- return undefined;
84
- return this.project.calculationEngine.runQuery('onTransition', 'localApp', {
85
- cardKey,
86
- transition,
87
- });
75
+ if (card.metadata) {
76
+ card.metadata.workflowState = found.toState;
77
+ card.metadata.lastUpdated = new Date().toISOString();
78
+ card.metadata.lastTransitioned = new Date().toISOString();
79
+ return this.project
80
+ .updateCardMetadata(card, card.metadata)
81
+ .then(async () => this.transitionChangesQuery(cardKey, transition.name))
82
+ .then(async (queryResult) => {
83
+ if (!queryResult ||
84
+ queryResult.at(0) === undefined ||
85
+ queryResult.at(0)?.updateFields === undefined) {
86
+ return;
87
+ }
88
+ const fieldsToUpdate = queryResult.at(0).updateFields;
89
+ return CardMetadataUpdater.apply(this.project, fieldsToUpdate);
90
+ })
91
+ .catch((error) => console.error(error));
92
+ }
88
93
  }
89
94
  }
90
95
  //# sourceMappingURL=transition.js.map