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

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 (37) hide show
  1. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +40 -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 +77 -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/templates/powerhouse/generate-processor-analytics/index.esm.t +9 -23
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +16 -0
  17. package/dist/src/codegen/graphql.d.ts +13 -0
  18. package/dist/src/codegen/graphql.d.ts.map +1 -1
  19. package/dist/src/codegen/graphql.js +29 -26
  20. package/dist/src/codegen/hygen.d.ts +3 -0
  21. package/dist/src/codegen/hygen.d.ts.map +1 -1
  22. package/dist/src/codegen/hygen.js +4 -27
  23. package/dist/src/codegen/index.d.ts +1 -0
  24. package/dist/src/codegen/index.d.ts.map +1 -1
  25. package/dist/src/codegen/index.js +7 -1
  26. package/dist/src/create-lib/create-project.js +8 -8
  27. package/dist/tsconfig.hygen.tsbuildinfo +1 -1
  28. package/dist/{tsconfig.tsbuildinfo → tsconfig.lib.tsbuildinfo} +1 -1
  29. package/package.json +7 -5
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.d.ts +0 -15
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.d.ts.map +0 -1
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.esm.t +0 -15
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/index.js +0 -11
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/resolvers.esm.t +0 -40
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-documents-subgraph/schema.esm.t +0 -12
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_export.esm.t +0 -7
  37. /package/dist/src/codegen/.hygen/templates/powerhouse/{generate-documents-subgraph → generate-drive-editor}/lib.esm.t +0 -0
