@powerhousedao/codegen 0.49.2-dev.1 → 0.49.2-dev.3

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 (30) hide show
  1. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +32 -8
  2. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +14 -5
  3. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +49 -0
  4. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +214 -0
  5. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +127 -0
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +44 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +96 -0
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +85 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +68 -0
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +35 -0
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +35 -0
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +20 -0
  13. package/dist/src/codegen/.hygen/templates/powerhouse/{generate-documents-subgraph → generate-drive-editor}/lib.inject_export.esm.t +1 -1
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +8 -0
  15. package/dist/src/codegen/hygen.d.ts +3 -0
  16. package/dist/src/codegen/hygen.d.ts.map +1 -1
  17. package/dist/src/codegen/hygen.js +4 -27
  18. package/dist/src/codegen/index.d.ts +1 -0
  19. package/dist/src/codegen/index.d.ts.map +1 -1
  20. package/dist/src/codegen/index.js +6 -1
  21. package/dist/tsconfig.hygen.tsbuildinfo +1 -1
  22. package/dist/tsconfig.tsbuildinfo +1 -1
  23. package/package.json +3 -2
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.d.ts +0 -15
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.d.ts.map +0 -1
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.esm.t +0 -15
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.js +0 -11
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/resolvers.esm.t +0 -40
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/schema.esm.t +0 -12
  30. /package/dist/src/codegen/.hygen/templates/powerhouse/{generate-documents-subgraph → generate-drive-editor}/lib.esm.t +0 -0
@@ -0,0 +1,68 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/editor.tsx"
3
+ unless_exists: true
4
+ ---
5
+ import { type EditorProps, hashKey } from "document-model";
6
+ import { type DocumentDriveDocument, addFolder, deleteNode, updateNode, generateNodesCopy, copyNode } from "document-drive";
7
+ import { WagmiContext } from "@powerhousedao/design-system";
8
+ import { DriveExplorer } from "./components/DriveExplorer.js";
9
+ import { useCallback } from "react";
10
+
11
+ export type IProps = EditorProps<DocumentDriveDocument>;
12
+
13
+ export default function Editor(props: IProps) {
14
+ const { dispatch, context } = props;
15
+
16
+ const onAddFolder = useCallback((name: string, parentFolder?: string) => {
17
+ dispatch(addFolder({
18
+ id: hashKey(),
19
+ name,
20
+ parentFolder,
21
+ }));
22
+ }, [dispatch]);
23
+
24
+ const onDeleteNode = useCallback((nodeId: string) => {
25
+ dispatch(deleteNode({ id: nodeId }));
26
+ }, [dispatch]);
27
+
28
+ const renameNode = useCallback((nodeId: string, name: string) => {
29
+ dispatch(updateNode({ id: nodeId, name }));
30
+ }, [dispatch]);
31
+
32
+ const onCopyNode = useCallback((nodeId: string, targetName: string, parentId?: string) => {
33
+ const generateId = () => hashKey();
34
+
35
+ const copyNodesInput = generateNodesCopy({
36
+ srcId: nodeId,
37
+ targetParentFolder: parentId,
38
+ targetName,
39
+ }, generateId, props.document.state.global.nodes);
40
+
41
+ const copyNodesAction = copyNodesInput.map(input => {
42
+ return copyNode(input);
43
+ });
44
+
45
+ for (const copyNodeAction of copyNodesAction) {
46
+ dispatch(copyNodeAction);
47
+ }
48
+ }, [dispatch, props.document.state.global.nodes]);
49
+
50
+ return (
51
+ <div
52
+ className="new-drive-explorer"
53
+ style={{ height: "100%" }}
54
+ >
55
+ <WagmiContext>
56
+ <DriveExplorer
57
+ driveId={props.document.state.global.id}
58
+ nodes={props.document.state.global.nodes}
59
+ onAddFolder={onAddFolder}
60
+ onDeleteNode={onDeleteNode}
61
+ renameNode={renameNode}
62
+ onCopyNode={onCopyNode}
63
+ context={context}
64
+ />
65
+ </WagmiContext>
66
+ </div>
67
+ );
68
+ }
@@ -0,0 +1,35 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/hooks/useSelectedFolderChildren.ts"
3
+ unless_exists: true
4
+ ---
5
+ import { useMemo } from 'react';
6
+ import type { UiFileNode, UiFolderNode } from '@powerhousedao/design-system';
7
+
8
+ interface SelectedFolderChildren {
9
+ folders: UiFolderNode[];
10
+ files: UiFileNode[];
11
+ }
12
+
13
+ export function useSelectedFolderChildren(
14
+ selectedNodeId: string | undefined,
15
+ folders: UiFolderNode[],
16
+ files: UiFileNode[]
17
+ ): SelectedFolderChildren {
18
+ return useMemo(() => {
19
+ if (!selectedNodeId) {
20
+ // Show root-level items when no folder is selected
21
+ return {
22
+ folders: folders.filter(f => !f.parentFolder),
23
+ files: files.filter(f => !f.parentFolder)
24
+ };
25
+ }
26
+
27
+ const selectedFolder = folders.find(f => f.id === selectedNodeId);
28
+ if (!selectedFolder) return { folders: [], files: [] };
29
+
30
+ return {
31
+ folders: folders.filter(f => f.parentFolder === selectedFolder.id),
32
+ files: files.filter(f => f.parentFolder === selectedFolder.id)
33
+ };
34
+ }, [selectedNodeId, folders, files]);
35
+ }
@@ -0,0 +1,35 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/hooks/useTransformedNodes.ts"
3
+ unless_exists: true
4
+ ---
5
+ import { useMemo } from 'react';
6
+ import type { Node, FileNode } from 'document-drive';
7
+ import type { UiFileNode, UiFolderNode } from '@powerhousedao/design-system';
8
+
9
+ export function useTransformedNodes(nodes: Node[], driveId: string) {
10
+ return useMemo(() => {
11
+ return nodes.map(node => {
12
+ const isFolder = 'kind' in node && node.kind === 'folder';
13
+
14
+ if (isFolder) {
15
+ return {
16
+ id: node.id,
17
+ name: node.name,
18
+ kind: 'FOLDER' as const,
19
+ parentFolder: node.parentFolder || '',
20
+ driveId,
21
+ children: nodes.filter(n => n.parentFolder === node.id).map(n => n.id)
22
+ };
23
+ } else {
24
+ return {
25
+ id: node.id,
26
+ name: node.name,
27
+ kind: 'FILE' as const,
28
+ parentFolder: node.parentFolder || '',
29
+ driveId,
30
+ documentType: (node as FileNode).documentType
31
+ };
32
+ }
33
+ }).filter(Boolean) as (UiFileNode | UiFolderNode)[];
34
+ }, [nodes, driveId]);
35
+ }
@@ -0,0 +1,20 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
+ force: true
4
+ ---
5
+ import { type EditorModule } from "document-model";
6
+ import Editor from "./editor.js";
7
+ import { type DocumentDriveDocument } from "document-drive";
8
+
9
+ export const module: EditorModule<DocumentDriveDocument> = {
10
+ Component: Editor,
11
+ documentTypes: ["powerhouse/document-drive"],
12
+ config: {
13
+ id: "<%= name %>",
14
+ disableExternalControls: true,
15
+ documentToolbarEnabled: true,
16
+ showSwitchboardLink: true,
17
+ },
18
+ };
19
+
20
+ export default module;
@@ -4,4 +4,4 @@ append: true
4
4
  to: "<%= rootDir %>/index.ts"
