@cyberismo/data-handler 0.0.14 → 0.0.16

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 (280) hide show
  1. package/dist/card-metadata-updater.js +8 -4
  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 +29 -19
  5. package/dist/command-handler.js.map +1 -1
  6. package/dist/command-manager.d.ts +25 -2
  7. package/dist/command-manager.js +30 -5
  8. package/dist/command-manager.js.map +1 -1
  9. package/dist/commands/create.d.ts +1 -1
  10. package/dist/commands/create.js +45 -93
  11. package/dist/commands/create.js.map +1 -1
  12. package/dist/commands/edit.d.ts +1 -15
  13. package/dist/commands/edit.js +15 -89
  14. package/dist/commands/edit.js.map +1 -1
  15. package/dist/commands/export.d.ts +11 -2
  16. package/dist/commands/export.js +58 -58
  17. package/dist/commands/export.js.map +1 -1
  18. package/dist/commands/import.d.ts +9 -1
  19. package/dist/commands/import.js +17 -11
  20. package/dist/commands/import.js.map +1 -1
  21. package/dist/commands/move.d.ts +1 -2
  22. package/dist/commands/move.js +107 -146
  23. package/dist/commands/move.js.map +1 -1
  24. package/dist/commands/remove.d.ts +8 -1
  25. package/dist/commands/remove.js +17 -48
  26. package/dist/commands/remove.js.map +1 -1
  27. package/dist/commands/rename.d.ts +4 -9
  28. package/dist/commands/rename.js +34 -108
  29. package/dist/commands/rename.js.map +1 -1
  30. package/dist/commands/show.d.ts +22 -34
  31. package/dist/commands/show.js +103 -151
  32. package/dist/commands/show.js.map +1 -1
  33. package/dist/commands/transition.d.ts +9 -2
  34. package/dist/commands/transition.js +49 -44
  35. package/dist/commands/transition.js.map +1 -1
  36. package/dist/commands/update.d.ts +18 -12
  37. package/dist/commands/update.js +34 -18
  38. package/dist/commands/update.js.map +1 -1
  39. package/dist/commands/validate.d.ts +18 -10
  40. package/dist/commands/validate.js +101 -47
  41. package/dist/commands/validate.js.map +1 -1
  42. package/dist/containers/card-container.d.ts +87 -24
  43. package/dist/containers/card-container.js +183 -279
  44. package/dist/containers/card-container.js.map +1 -1
  45. package/dist/containers/project/calculation-engine.d.ts +13 -4
  46. package/dist/containers/project/calculation-engine.js +79 -77
  47. package/dist/containers/project/calculation-engine.js.map +1 -1
  48. package/dist/containers/project/card-cache.d.ts +146 -0
  49. package/dist/containers/project/card-cache.js +411 -0
  50. package/dist/containers/project/card-cache.js.map +1 -0
  51. package/dist/containers/project/project-paths.d.ts +5 -4
  52. package/dist/containers/project/project-paths.js +16 -12
  53. package/dist/containers/project/project-paths.js.map +1 -1
  54. package/dist/containers/project/resource-cache.d.ts +169 -0
  55. package/dist/containers/project/resource-cache.js +507 -0
  56. package/dist/containers/project/resource-cache.js.map +1 -0
  57. package/dist/containers/project/resource-handler.d.ts +129 -0
  58. package/dist/containers/project/resource-handler.js +206 -0
  59. package/dist/containers/project/resource-handler.js.map +1 -0
  60. package/dist/containers/project.d.ts +114 -195
  61. package/dist/containers/project.js +425 -535
  62. package/dist/containers/project.js.map +1 -1
  63. package/dist/containers/template.d.ts +22 -32
  64. package/dist/containers/template.js +113 -115
  65. package/dist/containers/template.js.map +1 -1
  66. package/dist/index.d.ts +1 -0
  67. package/dist/index.js +1 -0
  68. package/dist/index.js.map +1 -1
  69. package/dist/interfaces/folder-content-interfaces.d.ts +7 -4
  70. package/dist/interfaces/folder-content-interfaces.js +3 -3
  71. package/dist/interfaces/folder-content-interfaces.js.map +1 -1
  72. package/dist/interfaces/macros.d.ts +1 -0
  73. package/dist/interfaces/macros.js +1 -1
  74. package/dist/interfaces/macros.js.map +1 -1
  75. package/dist/interfaces/project-interfaces.d.ts +7 -5
  76. package/dist/interfaces/project-interfaces.js.map +1 -1
  77. package/dist/interfaces/resource-interfaces.d.ts +25 -22
  78. package/dist/interfaces/resource-interfaces.js +3 -0
  79. package/dist/interfaces/resource-interfaces.js.map +1 -1
  80. package/dist/macros/common.d.ts +10 -10
  81. package/dist/macros/createCards/index.d.ts +0 -13
  82. package/dist/macros/createCards/index.js.map +1 -1
  83. package/dist/macros/createCards/types.d.ts +44 -0
  84. package/dist/macros/createCards/types.js +15 -0
  85. package/dist/macros/createCards/types.js.map +1 -0
  86. package/dist/macros/graph/index.d.ts +2 -6
  87. package/dist/macros/graph/index.js +14 -28
  88. package/dist/macros/graph/index.js.map +1 -1
  89. package/dist/macros/graph/types.d.ts +23 -0
  90. package/dist/macros/graph/types.js +15 -0
  91. package/dist/macros/graph/types.js.map +1 -0
  92. package/dist/macros/image/index.d.ts +8 -16
  93. package/dist/macros/image/index.js +36 -33
  94. package/dist/macros/image/index.js.map +1 -1
  95. package/dist/macros/image/types.d.ts +38 -0
  96. package/dist/macros/image/types.js +15 -0
  97. package/dist/macros/image/types.js.map +1 -0
  98. package/dist/macros/include/index.d.ts +1 -6
  99. package/dist/macros/include/index.js +4 -7
  100. package/dist/macros/include/index.js.map +1 -1
  101. package/dist/macros/include/types.d.ts +31 -0
  102. package/dist/macros/include/types.js +15 -0
  103. package/dist/macros/include/types.js.map +1 -0
  104. package/dist/macros/index.d.ts +1 -1
  105. package/dist/macros/index.js +2 -2
  106. package/dist/macros/index.js.map +1 -1
  107. package/dist/macros/percentage/index.d.ts +0 -6
  108. package/dist/macros/percentage/index.js.map +1 -1
  109. package/dist/macros/percentage/types.d.ts +31 -0
  110. package/dist/macros/percentage/types.js +15 -0
  111. package/dist/macros/percentage/types.js.map +1 -0
  112. package/dist/macros/report/index.d.ts +0 -3
  113. package/dist/macros/report/index.js +3 -6
  114. package/dist/macros/report/index.js.map +1 -1
  115. package/dist/macros/report/types.d.ts +19 -0
  116. package/dist/macros/report/types.js +15 -0
  117. package/dist/macros/report/types.js.map +1 -0
  118. package/dist/macros/scoreCard/index.d.ts +0 -6
  119. package/dist/macros/scoreCard/index.js.map +1 -1
  120. package/dist/macros/scoreCard/types.d.ts +31 -0
  121. package/dist/macros/scoreCard/types.js +15 -0
  122. package/dist/macros/scoreCard/types.js.map +1 -0
  123. package/dist/macros/types.d.ts +25 -0
  124. package/dist/macros/types.js +2 -0
  125. package/dist/macros/types.js.map +1 -0
  126. package/dist/macros/vega/index.d.ts +0 -4
  127. package/dist/macros/vega/index.js.map +1 -1
  128. package/dist/macros/vega/types.d.ts +20 -0
  129. package/dist/macros/vega/types.js +2 -0
  130. package/dist/macros/vega/types.js.map +1 -0
  131. package/dist/macros/vegalite/index.d.ts +0 -4
  132. package/dist/macros/vegalite/index.js.map +1 -1
  133. package/dist/macros/vegalite/types.d.ts +20 -0
  134. package/dist/macros/vegalite/types.js +15 -0
  135. package/dist/macros/vegalite/types.js.map +1 -0
  136. package/dist/macros/xref/index.d.ts +0 -3
  137. package/dist/macros/xref/index.js +5 -14
  138. package/dist/macros/xref/index.js.map +1 -1
  139. package/dist/macros/xref/types.d.ts +19 -0
  140. package/dist/macros/xref/types.js +15 -0
  141. package/dist/macros/xref/types.js.map +1 -0
  142. package/dist/module-manager.d.ts +16 -3
  143. package/dist/module-manager.js +55 -23
  144. package/dist/module-manager.js.map +1 -1
  145. package/dist/project-settings.d.ts +16 -3
  146. package/dist/project-settings.js +79 -14
  147. package/dist/project-settings.js.map +1 -1
  148. package/dist/resources/calculation-resource.d.ts +6 -33
  149. package/dist/resources/calculation-resource.js +11 -60
  150. package/dist/resources/calculation-resource.js.map +1 -1
  151. package/dist/resources/card-type-resource.d.ts +10 -22
  152. package/dist/resources/card-type-resource.js +46 -66
  153. package/dist/resources/card-type-resource.js.map +1 -1
  154. package/dist/resources/create-defaults.d.ts +3 -2
  155. package/dist/resources/create-defaults.js +3 -2
  156. package/dist/resources/create-defaults.js.map +1 -1
  157. package/dist/resources/field-type-resource.d.ts +8 -22
  158. package/dist/resources/field-type-resource.js +35 -60
  159. package/dist/resources/field-type-resource.js.map +1 -1
  160. package/dist/resources/file-resource.d.ts +14 -35
  161. package/dist/resources/file-resource.js +22 -301
  162. package/dist/resources/file-resource.js.map +1 -1
  163. package/dist/resources/folder-resource.d.ts +44 -66
  164. package/dist/resources/folder-resource.js +102 -149
  165. package/dist/resources/folder-resource.js.map +1 -1
  166. package/dist/resources/graph-model-resource.d.ts +9 -34
  167. package/dist/resources/graph-model-resource.js +18 -64
  168. package/dist/resources/graph-model-resource.js.map +1 -1
  169. package/dist/resources/graph-view-resource.d.ts +9 -29
  170. package/dist/resources/graph-view-resource.js +13 -48
  171. package/dist/resources/graph-view-resource.js.map +1 -1
  172. package/dist/resources/link-type-resource.d.ts +9 -23
  173. package/dist/resources/link-type-resource.js +11 -33
  174. package/dist/resources/link-type-resource.js.map +1 -1
  175. package/dist/resources/report-resource.d.ts +10 -23
  176. package/dist/resources/report-resource.js +20 -67
  177. package/dist/resources/report-resource.js.map +1 -1
  178. package/dist/resources/resource-object.d.ts +143 -23
  179. package/dist/resources/resource-object.js +369 -48
  180. package/dist/resources/resource-object.js.map +1 -1
  181. package/dist/resources/template-resource.d.ts +10 -17
  182. package/dist/resources/template-resource.js +19 -27
  183. package/dist/resources/template-resource.js.map +1 -1
  184. package/dist/resources/workflow-resource.d.ts +9 -25
  185. package/dist/resources/workflow-resource.js +25 -55
  186. package/dist/resources/workflow-resource.js.map +1 -1
  187. package/dist/utils/card-utils.d.ts +69 -19
  188. package/dist/utils/card-utils.js +179 -30
  189. package/dist/utils/card-utils.js.map +1 -1
  190. package/dist/utils/clingo-fact-builder.d.ts +25 -14
  191. package/dist/utils/clingo-fact-builder.js +27 -5
  192. package/dist/utils/clingo-fact-builder.js.map +1 -1
  193. package/dist/utils/clingo-facts.js +14 -7
  194. package/dist/utils/clingo-facts.js.map +1 -1
  195. package/dist/utils/clingo-parser.js +1 -1
  196. package/dist/utils/clingo-parser.js.map +1 -1
  197. package/dist/utils/constants.d.ts +2 -0
  198. package/dist/utils/constants.js +4 -0
  199. package/dist/utils/constants.js.map +1 -1
  200. package/dist/utils/csv.js +1 -1
  201. package/dist/utils/csv.js.map +1 -1
  202. package/dist/utils/resource-utils.d.ts +1 -0
  203. package/dist/utils/resource-utils.js +2 -1
  204. package/dist/utils/resource-utils.js.map +1 -1
  205. package/package.json +11 -11
  206. package/src/card-metadata-updater.ts +9 -7
  207. package/src/command-handler.ts +35 -23
  208. package/src/command-manager.ts +32 -19
  209. package/src/commands/create.ts +59 -160
  210. package/src/commands/edit.ts +16 -132
  211. package/src/commands/export.ts +71 -81
  212. package/src/commands/import.ts +26 -18
  213. package/src/commands/move.ts +143 -179
  214. package/src/commands/remove.ts +20 -59
  215. package/src/commands/rename.ts +45 -156
  216. package/src/commands/show.ts +153 -211
  217. package/src/commands/transition.ts +53 -58
  218. package/src/commands/update.ts +44 -23
  219. package/src/commands/validate.ts +108 -82
  220. package/src/containers/card-container.ts +200 -360
  221. package/src/containers/project/calculation-engine.ts +81 -105
  222. package/src/containers/project/card-cache.ts +497 -0
  223. package/src/containers/project/project-paths.ts +21 -13
  224. package/src/containers/project/resource-cache.ts +648 -0
  225. package/src/containers/project/resource-handler.ts +265 -0
  226. package/src/containers/project.ts +551 -693
  227. package/src/containers/template.ts +129 -142
  228. package/src/index.ts +1 -0
  229. package/src/interfaces/folder-content-interfaces.ts +14 -7
  230. package/src/interfaces/macros.ts +2 -0
  231. package/src/interfaces/project-interfaces.ts +14 -7
  232. package/src/interfaces/resource-interfaces.ts +30 -27
  233. package/src/macros/createCards/index.ts +1 -12
  234. package/src/macros/createCards/types.ts +46 -0
  235. package/src/macros/graph/index.ts +27 -52
  236. package/src/macros/graph/types.ts +24 -0
  237. package/src/macros/image/index.ts +50 -61
  238. package/src/macros/image/types.ts +39 -0
  239. package/src/macros/include/index.ts +6 -15
  240. package/src/macros/include/types.ts +32 -0
  241. package/src/macros/index.ts +2 -2
  242. package/src/macros/percentage/index.ts +1 -7
  243. package/src/macros/percentage/types.ts +32 -0
  244. package/src/macros/report/index.ts +4 -13
  245. package/src/macros/report/types.ts +20 -0
  246. package/src/macros/scoreCard/index.ts +1 -7
  247. package/src/macros/scoreCard/types.ts +32 -0
  248. package/src/macros/types.ts +48 -0
  249. package/src/macros/vega/index.ts +1 -4
  250. package/src/macros/vega/types.ts +21 -0
  251. package/src/macros/vegalite/index.ts +1 -4
  252. package/src/macros/vegalite/types.ts +22 -0
  253. package/src/macros/xref/index.ts +6 -20
  254. package/src/macros/xref/types.ts +20 -0
  255. package/src/module-manager.ts +79 -22
  256. package/src/project-settings.ts +84 -15
  257. package/src/resources/calculation-resource.ts +21 -91
  258. package/src/resources/card-type-resource.ts +74 -109
  259. package/src/resources/create-defaults.ts +3 -2
  260. package/src/resources/field-type-resource.ts +61 -104
  261. package/src/resources/file-resource.ts +33 -441
  262. package/src/resources/folder-resource.ts +130 -207
  263. package/src/resources/graph-model-resource.ts +36 -95
  264. package/src/resources/graph-view-resource.ts +28 -70
  265. package/src/resources/link-type-resource.ts +23 -53
  266. package/src/resources/report-resource.ts +34 -96
  267. package/src/resources/resource-object.ts +511 -66
  268. package/src/resources/template-resource.ts +32 -44
  269. package/src/resources/workflow-resource.ts +42 -85
  270. package/src/utils/card-utils.ts +217 -31
  271. package/src/utils/clingo-fact-builder.ts +28 -16
  272. package/src/utils/clingo-facts.ts +16 -7
  273. package/src/utils/clingo-parser.ts +1 -1
  274. package/src/utils/constants.ts +6 -0
  275. package/src/utils/csv.ts +1 -1
  276. package/src/utils/resource-utils.ts +2 -1
  277. package/dist/containers/project/resource-collector.d.ts +0 -87
  278. package/dist/containers/project/resource-collector.js +0 -337
  279. package/dist/containers/project/resource-collector.js.map +0 -1
  280. package/src/containers/project/resource-collector.ts +0 -396
