@powerhousedao/codegen 4.1.0-dev.1 → 4.1.0-dev.100

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 (180) hide show
  1. package/README.md +0 -1
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +10 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +17 -0
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +16 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +2 -2
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +8 -2
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +69 -54
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +93 -0
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +10 -5
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +6 -7
  15. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +20 -8
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +19 -26
  17. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/actions.esm.t +3 -3
  18. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +1 -1
  19. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +2 -2
  20. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +6 -10
  21. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +52 -27
  22. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +21 -20
  23. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +64 -51
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +4 -10
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +39 -28
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +138 -223
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +95 -72
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +10 -0
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +7 -71
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +5 -10
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +12 -0
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +103 -18
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/hooks.esm.t +16 -0
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +5 -12
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +28 -15
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +5 -4
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +5 -9
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
  40. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
  41. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +8 -6
  42. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +1 -1
  43. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +1 -1
  44. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +6 -5
  45. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +6 -13
  46. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
  47. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
  48. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +8 -9
  49. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +2 -2
  50. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +1 -1
  51. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +2 -2
  52. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +10 -2
  53. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +5 -36
  54. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
  55. package/dist/src/codegen/generate.d.ts +33 -0
  56. package/dist/src/codegen/generate.d.ts.map +1 -0
  57. package/dist/src/codegen/generate.js +202 -0
  58. package/dist/src/codegen/generate.js.map +1 -0
  59. package/dist/src/codegen/graphql.d.ts +7 -3
  60. package/dist/src/codegen/graphql.d.ts.map +1 -1
  61. package/dist/src/codegen/graphql.js +29 -6
  62. package/dist/src/codegen/graphql.js.map +1 -1
  63. package/dist/src/codegen/hygen.d.ts +19 -11
  64. package/dist/src/codegen/hygen.d.ts.map +1 -1
  65. package/dist/src/codegen/hygen.js +71 -19
  66. package/dist/src/codegen/hygen.js.map +1 -1
  67. package/dist/src/codegen/index.d.ts +6 -33
  68. package/dist/src/codegen/index.d.ts.map +1 -1
  69. package/dist/src/codegen/index.js +6 -172
  70. package/dist/src/codegen/index.js.map +1 -1
  71. package/dist/src/codegen/types.d.ts +9 -0
  72. package/dist/src/codegen/types.d.ts.map +1 -0
  73. package/dist/src/codegen/types.js +2 -0
  74. package/dist/src/codegen/types.js.map +1 -0
  75. package/dist/src/codegen/utils.d.ts +5 -2
  76. package/dist/src/codegen/utils.d.ts.map +1 -1
  77. package/dist/src/codegen/utils.js +42 -4
  78. package/dist/src/codegen/utils.js.map +1 -1
  79. package/dist/src/create-lib/checkout-project.d.ts +13 -0
  80. package/dist/src/create-lib/checkout-project.d.ts.map +1 -0
  81. package/dist/src/create-lib/checkout-project.js +47 -0
  82. package/dist/src/create-lib/checkout-project.js.map +1 -0
  83. package/dist/src/create-lib/create-project.d.ts +9 -5
  84. package/dist/src/create-lib/create-project.d.ts.map +1 -1
  85. package/dist/src/create-lib/create-project.js +37 -30
  86. package/dist/src/create-lib/create-project.js.map +1 -1
  87. package/dist/src/create-lib/feature-flags.d.ts +4 -0
  88. package/dist/src/create-lib/feature-flags.d.ts.map +1 -0
  89. package/dist/src/create-lib/feature-flags.js +4 -0
  90. package/dist/src/create-lib/feature-flags.js.map +1 -0
  91. package/dist/src/create-lib/index.d.ts +1 -0
  92. package/dist/src/create-lib/index.d.ts.map +1 -1
  93. package/dist/src/create-lib/index.js +1 -0
  94. package/dist/src/create-lib/index.js.map +1 -1
  95. package/dist/src/{utils/package-manager.d.ts → create-lib/utils.d.ts} +3 -1
  96. package/dist/src/create-lib/utils.d.ts.map +1 -0
  97. package/dist/src/{utils/package-manager.js → create-lib/utils.js} +12 -1
  98. package/dist/src/create-lib/utils.js.map +1 -0
  99. package/dist/src/index.d.ts +5 -0
  100. package/dist/src/index.d.ts.map +1 -0
  101. package/dist/src/index.js +5 -0
  102. package/dist/src/index.js.map +1 -0
  103. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +9 -0
  104. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -0
  105. package/dist/src/ts-morph-generator/core/FileGenerator.js +9 -0
  106. package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -0
  107. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +38 -0
  108. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -0
  109. package/dist/src/ts-morph-generator/core/GenerationContext.js +2 -0
  110. package/dist/src/ts-morph-generator/core/GenerationContext.js.map +1 -0
  111. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +12 -0
  112. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
  113. package/dist/src/ts-morph-generator/core/ReducerGenerator.js +140 -0
  114. package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
  115. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +19 -0
  116. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -0
  117. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +113 -0
  118. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -0
  119. package/dist/src/ts-morph-generator/index.d.ts +4 -0
  120. package/dist/src/ts-morph-generator/index.d.ts.map +1 -0
  121. package/dist/src/ts-morph-generator/index.js +4 -0
  122. package/dist/src/ts-morph-generator/index.js.map +1 -0
  123. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +13 -0
  124. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -0
  125. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js +45 -0
  126. package/dist/src/ts-morph-generator/utilities/DirectoryManager.js.map +1 -0
  127. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +14 -0
  128. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -0
  129. package/dist/src/ts-morph-generator/utilities/ImportManager.js +40 -0
  130. package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +1 -0
  131. package/dist/src/ts-morph-generator/utilities/index.d.ts +3 -0
  132. package/dist/src/ts-morph-generator/utilities/index.d.ts.map +1 -0
  133. package/dist/src/ts-morph-generator/utilities/index.js +3 -0
  134. package/dist/src/ts-morph-generator/utilities/index.js.map +1 -0
  135. package/dist/src/utils/index.d.ts +0 -1
  136. package/dist/src/utils/index.d.ts.map +1 -1
  137. package/dist/src/utils/index.js +0 -1
  138. package/dist/src/utils/index.js.map +1 -1
  139. package/dist/src/utils/validation.d.ts +6 -6
  140. package/dist/src/utils/validation.d.ts.map +1 -1
  141. package/dist/src/utils/validation.js +2 -2
  142. package/dist/src/utils/validation.js.map +1 -1
  143. package/dist/tsconfig.lib.tsbuildinfo +1 -1
  144. package/package.json +26 -27
  145. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
  146. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
  147. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
  148. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
  149. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customReducers.esm.t +0 -20
  150. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -24
  151. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
  152. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
  153. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -37
  154. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
  155. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
  156. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
  157. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -124
  158. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +0 -44
  159. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +0 -96
  160. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +0 -35
  161. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +0 -35
  162. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
  163. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -20
  164. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
  165. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
  166. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
  167. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
  168. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
  169. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
  170. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
  171. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
  172. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
  173. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
  174. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
  175. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
  176. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
  177. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
  178. package/dist/src/utils/package-manager.d.ts.map +0 -1
  179. package/dist/src/utils/package-manager.js.map +0 -1
  180. package/dist/tsconfig.hygen.tsbuildinfo +0 -1