5
5
  skip_if: "<%= h.changeCase.pascal(name) %>"
6
6
  ---
7
- export * as <%= h.changeCase.pascal(name) %>Subgraph from "./<%= h.changeCase.param(name) %>/index.js";
7
+ export { module as <%= h.changeCase.pascal(name) %> } from './<%= h.changeCase.param(name) %>/index.js';
@@ -0,0 +1,8 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/types/css.d.ts"
3
+ unless_exists: true
4
+ ---
5
+ declare module '*.css' {
6
+ const content: { [className: string]: string };
7
+ export default content;
8
+ }
@@ -20,4 +20,7 @@ export declare function generateSubgraph(name: string, documentModel: DocumentMo
20
20
  export declare function generateImportScript(name: string, dir: string, { skipFormat }?: {
21
21
  skipFormat?: boolean | undefined;
22
22
  }): Promise<void>;
23
+ export declare function generateDriveEditor(name: string, dir: string, { skipFormat }?: {
24
+ skipFormat?: boolean | undefined;
25
+ }): Promise<void>;
23
26
  //# sourceMappingURL=hygen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hygen.d.ts","sourceRoot":"","sources":["../../../src/codegen/hygen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6CnD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoB3C;AAED,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,kBAAkB,EACtC,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoC3C;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,EAAE,UAAkB,EAAE;;CAAK,iBAoB5B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,IAAI,SAAc,EAClB,EAAE,UAAkB,EAAE;;CAAK,iBAuB5B;AAoBD,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,kBAAkB,GAAG,IAAI,EACxC,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAwD5B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAgB5B"}
1
+ {"version":3,"file":"hygen.d.ts","sourceRoot":"","sources":["../../../src/codegen/hygen.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAMzD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AA6CnD,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoB3C;AAED,wBAAsB,qBAAqB,CACzC,kBAAkB,EAAE,kBAAkB,EACtC,GAAG,EAAE,MAAM,EACX,EAAE,KAAa,EAAE,UAAkB,EAAE;;;CAAK,iBAoC3C;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,EAAE,UAAkB,EAAE;;CAAK,iBAoB5B;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,MAAM,EACX,iBAAiB,EAAE,MAAM,EACzB,IAAI,SAAc,EAClB,EAAE,UAAkB,EAAE;;CAAK,iBAuB5B;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,kBAAkB,GAAG,IAAI,EACxC,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAoC5B;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAgB5B;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,EACX,EAAE,UAAkB,EAAE;;CAAK,iBAO5B"}
@@ -117,34 +117,7 @@ export async function generateProcessor(name, documentTypes, documentTypesMap, d
117
117
  documentModelsDir,
118
118
  ], { skipFormat });
119
119
  }
