@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
@@ -0,0 +1,402 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+ This program is free software: you can redistribute it and/or modify it under
5
+ the terms of the GNU Affero General Public License version 3 as published by
6
+ the Free Software Foundation. This program is distributed in the hope that it
7
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
8
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9
+ See the GNU Affero General Public License for more details.
10
+ You should have received a copy of the GNU Affero General Public
11
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
12
+ */
13
+ // 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 { getChildLogger } from '../../utils/log-utils.js';
24
+ import { createCardFacts, createCardTypeFacts, createContextFacts, createFieldTypeFacts, createLinkTypeFacts, createModuleFacts, createProjectFacts, createReportFacts, createTemplateFacts, createWorkflowFacts, } from '../../utils/clingo-facts.js';
25
+ import { CardMetadataUpdater } from '../../card-metadata-updater.js';
26
+ import { removeAllPrograms, solve, setProgram, removeProgram, } from '@cyberismo/node-clingo';
27
+ import { generateReportContent } from '../../utils/report.js';
28
+ import { lpFiles, graphvizReport } from '@cyberismo/assets';
29
+ import { resourceNameToString, } from '../../utils/resource-utils.js';
30
+ // Define the all category that will be used for all programs
31
+ const ALL_CATEGORY = 'all';
32
+ export class CalculationEngine {
33
+ project;
34
+ constructor(project) {
35
+ this.project = project;
36
+ }
37
+ static mutex = new Mutex();
38
+ get logger() {
39
+ return getChildLogger({
40
+ module: 'calculate',
41
+ });
42
+ }
43
+ // Storage for in-memory program content
44
+ modules = '';
45
+ modulesInitialized = false;
46
+ // Initialize modules during construction
47
+ async initializeModules() {
48
+ try {
49
+ // Collect all available calculations at initialization time
50
+ this.modules = await this.generateModules();
51
+ this.modulesInitialized = true;
52
+ }
53
+ catch (error) {
54
+ this.logger.error(error, 'Failed to initialize modules');
55
+ }
56
+ }
57
+ /**
58
+ * Gets the logic program content for a specific card
59
+ * @param cardKey The key of the card
60
+ * @returns The logic program content for the card
61
+ */
62
+ async cardLogicProgram(cardKey) {
63
+ const card = await this.project.findSpecificCard(cardKey, {
64
+ metadata: true,
65
+ });
66
+ if (!card) {
67
+ throw new Error(`Card '${cardKey}' does not exist in the project`);
68
+ }
69
+ return createCardFacts(card, this.project);
70
+ }
71
+ // // Wrapper to run onCreation query.
72
+ async creationQuery(cardKeys, context) {
73
+ if (!cardKeys)
74
+ return undefined;
75
+ return this.runQuery('onCreation', context, {
76
+ cardKeys,
77
+ });
78
+ }
79
+ // Generate card tree content
80
+ async setCardTreeContent() {
81
+ const cards = await this.getCards(undefined);
82
+ for (const card of cards) {
83
+ await this.setCardContent(card);
84
+ }
85
+ }
86
+ async setCardContent(card) {
87
+ const cardContent = await createCardFacts(card, this.project);
88
+ setProgram(card.key, cardContent, [ALL_CATEGORY]);
89
+ }
90
+ // Generates logic programs related to modules (and project itself).
91
+ async generateModules() {
92
+ const modules = await this.project.modules();
93
+ let content = '';
94
+ for (const module of await Promise.all(modules.map((mod) => this.project.module(mod.name)))) {
95
+ if (!module)
96
+ continue;
97
+ const moduleContent = createModuleFacts(module);
98
+ content = content.concat(moduleContent);
99
+ }
100
+ const projectContent = createProjectFacts(this.project.projectPrefix);
101
+ content = content.concat(projectContent);
102
+ return content;
103
+ }
104
+ // Sets individual CardType programs
105
+ async setCardTypesPrograms() {
106
+ const cardTypes = await this.project.cardTypes();
107
+ for (const cardType of await Promise.all(cardTypes.map((c) => this.project.resource(c.name)))) {
108
+ if (!cardType)
109
+ continue;
110
+ const cardTypeContent = createCardTypeFacts(cardType);
111
+ setProgram(cardType.name, cardTypeContent, [ALL_CATEGORY]);
112
+ }
113
+ }
114
+ // Sets individual FieldType programs
115
+ async setFieldTypesPrograms() {
116
+ const fieldTypes = await this.project.fieldTypes();
117
+ for (const fieldType of await Promise.all(fieldTypes.map((m) => this.project.resource(m.name)))) {
118
+ if (!fieldType)
119
+ continue;
120
+ const fieldTypeContent = createFieldTypeFacts(fieldType);
121
+ setProgram(fieldType.name, fieldTypeContent, [ALL_CATEGORY]);
122
+ }
123
+ }
124
+ // Sets individual LinkType programs
125
+ async setLinkTypesPrograms() {
126
+ const linkTypes = await this.project.linkTypes();
127
+ for (const linkType of await Promise.all(linkTypes.map((c) => this.project.resource(c.name)))) {
128
+ if (!linkType)
129
+ continue;
130
+ const linkTypeContent = createLinkTypeFacts(linkType);
131
+ setProgram(linkType.name, linkTypeContent, [ALL_CATEGORY]);
132
+ }
133
+ }
134
+ // Sets individual Workflow programs
135
+ async setWorkflowsPrograms() {
136
+ const workflows = await this.project.workflows();
137
+ for (const workflow of await Promise.all(workflows.map((m) => this.project.resource(m.name)))) {
138
+ if (!workflow)
139
+ continue;
140
+ const workflowContent = createWorkflowFacts(workflow);
141
+ setProgram(workflow.name, workflowContent, [ALL_CATEGORY]);
142
+ }
143
+ }
144
+ // Sets individual Report programs
145
+ async setReportsPrograms() {
146
+ const reports = await this.project.reports();
147
+ for (const report of await Promise.all(reports.map((r) => this.project.resource(r.name)))) {
148
+ if (!report)
149
+ continue;
150
+ const reportContent = createReportFacts(report);
151
+ setProgram(report.name, reportContent, [ALL_CATEGORY]);
152
+ }
153
+ }
154
+ // Sets individual Template programs
155
+ async setTemplatesPrograms() {
156
+ const templates = await this.project.templates();
157
+ for (const template of await Promise.all(templates.map((r) => this.project.resource(r.name)))) {
158
+ if (!template)
159
+ continue;
160
+ const templateContent = createTemplateFacts(template);
161
+ const cards = await this.getCards(template.name);
162
+ for (const card of cards) {
163
+ const cardContent = await createCardFacts(card, this.project);
164
+ setProgram(card.key, cardContent, [ALL_CATEGORY]);
165
+ }
166
+ setProgram(template.name, templateContent, [ALL_CATEGORY]);
167
+ }
168
+ }
169
+ // Sets individual Calculation programs
170
+ async setCalculationsPrograms() {
171
+ const calculations = await this.project.calculations(ResourcesFrom.all);
172
+ for (const calculationFile of calculations) {
173
+ if (calculationFile.path) {
174
+ const moduleLogicFile = resolve(join(calculationFile.path, basename(calculationFile.name)));
175
+ const filePath = moduleLogicFile.endsWith('.lp')
176
+ ? moduleLogicFile
177
+ : moduleLogicFile + '.lp';
178
+ if (pathExists(filePath)) {
179
+ try {
180
+ const moduleContent = await readFile(filePath, 'utf-8');
181
+ setProgram(calculationFile.name, moduleContent, [ALL_CATEGORY]);
182
+ }
183
+ catch (error) {
184
+ this.logger.warn(error, `Failed to read calculation ${calculationFile.name}`);
185
+ }
186
+ }
187
+ }
188
+ }
189
+ }
190
+ // Gets either all the cards (no parent), or a subtree.
191
+ async getCards(templateName) {
192
+ return templateName
193
+ ? this.project.templateCards(templateName)
194
+ : this.project.cards();
195
+ }
196
+ // Checks that Clingo successfully returned result.
197
+ async parseClingoResult(data) {
198
+ const parser = new ClingoParser();
199
+ return parser.parseInput(data.join('\n'));
200
+ }
201
+ async run(query, context) {
202
+ try {
203
+ const res = await CalculationEngine.mutex.runExclusive(async () => {
204
+ // Use the main category to include all programs
205
+ const basePrograms = [ALL_CATEGORY];
206
+ this.logger.trace({
207
+ clingo: true,
208
+ }, 'Solving');
209
+ const contextFacts = createContextFacts(context);
210
+ setProgram('context', contextFacts, [ALL_CATEGORY]);
211
+ // Then solve with the program - need to pass the program as parameter
212
+ return solve(query, basePrograms);
213
+ });
214
+ if (res && res.answers && res.answers.length > 0) {
215
+ return res.answers;
216
+ }
217
+ throw new Error('Failed to run Clingo solve. No answers returned.');
218
+ }
219
+ catch (error) {
220
+ this.logger.error({
221
+ error,
222
+ query,
223
+ }, 'Clingo solve failed');
224
+ throw error;
225
+ }
226
+ }
227
+ /**
228
+ * Generates a logic program.
229
+ */
230
+ async generate() {
231
+ await CalculationEngine.mutex.runExclusive(async () => {
232
+ this.logger.trace({
233
+ clingo: true,
234
+ }, 'Generating logic program');
235
+ removeAllPrograms();
236
+ if (!this.modulesInitialized) {
237
+ await this.initializeModules();
238
+ }
239
+ // Set base common programs with main category
240
+ setProgram('base', lpFiles.common.base, [ALL_CATEGORY]);
241
+ setProgram('queryLanguage', lpFiles.common.queryLanguage, [ALL_CATEGORY]);
242
+ setProgram('utils', lpFiles.common.utils, [ALL_CATEGORY]);
243
+ setProgram('modules', this.modules, [ALL_CATEGORY]);
244
+ // Set individual resource type programs
245
+ await this.setCardTreeContent();
246
+ await this.setCardTypesPrograms();
247
+ await this.setFieldTypesPrograms();
248
+ await this.setLinkTypesPrograms();
249
+ await this.setWorkflowsPrograms();
250
+ await this.setReportsPrograms();
251
+ await this.setTemplatesPrograms();
252
+ await this.setCalculationsPrograms();
253
+ this.logger.trace({
254
+ clingo: true,
255
+ }, 'Logic program set');
256
+ });
257
+ }
258
+ /**
259
+ * When card changes, update the card specific calculations.
260
+ * @param changedCard Card that was changed.
261
+ */
262
+ async handleCardChanged(changedCard) {
263
+ await CalculationEngine.mutex.runExclusive(async () => {
264
+ await this.setCardContent(changedCard);
265
+ });
266
+ }
267
+ /**
268
+ * When cards are removed, automatically remove card-specific calculations.
269
+ * @param deletedCard Card that is to be removed.
270
+ */
271
+ async handleDeleteCard(deletedCard) {
272
+ if (!deletedCard) {
273
+ return;
274
+ }
275
+ try {
276
+ await CalculationEngine.mutex.runExclusive(async () => {
277
+ if (!removeProgram(deletedCard.key)) {
278
+ this.logger.warn({
279
+ cardKey: deletedCard.key,
280
+ }, 'Tried to remove card program that does not exist');
281
+ }
282
+ });
283
+ }
284
+ catch {
285
+ this.logger.warn('Removing program failed');
286
+ }
287
+ }
288
+ /**
289
+ * When new cards are added, automatically calculate card-specific values.
290
+ * @param cards Added cards.
291
+ */
292
+ async handleNewCards(cards) {
293
+ if (!cards) {
294
+ return;
295
+ }
296
+ await CalculationEngine.mutex.runExclusive(async () => {
297
+ for (const card of cards) {
298
+ await this.setCardContent(card);
299
+ }
300
+ });
301
+ const cardKeys = cards.map((item) => item.key);
302
+ const queryResult = await this.creationQuery(cardKeys, 'localApp');
303
+ if (!queryResult ||
304
+ queryResult.at(0) === undefined ||
305
+ queryResult.at(0)?.updateFields === undefined) {
306
+ return;
307
+ }
308
+ const fieldsToUpdate = queryResult.at(0).updateFields;
309
+ await CardMetadataUpdater.apply(this.project, fieldsToUpdate);
310
+ }
311
+ /**
312
+ * Gets the logic program content for a specific resource
313
+ * @param resourceName The name of the resource
314
+ * @returns The logic program content for the resource
315
+ */
316
+ async resourceLogicProgram(resourceName) {
317
+ const resource = await this.project.resource(resourceNameToString(resourceName));
318
+ if (!resource) {
319
+ throw new Error(`Resource '${resourceNameToString(resourceName)}' does not exist in the project`);
320
+ }
321
+ switch (resourceName.type) {
322
+ case 'cardTypes':
323
+ return createCardTypeFacts(resource);
324
+ case 'fieldTypes':
325
+ return createFieldTypeFacts(resource);
326
+ case 'linkTypes':
327
+ return createLinkTypeFacts(resource);
328
+ case 'workflows':
329
+ return createWorkflowFacts(resource);
330
+ case 'reports':
331
+ return createReportFacts(resource);
332
+ case 'templates':
333
+ return createTemplateFacts(resource);
334
+ default:
335
+ throw new Error(`Resource ${resourceNameToString(resourceName)} does not have a logic program`);
336
+ }
337
+ }
338
+ /**
339
+ * Runs given logic program and creates a graph using clingraph
340
+ * @param data Provide a query or/and a file which can be given to clingraph
341
+ * @param timeout Maximum amount of milliseconds clingraph is allowed to run
342
+ * @returns a base64 encoded image as a string
343
+ */
344
+ async runGraph(model, view, context) {
345
+ this.logger.trace({
346
+ model,
347
+ view,
348
+ }, 'Running graph');
349
+ const result = await generateReportContent({
350
+ calculate: this,
351
+ contentTemplate: graphvizReport.content,
352
+ queryTemplate: graphvizReport.query,
353
+ options: {
354
+ model: model,
355
+ view: view,
356
+ },
357
+ graph: true,
358
+ context,
359
+ });
360
+ let graph = (await instance()).renderString(result, {
361
+ format: 'svg',
362
+ });
363
+ // asciidoctor-pdf will error on the a elements with xtitle attribute
364
+ // because of the unescaped <font> tags.
365
+ if (context === 'exportedDocument') {
366
+ graph = graph.replace(/xlink:title="[^"]*"/g, '');
367
+ }
368
+ return sanitizeSvgBase64(graph);
369
+ }
370
+ /**
371
+ * Runs a logic program using clingo.
372
+ * @param query Logic program to be run
373
+ * @returns parsed program output
374
+ */
375
+ async runLogicProgram(query, context = 'localApp') {
376
+ const clingoOutput = await this.run(query, context);
377
+ return this.parseClingoResult(clingoOutput);
378
+ }
379
+ /**
380
+ * Runs a pre-defined query.
381
+ * @param queryName Name of the query file without extension
382
+ * @param options Any object that contains state for handlebars
383
+ * @returns parsed program output
384
+ */
385
+ async runQuery(queryName, context = 'localApp', options) {
386
+ let content = lpFiles.queries[queryName];
387
+ const handlebars = Handlebars.create();
388
+ const compiled = handlebars.compile(content);
389
+ content = compiled(options || {});
390
+ if (!content) {
391
+ throw new Error(`Query file ${queryName} not found`);
392
+ }
393
+ this.logger.trace({ queryName }, 'Running query');
394
+ const clingoOutput = await this.run(content, context);
395
+ const result = await this.parseClingoResult(clingoOutput);
396
+ if (result.error) {
397
+ throw new Error(result.error);
398
+ }
399
+ return result.results;
400
+ }
401
+ }
402
+ //# sourceMappingURL=calculation-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculation-engine.js","sourceRoot":"","sources":["../../../src/containers/project/calculation-engine.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,7 @@
13
13
  */
