@powerhousedao/vetra 5.1.0-staging.0 → 5.2.0-dev.1

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 (111) hide show
  1. package/dist/document-models/app-module/gen/document-schema.d.ts +24 -170
  2. package/dist/document-models/app-module/gen/document-schema.d.ts.map +1 -1
  3. package/dist/document-models/app-module/gen/schema/types.d.ts +15 -3
  4. package/dist/document-models/app-module/gen/schema/types.d.ts.map +1 -1
  5. package/dist/document-models/app-module/gen/schema/zod.d.ts +7 -4
  6. package/dist/document-models/app-module/gen/schema/zod.d.ts.map +1 -1
  7. package/dist/document-models/app-module/gen/schema/zod.js +2 -2
  8. package/dist/document-models/app-module/hooks.d.ts +5 -2
  9. package/dist/document-models/app-module/hooks.d.ts.map +1 -1
  10. package/dist/document-models/app-module/hooks.js +3 -4
  11. package/dist/document-models/app-module/src/tests/base-operations.test.js +52 -1
  12. package/dist/document-models/document-editor/gen/document-schema.d.ts +21 -151
  13. package/dist/document-models/document-editor/gen/document-schema.d.ts.map +1 -1
  14. package/dist/document-models/document-editor/gen/schema/types.d.ts +15 -3
  15. package/dist/document-models/document-editor/gen/schema/types.d.ts.map +1 -1
  16. package/dist/document-models/document-editor/gen/schema/zod.d.ts +7 -4
  17. package/dist/document-models/document-editor/gen/schema/zod.d.ts.map +1 -1
  18. package/dist/document-models/document-editor/gen/schema/zod.js +2 -2
  19. package/dist/document-models/document-editor/hooks.d.ts +5 -2
  20. package/dist/document-models/document-editor/hooks.d.ts.map +1 -1
  21. package/dist/document-models/document-editor/hooks.js +3 -4
  22. package/dist/document-models/document-editor/src/tests/base-operations.test.js +42 -1
  23. package/dist/document-models/processor-module/gen/document-schema.d.ts +24 -170
  24. package/dist/document-models/processor-module/gen/document-schema.d.ts.map +1 -1
  25. package/dist/document-models/processor-module/gen/schema/types.d.ts +15 -3
  26. package/dist/document-models/processor-module/gen/schema/types.d.ts.map +1 -1
  27. package/dist/document-models/processor-module/gen/schema/zod.d.ts +7 -4
  28. package/dist/document-models/processor-module/gen/schema/zod.d.ts.map +1 -1
  29. package/dist/document-models/processor-module/gen/schema/zod.js +2 -2
  30. package/dist/document-models/processor-module/hooks.d.ts +5 -2
  31. package/dist/document-models/processor-module/hooks.d.ts.map +1 -1
  32. package/dist/document-models/processor-module/hooks.js +3 -4
  33. package/dist/document-models/processor-module/src/tests/base-operations.test.js +52 -1
  34. package/dist/document-models/subgraph-module/gen/document-schema.d.ts +18 -132
  35. package/dist/document-models/subgraph-module/gen/document-schema.d.ts.map +1 -1
  36. package/dist/document-models/subgraph-module/gen/schema/types.d.ts +15 -3
  37. package/dist/document-models/subgraph-module/gen/schema/types.d.ts.map +1 -1
  38. package/dist/document-models/subgraph-module/gen/schema/zod.d.ts +7 -4
  39. package/dist/document-models/subgraph-module/gen/schema/zod.d.ts.map +1 -1
  40. package/dist/document-models/subgraph-module/gen/schema/zod.js +1 -1
  41. package/dist/document-models/subgraph-module/hooks.d.ts +5 -2
  42. package/dist/document-models/subgraph-module/hooks.d.ts.map +1 -1
  43. package/dist/document-models/subgraph-module/hooks.js +3 -4
  44. package/dist/document-models/subgraph-module/src/tests/base-operations.test.js +22 -1
  45. package/dist/document-models/vetra-package/gen/document-schema.d.ts +33 -227
  46. package/dist/document-models/vetra-package/gen/document-schema.d.ts.map +1 -1
  47. package/dist/document-models/vetra-package/gen/schema/types.d.ts +17 -1
  48. package/dist/document-models/vetra-package/gen/schema/types.d.ts.map +1 -1
  49. package/dist/document-models/vetra-package/gen/schema/zod.d.ts +3 -3
  50. package/dist/document-models/vetra-package/gen/schema/zod.d.ts.map +1 -1
  51. package/dist/document-models/vetra-package/gen/schema/zod.js +10 -10
  52. package/dist/document-models/vetra-package/hooks.d.ts +5 -2
  53. package/dist/document-models/vetra-package/hooks.d.ts.map +1 -1
  54. package/dist/document-models/vetra-package/hooks.js +3 -4
  55. package/dist/document-models/vetra-package/src/tests/base-operations.test.js +127 -28
  56. package/dist/editors/app-editor/components/AppEditorForm.js +1 -1
  57. package/dist/editors/app-editor/editor.test.js +3 -2
  58. package/dist/editors/document-editor/components/DocumentEditorForm.d.ts.map +1 -1
  59. package/dist/editors/document-editor/components/DocumentEditorForm.js +32 -26
  60. package/dist/editors/document-editor/editor.js +1 -1
  61. package/dist/editors/document-editor/editor.test.js +2 -2
  62. package/dist/processors/codegen/__tests__/codegen-processor-e2e.test.js +98 -47
  63. package/dist/processors/codegen/document-handlers/generators/app-generator.js +2 -2
  64. package/dist/processors/codegen/document-handlers/generators/constants.d.ts +2 -1
  65. package/dist/processors/codegen/document-handlers/generators/constants.d.ts.map +1 -1
  66. package/dist/processors/codegen/document-handlers/generators/constants.js +2 -1
  67. package/dist/processors/codegen/document-handlers/generators/document-editor-generator.js +2 -2
  68. package/dist/processors/codegen/document-handlers/generators/document-model-generator.d.ts.map +1 -1
  69. package/dist/processors/codegen/document-handlers/generators/document-model-generator.js +8 -5
  70. package/dist/processors/codegen/factory.d.ts.map +1 -1
  71. package/dist/processors/codegen/factory.js +3 -0
  72. package/dist/processors/codegen/index.js +1 -1
  73. package/dist/setupTests.js +1 -0
  74. package/dist/subgraphs/app-module/resolvers.d.ts.map +1 -1
  75. package/dist/subgraphs/app-module/resolvers.js +4 -4
  76. package/dist/subgraphs/app-module/schema.d.ts.map +1 -1
  77. package/dist/subgraphs/app-module/schema.js +2 -17
  78. package/dist/subgraphs/document-editor/index.d.ts +3 -2
  79. package/dist/subgraphs/document-editor/index.d.ts.map +1 -1
  80. package/dist/subgraphs/document-editor/index.js +1 -1
  81. package/dist/subgraphs/document-editor/resolvers.d.ts +1 -1
  82. package/dist/subgraphs/document-editor/resolvers.d.ts.map +1 -1
  83. package/dist/subgraphs/document-editor/resolvers.js +12 -16
  84. package/dist/subgraphs/document-editor/schema.d.ts.map +1 -1
  85. package/dist/subgraphs/document-editor/schema.js +2 -21
  86. package/dist/subgraphs/index.d.ts +4 -4
  87. package/dist/subgraphs/index.d.ts.map +1 -1
  88. package/dist/subgraphs/index.js +4 -4
  89. package/dist/subgraphs/processor-module/index.d.ts +1 -1
  90. package/dist/subgraphs/processor-module/index.d.ts.map +1 -1
  91. package/dist/subgraphs/processor-module/resolvers.d.ts +1 -1
  92. package/dist/subgraphs/processor-module/resolvers.d.ts.map +1 -1
  93. package/dist/subgraphs/processor-module/resolvers.js +12 -16
  94. package/dist/subgraphs/processor-module/schema.d.ts.map +1 -1
  95. package/dist/subgraphs/processor-module/schema.js +2 -22
  96. package/dist/subgraphs/subgraph-module/index.d.ts +1 -1
  97. package/dist/subgraphs/subgraph-module/index.d.ts.map +1 -1
  98. package/dist/subgraphs/subgraph-module/resolvers.d.ts +1 -1
  99. package/dist/subgraphs/subgraph-module/resolvers.d.ts.map +1 -1
  100. package/dist/subgraphs/subgraph-module/resolvers.js +12 -16
  101. package/dist/subgraphs/subgraph-module/schema.d.ts.map +1 -1
  102. package/dist/subgraphs/subgraph-module/schema.js +2 -15
  103. package/dist/subgraphs/vetra-package/index.d.ts +1 -1
  104. package/dist/subgraphs/vetra-package/index.d.ts.map +1 -1
  105. package/dist/subgraphs/vetra-package/resolvers.d.ts +1 -1
  106. package/dist/subgraphs/vetra-package/resolvers.d.ts.map +1 -1
  107. package/dist/subgraphs/vetra-package/resolvers.js +137 -94
  108. package/dist/subgraphs/vetra-package/schema.d.ts.map +1 -1
  109. package/dist/subgraphs/vetra-package/schema.js +3 -26
  110. package/dist/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +18 -18
