@cyberismo/data-handler 0.0.14 → 0.0.15

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 (240) hide show
  1. package/dist/card-metadata-updater.js +1 -3
  2. package/dist/card-metadata-updater.js.map +1 -1
  3. package/dist/command-handler.js +10 -16
  4. package/dist/command-handler.js.map +1 -1
  5. package/dist/command-manager.d.ts +1 -1
  6. package/dist/command-manager.js +4 -3
  7. package/dist/command-manager.js.map +1 -1
  8. package/dist/commands/create.js +13 -59
  9. package/dist/commands/create.js.map +1 -1
  10. package/dist/commands/edit.d.ts +1 -15
  11. package/dist/commands/edit.js +15 -89
  12. package/dist/commands/edit.js.map +1 -1
  13. package/dist/commands/export.js +4 -17
  14. package/dist/commands/export.js.map +1 -1
  15. package/dist/commands/import.js +3 -5
  16. package/dist/commands/import.js.map +1 -1
  17. package/dist/commands/move.d.ts +1 -2
  18. package/dist/commands/move.js +108 -146
  19. package/dist/commands/move.js.map +1 -1
  20. package/dist/commands/remove.js +9 -44
  21. package/dist/commands/remove.js.map +1 -1
  22. package/dist/commands/rename.js +2 -7
  23. package/dist/commands/rename.js.map +1 -1
  24. package/dist/commands/show.d.ts +7 -25
  25. package/dist/commands/show.js +38 -102
  26. package/dist/commands/show.js.map +1 -1
  27. package/dist/commands/transition.js +27 -30
  28. package/dist/commands/transition.js.map +1 -1
  29. package/dist/commands/update.d.ts +5 -3
  30. package/dist/commands/update.js +19 -5
  31. package/dist/commands/update.js.map +1 -1
  32. package/dist/commands/validate.d.ts +3 -3
  33. package/dist/commands/validate.js +19 -26
  34. package/dist/commands/validate.js.map +1 -1
  35. package/dist/containers/card-container.d.ts +87 -24
  36. package/dist/containers/card-container.js +183 -279
  37. package/dist/containers/card-container.js.map +1 -1
  38. package/dist/containers/project/calculation-engine.d.ts +6 -0
  39. package/dist/containers/project/calculation-engine.js +19 -12
  40. package/dist/containers/project/calculation-engine.js.map +1 -1
  41. package/dist/containers/project/card-cache.d.ts +146 -0
  42. package/dist/containers/project/card-cache.js +411 -0
  43. package/dist/containers/project/card-cache.js.map +1 -0
  44. package/dist/containers/project/resource-collector.d.ts +24 -1
  45. package/dist/containers/project/resource-collector.js +8 -1
  46. package/dist/containers/project/resource-collector.js.map +1 -1
  47. package/dist/containers/project.d.ts +117 -83
  48. package/dist/containers/project.js +418 -252
  49. package/dist/containers/project.js.map +1 -1
  50. package/dist/containers/template.d.ts +15 -31
  51. package/dist/containers/template.js +97 -104
  52. package/dist/containers/template.js.map +1 -1
  53. package/dist/index.d.ts +1 -0
  54. package/dist/index.js +1 -0
  55. package/dist/index.js.map +1 -1
  56. package/dist/interfaces/folder-content-interfaces.d.ts +2 -1
  57. package/dist/interfaces/folder-content-interfaces.js.map +1 -1
  58. package/dist/interfaces/macros.d.ts +1 -0
  59. package/dist/interfaces/macros.js +1 -1
  60. package/dist/interfaces/macros.js.map +1 -1
  61. package/dist/interfaces/project-interfaces.d.ts +5 -1
  62. package/dist/interfaces/project-interfaces.js.map +1 -1
  63. package/dist/interfaces/resource-interfaces.d.ts +11 -21
  64. package/dist/interfaces/resource-interfaces.js +3 -0
  65. package/dist/interfaces/resource-interfaces.js.map +1 -1
  66. package/dist/macros/common.d.ts +10 -10
  67. package/dist/macros/createCards/index.d.ts +0 -13
  68. package/dist/macros/createCards/index.js.map +1 -1
  69. package/dist/macros/createCards/types.d.ts +44 -0
  70. package/dist/macros/createCards/types.js +15 -0
  71. package/dist/macros/createCards/types.js.map +1 -0
  72. package/dist/macros/graph/index.d.ts +2 -6
  73. package/dist/macros/graph/index.js +2 -2
  74. package/dist/macros/graph/index.js.map +1 -1
  75. package/dist/macros/graph/types.d.ts +23 -0
  76. package/dist/macros/graph/types.js +15 -0
  77. package/dist/macros/graph/types.js.map +1 -0
  78. package/dist/macros/image/index.d.ts +8 -16
  79. package/dist/macros/image/index.js +36 -33
  80. package/dist/macros/image/index.js.map +1 -1
  81. package/dist/macros/image/types.d.ts +38 -0
  82. package/dist/macros/image/types.js +15 -0
  83. package/dist/macros/image/types.js.map +1 -0
  84. package/dist/macros/include/index.d.ts +1 -6
  85. package/dist/macros/include/index.js +4 -7
  86. package/dist/macros/include/index.js.map +1 -1
  87. package/dist/macros/include/types.d.ts +31 -0
  88. package/dist/macros/include/types.js +15 -0
  89. package/dist/macros/include/types.js.map +1 -0
  90. package/dist/macros/percentage/index.d.ts +0 -6
  91. package/dist/macros/percentage/index.js.map +1 -1
  92. package/dist/macros/percentage/types.d.ts +31 -0
  93. package/dist/macros/percentage/types.js +15 -0
  94. package/dist/macros/percentage/types.js.map +1 -0
  95. package/dist/macros/report/index.d.ts +0 -3
  96. package/dist/macros/report/index.js.map +1 -1
  97. package/dist/macros/report/types.d.ts +19 -0
  98. package/dist/macros/report/types.js +15 -0
  99. package/dist/macros/report/types.js.map +1 -0
  100. package/dist/macros/scoreCard/index.d.ts +0 -6
  101. package/dist/macros/scoreCard/index.js.map +1 -1
  102. package/dist/macros/scoreCard/types.d.ts +31 -0
  103. package/dist/macros/scoreCard/types.js +15 -0
  104. package/dist/macros/scoreCard/types.js.map +1 -0
  105. package/dist/macros/types.d.ts +25 -0
  106. package/dist/macros/types.js +2 -0
  107. package/dist/macros/types.js.map +1 -0
  108. package/dist/macros/vega/index.d.ts +0 -4
  109. package/dist/macros/vega/index.js.map +1 -1
  110. package/dist/macros/vega/types.d.ts +20 -0
  111. package/dist/macros/vega/types.js +2 -0
  112. package/dist/macros/vega/types.js.map +1 -0
  113. package/dist/macros/vegalite/index.d.ts +0 -4
  114. package/dist/macros/vegalite/index.js.map +1 -1
  115. package/dist/macros/vegalite/types.d.ts +20 -0
  116. package/dist/macros/vegalite/types.js +15 -0
  117. package/dist/macros/vegalite/types.js.map +1 -0
  118. package/dist/macros/xref/index.d.ts +0 -3
  119. package/dist/macros/xref/index.js +5 -14
  120. package/dist/macros/xref/index.js.map +1 -1
  121. package/dist/macros/xref/types.d.ts +19 -0
  122. package/dist/macros/xref/types.js +15 -0
  123. package/dist/macros/xref/types.js.map +1 -0
  124. package/dist/module-manager.js +4 -4
  125. package/dist/module-manager.js.map +1 -1
  126. package/dist/project-settings.js.map +1 -1
  127. package/dist/resources/calculation-resource.d.ts +4 -32
  128. package/dist/resources/calculation-resource.js +0 -55
  129. package/dist/resources/calculation-resource.js.map +1 -1
  130. package/dist/resources/card-type-resource.d.ts +4 -21
  131. package/dist/resources/card-type-resource.js +13 -44
  132. package/dist/resources/card-type-resource.js.map +1 -1
  133. package/dist/resources/field-type-resource.d.ts +4 -21
  134. package/dist/resources/field-type-resource.js +14 -38
  135. package/dist/resources/field-type-resource.js.map +1 -1
  136. package/dist/resources/file-resource.d.ts +12 -29
  137. package/dist/resources/file-resource.js +19 -293
  138. package/dist/resources/file-resource.js.map +1 -1
  139. package/dist/resources/folder-resource.d.ts +31 -50
  140. package/dist/resources/folder-resource.js +68 -96
  141. package/dist/resources/folder-resource.js.map +1 -1
  142. package/dist/resources/graph-model-resource.d.ts +5 -33
  143. package/dist/resources/graph-model-resource.js +8 -61
  144. package/dist/resources/graph-model-resource.js.map +1 -1
  145. package/dist/resources/graph-view-resource.d.ts +5 -28
  146. package/dist/resources/graph-view-resource.js +6 -45
  147. package/dist/resources/graph-view-resource.js.map +1 -1
  148. package/dist/resources/link-type-resource.d.ts +4 -21
  149. package/dist/resources/link-type-resource.js +6 -31
  150. package/dist/resources/link-type-resource.js.map +1 -1
  151. package/dist/resources/report-resource.d.ts +5 -17
  152. package/dist/resources/report-resource.js +6 -44
  153. package/dist/resources/report-resource.js.map +1 -1
  154. package/dist/resources/resource-object.d.ts +58 -23
  155. package/dist/resources/resource-object.js +293 -24
  156. package/dist/resources/resource-object.js.map +1 -1
  157. package/dist/resources/template-resource.d.ts +4 -15
  158. package/dist/resources/template-resource.js +10 -25
  159. package/dist/resources/template-resource.js.map +1 -1
  160. package/dist/resources/workflow-resource.d.ts +4 -23
  161. package/dist/resources/workflow-resource.js +12 -38
  162. package/dist/resources/workflow-resource.js.map +1 -1
  163. package/dist/utils/card-utils.d.ts +69 -19
  164. package/dist/utils/card-utils.js +179 -30
  165. package/dist/utils/card-utils.js.map +1 -1
  166. package/dist/utils/clingo-facts.js +11 -3
  167. package/dist/utils/clingo-facts.js.map +1 -1
  168. package/dist/utils/clingo-parser.js +1 -1
  169. package/dist/utils/clingo-parser.js.map +1 -1
  170. package/dist/utils/constants.d.ts +2 -0
  171. package/dist/utils/constants.js +4 -0
  172. package/dist/utils/constants.js.map +1 -1
  173. package/dist/utils/csv.js +1 -1
  174. package/dist/utils/csv.js.map +1 -1
  175. package/package.json +5 -5
  176. package/src/card-metadata-updater.ts +3 -5
  177. package/src/command-handler.ts +11 -18
  178. package/src/command-manager.ts +4 -3
  179. package/src/commands/create.ts +17 -83
  180. package/src/commands/edit.ts +16 -132
  181. package/src/commands/export.ts +8 -29
  182. package/src/commands/import.ts +4 -6
  183. package/src/commands/move.ts +144 -179
  184. package/src/commands/remove.ts +9 -52
  185. package/src/commands/rename.ts +2 -7
  186. package/src/commands/show.ts +50 -143
  187. package/src/commands/transition.ts +30 -33
  188. package/src/commands/update.ts +27 -9
  189. package/src/commands/validate.ts +21 -36
  190. package/src/containers/card-container.ts +200 -360
  191. package/src/containers/project/calculation-engine.ts +21 -13
  192. package/src/containers/project/card-cache.ts +497 -0
  193. package/src/containers/project/resource-collector.ts +9 -1
  194. package/src/containers/project.ts +529 -327
  195. package/src/containers/template.ts +109 -127
  196. package/src/index.ts +1 -0
  197. package/src/interfaces/folder-content-interfaces.ts +7 -1
  198. package/src/interfaces/macros.ts +2 -0
  199. package/src/interfaces/project-interfaces.ts +7 -1
  200. package/src/interfaces/resource-interfaces.ts +12 -24
  201. package/src/macros/createCards/index.ts +1 -12
  202. package/src/macros/createCards/types.ts +46 -0
  203. package/src/macros/graph/index.ts +3 -7
  204. package/src/macros/graph/types.ts +24 -0
  205. package/src/macros/image/index.ts +50 -61
  206. package/src/macros/image/types.ts +39 -0
  207. package/src/macros/include/index.ts +6 -15
  208. package/src/macros/include/types.ts +32 -0
  209. package/src/macros/percentage/index.ts +1 -7
  210. package/src/macros/percentage/types.ts +32 -0
  211. package/src/macros/report/index.ts +1 -4
  212. package/src/macros/report/types.ts +20 -0
  213. package/src/macros/scoreCard/index.ts +1 -7
  214. package/src/macros/scoreCard/types.ts +32 -0
  215. package/src/macros/types.ts +48 -0
  216. package/src/macros/vega/index.ts +1 -4
  217. package/src/macros/vega/types.ts +21 -0
  218. package/src/macros/vegalite/index.ts +1 -4
  219. package/src/macros/vegalite/types.ts +22 -0
  220. package/src/macros/xref/index.ts +6 -20
  221. package/src/macros/xref/types.ts +20 -0
  222. package/src/module-manager.ts +5 -5
  223. package/src/project-settings.ts +1 -1
  224. package/src/resources/calculation-resource.ts +6 -76
  225. package/src/resources/card-type-resource.ts +24 -59
  226. package/src/resources/field-type-resource.ts +22 -51
  227. package/src/resources/file-resource.ts +27 -409
  228. package/src/resources/folder-resource.ts +98 -124
  229. package/src/resources/graph-model-resource.ts +17 -74
  230. package/src/resources/graph-view-resource.ts +14 -54
  231. package/src/resources/link-type-resource.ts +13 -40
  232. package/src/resources/report-resource.ts +17 -57
  233. package/src/resources/resource-object.ts +435 -32
  234. package/src/resources/template-resource.ts +16 -29
  235. package/src/resources/workflow-resource.ts +26 -50
  236. package/src/utils/card-utils.ts +217 -31
  237. package/src/utils/clingo-facts.ts +13 -3
  238. package/src/utils/clingo-parser.ts +1 -1
  239. package/src/utils/constants.ts +6 -0
  240. package/src/utils/csv.ts +1 -1