@@ -0,0 +1,113 @@
1
+ import { DirectoryManager, ImportManager } from "@powerhousedao/codegen";
2
+ import fs from "fs/promises";
3
+ import { Project } from "ts-morph";
4
+ import { ReducerGenerator } from "./ReducerGenerator.js";
5
+ export class TSMorphCodeGenerator {
6
+ rootDir;
7
+ docModels;
8
+ project = new Project();
9
+ generators = new Map();
10
+ directories = {
11
+ documentModelDir: "document-model",
12
+ editorsDir: "editors",
13
+ processorsDir: "processors",
14
+ subgraphsDir: "subgraphs",
15
+ };
16
+ forceUpdate = false;
17
+ constructor(rootDir, docModels, options = { directories: {}, forceUpdate: false }) {
18
+ this.rootDir = rootDir;
19
+ this.docModels = docModels;
20
+ this.directories = {
21
+ ...this.directories,
22
+ ...options.directories,
23
+ };
24
+ this.forceUpdate = options.forceUpdate ?? false;
25
+ this.setupGenerators();
26
+ }
27
+ setupGenerators() {
28
+ const importManager = new ImportManager();
29
+ const directoryManager = new DirectoryManager(this.directories);
30
+ // Register all generators
31
+ this.generators.set("reducers", new ReducerGenerator(importManager, directoryManager));
32
+ }
33
+ // Generate specific file types
34
+ async generateReducers() {
35
+ await this.generateFileType("reducers");
36
+ }
37
+ // Generate everything
38
+ async generateAll() {
39
+ for (const [type] of this.generators) {
40
+ await this.generateFileType(type);
41
+ }
42
+ }
43
+ async generateFileType(type) {
44
+ const generator = this.generators.get(type);
45
+ if (!generator) {
46
+ throw new Error(`No generator registered for type: ${type}`);
47
+ }
48
+ await this.setupProject();
49
+ for (const docModel of this.docModels) {
50
+ const latestSpec = docModel.specifications[docModel.specifications.length - 1];
51
+ for (const module of latestSpec.modules) {
52
+ const context = this.createGenerationContext(docModel, module, this.forceUpdate);
53
+ await generator.generate(context);
54
+ }
55
+ }
56
+ }
57
+ async setupProject() {
58
+ // Only load files from configured directories
59
+ const sourcePaths = [];
60
+ if (this.directories.documentModelDir) {
61
+ const dirPath = `${this.rootDir}/${this.directories.documentModelDir}`;
62
+ await this.ensureDirectoryExists(dirPath);
63
+ sourcePaths.push(`${dirPath}/**/*.ts`);
64
+ }
65
+ if (this.directories.editorsDir) {
66
+ const dirPath = `${this.rootDir}/${this.directories.editorsDir}`;
67
+ await this.ensureDirectoryExists(dirPath);
68
+ sourcePaths.push(`${dirPath}/**/*.ts`);
69
+ }
70
+ if (this.directories.processorsDir) {
71
+ const dirPath = `${this.rootDir}/${this.directories.processorsDir}`;
72
+ await this.ensureDirectoryExists(dirPath);
73
+ sourcePaths.push(`${dirPath}/**/*.ts`);
74
+ }
75
+ if (this.directories.subgraphsDir) {
76
+ const dirPath = `${this.rootDir}/${this.directories.subgraphsDir}`;
77
+ await this.ensureDirectoryExists(dirPath);
78
+ sourcePaths.push(`${dirPath}/**/*.ts`);
79
+ }
80
+ // Exclude node_modules from all paths
81
+ sourcePaths.push(`!${this.rootDir}/**/node_modules/**`);
82
+ if (sourcePaths.length > 0) {
83
+ this.project.addSourceFilesAtPaths(sourcePaths);
84
+ }
85
+ }
86
+ createGenerationContext(docModel, module, forceUpdate = false) {
87
+ const operations = module.operations.map((op) => ({
88
+ ...op,
89
+ hasInput: op.schema !== null,
90
+ hasAttachment: op.schema?.includes(": Attachment"),
91
+ scope: op.scope || "global",
92
+ state: op.scope === "global" ? "" : op.scope,
93
+ }));
94
+ return {
95
+ rootDir: this.rootDir,
96
+ docModel,
97
+ module,
98
+ project: this.project,
99
+ operations,
100
+ forceUpdate,
101
+ };
102
+ }
103
+ async ensureDirectoryExists(dirPath) {
104
+ try {
105
+ await fs.mkdir(dirPath, { recursive: true });
106
+ }
107
+ catch (err) {
108
+ console.error(`Failed to create directory: ${dirPath}`, err);
109
+ throw err;
110
+ }
111
+ }
112
+ }
113
+ //# sourceMappingURL=TSMorphCodeGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TSMorphCodeGenerator.js","sourceRoot":"","sources":["../../../../src/ts-morph-generator/core/TSMorphCodeGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from "./core/GenerationContext.js";
2
+ export { TSMorphCodeGenerator } from "./core/TSMorphCodeGenerator.js";
3
+ export * from "./utilities/index.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ts-morph-generator/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./core/GenerationContext.js";
2
+ export { TSMorphCodeGenerator } from "./core/TSMorphCodeGenerator.js";
3
+ export * from "./utilities/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ts-morph-generator/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { Project, SourceFile } from "ts-morph";
2
+ import type { PHProjectDirectories } from "@powerhousedao/codegen";
3
+ export declare class DirectoryManager {
4
+ private directories;
5
+ constructor(directories?: PHProjectDirectories);
6
+ ensureExists(dirPath: string): Promise<void>;
7
+ getReducerPath(rootDir: string, docModelName: string, moduleName: string): string;
8
+ getActionsPath(rootDir: string, docModelName: string, moduleName: string): string;
9
+ getComponentPath(rootDir: string, docModelName: string, componentName: string): string;
10
+ getTypesPath(rootDir: string, docModelName: string): string;
11
+ createSourceFile(project: Project, filePath: string): Promise<SourceFile>;
12
+ }
13
+ //# sourceMappingURL=DirectoryManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectoryManager.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-generator/utilities/DirectoryManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAKjB;gBAEU,WAAW,GAAE,oBAAyB;IAM5C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlD,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM;IAWT,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,MAAM;IAWT,gBAAgB,CACd,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,MAAM;IAWT,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAUrD,gBAAgB,CACpB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC;CAOvB"}
@@ -0,0 +1,45 @@
1
+ import { paramCase, pascalCase } from "change-case";
2
+ import fs from "fs/promises";
3
+ import path from "path";
4
+ export class DirectoryManager {
5
+ directories = {
6
+ documentModelDir: "document-model",
7
+ editorsDir: "editors",
8
+ processorsDir: "processors",
9
+ subgraphsDir: "subgraphs",
10
+ };
11
+ constructor(directories = {}) {
12
+ this.directories = {
13
+ ...this.directories,
14
+ ...directories,
15
+ };
16
+ }
17
+ async ensureExists(dirPath) {
18
+ try {
19
+ await fs.mkdir(dirPath, { recursive: true });
20
+ }
21
+ catch (err) {
22
+ console.error(`Failed to create directory: ${dirPath}`, err);
23
+ throw err;
24
+ }
25
+ }
26
+ // Path builders for different file types
27
+ getReducerPath(rootDir, docModelName, moduleName) {
28
+ return path.join(rootDir, this.directories.documentModelDir, paramCase(docModelName), "src", "reducers", `${paramCase(moduleName)}.ts`);
29
+ }
30
+ getActionsPath(rootDir, docModelName, moduleName) {
31
+ return path.join(rootDir, this.directories.documentModelDir, paramCase(docModelName), "src", "actions", `${paramCase(moduleName)}.ts`);
32
+ }
33
+ getComponentPath(rootDir, docModelName, componentName) {
34
+ return path.join(rootDir, this.directories.documentModelDir, paramCase(docModelName), "src", "components", `${pascalCase(componentName)}.tsx`);
35
+ }
36
+ getTypesPath(rootDir, docModelName) {
37
+ return path.join(rootDir, this.directories.documentModelDir, paramCase(docModelName), "src", "types.ts");
38
+ }
39
+ async createSourceFile(project, filePath) {
40
+ await this.ensureExists(path.dirname(filePath));
41
+ return (project.addSourceFileAtPathIfExists(filePath) ??
42
+ project.createSourceFile(filePath, "", { overwrite: false }));
43
+ }
44
+ }
45
+ //# sourceMappingURL=DirectoryManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DirectoryManager.js","sourceRoot":"","sources":["../../../../src/ts-morph-generator/utilities/DirectoryManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AAIxB,MAAM,OAAO,gBAAgB;IACnB,WAAW,GAAmC;QACpD,gBAAgB,EAAE,gBAAgB;QAClC,UAAU,EAAE,SAAS;QACrB,aAAa,EAAE,YAAY;QAC3B,YAAY,EAAE,WAAW;KAC1B,CAAC;IAEF,YAAY,cAAoC,EAAE;QAChD,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,WAAW;YACnB,GAAG,WAAW;SACf,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,OAAO,EAAE,EAAE,GAAG,CAAC,CAAC;YAC7D,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,cAAc,CACZ,OAAe,EACf,YAAoB,EACpB,UAAkB;QAElB,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,gBAAgB,EACjC,SAAS,CAAC,YAAY,CAAC,EACvB,KAAK,EACL,UAAU,EACV,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAC9B,CAAC;IACJ,CAAC;IAED,cAAc,CACZ,OAAe,EACf,YAAoB,EACpB,UAAkB;QAElB,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,gBAAgB,EACjC,SAAS,CAAC,YAAY,CAAC,EACvB,KAAK,EACL,SAAS,EACT,GAAG,SAAS,CAAC,UAAU,CAAC,KAAK,CAC9B,CAAC;IACJ,CAAC;IAED,gBAAgB,CACd,OAAe,EACf,YAAoB,EACpB,aAAqB;QAErB,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,gBAAgB,EACjC,SAAS,CAAC,YAAY,CAAC,EACvB,KAAK,EACL,YAAY,EACZ,GAAG,UAAU,CAAC,aAAa,CAAC,MAAM,CACnC,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,OAAe,EAAE,YAAoB;QAChD,OAAO,IAAI,CAAC,IAAI,CACd,OAAO,EACP,IAAI,CAAC,WAAW,CAAC,gBAAgB,EACjC,SAAS,CAAC,YAAY,CAAC,EACvB,KAAK,EACL,UAAU,CACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,OAAgB,EAChB,QAAgB;QAEhB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChD,OAAO,CACL,OAAO,CAAC,2BAA2B,CAAC,QAAQ,CAAC;YAC7C,OAAO,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAC7D,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { SourceFile } from "ts-morph";
2
+ export interface ImportSpec {
3
+ moduleSpecifier: string;
4
+ namedImports?: string[];
5
+ defaultImport?: string;
6
+ isTypeOnly?: boolean;
7
+ }
8
+ export declare class ImportManager {
9
+ addImport(sourceFile: SourceFile, spec: ImportSpec): void;
10
+ addTypeImport(sourceFile: SourceFile, typeName: string, path: string): void;
11
+ addNamedImports(sourceFile: SourceFile, imports: string[], path: string): void;
12
+ private mergeImports;
13
+ }
14
+ //# sourceMappingURL=ImportManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportManager.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-generator/utilities/ImportManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,aAAa;IACxB,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAazD,aAAa,CAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ3E,eAAe,CACb,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,EAAE,EACjB,IAAI,EAAE,MAAM,GACX,IAAI;IAOP,OAAO,CAAC,YAAY;CAkBrB"}
@@ -0,0 +1,40 @@
1
+ export class ImportManager {
2
+ addImport(sourceFile, spec) {
3
+ // Check if import already exists
4
+ const existing = sourceFile
5
+ .getImportDeclarations()
6
+ .find((imp) => imp.getModuleSpecifierValue() === spec.moduleSpecifier);
7
+ if (existing) {
8
+ this.mergeImports(existing, spec);
9
+ }
10
+ else {
11
+ sourceFile.addImportDeclaration(spec);
12
+ }
13
+ }
14
+ addTypeImport(sourceFile, typeName, path) {
15
+ this.addImport(sourceFile, {
16
+ moduleSpecifier: path,
17
+ namedImports: [typeName],
18
+ isTypeOnly: true,
19
+ });
20
+ }
21
+ addNamedImports(sourceFile, imports, path) {
22
+ this.addImport(sourceFile, {
23
+ moduleSpecifier: path,
24
+ namedImports: imports,
25
+ });
26
+ }
27
+ mergeImports(existingImport, newSpec) {
28
+ // Logic to merge named imports if they don't already exist
29
+ if (newSpec.namedImports) {
30
+ const existingNames = existingImport
31
+ .getNamedImports()
32
+ .map((ni) => ni.getName());
33
+ const newNames = newSpec.namedImports.filter((name) => !existingNames.includes(name));
34
+ if (newNames.length > 0) {
35
+ existingImport.addNamedImports(newNames);
36
+ }
37
+ }
38
+ }
39
+ }
40
+ //# sourceMappingURL=ImportManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImportManager.js","sourceRoot":"","sources":["../../../../src/ts-morph-generator/utilities/ImportManager.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,aAAa;IACxB,SAAS,CAAC,UAAsB,EAAE,IAAgB;QAChD,iCAAiC;QACjC,MAAM,QAAQ,GAAG,UAAU;aACxB,qBAAqB,EAAE;aACvB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzE,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,aAAa,CAAC,UAAsB,EAAE,QAAgB,EAAE,IAAY;QAClE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YACzB,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,CAAC,QAAQ,CAAC;YACxB,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CACb,UAAsB,EACtB,OAAiB,EACjB,IAAY;QAEZ,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;YACzB,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAEO,YAAY,CAClB,cAAiC,EACjC,OAAmB;QAEnB,2DAA2D;QAC3D,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,cAAc;iBACjC,eAAe,EAAE;iBACjB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CACxC,CAAC;YAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export * from "./DirectoryManager.js";
2
+ export * from "./ImportManager.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ts-morph-generator/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./DirectoryManager.js";
2
+ export * from "./ImportManager.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ts-morph-generator/utilities/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export * from "./cli.js";
2
2
  export * from "./mock.js";
