@cyberismo/data-handler 0.0.7 → 0.0.9

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 (265) 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 +7 -4
  10. package/dist/commands/create.js +42 -15
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/edit.d.ts +9 -3
  13. package/dist/commands/edit.js +33 -9
  14. package/dist/commands/edit.js.map +1 -1
  15. package/dist/commands/export.d.ts +13 -11
  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 +21 -2
  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 +2 -4
  25. package/dist/commands/remove.js +8 -16
  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 +85 -7
  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 -8
  40. package/dist/commands/validate.js +30 -35
  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.d.ts +2 -1
  49. package/dist/containers/project/resource-collector.js +41 -33
  50. package/dist/containers/project/resource-collector.js.map +1 -1
  51. package/dist/containers/project.d.ts +18 -6
  52. package/dist/containers/project.js +37 -72
  53. package/dist/containers/project.js.map +1 -1
  54. package/dist/containers/template.d.ts +5 -0
  55. package/dist/containers/template.js +9 -0
  56. package/dist/containers/template.js.map +1 -1
  57. package/dist/exceptions/index.d.ts +20 -0
  58. package/dist/exceptions/index.js +16 -0
  59. package/dist/exceptions/index.js.map +1 -1
  60. package/dist/index.d.ts +5 -2
  61. package/dist/index.js +5 -1
  62. package/dist/index.js.map +1 -1
  63. package/dist/interfaces/macros.d.ts +7 -2
  64. package/dist/interfaces/project-interfaces.d.ts +21 -0
  65. package/dist/interfaces/project-interfaces.js +4 -0
  66. package/dist/interfaces/project-interfaces.js.map +1 -1
  67. package/dist/interfaces/resource-interfaces.d.ts +1 -1
  68. package/dist/interfaces/resource-interfaces.js.map +1 -1
  69. package/dist/macros/base-macro.d.ts +2 -0
  70. package/dist/macros/base-macro.js +66 -19
  71. package/dist/macros/base-macro.js.map +1 -1
  72. package/dist/macros/common.d.ts +16 -9
  73. package/dist/macros/common.js +22 -9
  74. package/dist/macros/common.js.map +1 -1
  75. package/dist/macros/createCards/index.d.ts +1 -2
  76. package/dist/macros/createCards/index.js.map +1 -1
  77. package/dist/macros/graph/index.d.ts +1 -3
  78. package/dist/macros/graph/index.js +11 -9
  79. package/dist/macros/graph/index.js.map +1 -1
  80. package/dist/macros/image/index.d.ts +39 -0
  81. package/dist/macros/image/index.js +78 -0
  82. package/dist/macros/image/index.js.map +1 -0
  83. package/dist/macros/image/metadata.d.ts +18 -0
  84. package/dist/macros/image/metadata.js +22 -0
  85. package/dist/macros/image/metadata.js.map +1 -0
  86. package/dist/macros/include/index.d.ts +32 -0
  87. package/dist/macros/include/index.js +97 -0
  88. package/dist/macros/include/index.js.map +1 -0
  89. package/dist/macros/include/metadata.d.ts +15 -0
  90. package/dist/macros/include/metadata.js +19 -0
  91. package/dist/macros/include/metadata.js.map +1 -0
  92. package/dist/macros/index.d.ts +39 -31
  93. package/dist/macros/index.js +167 -73
  94. package/dist/macros/index.js.map +1 -1
  95. package/dist/macros/percentage/index.d.ts +29 -0
  96. package/dist/macros/percentage/index.js +36 -0
  97. package/dist/macros/percentage/index.js.map +1 -0
  98. package/dist/macros/percentage/metadata.d.ts +15 -0
  99. package/dist/macros/percentage/metadata.js +19 -0
  100. package/dist/macros/percentage/metadata.js.map +1 -0
  101. package/dist/macros/report/index.d.ts +2 -5
  102. package/dist/macros/report/index.js +20 -12
  103. package/dist/macros/report/index.js.map +1 -1
  104. package/dist/macros/scoreCard/index.d.ts +15 -15
  105. package/dist/macros/scoreCard/index.js +16 -17
  106. package/dist/macros/scoreCard/index.js.map +1 -1
  107. package/dist/macros/vega/index.d.ts +28 -0
  108. package/dist/macros/vega/index.js +27 -0
  109. package/dist/macros/vega/index.js.map +1 -0
  110. package/dist/macros/vega/metadata.d.ts +15 -0
  111. package/dist/macros/vega/metadata.js +7 -0
  112. package/dist/macros/vega/metadata.js.map +1 -0
  113. package/dist/macros/vegalite/index.d.ts +27 -0
  114. package/dist/macros/vegalite/index.js +27 -0
  115. package/dist/macros/vegalite/index.js.map +1 -0
  116. package/dist/macros/vegalite/metadata.d.ts +15 -0
  117. package/dist/macros/vegalite/metadata.js +7 -0
  118. package/dist/macros/vegalite/metadata.js.map +1 -0
  119. package/dist/macros/xref/index.d.ts +26 -0
  120. package/dist/macros/xref/index.js +53 -0
  121. package/dist/macros/xref/index.js.map +1 -0
  122. package/dist/macros/xref/metadata.d.ts +15 -0
  123. package/dist/macros/xref/metadata.js +19 -0
  124. package/dist/macros/xref/metadata.js.map +1 -0
  125. package/dist/module-manager.d.ts +17 -4
  126. package/dist/module-manager.js +192 -58
  127. package/dist/module-manager.js.map +1 -1
  128. package/dist/permissions/action-guard.d.ts +2 -2
  129. package/dist/permissions/action-guard.js +1 -1
  130. package/dist/permissions/action-guard.js.map +1 -1
  131. package/dist/project-settings.js +2 -8
  132. package/dist/project-settings.js.map +1 -1
  133. package/dist/resources/card-type-resource.d.ts +2 -0
  134. package/dist/resources/card-type-resource.js +63 -0
  135. package/dist/resources/card-type-resource.js.map +1 -1
  136. package/dist/resources/file-resource.d.ts +2 -0
  137. package/dist/resources/file-resource.js +12 -4
  138. package/dist/resources/file-resource.js.map +1 -1
  139. package/dist/resources/folder-resource.d.ts +19 -0
  140. package/dist/resources/folder-resource.js +51 -2
  141. package/dist/resources/folder-resource.js.map +1 -1
  142. package/dist/resources/graph-model-resource.js +1 -1
  143. package/dist/resources/graph-model-resource.js.map +1 -1
  144. package/dist/resources/graph-view-resource.js +1 -1
  145. package/dist/resources/graph-view-resource.js.map +1 -1
  146. package/dist/resources/report-resource.js +1 -1
  147. package/dist/resources/report-resource.js.map +1 -1
  148. package/dist/resources/resource-object.d.ts +8 -0
  149. package/dist/resources/resource-object.js +9 -0
  150. package/dist/resources/resource-object.js.map +1 -1
  151. package/dist/resources/template-resource.js +1 -1
  152. package/dist/resources/template-resource.js.map +1 -1
  153. package/dist/resources/workflow-resource.d.ts +2 -0
  154. package/dist/resources/workflow-resource.js +53 -9
  155. package/dist/resources/workflow-resource.js.map +1 -1
  156. package/dist/svg/index.d.ts +15 -0
  157. package/dist/svg/index.js +16 -0
  158. package/dist/svg/index.js.map +1 -0
  159. package/dist/svg/lib.d.ts +9 -0
  160. package/dist/svg/lib.js +26 -0
  161. package/dist/svg/lib.js.map +1 -0
  162. package/dist/svg/percentage.d.ts +25 -0
  163. package/dist/svg/percentage.js +90 -0
  164. package/dist/svg/percentage.js.map +1 -0
  165. package/dist/svg/scoreCard.d.ts +19 -0
  166. package/dist/svg/scoreCard.js +55 -0
  167. package/dist/svg/scoreCard.js.map +1 -0
  168. package/dist/types/queries.d.ts +8 -7
  169. package/dist/types/queries.js.map +1 -1
  170. package/dist/utils/card-utils.d.ts +6 -0
  171. package/dist/utils/card-utils.js +12 -0
  172. package/dist/utils/card-utils.js.map +1 -1
  173. package/dist/utils/clingo-facts.d.ts +2 -1
  174. package/dist/utils/clingo-facts.js +19 -2
  175. package/dist/utils/clingo-facts.js.map +1 -1
  176. package/dist/utils/clingo-parser.d.ts +1 -0
  177. package/dist/utils/clingo-parser.js +22 -100
  178. package/dist/utils/clingo-parser.js.map +1 -1
  179. package/dist/utils/constants.d.ts +7 -0
  180. package/dist/utils/constants.js +14 -0
  181. package/dist/utils/constants.js.map +1 -1
  182. package/dist/utils/csv.js.map +1 -1
  183. package/dist/utils/report.d.ts +17 -3
  184. package/dist/utils/report.js +38 -2
  185. package/dist/utils/report.js.map +1 -1
  186. package/dist/utils/resource-utils.d.ts +1 -0
  187. package/dist/utils/resource-utils.js +9 -0
  188. package/dist/utils/resource-utils.js.map +1 -1
  189. package/dist/utils/user-preferences.d.ts +1 -11
  190. package/dist/utils/user-preferences.js +30 -13
  191. package/dist/utils/user-preferences.js.map +1 -1
  192. package/dist/utils/validate.d.ts +2 -3
  193. package/dist/utils/validate.js +2 -2
  194. package/dist/utils/validate.js.map +1 -1
  195. package/package.json +8 -6
  196. package/src/command-handler.ts +96 -17
  197. package/src/command-manager.ts +8 -8
  198. package/src/commands/calculate.ts +11 -525
  199. package/src/commands/create.ts +53 -16
  200. package/src/commands/edit.ts +53 -11
  201. package/src/commands/export.ts +108 -34
  202. package/src/commands/import.ts +31 -2
  203. package/src/commands/move.ts +12 -15
  204. package/src/commands/remove.ts +10 -19
  205. package/src/commands/rename.ts +3 -12
  206. package/src/commands/show.ts +121 -8
  207. package/src/commands/transition.ts +3 -7
  208. package/src/commands/update.ts +6 -0
  209. package/src/commands/validate.ts +39 -47
  210. package/src/containers/card-container.ts +74 -0
  211. package/src/containers/project/calculation-engine.ts +535 -0
  212. package/src/containers/project/resource-collector.ts +45 -26
  213. package/src/containers/project.ts +66 -84
  214. package/src/containers/template.ts +16 -0
  215. package/src/exceptions/index.ts +36 -0
  216. package/src/index.ts +13 -2
  217. package/src/interfaces/macros.ts +7 -1
  218. package/src/interfaces/project-interfaces.ts +27 -0
  219. package/src/interfaces/resource-interfaces.ts +1 -0
  220. package/src/macros/base-macro.ts +89 -25
  221. package/src/macros/common.ts +22 -9
  222. package/src/macros/createCards/index.ts +1 -2
  223. package/src/macros/graph/index.ts +17 -12
  224. package/src/macros/image/index.ts +121 -0
  225. package/src/macros/image/metadata.ts +25 -0
  226. package/src/macros/include/index.ts +147 -0
  227. package/src/macros/include/metadata.ts +22 -0
  228. package/src/macros/index.ts +179 -100
  229. package/src/macros/percentage/index.ts +54 -0
  230. package/src/macros/percentage/metadata.ts +22 -0
  231. package/src/macros/report/index.ts +22 -17
  232. package/src/macros/scoreCard/index.ts +23 -23
  233. package/src/macros/vega/index.ts +55 -0
  234. package/src/macros/vega/metadata.ts +21 -0
  235. package/src/macros/vegalite/index.ts +50 -0
  236. package/src/macros/vegalite/metadata.ts +21 -0
  237. package/src/macros/xref/index.ts +73 -0
  238. package/src/macros/xref/metadata.ts +22 -0
  239. package/src/module-manager.ts +241 -69
  240. package/src/permissions/action-guard.ts +3 -3
  241. package/src/project-settings.ts +2 -11
  242. package/src/resources/card-type-resource.ts +100 -0
  243. package/src/resources/file-resource.ts +16 -4
  244. package/src/resources/folder-resource.ts +59 -2
  245. package/src/resources/graph-model-resource.ts +1 -1
  246. package/src/resources/graph-view-resource.ts +1 -1
  247. package/src/resources/report-resource.ts +1 -1
  248. package/src/resources/resource-object.ts +14 -0
  249. package/src/resources/template-resource.ts +1 -1
  250. package/src/resources/workflow-resource.ts +68 -13
  251. package/src/svg/index.ts +15 -0
  252. package/src/svg/lib.ts +31 -0
  253. package/src/svg/percentage.ts +97 -0
  254. package/src/svg/scoreCard.ts +88 -0
  255. package/src/types/queries.ts +8 -7
  256. package/src/types/string-pixel-width.d.ts +23 -0
  257. package/src/utils/card-utils.ts +13 -0
  258. package/src/utils/clingo-facts.ts +65 -3
  259. package/src/utils/clingo-parser.ts +31 -144
  260. package/src/utils/constants.ts +16 -0
  261. package/src/utils/csv.ts +1 -1
  262. package/src/utils/report.ts +45 -4
  263. package/src/utils/resource-utils.ts +9 -0
  264. package/src/utils/user-preferences.ts +32 -14
  265. 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,10 +18,9 @@ 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
