@cyberismo/data-handler 0.0.8 → 0.0.10

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 (258) hide show
  1. package/dist/command-handler.d.ts +11 -2
  2. package/dist/command-handler.js +61 -18
  3. package/dist/command-handler.js.map +1 -1
  4. package/dist/command-manager.js +8 -8
  5. package/dist/command-manager.js.map +1 -1
  6. package/dist/commands/calculate.d.ts +7 -44
  7. package/dist/commands/calculate.js +8 -389
  8. package/dist/commands/calculate.js.map +1 -1
  9. package/dist/commands/create.d.ts +6 -3
  10. package/dist/commands/create.js +27 -5
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/edit.d.ts +15 -3
  13. package/dist/commands/edit.js +52 -9
  14. package/dist/commands/edit.js.map +1 -1
  15. package/dist/commands/export.d.ts +11 -9
  16. package/dist/commands/export.js +80 -28
  17. package/dist/commands/export.js.map +1 -1
  18. package/dist/commands/import.d.ts +7 -0
  19. package/dist/commands/import.js +13 -0
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/move.d.ts +11 -12
  22. package/dist/commands/move.js +12 -13
  23. package/dist/commands/move.js.map +1 -1
  24. package/dist/commands/remove.d.ts +1 -3
  25. package/dist/commands/remove.js +4 -6
  26. package/dist/commands/remove.js.map +1 -1
  27. package/dist/commands/rename.d.ts +1 -3
  28. package/dist/commands/rename.js +3 -6
  29. package/dist/commands/rename.js.map +1 -1
  30. package/dist/commands/show.d.ts +37 -5
  31. package/dist/commands/show.js +89 -8
  32. package/dist/commands/show.js.map +1 -1
  33. package/dist/commands/transition.d.ts +1 -3
  34. package/dist/commands/transition.js +3 -5
  35. package/dist/commands/transition.js.map +1 -1
  36. package/dist/commands/update.d.ts +5 -1
  37. package/dist/commands/update.js +7 -1
  38. package/dist/commands/update.js.map +1 -1
  39. package/dist/commands/validate.d.ts +7 -0
  40. package/dist/commands/validate.js +31 -4
  41. package/dist/commands/validate.js.map +1 -1
  42. package/dist/containers/card-container.d.ts +6 -0
  43. package/dist/containers/card-container.js +61 -0
  44. package/dist/containers/card-container.js.map +1 -1
  45. package/dist/containers/project/calculation-engine.d.ts +90 -0
  46. package/dist/containers/project/calculation-engine.js +402 -0
  47. package/dist/containers/project/calculation-engine.js.map +1 -0
  48. package/dist/containers/project/resource-collector.js +9 -13
  49. package/dist/containers/project/resource-collector.js.map +1 -1
  50. package/dist/containers/project.d.ts +18 -1
  51. package/dist/containers/project.js +28 -55
  52. package/dist/containers/project.js.map +1 -1
  53. package/dist/containers/template.d.ts +5 -0
  54. package/dist/containers/template.js +9 -0
  55. package/dist/containers/template.js.map +1 -1
  56. package/dist/index.d.ts +5 -2
  57. package/dist/index.js +5 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/interfaces/macros.d.ts +4 -2
  60. package/dist/interfaces/project-interfaces.d.ts +21 -0
  61. package/dist/interfaces/project-interfaces.js +4 -0
  62. package/dist/interfaces/project-interfaces.js.map +1 -1
  63. package/dist/interfaces/resource-interfaces.d.ts +4 -2
  64. package/dist/interfaces/resource-interfaces.js.map +1 -1
  65. package/dist/macros/base-macro.d.ts +2 -1
  66. package/dist/macros/base-macro.js +14 -2
  67. package/dist/macros/base-macro.js.map +1 -1
  68. package/dist/macros/common.d.ts +16 -9
  69. package/dist/macros/common.js +22 -9
  70. package/dist/macros/common.js.map +1 -1
  71. package/dist/macros/createCards/index.d.ts +2 -2
  72. package/dist/macros/createCards/index.js +4 -0
  73. package/dist/macros/createCards/index.js.map +1 -1
  74. package/dist/macros/graph/index.d.ts +1 -3
  75. package/dist/macros/graph/index.js +1 -6
  76. package/dist/macros/graph/index.js.map +1 -1
  77. package/dist/macros/image/index.d.ts +39 -0
  78. package/dist/macros/image/index.js +82 -0
  79. package/dist/macros/image/index.js.map +1 -0
  80. package/dist/macros/image/metadata.d.ts +18 -0
  81. package/dist/macros/image/metadata.js +22 -0
  82. package/dist/macros/image/metadata.js.map +1 -0
  83. package/dist/macros/include/index.d.ts +31 -0
  84. package/dist/macros/include/index.js +94 -0
  85. package/dist/macros/include/index.js.map +1 -0
  86. package/dist/macros/include/metadata.d.ts +15 -0
  87. package/dist/macros/include/metadata.js +19 -0
  88. package/dist/macros/include/metadata.js.map +1 -0
  89. package/dist/macros/index.d.ts +33 -31
  90. package/dist/macros/index.js +142 -71
  91. package/dist/macros/index.js.map +1 -1
  92. package/dist/macros/percentage/index.d.ts +28 -0
  93. package/dist/macros/percentage/index.js +33 -0
  94. package/dist/macros/percentage/index.js.map +1 -0
  95. package/dist/macros/percentage/metadata.d.ts +15 -0
  96. package/dist/macros/percentage/metadata.js +19 -0
  97. package/dist/macros/percentage/metadata.js.map +1 -0
  98. package/dist/macros/report/index.d.ts +2 -6
  99. package/dist/macros/report/index.js +3 -7
  100. package/dist/macros/report/index.js.map +1 -1
  101. package/dist/macros/scoreCard/index.d.ts +14 -15
  102. package/dist/macros/scoreCard/index.js +14 -18
  103. package/dist/macros/scoreCard/index.js.map +1 -1
  104. package/dist/macros/vega/index.d.ts +28 -0
  105. package/dist/macros/vega/index.js +27 -0
  106. package/dist/macros/vega/index.js.map +1 -0
  107. package/dist/macros/vega/metadata.d.ts +15 -0
  108. package/dist/macros/vega/metadata.js +7 -0
  109. package/dist/macros/vega/metadata.js.map +1 -0
  110. package/dist/macros/vegalite/index.d.ts +26 -0
  111. package/dist/macros/vegalite/index.js +24 -0
  112. package/dist/macros/vegalite/index.js.map +1 -0
  113. package/dist/macros/vegalite/metadata.d.ts +15 -0
  114. package/dist/macros/vegalite/metadata.js +7 -0
  115. package/dist/macros/vegalite/metadata.js.map +1 -0
  116. package/dist/macros/xref/index.d.ts +26 -0
  117. package/dist/macros/xref/index.js +53 -0
  118. package/dist/macros/xref/index.js.map +1 -0
  119. package/dist/macros/xref/metadata.d.ts +15 -0
  120. package/dist/macros/xref/metadata.js +19 -0
  121. package/dist/macros/xref/metadata.js.map +1 -0
  122. package/dist/module-manager.d.ts +1 -0
  123. package/dist/module-manager.js +14 -4
  124. package/dist/module-manager.js.map +1 -1
  125. package/dist/permissions/action-guard.d.ts +2 -2
  126. package/dist/permissions/action-guard.js +1 -1
  127. package/dist/permissions/action-guard.js.map +1 -1
  128. package/dist/resources/card-type-resource.d.ts +2 -0
  129. package/dist/resources/card-type-resource.js +63 -0
  130. package/dist/resources/card-type-resource.js.map +1 -1
  131. package/dist/resources/file-resource.d.ts +2 -0
  132. package/dist/resources/file-resource.js +12 -4
  133. package/dist/resources/file-resource.js.map +1 -1
  134. package/dist/resources/folder-resource.d.ts +19 -0
  135. package/dist/resources/folder-resource.js +51 -2
  136. package/dist/resources/folder-resource.js.map +1 -1
  137. package/dist/resources/graph-model-resource.js +1 -1
  138. package/dist/resources/graph-model-resource.js.map +1 -1
  139. package/dist/resources/graph-view-resource.js +1 -1
  140. package/dist/resources/graph-view-resource.js.map +1 -1
  141. package/dist/resources/report-resource.js +1 -1
  142. package/dist/resources/report-resource.js.map +1 -1
  143. package/dist/resources/resource-object.d.ts +8 -0
  144. package/dist/resources/resource-object.js +10 -1
  145. package/dist/resources/resource-object.js.map +1 -1
  146. package/dist/resources/template-resource.js +1 -1
  147. package/dist/resources/template-resource.js.map +1 -1
  148. package/dist/resources/workflow-resource.d.ts +2 -0
  149. package/dist/resources/workflow-resource.js +53 -9
  150. package/dist/resources/workflow-resource.js.map +1 -1
  151. package/dist/svg/index.d.ts +15 -0
  152. package/dist/svg/index.js +16 -0
  153. package/dist/svg/index.js.map +1 -0
  154. package/dist/svg/lib.d.ts +9 -0
  155. package/dist/svg/lib.js +26 -0
  156. package/dist/svg/lib.js.map +1 -0
  157. package/dist/svg/percentage.d.ts +25 -0
  158. package/dist/svg/percentage.js +90 -0
  159. package/dist/svg/percentage.js.map +1 -0
  160. package/dist/svg/scoreCard.d.ts +19 -0
  161. package/dist/svg/scoreCard.js +55 -0
  162. package/dist/svg/scoreCard.js.map +1 -0
  163. package/dist/types/queries.d.ts +8 -7
  164. package/dist/types/queries.js.map +1 -1
  165. package/dist/utils/card-utils.d.ts +6 -0
  166. package/dist/utils/card-utils.js +12 -0
  167. package/dist/utils/card-utils.js.map +1 -1
  168. package/dist/utils/clingo-facts.d.ts +2 -1
  169. package/dist/utils/clingo-facts.js +19 -2
  170. package/dist/utils/clingo-facts.js.map +1 -1
  171. package/dist/utils/clingo-parser.d.ts +1 -0
  172. package/dist/utils/clingo-parser.js +22 -100
  173. package/dist/utils/clingo-parser.js.map +1 -1
  174. package/dist/utils/constants.d.ts +7 -0
  175. package/dist/utils/constants.js +14 -0
  176. package/dist/utils/constants.js.map +1 -1
  177. package/dist/utils/csv.js.map +1 -1
  178. package/dist/utils/report.d.ts +17 -3
  179. package/dist/utils/report.js +38 -2
  180. package/dist/utils/report.js.map +1 -1
  181. package/dist/utils/resource-utils.d.ts +2 -1
  182. package/dist/utils/resource-utils.js +12 -3
  183. package/dist/utils/resource-utils.js.map +1 -1
  184. package/dist/utils/user-preferences.d.ts +1 -11
  185. package/dist/utils/user-preferences.js +30 -13
  186. package/dist/utils/user-preferences.js.map +1 -1
  187. package/dist/utils/validate.d.ts +2 -3
  188. package/dist/utils/validate.js +2 -2
  189. package/dist/utils/validate.js.map +1 -1
  190. package/package.json +8 -6
  191. package/src/command-handler.ts +96 -17
  192. package/src/command-manager.ts +8 -8
  193. package/src/commands/calculate.ts +11 -525
  194. package/src/commands/create.ts +35 -6
  195. package/src/commands/edit.ts +94 -11
  196. package/src/commands/export.ts +104 -31
  197. package/src/commands/import.ts +16 -0
  198. package/src/commands/move.ts +12 -15
  199. package/src/commands/remove.ts +4 -8
  200. package/src/commands/rename.ts +3 -12
  201. package/src/commands/show.ts +126 -9
  202. package/src/commands/transition.ts +3 -7
  203. package/src/commands/update.ts +6 -0
  204. package/src/commands/validate.ts +41 -13
  205. package/src/containers/card-container.ts +74 -0
  206. package/src/containers/project/calculation-engine.ts +535 -0
  207. package/src/containers/project/resource-collector.ts +13 -15
  208. package/src/containers/project.ts +30 -66
  209. package/src/containers/template.ts +16 -0
  210. package/src/index.ts +13 -2
  211. package/src/interfaces/macros.ts +4 -1
  212. package/src/interfaces/project-interfaces.ts +27 -0
  213. package/src/interfaces/resource-interfaces.ts +5 -2
  214. package/src/macros/base-macro.ts +19 -4
  215. package/src/macros/common.ts +22 -9
  216. package/src/macros/createCards/index.ts +6 -2
  217. package/src/macros/graph/index.ts +6 -10
  218. package/src/macros/image/index.ts +128 -0
  219. package/src/macros/image/metadata.ts +25 -0
  220. package/src/macros/include/index.ts +143 -0
  221. package/src/macros/include/metadata.ts +22 -0
  222. package/src/macros/index.ts +150 -98
  223. package/src/macros/percentage/index.ts +50 -0
  224. package/src/macros/percentage/metadata.ts +22 -0
  225. package/src/macros/report/index.ts +4 -12
  226. package/src/macros/scoreCard/index.ts +21 -25
  227. package/src/macros/vega/index.ts +55 -0
  228. package/src/macros/vega/metadata.ts +21 -0
  229. package/src/macros/vegalite/index.ts +46 -0
  230. package/src/macros/vegalite/metadata.ts +21 -0
  231. package/src/macros/xref/index.ts +73 -0
  232. package/src/macros/xref/metadata.ts +22 -0
  233. package/src/module-manager.ts +15 -5
  234. package/src/permissions/action-guard.ts +3 -3
  235. package/src/resources/card-type-resource.ts +100 -0
  236. package/src/resources/file-resource.ts +16 -4
  237. package/src/resources/folder-resource.ts +59 -2
  238. package/src/resources/graph-model-resource.ts +1 -1
  239. package/src/resources/graph-view-resource.ts +1 -1
  240. package/src/resources/report-resource.ts +1 -1
  241. package/src/resources/resource-object.ts +19 -1
  242. package/src/resources/template-resource.ts +1 -1
  243. package/src/resources/workflow-resource.ts +68 -13
  244. package/src/svg/index.ts +15 -0
  245. package/src/svg/lib.ts +31 -0
  246. package/src/svg/percentage.ts +97 -0
  247. package/src/svg/scoreCard.ts +88 -0
  248. package/src/types/queries.ts +8 -7
  249. package/src/types/string-pixel-width.d.ts +23 -0
  250. package/src/utils/card-utils.ts +13 -0
  251. package/src/utils/clingo-facts.ts +65 -3
  252. package/src/utils/clingo-parser.ts +31 -144
  253. package/src/utils/constants.ts +16 -0
  254. package/src/utils/csv.ts +1 -1
  255. package/src/utils/report.ts +45 -4
  256. package/src/utils/resource-utils.ts +12 -2
  257. package/src/utils/user-preferences.ts +32 -14
  258. package/src/utils/validate.ts +3 -3