3
- export * from "./package-manager.js";
4
3
  export * from "./validation.js";
5
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
@@ -1,5 +1,4 @@
1
1
  export * from "./cli.js";
2
2
  export * from "./mock.js";
3
- export * from "./package-manager.js";
4
3
  export * from "./validation.js";
5
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
@@ -1,18 +1,18 @@
1
- import { type DocumentModelState } from "document-model";
1
+ import type { DocumentModelGlobalState } from "document-model";
2
2
  /**
3
- * Validation result for DocumentModelState code generation requirements
3
+ * Validation result for DocumentModelGlobalState code generation requirements
4
4
  */
5
5
  export interface DocumentModelStateValidationResult {
6
- /** Whether the DocumentModelState is valid for code generation */
6
+ /** Whether the DocumentModelGlobalState is valid for code generation */
7
7
  isValid: boolean;
8
8
  /** Array of validation error messages if validation fails */
9
9
  errors: string[];
10
10
  }
11
11
  /**
12
- * Validates that a DocumentModelState has all required properties for successful code generation.
12
+ * Validates that a DocumentModelGlobalState has all required properties for successful code generation.
13
13
  *
14
- * @param documentModelState - The DocumentModelState to validate
14
+ * @param documentModelState - The DocumentModelGlobalState to validate
15
15
  * @returns Validation result with isValid flag and error messages
16
16
  */
17
- export declare function validateDocumentModelState(documentModelState: DocumentModelState): DocumentModelStateValidationResult;
17
+ export declare function validateDocumentModelState(documentModelState: DocumentModelGlobalState): DocumentModelStateValidationResult;
18
18
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,kEAAkE;IAClE,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,kBAAkB,GACrC,kCAAkC,CAsMpC"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,kCAAkC;IACjD,wEAAwE;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,kBAAkB,EAAE,wBAAwB,GAC3C,kCAAkC,CAsMpC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
- * Validates that a DocumentModelState has all required properties for successful code generation.
2
+ * Validates that a DocumentModelGlobalState has all required properties for successful code generation.
3
3
  *
4
- * @param documentModelState - The DocumentModelState to validate
4
+ * @param documentModelState - The DocumentModelGlobalState to validate
5
5
  * @returns Validation result with isValid flag and error messages
6
6
  */
7
7
  export function validateDocumentModelState(documentModelState) {
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"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"}