- static gitIgnoreContent: string;
23
+ static gitIgnoreContent: string[];
26
24
  /**
27
25
  * Adds new cards to a template.
28
26
  * @param cardTypeName Card type for new cards.
@@ -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
  {
@@ -56,15 +54,20 @@ export class Create {
56
54
  name: Project.projectConfigFileName,
57
55
  },
58
56
  ];
59
- static gitIgnoreContent = `.calc\n
60
- .asciidoctor\n
61
- .vscode\n
62
- *.html\n
63
- *.pdf\n
64
- *.puml\n
65
- **/.DS_Store\n
66
- *-debug.log\n
67
- *-error.log\n`;
57
+ static gitIgnoreContent = [
58
+ '.calc',
59
+ '.asciidoctor',
60
+ '.vscode',
61
+ '*.html',
62
+ '*.pdf',
63
+ '*.puml',
64
+ '**/.DS_Store',
65
+ '*-debug.log',
66
+ '*-error.log',
67
+ '.temp',
68
+ '.logs',
69
+ '.cache',
70
+ ];
68
71
  /**
69
72
  * Adds new cards to a template.
70
73
  * @param cardTypeName Card type for new cards.
@@ -150,6 +153,30 @@ export class Create {
150
153
  throw new Error(errorFunction(error));
151
154
  }
152
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
+ }
153
180
  /**
154
181
  * Creates card(s) to a project. All cards from template are instantiated to the project.
155
182
  * @param templateName name of a template to use
@@ -175,7 +202,7 @@ export class Create {
175
202
  }
176
203
  const createdCards = await templateObject.createCards(specificCard);
177
204
  if (createdCards.length > 0) {
178
- await this.calculateCmd.handleNewCards(createdCards);
205
+ await this.project.handleNewCards(createdCards);
179
206
  // Note: This assumes that parent keys will be ahead of 'a' in the sort order.
180
207
  const sorted = sortItems(createdCards, (item) => {
181
208
  return `${item.parent === 'root' ? 'a' : item.parent}${item.metadata?.rank || EMPTY_RANK}`;
@@ -353,7 +380,7 @@ export class Create {
353
380
  await writeJsonFile(join(projectPath, entry.path, entry.name), entry.content);
354
381
  });
355
382
  try {
356
- await writeFile(join(projectPath, '.gitignore'), this.gitIgnoreContent);
383
+ await writeFile(join(projectPath, '.gitignore'), this.gitIgnoreContent.join('\n') + '\n');
357
384
  }
358
385
  catch {
359
386
  console.error('Failed to create project');
@@ -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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"}