@@ -0,0 +1,85 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/FolderTree.tsx"
3
+ unless_exists: true
4
+ ---
5
+ import { useState } from 'react';
6
+ import type { UiFolderNode } from "@powerhousedao/design-system";
7
+
8
+ interface FolderTreeProps {
9
+ folders: UiFolderNode[];
10
+ selectedNodeId?: string;
11
+ onSelectNode: (node: UiFolderNode) => void;
12
+ }
13
+
14
+ export function FolderTree({ folders, selectedNodeId, onSelectNode }: FolderTreeProps) {
15
+ const [expandedFolders, setExpandedFolders] = useState<Set<string>>(new Set());
16
+
17
+ const toggleFolder = (folderId: string) => {
18
+ setExpandedFolders(prev => {
19
+ const next = new Set(prev);
20
+ if (next.has(folderId)) {
21
+ next.delete(folderId);
22
+ } else {
23
+ next.add(folderId);
24
+ }
25
+ return next;
26
+ });
27
+ };
28
+
29
+ const renderFolder = (folder: UiFolderNode, level: number = 0) => {
30
+ const hasChildren = folders.some(f => f.parentFolder === folder.id);
31
+ const isExpanded = expandedFolders.has(folder.id);
32
+ const isSelected = selectedNodeId === folder.id;
33
+
34
+ return (
35
+ <div key={folder.id}>
36
+ <div
37
+ className={`flex items-center py-1 px-2 cursor-pointer hover:bg-gray-100 rounded ${
38
+ isSelected ? 'bg-gray-100' : ''
39
+ }`}
40
+ style={{ paddingLeft: `${level * 16 + 8}px` }}
41
+ onClick={() => onSelectNode(folder)}
42
+ >
43
+ {hasChildren && (
44
+ <button
45
+ className="w-4 h-4 mr-1 flex items-center justify-center"
46
+ onClick={(e) => {
47
+ e.stopPropagation();
48
+ toggleFolder(folder.id);
49
+ }}
50
+ >
51
+ {isExpanded ? '▼' : '▶'}
52
+ </button>
53
+ )}
54
+ <span className="text-sm">{folder.name}</span>
55
+ </div>
56
+ {isExpanded && hasChildren && (
57
+ <div>
58
+ {folders
59
+ .filter(f => f.parentFolder === folder.id)
60
+ .map(child => renderFolder(child, level + 1))}
61
+ </div>
62
+ )}
63
+ </div>
64
+ );
65
+ };
66
+
67
+ return (
68
+ <div className="space-y-1">
69
+ {/* Root Directory Option */}
70
+ <div
71
+ className={`flex items-center py-1 px-2 cursor-pointer hover:bg-gray-100 rounded ${
72
+ !selectedNodeId ? 'bg-gray-100' : ''
73
+ }`}
74
+ onClick={() => onSelectNode({ id: '', name: 'Root', kind: 'FOLDER' } as UiFolderNode)}
75
+ >
76
+ <span className="text-sm font-medium">Root</span>
77
+ </div>
78
+
79
+ {/* Folder Tree */}
80
+ {folders
81
+ .filter(folder => !folder.parentFolder)
82
+ .map(folder => renderFolder(folder))}
83
+ </div>
84
+ );
85
+ }
@@ -0,0 +1,77 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/editor.tsx"
3
+ unless_exists: true
4
+ ---
5
+ import { type DriveEditorProps } from "@powerhousedao/reactor-browser";
6
+ import { DriveContextProvider } from "@powerhousedao/reactor-browser/hooks/useDriveContext";
7
+ import { type DocumentDriveDocument, addFolder, deleteNode, updateNode, generateNodesCopy, copyNode } from "document-drive";
8
+ import { WagmiContext } from "@powerhousedao/design-system";
9
+ import { DriveExplorer } from "./components/DriveExplorer.js";
10
+ import { useCallback } from "react";
11
+
12
+ export type IProps = DriveEditorProps<DocumentDriveDocument>;
13
+
14
+ export function BaseEditor(props: IProps) {
15
+ const { dispatch, context } = props;
16
+
17
+ const onAddFolder = useCallback((name: string, parentFolder?: string) => {
18
+ dispatch(addFolder({
19
+ id: hashKey(),
20
+ name,
21
+ parentFolder,
22
+ }));
23
+ }, [dispatch]);
24
+
25
+ const onDeleteNode = useCallback((nodeId: string) => {
26
+ dispatch(deleteNode({ id: nodeId }));
27
+ }, [dispatch]);
28
+
29
+ const renameNode = useCallback((nodeId: string, name: string) => {
30
+ dispatch(updateNode({ id: nodeId, name }));
31
+ }, [dispatch]);
32
+
33
+ const onCopyNode = useCallback((nodeId: string, targetName: string, parentId?: string) => {
34
+ const generateId = () => hashKey();
35
+
36
+ const copyNodesInput = generateNodesCopy({
37
+ srcId: nodeId,
38
+ targetParentFolder: parentId,
39
+ targetName,
40
+ }, generateId, props.document.state.global.nodes);
41
+
42
+ const copyNodesAction = copyNodesInput.map(input => {
43
+ return copyNode(input);
44
+ });
45
+
46
+ for (const copyNodeAction of copyNodesAction) {
47
+ dispatch(copyNodeAction);
48
+ }
49
+ }, [dispatch, props.document.state.global.nodes]);
50
+
51
+ return (
52
+ <div
53
+ className="new-drive-explorer"
54
+ style={{ height: "100%" }}
55
+ >
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
+ </div>
66
+ );
67
+ }
68
+
69
+ export default function Editor(props: IProps) {
70
+ return (
71
+ <DriveContextProvider value={props.context}>
72
+ <WagmiContext>
73
+ <BaseEditor {...props} />
74
+ </WagmiContext>
75
+ </DriveContextProvider>
76
+ );
77
+ }
@@ -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 DriveEditorModule } from "@powerhousedao/reactor-browser";
6
+ import { type DocumentDriveDocument } from "document-drive";
7
+ import Editor from "./editor.js";
8
+
9
+ export const module: DriveEditorModule<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
+ }
@@ -2,35 +2,21 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/index.ts"
3
3
  force: true
4
4
  ---
5
- import { generateId } from "document-model";
6
- import type {
7
- AnalyticsProcessor,
8
- ProcessorOptions,
9
- ProcessorUpdate,
10
- AnalyticsPath
11
- } from "@powerhousedao/reactor-api";
5
+ import type { PHDocument } from "document-model";
6
+ import { AnalyticsPath, IAnalyticsStore } from "@powerhousedao/reactor-api";
7
+ import { InternalTransmitterUpdate, IProcessor } from "document-drive";
8
+
12
9
  <% documentTypes.forEach(type => { _%>
13
10
  import type { <%= documentTypesMap[type].name %>Document } from "<%= documentTypesMap[type].importPath %>/index.js";
14
11
  %><% }); _%>
15
- <% if(documentTypes.length === 0) { %>import type { PHDocument } from "document-model";<% } %>
16
- type DocumentType = <% if(documentTypes.length) { %><%= documentTypes.map(type => `${documentTypesMap[type].name}Document`).join(" | ") %> <% } else { %>PHDocument<% } %>;
17
12
 
