@cyberismo/data-handler 0.0.15 → 0.0.17

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 (191) hide show
  1. package/dist/card-metadata-updater.js +7 -1
  2. package/dist/card-metadata-updater.js.map +1 -1
  3. package/dist/command-handler.d.ts +4 -0
  4. package/dist/command-handler.js +22 -8
  5. package/dist/command-handler.js.map +1 -1
  6. package/dist/command-manager.d.ts +24 -1
  7. package/dist/command-manager.js +31 -7
  8. package/dist/command-manager.js.map +1 -1
  9. package/dist/commands/create.d.ts +1 -1
  10. package/dist/commands/create.js +34 -36
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/export.d.ts +11 -2
  13. package/dist/commands/export.js +54 -41
  14. package/dist/commands/export.js.map +1 -1
  15. package/dist/commands/fetch.d.ts +8 -0
  16. package/dist/commands/fetch.js +101 -23
  17. package/dist/commands/fetch.js.map +1 -1
  18. package/dist/commands/import.d.ts +14 -3
  19. package/dist/commands/import.js +27 -10
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/move.js +0 -1
  22. package/dist/commands/move.js.map +1 -1
  23. package/dist/commands/remove.d.ts +11 -2
  24. package/dist/commands/remove.js +15 -5
  25. package/dist/commands/remove.js.map +1 -1
  26. package/dist/commands/rename.d.ts +4 -9
  27. package/dist/commands/rename.js +37 -101
  28. package/dist/commands/rename.js.map +1 -1
  29. package/dist/commands/show.d.ts +20 -12
  30. package/dist/commands/show.js +79 -57
  31. package/dist/commands/show.js.map +1 -1
  32. package/dist/commands/transition.d.ts +9 -2
  33. package/dist/commands/transition.js +25 -17
  34. package/dist/commands/transition.js.map +1 -1
  35. package/dist/commands/update.d.ts +16 -12
  36. package/dist/commands/update.js +19 -17
  37. package/dist/commands/update.js.map +1 -1
  38. package/dist/commands/validate.d.ts +17 -9
  39. package/dist/commands/validate.js +94 -35
  40. package/dist/commands/validate.js.map +1 -1
  41. package/dist/containers/card-container.d.ts +7 -5
  42. package/dist/containers/card-container.js +30 -5
  43. package/dist/containers/card-container.js.map +1 -1
  44. package/dist/containers/project/calculation-engine.d.ts +7 -4
  45. package/dist/containers/project/calculation-engine.js +61 -66
  46. package/dist/containers/project/calculation-engine.js.map +1 -1
  47. package/dist/containers/project/project-paths.d.ts +7 -4
  48. package/dist/containers/project/project-paths.js +22 -12
  49. package/dist/containers/project/project-paths.js.map +1 -1
  50. package/dist/containers/project/resource-cache.d.ts +169 -0
  51. package/dist/containers/project/resource-cache.js +509 -0
  52. package/dist/containers/project/resource-cache.js.map +1 -0
  53. package/dist/containers/project/resource-handler.d.ts +129 -0
  54. package/dist/containers/project/resource-handler.js +206 -0
  55. package/dist/containers/project/resource-handler.js.map +1 -0
  56. package/dist/containers/project.d.ts +46 -152
  57. package/dist/containers/project.js +179 -409
  58. package/dist/containers/project.js.map +1 -1
  59. package/dist/containers/template.d.ts +8 -2
  60. package/dist/containers/template.js +24 -19
  61. package/dist/containers/template.js.map +1 -1
  62. package/dist/interfaces/command-options.d.ts +3 -1
  63. package/dist/interfaces/folder-content-interfaces.d.ts +5 -3
  64. package/dist/interfaces/folder-content-interfaces.js +3 -3
  65. package/dist/interfaces/folder-content-interfaces.js.map +1 -1
  66. package/dist/interfaces/project-interfaces.d.ts +7 -9
  67. package/dist/interfaces/project-interfaces.js.map +1 -1
  68. package/dist/interfaces/resource-interfaces.d.ts +14 -1
  69. package/dist/interfaces/resource-interfaces.js.map +1 -1
  70. package/dist/macros/graph/index.js +12 -26
  71. package/dist/macros/graph/index.js.map +1 -1
  72. package/dist/macros/index.d.ts +1 -1
  73. package/dist/macros/index.js +2 -2
  74. package/dist/macros/index.js.map +1 -1
  75. package/dist/macros/report/index.js +3 -6
  76. package/dist/macros/report/index.js.map +1 -1
  77. package/dist/module-manager.d.ts +16 -3
  78. package/dist/module-manager.js +51 -19
  79. package/dist/module-manager.js.map +1 -1
  80. package/dist/project-settings.d.ts +21 -3
  81. package/dist/project-settings.js +91 -14
  82. package/dist/project-settings.js.map +1 -1
  83. package/dist/resources/calculation-resource.d.ts +4 -3
  84. package/dist/resources/calculation-resource.js +11 -5
  85. package/dist/resources/calculation-resource.js.map +1 -1
  86. package/dist/resources/card-type-resource.d.ts +6 -1
  87. package/dist/resources/card-type-resource.js +34 -23
  88. package/dist/resources/card-type-resource.js.map +1 -1
  89. package/dist/resources/create-defaults.d.ts +3 -2
  90. package/dist/resources/create-defaults.js +3 -2
  91. package/dist/resources/create-defaults.js.map +1 -1
  92. package/dist/resources/field-type-resource.d.ts +4 -1
  93. package/dist/resources/field-type-resource.js +22 -23
  94. package/dist/resources/field-type-resource.js.map +1 -1
  95. package/dist/resources/file-resource.d.ts +5 -9
  96. package/dist/resources/file-resource.js +6 -11
  97. package/dist/resources/file-resource.js.map +1 -1
  98. package/dist/resources/folder-resource.d.ts +29 -32
  99. package/dist/resources/folder-resource.js +59 -78
  100. package/dist/resources/folder-resource.js.map +1 -1
  101. package/dist/resources/graph-model-resource.d.ts +4 -1
  102. package/dist/resources/graph-model-resource.js +11 -4
  103. package/dist/resources/graph-model-resource.js.map +1 -1
  104. package/dist/resources/graph-view-resource.d.ts +5 -2
  105. package/dist/resources/graph-view-resource.js +7 -3
  106. package/dist/resources/graph-view-resource.js.map +1 -1
  107. package/dist/resources/link-type-resource.d.ts +5 -2
  108. package/dist/resources/link-type-resource.js +5 -2
  109. package/dist/resources/link-type-resource.js.map +1 -1
  110. package/dist/resources/report-resource.d.ts +6 -7
  111. package/dist/resources/report-resource.js +14 -23
  112. package/dist/resources/report-resource.js.map +1 -1
  113. package/dist/resources/resource-object.d.ts +94 -8
  114. package/dist/resources/resource-object.js +212 -109
  115. package/dist/resources/resource-object.js.map +1 -1
  116. package/dist/resources/template-resource.d.ts +7 -3
  117. package/dist/resources/template-resource.js +10 -3
  118. package/dist/resources/template-resource.js.map +1 -1
  119. package/dist/resources/workflow-resource.d.ts +5 -2
  120. package/dist/resources/workflow-resource.js +18 -22
  121. package/dist/resources/workflow-resource.js.map +1 -1
  122. package/dist/utils/card-utils.d.ts +2 -2
  123. package/dist/utils/card-utils.js +1 -1
  124. package/dist/utils/clingo-fact-builder.d.ts +25 -14
  125. package/dist/utils/clingo-fact-builder.js +27 -5
  126. package/dist/utils/clingo-fact-builder.js.map +1 -1
  127. package/dist/utils/clingo-facts.js +3 -4
  128. package/dist/utils/clingo-facts.js.map +1 -1
  129. package/dist/utils/configuration-logger.d.ts +91 -0
  130. package/dist/utils/configuration-logger.js +151 -0
  131. package/dist/utils/configuration-logger.js.map +1 -0
  132. package/dist/utils/constants.d.ts +1 -1
  133. package/dist/utils/constants.js +5 -3
  134. package/dist/utils/constants.js.map +1 -1
  135. package/dist/utils/resource-utils.d.ts +1 -0
  136. package/dist/utils/resource-utils.js +2 -1
  137. package/dist/utils/resource-utils.js.map +1 -1
  138. package/package.json +9 -9
  139. package/src/card-metadata-updater.ts +6 -2
  140. package/src/command-handler.ts +39 -12
  141. package/src/command-manager.ts +33 -21
  142. package/src/commands/create.ts +43 -78
  143. package/src/commands/export.ts +63 -52
  144. package/src/commands/fetch.ts +143 -34
  145. package/src/commands/import.ts +37 -15
  146. package/src/commands/move.ts +0 -1
  147. package/src/commands/remove.ts +20 -7
  148. package/src/commands/rename.ts +58 -149
  149. package/src/commands/show.ts +123 -80
  150. package/src/commands/transition.ts +26 -28
  151. package/src/commands/update.ts +25 -22
  152. package/src/commands/validate.ts +104 -67
  153. package/src/containers/card-container.ts +37 -5
  154. package/src/containers/project/calculation-engine.ts +61 -93
  155. package/src/containers/project/project-paths.ts +29 -13
  156. package/src/containers/project/resource-cache.ts +651 -0
  157. package/src/containers/project/resource-handler.ts +265 -0
  158. package/src/containers/project.ts +250 -527
  159. package/src/containers/template.ts +28 -23
  160. package/src/interfaces/command-options.ts +3 -1
  161. package/src/interfaces/folder-content-interfaces.ts +7 -6
  162. package/src/interfaces/project-interfaces.ts +12 -11
  163. package/src/interfaces/resource-interfaces.ts +18 -3
  164. package/src/macros/graph/index.ts +26 -47
  165. package/src/macros/index.ts +2 -2
  166. package/src/macros/report/index.ts +3 -9
  167. package/src/module-manager.ts +74 -17
  168. package/src/project-settings.ts +96 -14
  169. package/src/resources/calculation-resource.ts +18 -18
  170. package/src/resources/card-type-resource.ts +50 -50
  171. package/src/resources/create-defaults.ts +3 -2
  172. package/src/resources/field-type-resource.ts +41 -55
  173. package/src/resources/file-resource.ts +10 -36
  174. package/src/resources/folder-resource.ts +69 -120
  175. package/src/resources/graph-model-resource.ts +20 -22
  176. package/src/resources/graph-view-resource.ts +15 -17
  177. package/src/resources/link-type-resource.ts +10 -13
  178. package/src/resources/report-resource.ts +21 -43
  179. package/src/resources/resource-object.ts +263 -149
  180. package/src/resources/template-resource.ts +17 -16
  181. package/src/resources/workflow-resource.ts +25 -44
  182. package/src/utils/card-utils.ts +2 -2
  183. package/src/utils/clingo-fact-builder.ts +28 -16
  184. package/src/utils/clingo-facts.ts +3 -4
  185. package/src/utils/configuration-logger.ts +206 -0
  186. package/src/utils/constants.ts +5 -3
  187. package/src/utils/resource-utils.ts +2 -1
  188. package/dist/containers/project/resource-collector.d.ts +0 -110
  189. package/dist/containers/project/resource-collector.js +0 -344
  190. package/dist/containers/project/resource-collector.js.map +0 -1
  191. package/src/containers/project/resource-collector.ts +0 -404