@@ -1,6 +1,32 @@
1
+ import path from "path";
1
2
  import { beforeEach, describe, expect, it, vi } from "vitest";
2
- import { LEGACY } from "../document-handlers/generators/constants.js";
3
+ import { USE_TS_MORPH, USE_VERSIONING, } from "../document-handlers/generators/constants.js";
3
4
  import { CodegenProcessor } from "../index.js";
5
+ const defaultManifest = {
6
+ name: "",
7
+ description: "",
8
+ category: "",
9
+ publisher: {
10
+ name: "",
11
+ url: "",
12
+ },
13
+ documentModels: [],
14
+ editors: [],
15
+ apps: [],
16
+ subgraphs: [],
17
+ importScripts: [],
18
+ };
19
+ function mockGetPHConfig() {
20
+ return {
21
+ logLevel: "verbose",
22
+ skipFormat: true,
23
+ documentModelsDir: path.join(process.cwd(), "document-models"),
24
+ editorsDir: path.join(process.cwd(), "editors"),
25
+ processorsDir: path.join(process.cwd(), "processors"),
26
+ subgraphsDir: path.join(process.cwd(), "subgraphs"),
27
+ importScriptsDir: path.join(process.cwd(), "import-scripts"),
28
+ };
29
+ }
4
30
  // Mock ONLY the external codegen library boundary