18
- export class <%= pascalName %>Processor extends AnalyticsProcessor<% if(documentTypes.length) { %><DocumentType><% } %> {
13
+ export class <%= pascalName %>Processor implements IProcessor {
19
14
 
20
- protected processorOptions: ProcessorOptions = {
21
- listenerId: generateId(),
22
- filter: {
23
- branch: ["main"],
24
- documentId: ["*"],
25
- documentType: [<% if(documentTypes.length) { %><%- documentTypes.map(type => `"${type}"`).join(", ") %><% } else { %>"*"<% } %>],
26
- scope: ["global"],
27
- },
28
- block: false,
29
- label: "<%= name %>",
30
- system: true,
31
- };
15
+ constructor(private readonly analyticsStore: IAnalyticsStore) {
16
+ //
17
+ }
32
18
 
33
- async onStrands(strands: ProcessorUpdate<DocumentType>[]): Promise<void> {
19
+ async onStrands<TDocument extends PHDocument>(strands: InternalTransmitterUpdate<TDocument>[]): Promise<void> {
34
20
  if (strands.length === 0) {
35
21
  return;
36
22
  }
@@ -7,3 +7,19 @@ unless_exists: true
7
7
  * Delete the file and run the code generator again to have it reset
8
8
  */
9
9
 
10
+ import { ProcessorRecord } from "document-drive/processors/types";
11
+ import { <%= pascalName %>Processor } from "./<%= h.changeCase.param(name) %>/index.js";
12
+
13
+ export const processorFactory = (module:any) => (driveId: string):ProcessorRecord[] => {
14
+ return [
15
+ {
16
+ processor: new <%= pascalName %>Processor(module.analyticsStore),
17
+ filter: {
18
+ branch: ["main"],
19
+ documentId: ["*"],
20
+ scope: ["*"],
21
+ documentType: ["*"],
22
+ },
23
+ },
24
+ ];
25
+ }
@@ -1,6 +1,19 @@
1
1
  import { type CodegenConfig } from "@graphql-codegen/cli";
2
2
  import { type TypeScriptPluginConfig } from "@graphql-codegen/typescript";
3
+ export declare const scalars: {
4
+ Unknown: string;
5
+ DateTime: string;
6
+ Attachment: string;
7
+ Address: string;
8
+ };
9
+ export declare const scalarsValidation: {
10
+ Unknown: string;
11
+ DateTime: string;
12
+ Attachment: string;
13
+ Address: string;
14
+ };
3
15
  export declare const tsConfig: TypeScriptPluginConfig;
16
+ export declare const zodConfig: Record<string, unknown>;
4
17
  export declare function schemaConfig(name: string, dir: string): CodegenConfig["generates"];
5
18
  export declare const generateSchema: (model: string, dir: string, { watch, skipFormat }?: {
6
19
  watch?: boolean | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAU1E,eAAO,MAAM,QAAQ,EAAE,sBAiBtB,CAAC;AAEF,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,aAAa,CAAC,WAAW,CAAC,CAsC5B;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX;;;CAA0C,iBAa3C,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,MAAM,EACX;;;CAA0C,iBAoB3C,CAAC"}
1
+ {"version":3,"file":"graphql.d.ts","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAY,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAU1E,eAAO,MAAM,OAAO;;;;;CAMnB,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;CAO7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,sBAWtB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAYpC,CAAC;AAEX,wBAAgB,YAAY,CAC1B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,aAAa,CAAC,WAAW,CAAC,CAmB5B;AAED,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,EACb,KAAK,MAAM,EACX;;;CAA0C,iBAa3C,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,MAAM,EACX;;;CAA0C,iBAoB3C,CAAC"}
@@ -5,15 +5,23 @@ import { formatWithPrettierBeforeWrite } from "./utils.js";
5
5
  const getDirectories = (source) => readdirSync(source, { withFileTypes: true })
6
6
  .filter((dirent) => dirent.isDirectory())
7
7
  .map((dirent) => dirent.name);
8
+ export const scalars = {
9
+ Unknown: "unknown",
10
+ DateTime: "string",
11
+ Attachment: "string",
12
+ Address: "`${string}:0x${string}`",
13
+ ...generatorTypeDefs,
14
+ };
15
+ export const scalarsValidation = {
16
+ Unknown: "z.unknown()",
17
+ DateTime: "z.string().datetime()",
18
+ Attachment: "z.string()",
19
+ Address: "z.custom<`${string}:0x${string}`>((val) => /^[a-zA-Z0-9]+:0x[a-fA-F0-9]{40}$/.test(val as string))",
20
+ ...validationSchema,
21
+ };
8
22
  export const tsConfig = {
9
23
  strictScalars: true,
10
- scalars: {
11
- Unknown: "unknown",
12
- DateTime: "string",
13
- Attachment: "string",
14
- Address: "`${string}:0x${string}`",
15
- ...generatorTypeDefs,
16
- },
24
+ scalars,
17
25
  enumsAsTypes: true,
18
26
  allowEnumStringTypes: true,
19
27
  avoidOptionals: {
@@ -23,6 +31,19 @@ export const tsConfig = {
23
31
  // maybeValue: "T | null | undefined",
24
32
  inputMaybeValue: "T | null | undefined",
25
33
  };
34
+ export const zodConfig = {
35
+ ...tsConfig,
36
+ importFrom: `./types.js`,
37
+ schema: "zod",
38
+ useTypeImports: true,
39
+ scalarSchemas: scalarsValidation,
40
+ directives: {
41
+ equals: {
42
+ value: ["regex", "/^$1$/"],
43
+ },
44
+ },
45
+ withObjectType: true,
46
+ };
26
47
  export function schemaConfig(name, dir) {
27
48
  return {
28
49
  [`${dir}/${name}/gen/schema/types.ts`]: {
@@ -39,25 +60,7 @@ export function schemaConfig(name, dir) {
39
60
  [`${dir}/${name}/gen/schema/zod.ts`]: {
40
61
  schema: `${dir}/${name}/schema.graphql`,
41
62
  plugins: ["@acaldas/graphql-codegen-typescript-validation-schema"],
42
- config: {
43
- ...tsConfig,
44
- importFrom: `./types.js`,
45
- schema: "zod",
46
- useTypeImports: true,
47
- scalarSchemas: {
48
- Unknown: "z.unknown()",
49
- DateTime: "z.string().datetime()",
50
- Attachment: "z.string()",
51
- Address: "z.custom<`${string}:0x${string}`>((val) => /^[a-zA-Z0-9]+:0x[a-fA-F0-9]{40}$/.test(val as string))",
52
- ...validationSchema,
53
- },
54
- directives: {
55
- equals: {
56
- value: ["regex", "/^$1$/"],
57
- },
58
- },
59
- withObjectType: true,
60
- },
63
+ config: zodConfig,
61
64
  },
62
65
  };
63
66
  }
@@ -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,iBA6B5E;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];
@@ -94,6 +94,7 @@ export async function generateFromFile(path, config) {
94
94
  }
95
95
  await generateSchema(name, config.documentModelsDir, config);
96
96
  await generateDocumentModel(documentModel, config.documentModelsDir, config);
97
+ await generateSubgraph(name, path, config);
97
98
  }
98
99
  export async function generateEditor(name, documentTypes, config) {
99
100
  const pathOrigin = "../../";
@@ -120,3 +121,8 @@ export async function generateProcessor(name, type, documentTypes, config) {
120
121
  export async function generateImportScript(name, config) {
121
122
  return _generateImportScript(name, config.importScriptsDir, config);
122
123
  }
124
+ export async function generateDriveEditor(name, config) {
125
+ return _generateDriveEditor(name, config.editorsDir, {
126
+ skipFormat: config.skipFormat,
127
+ });
128
+ }
@@ -43,15 +43,15 @@ function buildPowerhouseConfig(appPath, documentModelsDir, editorsDir) {
43
43
  fs.writeFileSync(filePath, JSON.stringify(newPackage, null, 2), "utf8");
44
44
  }
45
45
  function buildIndex(appPath, documentModelsDir, editorsDir) {
46
- fs.writeFileSync(path.join(appPath, "index.ts"), `import { Manifest } from "document-model";
47
- import manifestJson from "./powerhouse.manifest.json" assert { type: "json" };
48
- import * as documentModelsExports from '${documentModelsDir}';
49
- import * as editorsExports from '${editorsDir}';
46
+ fs.writeFileSync(path.join(appPath, "index.ts"), `import type { Manifest } from "document-model";
47
+ import manifestJson from "./powerhouse.manifest.json" assert { type: "json" };
48
+ import * as documentModelsExports from '${documentModelsDir}/index.js';
49
+ import * as editorsExports from '${editorsDir}/index.js';
50
50
 
51
- export const manifest: Manifest = manifestJson;
52
- export const documentModels = Object.values(documentModelsExports);
53
- export const editors = Object.values(editorsExports);
54
- `, "utf8");
51
+ export const manifest: Manifest = manifestJson;
52
+ export const documentModels = Object.values(documentModelsExports);
53
+ export const editors = Object.values(editorsExports);
54
+ `, "utf8");
55
55
  }
56
56
  function runCmd(command) {
57
57
  try {