@powerhousedao/codegen 0.50.2 → 2.5.0-dev.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +0 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +16 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +19 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +8 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +3 -2
- package/dist/src/codegen/graphql.d.ts.map +1 -1
- package/dist/src/codegen/graphql.js +1 -1
- package/dist/src/codegen/graphql.js.map +1 -1
- package/dist/src/codegen/index.js +1 -1
- package/dist/src/codegen/index.js.map +1 -1
- package/dist/tsconfig.hygen.tsbuildinfo +1 -1
- package/dist/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +11 -7
package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t
CHANGED
|
@@ -28,9 +28,6 @@ describe('<%= h.changeCase.pascal(module) %> Operations', () => {
|
|
|
28
28
|
|
|
29
29
|
<% actions.forEach(action => { _%>
|
|
30
30
|
it('should handle <%= h.changeCase.camel(action.name) %> operation', () => {
|
|
31
|
-
// generate a random id
|
|
32
|
-
// const id = documentModelUtils.hashKey();
|
|
33
|
-
|
|
34
31
|
const input: <%= h.changeCase.pascal(action.name) %>Input = generateMock(
|
|
35
32
|
z.<%= h.changeCase.pascal(action.name) %>InputSchema(),
|
|
36
33
|
);
|
|
@@ -8,7 +8,7 @@ force: true
|
|
|
8
8
|
import { type Subgraph } from "@powerhousedao/reactor-api";
|
|
9
9
|
import { addFile } from "document-drive";
|
|
10
10
|
import { actions } from "../../document-models/<%- h.changeCase.param(documentType) %>/index.js";
|
|
11
|
-
import { generateId
|
|
11
|
+
import { generateId } from "document-model";
|
|
12
12
|
|
|
13
13
|
const DEFAULT_DRIVE_ID = "powerhouse";
|
|
14
14
|
|
|
@@ -70,12 +70,12 @@ export const getResolvers = (subgraph: Subgraph): Record<string, any> => {
|
|
|
70
70
|
{
|
|
71
71
|
branch: "main",
|
|
72
72
|
scope: "global",
|
|
73
|
-
syncId:
|
|
73
|
+
syncId: generateId(),
|
|
74
74
|
},
|
|
75
75
|
{
|
|
76
76
|
branch: "main",
|
|
77
77
|
scope: "local",
|
|
78
|
-
syncId:
|
|
78
|
+
syncId: generateId(),
|
|
79
79
|
}
|
|
80
80
|
],
|
|
81
81
|
}));
|
|
@@ -11,14 +11,14 @@ import {
|
|
|
11
11
|
type UiNode,
|
|
12
12
|
} from "@powerhousedao/design-system";
|
|
13
13
|
import { useCallback, useState, useRef, useEffect } from "react";
|
|
14
|
-
import type { FileNode, Node } from "document-drive";
|
|
14
|
+
import type { FileNode, GetDocumentOptions, Node } from "document-drive";
|
|
15
15
|
import { FileItemsGrid } from "./FileItemsGrid.js";
|
|
16
16
|
import { FolderItemsGrid } from "./FolderItemsGrid.js";
|
|
17
17
|
import { FolderTree } from "./FolderTree.js";
|
|
18
18
|
import { useTransformedNodes } from "../hooks/useTransformedNodes.js";
|
|
19
19
|
import { useSelectedFolderChildren } from "../hooks/useSelectedFolderChildren.js";
|
|
20
20
|
import { EditorContainer } from "./EditorContainer.js";
|
|
21
|
-
import type {
|
|
21
|
+
import type { DocumentModelModule } from "document-model";
|
|
22
22
|
import { CreateDocumentModal } from "@powerhousedao/design-system";
|
|
23
23
|
import { CreateDocument } from "./CreateDocument.js";
|
|
24
24
|
import { type DriveEditorContext, useDriveContext } from "@powerhousedao/reactor-browser";
|
|
@@ -42,6 +42,8 @@ export function DriveExplorer({
|
|
|
42
42
|
onCopyNode,
|
|
43
43
|
context,
|
|
44
44
|
}: DriveExplorerProps) {
|
|
45
|
+
const { getDocumentRevision } = context;
|
|
46
|
+
|
|
45
47
|
const [selectedNodeId, setSelectedNodeId] = useState<string | undefined>();
|
|
46
48
|
const [activeDocumentId, setActiveDocumentId] = useState<
|
|
47
49
|
string | undefined
|
|
@@ -109,6 +111,14 @@ export function DriveExplorer({
|
|
|
109
111
|
[]
|
|
110
112
|
);
|
|
111
113
|
|
|
114
|
+
const onGetDocumentRevision = useCallback(
|
|
115
|
+
(options?: GetDocumentOptions) => {
|
|
116
|
+
if (!activeDocumentId) return;
|
|
117
|
+
return getDocumentRevision?.(activeDocumentId, options);
|
|
118
|
+
},
|
|
119
|
+
[getDocumentRevision, activeDocumentId],
|
|
120
|
+
);
|
|
121
|
+
|
|
112
122
|
const filteredDocumentModels = documentModels;
|
|
113
123
|
|
|
114
124
|
// Transform nodes using the custom hook
|
|
@@ -158,7 +168,10 @@ export function DriveExplorer({
|
|
|
158
168
|
<div className="flex-1 p-4 overflow-y-auto">
|
|
159
169
|
{activeDocument && documentModelModule && editorModule ? (
|
|
160
170
|
<EditorContainer
|
|
161
|
-
context={
|
|
171
|
+
context={{
|
|
172
|
+
...context,
|
|
173
|
+
getDocumentRevision: onGetDocumentRevision,
|
|
174
|
+
}}
|
|
162
175
|
documentId={activeDocumentId!}
|
|
163
176
|
documentType={activeDocument.documentType}
|
|
164
177
|
driveId={driveId}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
type DriveEditorContext,
|
|
10
10
|
} from "@powerhousedao/reactor-browser";
|
|
11
11
|
import {
|
|
12
|
+
type EditorContext,
|
|
12
13
|
type DocumentModelModule,
|
|
13
14
|
type EditorModule,
|
|
14
15
|
type EditorProps,
|
|
@@ -18,7 +19,9 @@ import {
|
|
|
18
19
|
DocumentToolbar,
|
|
19
20
|
RevisionHistory,
|
|
20
21
|
DefaultEditorLoader,
|
|
22
|
+
type TimelineItem,
|
|
21
23
|
} from "@powerhousedao/design-system";
|
|
24
|
+
import { useTimelineItems, getRevisionFromDate } from "@powerhousedao/common";
|
|
22
25
|
import { useState, Suspense, type FC, useCallback } from "react";
|
|
23
26
|
|
|
24
27
|
export interface EditorContainerProps {
|
|
@@ -27,7 +30,7 @@ export interface EditorContainerProps {
|
|
|
27
30
|
documentType: string;
|
|
28
31
|
onClose: () => void;
|
|
29
32
|
title: string;
|
|
30
|
-
context: DriveEditorContext
|
|
33
|
+
context: Omit<DriveEditorContext, "getDocumentRevision"> & Pick<EditorContext, "getDocumentRevision">;
|
|
31
34
|
documentModelModule: DocumentModelModule<PHDocument>;
|
|
32
35
|
editorModule: EditorModule;
|
|
33
36
|
}
|
|
@@ -44,8 +47,11 @@ export const EditorContainer: React.FC<EditorContainerProps> = (props) => {
|
|
|
44
47
|
documentModelModule,
|
|
45
48
|
} = props;
|
|
46
49
|
|
|
50
|
+
const [selectedTimelineItem, setSelectedTimelineItem] = useState<TimelineItem | null>(null);
|
|
47
51
|
const [showRevisionHistory, setShowRevisionHistory] = useState(false);
|
|
48
52
|
const { useDocumentEditorProps } = useDriveContext();
|
|
53
|
+
const timelineItems = useTimelineItems(documentId);
|
|
54
|
+
|
|
49
55
|
const user = context.user as User | undefined;
|
|
50
56
|
|
|
51
57
|
const { dispatch, error, document } = useDocumentEditorProps({
|
|
@@ -90,9 +96,20 @@ export const EditorContainer: React.FC<EditorContainerProps> = (props) => {
|
|
|
90
96
|
onShowRevisionHistory={() => setShowRevisionHistory(true)}
|
|
91
97
|
onSwitchboardLinkClick={() => {}}
|
|
92
98
|
title={title}
|
|
99
|
+
timelineButtonVisible={editorModule.config.timelineEnabled}
|
|
100
|
+
timelineItems={timelineItems.data}
|
|
101
|
+
onTimelineItemClick={setSelectedTimelineItem}
|
|
93
102
|
/>
|
|
94
103
|
<EditorComponent
|
|
95
|
-
context={
|
|
104
|
+
context={{
|
|
105
|
+
...context,
|
|
106
|
+
readMode: !!selectedTimelineItem,
|
|
107
|
+
selectedTimelineRevision: getRevisionFromDate(
|
|
108
|
+
selectedTimelineItem?.startDate,
|
|
109
|
+
selectedTimelineItem?.endDate,
|
|
110
|
+
document.operations.global,
|
|
111
|
+
),
|
|
112
|
+
}}
|
|
96
113
|
dispatch={dispatch}
|
|
97
114
|
document={document}
|
|
98
115
|
error={error}
|
|
@@ -3,11 +3,13 @@ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/editor.tsx"
|
|
|
3
3
|
unless_exists: true
|
|
4
4
|
---
|
|
5
5
|
import { type DriveEditorProps } from "@powerhousedao/reactor-browser";
|
|
6
|
+
import { AnalyticsProvider } from '@powerhousedao/reactor-browser/analytics/context';
|
|
6
7
|
import { DriveContextProvider } from "@powerhousedao/reactor-browser/hooks/useDriveContext";
|
|
7
8
|
import { type DocumentDriveDocument, addFolder, deleteNode, updateNode, generateNodesCopy, copyNode } from "document-drive";
|
|
8
9
|
import { WagmiContext } from "@powerhousedao/design-system";
|
|
9
10
|
import { DriveExplorer } from "./components/DriveExplorer.js";
|
|
10
11
|
import { useCallback } from "react";
|
|
12
|
+
import { generateId } from "document-model";
|
|
11
13
|
|
|
12
14
|
export type IProps = DriveEditorProps<DocumentDriveDocument>;
|
|
13
15
|
|
|
@@ -16,7 +18,7 @@ export function BaseEditor(props: IProps) {
|
|
|
16
18
|
|
|
17
19
|
const onAddFolder = useCallback((name: string, parentFolder?: string) => {
|
|
18
20
|
dispatch(addFolder({
|
|
19
|
-
id:
|
|
21
|
+
id: generateId(),
|
|
20
22
|
name,
|
|
21
23
|
parentFolder,
|
|
22
24
|
}));
|
|
@@ -31,13 +33,11 @@ export function BaseEditor(props: IProps) {
|
|
|
31
33
|
}, [dispatch]);
|
|
32
34
|
|
|
33
35
|
const onCopyNode = useCallback((nodeId: string, targetName: string, parentId?: string) => {
|
|
34
|
-
const generateId = () => hashKey();
|
|
35
|
-
|
|
36
36
|
const copyNodesInput = generateNodesCopy({
|
|
37
37
|
srcId: nodeId,
|
|
38
38
|
targetParentFolder: parentId,
|
|
39
39
|
targetName,
|
|
40
|
-
}, generateId, props.document.state.global.nodes);
|
|
40
|
+
}, () => generateId(), props.document.state.global.nodes);
|
|
41
41
|
|
|
42
42
|
const copyNodesAction = copyNodesInput.map(input => {
|
|
43
43
|
return copyNode(input);
|
|
@@ -54,7 +54,7 @@ export function BaseEditor(props: IProps) {
|
|
|
54
54
|
style={{ height: "100%" }}
|
|
55
55
|
>
|
|
56
56
|
<DriveExplorer
|
|
57
|
-
driveId={props.document.
|
|
57
|
+
driveId={props.document.id}
|
|
58
58
|
nodes={props.document.state.global.nodes}
|
|
59
59
|
onAddFolder={onAddFolder}
|
|
60
60
|
onDeleteNode={onDeleteNode}
|
|
@@ -70,7 +70,9 @@ export default function Editor(props: IProps) {
|
|
|
70
70
|
return (
|
|
71
71
|
<DriveContextProvider value={props.context}>
|
|
72
72
|
<WagmiContext>
|
|
73
|
-
<
|
|
73
|
+
<AnalyticsProvider databaseName={props.context.analyticsDatabaseName}>
|
|
74
|
+
<BaseEditor {...props} />
|
|
75
|
+
</AnalyticsProvider>
|
|
74
76
|
</WagmiContext>
|
|
75
77
|
</DriveContextProvider>
|
|
76
78
|
);
|
|
@@ -7,10 +7,11 @@ 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";
|
|
10
|
+
import { type ProcessorRecord } from "document-drive/processors/types";
|
|
11
|
+
import { type IProcessorHostModule } from "@powerhousedao/reactor-api";
|
|
11
12
|
import { <%= pascalName %>Processor } from "./<%= h.changeCase.param(name) %>/index.js";
|
|
12
13
|
|
|
13
|
-
export const processorFactory = (module:
|
|
14
|
+
export const processorFactory = (module: IProcessorHostModule) => (driveId: string):ProcessorRecord[] => {
|
|
14
15
|
return [
|
|
15
16
|
{
|
|
16
17
|
processor: new <%= pascalName %>Processor(module.analyticsStore),
|
|
@@ -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;
|
|
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;AAa1E,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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { generate } from "@graphql-codegen/cli";
|
|
2
|
-
import { generatorTypeDefs, validationSchema } from "@powerhousedao/
|
|
2
|
+
import { generatorTypeDefs, validationSchema, } from "@powerhousedao/document-engineering/graphql";
|
|
3
3
|
import { readdirSync } from "node:fs";
|
|
4
4
|
import { formatWithPrettierBeforeWrite } from "./utils.js";
|
|
5
5
|
const getDirectories = (source) => readdirSync(source, { withFileTypes: true })
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEpE,OAAO,
|
|
1
|
+
{"version":3,"file":"graphql.js","sourceRoot":"","sources":["../../../src/codegen/graphql.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codegen/index.ts"],"names":[],"mappings":"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"}
|