@@ -12,11 +12,11 @@
12
12
  */
13
13
  import type { Card, Operation, Project, ResourceName } from './file-resource.js';
14
14
  import { FileResource } from './file-resource.js';
15
- import type { DataType, FieldType } from '../interfaces/resource-interfaces.js';
15
+ import type { DataType, FieldType, UpdateKey } from '../interfaces/resource-interfaces.js';
16
16
  /**
17
17
  * Field type resource class.
18
18
  */
19
- export declare class FieldTypeResource extends FileResource {
19
+ export declare class FieldTypeResource extends FileResource<FieldType> {
20
20
  private fromType;
21
21
  private toType;
22
22
  constructor(project: Project, name: ResourceName);
@@ -37,14 +37,6 @@ export declare class FieldTypeResource extends FileResource {
37
37
  * @throws if called with unknown data type
38
38
  */
39
39
  createFieldType(dataType: DataType): Promise<void>;
40
- /**
41
- * Returns content data.
42
- */
43
- get data(): FieldType;
44
- /**
45
- * Deletes file(s) from disk and clears out the memory resident object.
46
- */
47
- delete(): Promise<void>;
48
40
  /**
49
41
  * Returns all possible field types.
50
42
  * @returns all possible field types.
@@ -62,21 +54,16 @@ export declare class FieldTypeResource extends FileResource {
62
54
  * @param newName New name for the resource.
63
55
  */
64
56
  rename(newName: ResourceName): Promise<void>;
65
- /**
66
- * Shows metadata of the resource.
67
- * @returns field type metadata.
68
- */
69
- show(): Promise<FieldType>;
70
57
  /**
71
58
  * Updates field type resource.
72
- * @param key Key to modify
59
+ * @param updateKey Key to modify
73
60
  * @param op Operation to perform on 'key'
74
61
  * @throws
75
62
  * - when called with unknown data type
76
63
  * - when called with data type conversion that cannot be done
77
64
  * - when called with unknown property to update
78
65
  */
79
- update<Type>(key: string, op: Operation<Type>): Promise<void>;
66
+ update<Type, K extends string>(updateKey: UpdateKey<K>, op: Operation<Type>): Promise<void>;
80
67
  /**
81
68
  * List where link type is used.
82
69
  * Always returns card key references first, then any resource references and finally calculation references.
@@ -85,8 +72,4 @@ export declare class FieldTypeResource extends FileResource {
85
72
  * @returns array of card keys, resource names and calculation filenames that refer this resource.
86
73
  */
87
74
  usage(cards?: Card[]): Promise<string[]>;
88
- /**
89
- * Validates the resource. If object is invalid, throws.
90
- */
91
- validate(content?: object): Promise<void>;
92
75
  }
@@ -27,7 +27,6 @@ export class FieldTypeResource extends FileResource {
27
27
  super(project, name, 'fieldTypes');
28
28
  this.contentSchemaId = 'fieldTypeSchema';
29
29
  this.contentSchema = super.contentSchemaContent(this.contentSchemaId);
30
- this.initialize();
31
30
  }
32
31
  // Cards from given array that include this field type.
33
32
  cardsWithFieldType(cards) {
@@ -89,16 +88,17 @@ export class FieldTypeResource extends FileResource {
89
88
  function affectedCard(card) {
90
89
  if (!card.metadata)
91
90
  return false;
92
- return cardTypesThatUseThisFieldType.some((item) => item === card.metadata.cardType);
91
+ return cardTypesThatUseThisFieldType.some((item) => item === card.metadata?.cardType);
93
92
  }
94
93
  // First collect the cardTypes that need to be updated.
95
94
  const cardTypes = await this.relevantCardTypes(ResourcesFrom.localOnly);
96
95
  cardTypesThatUseThisFieldType.push(...cardTypes);
97
96
  // Then collect cards (both project and local template) that use those card types.
98
- const projectCards = (await this.project.cards(this.project.paths.cardRootFolder, {
99
- metadata: true,
100
- })).filter((card) => affectedCard(card));
101
- const templateCards = (await this.project.allTemplateCards())
97
+ const projectCards = this.project
98
+ .cards(this.project.paths.cardRootFolder)
99
+ .filter((card) => affectedCard(card));
100
+ const templateCards = this.project
101
+ .allTemplateCards()
102
102
  .filter((card) => !card.path.includes('modules'))
103
103
  .filter((card) => affectedCard(card));
104
104
  const allCards = [...projectCards, ...templateCards];
@@ -150,7 +150,7 @@ export class FieldTypeResource extends FileResource {
150
150
  return;
151
151
  const removedValue = op.target.enumValue;
152
152
  const cardTypes = await this.relevantCardTypes(ResourcesFrom.localOnly);
153
- const allCards = await Promise.all(cardTypes.map((cardType) => this.collectCards({ metadata: true }, cardType)));
153
+ const allCards = await Promise.all(cardTypes.map((cardType) => this.collectCards(cardType)));
154
154
  const cardsToUpdate = allCards
155
155
  .flat()
156
156
  .filter((card) => card.metadata?.[this.content.name] === removedValue);
@@ -208,7 +208,7 @@ export class FieldTypeResource extends FileResource {
208
208
  ? data.customFields.find((item) => item.name === oldName)
209
209
  : undefined;
210
210
  if (found) {
211
- await object.update('customFields', op);
211
+ await object.update({ key: 'customFields' }, op);
212
212
  }
213
213
  }
214
214
  }
@@ -226,18 +226,6 @@ export class FieldTypeResource extends FileResource {
226
226
  const content = DefaultContent.fieldType(resourceNameToString(this.resourceName), useDataType);
227
227
  return super.create(content);
228
228
  }
229
- /**
230
- * Returns content data.
231
- */
232
- get data() {
233
- return super.data;
234
- }
235
- /**
236
- * Deletes file(s) from disk and clears out the memory resident object.
237
- */
238
- async delete() {
239
- return super.delete();
240
- }
241
229
  /**
242
230
  * Returns all possible field types.
243
231
  * @returns all possible field types.
@@ -306,29 +294,23 @@ export class FieldTypeResource extends FileResource {
306
294
  await super.rename(newName);
307
295
  return this.handleNameChange(existingName);
308
296
  }
309
- /**
310
- * Shows metadata of the resource.
311
- * @returns field type metadata.
312
- */
313
- async show() {
314
- return super.show();
315
- }
316
297
  /**
317
298
  * Updates field type resource.
318
- * @param key Key to modify
299
+ * @param updateKey Key to modify
319
300
  * @param op Operation to perform on 'key'
320
301
  * @throws
321
302
  * - when called with unknown data type
322
303
  * - when called with data type conversion that cannot be done
323
304
  * - when called with unknown property to update
324
305
  */
325
- async update(key, op) {
306
+ async update(updateKey, op) {
307
+ const { key } = updateKey;
326
308
  const nameChange = key === 'name';
327
309
  const typeChange = key === 'dataType';
328
310
  const enumChange = key === 'enumValues';
329
311
  const existingName = this.content.name;
330
312
  const existingType = this.content.dataType;
331
- await super.update(key, op);
313
+ await super.update(updateKey, op);
332
314
  const content = structuredClone(this.content);
333
315
  if (key === 'name') {
334
316
  content.name = super.handleScalar(op);
@@ -362,7 +344,7 @@ export class FieldTypeResource extends FileResource {
362
344
  else {
363
345
  throw new Error(`Unknown property '${key}' for FieldType`);
364
346
  }
365
- await super.postUpdate(content, key, op);
347
+ await super.postUpdate(content, updateKey, op);
366
348
  if (nameChange) {
367
349
  // Renaming this field type causes that references to its name must be updated.
368
350
  await this.handleNameChange(existingName);
@@ -383,7 +365,7 @@ export class FieldTypeResource extends FileResource {
383
365
  * @returns array of card keys, resource names and calculation filenames that refer this resource.
384
366
  */
385
367
  async usage(cards) {
386
- const allCards = cards ?? (await super.cards());
368
+ const allCards = cards ?? super.cards();
387
369
  const [cardContentReferences, relevantLinkTypes, calculations] = await Promise.all([
388
370
  super.usage(allCards),
389
371
  this.relevantCardTypes(ResourcesFrom.all),
@@ -398,11 +380,5 @@ export class FieldTypeResource extends FileResource {
398
380
  ...new Set([...cardReferences, ...relevantLinkTypes, ...calculations]),
399
381
  ];
400
382
  }
401
- /**
402
- * Validates the resource. If object is invalid, throws.
403
- */
404
- async validate(content) {
405
- return super.validate(content);
406
- }
407
383
  }
408
384
  //# sourceMappingURL=field-type-resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field-type-resource.js","sourceRoot":"","sources":["../../src/resources/field-type-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAUF,OAAO,EACL,cAAc,EACd,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,SAAS,GACV,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,OAAO,EACP,QAAQ,EACR,UAAU,EACV,UAAU,GACX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,cAAc,MAAM,iBAAiB,CAAC;AAElD,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,YAAY;IACjD,yEAAyE;IACzE,sEAAsE;IAC9D,QAAQ,GAAa,SAAS,CAAC;IAC/B,MAAM,GAAa,SAAS,CAAC;IAErC,YAAY,OAAgB,EAAE,IAAkB;QAC9C,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAEnC,IAAI,CAAC,eAAe,GAAG,iBAAiB,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEtE,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,uDAAuD;IAC/C,kBAAkB,CAAC,KAAa;QACtC,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,OAAO,KAAK;aACT,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,YAAY,CAAC,CAAC;aAC/C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB;IACnB,+BAA+B;IAC/B,kDAAkD;IAClD,4EAA4E;IAC5E,iEAAiE;IACjE,yEAAyE;IACzE,mEAAmE;IACnE,uCAAuC;IACvC,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,uCAAuC;IACvC,qBAAqB;IACrB,6BAA6B;IACrB,cAAc,CAAI,KAAQ;QAChC,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAC7D,OAAO,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC9D,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;YAClE,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAC9D,IAAI,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5C,IACE,IAAI,CAAC,MAAM,KAAK,WAAW;gBAC3B,SAAS,CAAC,MAAM,GAAG,qBAAqB,EACxC,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED,oFAAoF;IAC5E,YAAY,CAAI,KAAQ;QAC9B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAC;QAE1C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CACb,wBAAwB,IAAI,CAAC,QAAQ,SAAS,IAAI,CAAC,MAAM,YAAY,KAAK,GAAG,CAC9E,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qEAAqE;IAC7D,KAAK,CAAC,eAAe;QAC3B,MAAM,6BAA6B,GAAa,EAAE,CAAC;QAEnD,2CAA2C;QAC3C,SAAS,YAAY,CAAC,IAAU;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,6BAA6B,CAAC,IAAI,CACvC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,QAAS,CAAC,QAAQ,CAC3C,CAAC;QACJ,CAAC;QAED,uDAAuD;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxE,6BAA6B,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAEjD,kFAAkF;QAClF,MAAM,YAAY,GAAG,CACnB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE;YAC1D,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACvC,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;aAC1D,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC;QAErD,gDAAgD;QAChD,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAS,CAAC;YAChC,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC1D,IAAI,CAAC;gBACH,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC7D,sDAAsD;gBACtD,IAAI,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI;oBAAE,SAAS;gBAE3C,MAAM,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CACX,YAAY,IAAI,CAAC,GAAG,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACnF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,4CAA4C;IACpC,eAAe,CAAO,EAAmB,EAAE,MAAc;QAC/D,MAAM,WAAW,GAAI,EAAgC,CAAC,MAAM,CAAC;QAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAC7B,CAAC,IAAI,EAAE,EAAE,CAAE,IAAuB,CAAC,SAAS,KAAK,WAAW,CAAC,SAAS,CACvE,CAAC;QACF,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,8DAA+D,EAAE,CAAC,MAAyB,CAAC,SAAS,kBAAkB,CACxH,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CACb,8DAA+D,EAAE,CAAC,MAAyB,CAAC,SAAS,kBAAkB,CACxH,CAAC;QACJ,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,8DAA+D,EAAE,CAAC,MAAyB,CAAC,SAAS,kBAAkB,CACxH,CAAC;YACJ,CAAC;YACD,MAAM,QAAQ,GAAI,EAAsC,CAAC,EAAE,CAAC;YAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CACzB,CAAC,IAAI,EAAE,EAAE,CAAE,IAAuB,CAAC,SAAS,KAAK,QAAQ,CAAC,SAAS,CACpE,CAAC;YACF,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,8DAA+D,EAAE,CAAC,EAAqB,CAAC,SAAS,kBAAkB,CACpH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,gEAAgE;QAChE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IAC7D,KAAK,CAAC,2BAA2B,CAAO,EAAmB;QACjE,MAAM,QAAQ,GAAG,EAA2B,CAAC;QAC7C,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAkC,CAAC;QAC7D,IAAI,CAAC,QAAQ;YAAE,OAAO;QAEtB,MAAM,YAAY,GAAI,EAAE,CAAC,MAAyB,CAAC,SAAS,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzB,IAAI,CAAC,YAAY,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC,CAChD,CACF,CAAC;QACF,MAAM,aAAa,GAAG,QAAQ;aAC3B,IAAI,EAAE;aACN,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,CAAC;QAEzE,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAChC,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,OAAO,CAAC,IAAI,EACjB,QAAQ,CAAC,SAAS,CACnB,CACF,CACF,CAAC;IACJ,CAAC;IAED,8BAA8B;IACtB,KAAK,CAAC,gBAAgB,CAAC,YAAoB;QACjD,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACvD,KAAK,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;SAC1D,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,sDAAsD;IAC9C,iBAAiB,CAAC,IAAc,EAAE,EAAY;QACpD,+DAA+D;QAC/D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QAEjB,OAAO,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,wEAAwE;IAChE,MAAM,CAAC,gBAAgB,CAAC,KAAa;QAC3C,MAAM,wBAAwB,GAAG,YAAY,CAAC;QAC9C,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACtD,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,kCAAkC;IAC1B,KAAK,CAAC,iBAAiB,CAAC,IAAmB;QACjD,MAAM,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC7D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAW,QAAQ,CAAC,IAAI,CAAC,CAAC;YACtE,OAAO,QAAQ,EAAE,YAAY,CAAC,IAAI,CAChC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,CACvC;gBACC,CAAC,CAAC,QAAQ,CAAC,IAAI;gBACf,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC,CACH,CAAC;QACF,uBAAuB;QACvB,OAAO,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,8BAA8B;IACtB,KAAK,CAAC,eAAe,CAAC,OAAe;QAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,EAAE,GAAG;YACT,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,OAAO;YACf,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;SACK,CAAC;QAC7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,gBAAgB,CACjC,IAAI,CAAC,OAAO,EACZ,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC5B,CAAC;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAgB,CAAC;YACrC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY;oBAC7B,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;oBACzD,CAAC,CAAC,SAAS,CAAC;gBACd,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAAC,QAAkB;QAC7C,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CACb,eAAe,QAAQ,oCAAoC,iBAAiB,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3G,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC;QAC7B,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,CACtC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,EACvC,WAAW,CACZ,CAAC;QACF,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IAAW,IAAI;QACb,OAAO,KAAK,CAAC,IAAiB,CAAC;IACjC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,MAAM;QACjB,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,cAAc;QAC1B,OAAO;YACL,WAAW;YACX,UAAU;YACV,QAAQ;YACR,SAAS;YACT,SAAS;YACT,MAAM;YACN,MAAM;YACN,MAAM;YACN,UAAU;YACV,QAAQ;SACT,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,gBAAgB,CAAC,KAAa,EAAE,QAAkB;QAC9D,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QACzB,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/C,IAAI,CAAC;YACH,QAAQ,QAAQ,EAAE,CAAC;gBACjB,KAAK,MAAM;oBACT,OAAO,iBAAiB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBACnD,KAAK,SAAS;oBACZ,OAAO,KAAK,KAAK,MAAM,CAAC;gBAC1B,KAAK,MAAM,CAAC,CAAC,CAAC;oBACZ,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;oBAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9C,CAAC;gBACD,KAAK,UAAU;oBACb,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;gBACvC,KAAK,SAAS;oBACZ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnC,KAAK,QAAQ;oBACX,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;gBACvB,KAAK,QAAQ;oBACX,OAAO,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvD,KAAK,MAAM,CAAC;gBACZ,KAAK,WAAW,CAAC;gBACjB,KAAK,UAAU,CAAC;gBAChB;oBACE,OAAO,KAAK,CAAC;YACjB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CACX,4BAA4B,KAAK,eAAe,QAAQ,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACvH,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CAAC,OAAqB;QACvC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACvC,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI;QACf,OAAO,KAAK,CAAC,IAAI,EAAwB,CAAC;IAC5C,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,MAAM,CAAO,GAAW,EAAE,EAAmB;QACxD,MAAM,UAAU,GAAG,GAAG,KAAK,MAAM,CAAC;QAClC,MAAM,UAAU,GAAG,GAAG,KAAK,UAAU,CAAC;QACtC,MAAM,UAAU,GAAG,GAAG,KAAK,YAAY,CAAC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;QACvC,MAAM,YAAY,GAAI,IAAI,CAAC,OAAqB,CAAC,QAAQ,CAAC;QAE1D,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAE5B,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,OAAO,CAAc,CAAC;QAC3D,IAAI,GAAG,KAAK,MAAM,EAAE,CAAC;YACnB,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAW,CAAC;QAClD,CAAC;aAAM,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,EAA+B,CAAC;YAC/C,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CACb,kBAAkB,GAAG,sBAAsB,MAAM,CAAC,EAAE,GAAG,CACxD,CAAC;YACJ,CAAC;YACD,IAAI,YAAY,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,IAAI,GAAG,iBAAiB,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;gBACzD,MAAM,IAAI,KAAK,CACb,iCAAiC,OAAO,CAAC,QAAQ,SAAS,MAAM,CAAC,EAAE,GAAG,CACvE,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAa,CAAC;QACxD,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAW,CAAC;QACzD,CAAC;aAAM,IAAI,GAAG,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,EAAE,CAAC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtE,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CACxC,EAA+B,EAC/B,OAAO,CAAC,UAA8B,CAC/B,CAAC;gBACV,EAAE,CAAC,MAAM,GAAG,aAAa,IAAI,EAAE,CAAC,MAAM,CAAC;YACzC,CAAC;YACD,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CACpC,EAAE,EACF,GAAG,EACH,OAAO,CAAC,UAAoB,CACT,CAAC;QACxB,CAAC;aAAM,IAAI,GAAG,KAAK,aAAa,EAAE,CAAC;YACjC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,EAAE,CAAW,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,iBAAiB,CAAC,CAAC;QAC7D,CAAC;QAED,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QAEzC,IAAI,UAAU,EAAE,CAAC;YACf,+EAA+E;YAC/E,MAAM,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;aAAM,IAAI,UAAU,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAAC,KAAc;QAC/B,MAAM,QAAQ,GAAG,KAAK,IAAI,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAEhD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,EAAE,YAAY,CAAC,GAC5D,MAAM,OAAO,CAAC,GAAG,CAAC;YAChB,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC;YACrB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,GAAG,CAAC;YACzC,KAAK,CAAC,YAAY,EAAE;SACrB,CAAC,CAAC;QAEL,MAAM,cAAc,GAAG;YACrB,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC;YACpC,GAAG,qBAAqB;SACzB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAElB,qCAAqC;QACrC,OAAO;YACL,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,cAAc,EAAE,GAAG,iBAAiB,EAAE,GAAG,YAAY,CAAC,CAAC;SACvE,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAgB;QACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"field-type-resource.js","sourceRoot":"","sources":["../../src/resources/field-type-resource.ts"],"names":[],"mappings":"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"}
@@ -10,43 +10,26 @@
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 { Card, FetchCardDetails, ResourceFolderType } from '../interfaces/project-interfaces.js';
13
+ import type { Card, ResourceFolderType } from '../interfaces/project-interfaces.js';
14
+ import type { ShowReturnType } from './resource-object.js';
14
15
  import { type AddOperation, type ChangeOperation, type Operation, type RemoveOperation, ResourceObject } from './resource-object.js';
15
16
  import { DefaultContent } from './create-defaults.js';
16
17
  import { Project, ResourcesFrom } from '../containers/project.js';
17
- import type { ResourceBaseMetadata, ResourceContent } from '../interfaces/resource-interfaces.js';
18
+ import type { ResourceBaseMetadata } from '../interfaces/resource-interfaces.js';
18
19
  import { type ResourceName, resourceName, resourceNameToString } from '../utils/resource-utils.js';
19
20
  import { sortCards } from '../utils/card-utils.js';
20
21
  export { type AddOperation, type Card, type ChangeOperation, DefaultContent, type Operation, Project, RemoveOperation, ResourcesFrom, resourceName, type ResourceName, resourceNameToString, sortCards, };
21
22
  /**
22
23
  * Base class for file based resources (card types, field types, link types, workflows, ...)
23
24
  */
24
- export declare class FileResource extends ResourceObject {
25
- protected type: ResourceFolderType;
26
- fileName: string;
27
- protected content: ResourceBaseMetadata;
28
- private cache;
29
- constructor(project: Project, resourceName: ResourceName, type: ResourceFolderType);
30
- private resourceType;
31
- private resourceObjectToResource;
32
- private toCache;
33
- protected collectCards(cardContent: FetchCardDetails, cardTypeName: string): Promise<Card[]>;
34
- protected get getType(): string;
35
- protected get logger(): import("pino").Logger;
36
- protected initialize(): void;
37
- protected create(newContent?: ResourceContent): Promise<void>;
38
- protected calculations(): Promise<string[]>;
39
- protected cards(): Promise<Card[]>;
40
- get data(): ResourceBaseMetadata | undefined;
41
- protected delete(): Promise<void>;
42
- protected validName(newName: ResourceName): Promise<string>;
43
- protected postUpdate<Type>(content: ResourceContent, key: string, op: Operation<Type>): Promise<void>;
44
- protected read(): Promise<void>;
45
- protected rename(newName: ResourceName): Promise<void>;
46
- protected show(): Promise<ResourceContent>;
47
- protected update<Type>(key: string, _op: Operation<Type>): Promise<void>;
25
+ export declare abstract class FileResource<T extends ResourceBaseMetadata> extends ResourceObject<T, never> {
26
+ constructor(project: Project, name: ResourceName, type: ResourceFolderType);
27
+ protected collectCards(cardTypeName: string): Promise<Card[]>;
48
28
  protected updatePrefixInResourceName(name: string, prefixes: string[]): string;
49
- protected usage(cards?: Card[]): Promise<string[]>;
50
- protected write(): Promise<void>;
51
- protected validate(content?: object): Promise<void>;
29
+ /**
30
+ * Returns the resource metadata content.
31
+ * @returns metadata content
32
+ * @throws if resource does not exist.
33
+ */
34
+ show(): Promise<ShowReturnType<T>>;
52
35
  }
@@ -10,279 +10,39 @@
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, sep } from 'node:path';
15
- import { mkdir, rename } from 'node:fs/promises';
16
- import { readFile } from 'node:fs/promises';
17
13
  import { ResourceObject, } from './resource-object.js';
18
14
  import { DefaultContent } from './create-defaults.js';
19
- import { deleteFile, pathExists } from '../utils/file-utils.js';
20
- import { hasCode } from '../utils/error-utils.js';
21
15
  import { Project, ResourcesFrom } from '../containers/project.js';
22
- import { readJsonFile, readJsonFileSync, writeJsonFile, } from '../utils/json.js';
23
- import { resourceName, resourceNameToPath, resourceNameToString, } from '../utils/resource-utils.js';
16
+ import { resourceName, resourceNameToString, } from '../utils/resource-utils.js';
24
17
  import { sortCards } from '../utils/card-utils.js';
25
18
  import { Template } from '../containers/template.js';
26
- import { Validate } from '../commands/index.js';
27
19
  export { DefaultContent, Project, ResourcesFrom, resourceName, resourceNameToString, sortCards, };
28
20
  /**
29
21
  * Base class for file based resources (card types, field types, link types, workflows, ...)
30
22
  */
31
23
  export class FileResource extends ResourceObject {
32
- type;
33
- fileName = '';
34
- content = {
35
- name: '',
36
- displayName: '',
37
- };
38
- cache;
39
- constructor(project, resourceName, type) {
40
- super(project, resourceName);
41
- this.type = type;
42
- this.cache = this.project.resourceCache;
43
- }
44
- // Type of resource.
45
- resourceType() {
46
- return this.type;
47
- }
48
- // Converts resource name to Resource object.
49
- resourceObjectToResource(object) {
50
- return {
51
- name: object.data ? object.data.name : '',
52
- path: object.fileName.substring(0, object.fileName.lastIndexOf(sep)),
53
- };
54
- }
55
- toCache() {
56
- this.cache.set(resourceNameToString(this.resourceName), this.content);
24
+ constructor(project, name, type) {
25
+ super(project, name, type);
26
+ this.initialize();
57
27
  }
58
28
  // Collects cards that are using the 'cardTypeName'.
59
- async collectCards(cardContent, cardTypeName) {
60
- async function filteredCards(cardSource, cardTypeName) {
61
- const cards = await cardSource;
29
+ async collectCards(cardTypeName) {
30
+ function filteredCards(cardSource, cardTypeName) {
31
+ const cards = cardSource;
62
32
  return cards.filter((card) => card.metadata?.cardType === cardTypeName);
63
33
  }
64
34
  // Collect both project cards ...
65
- const projectCardsPromise = filteredCards(this.project.cards(this.project.paths.cardRootFolder, cardContent), cardTypeName);
35
+ const projectCards = filteredCards(this.project.cards(this.project.paths.cardRootFolder), cardTypeName);
66
36
  // ... and cards from each template that would be affected.
67
37
  const templates = await this.project.templates(ResourcesFrom.localOnly);
68
- const templateCardsPromises = templates.map((template) => {
38
+ const templateCards = templates.map((template) => {
69
39
  const templateObject = new Template(this.project, template);
70
- return filteredCards(templateObject.cards('', cardContent), cardTypeName);
40
+ return filteredCards(templateObject.cards(), cardTypeName);
71
41
  });
72
42
  // Return all affected cards
73
- const cards = (await Promise.all([projectCardsPromise, ...templateCardsPromises])).reduce((accumulator, value) => accumulator.concat(value), []);
43
+ const cards = [projectCards, ...templateCards].reduce((accumulator, value) => accumulator.concat(value), []);
74
44
  return cards;
75
45
  }
76
- // Get (resource folder) type name
77
- get getType() {
78
- return super.getType;
79
- }
80
- // Get logger instance
81
- get logger() {
82
- return super.getLogger(this.getType);
83
- }
84
- // Initialize the resource.
85
- initialize() {
86
- if (this.resourceName.type === '') {
87
- this.resourceName.type = this.type;
88
- }
89
- if (this.resourceName.prefix === '') {
90
- this.resourceName.prefix = this.project.projectPrefix;
91
- }
92
- if (this.type) {
93
- this.moduleResource =
94
- this.resourceName.prefix !== this.project.projectPrefix;
95
- this.resourceFolder = this.moduleResource
96
- ? join(this.project.paths.modulesFolder, this.resourceName.prefix, this.resourceName.type)
97
- : this.project.paths.resourcePath(this.type);
98
- this.fileName = resourceNameToPath(this.project, this.resourceName);
99
- }
100
- // Read from cache, if entry exists...
101
- if (this.cache.has(resourceNameToString(this.resourceName))) {
102
- this.content = this.cache.get(resourceNameToString(this.resourceName));
103
- return;
104
- }
105
- //... otherwise read from disk and add to cache
106
- try {
107
- this.content = readJsonFileSync(this.fileName);
108
- this.toCache();
109
- }
110
- catch {
111
- // do nothing, it is possible that file has not been created yet.
112
- }
113
- }
114
- // Creates resource.
115
- async create(newContent) {
116
- if (pathExists(this.fileName)) {
117
- throw new Error(`Resource '${this.resourceName.identifier}' already exists in the project`);
118
- }
119
- if (this.resourceFolder === '') {
120
- this.resourceName = resourceName(`${this.project.projectPrefix}/${this.type}/${this.resourceName.identifier}`);
121
- this.resourceFolder = this.project.paths.resourcePath(this.resourceName.type);
122
- }
123
- const validName = await Validate.getInstance().validResourceName(this.resourceType(), resourceNameToString(this.resourceName), await this.project.projectPrefixes());
124
- let validContent = {};
125
- if (newContent) {
126
- validContent = newContent;
127
- validContent.name = validName;
128
- }
129
- else {
130
- validContent.description = '';
131
- validContent.displayName = '';
132
- }
133
- this.content = validContent;
134
- await this.write();
135
- // Notify project & collector
136
- this.project.addResource(this.resourceObjectToResource(this), this.content);
137
- }
138
- // Calculations that use this resource.
139
- async calculations() {
140
- const references = [];
141
- const resourceName = resourceNameToString(this.resourceName);
142
- for (const calculation of await this.project.calculations(ResourcesFrom.all)) {
143
- const fileNameWithExtension = calculation.name.endsWith('.lp')
144
- ? calculation.name
145
- : calculation.name + '.lp';
146
- const filename = join(calculation.path, basename(fileNameWithExtension));
147
- try {
148
- const content = await readFile(filename, 'utf-8');
149
- if (content.includes(resourceName)) {
150
- references.push(calculation.name);
151
- }
152
- }
153
- catch (error) {
154
- // Skip files that don't exist (they may have been renamed or deleted)
155
- if (hasCode(error) && error.code === 'ENOENT') {
156
- this.logger.warn(`Skipping non-existent file: ${filename}`);
157
- continue;
158
- }
159
- throw new Error(`Failed to process file ${filename}: ${error.message}`);
160
- }
161
- }
162
- return references;
163
- }
164
- // Cards from project.
165
- async cards() {
166
- return [
167
- ...(await this.project.cards(undefined, {
168
- content: true,
169
- metadata: true,
170
- })),
171
- ...(await this.project.allTemplateCards({
172
- content: true,
173
- metadata: true,
174
- })),
175
- ];
176
- }
177
- // Returns memory resident data as JSON.
178
- // This is basically same as 'show' but doesn't do any checks; just returns the current content.
179
- get data() {
180
- return this.content.name !== '' ? this.content : undefined;
181
- }
182
- // Deletes resource.
183
- async delete() {
184
- if (this.moduleResource) {
185
- throw new Error(`Cannot delete module resources`);
186
- }
187
- if (!this.fileName.endsWith('.json')) {
188
- this.fileName += '.json';
189
- }
190
- if (!pathExists(this.fileName)) {
191
- throw new Error(`Resource '${this.resourceName.identifier}' does not exist in the project`);
192
- }
193
- const usedIn = await this.usage();
194
- if (usedIn.length > 0) {
195
- throw new Error(`Cannot delete resource ${resourceNameToString(this.resourceName)}. It is used by: ${usedIn.join(', ')}`);
196
- }
197
- await deleteFile(this.fileName);
198
- this.project.removeResource(this.resourceObjectToResource(this));
199
- this.fileName = '';
200
- }
201
- async validName(newName) {
202
- const validName = await Validate.getInstance().validResourceName(this.resourceType(), resourceNameToString(newName), await this.project.projectPrefixes());
203
- return validName;
204
- }
205
- // Called after inherited class has finished 'update' operation.
206
- async postUpdate(content, key, op) {
207
- function toValue(op) {
208
- if (op.name === 'rank')
209
- return op.newIndex;
210
- if (op.name === 'add')
211
- return JSON.stringify(op.target);
212
- if (op.name === 'remove')
213
- return JSON.stringify(op.target);
214
- if (op.name === 'change')
215
- return JSON.stringify(op.to);
216
- }
217
- // Check that new name is valid.
218
- if (op.name === 'change' && key === 'name') {
219
- const newName = resourceName(op.to);
220
- content.name = await this.validName(newName);
221
- }
222
- // Once changes have been made; validate the content.
223
- try {
224
- await this.validate(content);
225
- }
226
- catch (error) {
227
- if (error instanceof Error) {
228
- const errorValue = typeof op === 'object' ? toValue(op) : op;
229
- throw new Error(`Cannot ${op.name} '${key}' --> '${errorValue}: ${error.message}'`);
230
- }
231
- }
232
- this.content = content;
233
- await this.write();
234
- }
235
- // Reads content from file to memory.
236
- async read() {
237
- this.content = await readJsonFile(this.fileName);
238
- }
239
- // Renames resource.
240
- async rename(newName) {
241
- this.cache.delete(resourceNameToString(this.resourceName));
242
- if (this.moduleResource) {
243
- throw new Error(`Cannot rename module resources`);
244
- }
245
- if (!pathExists(this.fileName)) {
246
- throw new Error(`Resource '${this.resourceName.identifier}' does not exist`);
247
- }
248
- if (newName.prefix !== this.project.projectPrefix) {
249
- throw new Error('Can only rename project resources');
250
- }
251
- if (newName.type !== this.resourceName.type) {
252
- throw new Error('Cannot change resource type');
253
- }
254
- await Validate.getInstance().validResourceName(this.resourceType(), resourceNameToString(newName), await this.project.projectPrefixes());
255
- const newFilename = join(this.project.paths.resourcePath(newName.type), newName.identifier + '.json');
256
- await rename(this.fileName, newFilename);
257
- this.fileName = newFilename;
258
- this.content.name = resourceNameToString(newName);
259
- this.resourceName = newName;
260
- this.toCache();
261
- }
262
- // Show resource data as JSON.
263
- async show() {
264
- if (!pathExists(this.fileName)) {
265
- const resourceType = `${this.type[0].toUpperCase()}${this.type.slice(1, this.type.length - 1)}`;
266
- const name = resourceNameToString(this.resourceName);
267
- throw new Error(`${resourceType} '${name}' does not exist in the project`);
268
- }
269
- return this.content;
270
- }
271
- // Update resource; the base class makes some checks only.
272
- async update(key,
273
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
274
- _op) {
275
- if (!this.data) {
276
- const name = resourceNameToString(this.resourceName);
277
- throw new Error(`Resource '${name}' does not exist in the project`);
278
- }
279
- if (this.moduleResource) {
280
- throw new Error(`Cannot update module resources`);
281
- }
282
- if (key === '' || key === undefined) {
283
- throw new Error(`Cannot update empty key`);
284
- }
285
- }
286
46
  // Updates resource key to a new prefix
287
47
  updatePrefixInResourceName(name, prefixes) {
288
48
  const { identifier, prefix, type } = resourceName(name);
@@ -293,48 +53,14 @@ export class FileResource extends ResourceObject {
293
53
  ? `${this.project.configuration.cardKeyPrefix}/${type}/${identifier}`
294
54
  : name;
295
55
  }
296
- // Check if there are references to the resource in the card content.
297
- async usage(cards) {
298
- if (!pathExists(this.fileName)) {
299
- throw new Error(`Resource '${this.resourceName.identifier}' does not exist in the project`);
300
- }
301
- const cardArray = cards?.length
302
- ? cards
303
- : await this.project.cards(undefined, {
304
- content: true,
305
- metadata: true,
306
- });
307
- return cardArray
308
- .filter((card) => card.content?.includes(resourceNameToString(this.resourceName)))
309
- .map((card) => card.key);
310
- }
311
- // Write the content from memory to disk.
312
- async write() {
313
- if (this.moduleResource) {
314
- throw new Error(`Cannot change module resources`);
315
- }
316
- // Create folder for resources and add correct .schema file.
317
- await mkdir(this.resourceFolder, { recursive: true });
318
- await writeJsonFile(join(this.resourceFolder, '.schema'), this.contentSchema, {
319
- flag: 'wx',
320
- });
321
- // Check if "name" has changed. Changing "name" means renaming the file.
322
- const nameInContent = resourceName(this.content.name).identifier + '.json';
323
- const currentFileName = basename(this.fileName);
324
- if (nameInContent !== currentFileName) {
325
- const newFileName = join(this.resourceFolder, nameInContent);
326
- await rename(this.fileName, newFileName);
327
- this.fileName = newFileName;
328
- }
329
- await writeJsonFile(this.fileName, this.content);
330
- this.toCache();
331
- }
332
- // Validate that current memory-based 'content' is valid.
333
- async validate(content) {
334
- const invalidJson = Validate.getInstance().validateJson(content ? content : this.content, this.contentSchemaId);
335
- if (invalidJson.length) {
336
- throw new Error(`Invalid content JSON: ${invalidJson}`);
337
- }
56
+ /**
57
+ * Returns the resource metadata content.
58
+ * @returns metadata content
59
+ * @throws if resource does not exist.
60
+ */
61
+ async show() {
62
+ this.assertResourceExists();
63
+ return this.content;
338
64
  }
339
65
  }
340
66
  //# sourceMappingURL=file-resource.js.map