@@ -17,15 +17,13 @@ import { instance } from '@viz-js/viz';
17
17
  import ClingoParser from '../../utils/clingo-parser.js';
18
18
  import { Mutex } from 'async-mutex';
19
19
  import Handlebars from 'handlebars';
20
- import { ResourcesFrom } from '../../containers/project.js';
21
20
  import { getChildLogger } from '../../utils/log-utils.js';
22
21
  import { createCardFacts, createCardTypeFacts, createContextFacts, createFieldTypeFacts, createLinkTypeFacts, createModuleFacts, createProjectFacts, createReportFacts, createTemplateFacts, createWorkflowFacts, } from '../../utils/clingo-facts.js';
23
22
  import { CardMetadataUpdater } from '../../card-metadata-updater.js';
24
- import { CalculationResource } from '../../resources/calculation-resource.js';
25
23
  import { removeAllPrograms, solve, setProgram, removeProgram, buildProgram, } from '@cyberismo/node-clingo';
26
24
  import { generateReportContent } from '../../utils/report.js';
27
25
  import { lpFiles, graphvizReport } from '@cyberismo/assets';
28
- import { resourceName, resourceNameToString, } from '../../utils/resource-utils.js';
26
+ import { resourceNameToString, } from '../../utils/resource-utils.js';
29
27
  // Define the all category that will be used for all programs