@@ -10,365 +10,17 @@
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
- // node
14
- import { basename, join, resolve } from 'node:path';
15
- import { readFile } from 'node:fs/promises';
16
- import { sanitizeSvgBase64 } from '../utils/sanitize-svg.js';
17
- import { instance } from '@viz-js/viz';
18
- import ClingoParser from '../utils/clingo-parser.js';
19
- import { pathExists } from '../utils/file-utils.js';
20
- import { Mutex } from 'async-mutex';
21
- import Handlebars from 'handlebars';
22
- import { ResourcesFrom } from '../containers/project.js';
23
- import { flattenCardArray } from '../utils/card-utils.js';
24
- import { getChildLogger } from '../utils/log-utils.js';
25
- import { createCardFacts, createCardTypeFacts, createFieldTypeFacts, createLinkTypeFacts, createModuleFacts, createProjectFacts, createReportFacts, createTemplateFacts, createWorkflowFacts, } from '../utils/clingo-facts.js';
26
- import { CardMetadataUpdater } from '../card-metadata-updater.js';
27
- import { solve, setBaseProgram } from '@cyberismo/node-clingo';
28
- import { generateReportContent } from '../utils/report.js';
29
- import { lpFiles, graphvizReport } from '@cyberismo/assets';
30
- // Define names for the base programs
31
- const BASE_PROGRAM_KEY = 'base';
32
- const QUERY_LANGUAGE_KEY = 'queryLanguage';
33
13
  // Class that calculates with logic program card / project level calculations.