5
31
  vi.mock("@powerhousedao/codegen", () => ({
6
32
  generateEditor: vi.fn(),
@@ -14,7 +40,7 @@ vi.mock("@powerhousedao/codegen", () => ({
14
40
  }));
15
41
  // Mock config functions
16
42
  vi.mock("@powerhousedao/config/node", () => ({
17
- getConfig: vi.fn(() => "/test/config/path"),
43
+ getConfig: vi.fn(mockGetPHConfig),
18
44
  }));
19
45
  // Mock kebabCase
20
46
  vi.mock("change-case", () => ({
@@ -37,7 +63,7 @@ describe("CodegenProcessor E2E Tests", () => {
37
63
  // Use fake timers to control setTimeout
38
64
  vi.useFakeTimers();
39
65
  mockConfig = {
40
- PH_CONFIG: "/test/config/path",
66
+ PH_CONFIG: mockGetPHConfig(),
41
67
  // Use the actual working directory for consistency
42
68
  CURRENT_WORKING_DIR: process.cwd(),
43
69
  };
@@ -45,15 +71,16 @@ describe("CodegenProcessor E2E Tests", () => {
45
71
  processor = new CodegenProcessor();
46
72
  // Reset all codegen function mocks to resolve successfully
47
73
  const codegen = await import("@powerhousedao/codegen");
48
- vi.mocked(codegen.generateEditor).mockResolvedValue(undefined);
49
- vi.mocked(codegen.generateFromDocument).mockResolvedValue(undefined);
50
- vi.mocked(codegen.generateSubgraphFromDocumentModel).mockResolvedValue(undefined);
51
- vi.mocked(codegen.generateManifest).mockResolvedValue(undefined);
52
- vi.mocked(codegen.generateDriveEditor).mockResolvedValue(undefined);
53
- vi.mocked(codegen.generateSubgraph).mockResolvedValue(undefined);
54
- vi.mocked(codegen.generateProcessor).mockResolvedValue(undefined);
74
+ vi.mocked(codegen.generateEditor).mockResolvedValue();
75
+ vi.mocked(codegen.generateFromDocument).mockResolvedValue();
76
+ vi.mocked(codegen.generateSubgraphFromDocumentModel).mockResolvedValue();
77
+ vi.mocked(codegen.generateManifest).mockResolvedValue(JSON.stringify(defaultManifest));
78
+ vi.mocked(codegen.generateDriveEditor).mockResolvedValue();
79
+ vi.mocked(codegen.generateSubgraph).mockResolvedValue();
80
+ vi.mocked(codegen.generateProcessor).mockResolvedValue();
55
81
  vi.mocked(codegen.validateDocumentModelState).mockReturnValue({
56
82
  isValid: true,
83
+ errors: [],
57
84
  });
58
85
  });
59
86
  afterEach(() => {
@@ -79,28 +106,35 @@ describe("CodegenProcessor E2E Tests", () => {
79
106
  await processor.onStrands([strand]);
80
107
  // Advance timers to trigger debounced generation
81
108
  await vi.runAllTimersAsync();
82
- expect(generateEditor).toHaveBeenCalledWith({
83
- name: "Test Editor",
84
- documentTypes: [
85
- "powerhouse/document-model",
86
- "powerhouse/budget-statement",
87
- ],
88
- config: mockConfig.PH_CONFIG,
89
- editorId: "test-editor",
90
- legacy: LEGACY,
91
- });
92
- expect(generateManifest).toHaveBeenCalledWith({
93
- editors: [
94
- {
95
- id: "test-editor",
96
- name: "Test Editor",
97
- documentTypes: [
98
- "powerhouse/document-model",
99
- "powerhouse/budget-statement",
100
- ],
101
- },
102
- ],
103
- }, mockConfig.CURRENT_WORKING_DIR);
109
+ const generateEditorArgs = [
110
+ {
111
+ name: "Test Editor",
112
+ documentTypes: [
113
+ "powerhouse/document-model",
114
+ "powerhouse/budget-statement",
115
+ ],
116
+ config: mockConfig.PH_CONFIG,
117
+ editorId: "test-editor",
118
+ useTsMorph: USE_TS_MORPH,
119
+ },
120
+ ];
121
+ expect(generateEditor).toHaveBeenCalledWith(...generateEditorArgs);
122
+ const generateManifestArgs = [
123
+ {
124
+ editors: [
125
+ {
126
+ id: "test-editor",
127
+ name: "Test Editor",
128
+ documentTypes: [
129
+ "powerhouse/document-model",
130
+ "powerhouse/budget-statement",
131
+ ],
132
+ },
133
+ ],
134
+ },
135
+ mockConfig.CURRENT_WORKING_DIR,
136
+ ];
137
+ expect(generateManifest).toHaveBeenCalledWith(...generateManifestArgs);
104
138
  });
105
139
  it("should not call codegen functions for invalid document-editor strand (missing name)", async () => {
106
140
  const { generateEditor, generateManifest } = await import("@powerhousedao/codegen");
@@ -159,8 +193,8 @@ describe("CodegenProcessor E2E Tests", () => {
159
193
  });
160
194
  });
161
195
  describe("Document Model E2E", () => {
162
- it("should process valid document-model strand and call all three codegen functions", async () => {
163
- const { generateFromDocument, generateSubgraphFromDocumentModel, generateManifest, } = await import("@powerhousedao/codegen");
196
+ it("should process valid document-model strand and call model and manifest codegen functions", async () => {
197
+ const { generateFromDocument, generateManifest } = await import("@powerhousedao/codegen");
164
198
  const validState = {
165
199
  id: "test-model-id",
166
200
  name: "Test Model",
@@ -172,8 +206,15 @@ describe("CodegenProcessor E2E Tests", () => {
172
206
  };
173
207
  await processor.onStrands([strand]);
174
208
  await vi.runAllTimersAsync();
175
- expect(generateFromDocument).toHaveBeenCalledWith(validState, mockConfig.PH_CONFIG, LEGACY, { verbose: false });
176
- expect(generateSubgraphFromDocumentModel).toHaveBeenCalledWith("Test Model", validState, mockConfig.PH_CONFIG, { verbose: false });
209
+ const generateFromDocumentArgs = [
210
+ {
211
+ useTsMorph: USE_TS_MORPH,
212
+ useVersioning: USE_VERSIONING,
213
+ documentModelState: validState,
214
+ config: mockConfig.PH_CONFIG,
215
+ },
216
+ ];
217
+ expect(generateFromDocument).toHaveBeenCalledWith(...generateFromDocumentArgs);
177
218
  expect(generateManifest).toHaveBeenCalledWith({
178
219
  documentModels: [
179
220
  {
@@ -209,6 +250,13 @@ describe("CodegenProcessor E2E Tests", () => {
209
250
  const validState = {
210
251
  id: "test-model-id",
211
252
  name: "Test Model",
253
+ author: {
254
+ name: "test",
255
+ website: "https://test.com",
256
+ },
257
+ description: "",
258
+ extension: ".phd",
259
+ specifications: [],
212
260
  };
213
261
  const strand = {
214
262
  documentId: "test-doc-1",
@@ -316,14 +364,17 @@ describe("CodegenProcessor E2E Tests", () => {
316
364
  };
317
365
  await processor.onStrands([strand]);
318
366
  await vi.runAllTimersAsync();
319
- expect(generateDriveEditor).toHaveBeenCalledWith({
320
- name: "Test App",
321
- config: mockConfig.PH_CONFIG,
322
- appId: "test-app",
323
- allowedDocumentTypes: "",
324
- isDragAndDropEnabled: false,
325
- legacy: LEGACY,
326
- });
367
+ const generateDriveEditorArgs = [
368
+ {
369
+ name: "Test App",
370
+ config: mockConfig.PH_CONFIG,
371
+ appId: "test-app",
372
+ allowedDocumentTypes: "",
373
+ isDragAndDropEnabled: false,
374
+ useTsMorph: USE_TS_MORPH,
375
+ },
376
+ ];
377
+ expect(generateDriveEditor).toHaveBeenCalledWith(...generateDriveEditorArgs);
327
378
  expect(generateManifest).toHaveBeenCalledWith({
328
379
  apps: [
329
380
  {
@@ -358,7 +409,7 @@ describe("CodegenProcessor E2E Tests", () => {
358
409
  appId: "test-app",
359
410
  allowedDocumentTypes: "powerhouse/document-model,powerhouse/budget-statement",
360
411
  isDragAndDropEnabled: true,
361
- legacy: LEGACY,
412
+ useTsMorph: USE_TS_MORPH,
362
413
  });
363
414
  expect(generateManifest).toHaveBeenCalled();
364
415
  });
@@ -510,7 +561,7 @@ describe("CodegenProcessor E2E Tests", () => {
510
561
  documentTypes: ["powerhouse/document-model"],
511
562
  config: mockConfig.PH_CONFIG,
512
563
  editorId: "test-editor",
513
- legacy: LEGACY,
564
+ useTsMorph: USE_TS_MORPH,
514
565
  });
515
566
  expect(generateSubgraph).toHaveBeenCalledWith("Test Subgraph", null, mockConfig.PH_CONFIG);
516
567
  // generateManifest should be called twice (once for each strand)
@@ -549,7 +600,7 @@ describe("CodegenProcessor E2E Tests", () => {
549
600
  documentTypes: ["powerhouse/document-model"],
550
601
  config: mockConfig.PH_CONFIG,
551
602
  editorId: "test-editor",
552
- legacy: LEGACY,
603
+ useTsMorph: USE_TS_MORPH,
553
604
  });
554
605
  // Invalid strand should NOT be processed
555
606
  expect(generateSubgraph).not.toHaveBeenCalled();
@@ -2,7 +2,7 @@ import { generateDriveEditor, generateManifest } from "@powerhousedao/codegen";
2
2
  import { kebabCase } from "change-case";
3
3
  import { logger } from "../../logger.js";
4
4
  import { BaseDocumentGen } from "../base-document-gen.js";
5
- import { LEGACY } from "./constants.js";
5
+ import { USE_TS_MORPH } from "./constants.js";
6
6
  import { backupDocument } from "./utils.js";
7
7
  /**
8
8
  * Generator for app documents
@@ -48,7 +48,7 @@ export class AppGenerator extends BaseDocumentGen {
48
48
  appId: appId,
49
49
  allowedDocumentTypes: state.allowedDocumentTypes?.join(","),
50
50
  isDragAndDropEnabled: state.isDragAndDropEnabled,
51
- legacy: LEGACY,
51
+ useTsMorph: USE_TS_MORPH,
52
52
  });
53
53
  logger.info(`✅ Drive editor generation completed successfully for app: ${state.name}`);
54
54
  // Update the manifest with the new app
@@ -1,2 +1,3 @@
1
- export declare const LEGACY = true;
1
+ export declare const USE_TS_MORPH = true;
2
+ export declare const USE_VERSIONING = false;
2
3
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,OAAO,CAAC;AACjC,eAAO,MAAM,cAAc,QAAQ,CAAC"}
@@ -1 +1,2 @@
1
- export const LEGACY = true;
1
+ export const USE_TS_MORPH = true;
2
+ export const USE_VERSIONING = false;
@@ -2,7 +2,7 @@ import { generateEditor, generateManifest } from "@powerhousedao/codegen";
2
2
  import { kebabCase } from "change-case";
3
3
  import { logger } from "../../logger.js";
4
4
  import { BaseDocumentGen } from "../base-document-gen.js";
5
- import { LEGACY } from "./constants.js";
5
+ import { USE_TS_MORPH } from "./constants.js";
6
6
  import { backupDocument } from "./utils.js";
7
7
  /**
8
8
  * Generator for document editor documents
@@ -52,7 +52,7 @@ export class DocumentEditorGenerator extends BaseDocumentGen {
52
52
  documentTypes: documentTypes,
53
53
  config: this.config.PH_CONFIG,
54
54
  editorId: editorId,
55
- legacy: LEGACY,
55
+ useTsMorph: USE_TS_MORPH,
56
56
  });
57
57
  logger.info(`✅ Editor generation completed successfully for: ${state.name}`);
58
58
  // Update the manifest with the new editor
@@ -1 +1 @@
1
- {"version":3,"file":"document-model-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/document-model-generator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,eAAe;IACzD,QAAQ,CAAC,sBAAsB,+BAA+B;IAE9D;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IA6BnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CA+DjE"}
1
+ {"version":3,"file":"document-model-generator.d.ts","sourceRoot":"","sources":["../../../../../processors/codegen/document-handlers/generators/document-model-generator.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,eAAe;IACzD,QAAQ,CAAC,sBAAsB,+BAA+B;IAE9D;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO;IAiCnD,QAAQ,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;CA4DjE"}
@@ -1,7 +1,7 @@
1
- import { generateFromDocument, generateManifest, generateSubgraphFromDocumentModel, validateDocumentModelState, } from "@powerhousedao/codegen";
1
+ import { generateFromDocument, generateManifest, validateDocumentModelState, } from "@powerhousedao/codegen";
2
2
  import { logger } from "../../logger.js";
3
3
  import { BaseDocumentGen } from "../base-document-gen.js";
4
- import { LEGACY } from "./constants.js";
4
+ import { USE_TS_MORPH, USE_VERSIONING } from "./constants.js";
5
5
  import { backupDocument } from "./utils.js";
6
6
  /**
7
7
  * Generator for document model documents
@@ -30,6 +30,7 @@ export class DocumentModelGenerator extends BaseDocumentGen {
30
30
  logger.info(`⚠️ Skipped code generation for '${state.name || strand.documentId}' due to validation errors:\n${errorList}`);
31
31
  return false;
32
32
  }
33
+ logger.info(`Document model ${state.name} is valid, proceeding with code generation`);
33
34
  return true;
34
35
  }
35
36
  async generate(strand) {
@@ -37,10 +38,12 @@ export class DocumentModelGenerator extends BaseDocumentGen {
37
38
  // Validation is already done in shouldProcess, so we can proceed directly
38
39
  logger.debug(`🔄 Starting code generation for document model: ${state.name}`);
39
40
  try {
40
- await generateFromDocument(state, this.config.PH_CONFIG, LEGACY, {
41
- verbose: false,
41
+ await generateFromDocument({
42
+ documentModelState: state,
43
+ config: this.config.PH_CONFIG,
44
+ useTsMorph: USE_TS_MORPH,
45
+ useVersioning: USE_VERSIONING,
42
46
  });
43
- await generateSubgraphFromDocumentModel(state.name, state, this.config.PH_CONFIG, { verbose: false });
44
47
  logger.info(`✅ Code generation completed successfully for: ${state.name}`);
45
48
  // Update the manifest with the new document model
46
49
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../processors/codegen/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AA+BvD,eAAO,MAAM,uBAAuB,GACjC,QAAQ,oBAAoB,MAC5B,aAAa,gBAAgB,KAAG,eAAe,EA+B/C,CAAC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../../processors/codegen/factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAgCvD,eAAO,MAAM,uBAAuB,GACjC,QAAQ,oBAAoB,MAC5B,aAAa,gBAAgB,KAAG,eAAe,EAsC/C,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { VETRA_PROCESSOR_CONFIG_KEY } from "@powerhousedao/config";
2
2
  import { CodegenProcessor } from "./index.js";
3
+ import { logger } from "./logger.js";
3
4
  /**
4
5
  * Determines if a drive header matches the Vetra drive criteria.
5
6
  * @param driveHeader - The drive header to check
@@ -26,8 +27,10 @@ export const codegenProcessorFactory = (module) => (driveHeader) => {
26
27
  const vetraConfig = processorsConfig.get(VETRA_PROCESSOR_CONFIG_KEY);
27
28
  // Check if this drive should use the Vetra processor
28
29
  if (!isDriveVetra(driveHeader, vetraConfig?.driveId)) {
30
+ logger.info(`Drive ${driveHeader.slug} is not a Vetra drive, skipping codegen processor`);
29
31
  return [];
30
32
  }
33
+ logger.info(`Drive ${driveHeader.slug} is a Vetra drive, using codegen processor`);
31
34
  const processor = new CodegenProcessor(vetraConfig?.interactive);
32
35
  return [
33
36
  {
@@ -18,7 +18,7 @@ export class CodegenProcessor {
18
18
  }
19
19
  }
20
20
  async onStrands(strands) {
21
- logger.debug(">>> onStrands", strands);
21
+ logger.info(">>> onStrands()");
22
22
  // Filter strands to only include those that should be processed
23
23
  const validStrands = strands.filter((strand) => {
24
24
  const generator = this.manager.getGenerator(strand.documentType);
@@ -3,6 +3,7 @@ import { vi } from "vitest";
3
3
  vi.mock("@powerhousedao/reactor-browser", () => ({
4
4
  // Mock hooks
5
5
  useSelectedDocument: vi.fn(() => [null, vi.fn()]),
6
+ useSelectedDocumentSafe: vi.fn(() => [null, vi.fn()]),
6
7
  useSetPHDocumentEditorConfig: vi.fn(),
7
8
  useSetPHDriveEditorConfig: vi.fn(),
8
9
  useDocumentById: vi.fn(() => [null, vi.fn()]),
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/app-module/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAc/D,eAAO,MAAM,YAAY,GACvB,UAAU,YAAY,KACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAkOxB,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/app-module/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAkB/D,eAAO,MAAM,YAAY,GACvB,UAAU,YAAY,KACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAkOxB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { addFile } from "document-drive";
2
- import { actions, } from "../../document-models/app-module/index.js";
3
2
  import { setName } from "document-model";
3
+ import { actions, appModuleDocumentType, } from "@powerhousedao/vetra/document-models/app-module";
4
4
  export const getResolvers = (subgraph) => {
5
5
  const reactor = subgraph.reactor;
6
6
  return {
@@ -46,7 +46,7 @@ export const getResolvers = (subgraph) => {
46
46
  revision: doc.header?.revision?.global ?? 0,
47
47
  };
48
48
  }));
49
- return docs.filter((doc) => doc.header.documentType === "powerhouse/app");
49
+ return docs.filter((doc) => doc.header.documentType === appModuleDocumentType);
50
50
  },
51
51
  };
52
52
  },
@@ -54,12 +54,12 @@ export const getResolvers = (subgraph) => {
54
54
  Mutation: {
55
55
  AppModule_createDocument: async (_, args) => {
56
56
  const { driveId, name } = args;
57
- const document = await reactor.addDocument("powerhouse/app");
57
+ const document = await reactor.addDocument(appModuleDocumentType);
58
58
  if (driveId) {
59
59
  await reactor.addAction(driveId, addFile({
60
60
  name,
61
61
  id: document.header.id,
62
- documentType: "powerhouse/app",
62
+ documentType: appModuleDocumentType,
63
63
  }));
64
64
  }
65
65
  if (name) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../subgraphs/app-module/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,MAAM,EAAE,YA2FpB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../subgraphs/app-module/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,MAAM,EAAE,YA4EpB,CAAC"}
@@ -1,22 +1,7 @@
1
1
  import { gql } from "graphql-tag";
2
2
  export const schema = gql `
3
3
  """
4
- Subgraph definition for AppModule (powerhouse/app)
5
- """
6
- type AppModuleState {
7
- name: String!
8
- status: StatusType!
9
- allowedDocumentTypes: [String!]
10
- isDragAndDropEnabled: Boolean!
11
- }
12
-
13
- enum StatusType {
14
- DRAFT
15
- CONFIRMED
16
- }
17
-
18
- """
19
- Queries: AppModule
4
+ Queries: AppModule Document
20
5
  """
21
6
  type AppModuleQueries {
22
7
  getDocument(docId: PHID!, driveId: PHID): AppModule
@@ -72,7 +57,7 @@ export const schema = gql `
72
57
  name: String!
73
58
  }
74
59
  input AppModule_SetAppStatusInput {
75
- status: StatusType!
60
+ status: AppModule_StatusType!
76
61
  }
77
62
  input AppModule_AddDocumentTypeInput {
78
63
  documentType: String!
@@ -1,8 +1,9 @@
1
1
  import { BaseSubgraph } from "@powerhousedao/reactor-api";
2
+ import type { DocumentNode } from "graphql";
2
3
  export declare class DocumentEditorSubgraph extends BaseSubgraph {
3
4
  name: string;
4
- typeDefs: import("graphql").DocumentNode;
5
- resolvers: Record<string, any>;
5
+ typeDefs: DocumentNode;
6
+ resolvers: Record<string, unknown>;
6
7
  additionalContextFields: {};
7
8
  onSetup(): Promise<void>;
8
9
  onDisconnect(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/document-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,IAAI,SAAqB;IACzB,QAAQ,iCAAU;IAClB,SAAS,sBAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/document-editor/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI5C,qBAAa,sBAAuB,SAAQ,YAAY;IACtD,IAAI,SAAqB;IACzB,QAAQ,EAAE,YAAY,CAAU;IAChC,SAAS,0BAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}
@@ -1,6 +1,6 @@
1
1
  import { BaseSubgraph } from "@powerhousedao/reactor-api";
2
- import { getResolvers } from "./resolvers.js";
3
2
  import { schema } from "./schema.js";
3
+ import { getResolvers } from "./resolvers.js";
4
4
  export class DocumentEditorSubgraph extends BaseSubgraph {
5
5
  name = "document-editor";
6
6
  typeDefs = schema;
@@ -1,3 +1,3 @@
1
1
  import type { BaseSubgraph } from "@powerhousedao/reactor-api";
2
- export declare const getResolvers: (subgraph: BaseSubgraph) => Record<string, any>;
2
+ export declare const getResolvers: (subgraph: BaseSubgraph) => Record<string, unknown>;
3
3
  //# sourceMappingURL=resolvers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/document-editor/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAW/D,eAAO,MAAM,YAAY,GAAI,UAAU,YAAY,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAwLvE,CAAC"}
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../../subgraphs/document-editor/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAgB/D,eAAO,MAAM,YAAY,GACvB,UAAU,YAAY,KACrB,MAAM,CAAC,MAAM,EAAE,OAAO,CAoLxB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { addFile } from "document-drive";
2
2
  import { setName } from "document-model";
3
- import { actions } from "../../document-models/document-editor/index.js";
3
+ import { actions, documentEditorDocumentType, } from "@powerhousedao/vetra/document-models/document-editor";
4
4
  export const getResolvers = (subgraph) => {
5
5
  const reactor = subgraph.reactor;
6
6
  return {
@@ -23,12 +23,10 @@ export const getResolvers = (subgraph) => {
23
23
  driveId: driveId,
24
24
  ...doc,
25
25
  ...doc.header,
26
- // these will be ripped out in the future, but for now all doc models have global state
27
- // TODO (thegoldenmule): once the gql interface is updated for arbitrary state, we can remove this
28
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
29
- state: doc.state.global ?? {},
30
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
31
- stateJSON: doc.state.global ?? "{}",
26
+ created: doc.header.createdAtUtcIso,
27
+ lastModified: doc.header.lastModifiedAtUtcIso,
28
+ state: doc.state.global,
29
+ stateJSON: doc.state.global,
32
30
  revision: doc.header?.revision?.global ?? 0,
33
31
  };
34
32
  },
@@ -41,16 +39,14 @@ export const getResolvers = (subgraph) => {
41
39
  driveId: driveId,
42
40
  ...doc,
43
41
  ...doc.header,
44
- // these will be ripped out in the future, but for now all doc models have global state
45
- // TODO (thegoldenmule): once the gql interface is updated for arbitrary state, we can remove this
46
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
47
- state: doc.state.global ?? {},
48
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
49
- stateJSON: doc.state.global ?? "{}",
42
+ created: doc.header.createdAtUtcIso,
43
+ lastModified: doc.header.lastModifiedAtUtcIso,
44
+ state: doc.state.global,
45
+ stateJSON: doc.state.global,
50
46
  revision: doc.header?.revision?.global ?? 0,
51
47
  };
52
48
  }));
53
- return docs.filter((doc) => doc.header.documentType === "powerhouse/document-editor");
49
+ return docs.filter((doc) => doc.header.documentType === documentEditorDocumentType);
54
50
  },
55
51
  };
56
52
  },
@@ -58,12 +54,12 @@ export const getResolvers = (subgraph) => {
58
54
  Mutation: {
59
55
  DocumentEditor_createDocument: async (_, args) => {
60
56
  const { driveId, name } = args;
61
- const document = await reactor.addDocument("powerhouse/document-editor");
57
+ const document = await reactor.addDocument(documentEditorDocumentType);
62
58
  if (driveId) {
63
59
  await reactor.addAction(driveId, addFile({
64
60
  name,
65
61
  id: document.header.id,
66
- documentType: "powerhouse/document-editor",
62
+ documentType: documentEditorDocumentType,
67
63
  }));
68
64
  }
69
65
  if (name) {
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../subgraphs/document-editor/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,MAAM,EAAE,YA4EpB,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../subgraphs/document-editor/schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,MAAM,EAAE,YAyDpB,CAAC"}
@@ -1,26 +1,7 @@
1
1
  import { gql } from "graphql-tag";
2
2
  export const schema = gql `
3
3
  """
4
- Subgraph definition for DocumentEditor (powerhouse/document-editor)
5
- """
6
- type DocumentEditorState {
7
- name: String!
8
- documentTypes: [DocumentTypeItem!]!
9
- status: StatusType!
10
- }
11
-
12
- type DocumentTypeItem {
13
- id: OID!
14
- documentType: String!
15
- }
16
-
17
- enum StatusType {
18
- DRAFT
19
- CONFIRMED
20
- }
21
-
22
- """
23
- Queries: DocumentEditor
4
+ Queries: DocumentEditor Document
24
5
  """
25
6
  type DocumentEditorQueries {
26
7
  getDocument(docId: PHID!, driveId: PHID): DocumentEditor
@@ -73,6 +54,6 @@ export const schema = gql `
73
54
  id: OID!
74
55
  }
75
56
  input DocumentEditor_SetEditorStatusInput {
76
- status: StatusType!
57
+ status: DocumentEditor_StatusType!
77
58
  }
78
59
  `;
@@ -1,7 +1,7 @@
1
- export * as DocumentEditorSubgraph from "./document-editor/index.js";
2
- export * as VetraPackageSubgraph from "./vetra-package/index.js";
3
- export * as SubgraphModuleSubgraph from "./subgraph-module/index.js";
4
- export * as ProcessorModuleSubgraph from "./processor-module/index.js";
5
1
  export * as AppModuleSubgraph from "./app-module/index.js";
2
+ export * as ProcessorModuleSubgraph from "./processor-module/index.js";
3
+ export * as SubgraphModuleSubgraph from "./subgraph-module/index.js";
4
+ export * as VetraPackageSubgraph from "./vetra-package/index.js";
6
5
  export * as VetraReadModelSubgraph from "./vetra-read-model/index.js";
6
+ export * as DocumentEditorSubgraph from "./document-editor/index.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../subgraphs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,sBAAsB,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,oBAAoB,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,sBAAsB,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,uBAAuB,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../subgraphs/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,uBAAuB,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,sBAAsB,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,oBAAoB,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,sBAAsB,MAAM,6BAA6B,CAAC;AACtE,OAAO,KAAK,sBAAsB,MAAM,4BAA4B,CAAC"}
@@ -1,6 +1,6 @@
1
- export * as DocumentEditorSubgraph from "./document-editor/index.js";
2
- export * as VetraPackageSubgraph from "./vetra-package/index.js";
3
- export * as SubgraphModuleSubgraph from "./subgraph-module/index.js";
4
- export * as ProcessorModuleSubgraph from "./processor-module/index.js";
5
1
  export * as AppModuleSubgraph from "./app-module/index.js";
2
+ export * as ProcessorModuleSubgraph from "./processor-module/index.js";
3
+ export * as SubgraphModuleSubgraph from "./subgraph-module/index.js";
4
+ export * as VetraPackageSubgraph from "./vetra-package/index.js";
6
5
  export * as VetraReadModelSubgraph from "./vetra-read-model/index.js";
6
+ export * as DocumentEditorSubgraph from "./document-editor/index.js";
@@ -2,7 +2,7 @@ import { BaseSubgraph } from "@powerhousedao/reactor-api";
2
2
  export declare class ProcessorModuleSubgraph extends BaseSubgraph {
3
3
  name: string;
4
4
  typeDefs: import("graphql").DocumentNode;
5
- resolvers: Record<string, any>;
5
+ resolvers: Record<string, unknown>;
6
6
  additionalContextFields: {};
7
7
  onSetup(): Promise<void>;
8
8
  onDisconnect(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/processor-module/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,IAAI,SAAsB;IAC1B,QAAQ,iCAAU;IAClB,SAAS,sBAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../subgraphs/processor-module/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI1D,qBAAa,uBAAwB,SAAQ,YAAY;IACvD,IAAI,SAAsB;IAC1B,QAAQ,iCAAU;IAClB,SAAS,0BAAsB;IAC/B,uBAAuB,KAAM;IACvB,OAAO;IACP,YAAY;CACnB"}