14
14
  import { readdirSync } from 'node:fs';
15
15
  import { readdir } from 'node:fs/promises';
16
- import { join } from 'node:path';
17
- import { CardContainer } from '../card-container.js';
16
+ import { extname, join } from 'node:path';
18
17
  import { resourceName } from '../../utils/resource-utils.js';
19
18
  import { stripExtension } from '../../utils/file-utils.js';
20
19
  /**
@@ -29,6 +28,8 @@ export var ResourcesFrom;
29
28
  ResourcesFrom["importedOnly"] = "imported";
30
29
  ResourcesFrom["localOnly"] = "local";
31
30
  })(ResourcesFrom || (ResourcesFrom = {}));
31
+ // This class collects resources that have these types of files.
32
+ const allowedExtensions = ['.lp', '.json'];
32
33
  // Helper class to contain collected resources.
33
34
  class ResourceCollection {
34
35
  calculations = [];
@@ -97,9 +98,7 @@ export class ResourceCollector {
97
98
  path: resource.parentPath,
98
99
  }));
99
100
  }
100
- const isValidFile = (item) => item.isFile() &&
101
- item.name !== CardContainer.schemaContentFile &&
102
- item.name !== '.gitkeep';
101
+ const isValidFile = (item) => item.isFile() && allowedExtensions.includes(extname(item.name));
103
102
  const processResource = async (resource) => {
104
103
  const resourcePath = join(this.paths.modulesFolder, resource.name, requestedType);
105
104
  try {
@@ -200,15 +199,9 @@ export class ResourceCollector {
200
199
  return [];
201
200
  }
202
201
  resources.push(...entries
203
- .filter((entry) => {
204
- return (entry.isFile() &&
205
- entry.name !== '.gitkeep' &&
206
- entry.name !== CardContainer.schemaContentFile);
207
- })
202
+ .filter((entry) => entry.isFile() && allowedExtensions.includes(extname(entry.name)))
208
203
  .map((entry) => {
209
- if (entry.name.endsWith('.json')) {
210
- entry.name = stripExtension(entry.name);
211
- }
204
+ entry.name = stripExtension(entry.name);
212
205
  return {
213
206
  name: `${this.project.projectPrefix}/${type}/${entry.name}`,
214
207
  path: entry.parentPath,
@@ -258,6 +251,9 @@ export class ResourceCollector {
258
251
  }
259
252
  const { type } = resourceName(resource.name);
260
253
  switch (type) {
254
+ case 'calculations':
255
+ addItem(this.local.calculations, resource);
256
+ break;
261
257
  case 'cardTypes':
262
258
  addItem(this.local.cardTypes, resource);
263
259
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"resource-collector.js","sourceRoot":"","sources":["../../../src/containers/project/resource-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-collector.js","sourceRoot":"","sources":["../../../src/containers/project/resource-collector.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
13
  */
