@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.
- package/dist/card-metadata-updater.js +1 -3
- package/dist/card-metadata-updater.js.map +1 -1
- package/dist/command-handler.js +10 -16
- package/dist/command-handler.js.map +1 -1
- package/dist/command-manager.d.ts +1 -1
- package/dist/command-manager.js +4 -3
- package/dist/command-manager.js.map +1 -1
- package/dist/commands/create.js +13 -59
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/edit.d.ts +1 -15
- package/dist/commands/edit.js +15 -89
- package/dist/commands/edit.js.map +1 -1
- package/dist/commands/export.js +4 -17
- package/dist/commands/export.js.map +1 -1
- package/dist/commands/import.js +3 -5
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/move.d.ts +1 -2
- package/dist/commands/move.js +108 -146
- package/dist/commands/move.js.map +1 -1
- package/dist/commands/remove.js +9 -44
- package/dist/commands/remove.js.map +1 -1
- package/dist/commands/rename.js +2 -7
- package/dist/commands/rename.js.map +1 -1
- package/dist/commands/show.d.ts +7 -25
- package/dist/commands/show.js +38 -102
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/transition.js +27 -30
- package/dist/commands/transition.js.map +1 -1
- package/dist/commands/update.d.ts +5 -3
- package/dist/commands/update.js +19 -5
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/validate.d.ts +3 -3
- package/dist/commands/validate.js +19 -26
- package/dist/commands/validate.js.map +1 -1
- package/dist/containers/card-container.d.ts +87 -24
- package/dist/containers/card-container.js +183 -279
- package/dist/containers/card-container.js.map +1 -1
- package/dist/containers/project/calculation-engine.d.ts +6 -0
- package/dist/containers/project/calculation-engine.js +19 -12
- package/dist/containers/project/calculation-engine.js.map +1 -1
- package/dist/containers/project/card-cache.d.ts +146 -0
- package/dist/containers/project/card-cache.js +411 -0
- package/dist/containers/project/card-cache.js.map +1 -0
- package/dist/containers/project/resource-collector.d.ts +24 -1
- package/dist/containers/project/resource-collector.js +8 -1
- package/dist/containers/project/resource-collector.js.map +1 -1
- package/dist/containers/project.d.ts +117 -83
- package/dist/containers/project.js +418 -252
- package/dist/containers/project.js.map +1 -1
- package/dist/containers/template.d.ts +15 -31
- package/dist/containers/template.js +97 -104
- package/dist/containers/template.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/folder-content-interfaces.d.ts +2 -1
- package/dist/interfaces/folder-content-interfaces.js.map +1 -1
- package/dist/interfaces/macros.d.ts +1 -0
- package/dist/interfaces/macros.js +1 -1
- package/dist/interfaces/macros.js.map +1 -1
- package/dist/interfaces/project-interfaces.d.ts +5 -1
- package/dist/interfaces/project-interfaces.js.map +1 -1
- package/dist/interfaces/resource-interfaces.d.ts +11 -21
- package/dist/interfaces/resource-interfaces.js +3 -0
- package/dist/interfaces/resource-interfaces.js.map +1 -1
- package/dist/macros/common.d.ts +10 -10
- package/dist/macros/createCards/index.d.ts +0 -13
- package/dist/macros/createCards/index.js.map +1 -1
- package/dist/macros/createCards/types.d.ts +44 -0
- package/dist/macros/createCards/types.js +15 -0
- package/dist/macros/createCards/types.js.map +1 -0
- package/dist/macros/graph/index.d.ts +2 -6
- package/dist/macros/graph/index.js +2 -2
- package/dist/macros/graph/index.js.map +1 -1
- package/dist/macros/graph/types.d.ts +23 -0
- package/dist/macros/graph/types.js +15 -0
- package/dist/macros/graph/types.js.map +1 -0
- package/dist/macros/image/index.d.ts +8 -16
- package/dist/macros/image/index.js +36 -33
- package/dist/macros/image/index.js.map +1 -1
- package/dist/macros/image/types.d.ts +38 -0
- package/dist/macros/image/types.js +15 -0
- package/dist/macros/image/types.js.map +1 -0
- package/dist/macros/include/index.d.ts +1 -6
- package/dist/macros/include/index.js +4 -7
- package/dist/macros/include/index.js.map +1 -1
- package/dist/macros/include/types.d.ts +31 -0
- package/dist/macros/include/types.js +15 -0
- package/dist/macros/include/types.js.map +1 -0
- package/dist/macros/percentage/index.d.ts +0 -6
- package/dist/macros/percentage/index.js.map +1 -1
- package/dist/macros/percentage/types.d.ts +31 -0
- package/dist/macros/percentage/types.js +15 -0
- package/dist/macros/percentage/types.js.map +1 -0
- package/dist/macros/report/index.d.ts +0 -3
- package/dist/macros/report/index.js.map +1 -1
- package/dist/macros/report/types.d.ts +19 -0
- package/dist/macros/report/types.js +15 -0
- package/dist/macros/report/types.js.map +1 -0
- package/dist/macros/scoreCard/index.d.ts +0 -6
- package/dist/macros/scoreCard/index.js.map +1 -1
- package/dist/macros/scoreCard/types.d.ts +31 -0
- package/dist/macros/scoreCard/types.js +15 -0
- package/dist/macros/scoreCard/types.js.map +1 -0
- package/dist/macros/types.d.ts +25 -0
- package/dist/macros/types.js +2 -0
- package/dist/macros/types.js.map +1 -0
- package/dist/macros/vega/index.d.ts +0 -4
- package/dist/macros/vega/index.js.map +1 -1
- package/dist/macros/vega/types.d.ts +20 -0
- package/dist/macros/vega/types.js +2 -0
- package/dist/macros/vega/types.js.map +1 -0
- package/dist/macros/vegalite/index.d.ts +0 -4
- package/dist/macros/vegalite/index.js.map +1 -1
- package/dist/macros/vegalite/types.d.ts +20 -0
- package/dist/macros/vegalite/types.js +15 -0
- package/dist/macros/vegalite/types.js.map +1 -0
- package/dist/macros/xref/index.d.ts +0 -3
- package/dist/macros/xref/index.js +5 -14
- package/dist/macros/xref/index.js.map +1 -1
- package/dist/macros/xref/types.d.ts +19 -0
- package/dist/macros/xref/types.js +15 -0
- package/dist/macros/xref/types.js.map +1 -0
- package/dist/module-manager.js +4 -4
- package/dist/module-manager.js.map +1 -1
- package/dist/project-settings.js.map +1 -1
- package/dist/resources/calculation-resource.d.ts +4 -32
- package/dist/resources/calculation-resource.js +0 -55
- package/dist/resources/calculation-resource.js.map +1 -1
- package/dist/resources/card-type-resource.d.ts +4 -21
- package/dist/resources/card-type-resource.js +13 -44
- package/dist/resources/card-type-resource.js.map +1 -1
- package/dist/resources/field-type-resource.d.ts +4 -21
- package/dist/resources/field-type-resource.js +14 -38
- package/dist/resources/field-type-resource.js.map +1 -1
- package/dist/resources/file-resource.d.ts +12 -29
- package/dist/resources/file-resource.js +19 -293
- package/dist/resources/file-resource.js.map +1 -1
- package/dist/resources/folder-resource.d.ts +31 -50
- package/dist/resources/folder-resource.js +68 -96
- package/dist/resources/folder-resource.js.map +1 -1
- package/dist/resources/graph-model-resource.d.ts +5 -33
- package/dist/resources/graph-model-resource.js +8 -61
- package/dist/resources/graph-model-resource.js.map +1 -1
- package/dist/resources/graph-view-resource.d.ts +5 -28
- package/dist/resources/graph-view-resource.js +6 -45
- package/dist/resources/graph-view-resource.js.map +1 -1
- package/dist/resources/link-type-resource.d.ts +4 -21
- package/dist/resources/link-type-resource.js +6 -31
- package/dist/resources/link-type-resource.js.map +1 -1
- package/dist/resources/report-resource.d.ts +5 -17
- package/dist/resources/report-resource.js +6 -44
- package/dist/resources/report-resource.js.map +1 -1
- package/dist/resources/resource-object.d.ts +58 -23
- package/dist/resources/resource-object.js +293 -24
- package/dist/resources/resource-object.js.map +1 -1
- package/dist/resources/template-resource.d.ts +4 -15
- package/dist/resources/template-resource.js +10 -25
- package/dist/resources/template-resource.js.map +1 -1
- package/dist/resources/workflow-resource.d.ts +4 -23
- package/dist/resources/workflow-resource.js +12 -38
- package/dist/resources/workflow-resource.js.map +1 -1
- package/dist/utils/card-utils.d.ts +69 -19
- package/dist/utils/card-utils.js +179 -30
- package/dist/utils/card-utils.js.map +1 -1
- package/dist/utils/clingo-facts.js +11 -3
- package/dist/utils/clingo-facts.js.map +1 -1
- package/dist/utils/clingo-parser.js +1 -1
- package/dist/utils/clingo-parser.js.map +1 -1
- package/dist/utils/constants.d.ts +2 -0
- package/dist/utils/constants.js +4 -0
- package/dist/utils/constants.js.map +1 -1
- package/dist/utils/csv.js +1 -1
- package/dist/utils/csv.js.map +1 -1
- package/package.json +5 -5
- package/src/card-metadata-updater.ts +3 -5
- package/src/command-handler.ts +11 -18
- package/src/command-manager.ts +4 -3
- package/src/commands/create.ts +17 -83
- package/src/commands/edit.ts +16 -132
- package/src/commands/export.ts +8 -29
- package/src/commands/import.ts +4 -6
- package/src/commands/move.ts +144 -179
- package/src/commands/remove.ts +9 -52
- package/src/commands/rename.ts +2 -7
- package/src/commands/show.ts +50 -143
- package/src/commands/transition.ts +30 -33
- package/src/commands/update.ts +27 -9
- package/src/commands/validate.ts +21 -36
- package/src/containers/card-container.ts +200 -360
- package/src/containers/project/calculation-engine.ts +21 -13
- package/src/containers/project/card-cache.ts +497 -0
- package/src/containers/project/resource-collector.ts +9 -1
- package/src/containers/project.ts +529 -327
- package/src/containers/template.ts +109 -127
- package/src/index.ts +1 -0
- package/src/interfaces/folder-content-interfaces.ts +7 -1
- package/src/interfaces/macros.ts +2 -0
- package/src/interfaces/project-interfaces.ts +7 -1
- package/src/interfaces/resource-interfaces.ts +12 -24
- package/src/macros/createCards/index.ts +1 -12
- package/src/macros/createCards/types.ts +46 -0
- package/src/macros/graph/index.ts +3 -7
- package/src/macros/graph/types.ts +24 -0
- package/src/macros/image/index.ts +50 -61
- package/src/macros/image/types.ts +39 -0
- package/src/macros/include/index.ts +6 -15
- package/src/macros/include/types.ts +32 -0
- package/src/macros/percentage/index.ts +1 -7
- package/src/macros/percentage/types.ts +32 -0
- package/src/macros/report/index.ts +1 -4
- package/src/macros/report/types.ts +20 -0
- package/src/macros/scoreCard/index.ts +1 -7
- package/src/macros/scoreCard/types.ts +32 -0
- package/src/macros/types.ts +48 -0
- package/src/macros/vega/index.ts +1 -4
- package/src/macros/vega/types.ts +21 -0
- package/src/macros/vegalite/index.ts +1 -4
- package/src/macros/vegalite/types.ts +22 -0
- package/src/macros/xref/index.ts +6 -20
- package/src/macros/xref/types.ts +20 -0
- package/src/module-manager.ts +5 -5
- package/src/project-settings.ts +1 -1
- package/src/resources/calculation-resource.ts +6 -76
- package/src/resources/card-type-resource.ts +24 -59
- package/src/resources/field-type-resource.ts +22 -51
- package/src/resources/file-resource.ts +27 -409
- package/src/resources/folder-resource.ts +98 -124
- package/src/resources/graph-model-resource.ts +17 -74
- package/src/resources/graph-view-resource.ts +14 -54
- package/src/resources/link-type-resource.ts +13 -40
- package/src/resources/report-resource.ts +17 -57
- package/src/resources/resource-object.ts +435 -32
- package/src/resources/template-resource.ts +16 -29
- package/src/resources/workflow-resource.ts +26 -50
- package/src/utils/card-utils.ts +217 -31
- package/src/utils/clingo-facts.ts +13 -3
- package/src/utils/clingo-parser.ts +1 -1
- package/src/utils/constants.ts +6 -0
- package/src/utils/csv.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-resource.js","sourceRoot":"","sources":["../../src/resources/file-resource.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"file-resource.js","sourceRoot":"","sources":["../../src/resources/file-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAOF,OAAO,EAKL,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAEL,YAAY,EACZ,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAIL,cAAc,EAEd,OAAO,EAEP,aAAa,EACb,YAAY,EAEZ,oBAAoB,EACpB,SAAS,GACV,CAAC;AAEF;;GAEG;AACH,MAAM,OAAgB,YAEpB,SAAQ,cAAwB;IAChC,YAAY,OAAgB,EAAE,IAAkB,EAAE,IAAwB;QACxE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IACD,oDAAoD;IAC1C,KAAK,CAAC,YAAY,CAAC,YAAoB;QAC/C,SAAS,aAAa,CAAC,UAAkB,EAAE,YAAoB;YAC7D,MAAM,KAAK,GAAG,UAAU,CAAC;YACzB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,CAAC;QAC1E,CAAC;QAED,iCAAiC;QACjC,MAAM,YAAY,GAAG,aAAa,CAChC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,EACrD,YAAY,CACb,CAAC;QACF,2DAA2D;QAC3D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACxE,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC/C,MAAM,cAAc,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC5D,OAAO,aAAa,CAAC,cAAc,CAAC,KAAK,EAAE,EAAE,YAAY,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,4BAA4B;QAC5B,MAAM,KAAK,GAAG,CAAC,YAAY,EAAE,GAAG,aAAa,CAAC,CAAC,MAAM,CACnD,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,EAAE,CACH,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,uCAAuC;IAC7B,0BAA0B,CAAC,IAAY,EAAE,QAAkB;QACnE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,IAAI,IAAI,IAAI,UAAU,EAAE;YACrE,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI;QACf,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -12,73 +12,53 @@
|
|
|
12
12
|
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
13
13
|
*/
|
|
14
14
|
import type { Card, Operation, ResourceName } from './file-resource.js';
|
|
15
|
-
import type {
|
|
15
|
+
import type { ResourceBaseMetadata } from '../interfaces/resource-interfaces.js';
|
|
16
|
+
import { type UpdateKey } from '../interfaces/resource-interfaces.js';
|
|
16
17
|
import type { ResourceFolderType } from '../interfaces/project-interfaces.js';
|
|
17
|
-
import type { Schema } from 'jsonschema';
|
|
18
18
|
import { DefaultContent, FileResource, Project, resourceNameToString, sortCards } from './file-resource.js';
|
|
19
|
+
import type { FolderResourceContent } from '../interfaces/folder-content-interfaces.js';
|
|
20
|
+
import type { ShowReturnType } from './resource-object.js';
|
|
21
|
+
import { ResourceObject } from './resource-object.js';
|
|
19
22
|
export { type Card, DefaultContent, FileResource, type Operation, Project, ResourceName, resourceNameToString, sortCards, };
|
|
20
23
|
/**
|
|
21
24
|
* Folder type resource class. These are resources that have their own folders for content.
|
|
22
25
|
*/
|
|
23
|
-
export declare class FolderResource extends
|
|
26
|
+
export declare abstract class FolderResource<T extends ResourceBaseMetadata, U extends FolderResourceContent> extends ResourceObject<T, U> {
|
|
24
27
|
protected internalFolder: string;
|
|
25
28
|
private contentFilesCache;
|
|
26
29
|
constructor(project: Project, name: ResourceName, type: ResourceFolderType);
|
|
27
30
|
private clearContentCache;
|
|
28
|
-
private isContentUpdateKey;
|
|
29
31
|
/**
|
|
30
32
|
* Creates a new folder type object. Base class writes the object to disk automatically.
|
|
31
33
|
* @param newContent Content for the type.
|
|
32
34
|
*/
|
|
33
|
-
protected create(newContent?:
|
|
34
|
-
/**
|
|
35
|
-
* Gets content of all files to properties.
|
|
36
|
-
* @returns object with property names as keys and file contents as values.
|
|
37
|
-
*/
|
|
38
|
-
contentData(): Promise<Record<string, string | Schema>>;
|
|
39
|
-
/**
|
|
40
|
-
* Returns content data.
|
|
41
|
-
*/
|
|
42
|
-
get data(): import("../interfaces/resource-interfaces.js").ResourceBaseMetadata | undefined;
|
|
43
|
-
/**
|
|
44
|
-
* Deletes file(s) from disk and clears out the memory resident object.
|
|
45
|
-
*/
|
|
46
|
-
protected delete(): Promise<void>;
|
|
47
|
-
protected get getType(): string;
|
|
48
|
-
protected get logger(): import("pino").Logger;
|
|
35
|
+
protected create(newContent?: T): Promise<void>;
|
|
49
36
|
/**
|
|
50
37
|
* Initialize the resource item.
|
|
51
38
|
*/
|
|
52
39
|
protected initialize(): void;
|
|
40
|
+
/**
|
|
41
|
+
* For handling name changes.
|
|
42
|
+
* @param previousName The previous name before the change
|
|
43
|
+
*/
|
|
44
|
+
protected abstract onNameChange?(previousName: string): Promise<void>;
|
|
53
45
|
/**
|
|
54
46
|
* Renames resource metadata file and renames memory resident object 'name'.
|
|
55
47
|
* @param newName New name for the resource.
|
|
56
48
|
*/
|
|
57
49
|
protected rename(newName: ResourceName): Promise<void>;
|
|
58
50
|
/**
|
|
59
|
-
* Shows metadata of the resource.
|
|
60
|
-
* @returns resource type's metadata.
|
|
61
|
-
*/
|
|
62
|
-
protected show(): Promise<ResourceContent>;
|
|
63
|
-
/**
|
|
64
|
-
* TODO: to be made protected - no direct access to files
|
|
65
51
|
* Shows the content of a file in the resource.
|
|
66
52
|
* @param fileName Name of the file to show.
|
|
67
53
|
* @param json Content is JSON file.
|
|
68
54
|
* @returns the content of the file.
|
|
69
55
|
*/
|
|
70
|
-
showFile(fileName: string, json?: boolean): Promise<string>;
|
|
56
|
+
protected showFile(fileName: string, json?: boolean): Promise<string>;
|
|
71
57
|
/**
|
|
72
|
-
* TODO: to be made protected - no direct access to files
|
|
73
58
|
* Shows all file names in the resource.
|
|
74
59
|
* @returns all file names in the resource.
|
|
75
60
|
*/
|
|
76
|
-
showFileNames(): Promise<string[]>;
|
|
77
|
-
/**
|
|
78
|
-
* Updates content files from a content object.
|
|
79
|
-
* @param contentFiles Object with file names as keys and file contents as values.
|
|
80
|
-
*/
|
|
81
|
-
protected updateContentFiles(contentFiles: Record<string, string>): Promise<void>;
|
|
61
|
+
protected showFileNames(): Promise<string[]>;
|
|
82
62
|
/**
|
|
83
63
|
* Updates a file in the resource.
|
|
84
64
|
* @param fileName The name of the file to update.
|
|
@@ -86,29 +66,30 @@ export declare class FolderResource extends FileResource {
|
|
|
86
66
|
*/
|
|
87
67
|
protected updateFile(fileName: string, changedContent: string): Promise<void>;
|
|
88
68
|
/**
|
|
89
|
-
*
|
|
90
|
-
* @param key Key to modify
|
|
91
|
-
* @param op Operation to perform on 'key'
|
|
92
|
-
* @throws if key is unknown.
|
|
69
|
+
* Writes resource content to disk.
|
|
93
70
|
*/
|
|
94
|
-
protected
|
|
71
|
+
protected write(): Promise<void>;
|
|
95
72
|
/**
|
|
96
|
-
*
|
|
97
|
-
* @
|
|
73
|
+
* Gets content of all files to properties.
|
|
74
|
+
* @returns object with property names as keys and file contents as values.
|
|
98
75
|
*/
|
|
99
|
-
|
|
76
|
+
contentData(): Promise<U>;
|
|
100
77
|
/**
|
|
101
|
-
*
|
|
102
|
-
* @
|
|
103
|
-
* @returns an array of card keys, and/or resource names where this resource is used.
|
|
78
|
+
* Deletes file and content folder from disk and clears out the memory resident object.
|
|
79
|
+
* @throws if resource is a module resource or does not exist or is used by other resources.
|
|
104
80
|
*/
|
|
105
|
-
|
|
81
|
+
delete(): Promise<void>;
|
|
106
82
|
/**
|
|
107
|
-
*
|
|
83
|
+
* Updates resource.
|
|
84
|
+
* @param updateKey Key to modify
|
|
85
|
+
* @param op Operation to perform on 'key'
|
|
86
|
+
* @throws if key is unknown.
|
|
108
87
|
*/
|
|
109
|
-
|
|
88
|
+
update<Type, K extends string>(updateKey: UpdateKey<K>, op: Operation<Type>): Promise<void>;
|
|
110
89
|
/**
|
|
111
|
-
*
|
|
90
|
+
* Shows metadata of the resource and content of the resource.
|
|
91
|
+
* @returns resource type's metadata and content.
|
|
92
|
+
* @throws if resource does not exist.
|
|
112
93
|
*/
|
|
113
|
-
|
|
94
|
+
show(): Promise<ShowReturnType<T, U>>;
|
|
114
95
|
}
|
|
@@ -13,30 +13,29 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { basename, dirname, join, normalize } from 'node:path';
|
|
15
15
|
import { mkdir, readdir, readFile, rename, rm } from 'node:fs/promises';
|
|
16
|
+
import { isContentKey, } from '../interfaces/resource-interfaces.js';
|
|
16
17
|
import { DefaultContent, FileResource, Project, resourceName, resourceNameToString, sortCards, } from './file-resource.js';
|
|
17
18
|
import { filename, propertyName, } from '../interfaces/folder-content-interfaces.js';
|
|
18
|
-
import { readJsonFile } from '../utils/json.js';
|
|
19
|
+
import { formatJson, readJsonFile } from '../utils/json.js';
|
|
19
20
|
import { VALID_FOLDER_RESOURCE_FILES } from '../utils/constants.js';
|
|
20
21
|
import { writeFileSafe } from '../utils/file-utils.js';
|
|
22
|
+
import { ResourceObject } from './resource-object.js';
|
|
21
23
|
export { DefaultContent, FileResource, Project, resourceNameToString, sortCards, };
|
|
22
24
|
/**
|
|
23
25
|
* Folder type resource class. These are resources that have their own folders for content.
|
|
24
26
|
*/
|
|
25
|
-
export class FolderResource extends
|
|
27
|
+
export class FolderResource extends ResourceObject {
|
|
26
28
|
internalFolder = '';
|
|
27
29
|
// Cache for content files to avoid repeated filesystem operations. Content is stored as string.
|
|
28
30
|
contentFilesCache = new Map();
|
|
29
31
|
constructor(project, name, type) {
|
|
30
32
|
super(project, name, type);
|
|
33
|
+
this.initialize();
|
|
31
34
|
}
|
|
32
35
|
// Clears the content files cache.
|
|
33
36
|
clearContentCache() {
|
|
34
37
|
this.contentFilesCache.clear();
|
|
35
38
|
}
|
|
36
|
-
// Type guard to check if a key is a ContentUpdateKey
|
|
37
|
-
isContentUpdateKey(key) {
|
|
38
|
-
return typeof key === 'object' && key.key === 'content' && 'subKey' in key;
|
|
39
|
-
}
|
|
40
39
|
/**
|
|
41
40
|
* Creates a new folder type object. Base class writes the object to disk automatically.
|
|
42
41
|
* @param newContent Content for the type.
|
|
@@ -45,44 +44,6 @@ export class FolderResource extends FileResource {
|
|
|
45
44
|
await super.create(newContent);
|
|
46
45
|
await mkdir(this.internalFolder, { recursive: true });
|
|
47
46
|
}
|
|
48
|
-
/**
|
|
49
|
-
* Gets content of all files to properties.
|
|
50
|
-
* @returns object with property names as keys and file contents as values.
|
|
51
|
-
*/
|
|
52
|
-
async contentData() {
|
|
53
|
-
const fileNames = await this.showFileNames();
|
|
54
|
-
const content = {};
|
|
55
|
-
for (const fileName of fileNames) {
|
|
56
|
-
const name = propertyName(fileName);
|
|
57
|
-
if (name) {
|
|
58
|
-
const JSONFile = name === 'schema';
|
|
59
|
-
content[name] = await this.showFile(fileName, JSONFile);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return content;
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Returns content data.
|
|
66
|
-
*/
|
|
67
|
-
get data() {
|
|
68
|
-
return super.data;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Deletes file(s) from disk and clears out the memory resident object.
|
|
72
|
-
*/
|
|
73
|
-
async delete() {
|
|
74
|
-
await super.delete();
|
|
75
|
-
await rm(this.internalFolder, { recursive: true, force: true });
|
|
76
|
-
this.clearContentCache();
|
|
77
|
-
}
|
|
78
|
-
// Get (resource folder) type name
|
|
79
|
-
get getType() {
|
|
80
|
-
return super.getType;
|
|
81
|
-
}
|
|
82
|
-
// Get logger instance
|
|
83
|
-
get logger() {
|
|
84
|
-
return super.getLogger(this.getType);
|
|
85
|
-
}
|
|
86
47
|
/**
|
|
87
48
|
* Initialize the resource item.
|
|
88
49
|
*/
|
|
@@ -98,14 +59,6 @@ export class FolderResource extends FileResource {
|
|
|
98
59
|
return super.rename(newName);
|
|
99
60
|
}
|
|
100
61
|
/**
|
|
101
|
-
* Shows metadata of the resource.
|
|
102
|
-
* @returns resource type's metadata.
|
|
103
|
-
*/
|
|
104
|
-
async show() {
|
|
105
|
-
return super.show();
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* TODO: to be made protected - no direct access to files
|
|
109
62
|
* Shows the content of a file in the resource.
|
|
110
63
|
* @param fileName Name of the file to show.
|
|
111
64
|
* @param json Content is JSON file.
|
|
@@ -123,12 +76,11 @@ export class FolderResource extends FileResource {
|
|
|
123
76
|
? await readJsonFile(filePath)
|
|
124
77
|
: await readFile(filePath, 'utf8');
|
|
125
78
|
// Update cache
|
|
126
|
-
const contentStr = typeof content === 'string' ? content :
|
|
79
|
+
const contentStr = typeof content === 'string' ? content : formatJson(content);
|
|
127
80
|
this.contentFilesCache.set(fileName, contentStr);
|
|
128
81
|
return json ? content : contentStr;
|
|
129
82
|
}
|
|
130
83
|
/**
|
|
131
|
-
* TODO: to be made protected - no direct access to files
|
|
132
84
|
* Shows all file names in the resource.
|
|
133
85
|
* @returns all file names in the resource.
|
|
134
86
|
*/
|
|
@@ -146,15 +98,6 @@ export class FolderResource extends FileResource {
|
|
|
146
98
|
}
|
|
147
99
|
return validFiles;
|
|
148
100
|
}
|
|
149
|
-
/**
|
|
150
|
-
* Updates content files from a content object.
|
|
151
|
-
* @param contentFiles Object with file names as keys and file contents as values.
|
|
152
|
-
*/
|
|
153
|
-
async updateContentFiles(contentFiles) {
|
|
154
|
-
for (const [fileName, fileContent] of Object.entries(contentFiles)) {
|
|
155
|
-
await this.updateFile(fileName, fileContent);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
101
|
/**
|
|
159
102
|
* Updates a file in the resource.
|
|
160
103
|
* @param fileName The name of the file to update.
|
|
@@ -174,28 +117,73 @@ export class FolderResource extends FileResource {
|
|
|
174
117
|
}
|
|
175
118
|
// check if the file is allow-listed
|
|
176
119
|
if (!VALID_FOLDER_RESOURCE_FILES.includes(fileName)) {
|
|
177
|
-
throw new Error(`File '${fileName}' is not allowed`);
|
|
120
|
+
throw new Error(`File '${fileName}' is not allowed to be updated`);
|
|
178
121
|
}
|
|
179
122
|
await writeFileSafe(filePath, changedContent, { flag: 'w' });
|
|
180
123
|
// Update cache with new content
|
|
181
124
|
this.contentFilesCache.set(fileName, changedContent);
|
|
182
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Writes resource content to disk.
|
|
128
|
+
*/
|
|
129
|
+
async write() {
|
|
130
|
+
const folderName = basename(this.internalFolder);
|
|
131
|
+
// Check if "name" has changed. Changing "name" means renaming the file.
|
|
132
|
+
const nameInContent = resourceName(this.content.name).identifier;
|
|
133
|
+
if (folderName !== nameInContent) {
|
|
134
|
+
const newFolderName = join(this.resourceFolder, nameInContent);
|
|
135
|
+
await rename(this.internalFolder, newFolderName);
|
|
136
|
+
this.internalFolder = newFolderName;
|
|
137
|
+
}
|
|
138
|
+
return super.write();
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Gets content of all files to properties.
|
|
142
|
+
* @returns object with property names as keys and file contents as values.
|
|
143
|
+
*/
|
|
144
|
+
async contentData() {
|
|
145
|
+
const fileNames = await this.showFileNames();
|
|
146
|
+
const content = {};
|
|
147
|
+
for (const fileName of fileNames) {
|
|
148
|
+
const name = propertyName(fileName);
|
|
149
|
+
if (name) {
|
|
150
|
+
const JSONFile = name === 'schema';
|
|
151
|
+
content[name] = await this.showFile(fileName, JSONFile);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// TODO: Instead of casting, validate that content matches U
|
|
155
|
+
// This requires a runtime schema for U to be defined(via an abstract variable)
|
|
156
|
+
return content;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Deletes file and content folder from disk and clears out the memory resident object.
|
|
160
|
+
* @throws if resource is a module resource or does not exist or is used by other resources.
|
|
161
|
+
*/
|
|
162
|
+
async delete() {
|
|
163
|
+
await super.delete();
|
|
164
|
+
await rm(this.internalFolder, { recursive: true, force: true });
|
|
165
|
+
this.clearContentCache();
|
|
166
|
+
}
|
|
183
167
|
/**
|
|
184
168
|
* Updates resource.
|
|
185
|
-
* @param
|
|
169
|
+
* @param updateKey Key to modify
|
|
186
170
|
* @param op Operation to perform on 'key'
|
|
187
171
|
* @throws if key is unknown.
|
|
188
172
|
*/
|
|
189
|
-
async update(
|
|
190
|
-
|
|
191
|
-
|
|
173
|
+
async update(updateKey, op) {
|
|
174
|
+
const { key } = updateKey;
|
|
175
|
+
if (isContentKey(updateKey)) {
|
|
176
|
+
const fileName = filename(updateKey.subKey);
|
|
192
177
|
const fileContent = super.handleScalar(op);
|
|
193
|
-
|
|
178
|
+
const fileContentString = typeof fileContent === 'string'
|
|
179
|
+
? fileContent
|
|
180
|
+
: formatJson(fileContent); // TODO: Fix operation types. In practice, content files are either strings or objects
|
|
181
|
+
await this.updateFile(fileName, fileContentString);
|
|
194
182
|
return;
|
|
195
183
|
}
|
|
196
184
|
const nameChange = key === 'name';
|
|
197
185
|
const existingName = this.content.name;
|
|
198
|
-
await super.update(
|
|
186
|
+
await super.update(updateKey, op);
|
|
199
187
|
const content = structuredClone(this.content);
|
|
200
188
|
if (key === 'name') {
|
|
201
189
|
content.name = super.handleScalar(op);
|
|
@@ -209,38 +197,22 @@ export class FolderResource extends FileResource {
|
|
|
209
197
|
else {
|
|
210
198
|
throw new Error(`Unknown property '${key}' for folder resource`);
|
|
211
199
|
}
|
|
212
|
-
await super.postUpdate(content,
|
|
200
|
+
await super.postUpdate(content, updateKey, op);
|
|
213
201
|
if (nameChange) {
|
|
214
202
|
await this.onNameChange?.(existingName);
|
|
215
203
|
}
|
|
216
204
|
}
|
|
217
205
|
/**
|
|
218
|
-
*
|
|
219
|
-
* @
|
|
220
|
-
* @
|
|
221
|
-
*/
|
|
222
|
-
async usage(cards) {
|
|
223
|
-
return super.usage(cards);
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Writes resource content to disk.
|
|
206
|
+
* Shows metadata of the resource and content of the resource.
|
|
207
|
+
* @returns resource type's metadata and content.
|
|
208
|
+
* @throws if resource does not exist.
|
|
227
209
|
*/
|
|
228
|
-
async
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
await rename(this.internalFolder, newFolderName);
|
|
235
|
-
this.internalFolder = newFolderName;
|
|
236
|
-
}
|
|
237
|
-
return super.write();
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Validates the resource. If object is invalid, throws.
|
|
241
|
-
*/
|
|
242
|
-
async validate(content) {
|
|
243
|
-
return super.validate(content);
|
|
210
|
+
async show() {
|
|
211
|
+
this.assertResourceExists();
|
|
212
|
+
return {
|
|
213
|
+
...this.content,
|
|
214
|
+
content: await this.contentData(),
|
|
215
|
+
};
|
|
244
216
|
}
|
|
245
217
|
}
|
|
246
218
|
//# sourceMappingURL=folder-resource.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folder-resource.js","sourceRoot":"","sources":["../../src/resources/folder-resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE;AAEF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"folder-resource.js","sourceRoot":"","sources":["../../src/resources/folder-resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import type { Card, Operation, Project, ResourceName } from './folder-resource.js';
|
|
15
15
|
import { FolderResource } from './folder-resource.js';
|
|
16
|
-
import type {
|
|
16
|
+
import type { GraphModelMetadata, UpdateKey } from '../interfaces/resource-interfaces.js';
|
|
17
|
+
import type { GraphModelContent } from '../interfaces/folder-content-interfaces.js';
|
|
17
18
|
/**
|
|
18
19
|
* Graph model resource class.
|
|
19
20
|
*/
|
|
20
|
-
export declare class GraphModelResource extends FolderResource {
|
|
21
|
+
export declare class GraphModelResource extends FolderResource<GraphModelMetadata, GraphModelContent> {
|
|
21
22
|
constructor(project: Project, name: ResourceName);
|
|
22
23
|
/**
|
|
23
24
|
* Handle name changes for graph models
|
|
@@ -30,35 +31,17 @@ export declare class GraphModelResource extends FolderResource {
|
|
|
30
31
|
* @throws if 'newContent' is not valid.
|
|
31
32
|
*/
|
|
32
33
|
create(newContent?: GraphModelMetadata): Promise<void>;
|
|
33
|
-
/**
|
|
34
|
-
* Returns resource content.
|
|
35
|
-
*/
|
|
36
|
-
get data(): GraphModel;
|
|
37
|
-
/**
|
|
38
|
-
* Deletes file and folder that this resource is based on.
|
|
39
|
-
*/
|
|
40
|
-
delete(): Promise<void>;
|
|
41
|
-
/**
|
|
42
|
-
* Returns calculation file that this graph model has.
|
|
43
|
-
* @returns calculation file name that this graph model has.
|
|
44
|
-
*/
|
|
45
|
-
calculationFile(nameOnly?: boolean): Promise<string>;
|
|
46
34
|
/**
|
|
47
35
|
* Renames the object and the file.
|
|
48
36
|
* @param newName New name for the resource.
|
|
49
37
|
*/
|
|
50
38
|
rename(newName: ResourceName): Promise<void>;
|
|
51
|
-
/**
|
|
52
|
-
* Shows metadata of the resource.
|
|
53
|
-
* @returns graph model metadata.
|
|
54
|
-
*/
|
|
55
|
-
show(): Promise<GraphModel>;
|
|
56
39
|
/**
|
|
57
40
|
* Updates graph model resource.
|
|
58
|
-
* @param
|
|
41
|
+
* @param updateKey Key to modify
|
|
59
42
|
* @param op Operation to perform on 'key'
|
|
60
43
|
*/
|
|
61
|
-
update<Type>(
|
|
44
|
+
update<Type, K extends string>(updateKey: UpdateKey<K>, op: Operation<Type>): Promise<void>;
|
|
62
45
|
/**
|
|
63
46
|
* List where this resource is used.
|
|
64
47
|
* Always returns card key references first, then calculation references.
|
|
@@ -67,15 +50,4 @@ export declare class GraphModelResource extends FolderResource {
|
|
|
67
50
|
* @returns array of card keys and calculation filenames that refer this resource.
|
|
68
51
|
*/
|
|
69
52
|
usage(cards?: Card[]): Promise<string[]>;
|
|
70
|
-
/**
|
|
71
|
-
* Validates graphModel.
|
|
72
|
-
* @throws when there are validation errors.
|
|
73
|
-
* @param content Content to be validated.
|
|
74
|
-
* @note If content is not provided, base class validation will use resource's current content.
|
|
75
|
-
*/
|
|
76
|
-
validate(content?: object): Promise<void>;
|
|
77
|
-
/**
|
|
78
|
-
* Create the graph model's folder and calculation file.
|
|
79
|
-
*/
|
|
80
|
-
write(): Promise<void>;
|
|
81
53
|
}
|
|
@@ -11,8 +11,7 @@
|
|
|
11
11
|
You should have received a copy of the GNU Affero General Public
|
|
12
12
|
License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
13
13
|
*/
|
|
14
|
-
import {
|
|
15
|
-
import { extname, join } from 'node:path';
|
|
14
|
+
import { join } from 'node:path';
|
|
16
15
|
import { DefaultContent, FolderResource, resourceNameToString, sortCards, } from './folder-resource.js';
|
|
17
16
|
import { writeFileSafe } from '../utils/file-utils.js';
|
|
18
17
|
/**
|
|
@@ -23,7 +22,6 @@ export class GraphModelResource extends FolderResource {
|
|
|
23
22
|
super(project, name, 'graphModels');
|
|
24
23
|
this.contentSchemaId = 'graphModelSchema';
|
|
25
24
|
this.contentSchema = super.contentSchemaContent(this.contentSchemaId);
|
|
26
|
-
this.initialize();
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
27
|
* Handle name changes for graph models
|
|
@@ -32,7 +30,7 @@ export class GraphModelResource extends FolderResource {
|
|
|
32
30
|
async onNameChange(existingName) {
|
|
33
31
|
await Promise.all([
|
|
34
32
|
super.updateHandleBars(existingName, this.content.name, [
|
|
35
|
-
|
|
33
|
+
join(this.internalFolder, 'model.lp'),
|
|
36
34
|
]),
|
|
37
35
|
super.updateCalculations(existingName, this.content.name),
|
|
38
36
|
]);
|
|
@@ -58,31 +56,6 @@ export class GraphModelResource extends FolderResource {
|
|
|
58
56
|
flag: 'wx',
|
|
59
57
|
});
|
|
60
58
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Returns resource content.
|
|
63
|
-
*/
|
|
64
|
-
get data() {
|
|
65
|
-
return super.data;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* Deletes file and folder that this resource is based on.
|
|
69
|
-
*/
|
|
70
|
-
async delete() {
|
|
71
|
-
return super.delete();
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Returns calculation file that this graph model has.
|
|
75
|
-
* @returns calculation file name that this graph model has.
|
|
76
|
-
*/
|
|
77
|
-
async calculationFile(nameOnly = false) {
|
|
78
|
-
return (await readdir(this.internalFolder, {
|
|
79
|
-
withFileTypes: true,
|
|
80
|
-
recursive: true,
|
|
81
|
-
}))
|
|
82
|
-
.filter((dirent) => dirent.isFile() && extname(dirent.name) === '.lp')
|
|
83
|
-
.map((item) => (nameOnly ? item.name : join(item.parentPath, item.name)))
|
|
84
|
-
.at(0);
|
|
85
|
-
}
|
|
86
59
|
/**
|
|
87
60
|
* Renames the object and the file.
|
|
88
61
|
* @param newName New name for the resource.
|
|
@@ -92,30 +65,19 @@ export class GraphModelResource extends FolderResource {
|
|
|
92
65
|
await super.rename(newName);
|
|
93
66
|
return this.onNameChange(existingName);
|
|
94
67
|
}
|
|
95
|
-
/**
|
|
96
|
-
* Shows metadata of the resource.
|
|
97
|
-
* @returns graph model metadata.
|
|
98
|
-
*/
|
|
99
|
-
async show() {
|
|
100
|
-
const baseData = (await super.show());
|
|
101
|
-
return {
|
|
102
|
-
...baseData,
|
|
103
|
-
content: (await super.contentData()),
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
68
|
/**
|
|
107
69
|
* Updates graph model resource.
|
|
108
|
-
* @param
|
|
70
|
+
* @param updateKey Key to modify
|
|
109
71
|
* @param op Operation to perform on 'key'
|
|
110
72
|
*/
|
|
111
|
-
async update(
|
|
112
|
-
if (key === 'category') {
|
|
73
|
+
async update(updateKey, op) {
|
|
74
|
+
if (updateKey.key === 'category') {
|
|
113
75
|
const content = structuredClone(this.content);
|
|
114
76
|
content.category = super.handleScalar(op);
|
|
115
|
-
await super.postUpdate(content,
|
|
77
|
+
await super.postUpdate(content, updateKey, op);
|
|
116
78
|
return;
|
|
117
79
|
}
|
|
118
|
-
await super.update(
|
|
80
|
+
await super.update(updateKey, op);
|
|
119
81
|
}
|
|
120
82
|
/**
|
|
121
83
|
* List where this resource is used.
|
|
@@ -125,27 +87,12 @@ export class GraphModelResource extends FolderResource {
|
|
|
125
87
|
* @returns array of card keys and calculation filenames that refer this resource.
|
|
126
88
|
*/
|
|
127
89
|
async usage(cards) {
|
|
128
|
-
const allCards = cards ??
|
|
90
|
+
const allCards = cards ?? super.cards();
|
|
129
91
|
const [relevantCards, calculations] = await Promise.all([
|
|
130
92
|
super.usage(allCards),
|
|
131
93
|
super.calculations(),
|
|
132
94
|
]);
|
|
133
95
|
return [...relevantCards.sort(sortCards), ...calculations];
|
|
134
96
|
}
|
|
135
|
-
/**
|
|
136
|
-
* Validates graphModel.
|
|
137
|
-
* @throws when there are validation errors.
|
|
138
|
-
* @param content Content to be validated.
|
|
139
|
-
* @note If content is not provided, base class validation will use resource's current content.
|
|
140
|
-
*/
|
|
141
|
-
async validate(content) {
|
|
142
|
-
return super.validate(content);
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Create the graph model's folder and calculation file.
|
|
146
|
-
*/
|
|
147
|
-
async write() {
|
|
148
|
-
await super.write();
|
|
149
|
-
}
|
|
150
97
|
}
|
|
151
98
|
//# sourceMappingURL=graph-model-resource.js.map
|