@powerhousedao/codegen 4.1.0-dev.12 → 4.1.0-dev.121
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/README.md +0 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +10 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +17 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +16 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +3 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-models.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-schema.esm.t +56 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-type.esm.t +6 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +3 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +110 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/hooks.esm.t +49 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +17 -3
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +128 -54
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.esm.t +4 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +22 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +93 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +21 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/root-utils.esm.t +11 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootActions.esm.t +13 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +6 -27
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/src-index.esm.t +5 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +23 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +44 -30
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +11 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +15 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +6 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +67 -27
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +117 -21
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +27 -12
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +5 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +43 -35
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveContents.esm.t +23 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +19 -225
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EmptyState.esm.t +19 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t +29 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +96 -73
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t +28 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/NavigationBreadcrumbs.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +11 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +11 -72
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editors.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +35 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.esm.t +4 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/module.esm.t +15 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/edit-name.esm.t +78 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +10 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editors.esm.t +14 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +101 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.esm.t +4 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/module.esm.t +16 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +5 -4
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +5 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +8 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +6 -5
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +6 -13
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +8 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +1 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +2 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +10 -2
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +5 -36
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/utils.js +46 -0
- package/dist/src/codegen/__tests__/config.d.ts +2 -0
- package/dist/src/codegen/__tests__/config.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/config.js +2 -0
- package/dist/src/codegen/__tests__/config.js.map +1 -0
- package/dist/src/codegen/__tests__/constants.d.ts +16 -0
- package/dist/src/codegen/__tests__/constants.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/constants.js +16 -0
- package/dist/src/codegen/__tests__/constants.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts +2 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js +9 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts +3 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js +33 -0
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts +2 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js +23 -0
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts +2 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.js +23 -0
- package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +206 -0
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js +153 -0
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-editor.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-editor.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-editor.test.js +112 -0
- package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.js +192 -0
- package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.js +143 -0
- package/dist/src/codegen/__tests__/generate-schemas.test.js.map +1 -0
- package/dist/src/codegen/__tests__/global-setup.d.ts +2 -0
- package/dist/src/codegen/__tests__/global-setup.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/global-setup.js +21 -0
- package/dist/src/codegen/__tests__/global-setup.js.map +1 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts +2 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js +72 -0
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +1 -0
- package/dist/src/codegen/__tests__/utils.d.ts +7 -0
- package/dist/src/codegen/__tests__/utils.d.ts.map +1 -0
- package/dist/src/codegen/__tests__/utils.js +52 -0
- package/dist/src/codegen/__tests__/utils.js.map +1 -0
- package/dist/src/codegen/generate.d.ts +43 -0
- package/dist/src/codegen/generate.d.ts.map +1 -0
- package/dist/src/codegen/generate.js +217 -0
- package/dist/src/codegen/generate.js.map +1 -0
- package/dist/src/codegen/graphql.d.ts +2 -2
- package/dist/src/codegen/graphql.d.ts.map +1 -1
- package/dist/src/codegen/graphql.js.map +1 -1
- package/dist/src/codegen/hygen.d.ts +32 -16
- package/dist/src/codegen/hygen.d.ts.map +1 -1
- package/dist/src/codegen/hygen.js +110 -28
- package/dist/src/codegen/hygen.js.map +1 -1
- package/dist/src/codegen/index.d.ts +6 -33
- package/dist/src/codegen/index.d.ts.map +1 -1
- package/dist/src/codegen/index.js +6 -230
- package/dist/src/codegen/index.js.map +1 -1
- package/dist/src/codegen/types.d.ts +9 -0
- package/dist/src/codegen/types.d.ts.map +1 -0
- package/dist/src/codegen/types.js +2 -0
- package/dist/src/codegen/types.js.map +1 -0
- package/dist/src/codegen/utils.d.ts +5 -2
- package/dist/src/codegen/utils.d.ts.map +1 -1
- package/dist/src/codegen/utils.js +42 -4
- package/dist/src/codegen/utils.js.map +1 -1
- package/dist/src/create-lib/checkout-project.d.ts +13 -0
- package/dist/src/create-lib/checkout-project.d.ts.map +1 -0
- package/dist/src/create-lib/checkout-project.js +47 -0
- package/dist/src/create-lib/checkout-project.js.map +1 -0
- package/dist/src/create-lib/create-project.d.ts +9 -5
- package/dist/src/create-lib/create-project.d.ts.map +1 -1
- package/dist/src/create-lib/create-project.js +37 -30
- package/dist/src/create-lib/create-project.js.map +1 -1
- package/dist/src/create-lib/feature-flags.d.ts +4 -0
- package/dist/src/create-lib/feature-flags.d.ts.map +1 -0
- package/dist/src/create-lib/feature-flags.js +4 -0
- package/dist/src/create-lib/feature-flags.js.map +1 -0
- package/dist/src/create-lib/index.d.ts +1 -0
- package/dist/src/create-lib/index.d.ts.map +1 -1
- package/dist/src/create-lib/index.js +1 -0
- package/dist/src/create-lib/index.js.map +1 -1
- package/dist/src/{utils/package-manager.d.ts → create-lib/utils.d.ts} +3 -1
- package/dist/src/create-lib/utils.d.ts.map +1 -0
- package/dist/src/{utils/package-manager.js → create-lib/utils.js} +12 -1
- package/dist/src/create-lib/utils.js.map +1 -0
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts +2 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +491 -0
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js.map +1 -0
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +5 -4
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/core/FileGenerator.js +3 -1
- package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -1
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +19 -8
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +12 -0
- package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/core/ReducerGenerator.js +147 -0
- package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +5 -3
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +17 -9
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -1
- package/dist/src/ts-morph-generator/index.d.ts +2 -2
- package/dist/src/ts-morph-generator/index.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/index.js +2 -2
- package/dist/src/ts-morph-generator/index.js.map +1 -1
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts +5 -0
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts.map +1 -0
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.js +10 -0
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.js.map +1 -0
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +2 -2
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +2 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.js +13 -3
- package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +1 -1
- package/dist/src/ts-morph-generator/utilities/index.d.ts +1 -0
- package/dist/src/ts-morph-generator/utilities/index.d.ts.map +1 -1
- package/dist/src/ts-morph-generator/utilities/index.js +1 -0
- package/dist/src/ts-morph-generator/utilities/index.js.map +1 -1
- package/dist/src/utils/index.d.ts +0 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +0 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/validation.d.ts +6 -6
- package/dist/src/utils/validation.d.ts.map +1 -1
- package/dist/src/utils/validation.js +5 -6
- package/dist/src/utils/validation.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/vitest.config.d.ts +3 -0
- package/dist/vitest.config.d.ts.map +1 -0
- package/dist/vitest.config.js +16 -0
- package/dist/vitest.config.js.map +1 -0
- package/package.json +27 -28
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.inject_export.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -23
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -37
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -124
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +0 -44
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +0 -96
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +0 -35
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +0 -35
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.inject_export.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.inject_export.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
- package/dist/src/ts-morph-generator/core/index.d.ts +0 -4
- package/dist/src/ts-morph-generator/core/index.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/core/index.js +0 -4
- package/dist/src/ts-morph-generator/core/index.js.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts +0 -9
- package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js +0 -69
- package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/index.d.ts +0 -2
- package/dist/src/ts-morph-generator/file-generators/index.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/file-generators/index.js +0 -2
- package/dist/src/ts-morph-generator/file-generators/index.js.map +0 -1
- package/dist/src/utils/package-manager.d.ts.map +0 -1
- package/dist/src/utils/package-manager.js.map +0 -1
- package/dist/tsconfig.hygen.tsbuildinfo +0 -1
- package/dist/tsconfig.lib.tsbuildinfo +0 -1
package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js
CHANGED
|
@@ -1,22 +1,118 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
1
|
+
// @ts-check
|
|
2
|
+
const { paramCase, pascalCase, camelCase } = require("change-case");
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Extract type names from a GraphQL schema.
|
|
6
|
+
* @param {string} schema - GraphQL schema string
|
|
7
|
+
* @returns {string[]} Array of type names
|
|
8
|
+
*/
|
|
9
|
+
function extractTypeNames(schema) {
|
|
10
|
+
const found = schema.match(/(type|enum|union|interface|input)\s+(\w+)\s/g);
|
|
11
|
+
if (!found) return [];
|
|
12
|
+
return found.map((f) =>
|
|
13
|
+
f
|
|
14
|
+
.replaceAll("type ", "")
|
|
15
|
+
.replaceAll("enum ", "")
|
|
16
|
+
.replaceAll("union ", "")
|
|
17
|
+
.replaceAll("interface ", "")
|
|
18
|
+
.replaceAll("input ", "")
|
|
19
|
+
.trim()
|
|
20
|
+
);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Apply type prefixes to GraphQL schema to namespace types and avoid collisions.
|
|
25
|
+
* Inlined from @powerhousedao/common/utils to avoid ES module import issues.
|
|
26
|
+
* @param {string} schema - GraphQL schema string
|
|
27
|
+
* @param {string} prefix - Prefix to apply to type names
|
|
28
|
+
* @param {string[]} externalTypeNames - Type names from other schemas to also prefix
|
|
29
|
+
* @returns {string} Schema with prefixed types
|
|
30
|
+
*/
|
|
31
|
+
function applyGraphQLTypePrefixes(schema, prefix, externalTypeNames = []) {
|
|
32
|
+
if (!schema || !schema.trim()) {
|
|
33
|
+
return schema;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
let processedSchema = schema;
|
|
37
|
+
|
|
38
|
+
// Find types defined in this schema
|
|
39
|
+
const localTypeNames = extractTypeNames(schema);
|
|
40
|
+
|
|
41
|
+
// Combine with external type names (remove duplicates)
|
|
42
|
+
const allTypeNames = [...new Set([...localTypeNames, ...externalTypeNames])];
|
|
43
|
+
|
|
44
|
+
if (allTypeNames.length === 0) {
|
|
45
|
+
return schema;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
allTypeNames.forEach((typeName) => {
|
|
49
|
+
const typeRegex = new RegExp(
|
|
50
|
+
// Match type references in various GraphQL contexts
|
|
51
|
+
`(?<![_A-Za-z0-9])(${typeName})(?![_A-Za-z0-9])|` +
|
|
52
|
+
`\\[(${typeName})\\]|` +
|
|
53
|
+
`\\[(${typeName})!\\]|` +
|
|
54
|
+
`\\[(${typeName})\\]!|` +
|
|
55
|
+
`\\[(${typeName})!\\]!`,
|
|
56
|
+
"g",
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
processedSchema = processedSchema.replace(
|
|
60
|
+
typeRegex,
|
|
61
|
+
(match, p1, p2, p3, p4, p5) => {
|
|
62
|
+
if (match.startsWith("[")) {
|
|
63
|
+
return match.replace(
|
|
64
|
+
p2 || p3 || p4 || p5,
|
|
65
|
+
`${prefix}_${p2 || p3 || p4 || p5}`,
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
// Basic type reference
|
|
69
|
+
return `${prefix}_${p1}`;
|
|
70
|
+
},
|
|
71
|
+
);
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
return processedSchema;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
module.exports = {
|
|
78
|
+
params: ({ args }) => {
|
|
79
|
+
const documentModel = JSON.parse(args.documentModel);
|
|
80
|
+
const latestSpec =
|
|
81
|
+
documentModel.specifications[documentModel.specifications.length - 1];
|
|
82
|
+
const documentType = documentModel.name;
|
|
83
|
+
const pascalCaseDocumentType = pascalCase(documentType);
|
|
84
|
+
const camelCaseDocumentType = camelCase(documentType);
|
|
85
|
+
const phDocumentTypeName = `${pascalCaseDocumentType}Document`;
|
|
86
|
+
const documentTypeVariableName = `${camelCaseDocumentType}DocumentType`;
|
|
87
|
+
const packageName = args.packageName;
|
|
88
|
+
const paramCaseDocumentType = paramCase(documentType);
|
|
89
|
+
const documentModelDir = `${packageName}/document-models/${paramCaseDocumentType}`;
|
|
90
|
+
|
|
91
|
+
const stateSchema = latestSpec.state.global.schema;
|
|
92
|
+
const stateTypeNames = extractTypeNames(stateSchema);
|
|
93
|
+
|
|
94
|
+
return {
|
|
95
|
+
phDocumentTypeName,
|
|
96
|
+
documentTypeVariableName,
|
|
97
|
+
pascalCaseDocumentType,
|
|
98
|
+
camelCaseDocumentType,
|
|
99
|
+
documentModelDir,
|
|
100
|
+
rootDir: args.rootDir,
|
|
101
|
+
subgraph: args.subgraph,
|
|
102
|
+
documentTypeId: documentModel.id,
|
|
103
|
+
documentType: documentModel.name,
|
|
104
|
+
schema: applyGraphQLTypePrefixes(
|
|
105
|
+
stateSchema,
|
|
106
|
+
pascalCaseDocumentType
|
|
107
|
+
),
|
|
108
|
+
modules: latestSpec.modules.map((m) => ({
|
|
109
|
+
...m,
|
|
110
|
+
name: paramCase(m.name),
|
|
111
|
+
operations: m.operations.map((op) => ({
|
|
112
|
+
...op,
|
|
113
|
+
schema: applyGraphQLTypePrefixes(op.schema, pascalCaseDocumentType, stateTypeNames),
|
|
114
|
+
})),
|
|
115
|
+
})),
|
|
116
|
+
};
|
|
117
|
+
},
|
|
20
118
|
};
|
|
21
|
-
exports.default = generateDocumentModelMutations;
|
|
22
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -2,17 +2,28 @@
|
|
|
2
2
|
to: "<%= rootDir %>/<%= h.changeCase.param(subgraph) %>/resolvers.ts"
|
|
3
3
|
force: true
|
|
4
4
|
---
|
|
5
|
-
import {
|
|
5
|
+
import type { BaseSubgraph } from "@powerhousedao/reactor-api";
|
|
6
6
|
import { addFile } from "document-drive";
|
|
7
|
-
import { actions <% modules.forEach(module => { %><% module.operations.forEach(op => { %>, type <%- h.changeCase.pascal(op.name) %>Input<%_ })}); %> } from "../../document-models/<%- h.changeCase.param(documentType) %>/index.js";
|
|
8
7
|
import { setName } from "document-model";
|
|
8
|
+
import {
|
|
9
|
+
actions,
|
|
10
|
+
<%= documentTypeVariableName %>,
|
|
11
|
+
} from "<%= documentModelDir %>";
|
|
12
|
+
<% const inputTypes = modules.flatMap(m =>
|
|
13
|
+
m.operations.map(o => `${h.changeCase.pascalCase(o.name)}Input`)
|
|
14
|
+
);
|
|
15
|
+
%>
|
|
16
|
+
import type {
|
|
17
|
+
<%= phDocumentTypeName %>,
|
|
18
|
+
<%= inputTypes.join(',\n ') %>
|
|
19
|
+
} from "<%= documentModelDir %>";
|
|
9
20
|
|
|
10
|
-
export const getResolvers = (subgraph:
|
|
21
|
+
export const getResolvers = (subgraph: BaseSubgraph): Record<string, unknown> => {
|
|
11
22
|
const reactor = subgraph.reactor;
|
|
12
23
|
|
|
13
24
|
return ({
|
|
14
25
|
Query: {
|
|
15
|
-
<%-
|
|
26
|
+
<%- pascalCaseDocumentType %>: async () => {
|
|
16
27
|
return {
|
|
17
28
|
getDocument: async (args: { docId: string, driveId: string }) => {
|
|
18
29
|
const { docId, driveId } = args;
|
|
@@ -28,11 +39,13 @@ export const getResolvers = (subgraph: Subgraph) => {
|
|
|
28
39
|
}
|
|
29
40
|
}
|
|
30
41
|
|
|
31
|
-
const doc = await reactor.getDocument(docId);
|
|
42
|
+
const doc = await reactor.getDocument<<%= phDocumentTypeName %>>(docId);
|
|
32
43
|
return {
|
|
33
44
|
driveId: driveId,
|
|
34
45
|
...doc,
|
|
35
46
|
...doc.header,
|
|
47
|
+
created: doc.header.createdAtUtcIso,
|
|
48
|
+
lastModified: doc.header.lastModifiedAtUtcIso,
|
|
36
49
|
state: doc.state.global,
|
|
37
50
|
stateJSON: doc.state.global,
|
|
38
51
|
revision: doc.header?.revision?.global ?? 0,
|
|
@@ -43,11 +56,13 @@ export const getResolvers = (subgraph: Subgraph) => {
|
|
|
43
56
|
const docsIds = await reactor.getDocuments(driveId);
|
|
44
57
|
const docs = await Promise.all(
|
|
45
58
|
docsIds.map(async (docId) => {
|
|
46
|
-
const doc = await reactor.getDocument(docId);
|
|
59
|
+
const doc = await reactor.getDocument<<%= phDocumentTypeName %>>(docId);
|
|
47
60
|
return {
|
|
48
61
|
driveId: driveId,
|
|
49
62
|
...doc,
|
|
50
63
|
...doc.header,
|
|
64
|
+
created: doc.header.createdAtUtcIso,
|
|
65
|
+
lastModified: doc.header.lastModifiedAtUtcIso,
|
|
51
66
|
state: doc.state.global,
|
|
52
67
|
stateJSON: doc.state.global,
|
|
53
68
|
revision: doc.header?.revision?.global ?? 0,
|
|
@@ -56,16 +71,16 @@ export const getResolvers = (subgraph: Subgraph) => {
|
|
|
56
71
|
);
|
|
57
72
|
|
|
58
73
|
return docs.filter(
|
|
59
|
-
(doc) => doc.header.documentType ===
|
|
74
|
+
(doc) => doc.header.documentType === <%= documentTypeVariableName %>,
|
|
60
75
|
);
|
|
61
76
|
},
|
|
62
77
|
};
|
|
63
78
|
},
|
|
64
79
|
},
|
|
65
80
|
Mutation: {
|
|
66
|
-
<%-
|
|
81
|
+
<%- pascalCaseDocumentType %>_createDocument: async (_: unknown, args: { name: string, driveId?: string }) => {
|
|
67
82
|
const { driveId, name } = args;
|
|
68
|
-
const document = await reactor.addDocument(
|
|
83
|
+
const document = await reactor.addDocument(<%= documentTypeVariableName %>);
|
|
69
84
|
|
|
70
85
|
if(driveId) {
|
|
71
86
|
await reactor.addAction(
|
|
@@ -73,7 +88,7 @@ export const getResolvers = (subgraph: Subgraph) => {
|
|
|
73
88
|
addFile({
|
|
74
89
|
name,
|
|
75
90
|
id: document.header.id,
|
|
76
|
-
documentType:
|
|
91
|
+
documentType: <%= documentTypeVariableName %>,
|
|
77
92
|
}),
|
|
78
93
|
);
|
|
79
94
|
}
|
|
@@ -90,9 +105,9 @@ export const getResolvers = (subgraph: Subgraph) => {
|
|
|
90
105
|
|
|
91
106
|
<% modules.forEach(module => { _%>
|
|
92
107
|
<% module.operations.forEach(op => { _%>
|
|
93
|
-
<%-
|
|
108
|
+
<%- pascalCaseDocumentType + '_' + h.changeCase.camel(op.name) %>: async (_: unknown, args: { docId: string, input: <%- h.changeCase.pascal(op.name) %>Input}) => {
|
|
94
109
|
const { docId, input } = args;
|
|
95
|
-
const doc = await reactor.getDocument(docId);
|
|
110
|
+
const doc = await reactor.getDocument<<%- pascalCaseDocumentType %>Document>(docId);
|
|
96
111
|
if(!doc) {
|
|
97
112
|
throw new Error("Document not found");
|
|
98
113
|
}
|
package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t
CHANGED
|
@@ -7,13 +7,7 @@ import type { DocumentNode } from "graphql";
|
|
|
7
7
|
|
|
8
8
|
export const schema: DocumentNode = gql`
|
|
9
9
|
"""
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"""
|
|
13
|
-
<%- schema %>
|
|
14
|
-
|
|
15
|
-
"""
|
|
16
|
-
Queries: <%= h.changeCase.pascal(documentType) %>
|
|
10
|
+
Queries: <%= h.changeCase.pascal(documentType) %> Document
|
|
17
11
|
"""
|
|
18
12
|
|
|
19
13
|
type <%- h.changeCase.pascal(documentType) %>Queries {
|
|
@@ -34,16 +28,17 @@ type Mutation {
|
|
|
34
28
|
|
|
35
29
|
<% modules.forEach(module => { _%>
|
|
36
30
|
<% module.operations.forEach(op => { _%>
|
|
37
|
-
<%- h.changeCase.pascal(documentType) + '_' + h.changeCase.camel(op.name)
|
|
38
|
-
%>(driveId:String, docId:PHID, input:<%-
|
|
31
|
+
<%- h.changeCase.pascal(documentType) + '_' + h.changeCase.camel(op.name)
|
|
32
|
+
%>(driveId:String, docId:PHID, input:<%-
|
|
39
33
|
h.changeCase.pascal(documentType) + '_' + h.changeCase.pascal(op.name) %>Input): Int
|
|
40
34
|
<%_ })}); %>}
|
|
35
|
+
|
|
41
36
|
<% modules.forEach(module => { _%>
|
|
42
37
|
|
|
43
38
|
"""
|
|
44
39
|
Module: <%= h.changeCase.pascal(module.name) %>
|
|
45
40
|
"""
|
|
46
41
|
<% module.operations.forEach(op => { _%>
|
|
47
|
-
<%- op.schema
|
|
42
|
+
<%- op.schema %>
|
|
48
43
|
<%_ })}); %>
|
|
49
44
|
`
|
|
@@ -1,50 +1,58 @@
|
|
|
1
1
|
---
|
|
2
|
-
to: "<%=
|
|
2
|
+
to: "<%= driveEditorDir %>/components/CreateDocument.tsx"
|
|
3
3
|
unless_exists: true
|
|
4
4
|
---
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import type { VetraDocumentModelModule } from "@powerhousedao/reactor-browser";
|
|
6
|
+
import {
|
|
7
|
+
showCreateDocumentModal,
|
|
8
|
+
useAllowedDocumentModelModules,
|
|
9
|
+
} from "@powerhousedao/reactor-browser";
|
|
7
10
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
if ("documentModelState" in doc) {
|
|
15
|
-
return doc.documentModelState as DocumentModelModule["documentModel"];
|
|
16
|
-
}
|
|
11
|
+
/**
|
|
12
|
+
* Document creation UI component.
|
|
13
|
+
* Displays available document types as clickable buttons.
|
|
14
|
+
*/
|
|
15
|
+
export function CreateDocument() {
|
|
16
|
+
const allowedDocumentModelModules = useAllowedDocumentModelModules();
|
|
17
17
|
|
|
18
|
-
return doc.documentModel;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
export const CreateDocument: React.FC<CreateDocumentProps> = ({
|
|
22
|
-
documentModels,
|
|
23
|
-
createDocument,
|
|
24
|
-
}) => {
|
|
25
18
|
return (
|
|
26
|
-
<div
|
|
19
|
+
<div>
|
|
20
|
+
{/* Customize section title here */}
|
|
27
21
|
<h3 className="mb-3 mt-4 text-sm font-bold text-gray-600">
|
|
28
|
-
|
|
22
|
+
Create document
|
|
29
23
|
</h3>
|
|
24
|
+
{/* Customize layout by changing flex-wrap, gap, or grid layout */}
|
|
30
25
|
<div className="flex w-full flex-wrap gap-4">
|
|
31
|
-
{
|
|
32
|
-
const spec = getDocumentSpec(doc);
|
|
26
|
+
{allowedDocumentModelModules?.map((documentModelModule) => {
|
|
33
27
|
return (
|
|
34
|
-
<
|
|
35
|
-
key={
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
className="cursor-pointer"
|
|
39
|
-
title={spec.name}
|
|
40
|
-
aria-description={spec.description}
|
|
41
|
-
onClick={() => createDocument(doc)}
|
|
42
|
-
>
|
|
43
|
-
<span className="text-sm">{spec.name}</span>
|
|
44
|
-
</Button>
|
|
28
|
+
<CreateDocumentButton
|
|
29
|
+
key={documentModelModule.documentModel.global.id}
|
|
30
|
+
documentModelModule={documentModelModule}
|
|
31
|
+
/>
|
|
45
32
|
);
|
|
46
33
|
})}
|
|
47
34
|
</div>
|
|
48
35
|
</div>
|
|
49
36
|
);
|
|
50
|
-
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
type Props = {
|
|
40
|
+
documentModelModule: VetraDocumentModelModule;
|
|
41
|
+
};
|
|
42
|
+
function CreateDocumentButton({ documentModelModule }: Props) {
|
|
43
|
+
const documentType = documentModelModule.documentModel.global.id;
|
|
44
|
+
const documentModelName =
|
|
45
|
+
documentModelModule.documentModel.global.name || documentType;
|
|
46
|
+
const documentModelDescription =
|
|
47
|
+
documentModelModule.documentModel.global.description;
|
|
48
|
+
return (
|
|
49
|
+
<button
|
|
50
|
+
className="cursor-pointer rounded-md bg-gray-200 py-2 px-3 hover:bg-gray-300"
|
|
51
|
+
title={documentModelName}
|
|
52
|
+
aria-description={documentModelDescription}
|
|
53
|
+
onClick={() => showCreateDocumentModal(documentType)}
|
|
54
|
+
>
|
|
55
|
+
{documentModelName}
|
|
56
|
+
</button>
|
|
57
|
+
);
|
|
58
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= driveEditorDir %>/components/DriveContents.tsx"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import { CreateDocument } from "./CreateDocument.js";
|
|
6
|
+
import { EmptyState } from "./EmptyState.js";
|
|
7
|
+
import { Files } from "./Files.js";
|
|
8
|
+
import { Folders } from "./Folders.js";
|
|
9
|
+
import { NavigationBreadcrumbs } from "./NavigationBreadcrumbs.js";
|
|
10
|
+
|
|
11
|
+
/** Shows the documents and folders in the selected drive */
|
|
12
|
+
export function DriveContents() {
|
|
13
|
+
return (
|
|
14
|
+
<div className="space-y-6 px-6">
|
|
15
|
+
<NavigationBreadcrumbs />
|
|
16
|
+
<Folders />
|
|
17
|
+
<Files />
|
|
18
|
+
<EmptyState />
|
|
19
|
+
<CreateDocument />
|
|
20
|
+
</div>
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
@@ -1,238 +1,32 @@
|
|
|
1
1
|
---
|
|
2
|
-
to: "<%=
|
|
2
|
+
to: "<%= driveEditorDir %>/components/DriveExplorer.tsx"
|
|
3
3
|
unless_exists: true
|
|
4
4
|
---
|
|
5
|
-
import {
|
|
6
|
-
type BaseUiFileNode,
|
|
7
|
-
type BaseUiFolderNode,
|
|
8
|
-
type BaseUiNode,
|
|
9
|
-
type UiFileNode,
|
|
10
|
-
type UiFolderNode,
|
|
11
|
-
type UiNode,
|
|
12
|
-
} from "@powerhousedao/design-system";
|
|
13
|
-
import { useCallback, useState, useRef, useEffect } from "react";
|
|
14
|
-
import type { FileNode, GetDocumentOptions, Node } from "document-drive";
|
|
15
|
-
import { FileItemsGrid } from "./FileItemsGrid.js";
|
|
16
|
-
import { FolderItemsGrid } from "./FolderItemsGrid.js";
|
|
5
|
+
import type { EditorProps } from "document-model";
|
|
17
6
|
import { FolderTree } from "./FolderTree.js";
|
|
18
|
-
import {
|
|
19
|
-
import { useSelectedFolderChildren } from "../hooks/useSelectedFolderChildren.js";
|
|
20
|
-
import { EditorContainer } from "./EditorContainer.js";
|
|
21
|
-
import type { DocumentModelModule } from "document-model";
|
|
22
|
-
import { CreateDocumentModal } from "@powerhousedao/design-system";
|
|
23
|
-
import { CreateDocument } from "./CreateDocument.js";
|
|
24
|
-
import { type DriveEditorContext, useDriveContext } from "@powerhousedao/reactor-browser";
|
|
7
|
+
import { DriveContents } from "./DriveContents.js";
|
|
25
8
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
context: DriveEditorContext;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export function DriveExplorer({
|
|
37
|
-
driveId,
|
|
38
|
-
nodes,
|
|
39
|
-
onDeleteNode,
|
|
40
|
-
renameNode,
|
|
41
|
-
onAddFolder,
|
|
42
|
-
onCopyNode,
|
|
43
|
-
context,
|
|
44
|
-
}: DriveExplorerProps) {
|
|
45
|
-
const { getDocumentRevision } = context;
|
|
46
|
-
|
|
47
|
-
const [selectedNodeId, setSelectedNodeId] = useState<string | undefined>();
|
|
48
|
-
const [activeDocumentId, setActiveDocumentId] = useState<
|
|
49
|
-
string | undefined
|
|
50
|
-
>();
|
|
51
|
-
const [openModal, setOpenModal] = useState(false);
|
|
52
|
-
const selectedDocumentModel = useRef<DocumentModelModule | null>(null);
|
|
53
|
-
const { addDocument, documentModels } = useDriveContext();
|
|
54
|
-
|
|
55
|
-
// Dummy functions to satisfy component types
|
|
56
|
-
const dummyDuplicateNode = useCallback((node: BaseUiNode) => {
|
|
57
|
-
console.log("Duplicate node:", node);
|
|
58
|
-
}, []);
|
|
59
|
-
|
|
60
|
-
const dummyAddFile = useCallback(
|
|
61
|
-
async (file: File, parentNode: BaseUiNode | null) => {
|
|
62
|
-
console.log("Add file:", file, parentNode);
|
|
63
|
-
},
|
|
64
|
-
[]
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
const dummyMoveNode = useCallback(
|
|
68
|
-
async (uiNode: BaseUiNode, targetNode: BaseUiNode) => {
|
|
69
|
-
console.log("Move node:", uiNode, targetNode);
|
|
70
|
-
},
|
|
71
|
-
[]
|
|
72
|
-
);
|
|
73
|
-
|
|
74
|
-
const handleNodeSelect = useCallback((node: BaseUiFolderNode) => {
|
|
75
|
-
console.log("Selected node:", node);
|
|
76
|
-
setSelectedNodeId(node.id);
|
|
77
|
-
}, []);
|
|
78
|
-
|
|
79
|
-
const handleFileSelect = useCallback((node: BaseUiFileNode) => {
|
|
80
|
-
setActiveDocumentId(node.id);
|
|
81
|
-
}, []);
|
|
82
|
-
|
|
83
|
-
const handleEditorClose = useCallback(() => {
|
|
84
|
-
setActiveDocumentId(undefined);
|
|
85
|
-
}, []);
|
|
86
|
-
|
|
87
|
-
const onCreateDocument = useCallback(
|
|
88
|
-
async (fileName: string) => {
|
|
89
|
-
setOpenModal(false);
|
|
90
|
-
|
|
91
|
-
const documentModel = selectedDocumentModel.current;
|
|
92
|
-
if (!documentModel) return;
|
|
93
|
-
|
|
94
|
-
const node = await addDocument(
|
|
95
|
-
driveId,
|
|
96
|
-
fileName,
|
|
97
|
-
documentModel.documentModel.id,
|
|
98
|
-
selectedNodeId,
|
|
99
|
-
);
|
|
100
|
-
|
|
101
|
-
selectedDocumentModel.current = null;
|
|
102
|
-
setActiveDocumentId(node.id);
|
|
103
|
-
},
|
|
104
|
-
[addDocument, driveId, selectedNodeId]
|
|
105
|
-
);
|
|
106
|
-
|
|
107
|
-
const onSelectDocumentModel = useCallback(
|
|
108
|
-
(documentModel: DocumentModelModule) => {
|
|
109
|
-
selectedDocumentModel.current = documentModel;
|
|
110
|
-
setOpenModal(true);
|
|
111
|
-
},
|
|
112
|
-
[]
|
|
113
|
-
);
|
|
114
|
-
|
|
115
|
-
const onGetDocumentRevision = useCallback(
|
|
116
|
-
(options?: GetDocumentOptions) => {
|
|
117
|
-
if (!activeDocumentId) return;
|
|
118
|
-
return getDocumentRevision?.(activeDocumentId, options);
|
|
119
|
-
},
|
|
120
|
-
[getDocumentRevision, activeDocumentId],
|
|
121
|
-
);
|
|
122
|
-
|
|
123
|
-
const filteredDocumentModels = documentModels;
|
|
124
|
-
|
|
125
|
-
// Transform nodes using the custom hook
|
|
126
|
-
const transformedNodes = useTransformedNodes(nodes, driveId);
|
|
127
|
-
|
|
128
|
-
// Separate folders and files
|
|
129
|
-
const folders = transformedNodes.filter(
|
|
130
|
-
(node): node is UiFolderNode => node.kind === "FOLDER"
|
|
131
|
-
);
|
|
132
|
-
const files = transformedNodes.filter(
|
|
133
|
-
(node): node is UiFileNode => node.kind === "FILE"
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
// Get children of selected folder using the custom hook
|
|
137
|
-
const selectedFolderChildren = useSelectedFolderChildren(
|
|
138
|
-
selectedNodeId,
|
|
139
|
-
folders,
|
|
140
|
-
files
|
|
141
|
-
);
|
|
142
|
-
|
|
143
|
-
// Get the active document info from nodes
|
|
144
|
-
const activeDocument = activeDocumentId
|
|
145
|
-
? files.find((file) => file.id === activeDocumentId)
|
|
146
|
-
: undefined;
|
|
147
|
-
|
|
148
|
-
const documentModelModule = activeDocument
|
|
149
|
-
? context.getDocumentModelModule(activeDocument.documentType)
|
|
150
|
-
: null;
|
|
151
|
-
|
|
152
|
-
const editorModule = activeDocument
|
|
153
|
-
? context.getEditor(activeDocument.documentType)
|
|
154
|
-
: null;
|
|
9
|
+
/**
|
|
10
|
+
* Main drive explorer component with sidebar navigation and content area.
|
|
11
|
+
* Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
|
|
12
|
+
*/
|
|
13
|
+
export function DriveExplorer({ children }: EditorProps) {
|
|
14
|
+
// if a document is selected then it's editor will be passed as children
|
|
15
|
+
const showDocumentEditor = !!children;
|
|
155
16
|
|
|
156
17
|
return (
|
|
157
18
|
<div className="flex h-full">
|
|
158
|
-
|
|
159
|
-
<div className="
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
onSelectNode={handleNodeSelect}
|
|
165
|
-
/>
|
|
166
|
-
</div>
|
|
167
|
-
|
|
168
|
-
{/* Main Content */}
|
|
169
|
-
<div className="flex-1 p-4 overflow-y-auto">
|
|
170
|
-
{activeDocument && documentModelModule && editorModule ? (
|
|
171
|
-
<EditorContainer
|
|
172
|
-
context={{
|
|
173
|
-
...context,
|
|
174
|
-
getDocumentRevision: onGetDocumentRevision,
|
|
175
|
-
}}
|
|
176
|
-
documentId={activeDocumentId!}
|
|
177
|
-
documentType={activeDocument.documentType}
|
|
178
|
-
driveId={driveId}
|
|
179
|
-
onClose={handleEditorClose}
|
|
180
|
-
title={activeDocument.name}
|
|
181
|
-
documentModelModule={documentModelModule}
|
|
182
|
-
editorModule={editorModule}
|
|
183
|
-
/>
|
|
19
|
+
<FolderTree />
|
|
20
|
+
<div className="flex-1 overflow-y-auto p-4">
|
|
21
|
+
{/* Conditional rendering: Document editor or folder contents */}
|
|
22
|
+
{showDocumentEditor ? (
|
|
23
|
+
/* Document editor view */
|
|
24
|
+
children
|
|
184
25
|
) : (
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
{/* Folders Section */}
|
|
189
|
-
<FolderItemsGrid
|
|
190
|
-
folders={selectedFolderChildren.folders}
|
|
191
|
-
onSelectNode={handleNodeSelect}
|
|
192
|
-
onRenameNode={renameNode}
|
|
193
|
-
onDuplicateNode={(uiNode) =>
|
|
194
|
-
onCopyNode(
|
|
195
|
-
uiNode.id,
|
|
196
|
-
"Copy of " + uiNode.name,
|
|
197
|
-
uiNode.parentFolder
|
|
198
|
-
)
|
|
199
|
-
}
|
|
200
|
-
onDeleteNode={onDeleteNode}
|
|
201
|
-
onAddFile={dummyAddFile}
|
|
202
|
-
onCopyNode={async (uiNode, targetNode) =>
|
|
203
|
-
onCopyNode(uiNode.id, "Copy of " + uiNode.name, targetNode.id)
|
|
204
|
-
}
|
|
205
|
-
onMoveNode={dummyMoveNode}
|
|
206
|
-
isAllowedToCreateDocuments={true}
|
|
207
|
-
onAddFolder={onAddFolder}
|
|
208
|
-
parentFolderId={selectedNodeId}
|
|
209
|
-
/>
|
|
210
|
-
|
|
211
|
-
{/* Files Section */}
|
|
212
|
-
<FileItemsGrid
|
|
213
|
-
files={selectedFolderChildren.files}
|
|
214
|
-
onSelectNode={handleFileSelect}
|
|
215
|
-
onRenameNode={renameNode}
|
|
216
|
-
onDuplicateNode={dummyDuplicateNode}
|
|
217
|
-
onDeleteNode={onDeleteNode}
|
|
218
|
-
isAllowedToCreateDocuments={true}
|
|
219
|
-
/>
|
|
220
|
-
|
|
221
|
-
{/* Create Document Section */}
|
|
222
|
-
<CreateDocument
|
|
223
|
-
createDocument={onSelectDocumentModel}
|
|
224
|
-
documentModels={filteredDocumentModels}
|
|
225
|
-
/>
|
|
226
|
-
</>
|
|
26
|
+
/* Folder contents view */
|
|
27
|
+
<DriveContents />
|
|
227
28
|
)}
|
|
228
29
|
</div>
|
|
229
|
-
|
|
230
|
-
{/* Create Document Modal */}
|
|
231
|
-
<CreateDocumentModal
|
|
232
|
-
onContinue={onCreateDocument}
|
|
233
|
-
onOpenChange={(open) => setOpenModal(open)}
|
|
234
|
-
open={openModal}
|
|
235
|
-
/>
|
|
236
30
|
</div>
|
|
237
31
|
);
|
|
238
|
-
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
to: "<%= driveEditorDir %>/components/EmptyState.tsx"
|
|
3
|
+
unless_exists: true
|
|
4
|
+
---
|
|
5
|
+
import { useNodesInSelectedDriveOrFolder } from "@powerhousedao/reactor-browser";
|
|
6
|
+
|
|
7
|
+
/** Shows a message when the selected drive or folder is empty */
|
|
8
|
+
export function EmptyState() {
|
|
9
|
+
const nodes = useNodesInSelectedDriveOrFolder();
|
|
10
|
+
const hasNodes = nodes.length > 0;
|
|
11
|
+
if (hasNodes) return null;
|
|
12
|
+
|
|
13
|
+
return (
|
|
14
|
+
<div className="py-12 text-center text-gray-500">
|
|
15
|
+
<p className="text-lg">This folder is empty</p>
|
|
16
|
+
<p className="mt-2 text-sm">Create your first document or folder below</p>
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
}
|