@@ -9,11 +9,11 @@
9
9
  You should have received a copy of the GNU Affero General Public
10
10
  License along with this program. If not, see <https://www.gnu.org/licenses/>.
11
11
  */
12
+ import { type ResourceName } from '../utils/resource-utils.js';
12
13
  import type { Card, ResourceFolderType } from '../interfaces/project-interfaces.js';
13
14
  import type { Logger } from 'pino';
14
- import { type Project } from '../containers/project.js';
15
- import type { ResourceContent } from '../interfaces/resource-interfaces.js';
16
- import type { ResourceName } from '../utils/resource-utils.js';
15
+ import type { Project } from '../containers/project.js';
16
+ import type { ResourceBaseMetadata, UpdateKey } from '../interfaces/resource-interfaces.js';
17
17
  export type UpdateOperations = 'add' | 'change' | 'rank' | 'remove';
18
18
  type BaseOperation<T> = {
19
19
  name: 'add' | 'change' | 'rank' | 'remove';
@@ -45,71 +45,153 @@ export type OperationMap<T> = {
45
45
  remove: RemoveOperation<T>;
46
46
  };
47
47
  export type OperationFor<T, N extends UpdateOperations> = OperationMap<T>[N];
48
+ export type ShowReturnType<T extends ResourceBaseMetadata, U = never> = Omit<T, 'content'> & {
49
+ [K in 'content' as [U] extends [never] ? never : K]: U;
50
+ };
48
51
  /**
49
52
  * Abstract class for resources.
50
53
  */
51
- export declare abstract class AbstractResource {
54
+ export declare abstract class AbstractResource<T extends ResourceBaseMetadata, U = never> {
52
55
  protected abstract calculate(): Promise<void>;
53
- protected abstract create(content?: ResourceContent): Promise<void>;
56
+ protected abstract create(content?: T): Promise<void>;
54
57
  protected abstract delete(): Promise<void>;
55
58
  protected abstract read(): Promise<void>;
56
59
  protected abstract rename(newName: ResourceName): Promise<void>;
57
- protected abstract show(): Promise<ResourceContent>;
58
- protected abstract update<Type>(key: string, operation: Operation<Type>): Promise<void>;
60
+ protected abstract show(): ShowReturnType<T, U>;
61
+ protected abstract update<Type, K extends string>(updateKey: UpdateKey<K>, operation: Operation<Type>): Promise<void>;
59
62
  protected abstract usage(cards?: Card[]): Promise<string[]>;
60
63
  protected abstract validate(content?: object): Promise<void>;
61
64
  protected abstract write(): Promise<void>;
62
65
  protected abstract get getType(): string;
63
66
  protected abstract getLogger(loggerName: string): Logger;
64
67
  }
65
- /**
66
- * Base class for all resources.
67
- */
68
- export declare class ResourceObject extends AbstractResource {
68
+ export declare abstract class ResourceObject<T extends ResourceBaseMetadata, U> extends AbstractResource<T, U> {
69
69
  protected project: Project;
70
70
  protected resourceName: ResourceName;
71
+ private static validateInstancePromise?;
72
+ protected content: T;
71
73
  protected moduleResource: boolean;
72
74
  protected contentSchema: JSON;
73
75
  protected contentSchemaId: string;
74
76
  protected type: ResourceFolderType;
75
77
  protected resourceFolder: string;
76
- constructor(project: Project, resourceName: ResourceName);
78
+ protected logger: Logger;
79
+ /**
80
+ * Path to the resource metadata file (the .json file).
81
+ */
82
+ fileName: string;
83
+ /**
84
+ * Constructs a ResourceObject instance
85
+ * @param project Project where this resource is
86
+ * @param resourceName Name for the resource
87
+ * @param type Type of resource
88
+ */
89
+ constructor(project: Project, resourceName: ResourceName, type: ResourceFolderType);
90
+ private exists;
91
+ private static getValidate;
92
+ private reportHandlerBarFiles;
93
+ private resourceType;
94
+ /**
95
+ * Checks if resource exists.
96
+ * This should only throw, if someone creates resources directly; ie. not through the cache
97
+ * @throws if resource does not exist
98
+ */
99
+ protected assertResourceExists(): void;
100
+ /**
101
+ * Calculate; empty implementation.
102
+ */
77
103
  protected calculate(): Promise<void>;
78
- protected create(_content?: ResourceContent): Promise<void>;
79
- protected delete(): Promise<void>;
80
- protected read(): Promise<void>;
81
- protected rename(_name: ResourceName): Promise<void>;
82
- protected show(): Promise<ResourceContent>;
83
- protected get getType(): string;
84
- protected getLogger(loggerName: string): Logger;
85
- protected update<Type>(_key: string, _op: Operation<Type>): Promise<void>;
86
- protected usage(_cards?: Card[]): Promise<string[]>;
87
- protected validate(_content?: object): Promise<void>;
88
- protected write(): Promise<void>;
104
+ /**
105
+ * Calculations that use this resource.
106
+ * @throws if accessing calculations files failed
107
+ */
108
+ protected calculations(): Promise<string[]>;
109
+ /**
110
+ * Cards from project.
111
+ */
112
+ protected cards(): Card[];
89
113
  /**
90
114
  * Returns .schema content file.
91
115
  * @param schemaId schema id
92
116
  * @returns .schema content.
93
117
  */
94
118
  protected contentSchemaContent(schemaId: string): JSON;
119
+ /**
120
+ * Creates resource.
121
+ * @param newContent Content for resource.
122
+ * @throws when resource already exists in the project.
123
+ */
124
+ protected create(newContent?: T): Promise<void>;
125
+ /**
126
+ * Gets a logger instance.
127
+ * @param loggerName
128
+ * @returns logger instance
129
+ */
130
+ protected getLogger(loggerName: string): Logger;
131
+ /**
132
+ * Returns type of this resource.
133
+ */
134
+ protected get getType(): string;
95
135
  /**
96
136
  * Handles operation to an array.
97
137
  * @param operation Operation to perform on array.
98
138
  * @param arrayName Name of the array, for error messages.
99
139
  * @param array Array to be updated.
100
140
  * @returns Changed array after the operation.
141
+ * @throws when operation cannot be done.
101
142
  */
102
143
  protected handleArray<Type>(operation: Operation<Type>, arrayName: string, array: Type[]): Type[];
103
144
  /**
104
145
  * Updates scalar value. The only accepted operation is 'change'
105
146
  * @param operation Operation to perform on scalar.
106
147
  * @returns What the scalar should be changed to.
148
+ * @throws when operation cannot be done
107
149
  */
108
150
  protected handleScalar<Type>(operation: Operation<Type>): Type;
151
+ /**
152
+ * Initialize the resource.
153
+ */
154
+ protected initialize(): void;
155
+ /**
156
+ * Called after inherited class has finished 'update' operation.
157
+ * @param content New content for resource
158
+ * @param updateKey Which property to change
159
+ * @param op What kind of operation is performed to updateKey
160
+ * @throws if validation fails after the update
161
+ */
162
+ protected postUpdate<Type, K extends string>(content: T, updateKey: UpdateKey<K>, op: Operation<Type>): Promise<void>;
163
+ /**
164
+ * Reads content from file to memory.
165
+ */
166
+ protected read(): Promise<void>;
167
+ /**
168
+ * Renames resource.
169
+ * @param newName New name for the resource.
170
+ * @throws if trying to rename module resource, or
171
+ * if resource does not exist,
172
+ * if trying to rename so that type changes
173
+ */
174
+ protected rename(newName: ResourceName): Promise<void>;
175
+ /**
176
+ * Update resource; the base class makes some checks only.
177
+ * @template type Resource type
178
+ * @template K Resource key
179
+ * @throws if resource does not exist, or
180
+ * if trying to update module content, or
181
+ * if key is empty
182
+ */
183
+ protected update<Type, K extends string>(key: UpdateKey<K>, _op: Operation<Type>): Promise<void>;
184
+ /**
185
+ * Validates resource identifier to prevent filesystem operations with invalid names
186
+ * todo: To Validate?
187
+ */
188
+ protected validateResourceIdentifier(): void;
109
189
  /**
110
190
  * Update calculation files.
111
191
  * @param from Resource name to update
112
192
  * @param to New name for resource
193
+ * @throws if 'from' or 'to' is empty string, or
194
+ * if there was error accessing calculation files.
113
195
  */
114
196
  protected updateCalculations(from: string, to: string): Promise<void>;
115
197
  /**
@@ -117,7 +199,45 @@ export declare class ResourceObject extends AbstractResource {
117
199
  * @param from Resource name to update
118
200
  * @param to New name for resource
119
201
  * @param handleBarFiles Optional. List of handlebar files. If omitted, affects all handlebar files in the project.
202
+ * @throws if 'from' or 'to' is empty string
120
203
  */
121
204
  protected updateHandleBars(from: string, to: string, handleBarFiles?: string[]): Promise<void>;
205
+ /**
206
+ * Check if there are references to the resource in the card content.
207
+ * @note that this needs to be async, since inherited classes need to async operations
208
+ * @param cards cards to check
209
+ * @throws if resource does not exist
210
+ */
211
+ protected usage(cards?: Card[]): Promise<string[]>;
212
+ /**
213
+ * Checks if resource name is valid.
214
+ * @param newName New name for resource.
215
+ * @returns valid name
216
+ */
217
+ protected validName(newName: ResourceName): Promise<string>;
218
+ /**
219
+ * Write the content from memory to disk.
220
+ * @throws if trying to write a module resource.
221
+ */
222
+ protected write(): Promise<void>;
223
+ /**
224
+ * Returns memory resident data as JSON.
225
+ * This is basically same as 'show' but doesn't do any checks; just returns the current content.
226
+ * @returns metadata content or undefined if resource does not exist.
227
+ */
228
+ get data(): T | undefined;
229
+ /**
230
+ * Deletes the file and removes the resource from project.
231
+ * @throws if resource is a module resource, or
232
+ * if resource does not exist, or
233
+ * if resource is used by other resources.
234
+ */
235
+ delete(): Promise<void>;
236
+ /**
237
+ * Validates the content of the resource.
238
+ * @param content Content to be validated.
239
+ * @throws if content is invalid.
240
+ */
241
+ validate(content?: object): Promise<void>;
122
242
  }
123
243
  export {};