14
14
  import { CardContainer } from './card-container.js';
15
+ import { CalculationEngine } from './project/calculation-engine.js';
15
16
  import { type Card, type CardAttachment, CardLocation, type CardListContainer, type CardMetadata, type FetchCardDetails, type MetadataContent, type ModuleContent, type ModuleSetting, type ProjectFetchCardDetails, type ProjectMetadata, type Resource, type ResourceFolderType } from '../interfaces/project-interfaces.js';
16
17
  import { ProjectConfiguration } from '../project-settings.js';
17
18
  import { ProjectPaths } from './project/project-paths.js';
@@ -32,6 +33,7 @@ export { ResourcesFrom };
32
33
  */
33
34
  export declare class Project extends CardContainer {
34
35
  private watchResourceChanges?;
36
+ calculationEngine: CalculationEngine;
35
37
  private resources;
36
38
  private projectPaths;
37
39
  private settings;
@@ -157,6 +159,21 @@ export declare class Project extends CardContainer {
157
159
  * @returns array of all the graph views in the project.
158
160
  */
159
161
  graphViews(from?: ResourcesFrom): Promise<Resource[]>;
162
+ /**
163
+ * When card changes.
164
+ * @param changedCard Card that was changed.
165
+ */
166
+ handleCardChanged(changedCard: Card): Promise<void>;
167
+ /**
168
+ * When cards are removed.
169
+ * @param deletedCard Card that is to be removed.
170
+ */
171
+ handleDeleteCard(deletedCard: Card): Promise<void>;
172
+ /**
173
+ * When new cards are added.
174
+ * @param cards Added cards.
175
+ */
176
+ handleNewCards(cards: Card[]): Promise<void>;
160
177
  /**
161
178
  * Checks if a given card is part of this project.
162
179
  * @param cardKey card to check.
@@ -290,7 +307,7 @@ export declare class Project extends CardContainer {
290
307
  * @throws if called with unsupported resource type.
291
308
  * @returns Created resource.
292
309
  */
293
- static resourceObject(project: Project, name: ResourceName): ReportResource | LinkTypeResource | CardTypeResource | FieldTypeResource | GraphModelResource | GraphViewResource | TemplateResource | WorkflowResource;
310
+ static resourceObject(project: Project, name: ResourceName): CardTypeResource | FieldTypeResource | GraphModelResource | GraphViewResource | LinkTypeResource | ReportResource | TemplateResource | WorkflowResource;
294
311
  /**
295
312
  * Shows details of a project.
296
313
  * @returns details of a project.