30
28
  const ALL_CATEGORY = 'all';
31
29
  export class CalculationEngine {
@@ -73,7 +71,7 @@ export class CalculationEngine {
73
71
  logicProgram += buildProgram('', programs);
74
72
  await writeFile(destination, logicProgram);
75
73
  }
76
- // // Wrapper to run onCreation query.
74
+ // Wrapper to run onCreation query.
77
75
  async creationQuery(cardKeys, context) {
78
76
  if (!cardKeys)
79
77
  return undefined;
@@ -94,9 +92,9 @@ export class CalculationEngine {
94
92
  }
95
93
  // Generates logic programs related to modules (and project itself).
96
94
  async generateModules() {
97
- const modules = await this.project.modules();
95
+ const modules = this.project.resources.moduleNames();
98
96
  let content = '';
99
- for (const module of await Promise.all(modules.map((mod) => this.project.module(mod.name)))) {
97
+ for (const module of await Promise.all(modules.map((mod) => this.project.module(mod)))) {
100
98
  if (!module)
101
99
  continue;
102
100
  const moduleContent = createModuleFacts(module);
@@ -108,88 +106,74 @@ export class CalculationEngine {
108
106
  }
109
107
  // Sets individual CardType programs
110
108
  async setCardTypesPrograms() {
111
- const cardTypes = await this.project.cardTypes();
112
- for (const cardType of await Promise.all(cardTypes.map((c) => this.project.resource(c.name)))) {
113
- if (!cardType)
114
- continue;
115
- const cardTypeContent = createCardTypeFacts(cardType);
116
- setProgram(cardType.name, cardTypeContent, [ALL_CATEGORY]);
109
+ const cardTypes = this.project.resources.cardTypes();
110
+ for (const cardType of cardTypes) {
111
+ const ct = cardType.show();
112
+ const cardTypeContent = createCardTypeFacts(ct);
113
+ setProgram(ct.name, cardTypeContent, [ALL_CATEGORY]);
117
114
  }
118
115
  }
119
116
  // Sets individual FieldType programs
120
117
  async setFieldTypesPrograms() {
121
- const fieldTypes = await this.project.fieldTypes();
122
- for (const fieldType of await Promise.all(fieldTypes.map((m) => this.project.resource(m.name)))) {
123
- if (!fieldType)
124
- continue;
125
- const fieldTypeContent = createFieldTypeFacts(fieldType);
126
- setProgram(fieldType.name, fieldTypeContent, [ALL_CATEGORY]);
118
+ const fieldTypes = this.project.resources.fieldTypes();
119
+ for (const fieldType of fieldTypes) {
120
+ const ft = fieldType.show();
121
+ const fieldTypeContent = createFieldTypeFacts(ft);
122
+ setProgram(ft.name, fieldTypeContent, [ALL_CATEGORY]);
127
123
  }
128
124
  }
129
125
  // Sets individual LinkType programs
130
126
  async setLinkTypesPrograms() {
131
- const linkTypes = await this.project.linkTypes();
132
- for (const linkType of await Promise.all(linkTypes.map((c) => this.project.resource(c.name)))) {
133
- if (!linkType)
134
- continue;
135
- const linkTypeContent = createLinkTypeFacts(linkType);
136
- setProgram(linkType.name, linkTypeContent, [ALL_CATEGORY]);
127
+ const linkTypes = this.project.resources.linkTypes();
128
+ for (const linkType of linkTypes) {
129
+ const lt = linkType.show();
130
+ const linkTypeContent = createLinkTypeFacts(lt);
131
+ setProgram(lt.name, linkTypeContent, [ALL_CATEGORY]);
137
132
  }
138
133
  }
139
134
  // Sets individual Workflow programs
140
135
  async setWorkflowsPrograms() {
141
- const workflows = await this.project.workflows();
142
- for (const workflow of await Promise.all(workflows.map((m) => this.project.resource(m.name)))) {
143
- if (!workflow)
144
- continue;
145
- const workflowContent = createWorkflowFacts(workflow);
146
- setProgram(workflow.name, workflowContent, [ALL_CATEGORY]);
136
+ const workflows = this.project.resources.workflows();
137
+ for (const workflow of workflows) {
138
+ const wf = workflow.show();
139
+ const workflowContent = createWorkflowFacts(wf);
140
+ setProgram(wf.name, workflowContent, [ALL_CATEGORY]);
147
141
  }
148
142
  }
149
143
  // Sets individual Report programs
150
144
  async setReportsPrograms() {
151
- const reports = await this.project.reports();
152
- for (const report of await Promise.all(reports.map((r) => this.project.resource(r.name)))) {
153
- if (!report)
154
- continue;
155
- const reportContent = createReportFacts(report);
156
- setProgram(report.name, reportContent, [ALL_CATEGORY]);
145
+ const reports = this.project.resources.reports();
146
+ for (const report of reports) {
147
+ const rep = report.show();
148
+ const reportContent = createReportFacts(rep);
149
+ setProgram(rep.name, reportContent, [ALL_CATEGORY]);
157
150
  }
158
151
  }
159
152
  // Sets individual Template programs
160
153
  async setTemplatesPrograms() {
161
- const templates = await this.project.templates();
162
- for (const template of await Promise.all(templates.map((r) => this.project.resource(r.name)))) {
163
- if (!template)
164
- continue;
165
- const templateContent = createTemplateFacts(template);
166
- const cards = this.getCards(template.name);
154
+ const templates = this.project.resources.templates();
155
+ for (const template of templates) {
156
+ const tem = template.show();
157
+ const templateContent = createTemplateFacts(tem);
158
+ const cards = this.getCards(tem.name);
167
159
  for (const card of cards) {
168
160
  const cardContent = await createCardFacts(card, this.project);
169
161
  setProgram(card.key, cardContent, [ALL_CATEGORY]);
170
162
  }
171
- setProgram(template.name, templateContent, [ALL_CATEGORY]);
163
+ setProgram(tem.name, templateContent, [ALL_CATEGORY]);
172
164
  }
173
165
  }
174
166
  // Sets individual Calculation programs
175
167
  async setCalculationsPrograms() {
176
- const calculations = await this.project.calculations(ResourcesFrom.all);
177
- for (const calculationFile of calculations) {
168
+ const calculations = this.project.resources.calculations();
169
+ for (const calculation of calculations) {
178
170
  try {
179
- const calculationResource = new CalculationResource(this.project, resourceName(calculationFile.name));
180
- if (calculationResource) {
181
- const resource = await calculationResource.show();
182
- if (!resource?.content.calculation) {
183
- this.logger.info(`Calculation resource '${resource.name}' does not have calculation file`);
184
- continue;
185
- }
186
- setProgram(calculationFile.name, resource.content.calculation, [
187
- ALL_CATEGORY,
188
- ]);
189
- }
171
+ const content = calculation.contentData();
172
+ const calc = calculation.show();
173
+ setProgram(calc.name, content.calculation, [ALL_CATEGORY]);
190
174
  }
191
175
  catch (error) {
192
- this.logger.warn(error, `Failed to read calculation ${calculationFile.name}`);
176
+ this.logger.warn(error, `Failed to read calculation ${calculation.data.name}`);
193
177
  }
194
178
  }
195
179
  }
@@ -205,6 +189,14 @@ export class CalculationEngine {
205
189
  const parser = new ClingoParser();
206
190
  return parser.parseInput(data.join('\n'));
207
191
  }
192
+ //
193
+ queryContent(queryName, options) {
194
+ const content = lpFiles.queries[queryName];
195
+ const handlebars = Handlebars.create();
196
+ const compiled = handlebars.compile(content);
197
+ return compiled(options || {});
198
+ }
199
+ //
208
200
  async run(query, context) {
209
201
  try {
210
202
  const res = await CalculationEngine.mutex.runExclusive(async () => {
@@ -332,7 +324,13 @@ export class CalculationEngine {
332
324
  * @returns The logic program content for the resource
333
325
  */
334
326
  async resourceLogicProgram(resourceName) {
335
- const resource = await this.project.resource(resourceNameToString(resourceName));
327
+ let resource;
328
+ try {
329
+ resource = this.project.resources.byType(resourceName).data;
330
+ }
331
+ catch {
332
+ resource = undefined;
333
+ }
336
334
  if (!resource) {
337
335
  throw new Error(`Resource '${resourceNameToString(resourceName)}' does not exist in the project`);
338
336
  }
@@ -355,8 +353,9 @@ export class CalculationEngine {
355
353
  }
356
354
  /**
357
355
  * Runs given logic program and creates a graph using clingraph
358
- * @param data Provide a query or/and a file which can be given to clingraph
359
- * @param timeout Maximum amount of milliseconds clingraph is allowed to run
356
+ * @param model Graph model to use.
357
+ * @param view Graph view to use.
358
+ * @param context In which type of context the query is run.
360
359
  * @returns a base64 encoded image as a string
361
360
  */
362
361
  async runGraph(model, view, context) {
@@ -388,21 +387,17 @@ export class CalculationEngine {
388
387
  /**
389
388
  * Runs a logic program using clingo.
390
389
  * @param query Logic program to be run
390
+ * @param context In which type of context the query is run.
391
391
  * @returns parsed program output
392
392
  */
393
393
  async runLogicProgram(query, context = 'localApp') {
394
394
  const clingoOutput = await this.run(query, context);
395
395
  return this.parseClingoResult(clingoOutput);
396
396
  }
397
- queryContent(queryName, options) {
398
- const content = lpFiles.queries[queryName];
399
- const handlebars = Handlebars.create();
400
- const compiled = handlebars.compile(content);
401
- return compiled(options || {});
402
- }
403
397
  /**
404
398
  * Runs a pre-defined query.
405
399
  * @param queryName Name of the query file without extension
400
+ * @param context In which type of context the query is run.
406
401
  * @param options Any object that contains state for handlebars
407
402
  * @returns parsed program output
408
403
  */
@@ -1 +1 @@
1
- {"version":3,"file":"calculation-engine.js","sourceRoot":"","sources":["../../../src/containers/project/calculation-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calculation-engine.js","sourceRoot":"","sources":["../../../src/containers/project/calculation-engine.ts"],"names":[],"mappings":"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"}
@@ -25,22 +25,25 @@ export declare class ProjectPaths {
25
25
  get cardRootFolder(): string;
26
26
  get cardTypesFolder(): string;
27
27
  get configurationFile(): string;
28
+ get configurationChangesLog(): string;
28
29
  get fieldTypesFolder(): string;
29
30
  get graphModelsFolder(): string;
30
31
  get graphViewsFolder(): string;
31
32
  get linkTypesFolder(): string;
32
33
  get logPath(): string;
34
+ get migrationLogFolder(): string;
33
35
  get modulesFolder(): string;
36
+ moduleResourcePath(modulePrefix: string, resourceType: ResourceFolderType): string;
34
37
  get resourcesFolder(): string;
35
38
  get reportsFolder(): string;
36
- get tempCardFolder(): string;
37
- get tempFolder(): string;
38
- get templatesFolder(): string;
39
- get workflowsFolder(): string;
40
39
  /**
41
40
  * Return path to a resource type folder.
42
41
  * @param resourceType Type of resource
43
42
  * @returns path to a resources folder (e.g. '.cards/local/cardTypes')
44
43
  */
45
44
  resourcePath(resourceType: ResourceFolderType): string;
45
+ get tempCardFolder(): string;
46
+ get tempFolder(): string;
47
+ get templatesFolder(): string;
48
+ get workflowsFolder(): string;
46
49
  }
@@ -53,6 +53,9 @@ export class ProjectPaths {
53
53
  get configurationFile() {
54
54
  return join(this.resourcesFolder, 'cardsConfig.json');
55
55
  }
56
+ get configurationChangesLog() {
57
+ return join(this.migrationLogFolder, 'current', 'migrationLog.jsonl');
58
+ }
56
59
  get fieldTypesFolder() {
57
60
  return join(this.resourcesFolder, 'fieldTypes');
58
61
  }
@@ -68,27 +71,22 @@ export class ProjectPaths {
68
71
  get logPath() {
69
72
  return join(this.path, '.logs', 'cyberismo_data-handler.log');
70
73
  }
74
+ get migrationLogFolder() {
75
+ return join(this.resourcesFolder, 'migrations');
76
+ }
71
77
  get modulesFolder() {
72
78
  return join(this.path, '.cards', 'modules');
73
79
  }
80
+ moduleResourcePath(modulePrefix, resourceType) {
81
+ const moduleRoot = join(this.modulesFolder, modulePrefix);
82
+ return join(moduleRoot, resourceType);
83
+ }
74
84
  get resourcesFolder() {
75
85
  return join(this.path, '.cards', 'local');
76
86
  }
77
87
  get reportsFolder() {
78
88
  return join(this.resourcesFolder, 'reports');
79
89
  }
80
- get tempCardFolder() {
81
- return join(this.tempFolder, 'cards');
82
- }
83
- get tempFolder() {
84
- return join(this.path, '.temp');
85
- }
86
- get templatesFolder() {
87
- return join(this.resourcesFolder, 'templates');
88
- }
89
- get workflowsFolder() {
90
- return join(this.resourcesFolder, 'workflows');
91
- }
92
90
  /**
93
91
  * Return path to a resource type folder.
94
92
  * @param resourceType Type of resource
@@ -101,5 +99,17 @@ export class ProjectPaths {
101
99
  }
102
100
  return resourcePath;
103
101
  }
102
+ get tempCardFolder() {
103
+ return join(this.tempFolder, 'cards');
104
+ }
105
+ get tempFolder() {
106
+ return join(this.path, '.temp');
107
+ }
108
+ get templatesFolder() {
109
+ return join(this.resourcesFolder, 'templates');
110
+ }
111
+ get workflowsFolder() {
112
+ return join(this.resourcesFolder, 'workflows');
113
+ }
104
114
  }
105
115
  //# sourceMappingURL=project-paths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-paths.js","sourceRoot":"","sources":["../../../src/containers/project/project-paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-paths.js","sourceRoot":"","sources":["../../../src/containers/project/project-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,169 @@
1
+ /**
2
+ Cyberismo
3
+ Copyright © Cyberismo Ltd and contributors 2025
4
+
5
+ This program is free software: you can redistribute it and/or modify it under
6
+ the terms of the GNU Affero General Public License version 3 as published by
7
+ the Free Software Foundation. This program is distributed in the hope that it
8
+ will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
9
+ of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10
+ See the GNU Affero General Public License for more details.
11
+ You should have received a copy of the GNU Affero General Public
12
+ License along with this program. If not, see <https://www.gnu.org/licenses/>.
13
+ */
14
+ import { CalculationResource } from '../../resources/calculation-resource.js';
15
+ import { CardTypeResource } from '../../resources/card-type-resource.js';
16
+ import { FieldTypeResource } from '../../resources/field-type-resource.js';
17
+ import { GraphModelResource } from '../../resources/graph-model-resource.js';
18
+ import { GraphViewResource } from '../../resources/graph-view-resource.js';
19
+ import { LinkTypeResource } from '../../resources/link-type-resource.js';
20
+ import { ReportResource } from '../../resources/report-resource.js';
21
+ import { TemplateResource } from '../../resources/template-resource.js';
22
+ import { WorkflowResource } from '../../resources/workflow-resource.js';
23
+ import type { Project } from '../project.js';
24
+ import type { ResourceFolderType } from '../../interfaces/project-interfaces.js';
25
+ import type { ResourceName } from '../../utils/resource-utils.js';
26
+ export interface Resource {
27
+ name: string;
28
+ path: string;
29
+ }
30
+ export type ResourceMap = {
31
+ calculations: CalculationResource;
32
+ cardTypes: CardTypeResource;
33
+ fieldTypes: FieldTypeResource;
34
+ graphViews: GraphViewResource;
35
+ graphModels: GraphModelResource;
36
+ linkTypes: LinkTypeResource;
37
+ reports: ReportResource;
38
+ templates: TemplateResource;
39
+ workflows: WorkflowResource;
40
+ };
41
+ export type ExtractResourceType<T extends string> = T extends `${string}/${infer R}/${string}` ? R : never;
42
+ export type SafeExtract<T extends string> = ExtractResourceType<T> extends keyof ResourceMap ? ExtractResourceType<T> : never;
43
+ export declare enum ResourcesFrom {
44
+ all = "all",
45
+ importedOnly = "imported",
46
+ localOnly = "local"
47
+ }
48
+ /**
49
+ * ResourceCache handles all resource collecting, caching, and management.
50
+ * Uses a two-layered approach:
51
+ * 1. lightweight registry for collecting items that exist on disk
52
+ * 2. more complex instance cache that contains full instance data of a resource.
53
+ *
54
+ * Resource populates the first layer automatically when created.
55
+ * When new instance of a resource is created by an access function (e.g. resourceByType() or resourceByName()),
56
+ * instance of resource is saved to cache.
57
+ *
58
+ */
59
+ export declare class ResourceCache {
60
+ private resourceRegistry;
61
+ private instanceCache;
62
+ private project;
63
+ private constructor();
64
+ private initialize;
65
+ private buildResourceName;
66
+ private createResourceObject;
67
+ private collectAllResources;
68
+ private collectLocalResources;
69
+ private collectModuleResources;
70
+ private collectResourceContentFiles;
71
+ private collectResourcesOfType;
72
+ private deleteKey;
73
+ private hasSetContentFiles;
74
+ private static get logger();
75
+ private normalizeResourceName;
76
+ /**
77
+ * Add a resource instance to cache. If using
78
+ * @param name Name of the resource to update
79
+ * @param instance New data for the resource.
80
+ */
81
+ addResource(name: string | ResourceName, instance: unknown): void;
82
+ /**
83
+ * Refresh local resources in the cache.
84
+ */
85
+ changed(): void;
86
+ /**
87
+ * Refresh module resources in the cache.
88
+ * @param moduleName Name of the module. If given, will only update this modules resources.
89
+ */
90
+ changedModules(moduleName?: string): void;
91
+ /**
92
+ * Change resource name in cache, but keep instance information.
93
+ * Cache has to create cache key for new and move the existing instance to it.
94
+ * @param oldName Old name of the resource
95
+ * @param newName New name of the resource
96
+ */
97
+ changeResourceName(oldName: string, newName: string): void;
98
+ /**
99
+ * Creates and initializes a ResourceCache.
100
+ * This performs filesystem I/O to collect all resources.
101
+ * @param project Project to use
102
+ * @returns Initialized ResourceCache
103
+ */
104
+ static create(project: Project): ResourceCache;
105
+ /**
106
+ * Handle file system changes
107
+ * This is used by the Watcher in the Project class.
108
+ * @param fileName A changed file in the file system.
109
+ */
110
+ handleFileSystemChange(fileName: string): void;
111
+ /**
112
+ * Invalidate a resource instance.
113
+ * This forces reload on next access.
114
+ * @param name Name of the resource to invalidate.
115
+ */
116
+ invalidateResource(name: string | ResourceName): void;
117
+ /**
118
+ * Get module names.
119
+ * @returns Module names.
120
+ */
121
+ moduleNames(): string[];
122
+ /**
123
+ * Get certain types of resources from a specific module.
124
+ * @param type Type of resource to fetch
125
+ * @param moduleName Name of the module
126
+ * @returns resources names from a specific module.
127
+ */
128
+ moduleResourceNames(type: ResourceFolderType, moduleName: string): string[];
129
+ /**
130
+ * Invalidate all resources of a specific module.
131
+ * @param moduleName Name of the module.
132
+ */
133
+ removeModule(moduleName: string): void;
134
+ /**
135
+ * Remove a resource from cache. This includes both registry and instance cache.
136
+ * @param name Resource to remove.
137
+ */
138
+ removeResource(name: string | ResourceName): void;
139
+ /**
140
+ * Get resource with explicit type parameter
141
+ * @param name Name of the resource
142
+ * @param type Type of the resource
143
+ * @template T Resource type
144
+ * @throws If resource creation fails.
145
+ * @returns Typed resource that matches name and type.
146
+ */
147
+ resourceByType<T extends keyof ResourceMap>(name: string, type: T): ResourceMap[T];
148
+ /**
149
+ * Get resource by ResourceName object
150
+ * @param name Resource name.
151
+ * @throws If resource creation fails.
152
+ * @returns Typed resource that matches the name.
153
+ */
154
+ resourceByName<T extends keyof ResourceMap>(name: ResourceName): ResourceMap[T];
155
+ /**
156
+ * Check if a resource exists.
157
+ * @param name Resource name to check.
158
+ * @returns true, if resource is in the cache; false otherwise.
159
+ */
160
+ has(name: string | ResourceName): boolean;
161
+ /**
162
+ * Get resources with full metadata for a specific type
163
+ * @param type Type of resources to get.
164
+ * @param from Where to return resources from (all, local, imported modules)
165
+ * @template T Resource type
166
+ * @returns Array of resources with metadata.
167
+ */
168
+ resources<T extends keyof ResourceMap>(type: T, from?: ResourcesFrom): Array<ResourceMap[T]>;
169
+ }