120
- async function generateDocumentSubgraph(name, documentModel, dir, { skipFormat = false } = {}) {
121
- const params = [
122
- "powerhouse",
123
- `generate-documents-subgraph`,
124
- "--name",
125
- name,
126
- "--pascalName",
127
- pascalCase(name),
128
- "--root-dir",
129
- dir,
130
- ];
131
- }
132
120
  export async function generateSubgraph(name, documentModel, dir, { skipFormat = false } = {}) {
133
- if (name === "document") {
134
- await run([
135
- "powerhouse",
136
- "generate-documents-subgraph",
137
- "--subgraph",
138
- name,
139
- "--root-dir",
140
- dir,
141
- "--name",
142
- name,
143
- "--pascalName",
144
- pascalCase(name),
145
- ], { skipFormat });
146
- return;
147
- }
148
121
  const params = [
149
122
  "powerhouse",
150
123
  `generate-subgraph`,
@@ -187,3 +160,7 @@ export async function generateImportScript(name, dir, { skipFormat = false } = {
187
160
  dir,
188
161
  ], { skipFormat });
189
162
  }
163
+ export async function generateDriveEditor(name, dir, { skipFormat = false } = {}) {
164
+ // Generate the drive editor files
165
+ await run(["powerhouse", "generate-drive-editor", "--name", name, "--root-dir", dir], { skipFormat });
166
+ }
@@ -9,4 +9,5 @@ export declare function generateEditor(name: string, documentTypes: string[], co
9
9
  export declare function generateSubgraph(name: string, file: string | null, config: PowerhouseConfig): Promise<void>;
10
10
  export declare function generateProcessor(name: string, type: "analytics" | "operational", documentTypes: string[], config: PowerhouseConfig): Promise<void>;
11
11
  export declare function generateImportScript(name: string, config: PowerhouseConfig): Promise<void>;
12
+ export declare function generateDriveEditor(name: string, config: PowerhouseConfig): Promise<void>;
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AA+CzE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CACnC,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CACrC,CAAC;AAyDF,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,iBAItD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,iBA4B5E;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAwBzB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,gBAAgB,iBAQzB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAAG,aAAa,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAqBzB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,iBAGzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAgDzE,MAAM,MAAM,gBAAgB,GAAG,MAAM,CACnC,MAAM,EACN;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CACrC,CAAC;AAyDF,wBAAsB,QAAQ,CAAC,MAAM,EAAE,gBAAgB,iBAItD;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,iBA4B5E;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAwBzB;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,gBAAgB,iBAQzB;AAED,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,WAAW,GAAG,aAAa,EACjC,aAAa,EAAE,MAAM,EAAE,EACvB,MAAM,EAAE,gBAAgB,iBAqBzB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,iBAGzB;AAED,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,gBAAgB,iBAKzB"}
@@ -3,7 +3,7 @@ import { paramCase, pascalCase } from "change-case";
3
3
  import fs from "node:fs";
4
4
  import { join, resolve } from "path";
5
5
  import { generateSchema, generateSchemas } from "./graphql.js";
6
- import { generateEditor as _generateEditor, generateImportScript as _generateImportScript, generateProcessor as _generateProcessor, generateSubgraph as _generateSubgraph, generateAll, generateDocumentModel, } from "./hygen.js";
6
+ import { generateDriveEditor as _generateDriveEditor, generateEditor as _generateEditor, generateImportScript as _generateImportScript, generateProcessor as _generateProcessor, generateSubgraph as _generateSubgraph, generateAll, generateDocumentModel, } from "./hygen.js";
7
7
  import { loadDocumentModel } from "./utils.js";
8
8
  function generateGraphqlSchema(documentModel) {
9
9
  const spec = documentModel.specifications[documentModel.specifications.length - 1];
@@ -120,3 +120,8 @@ export async function generateProcessor(name, type, documentTypes, config) {
120
120
  export async function generateImportScript(name, config) {
121
121
  return _generateImportScript(name, config.importScriptsDir, config);
122
122
  }
123
+ export async function generateDriveEditor(name, config) {
124
+ return _generateDriveEditor(name, config.editorsDir, {
125
+ skipFormat: config.skipFormat,
126
+ });
127
+ }