34
14
  export class Calculate {
35
15
  project;
36
- get logger() {
37
- return getChildLogger({
38
- module: 'calculate',
39
- });
40
- }
41
- static mutex = new Mutex();
42
16
  constructor(project) {
43
17
  this.project = project;
44
18
  }
45
- // Storage for in-memory program content
46
- logicProgram = '';
47
- modules = '';
48
- modulesInitialized = false;
49
- // Initialize modules during construction
50
- async initializeModules() {
51
- try {
52
- // Collect all available calculations at initialization time
53
- const modules = await this.generateModules();
54
- this.modules = modules; // Store initial modules in logicProgram
55
- }
56
- catch (error) {
57
- this.logger.error(error, 'Failed to initialize modules');
58
- }
59
- }
60
- // Wrapper to run onCreation query.
61
- async creationQuery(cardKeys) {
62
- if (!cardKeys)
63
- return undefined;
64
- return this.runQuery('onCreation', {
65
- cardKeys,
66
- });
67
- }
68
- // Generate card tree content
69
- async generateCardTreeContent(parentCard) {
70
- const cards = await this.getCards(parentCard);
71
- let content = '% SECTION: CARDS_START\n';
72
- for (const card of cards) {
73
- const cardContent = await createCardFacts(card, this.project);
74
- content += `% SECTION: CARD_${card.key}_START\n`;
75
- content += `% Card ${card.key}\n`;
76
- content += `${cardContent}\n`;
77
- content += `% SECTION: CARD_${card.key}_END\n\n`;
78
- }
79
- content += '% SECTION: CARDS_END';
80
- return content;
81
- }
82
- //
83
- async generateCardTypes() {
84
- const cardTypes = await this.project.cardTypes();
85
- let content = '';
86
- for (const cardType of await Promise.all(cardTypes.map((c) => this.project.resource(c.name)))) {
87
- if (!cardType)
88
- continue;
89
- const cardTypeContent = createCardTypeFacts(cardType);
90
- content += `% CardType ${cardType.name}\n${cardTypeContent}\n\n`;
91
- }
92
- return content;
93
- }
94
- //
95
- async generateFieldTypes() {
96
- const fieldTypes = await this.project.fieldTypes();
97
- let content = '';
98
- for (const fieldType of await Promise.all(fieldTypes.map((m) => this.project.resource(m.name)))) {
99
- if (!fieldType)
100
- continue;
101
- const fieldTypeContent = createFieldTypeFacts(fieldType);
102
- content += `% FieldType ${fieldType.name}\n${fieldTypeContent}\n\n`;
103
- }
104
- return content;
105
- }
106
- // Collects all linkTypes from the project
107
- async generateLinkTypes() {
108
- const linkTypes = await this.project.linkTypes();
109
- let content = '';
110
- for (const linkType of await Promise.all(linkTypes.map((c) => this.project.resource(c.name)))) {
111
- if (!linkType)
112
- continue;
113
- const linkTypeContent = createLinkTypeFacts(linkType);
114
- content += `% LinkType ${linkType.name}\n${linkTypeContent}\n\n`;
115
- }
116
- return content;
117
- }
118
- // Generates logic programs related to modules (and project itself).
119
- async generateModules() {
120
- const modules = await this.project.modules();
121
- let content = '';
122
- for (const module of await Promise.all(modules.map((mod) => this.project.module(mod.name)))) {
123
- if (!module)
124
- continue;
125
- const moduleContent = createModuleFacts(module);
126
- content = content.concat(moduleContent);
127
- }
128
- const projectContent = createProjectFacts(this.project.projectPrefix);
129
- content = content.concat(projectContent);
130
- return content;
131
- }
132
- // Collects all logic calculation files from project (local and imported modules)
133
- async generateCalculations() {
134
- // Collect all available calculations
135
- const calculations = await this.project.calculations(ResourcesFrom.all);
136
- let content = '% SECTION: MODULES_START\n';
137
- // Process modules content
138
- for (const calculationFile of calculations) {
139
- if (calculationFile.path) {
140
- const moduleLogicFile = resolve(join(calculationFile.path, basename(calculationFile.name)));
141
- const filePath = moduleLogicFile.endsWith('.lp')
142
- ? moduleLogicFile
143
- : moduleLogicFile + '.lp';
144
- if (pathExists(filePath)) {
145
- try {
146
- const moduleContent = await readFile(filePath, 'utf-8');
147
- content += `% SECTION: MODULE_${calculationFile.name}_START\n`;
148
- content += `% Module ${calculationFile.name}\n`;
149
- content += `${moduleContent}\n`;
150
- content += `% SECTION: MODULE_${calculationFile.name}_END\n\n`;
151
- }
152
- catch (error) {
153
- this.logger.warn(error, `Failed to read module ${calculationFile.name}`);
154
- }
155
- }
156
- }
157
- }
158
- content += '% SECTION: MODULES_END';
159
- return content;
160
- }
161
- // Generates logic programs related to reports.
162
- async generateReports() {
163
- const reports = await this.project.reports();
164
- let content = '';
165
- for (const report of await Promise.all(reports.map((r) => this.project.resource(r.name)))) {
166
- if (!report)
167
- continue;
168
- content += createReportFacts(report);
169
- }
170
- return content;
171
- }
172
- // Generates logic programs related to templates (including their cards).
173
- async generateTemplates() {
174
- const templates = await this.project.templates();
175
- let content = '';
176
- for (const template of await Promise.all(templates.map((r) => this.project.resource(r.name)))) {
177
- if (!template)
178
- continue;
179
- let templateContent = createTemplateFacts(template);
180
- const cards = await this.getCards(undefined, template.name);
181
- for (const card of cards) {
182
- const cardContent = await createCardFacts(card, this.project);
183
- templateContent = templateContent.concat(cardContent);
184
- }
185
- content = content.concat(templateContent);
186
- }
187
- return content;
188
- }
189
- //
190
- async generateWorkFlows() {
191
- const workflows = await this.project.workflows();
192
- let content = '';
193
- // loop through workflows
194
- for (const workflow of await Promise.all(workflows.map((m) => this.project.resource(m.name)))) {
195
- if (!workflow)
196
- continue;
197
- const workflowContent = createWorkflowFacts(workflow);
198
- content += `% Workflow ${workflow.name}\n${workflowContent}\n\n`;
199
- }
200
- return content;
201
- }
202
- // Gets either all the cards (no parent), or a subtree.
203
- async getCards(card, templateName) {
204
- let cards = [];
205
- if (!card) {
206
- return templateName
207
- ? this.project.templateCards(templateName)
208
- : this.project.cards();
209
- }
210
- if (card.children) {
211
- cards = flattenCardArray(card.children);
212
- }
213
- card.children = [];
214
- cards.unshift(card);
215
- return cards;
216
- }
217
- // Checks that Clingo successfully returned result.
218
- async parseClingoResult(data) {
219
- const parser = new ClingoParser();
220
- return parser.parseInput(data.join('\n'));
221
- }
222
- async run(query) {
223
- try {
224
- const res = await Calculate.mutex.runExclusive(async () => {
225
- // For queries, use both base and queryLanguage
226
- const basePrograms = [BASE_PROGRAM_KEY, QUERY_LANGUAGE_KEY];
227
- this.logger.trace({
228
- clingo: true,
229
- }, 'Solving');
230
- // Then solve with the program - need to pass the program as parameter
231
- return solve(query, basePrograms);
232
- });
233
- if (res && res.answers && res.answers.length > 0) {
234
- return res.answers;
235
- }
236
- throw new Error('Failed to run Clingo solve. No answers returned.');
237
- }
238
- catch (error) {
239
- this.logger.error({
240
- error,
241
- query,
242
- }, 'Clingo solve failed');
243
- throw error;
244
- }
245
- }
246
19
  /**
247
20
  * Generates a logic program.
248
- * @param cardKey Optional, sub-card tree defining card
249
- */
250
- async generate(cardKey) {
251
- await Calculate.mutex.runExclusive(async () => {
252
- this.logger.trace({
253
- clingo: true,
254
- cardKey,
255
- }, 'Generating logic program');
256
- if (!this.modulesInitialized) {
257
- await this.initializeModules();
258
- this.modulesInitialized = true;
259
- }
260
- let card;
261
- if (cardKey) {
262
- card = await this.project.findSpecificCard(cardKey, {
263
- metadata: true,
264
- children: true,
265
- content: false,
266
- parent: false,
267
- });
268
- if (!card) {
269
- throw new Error(`Card '${cardKey}' not found`);
270
- }
271
- }
272
- const calculations = await this.generateCalculations();
273
- const cardTreeContent = await this.generateCardTreeContent(card);
274
- const workFlows = await this.generateWorkFlows();
275
- const cardTypes = await this.generateCardTypes();
276
- const fieldTypes = await this.generateFieldTypes();
277
- const linkTypes = await this.generateLinkTypes();
278
- const reports = await this.generateReports();
279
- const templates = await this.generateTemplates();
280
- // Combine all resources
281
- const resourcesProgram = '% SECTION: RESOURCES_START\n' +
282
- calculations +
283
- workFlows +
284
- cardTypes +
285
- fieldTypes +
286
- linkTypes +
287
- reports +
288
- templates +
289
- '% SECTION: RESOURCES_END';
290
- // Create base program content
291
- const baseProgram = '% SECTION: BASE_START\n' +
292
- lpFiles.common.base +
293
- '\n% SECTION: BASE_END\n\n' +
294
- this.modules +
295
- '\n\n' +
296
- cardTreeContent +
297
- '\n\n' +
298
- resourcesProgram;
299
- // Set the base programs separately
300
- setBaseProgram(baseProgram, BASE_PROGRAM_KEY);
301
- setBaseProgram('% SECTION: QUERY_LANGUAGE_START\n' +
302
- lpFiles.common.queryLanguage +
303
- '\n% SECTION: QUERY_LANGUAGE_END', QUERY_LANGUAGE_KEY);
304
- // Also store the base program (without query language) for updates
305
- this.logicProgram = baseProgram;
306
- this.logger.trace({
307
- clingo: true,
308
- cardKey,
309
- }, 'Logic program set');
310
- });
311
- }
312
- /**
313
- * When card changes, update the card specific calculations.
314
- * @param changedCard Card that was changed.
315
- */
316
- async handleCardChanged(changedCard) {
317
- await this.generate(changedCard.key);
318
- return { statusCode: 200 };
319
- }
320
- /**
321
- * When cards are removed, automatically remove card-specific calculations.
322
- * @param deletedCard Card that is to be removed.
323
- */
324
- async handleDeleteCard(deletedCard) {
325
- if (!deletedCard) {
326
- return;
327
- }
328
- await Calculate.mutex.runExclusive(async () => {
329
- const affectedCards = await this.getCards(deletedCard);
330
- // Filter out deleted cards' content from the cardsProgram string
331
- for (const card of affectedCards) {
332
- // Remove card-specific content from the in-memory program using section markers
333
- const cardSectionPattern = new RegExp(`% SECTION: CARD_${card.key}_START[\\s\\S]*?% SECTION: CARD_${card.key}_END\\n\\n`, 'g');
334
- this.logicProgram = this.logicProgram.replace(cardSectionPattern, '');
335
- }
336
- // Update the base program after modifying logicProgram
337
- setBaseProgram(this.logicProgram, BASE_PROGRAM_KEY);
338
- });
339
- }
340
- /**
341
- * When new cards are added, automatically calculate card-specific values.
342
- * @param cards Added cards.
343
21
  */
344
- async handleNewCards(cards) {
345
- if (!cards) {
346
- return;
347
- }
348
- // Only proceed if we already have a logic program
349
- if (!this.logicProgram) {
350
- return;
351
- }
352
- await Calculate.mutex.runExclusive(async () => {
353
- // Generate content for all cards (including new ones)
354
- const cardTreeContent = await this.generateCardTreeContent(undefined);
355
- // Update the main logic program with the new cards program
356
- if (this.logicProgram.includes('% SECTION: CARDS_START') &&
357
- this.logicProgram.includes('% SECTION: CARDS_END')) {
358
- this.logicProgram = this.logicProgram.replace(/% SECTION: CARDS_START[\s\S]*?% SECTION: CARDS_END/, cardTreeContent);
359
- }
360
- // Update the base program after modifying logicProgram
361
- setBaseProgram(this.logicProgram, BASE_PROGRAM_KEY);
362
- });
363
- const cardKeys = cards.map((item) => item.key);
364
- const queryResult = await this.creationQuery(cardKeys);
365
- if (!queryResult ||
366
- queryResult.at(0) === undefined ||
367
- queryResult.at(0)?.updateFields === undefined) {
368
- return;
369
- }
370
- const fieldsToUpdate = queryResult.at(0).updateFields;
371
- await CardMetadataUpdater.apply(this.project, fieldsToUpdate);
22
+ async generate() {
23
+ return this.project.calculationEngine.generate();
372
24
  }
373
25
  /**
374
26
  * Runs given logic program and creates a graph using clingraph
@@ -376,34 +28,16 @@ export class Calculate {
376
28
  * @param timeout Maximum amount of milliseconds clingraph is allowed to run
377
29
  * @returns a base64 encoded image as a string
378
30
  */
379
- async runGraph(model, view) {
380
- this.logger.trace({
381
- model,
382
- view,
383
- }, 'Running graph');
384
- // Let's run the clingraph query
385
- const result = await generateReportContent({
386
- calculate: this,
387
- contentTemplate: graphvizReport.content,
388
- queryTemplate: graphvizReport.query,
389
- options: {
390
- model: model,
391
- view: view,
392
- },
393
- graph: true,
394
- });
395
- return sanitizeSvgBase64((await instance()).renderString(result, {
396
- format: 'svg',
397
- }));
31
+ async runGraph(model, view, context) {
32
+ return this.project.calculationEngine.runGraph(model, view, context);
398
33
  }
399
34
  /**
400
35
  * Runs a logic program using clingo.
401
36
  * @param query Logic program to be run
402
37
  * @returns parsed program output
403
38
  */
404
- async runLogicProgram(query) {
405
- const clingoOutput = await this.run(query);
406
- return this.parseClingoResult(clingoOutput);
39
+ async runLogicProgram(query, context = 'localApp') {
40
+ return this.project.calculationEngine.runLogicProgram(query, context);
407
41
  }
408
42
  /**
409
43
  * Runs a pre-defined query.
@@ -411,23 +45,8 @@ export class Calculate {
411
45
  * @param options Any object that contains state for handlebars
412
46
  * @returns parsed program output
413
47
  */
414
- async runQuery(queryName, options) {
415
- let content = lpFiles.queries[queryName];
416
- if (options && typeof options === 'object') {
417
- const handlebars = Handlebars.create();
418
- const compiled = handlebars.compile(content);
419
- content = compiled(options);
420
- }
421
- if (!content) {
422
- throw new Error(`Query file ${queryName} not found`);
423
- }
424
- this.logger.trace({ queryName }, 'Running query');
425
- const clingoOutput = await this.run(content);
426
- const result = await this.parseClingoResult(clingoOutput);
427
- if (result.error) {
428
- throw new Error(result.error);
429
- }
430
- return result.results;
48
+ async runQuery(queryName, context = 'localApp', options) {
49
+ return this.project.calculationEngine.runQuery(queryName, context, options);
431
50
  }
432
51
  }
433
52
  //# sourceMappingURL=calculate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculate.js","sourceRoot":"","sources":["../../src/commands/calculate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculate.js","sourceRoot":"","sources":["../../src/commands/calculate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAMF,8EAA8E;AAC9E,MAAM,OAAO,SAAS;IACA;IAApB,YAAoB,OAAgB;QAAhB,YAAO,GAAP,OAAO,CAAS;IAAG,CAAC;IAExC;;OAEG;IACI,KAAK,CAAC,QAAQ;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,IAAY,EAAE,OAAgB;QACjE,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,UAAmB,UAAU;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACxE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,QAAQ,CACnB,SAAY,EACZ,UAAmB,UAAU,EAC7B,OAAiB;QAEjB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;CACF"}
@@ -10,7 +10,6 @@
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 Calculate } from './index.js';
14
13
  import { Project } from '../containers/project.js';
15
14
  import type { DataType } from '../interfaces/resource-interfaces.js';
16
15
  import type { Card, ProjectFile } from '../interfaces/project-interfaces.js';
@@ -19,8 +18,7 @@ import type { Card, ProjectFile } from '../interfaces/project-interfaces.js';
19
18
  */
20
19
  export declare class Create {
21
20
  private project;
22
- private calculateCmd;
23
- constructor(project: Project, calculateCmd: Calculate);
21
+ constructor(project: Project);
24
22
  static JSONFileContent: ProjectFile[];
25
23
  static gitIgnoreContent: string[];
26
24
  /**
@@ -39,6 +37,11 @@ export declare class Create {
39
37
  * @param buffer (Optional) attachment buffer
40
38
  */
41
39
  createAttachment(cardKey: string, attachment: string, buffer?: Buffer): Promise<void>;
40
+ /**
41
+ * Creates a calculation file.
42
+ * @param fileName name for the calculation file (without .lp extension)
43
+ */
44
+ createCalculation(fileName: string): Promise<void>;
42
45
  /**
43
46
  * Creates card(s) to a project. All cards from template are instantiated to the project.
44
47
  * @param templateName name of a template to use
@@ -13,9 +13,9 @@
13
13
  // node
14
14
  import { basename, join, resolve, sep } from 'node:path';
15
15
  import { constants as fsConstants, copyFile, mkdir, writeFile, } from 'node:fs/promises';
16
- import { Validate } from './index.js';
17
16
  import { errorFunction } from '../utils/log-utils.js';
18
17
  import { Project } from '../containers/project.js';
18
+ import { Validate } from './index.js';
19
19
  import { EMPTY_RANK, sortItems } from '../utils/lexorank.js';
20
20
  import { pathExists } from '../utils/file-utils.js';
21
21
  import { resourceName, resourceNameToString } from '../utils/resource-utils.js';
@@ -35,10 +35,8 @@ import { WorkflowResource } from '../resources/workflow-resource.js';
35
35
  */
36
36
  export class Create {
37
37
  project;
38
- calculateCmd;
39
- constructor(project, calculateCmd) {
38
+ constructor(project) {
40
39
  this.project = project;
41
- this.calculateCmd = calculateCmd;
42
40
  }
43
41
  static JSONFileContent = [
44
42
  {
@@ -155,6 +153,30 @@ export class Create {
155
153
  throw new Error(errorFunction(error));
156
154
  }
157
155
  }
156
+ /**
157
+ * Creates a calculation file.
158
+ * @param fileName name for the calculation file (without .lp extension)
159
+ */
160
+ async createCalculation(fileName) {
161
+ const calculationFolder = this.project.paths.calculationProjectFolder;
162
+ await mkdir(calculationFolder, { recursive: true });
163
+ const calculationFileName = fileName.endsWith('.lp')
164
+ ? fileName
165
+ : `${fileName}.lp`;
166
+ const calculationFilePath = join(calculationFolder, calculationFileName);
167
+ const calculationContent = `% Calculation file: ${calculationFileName}
168
+ % Add your logic programming rules here
169
+ `;
170
+ await writeFile(calculationFilePath, calculationContent, { flag: 'wx' });
171
+ // add to cache manually
172
+ // TODO: remove once calculations are a proper resource
173
+ const resourceName = `${this.project.projectPrefix}/calculations/${fileName.replace('.lp', '')}`;
174
+ const resource = {
175
+ name: resourceName,
176
+ path: calculationFolder,
177
+ };
178
+ this.project.addResource(resource, {});
179
+ }
158
180
  /**
159
181
  * Creates card(s) to a project. All cards from template are instantiated to the project.
160
182
  * @param templateName name of a template to use
@@ -180,7 +202,7 @@ export class Create {
180
202
  }
181
203
  const createdCards = await templateObject.createCards(specificCard);
182
204
  if (createdCards.length > 0) {
183
- await this.calculateCmd.handleNewCards(createdCards);
205
+ await this.project.handleNewCards(createdCards);
184
206
  // Note: This assumes that parent keys will be ahead of 'a' in the sort order.
185
207
  const sorted = sortItems(createdCards, (item) => {
186
208
  return `${item.parent === 'root' ? 'a' : item.parent}${item.metadata?.rank || EMPTY_RANK}`;
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,18 @@
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
- import type { Calculate } from './index.js';
13
12
  import type { MetadataContent } from '../interfaces/project-interfaces.js';
14
13
  import { Project } from '../containers/project.js';
14
+ import { type ResourceName } from '../utils/resource-utils.js';
15
15
  export declare class Edit {
16
16
  private project;
17
- private calculateCmd;
18
- constructor(project: Project, calculateCmd: Calculate);
17
+ constructor(project: Project);
18
+ /**
19
+ * Updates a calculation file.
20
+ * @param resourceName The name of the resource to update.
21
+ * @param changedContent The new content for the calculation.
22
+ */
23
+ editCalculation(resourceName: ResourceName, changedContent: string): Promise<void>;
19
24
  /**
20
25
  * Opens the content and metadata files for a card in the code editor
21
26
  * @param cardKey - The key of the card to open. Required.
@@ -34,4 +39,11 @@ export declare class Edit {
34
39
  * @param newValue New value for the metadata property
35
40
  */
36
41
  editCardMetadata(cardKey: string, changedKey: string, newValue: MetadataContent): Promise<void>;
42
+ /**
43
+ * Update a file of a folder resource. Cannot be used to create a new file.
44
+ * @param resourceName The name of the resource to update.
45
+ * @param fileName The name of the file to update.
46
+ * @param changedContent The new content for the file.
47
+ */
48
+ editResourceContent(resourceName: ResourceName, fileName: string, changedContent: string): Promise<void>;
37
49
  }