@powerhousedao/codegen 6.0.0-dev.19 → 6.0.0-dev.191
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/templates/boilerplate/LICENSE.js → LICENSE} +1 -4
- package/dist/file-builders-BV9wDPPZ.mjs +1652 -0
- package/dist/file-builders-BV9wDPPZ.mjs.map +1 -0
- package/dist/index-CHAnPBj2.d.mts +199 -0
- package/dist/index-CHAnPBj2.d.mts.map +1 -0
- package/dist/index-CJZGVSYg.d.mts +65 -0
- package/dist/index-CJZGVSYg.d.mts.map +1 -0
- package/dist/index.d.mts +298 -0
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +802 -0
- package/dist/index.mjs.map +1 -0
- package/dist/src/file-builders/index.d.mts +3 -0
- package/dist/src/file-builders/index.mjs +3 -0
- package/dist/src/name-builders/index.d.mts +2 -0
- package/dist/src/name-builders/index.mjs +146 -0
- package/dist/src/name-builders/index.mjs.map +1 -0
- package/dist/src/templates/index.d.mts +415 -0
- package/dist/src/templates/index.d.mts.map +1 -0
- package/dist/src/templates/index.mjs +2 -0
- package/dist/src/utils/index.d.mts +125 -0
- package/dist/src/utils/index.d.mts.map +1 -0
- package/dist/src/utils/index.mjs +380 -0
- package/dist/src/utils/index.mjs.map +1 -0
- package/dist/templates-BbNsigQX.mjs +6387 -0
- package/dist/templates-BbNsigQX.mjs.map +1 -0
- package/dist/types-e2ztuDtG.d.mts +87 -0
- package/dist/types-e2ztuDtG.d.mts.map +1 -0
- package/dist/validation-Bpg_44mW.d.mts +43 -0
- package/dist/validation-Bpg_44mW.d.mts.map +1 -0
- package/package.json +31 -58
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/src/codegen/.hygen/package.json +0 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +0 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +0 -17
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +0 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +0 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +0 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +0 -5
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-schema.esm.t +0 -56
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-type.esm.t +0 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +0 -121
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/hooks.esm.t +0 -49
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +0 -23
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +0 -127
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +0 -93
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +0 -46
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/root-utils.esm.t +0 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootActions.esm.t +0 -13
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +0 -14
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +0 -6
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/src-index.esm.t +0 -5
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +0 -31
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +0 -77
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/actions.esm.t +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +0 -37
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +0 -44
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +0 -36
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +0 -71
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/operations.esm.t +0 -17
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +0 -118
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +0 -130
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +0 -44
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +0 -58
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveContents.esm.t +0 -23
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +0 -32
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EmptyState.esm.t +0 -19
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t +0 -29
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +0 -108
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t +0 -28
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/NavigationBreadcrumbs.esm.t +0 -14
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +0 -11
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +0 -20
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +0 -25
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/module.esm.t +0 -15
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +0 -80
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +0 -90
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/module.esm.t +0 -16
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.esm.t +0 -59
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +0 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/utils.esm.t +0 -100
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +0 -22
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +0 -62
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +0 -12
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.esm.t +0 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +0 -12
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +0 -34
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_export.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +0 -40
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +0 -47
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +0 -12
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.esm.t +0 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +0 -12
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +0 -34
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_export.esm.t +0 -9
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +0 -7
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +0 -23
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +0 -13
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +0 -17
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +0 -10
- package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/lib.esm.t +0 -9
- package/dist/src/codegen/__tests__/config.d.ts +0 -3
- package/dist/src/codegen/__tests__/config.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/config.js +0 -3
- package/dist/src/codegen/__tests__/config.js.map +0 -1
- package/dist/src/codegen/__tests__/constants.d.ts +0 -16
- package/dist/src/codegen/__tests__/constants.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/constants.js +0 -16
- package/dist/src/codegen/__tests__/constants.js.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts +0 -2
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js +0 -9
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts +0 -3
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js +0 -33
- package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts +0 -2
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js +0 -23
- package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts +0 -2
- package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/fixtures/typecheck.js +0 -23
- package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +0 -1
- package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts +0 -2
- package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generate-doc-model.test.js +0 -234
- package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +0 -1
- package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts +0 -2
- package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js +0 -181
- package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +0 -1
- package/dist/src/codegen/__tests__/generate-editor.test.d.ts +0 -2
- package/dist/src/codegen/__tests__/generate-editor.test.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generate-editor.test.js +0 -119
- package/dist/src/codegen/__tests__/generate-editor.test.js.map +0 -1
- package/dist/src/codegen/__tests__/generate-manifest.test.d.ts +0 -2
- package/dist/src/codegen/__tests__/generate-manifest.test.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generate-manifest.test.js +0 -192
- package/dist/src/codegen/__tests__/generate-manifest.test.js.map +0 -1
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts +0 -2
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js +0 -159
- package/dist/src/codegen/__tests__/generate-versioned-document-model.test.js.map +0 -1
- package/dist/src/codegen/__tests__/global-setup.d.ts +0 -2
- package/dist/src/codegen/__tests__/global-setup.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/global-setup.js +0 -21
- package/dist/src/codegen/__tests__/global-setup.js.map +0 -1
- package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts +0 -2
- package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js +0 -73
- package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +0 -1
- package/dist/src/codegen/__tests__/utils.d.ts +0 -7
- package/dist/src/codegen/__tests__/utils.d.ts.map +0 -1
- package/dist/src/codegen/__tests__/utils.js +0 -52
- package/dist/src/codegen/__tests__/utils.js.map +0 -1
- package/dist/src/codegen/generate.d.ts +0 -79
- package/dist/src/codegen/generate.d.ts.map +0 -1
- package/dist/src/codegen/generate.js +0 -332
- package/dist/src/codegen/generate.js.map +0 -1
- package/dist/src/codegen/graphql.d.ts +0 -36
- package/dist/src/codegen/graphql.d.ts.map +0 -1
- package/dist/src/codegen/graphql.js +0 -146
- package/dist/src/codegen/graphql.js.map +0 -1
- package/dist/src/codegen/hygen.d.ts +0 -47
- package/dist/src/codegen/hygen.d.ts.map +0 -1
- package/dist/src/codegen/hygen.js +0 -230
- package/dist/src/codegen/hygen.js.map +0 -1
- package/dist/src/codegen/index.d.ts +0 -7
- package/dist/src/codegen/index.d.ts.map +0 -1
- package/dist/src/codegen/index.js +0 -7
- package/dist/src/codegen/index.js.map +0 -1
- package/dist/src/codegen/kysely.d.ts +0 -6
- package/dist/src/codegen/kysely.d.ts.map +0 -1
- package/dist/src/codegen/kysely.js +0 -51
- package/dist/src/codegen/kysely.js.map +0 -1
- package/dist/src/codegen/types.d.ts +0 -9
- package/dist/src/codegen/types.d.ts.map +0 -1
- package/dist/src/codegen/types.js +0 -2
- package/dist/src/codegen/types.js.map +0 -1
- package/dist/src/codegen/utils.d.ts +0 -7
- package/dist/src/codegen/utils.d.ts.map +0 -1
- package/dist/src/codegen/utils.js +0 -79
- package/dist/src/codegen/utils.js.map +0 -1
- package/dist/src/create-lib/checkout-project.d.ts +0 -13
- package/dist/src/create-lib/checkout-project.d.ts.map +0 -1
- package/dist/src/create-lib/checkout-project.js +0 -47
- package/dist/src/create-lib/checkout-project.js.map +0 -1
- package/dist/src/create-lib/create-project.d.ts +0 -10
- package/dist/src/create-lib/create-project.d.ts.map +0 -1
- package/dist/src/create-lib/create-project.js +0 -106
- package/dist/src/create-lib/create-project.js.map +0 -1
- package/dist/src/create-lib/feature-flags.d.ts +0 -4
- package/dist/src/create-lib/feature-flags.d.ts.map +0 -1
- package/dist/src/create-lib/feature-flags.js +0 -4
- package/dist/src/create-lib/feature-flags.js.map +0 -1
- package/dist/src/create-lib/index.d.ts +0 -3
- package/dist/src/create-lib/index.d.ts.map +0 -1
- package/dist/src/create-lib/index.js +0 -3
- package/dist/src/create-lib/index.js.map +0 -1
- package/dist/src/create-lib/utils.d.ts +0 -8
- package/dist/src/create-lib/utils.d.ts.map +0 -1
- package/dist/src/create-lib/utils.js +0 -34
- package/dist/src/create-lib/utils.js.map +0 -1
- package/dist/src/file-builders/boilerplate/build-package-json.test.d.ts +0 -2
- package/dist/src/file-builders/boilerplate/build-package-json.test.d.ts.map +0 -1
- package/dist/src/file-builders/boilerplate/build-package-json.test.js +0 -28
- package/dist/src/file-builders/boilerplate/build-package-json.test.js.map +0 -1
- package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts +0 -2
- package/dist/src/file-builders/boilerplate/ci-templates.test.d.ts.map +0 -1
- package/dist/src/file-builders/boilerplate/ci-templates.test.js +0 -114
- package/dist/src/file-builders/boilerplate/ci-templates.test.js.map +0 -1
- package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts +0 -2
- package/dist/src/file-builders/boilerplate/package-json-versions.test.d.ts.map +0 -1
- package/dist/src/file-builders/boilerplate/package-json-versions.test.js +0 -34
- package/dist/src/file-builders/boilerplate/package-json-versions.test.js.map +0 -1
- package/dist/src/file-builders/boilerplate/package.json.d.ts +0 -6
- package/dist/src/file-builders/boilerplate/package.json.d.ts.map +0 -1
- package/dist/src/file-builders/boilerplate/package.json.js +0 -18
- package/dist/src/file-builders/boilerplate/package.json.js.map +0 -1
- package/dist/src/file-builders/clis/generate-cli-docs.d.ts +0 -17
- package/dist/src/file-builders/clis/generate-cli-docs.d.ts.map +0 -1
- package/dist/src/file-builders/clis/generate-cli-docs.js +0 -36
- package/dist/src/file-builders/clis/generate-cli-docs.js.map +0 -1
- package/dist/src/file-builders/document-editor.d.ts +0 -8
- package/dist/src/file-builders/document-editor.d.ts.map +0 -1
- package/dist/src/file-builders/document-editor.js +0 -57
- package/dist/src/file-builders/document-editor.js.map +0 -1
- package/dist/src/file-builders/document-model/document-model.d.ts +0 -8
- package/dist/src/file-builders/document-model/document-model.d.ts.map +0 -1
- package/dist/src/file-builders/document-model/document-model.js +0 -246
- package/dist/src/file-builders/document-model/document-model.js.map +0 -1
- package/dist/src/file-builders/document-model/gen-dir.d.ts +0 -3
- package/dist/src/file-builders/document-model/gen-dir.d.ts.map +0 -1
- package/dist/src/file-builders/document-model/gen-dir.js +0 -201
- package/dist/src/file-builders/document-model/gen-dir.js.map +0 -1
- package/dist/src/file-builders/document-model/root-dir.d.ts +0 -3
- package/dist/src/file-builders/document-model/root-dir.d.ts.map +0 -1
- package/dist/src/file-builders/document-model/root-dir.js +0 -51
- package/dist/src/file-builders/document-model/root-dir.js.map +0 -1
- package/dist/src/file-builders/document-model/src-dir.d.ts +0 -3
- package/dist/src/file-builders/document-model/src-dir.d.ts.map +0 -1
- package/dist/src/file-builders/document-model/src-dir.js +0 -118
- package/dist/src/file-builders/document-model/src-dir.js.map +0 -1
- package/dist/src/file-builders/document-model/tests-dir.d.ts +0 -3
- package/dist/src/file-builders/document-model/tests-dir.d.ts.map +0 -1
- package/dist/src/file-builders/document-model/tests-dir.js +0 -127
- package/dist/src/file-builders/document-model/tests-dir.js.map +0 -1
- package/dist/src/file-builders/document-model/upgrades-dir.d.ts +0 -31
- package/dist/src/file-builders/document-model/upgrades-dir.d.ts.map +0 -1
- package/dist/src/file-builders/document-model/upgrades-dir.js +0 -135
- package/dist/src/file-builders/document-model/upgrades-dir.js.map +0 -1
- package/dist/src/file-builders/drive-editor.d.ts +0 -9
- package/dist/src/file-builders/drive-editor.d.ts.map +0 -1
- package/dist/src/file-builders/drive-editor.js +0 -164
- package/dist/src/file-builders/drive-editor.js.map +0 -1
- package/dist/src/file-builders/editor-common.d.ts +0 -13
- package/dist/src/file-builders/editor-common.d.ts.map +0 -1
- package/dist/src/file-builders/editor-common.js +0 -26
- package/dist/src/file-builders/editor-common.js.map +0 -1
- package/dist/src/file-builders/index-files.d.ts +0 -18
- package/dist/src/file-builders/index-files.d.ts.map +0 -1
- package/dist/src/file-builders/index-files.js +0 -25
- package/dist/src/file-builders/index-files.js.map +0 -1
- package/dist/src/file-builders/index.d.ts +0 -11
- package/dist/src/file-builders/index.d.ts.map +0 -1
- package/dist/src/file-builders/index.js +0 -10
- package/dist/src/file-builders/index.js.map +0 -1
- package/dist/src/file-builders/module-files.d.ts +0 -52
- package/dist/src/file-builders/module-files.d.ts.map +0 -1
- package/dist/src/file-builders/module-files.js +0 -230
- package/dist/src/file-builders/module-files.js.map +0 -1
- package/dist/src/file-builders/subgraphs.d.ts +0 -6
- package/dist/src/file-builders/subgraphs.d.ts.map +0 -1
- package/dist/src/file-builders/subgraphs.js +0 -53
- package/dist/src/file-builders/subgraphs.js.map +0 -1
- package/dist/src/file-builders/types.d.ts +0 -84
- package/dist/src/file-builders/types.d.ts.map +0 -1
- package/dist/src/file-builders/types.js +0 -2
- package/dist/src/file-builders/types.js.map +0 -1
- package/dist/src/index.d.ts +0 -5
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -5
- package/dist/src/index.js.map +0 -1
- package/dist/src/name-builders/get-action-names.d.ts +0 -6
- package/dist/src/name-builders/get-action-names.d.ts.map +0 -1
- package/dist/src/name-builders/get-action-names.js +0 -16
- package/dist/src/name-builders/get-action-names.js.map +0 -1
- package/dist/src/name-builders/get-variable-names.d.ts +0 -48
- package/dist/src/name-builders/get-variable-names.d.ts.map +0 -1
- package/dist/src/name-builders/get-variable-names.js +0 -147
- package/dist/src/name-builders/get-variable-names.js.map +0 -1
- package/dist/src/name-builders/index.d.ts +0 -3
- package/dist/src/name-builders/index.d.ts.map +0 -1
- package/dist/src/name-builders/index.js +0 -3
- package/dist/src/name-builders/index.js.map +0 -1
- package/dist/src/templates/boilerplate/AGENTS.md.d.ts +0 -2
- package/dist/src/templates/boilerplate/AGENTS.md.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/AGENTS.md.js +0 -449
- package/dist/src/templates/boilerplate/AGENTS.md.js.map +0 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts +0 -2
- package/dist/src/templates/boilerplate/CLAUDE.md.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/CLAUDE.md.js +0 -2
- package/dist/src/templates/boilerplate/CLAUDE.md.js.map +0 -1
- package/dist/src/templates/boilerplate/LICENSE.d.ts +0 -2
- package/dist/src/templates/boilerplate/LICENSE.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/LICENSE.js.map +0 -1
- package/dist/src/templates/boilerplate/README.md.d.ts +0 -2
- package/dist/src/templates/boilerplate/README.md.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/README.md.js +0 -194
- package/dist/src/templates/boilerplate/README.md.js.map +0 -1
- package/dist/src/templates/boilerplate/claude/settings.local.json.d.ts +0 -2
- package/dist/src/templates/boilerplate/claude/settings.local.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/claude/settings.local.json.js +0 -18
- package/dist/src/templates/boilerplate/claude/settings.local.json.js.map +0 -1
- package/dist/src/templates/boilerplate/cursor/mcp.json.d.ts +0 -2
- package/dist/src/templates/boilerplate/cursor/mcp.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/cursor/mcp.json.js +0 -12
- package/dist/src/templates/boilerplate/cursor/mcp.json.js.map +0 -1
- package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts +0 -2
- package/dist/src/templates/boilerplate/docker/Dockerfile.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/docker/Dockerfile.js +0 -144
- package/dist/src/templates/boilerplate/docker/Dockerfile.js.map +0 -1
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts +0 -2
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js +0 -18
- package/dist/src/templates/boilerplate/docker/connect-entrypoint.sh.js.map +0 -1
- package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts +0 -2
- package/dist/src/templates/boilerplate/docker/nginx.conf.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/docker/nginx.conf.js +0 -79
- package/dist/src/templates/boilerplate/docker/nginx.conf.js.map +0 -1
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts +0 -2
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js +0 -19
- package/dist/src/templates/boilerplate/docker/switchboard-entrypoint.sh.js.map +0 -1
- package/dist/src/templates/boilerplate/document-models/document-models.d.ts +0 -2
- package/dist/src/templates/boilerplate/document-models/document-models.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/document-models/document-models.js +0 -7
- package/dist/src/templates/boilerplate/document-models/document-models.js.map +0 -1
- package/dist/src/templates/boilerplate/document-models/index.d.ts +0 -2
- package/dist/src/templates/boilerplate/document-models/index.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/document-models/index.js +0 -2
- package/dist/src/templates/boilerplate/document-models/index.js.map +0 -1
- package/dist/src/templates/boilerplate/editors/editors.d.ts +0 -2
- package/dist/src/templates/boilerplate/editors/editors.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/editors/editors.js +0 -7
- package/dist/src/templates/boilerplate/editors/editors.js.map +0 -1
- package/dist/src/templates/boilerplate/editors/index.d.ts +0 -2
- package/dist/src/templates/boilerplate/editors/index.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/editors/index.js +0 -2
- package/dist/src/templates/boilerplate/editors/index.js.map +0 -1
- package/dist/src/templates/boilerplate/eslint.config.js.d.ts +0 -2
- package/dist/src/templates/boilerplate/eslint.config.js.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/eslint.config.js.js +0 -140
- package/dist/src/templates/boilerplate/eslint.config.js.js.map +0 -1
- package/dist/src/templates/boilerplate/gemini/settings.json.d.ts +0 -2
- package/dist/src/templates/boilerplate/gemini/settings.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/gemini/settings.json.js +0 -12
- package/dist/src/templates/boilerplate/gemini/settings.json.js.map +0 -1
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts +0 -2
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js +0 -376
- package/dist/src/templates/boilerplate/github/sync-and-publish.yml.js.map +0 -1
- package/dist/src/templates/boilerplate/gitignore.d.ts +0 -2
- package/dist/src/templates/boilerplate/gitignore.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/gitignore.js +0 -11
- package/dist/src/templates/boilerplate/gitignore.js.map +0 -1
- package/dist/src/templates/boilerplate/index.d.ts +0 -2
- package/dist/src/templates/boilerplate/index.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/index.html.d.ts +0 -2
- package/dist/src/templates/boilerplate/index.html.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/index.html.js +0 -31
- package/dist/src/templates/boilerplate/index.html.js.map +0 -1
- package/dist/src/templates/boilerplate/index.html.legacy.d.ts +0 -2
- package/dist/src/templates/boilerplate/index.html.legacy.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/index.html.legacy.js +0 -36
- package/dist/src/templates/boilerplate/index.html.legacy.js.map +0 -1
- package/dist/src/templates/boilerplate/index.js +0 -8
- package/dist/src/templates/boilerplate/index.js.map +0 -1
- package/dist/src/templates/boilerplate/mcp.json.d.ts +0 -2
- package/dist/src/templates/boilerplate/mcp.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/mcp.json.js +0 -12
- package/dist/src/templates/boilerplate/mcp.json.js.map +0 -1
- package/dist/src/templates/boilerplate/npmrc.d.ts +0 -2
- package/dist/src/templates/boilerplate/npmrc.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/npmrc.js +0 -2
- package/dist/src/templates/boilerplate/npmrc.js.map +0 -1
- package/dist/src/templates/boilerplate/package.json.d.ts +0 -2
- package/dist/src/templates/boilerplate/package.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/package.json.js +0 -114
- package/dist/src/templates/boilerplate/package.json.js.map +0 -1
- package/dist/src/templates/boilerplate/package.json.legacy.d.ts +0 -55
- package/dist/src/templates/boilerplate/package.json.legacy.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/package.json.legacy.js +0 -55
- package/dist/src/templates/boilerplate/package.json.legacy.js.map +0 -1
- package/dist/src/templates/boilerplate/powerhouse.config.json.d.ts +0 -6
- package/dist/src/templates/boilerplate/powerhouse.config.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/powerhouse.config.json.js +0 -46
- package/dist/src/templates/boilerplate/powerhouse.config.json.js.map +0 -1
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.d.ts +0 -2
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.js +0 -19
- package/dist/src/templates/boilerplate/powerhouse.manifest.json.js.map +0 -1
- package/dist/src/templates/boilerplate/processors/index.d.ts +0 -2
- package/dist/src/templates/boilerplate/processors/index.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/processors/index.js +0 -2
- package/dist/src/templates/boilerplate/processors/index.js.map +0 -1
- package/dist/src/templates/boilerplate/style.css.d.ts +0 -2
- package/dist/src/templates/boilerplate/style.css.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/style.css.js +0 -17
- package/dist/src/templates/boilerplate/style.css.js.map +0 -1
- package/dist/src/templates/boilerplate/subgraphs/index.d.ts +0 -2
- package/dist/src/templates/boilerplate/subgraphs/index.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/subgraphs/index.js +0 -2
- package/dist/src/templates/boilerplate/subgraphs/index.js.map +0 -1
- package/dist/src/templates/boilerplate/tsconfig.json.d.ts +0 -2
- package/dist/src/templates/boilerplate/tsconfig.json.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/tsconfig.json.js +0 -46
- package/dist/src/templates/boilerplate/tsconfig.json.js.map +0 -1
- package/dist/src/templates/boilerplate/vite.config.ts.d.ts +0 -2
- package/dist/src/templates/boilerplate/vite.config.ts.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/vite.config.ts.js +0 -21
- package/dist/src/templates/boilerplate/vite.config.ts.js.map +0 -1
- package/dist/src/templates/boilerplate/vitest.config.ts.d.ts +0 -2
- package/dist/src/templates/boilerplate/vitest.config.ts.d.ts.map +0 -1
- package/dist/src/templates/boilerplate/vitest.config.ts.js +0 -21
- package/dist/src/templates/boilerplate/vitest.config.ts.js.map +0 -1
- package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts +0 -8
- package/dist/src/templates/cli-docs/docs-from-cli-help.d.ts.map +0 -1
- package/dist/src/templates/cli-docs/docs-from-cli-help.js +0 -86
- package/dist/src/templates/cli-docs/docs-from-cli-help.js.map +0 -1
- package/dist/src/templates/document-editor/editor.d.ts +0 -5
- package/dist/src/templates/document-editor/editor.d.ts.map +0 -1
- package/dist/src/templates/document-editor/editor.js +0 -85
- package/dist/src/templates/document-editor/editor.js.map +0 -1
- package/dist/src/templates/document-editor/module.d.ts +0 -7
- package/dist/src/templates/document-editor/module.d.ts.map +0 -1
- package/dist/src/templates/document-editor/module.js +0 -16
- package/dist/src/templates/document-editor/module.js.map +0 -1
- package/dist/src/templates/document-model/actions.d.ts +0 -3
- package/dist/src/templates/document-model/actions.d.ts.map +0 -1
- package/dist/src/templates/document-model/actions.js +0 -28
- package/dist/src/templates/document-model/actions.js.map +0 -1
- package/dist/src/templates/document-model/gen/actions.d.ts +0 -3
- package/dist/src/templates/document-model/gen/actions.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/actions.js +0 -40
- package/dist/src/templates/document-model/gen/actions.js.map +0 -1
- package/dist/src/templates/document-model/gen/creators.d.ts +0 -3
- package/dist/src/templates/document-model/gen/creators.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/creators.js +0 -16
- package/dist/src/templates/document-model/gen/creators.js.map +0 -1
- package/dist/src/templates/document-model/gen/document-schema.d.ts +0 -3
- package/dist/src/templates/document-model/gen/document-schema.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/document-schema.js +0 -56
- package/dist/src/templates/document-model/gen/document-schema.js.map +0 -1
- package/dist/src/templates/document-model/gen/document-type.d.ts +0 -3
- package/dist/src/templates/document-model/gen/document-type.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/document-type.js +0 -5
- package/dist/src/templates/document-model/gen/document-type.js.map +0 -1
- package/dist/src/templates/document-model/gen/index.d.ts +0 -3
- package/dist/src/templates/document-model/gen/index.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/index.js +0 -29
- package/dist/src/templates/document-model/gen/index.js.map +0 -1
- package/dist/src/templates/document-model/gen/modules/actions.d.ts +0 -8
- package/dist/src/templates/document-model/gen/modules/actions.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/modules/actions.js +0 -39
- package/dist/src/templates/document-model/gen/modules/actions.js.map +0 -1
- package/dist/src/templates/document-model/gen/modules/creators.d.ts +0 -3
- package/dist/src/templates/document-model/gen/modules/creators.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/modules/creators.js +0 -97
- package/dist/src/templates/document-model/gen/modules/creators.js.map +0 -1
- package/dist/src/templates/document-model/gen/modules/error.d.ts +0 -3
- package/dist/src/templates/document-model/gen/modules/error.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/modules/error.js +0 -73
- package/dist/src/templates/document-model/gen/modules/error.js.map +0 -1
- package/dist/src/templates/document-model/gen/modules/operations.d.ts +0 -3
- package/dist/src/templates/document-model/gen/modules/operations.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/modules/operations.js +0 -61
- package/dist/src/templates/document-model/gen/modules/operations.js.map +0 -1
- package/dist/src/templates/document-model/gen/ph-factories.d.ts +0 -3
- package/dist/src/templates/document-model/gen/ph-factories.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/ph-factories.js +0 -93
- package/dist/src/templates/document-model/gen/ph-factories.js.map +0 -1
- package/dist/src/templates/document-model/gen/reducer.d.ts +0 -3
- package/dist/src/templates/document-model/gen/reducer.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/reducer.js +0 -106
- package/dist/src/templates/document-model/gen/reducer.js.map +0 -1
- package/dist/src/templates/document-model/gen/schema/index.d.ts +0 -2
- package/dist/src/templates/document-model/gen/schema/index.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/schema/index.js +0 -6
- package/dist/src/templates/document-model/gen/schema/index.js.map +0 -1
- package/dist/src/templates/document-model/gen/types.d.ts +0 -3
- package/dist/src/templates/document-model/gen/types.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/types.js +0 -38
- package/dist/src/templates/document-model/gen/types.js.map +0 -1
- package/dist/src/templates/document-model/gen/utils.d.ts +0 -3
- package/dist/src/templates/document-model/gen/utils.d.ts.map +0 -1
- package/dist/src/templates/document-model/gen/utils.js +0 -77
- package/dist/src/templates/document-model/gen/utils.js.map +0 -1
- package/dist/src/templates/document-model/hooks.d.ts +0 -3
- package/dist/src/templates/document-model/hooks.d.ts.map +0 -1
- package/dist/src/templates/document-model/hooks.js +0 -52
- package/dist/src/templates/document-model/hooks.js.map +0 -1
- package/dist/src/templates/document-model/index.d.ts +0 -2
- package/dist/src/templates/document-model/index.d.ts.map +0 -1
- package/dist/src/templates/document-model/index.js +0 -9
- package/dist/src/templates/document-model/index.js.map +0 -1
- package/dist/src/templates/document-model/module.d.ts +0 -9
- package/dist/src/templates/document-model/module.d.ts.map +0 -1
- package/dist/src/templates/document-model/module.js +0 -26
- package/dist/src/templates/document-model/module.js.map +0 -1
- package/dist/src/templates/document-model/src/index.d.ts +0 -2
- package/dist/src/templates/document-model/src/index.d.ts.map +0 -1
- package/dist/src/templates/document-model/src/index.js +0 -5
- package/dist/src/templates/document-model/src/index.js.map +0 -1
- package/dist/src/templates/document-model/src/tests/document-model.test.d.ts +0 -3
- package/dist/src/templates/document-model/src/tests/document-model.test.d.ts.map +0 -1
- package/dist/src/templates/document-model/src/tests/document-model.test.js +0 -121
- package/dist/src/templates/document-model/src/tests/document-model.test.js.map +0 -1
- package/dist/src/templates/document-model/src/tests/module.test.d.ts +0 -6
- package/dist/src/templates/document-model/src/tests/module.test.d.ts.map +0 -1
- package/dist/src/templates/document-model/src/tests/module.test.js +0 -87
- package/dist/src/templates/document-model/src/tests/module.test.js.map +0 -1
- package/dist/src/templates/document-model/src/utils.d.ts +0 -2
- package/dist/src/templates/document-model/src/utils.d.ts.map +0 -1
- package/dist/src/templates/document-model/src/utils.js +0 -5
- package/dist/src/templates/document-model/src/utils.js.map +0 -1
- package/dist/src/templates/document-model/upgrades/upgrade-transition.d.ts +0 -7
- package/dist/src/templates/document-model/upgrades/upgrade-transition.d.ts.map +0 -1
- package/dist/src/templates/document-model/upgrades/upgrade-transition.js +0 -22
- package/dist/src/templates/document-model/upgrades/upgrade-transition.js.map +0 -1
- package/dist/src/templates/document-model/utils.d.ts +0 -3
- package/dist/src/templates/document-model/utils.d.ts.map +0 -1
- package/dist/src/templates/document-model/utils.js +0 -11
- package/dist/src/templates/document-model/utils.js.map +0 -1
- package/dist/src/templates/drive-editor/components/CreateDocument.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/CreateDocument.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/CreateDocument.js +0 -58
- package/dist/src/templates/drive-editor/components/CreateDocument.js.map +0 -1
- package/dist/src/templates/drive-editor/components/DriveContents.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/DriveContents.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/DriveContents.js +0 -24
- package/dist/src/templates/drive-editor/components/DriveContents.js.map +0 -1
- package/dist/src/templates/drive-editor/components/DriveExplorer.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/DriveExplorer.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/DriveExplorer.js +0 -32
- package/dist/src/templates/drive-editor/components/DriveExplorer.js.map +0 -1
- package/dist/src/templates/drive-editor/components/EmptyState.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/EmptyState.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/EmptyState.js +0 -19
- package/dist/src/templates/drive-editor/components/EmptyState.js.map +0 -1
- package/dist/src/templates/drive-editor/components/Files.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/Files.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/Files.js +0 -30
- package/dist/src/templates/drive-editor/components/Files.js.map +0 -1
- package/dist/src/templates/drive-editor/components/FolderTree.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/FolderTree.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/FolderTree.js +0 -108
- package/dist/src/templates/drive-editor/components/FolderTree.js.map +0 -1
- package/dist/src/templates/drive-editor/components/Folders.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/Folders.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/Folders.js +0 -28
- package/dist/src/templates/drive-editor/components/Folders.js.map +0 -1
- package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.d.ts +0 -2
- package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.js +0 -14
- package/dist/src/templates/drive-editor/components/NavigationBreadcrumbs.js.map +0 -1
- package/dist/src/templates/drive-editor/config.d.ts +0 -5
- package/dist/src/templates/drive-editor/config.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/config.js +0 -11
- package/dist/src/templates/drive-editor/config.js.map +0 -1
- package/dist/src/templates/drive-editor/editor.d.ts +0 -2
- package/dist/src/templates/drive-editor/editor.d.ts.map +0 -1
- package/dist/src/templates/drive-editor/editor.js +0 -20
- package/dist/src/templates/drive-editor/editor.js.map +0 -1
- package/dist/src/templates/index.d.ts +0 -71
- package/dist/src/templates/index.d.ts.map +0 -1
- package/dist/src/templates/index.js +0 -71
- package/dist/src/templates/index.js.map +0 -1
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts +0 -2
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +0 -491
- package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js.map +0 -1
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +0 -11
- package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/core/FileGenerator.js +0 -11
- package/dist/src/ts-morph-generator/core/FileGenerator.js.map +0 -1
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +0 -39
- package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/core/GenerationContext.js +0 -2
- package/dist/src/ts-morph-generator/core/GenerationContext.js.map +0 -1
- package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +0 -12
- package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/core/ReducerGenerator.js +0 -147
- package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +0 -1
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +0 -20
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +0 -120
- package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +0 -1
- package/dist/src/ts-morph-generator/index.d.ts +0 -4
- package/dist/src/ts-morph-generator/index.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/index.js +0 -4
- package/dist/src/ts-morph-generator/index.js.map +0 -1
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts +0 -5
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.js +0 -10
- package/dist/src/ts-morph-generator/utilities/DeclarationManager.js.map +0 -1
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +0 -13
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.js +0 -45
- package/dist/src/ts-morph-generator/utilities/DirectoryManager.js.map +0 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +0 -15
- package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/utilities/ImportManager.js +0 -50
- package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +0 -1
- package/dist/src/ts-morph-generator/utilities/index.d.ts +0 -4
- package/dist/src/ts-morph-generator/utilities/index.d.ts.map +0 -1
- package/dist/src/ts-morph-generator/utilities/index.js +0 -4
- package/dist/src/ts-morph-generator/utilities/index.js.map +0 -1
- package/dist/src/utils/cli.d.ts +0 -26
- package/dist/src/utils/cli.d.ts.map +0 -1
- package/dist/src/utils/cli.js +0 -57
- package/dist/src/utils/cli.js.map +0 -1
- package/dist/src/utils/constants.d.ts +0 -13
- package/dist/src/utils/constants.d.ts.map +0 -1
- package/dist/src/utils/constants.js +0 -29
- package/dist/src/utils/constants.js.map +0 -1
- package/dist/src/utils/dependencies.d.ts +0 -33
- package/dist/src/utils/dependencies.d.ts.map +0 -1
- package/dist/src/utils/dependencies.js +0 -97
- package/dist/src/utils/dependencies.js.map +0 -1
- package/dist/src/utils/document-type-metadata.d.ts +0 -15
- package/dist/src/utils/document-type-metadata.d.ts.map +0 -1
- package/dist/src/utils/document-type-metadata.js +0 -67
- package/dist/src/utils/document-type-metadata.js.map +0 -1
- package/dist/src/utils/format-with-prettier.d.ts +0 -5
- package/dist/src/utils/format-with-prettier.d.ts.map +0 -1
- package/dist/src/utils/format-with-prettier.js +0 -20
- package/dist/src/utils/format-with-prettier.js.map +0 -1
- package/dist/src/utils/index.d.ts +0 -14
- package/dist/src/utils/index.d.ts.map +0 -1
- package/dist/src/utils/index.js +0 -14
- package/dist/src/utils/index.js.map +0 -1
- package/dist/src/utils/mock.d.ts +0 -3
- package/dist/src/utils/mock.d.ts.map +0 -1
- package/dist/src/utils/mock.js +0 -5
- package/dist/src/utils/mock.js.map +0 -1
- package/dist/src/utils/source-files.d.ts +0 -18
- package/dist/src/utils/source-files.d.ts.map +0 -1
- package/dist/src/utils/source-files.js +0 -39
- package/dist/src/utils/source-files.js.map +0 -1
- package/dist/src/utils/spawn-async.d.ts +0 -5
- package/dist/src/utils/spawn-async.d.ts.map +0 -1
- package/dist/src/utils/spawn-async.js +0 -29
- package/dist/src/utils/spawn-async.js.map +0 -1
- package/dist/src/utils/syntax-builders.d.ts +0 -8
- package/dist/src/utils/syntax-builders.d.ts.map +0 -1
- package/dist/src/utils/syntax-builders.js +0 -72
- package/dist/src/utils/syntax-builders.js.map +0 -1
- package/dist/src/utils/syntax-getters.d.ts +0 -9
- package/dist/src/utils/syntax-getters.d.ts.map +0 -1
- package/dist/src/utils/syntax-getters.js +0 -20
- package/dist/src/utils/syntax-getters.js.map +0 -1
- package/dist/src/utils/ts-morph-project.d.ts +0 -15
- package/dist/src/utils/ts-morph-project.d.ts.map +0 -1
- package/dist/src/utils/ts-morph-project.js +0 -28
- package/dist/src/utils/ts-morph-project.js.map +0 -1
- package/dist/src/utils/unsafe-utils.d.ts +0 -8
- package/dist/src/utils/unsafe-utils.d.ts.map +0 -1
- package/dist/src/utils/unsafe-utils.js +0 -23
- package/dist/src/utils/unsafe-utils.js.map +0 -1
- package/dist/src/utils/validation.d.ts +0 -18
- package/dist/src/utils/validation.d.ts.map +0 -1
- package/dist/src/utils/validation.js +0 -138
- package/dist/src/utils/validation.js.map +0 -1
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/vitest.config.d.ts +0 -3
- package/dist/vitest.config.d.ts.map +0 -1
- package/dist/vitest.config.js +0 -19
- package/dist/vitest.config.js.map +0 -1
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { o as DocumentModelDocumentTypeMetadata } from "../../types-e2ztuDtG.mjs";
|
|
2
|
+
import { a as parseConfig, i as parseArgs, n as validateDocumentModelState, r as configSpec, t as DocumentModelStateValidationResult } from "../../validation-Bpg_44mW.mjs";
|
|
3
|
+
import * as ts_morph0 from "ts-morph";
|
|
4
|
+
import { IndentationText, ObjectLiteralExpression, Project, SourceFile, SyntaxKind, VariableStatement, ts } from "ts-morph";
|
|
5
|
+
|
|
6
|
+
//#region src/utils/constants.d.ts
|
|
7
|
+
/** Document model metadata for the `powerhouse/document-model` document type.
|
|
8
|
+
*
|
|
9
|
+
* Assumed to always be present during codegen.
|
|
10
|
+
*/
|
|
11
|
+
declare const documentModelDocumentTypeMetadata: {
|
|
12
|
+
readonly documentModelId: "powerhouse/document-model";
|
|
13
|
+
readonly documentModelDocumentTypeName: "DocumentModelDocument";
|
|
14
|
+
readonly documentModelDirName: "document-model";
|
|
15
|
+
readonly documentModelImportPath: "document-model";
|
|
16
|
+
};
|
|
17
|
+
//#endregion
|
|
18
|
+
//#region src/utils/document-type-metadata.d.ts
|
|
19
|
+
type GetDocumentTypeMetadataArgs = {
|
|
20
|
+
project: Project;
|
|
21
|
+
documentModelId: string;
|
|
22
|
+
documentModelsDirPath: string;
|
|
23
|
+
};
|
|
24
|
+
/** Gets the document model metadata for the --document-type argument
|
|
25
|
+
* passed to the `generate --editor` and `generate --app` commands.
|
|
26
|
+
*/
|
|
27
|
+
declare function getDocumentTypeMetadata({
|
|
28
|
+
project,
|
|
29
|
+
documentModelId,
|
|
30
|
+
documentModelsDirPath
|
|
31
|
+
}: GetDocumentTypeMetadataArgs): DocumentModelDocumentTypeMetadata;
|
|
32
|
+
declare function getPHDocumentTypeNameFromSourceFile(sourceFile: SourceFile): string | undefined;
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/utils/format-with-prettier.d.ts
|
|
35
|
+
/** Formats the text of a ts-morph source file with prettier before writing the text to memory */
|
|
36
|
+
declare function formatSourceFileWithPrettier(sourceFile: SourceFile): Promise<void>;
|
|
37
|
+
declare function runPrettier(): Promise<void>;
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/utils/source-files.d.ts
|
|
40
|
+
/** Gets a SourceFile by name in a ts-morph Project, or creates a new one
|
|
41
|
+
* if none with that path exists.
|
|
42
|
+
*/
|
|
43
|
+
declare function getOrCreateSourceFile(project: Project, filePath: string): {
|
|
44
|
+
alreadyExists: boolean;
|
|
45
|
+
sourceFile: ts_morph0.SourceFile;
|
|
46
|
+
};
|
|
47
|
+
/** Gets a Directory by name in a ts-morph Project, or creates a new one
|
|
48
|
+
* if none with that path exists.
|
|
49
|
+
*/
|
|
50
|
+
declare function getOrCreateDirectory(project: Project, dirPath: string): {
|
|
51
|
+
alreadyExists: boolean;
|
|
52
|
+
directory: ts_morph0.Directory;
|
|
53
|
+
};
|
|
54
|
+
/** Ensures that the directories at the given paths exist within the
|
|
55
|
+
* ts-morph Project
|
|
56
|
+
*/
|
|
57
|
+
declare function ensureDirectoriesExist(project: Project, ...pathsToEnsure: string[]): Promise<void>;
|
|
58
|
+
declare function getPreviousVersionSourceFile(args: {
|
|
59
|
+
project: Project;
|
|
60
|
+
version: number;
|
|
61
|
+
filePath: string;
|
|
62
|
+
}): ts_morph0.SourceFile | undefined;
|
|
63
|
+
//#endregion
|
|
64
|
+
//#region src/utils/syntax-builders.d.ts
|
|
65
|
+
/** Builds a ts-morph ObjectLiteralExpression from a ts/js object
|
|
66
|
+
* Useful for substituting the value of a runtime object in templates
|
|
67
|
+
*/
|
|
68
|
+
declare function buildObjectLiteral(inputObject: object, sourceFile: SourceFile): string;
|
|
69
|
+
declare function buildStringLiteral(value: string): ts.StringLiteral;
|
|
70
|
+
//#endregion
|
|
71
|
+
//#region src/utils/syntax-getters.d.ts
|
|
72
|
+
/** Returns a ts-morph ObjectLiteralExpression from a variable statement
|
|
73
|
+
* if the type matches
|
|
74
|
+
*/
|
|
75
|
+
declare function getObjectLiteral(statement: VariableStatement | undefined): ObjectLiteralExpression | undefined;
|
|
76
|
+
/** Returns the value of a property in a ts-morph ObjectLiteralExpression of type T if it exists */
|
|
77
|
+
declare function getObjectProperty<T extends SyntaxKind>(object: ObjectLiteralExpression | undefined, propertyName: string, propertyType: T): ts_morph0.KindToNodeMappings[T] | undefined;
|
|
78
|
+
declare function getVariableDeclarationByTypeName(sourceFile: SourceFile, typeName: string): ts_morph0.VariableDeclaration | undefined;
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/utils/ts-morph-project.d.ts
|
|
81
|
+
declare const DEFAULT_PROJECT_OPTIONS: {
|
|
82
|
+
readonly skipAddingFilesFromTsConfig: true;
|
|
83
|
+
readonly skipLoadingLibFiles: true;
|
|
84
|
+
readonly manipulationSettings: {
|
|
85
|
+
readonly useTrailingCommas: true;
|
|
86
|
+
readonly indentationText: IndentationText.TwoSpaces;
|
|
87
|
+
readonly indentMultiLineObjectLiteralBeginningOnBlankLine: true;
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
/** Returns the minimal typescript config for use in ts-morph file generation */
|
|
91
|
+
declare function getDefaultProjectOptions(tsConfigFilePath: string): {
|
|
92
|
+
tsConfigFilePath: string;
|
|
93
|
+
skipAddingFilesFromTsConfig: true;
|
|
94
|
+
skipLoadingLibFiles: true;
|
|
95
|
+
manipulationSettings: {
|
|
96
|
+
readonly useTrailingCommas: true;
|
|
97
|
+
readonly indentationText: IndentationText.TwoSpaces;
|
|
98
|
+
readonly indentMultiLineObjectLiteralBeginningOnBlankLine: true;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
/** Instantiates a ts-morph Project using the default typescript config and nearest tsconfig.json file */
|
|
102
|
+
declare function buildTsMorphProject(projectDir: string): Project;
|
|
103
|
+
//#endregion
|
|
104
|
+
//#region src/utils/unsafe-utils.d.ts
|
|
105
|
+
declare function getInitialStates(scopeState: {
|
|
106
|
+
global: any;
|
|
107
|
+
local: any;
|
|
108
|
+
}): {
|
|
109
|
+
initialGlobalState: string;
|
|
110
|
+
initialLocalState: string;
|
|
111
|
+
};
|
|
112
|
+
//#endregion
|
|
113
|
+
//#region src/utils/graphql-type-prefixes.d.ts
|
|
114
|
+
/**
|
|
115
|
+
* Extract type names from a GraphQL schema.
|
|
116
|
+
* Finds all type, enum, union, interface, and input definitions.
|
|
117
|
+
*/
|
|
118
|
+
declare function extractTypeNames(schema: string): string[];
|
|
119
|
+
/**
|
|
120
|
+
* Apply type prefixes to GraphQL schema to namespace types and avoid collisions.
|
|
121
|
+
*/
|
|
122
|
+
declare function applyGraphQLTypePrefixes(schema: string, prefix: string, externalTypeNames?: string[]): string;
|
|
123
|
+
//#endregion
|
|
124
|
+
export { DEFAULT_PROJECT_OPTIONS, DocumentModelStateValidationResult, applyGraphQLTypePrefixes, buildObjectLiteral, buildStringLiteral, buildTsMorphProject, configSpec, documentModelDocumentTypeMetadata, ensureDirectoriesExist, extractTypeNames, formatSourceFileWithPrettier, getDefaultProjectOptions, getDocumentTypeMetadata, getInitialStates, getObjectLiteral, getObjectProperty, getOrCreateDirectory, getOrCreateSourceFile, getPHDocumentTypeNameFromSourceFile, getPreviousVersionSourceFile, getVariableDeclarationByTypeName, parseArgs, parseConfig, runPrettier, validateDocumentModelState };
|
|
125
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/utils/constants.ts","../../../src/utils/document-type-metadata.ts","../../../src/utils/format-with-prettier.ts","../../../src/utils/source-files.ts","../../../src/utils/syntax-builders.ts","../../../src/utils/syntax-getters.ts","../../../src/utils/ts-morph-project.ts","../../../src/utils/unsafe-utils.ts","../../../src/utils/graphql-type-prefixes.ts"],"mappings":";;;;;;;;;;cAIa,iCAAA;EAAA;;;;;;;KCER,2BAAA;EACH,OAAA,EAAS,OAAA;EACT,eAAA;EACA,qBAAA;AAAA;ADLF;;;AAAA,iBCUgB,uBAAA,CAAA;EACd,OAAA;EACA,eAAA;EACA;AAAA,GACC,2BAAA,GAA2B,iCAAA;AAAA,iBAiGd,mCAAA,CAAoC,UAAA,EAAY,UAAA;;;;iBC9G1C,4BAAA,CAA6B,UAAA,EAAY,UAAA,GAAU,OAAA;AAAA,iBAanD,WAAA,CAAA,GAAW,OAAA;;;;;;iBCbjB,qBAAA,CAAsB,OAAA,EAAS,OAAA,EAAS,QAAA;;cAAF,SAAA,CAAA,UAAA;AAAA;;;;iBAkBtC,oBAAA,CAAqB,OAAA,EAAS,OAAA,EAAS,OAAA;;aAAF,SAAA,CAAA,SAAA;AAAA;;;;iBAkB/B,sBAAA,CACpB,OAAA,EAAS,OAAA,KACN,aAAA,aAAuB,OAAA;AAAA,iBAWZ,4BAAA,CAA6B,IAAA;EAC3C,OAAA,EAAS,OAAA;EACT,OAAA;EACA,QAAA;AAAA,IAFgB,SAAA,CAGjB,UAAA;;;;;;iBCpDe,kBAAA,CACd,WAAA,UACA,UAAA,EAAY,UAAA;AAAA,iBAwCE,kBAAA,CAAmB,KAAA,WAAa,EAAA,CAAA,aAAA;;;;;;iBCtChC,gBAAA,CAAiB,SAAA,EAAW,iBAAA,eAA6B,uBAAA;;iBAQzD,iBAAA,WAA4B,UAAA,CAAA,CAC1C,MAAA,EAAQ,uBAAA,cACR,YAAA,UACA,YAAA,EAAc,CAAA,GAAC,SAAA,CAAA,kBAAA,CAAA,CAAA;AAAA,iBAUD,gCAAA,CACd,UAAA,EAAY,UAAA,EACZ,QAAA,WADsB,SAAA,CACN,mBAAA;;;cC9BL,uBAAA;EAAA;;;;8BAWH,eAAA,CAAA,SAAA;IAAA;;;;iBAGM,wBAAA,CAAyB,gBAAA;;;;;;8BAAD,eAAA,CAAA,SAAA;IAAA;;;;iBAQxB,mBAAA,CAAoB,UAAA,WAAkB,OAAA;;;iBCtBtC,gBAAA,CAAiB,UAAA;EAAc,MAAA;EAAa,KAAA;AAAA;;;;;;;;;;iBCC5C,gBAAA,CAAiB,MAAA;;;ARAjC;iBQiBgB,wBAAA,CACd,MAAA,UACA,MAAA,UACA,iBAAA"}
|
|
@@ -0,0 +1,380 @@
|
|
|
1
|
+
import { spawnAsync } from "@powerhousedao/shared/clis";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { IndentationText, Project, SyntaxKind, ts } from "ts-morph";
|
|
4
|
+
import arg from "arg";
|
|
5
|
+
import { format } from "prettier";
|
|
6
|
+
//#region src/utils/cli.ts
|
|
7
|
+
const configSpec = {
|
|
8
|
+
"--document-models": String,
|
|
9
|
+
"--editors": String,
|
|
10
|
+
"--interactive": Boolean,
|
|
11
|
+
"--skip-format": Boolean,
|
|
12
|
+
"--watch": Boolean,
|
|
13
|
+
"-i": "--interactive",
|
|
14
|
+
"-sf": "--skip-format",
|
|
15
|
+
"-w": "--watch"
|
|
16
|
+
};
|
|
17
|
+
function parseArgs(argv, spec) {
|
|
18
|
+
return arg(spec, {
|
|
19
|
+
permissive: true,
|
|
20
|
+
argv
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function parseConfig(argv) {
|
|
24
|
+
const config = {};
|
|
25
|
+
const args = parseArgs(argv, configSpec);
|
|
26
|
+
if ("--document-models" in args) config.documentModelsDir = args["--document-models"];
|
|
27
|
+
if ("--editors" in args) config.editorsDir = args["--editors"];
|
|
28
|
+
if ("--skip-format" in args) config.skipFormat = true;
|
|
29
|
+
if ("--interactive" in args) config.interactive = true;
|
|
30
|
+
if ("--watch" in args) config.watch = true;
|
|
31
|
+
return config;
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
//#region src/utils/constants.ts
|
|
35
|
+
/** Document model metadata for the `powerhouse/document-model` document type.
|
|
36
|
+
*
|
|
37
|
+
* Assumed to always be present during codegen.
|
|
38
|
+
*/
|
|
39
|
+
const documentModelDocumentTypeMetadata = {
|
|
40
|
+
documentModelId: "powerhouse/document-model",
|
|
41
|
+
documentModelDocumentTypeName: "DocumentModelDocument",
|
|
42
|
+
documentModelDirName: "document-model",
|
|
43
|
+
documentModelImportPath: "document-model"
|
|
44
|
+
};
|
|
45
|
+
//#endregion
|
|
46
|
+
//#region src/utils/syntax-getters.ts
|
|
47
|
+
/** Returns a ts-morph ObjectLiteralExpression from a variable statement
|
|
48
|
+
* if the type matches
|
|
49
|
+
*/
|
|
50
|
+
function getObjectLiteral(statement) {
|
|
51
|
+
return statement?.getDeclarations().at(0)?.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);
|
|
52
|
+
}
|
|
53
|
+
/** Returns the value of a property in a ts-morph ObjectLiteralExpression of type T if it exists */
|
|
54
|
+
function getObjectProperty(object, propertyName, propertyType) {
|
|
55
|
+
return object?.getProperty(propertyName)?.asKind(SyntaxKind.PropertyAssignment)?.getChildren().find((child) => child.getKind() === propertyType)?.asKindOrThrow(propertyType);
|
|
56
|
+
}
|
|
57
|
+
function getVariableDeclarationByTypeName(sourceFile, typeName) {
|
|
58
|
+
return sourceFile.getVariableDeclaration((declaration) => {
|
|
59
|
+
if ((declaration.getTypeNode()?.getText() ?? "").includes(typeName)) return true;
|
|
60
|
+
return declaration.getType().getText().includes(typeName);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
//#endregion
|
|
64
|
+
//#region src/utils/document-type-metadata.ts
|
|
65
|
+
/** Gets the document model metadata for the --document-type argument
|
|
66
|
+
* passed to the `generate --editor` and `generate --app` commands.
|
|
67
|
+
*/
|
|
68
|
+
function getDocumentTypeMetadata({ project, documentModelId, documentModelsDirPath }) {
|
|
69
|
+
const sourceFile = project.getSourceFiles().filter((file) => {
|
|
70
|
+
return file.getBaseName() === "document-model.ts";
|
|
71
|
+
}).find((file) => getDocumentModelFileByDocumentId(file, documentModelId));
|
|
72
|
+
if (!sourceFile) throw new Error(`No document-model.ts file exists for ${documentModelId}`);
|
|
73
|
+
const documentModelsDir = project.getDirectory(documentModelsDirPath);
|
|
74
|
+
if (!documentModelsDir) throw new Error(`No document-models dir exists for ${documentModelId}`);
|
|
75
|
+
const documentModelDir = project.getDirectories().find((dir) => sourceFile.getDirectory().isDescendantOf(dir) && dir.isDescendantOf(documentModelsDir));
|
|
76
|
+
if (!documentModelDir) throw new Error(`No document model dir exists for ${documentModelId}`);
|
|
77
|
+
const documentModelDirName = documentModelDir.getBaseName();
|
|
78
|
+
const documentModelImportPath = path.join("document-models", documentModelDirName);
|
|
79
|
+
const sourceFileDir = sourceFile.getDirectoryPath();
|
|
80
|
+
const documentModelGenTypesFilePath = path.join(sourceFileDir, "types.ts");
|
|
81
|
+
const documentModelGenTypesFile = project.getSourceFile(documentModelGenTypesFilePath);
|
|
82
|
+
if (!documentModelGenTypesFile) throw new Error(`No generated types file exists for ${documentModelId}`);
|
|
83
|
+
const documentModelDocumentTypeName = getPHDocumentTypeNameFromSourceFile(documentModelGenTypesFile);
|
|
84
|
+
if (!documentModelDocumentTypeName) throw new Error(`Generated type file is missing PHDocument type declaration for ${documentModelId}`);
|
|
85
|
+
return {
|
|
86
|
+
documentModelDirName,
|
|
87
|
+
documentModelDocumentTypeName,
|
|
88
|
+
documentModelId,
|
|
89
|
+
documentModelImportPath
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function getDocumentModelFileByDocumentId(sourceFile, documentModelId) {
|
|
93
|
+
const documentModelStatement = sourceFile.getVariableStatement("documentModel");
|
|
94
|
+
if (!documentModelStatement) return false;
|
|
95
|
+
const documentModelObject = getObjectLiteral(documentModelStatement);
|
|
96
|
+
if (!documentModelObject) return false;
|
|
97
|
+
return getObjectProperty(documentModelObject, "id", SyntaxKind.StringLiteral)?.getLiteralValue() === documentModelId;
|
|
98
|
+
}
|
|
99
|
+
function getPHDocumentTypeNameFromSourceFile(sourceFile) {
|
|
100
|
+
return sourceFile.getTypeAliases().find((alias) => {
|
|
101
|
+
return (alias.getTypeNode()?.getText())?.includes("PHDocument");
|
|
102
|
+
})?.getName();
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
//#region src/utils/format-with-prettier.ts
|
|
106
|
+
/** Formats the text of a ts-morph source file with prettier before writing the text to memory */
|
|
107
|
+
async function formatSourceFileWithPrettier(sourceFile) {
|
|
108
|
+
const sourceText = sourceFile.getFullText();
|
|
109
|
+
let formattedText = sourceText;
|
|
110
|
+
try {
|
|
111
|
+
formattedText = await format(sourceText, { parser: "typescript" });
|
|
112
|
+
} catch (error) {
|
|
113
|
+
console.error(error);
|
|
114
|
+
}
|
|
115
|
+
sourceFile.replaceWithText(formattedText);
|
|
116
|
+
}
|
|
117
|
+
async function runPrettier() {
|
|
118
|
+
await spawnAsync("npx", [
|
|
119
|
+
"prettier",
|
|
120
|
+
"--write",
|
|
121
|
+
"."
|
|
122
|
+
]);
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
//#region src/utils/source-files.ts
|
|
126
|
+
/** Gets a SourceFile by name in a ts-morph Project, or creates a new one
|
|
127
|
+
* if none with that path exists.
|
|
128
|
+
*/
|
|
129
|
+
function getOrCreateSourceFile(project, filePath) {
|
|
130
|
+
const sourceFile = project.getSourceFile(filePath);
|
|
131
|
+
if (!sourceFile) return {
|
|
132
|
+
alreadyExists: false,
|
|
133
|
+
sourceFile: project.createSourceFile(filePath, "")
|
|
134
|
+
};
|
|
135
|
+
return {
|
|
136
|
+
alreadyExists: true,
|
|
137
|
+
sourceFile
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
/** Gets a Directory by name in a ts-morph Project, or creates a new one
|
|
141
|
+
* if none with that path exists.
|
|
142
|
+
*/
|
|
143
|
+
function getOrCreateDirectory(project, dirPath) {
|
|
144
|
+
const directory = project.getDirectory(dirPath);
|
|
145
|
+
if (!directory) return {
|
|
146
|
+
alreadyExists: false,
|
|
147
|
+
directory: project.createDirectory(dirPath)
|
|
148
|
+
};
|
|
149
|
+
return {
|
|
150
|
+
alreadyExists: true,
|
|
151
|
+
directory
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/** Ensures that the directories at the given paths exist within the
|
|
155
|
+
* ts-morph Project
|
|
156
|
+
*/
|
|
157
|
+
async function ensureDirectoriesExist(project, ...pathsToEnsure) {
|
|
158
|
+
for (const dirPath of pathsToEnsure) if (!project.getDirectory(dirPath)) project.createDirectory(dirPath);
|
|
159
|
+
await project.save();
|
|
160
|
+
}
|
|
161
|
+
function getPreviousVersionSourceFile(args) {
|
|
162
|
+
const { project, version, filePath } = args;
|
|
163
|
+
const previousVersion = version - 1;
|
|
164
|
+
if (previousVersion < 1) return;
|
|
165
|
+
const previousVersionFilePath = filePath.replace(`/v${version}/`, `/v${previousVersion}/`);
|
|
166
|
+
return project.getSourceFile(previousVersionFilePath);
|
|
167
|
+
}
|
|
168
|
+
//#endregion
|
|
169
|
+
//#region src/utils/syntax-builders.ts
|
|
170
|
+
/** Builds a ts-morph ObjectLiteralExpression from a ts/js object
|
|
171
|
+
* Useful for substituting the value of a runtime object in templates
|
|
172
|
+
*/
|
|
173
|
+
function buildObjectLiteral(inputObject, sourceFile) {
|
|
174
|
+
const propertyAssignments = [];
|
|
175
|
+
for (const [key, value] of Object.entries(inputObject)) {
|
|
176
|
+
const propertyAssignment = buildPropertyAssignment(key, value);
|
|
177
|
+
propertyAssignments.push(propertyAssignment);
|
|
178
|
+
}
|
|
179
|
+
const objectLiteral = ts.factory.createObjectLiteralExpression(propertyAssignments, true);
|
|
180
|
+
return buildNodePrinter(sourceFile)(objectLiteral);
|
|
181
|
+
}
|
|
182
|
+
function buildFalse() {
|
|
183
|
+
return ts.factory.createFalse();
|
|
184
|
+
}
|
|
185
|
+
function buildTrue() {
|
|
186
|
+
return ts.factory.createTrue();
|
|
187
|
+
}
|
|
188
|
+
function buildBoolean(value) {
|
|
189
|
+
return value ? buildTrue() : buildFalse();
|
|
190
|
+
}
|
|
191
|
+
function buildNull() {
|
|
192
|
+
return ts.factory.createNull();
|
|
193
|
+
}
|
|
194
|
+
function buildUndefined() {
|
|
195
|
+
return ts.factory.createIdentifier("undefined");
|
|
196
|
+
}
|
|
197
|
+
function buildNumericLiteral(value) {
|
|
198
|
+
return ts.factory.createNumericLiteral(value);
|
|
199
|
+
}
|
|
200
|
+
function buildStringLiteral(value) {
|
|
201
|
+
return ts.factory.createStringLiteral(value);
|
|
202
|
+
}
|
|
203
|
+
function buildArrayLiteral(elements) {
|
|
204
|
+
return ts.factory.createArrayLiteralExpression(elements, true);
|
|
205
|
+
}
|
|
206
|
+
function valueToExpression(value) {
|
|
207
|
+
if (value === null) return buildNull();
|
|
208
|
+
if (value === void 0) return buildUndefined();
|
|
209
|
+
if (typeof value === "boolean") return buildBoolean(value);
|
|
210
|
+
if (typeof value === "string") return buildStringLiteral(value);
|
|
211
|
+
if (typeof value === "number") return buildNumericLiteral(value);
|
|
212
|
+
if (Array.isArray(value)) return buildArrayLiteral(value.map((item) => valueToExpression(item)));
|
|
213
|
+
if (typeof value === "object") return ts.factory.createObjectLiteralExpression(Object.entries(value).map(([key, v]) => {
|
|
214
|
+
const name = ts.factory.createIdentifier(key);
|
|
215
|
+
return ts.factory.createPropertyAssignment(name, valueToExpression(v));
|
|
216
|
+
}), true);
|
|
217
|
+
throw new Error("Invalid value passed: ", value);
|
|
218
|
+
}
|
|
219
|
+
function buildPropertyAssignment(name, value) {
|
|
220
|
+
const nameIdentifier = ts.factory.createIdentifier(name);
|
|
221
|
+
const valueExpression = valueToExpression(value);
|
|
222
|
+
return ts.factory.createPropertyAssignment(nameIdentifier, valueExpression);
|
|
223
|
+
}
|
|
224
|
+
function buildNodePrinter(sourceFile) {
|
|
225
|
+
const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
|
|
226
|
+
return (node) => printer.printNode(ts.EmitHint.Unspecified, node, sourceFile.compilerNode);
|
|
227
|
+
}
|
|
228
|
+
//#endregion
|
|
229
|
+
//#region src/utils/ts-morph-project.ts
|
|
230
|
+
const DEFAULT_PROJECT_OPTIONS = {
|
|
231
|
+
skipAddingFilesFromTsConfig: true,
|
|
232
|
+
skipLoadingLibFiles: true,
|
|
233
|
+
manipulationSettings: {
|
|
234
|
+
useTrailingCommas: true,
|
|
235
|
+
indentationText: IndentationText.TwoSpaces,
|
|
236
|
+
indentMultiLineObjectLiteralBeginningOnBlankLine: true
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
/** Returns the minimal typescript config for use in ts-morph file generation */
|
|
240
|
+
function getDefaultProjectOptions(tsConfigFilePath) {
|
|
241
|
+
return {
|
|
242
|
+
...DEFAULT_PROJECT_OPTIONS,
|
|
243
|
+
tsConfigFilePath
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/** Instantiates a ts-morph Project using the default typescript config and nearest tsconfig.json file */
|
|
247
|
+
function buildTsMorphProject(projectDir) {
|
|
248
|
+
return new Project(getDefaultProjectOptions(path.join(projectDir, "tsconfig.json")));
|
|
249
|
+
}
|
|
250
|
+
//#endregion
|
|
251
|
+
//#region src/utils/unsafe-utils.ts
|
|
252
|
+
function getInitialStates(scopeState) {
|
|
253
|
+
const { global, local } = scopeState;
|
|
254
|
+
const scopes = {
|
|
255
|
+
global,
|
|
256
|
+
local
|
|
257
|
+
};
|
|
258
|
+
Object.entries(scopes).forEach(([scope, state]) => {
|
|
259
|
+
if (!isEmptyStateSchema(state.schema) && state.initialValue === "") throw new Error(`${scope.charAt(0).toLocaleUpperCase() + scope.slice(1)} scope has a defined schema but is missing an initial value.`);
|
|
260
|
+
});
|
|
261
|
+
return {
|
|
262
|
+
initialGlobalState: handleEmptyState(global.initialValue),
|
|
263
|
+
initialLocalState: handleEmptyState(local.initialValue)
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
function isEmptyStateSchema(schema) {
|
|
267
|
+
return schema === "" || !schema.includes("{");
|
|
268
|
+
}
|
|
269
|
+
function handleEmptyState(state) {
|
|
270
|
+
return state === "" ? "{}" : state;
|
|
271
|
+
}
|
|
272
|
+
//#endregion
|
|
273
|
+
//#region src/utils/validation.ts
|
|
274
|
+
/**
|
|
275
|
+
* Validates that a DocumentModelGlobalState has all required properties for successful code generation.
|
|
276
|
+
*
|
|
277
|
+
* @param documentModelState - The DocumentModelGlobalState to validate
|
|
278
|
+
* @returns Validation result with isValid flag and error messages
|
|
279
|
+
*/
|
|
280
|
+
function validateDocumentModelState(documentModelState) {
|
|
281
|
+
const errors = [];
|
|
282
|
+
if (!documentModelState.id || typeof documentModelState.id !== "string" || documentModelState.id.trim() === "") errors.push("Property \"id\" is required and must be a non-empty string");
|
|
283
|
+
if (!documentModelState.name || typeof documentModelState.name !== "string" || documentModelState.name.trim() === "") errors.push("Property \"name\" is required and must be a non-empty string");
|
|
284
|
+
if (typeof documentModelState.extension !== "string") errors.push("Property \"extension\" must be a string");
|
|
285
|
+
if (!Array.isArray(documentModelState.specifications) || documentModelState.specifications.length === 0) {
|
|
286
|
+
errors.push("Property \"specifications\" is required and must be a non-empty array");
|
|
287
|
+
return {
|
|
288
|
+
isValid: false,
|
|
289
|
+
errors
|
|
290
|
+
};
|
|
291
|
+
}
|
|
292
|
+
const latestSpec = documentModelState.specifications[documentModelState.specifications.length - 1];
|
|
293
|
+
if (!latestSpec) {
|
|
294
|
+
errors.push("Latest specification is missing or invalid");
|
|
295
|
+
return {
|
|
296
|
+
isValid: false,
|
|
297
|
+
errors
|
|
298
|
+
};
|
|
299
|
+
}
|
|
300
|
+
if (!latestSpec.state) {
|
|
301
|
+
errors.push("Latest specification must have a \"state\" property");
|
|
302
|
+
return {
|
|
303
|
+
isValid: false,
|
|
304
|
+
errors
|
|
305
|
+
};
|
|
306
|
+
}
|
|
307
|
+
if (!latestSpec.state.global) errors.push("Latest specification state must have a \"global\" property");
|
|
308
|
+
else {
|
|
309
|
+
const globalState = latestSpec.state.global;
|
|
310
|
+
if (typeof globalState.schema !== "string") errors.push("Global state \"schema\" must be a string");
|
|
311
|
+
if (typeof globalState.initialValue !== "string") errors.push("Global state \"initialValue\" must be a string");
|
|
312
|
+
if (globalState.schema && globalState.schema.trim() !== "" && globalState.schema.includes("{") && (!globalState.initialValue || globalState.initialValue.trim() === "")) errors.push("Global state has a defined schema but is missing an initial value");
|
|
313
|
+
}
|
|
314
|
+
if (!latestSpec.state.local) errors.push("Latest specification state must have a \"local\" property");
|
|
315
|
+
else {
|
|
316
|
+
const localState = latestSpec.state.local;
|
|
317
|
+
if (typeof localState.schema !== "string") errors.push("Local state \"schema\" must be a string");
|
|
318
|
+
if (typeof localState.initialValue !== "string") errors.push("Local state \"initialValue\" must be a string");
|
|
319
|
+
if (localState.schema && localState.schema.trim() !== "" && localState.schema.includes("{") && (!localState.initialValue || localState.initialValue.trim() === "")) errors.push("Local state has a defined schema but is missing an initial value");
|
|
320
|
+
}
|
|
321
|
+
if (!Array.isArray(latestSpec.modules)) errors.push("Latest specification must have a \"modules\" array");
|
|
322
|
+
else {
|
|
323
|
+
if (latestSpec.modules.length === 0) errors.push("Latest specification must have at least one module defined");
|
|
324
|
+
latestSpec.modules.forEach((module, moduleIndex) => {
|
|
325
|
+
if (!module.name || typeof module.name !== "string" || module.name.trim() === "") errors.push(`Module at index ${moduleIndex} must have a non-empty "name" property`);
|
|
326
|
+
if (!Array.isArray(module.operations)) errors.push(`Module "${module.name || `at index ${moduleIndex}`}" must have an "operations" array`);
|
|
327
|
+
else {
|
|
328
|
+
if (module.operations.length === 0) errors.push(`Module "${module.name || `at index ${moduleIndex}`}" must have at least one operation defined`);
|
|
329
|
+
module.operations.forEach((operation, operationIndex) => {
|
|
330
|
+
const operationId = operation.name || `at index ${operationIndex}`;
|
|
331
|
+
const moduleId = module.name || `at index ${moduleIndex}`;
|
|
332
|
+
if (!operation.name || typeof operation.name !== "string" || operation.name.trim() === "") errors.push(`Operation ${operationId} in module "${moduleId}" must have a non-empty "name" property`);
|
|
333
|
+
if (operation.schema !== null && typeof operation.schema !== "string") errors.push(`Operation "${operationId}" in module "${moduleId}" must have a "schema" that is either null or a string`);
|
|
334
|
+
if (operation.scope !== void 0 && typeof operation.scope !== "string") errors.push(`Operation "${operationId}" in module "${moduleId}" must have a "scope" that is a string if provided`);
|
|
335
|
+
if (!Array.isArray(operation.errors)) errors.push(`Operation "${operationId}" in module "${moduleId}" must have an "errors" array`);
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
}
|
|
340
|
+
return {
|
|
341
|
+
isValid: errors.length === 0,
|
|
342
|
+
errors
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
//#endregion
|
|
346
|
+
//#region src/utils/graphql-type-prefixes.ts
|
|
347
|
+
/**
|
|
348
|
+
* Extract type names from a GraphQL schema.
|
|
349
|
+
* Finds all type, enum, union, interface, and input definitions.
|
|
350
|
+
*/
|
|
351
|
+
function extractTypeNames(schema) {
|
|
352
|
+
const found = schema.match(/(type|enum|union|interface|input)\s+(\w+)\s/g);
|
|
353
|
+
if (!found) return [];
|
|
354
|
+
return found.map((f) => f.replaceAll("type ", "").replaceAll("enum ", "").replaceAll("union ", "").replaceAll("interface ", "").replaceAll("input ", "").trim());
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Apply type prefixes to GraphQL schema to namespace types and avoid collisions.
|
|
358
|
+
*/
|
|
359
|
+
function applyGraphQLTypePrefixes(schema, prefix, externalTypeNames = []) {
|
|
360
|
+
if (!schema || !schema.trim()) return schema;
|
|
361
|
+
let processedSchema = schema;
|
|
362
|
+
const localTypeNames = extractTypeNames(schema);
|
|
363
|
+
const allTypeNames = [...new Set([...localTypeNames, ...externalTypeNames])];
|
|
364
|
+
if (allTypeNames.length === 0) return schema;
|
|
365
|
+
allTypeNames.forEach((typeName) => {
|
|
366
|
+
const typeRegex = new RegExp(`(?<![_A-Za-z0-9])(${typeName})(?![_A-Za-z0-9])|\\[(${typeName})\\]|\\[(${typeName})!\\]|\\[(${typeName})\\]!|\\[(${typeName})!\\]!`, "g");
|
|
367
|
+
processedSchema = processedSchema.replace(typeRegex, (match, p1, p2, p3, p4, p5) => {
|
|
368
|
+
if (match.startsWith("[")) {
|
|
369
|
+
const captured = p2 || p3 || p4 || p5;
|
|
370
|
+
return match.replace(captured, `${prefix}_${captured}`);
|
|
371
|
+
}
|
|
372
|
+
return `${prefix}_${p1}`;
|
|
373
|
+
});
|
|
374
|
+
});
|
|
375
|
+
return processedSchema;
|
|
376
|
+
}
|
|
377
|
+
//#endregion
|
|
378
|
+
export { DEFAULT_PROJECT_OPTIONS, applyGraphQLTypePrefixes, buildObjectLiteral, buildStringLiteral, buildTsMorphProject, configSpec, documentModelDocumentTypeMetadata, ensureDirectoriesExist, extractTypeNames, formatSourceFileWithPrettier, getDefaultProjectOptions, getDocumentTypeMetadata, getInitialStates, getObjectLiteral, getObjectProperty, getOrCreateDirectory, getOrCreateSourceFile, getPHDocumentTypeNameFromSourceFile, getPreviousVersionSourceFile, getVariableDeclarationByTypeName, parseArgs, parseConfig, runPrettier, validateDocumentModelState };
|
|
379
|
+
|
|
380
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/utils/cli.ts","../../../src/utils/constants.ts","../../../src/utils/syntax-getters.ts","../../../src/utils/document-type-metadata.ts","../../../src/utils/format-with-prettier.ts","../../../src/utils/source-files.ts","../../../src/utils/syntax-builders.ts","../../../src/utils/ts-morph-project.ts","../../../src/utils/unsafe-utils.ts","../../../src/utils/validation.ts","../../../src/utils/graphql-type-prefixes.ts"],"sourcesContent":["import arg from \"arg\";\n\nexport const configSpec = {\n \"--document-models\": String,\n \"--editors\": String,\n \"--interactive\": Boolean,\n \"--skip-format\": Boolean,\n \"--watch\": Boolean,\n \"-i\": \"--interactive\",\n \"-sf\": \"--skip-format\",\n \"-w\": \"--watch\",\n} as const;\n\nexport function parseArgs<T extends arg.Spec>(argv: string[], spec: T) {\n const args = arg(spec, {\n permissive: true,\n argv,\n });\n\n return args;\n}\n\nexport function parseConfig(argv: string[]) {\n const config: Partial<{\n documentModelsDir?: string;\n editorsDir?: string;\n skipFormat?: boolean;\n interactive?: boolean;\n watch?: boolean;\n }> = {};\n const args = parseArgs(argv, configSpec);\n\n if (\"--document-models\" in args) {\n config.documentModelsDir = args[\"--document-models\"];\n }\n\n if (\"--editors\" in args) {\n config.editorsDir = args[\"--editors\"];\n }\n\n if (\"--skip-format\" in args) {\n config.skipFormat = true;\n }\n if (\"--interactive\" in args) {\n config.interactive = true;\n }\n if (\"--watch\" in args) {\n config.watch = true;\n }\n\n return config;\n}\n","/** Document model metadata for the `powerhouse/document-model` document type.\n *\n * Assumed to always be present during codegen.\n */\nexport const documentModelDocumentTypeMetadata = {\n documentModelId: \"powerhouse/document-model\",\n documentModelDocumentTypeName: \"DocumentModelDocument\",\n documentModelDirName: \"document-model\",\n documentModelImportPath: \"document-model\",\n} as const;\n","import type {\n ObjectLiteralExpression,\n SourceFile,\n VariableStatement,\n} from \"ts-morph\";\nimport { SyntaxKind } from \"ts-morph\";\n\n/** Returns a ts-morph ObjectLiteralExpression from a variable statement\n * if the type matches\n */\nexport function getObjectLiteral(statement: VariableStatement | undefined) {\n return statement\n ?.getDeclarations()\n .at(0)\n ?.getInitializerIfKind(SyntaxKind.ObjectLiteralExpression);\n}\n\n/** Returns the value of a property in a ts-morph ObjectLiteralExpression of type T if it exists */\nexport function getObjectProperty<T extends SyntaxKind>(\n object: ObjectLiteralExpression | undefined,\n propertyName: string,\n propertyType: T,\n) {\n return object\n ?.getProperty(propertyName)\n ?.asKind(SyntaxKind.PropertyAssignment)\n ?.getChildren()\n .find((child) => child.getKind() === propertyType)\n ?.asKindOrThrow(propertyType);\n}\n\nexport function getVariableDeclarationByTypeName(\n sourceFile: SourceFile,\n typeName: string,\n) {\n const declaration = sourceFile.getVariableDeclaration((declaration) => {\n // First try matching the type annotation text (more reliable when types\n // can't be fully resolved, e.g. in external projects with linked deps)\n const typeAnnotation = declaration.getTypeNode()?.getText() ?? \"\";\n if (typeAnnotation.includes(typeName)) return true;\n // Fall back to resolved type text\n return declaration.getType().getText().includes(typeName);\n });\n return declaration;\n}\n","import type { DocumentModelDocumentTypeMetadata } from \"file-builders\";\nimport path from \"path\";\nimport type { Project, SourceFile } from \"ts-morph\";\nimport { SyntaxKind } from \"ts-morph\";\nimport { getObjectLiteral, getObjectProperty } from \"./syntax-getters.js\";\n\ntype GetDocumentTypeMetadataArgs = {\n project: Project;\n documentModelId: string;\n documentModelsDirPath: string;\n};\n/** Gets the document model metadata for the --document-type argument\n * passed to the `generate --editor` and `generate --app` commands.\n */\nexport function getDocumentTypeMetadata({\n project,\n documentModelId,\n documentModelsDirPath,\n}: GetDocumentTypeMetadataArgs) {\n const sourceFiles = project.getSourceFiles().filter((file) => {\n return file.getBaseName() === \"document-model.ts\";\n });\n\n const sourceFile = sourceFiles.find((file) =>\n getDocumentModelFileByDocumentId(file, documentModelId),\n );\n\n if (!sourceFile) {\n throw new Error(`No document-model.ts file exists for ${documentModelId}`);\n }\n\n const documentModelsDir = project.getDirectory(documentModelsDirPath);\n\n if (!documentModelsDir) {\n throw new Error(`No document-models dir exists for ${documentModelId}`);\n }\n\n const documentModelDir = project\n .getDirectories()\n .find(\n (dir) =>\n sourceFile.getDirectory().isDescendantOf(dir) &&\n dir.isDescendantOf(documentModelsDir),\n );\n\n if (!documentModelDir) {\n throw new Error(`No document model dir exists for ${documentModelId}`);\n }\n\n const documentModelDirName = documentModelDir.getBaseName();\n\n const documentModelImportPath = path.join(\n \"document-models\",\n documentModelDirName,\n );\n\n // types.ts lives in the same gen/ directory as document-model.ts\n // For non-versioned: <model>/gen/types.ts\n // For versioned: <model>/v1/gen/types.ts\n const sourceFileDir = sourceFile.getDirectoryPath();\n const documentModelGenTypesFilePath = path.join(sourceFileDir, \"types.ts\");\n\n const documentModelGenTypesFile = project.getSourceFile(\n documentModelGenTypesFilePath,\n );\n\n if (!documentModelGenTypesFile) {\n throw new Error(`No generated types file exists for ${documentModelId}`);\n }\n\n const documentModelDocumentTypeName = getPHDocumentTypeNameFromSourceFile(\n documentModelGenTypesFile,\n );\n\n if (!documentModelDocumentTypeName) {\n throw new Error(\n `Generated type file is missing PHDocument type declaration for ${documentModelId}`,\n );\n }\n const documentTypeMetadata: DocumentModelDocumentTypeMetadata = {\n documentModelDirName,\n documentModelDocumentTypeName,\n documentModelId,\n documentModelImportPath,\n };\n\n return documentTypeMetadata;\n}\n\nfunction getDocumentModelFileByDocumentId(\n sourceFile: SourceFile,\n documentModelId: string,\n) {\n const documentModelStatement =\n sourceFile.getVariableStatement(\"documentModel\");\n\n if (!documentModelStatement) {\n return false;\n }\n\n const documentModelObject = getObjectLiteral(documentModelStatement);\n\n if (!documentModelObject) {\n return false;\n }\n\n const documentModelIdProperty = getObjectProperty(\n documentModelObject,\n \"id\",\n SyntaxKind.StringLiteral,\n );\n\n return documentModelIdProperty?.getLiteralValue() === documentModelId;\n}\n\nexport function getPHDocumentTypeNameFromSourceFile(sourceFile: SourceFile) {\n return sourceFile\n .getTypeAliases()\n .find((alias) => {\n const typeNodeText = alias.getTypeNode()?.getText();\n return typeNodeText?.includes(\"PHDocument\");\n })\n ?.getName();\n}\n","import { spawnAsync } from \"@powerhousedao/shared/clis\";\nimport { format } from \"prettier\";\nimport type { SourceFile } from \"ts-morph\";\n\n/** Formats the text of a ts-morph source file with prettier before writing the text to memory */\nexport async function formatSourceFileWithPrettier(sourceFile: SourceFile) {\n const sourceText = sourceFile.getFullText();\n let formattedText = sourceText;\n try {\n formattedText = await format(sourceText, {\n parser: \"typescript\",\n });\n } catch (error) {\n console.error(error);\n }\n sourceFile.replaceWithText(formattedText);\n}\n\nexport async function runPrettier() {\n await spawnAsync(\"npx\", [\"prettier\", \"--write\", \".\"]);\n}\n","import type { Project } from \"ts-morph\";\n\n/** Gets a SourceFile by name in a ts-morph Project, or creates a new one\n * if none with that path exists.\n */\nexport function getOrCreateSourceFile(project: Project, filePath: string) {\n const sourceFile = project.getSourceFile(filePath);\n if (!sourceFile) {\n const newSourceFile = project.createSourceFile(filePath, \"\");\n return {\n alreadyExists: false,\n sourceFile: newSourceFile,\n };\n }\n return {\n alreadyExists: true,\n sourceFile,\n };\n}\n\n/** Gets a Directory by name in a ts-morph Project, or creates a new one\n * if none with that path exists.\n */\nexport function getOrCreateDirectory(project: Project, dirPath: string) {\n const directory = project.getDirectory(dirPath);\n if (!directory) {\n const newDirectory = project.createDirectory(dirPath);\n return {\n alreadyExists: false,\n directory: newDirectory,\n };\n }\n return {\n alreadyExists: true,\n directory,\n };\n}\n\n/** Ensures that the directories at the given paths exist within the\n * ts-morph Project\n */\nexport async function ensureDirectoriesExist(\n project: Project,\n ...pathsToEnsure: string[]\n) {\n for (const dirPath of pathsToEnsure) {\n const dir = project.getDirectory(dirPath);\n if (!dir) {\n project.createDirectory(dirPath);\n }\n }\n await project.save();\n}\n\nexport function getPreviousVersionSourceFile(args: {\n project: Project;\n version: number;\n filePath: string;\n}) {\n const { project, version, filePath } = args;\n const previousVersion = version - 1;\n if (previousVersion < 1) return;\n const previousVersionFilePath = filePath.replace(\n `/v${version}/`,\n `/v${previousVersion}/`,\n );\n\n const previousVersionFile = project.getSourceFile(previousVersionFilePath);\n\n return previousVersionFile;\n}\n","import type { SourceFile } from \"ts-morph\";\nimport { ts } from \"ts-morph\";\n\n/** Builds a ts-morph ObjectLiteralExpression from a ts/js object\n * Useful for substituting the value of a runtime object in templates\n */\nexport function buildObjectLiteral(\n inputObject: object,\n sourceFile: SourceFile,\n) {\n const propertyAssignments: ts.PropertyAssignment[] = [];\n for (const [key, value] of Object.entries(inputObject)) {\n const propertyAssignment = buildPropertyAssignment(key, value);\n propertyAssignments.push(propertyAssignment);\n }\n const objectLiteral = ts.factory.createObjectLiteralExpression(\n propertyAssignments,\n true,\n );\n\n const printNode = buildNodePrinter(sourceFile);\n return printNode(objectLiteral);\n}\n\nfunction buildFalse() {\n return ts.factory.createFalse();\n}\n\nfunction buildTrue() {\n return ts.factory.createTrue();\n}\n\nfunction buildBoolean(value: boolean) {\n return value ? buildTrue() : buildFalse();\n}\n\nfunction buildNull() {\n return ts.factory.createNull();\n}\n\nfunction buildUndefined() {\n return ts.factory.createIdentifier(\"undefined\");\n}\n\nfunction buildNumericLiteral(value: number) {\n return ts.factory.createNumericLiteral(value);\n}\n\nexport function buildStringLiteral(value: string) {\n return ts.factory.createStringLiteral(value);\n}\n\nfunction buildArrayLiteral(elements: ts.Expression[]) {\n return ts.factory.createArrayLiteralExpression(elements, true);\n}\n\nfunction valueToExpression(value: unknown): ts.Expression {\n if (value === null) return buildNull();\n if (value === undefined) return buildUndefined();\n if (typeof value === \"boolean\") return buildBoolean(value);\n if (typeof value === \"string\") return buildStringLiteral(value);\n if (typeof value === \"number\") return buildNumericLiteral(value);\n\n if (Array.isArray(value)) {\n const elements = value.map((item) => valueToExpression(item));\n return buildArrayLiteral(elements);\n }\n\n if (typeof value === \"object\") {\n return ts.factory.createObjectLiteralExpression(\n Object.entries(value).map(([key, v]) => {\n const name = ts.factory.createIdentifier(key);\n return ts.factory.createPropertyAssignment(name, valueToExpression(v));\n }),\n true,\n );\n }\n\n throw new Error(\"Invalid value passed: \", value);\n}\n\nfunction buildPropertyAssignment(name: string, value: unknown) {\n const nameIdentifier = ts.factory.createIdentifier(name);\n const valueExpression = valueToExpression(value);\n\n const propertyAssignment = ts.factory.createPropertyAssignment(\n nameIdentifier,\n valueExpression,\n );\n\n return propertyAssignment;\n}\n\nfunction buildNodePrinter(sourceFile: SourceFile) {\n const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });\n return (node: ts.Node) =>\n printer.printNode(ts.EmitHint.Unspecified, node, sourceFile.compilerNode);\n}\n","import path from \"path\";\nimport { IndentationText, Project } from \"ts-morph\";\n\nexport const DEFAULT_PROJECT_OPTIONS = {\n // don't add files from the tsconfig.json file, only use the ones we need\n skipAddingFilesFromTsConfig: true,\n // don't load library files, we only need the files we're adding\n skipLoadingLibFiles: true,\n // use formatting rules which match prettier\n manipulationSettings: {\n useTrailingCommas: true,\n indentationText: IndentationText.TwoSpaces,\n indentMultiLineObjectLiteralBeginningOnBlankLine: true,\n },\n} as const;\n\n/** Returns the minimal typescript config for use in ts-morph file generation */\nexport function getDefaultProjectOptions(tsConfigFilePath: string) {\n return {\n ...DEFAULT_PROJECT_OPTIONS,\n tsConfigFilePath,\n };\n}\n\n/** Instantiates a ts-morph Project using the default typescript config and nearest tsconfig.json file */\nexport function buildTsMorphProject(projectDir: string) {\n const tsConfigFilePath = path.join(projectDir, \"tsconfig.json\");\n const project = new Project(getDefaultProjectOptions(tsConfigFilePath));\n return project;\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-argument */\nexport function getInitialStates(scopeState: { global: any; local: any }) {\n const { global, local } = scopeState;\n const scopes = { global, local };\n\n Object.entries(scopes).forEach(([scope, state]) => {\n if (!isEmptyStateSchema(state.schema) && state.initialValue === \"\") {\n throw new Error(\n `${\n scope.charAt(0).toLocaleUpperCase() + scope.slice(1)\n } scope has a defined schema but is missing an initial value.`,\n );\n }\n });\n\n return {\n initialGlobalState: handleEmptyState(global.initialValue),\n initialLocalState: handleEmptyState(local.initialValue),\n };\n}\n\nfunction isEmptyStateSchema(schema: string | string[]) {\n return schema === \"\" || !schema.includes(\"{\");\n}\n\nfunction handleEmptyState(state: string) {\n return state === \"\" ? \"{}\" : state;\n}\n","import type { DocumentModelGlobalState } from \"@powerhousedao/shared/document-model\";\n\n/**\n * Validation result for DocumentModelGlobalState code generation requirements\n */\nexport interface DocumentModelStateValidationResult {\n /** Whether the DocumentModelGlobalState is valid for code generation */\n isValid: boolean;\n /** Array of validation error messages if validation fails */\n errors: string[];\n}\n\n/**\n * Validates that a DocumentModelGlobalState has all required properties for successful code generation.\n *\n * @param documentModelState - The DocumentModelGlobalState to validate\n * @returns Validation result with isValid flag and error messages\n */\nexport function validateDocumentModelState(\n documentModelState: DocumentModelGlobalState,\n): DocumentModelStateValidationResult {\n const errors: string[] = [];\n\n // Validate top-level required properties\n if (\n !documentModelState.id ||\n typeof documentModelState.id !== \"string\" ||\n documentModelState.id.trim() === \"\"\n ) {\n errors.push('Property \"id\" is required and must be a non-empty string');\n }\n\n if (\n !documentModelState.name ||\n typeof documentModelState.name !== \"string\" ||\n documentModelState.name.trim() === \"\"\n ) {\n errors.push('Property \"name\" is required and must be a non-empty string');\n }\n\n // Extension field is optional (can be empty string)\n if (typeof documentModelState.extension !== \"string\") {\n errors.push('Property \"extension\" must be a string');\n }\n\n // Validate specifications array\n if (\n !Array.isArray(documentModelState.specifications) ||\n documentModelState.specifications.length === 0\n ) {\n errors.push(\n 'Property \"specifications\" is required and must be a non-empty array',\n );\n return { isValid: false, errors };\n }\n\n // Get the latest specification (used by code generation)\n const latestSpec =\n documentModelState.specifications[\n documentModelState.specifications.length - 1\n ];\n\n if (!latestSpec) {\n errors.push(\"Latest specification is missing or invalid\");\n return { isValid: false, errors };\n }\n\n // Validate state structure\n if (!latestSpec.state) {\n errors.push('Latest specification must have a \"state\" property');\n return { isValid: false, errors };\n }\n\n // Validate global state (required)\n if (!latestSpec.state.global) {\n errors.push('Latest specification state must have a \"global\" property');\n } else {\n const globalState = latestSpec.state.global;\n\n if (typeof globalState.schema !== \"string\") {\n errors.push('Global state \"schema\" must be a string');\n }\n\n if (typeof globalState.initialValue !== \"string\") {\n errors.push('Global state \"initialValue\" must be a string');\n }\n\n // Check if schema is non-empty but initialValue is missing\n const hasNonEmptySchema =\n globalState.schema &&\n globalState.schema.trim() !== \"\" &&\n globalState.schema.includes(\"{\");\n if (\n hasNonEmptySchema &&\n (!globalState.initialValue || globalState.initialValue.trim() === \"\")\n ) {\n errors.push(\n \"Global state has a defined schema but is missing an initial value\",\n );\n }\n }\n\n // Validate local state (required - templates directly access it)\n if (!latestSpec.state.local) {\n errors.push('Latest specification state must have a \"local\" property');\n } else {\n const localState = latestSpec.state.local;\n\n if (typeof localState.schema !== \"string\") {\n errors.push('Local state \"schema\" must be a string');\n }\n\n if (typeof localState.initialValue !== \"string\") {\n errors.push('Local state \"initialValue\" must be a string');\n }\n\n // Check if schema is non-empty but initialValue is missing\n const hasNonEmptySchema =\n localState.schema &&\n localState.schema.trim() !== \"\" &&\n localState.schema.includes(\"{\");\n if (\n hasNonEmptySchema &&\n (!localState.initialValue || localState.initialValue.trim() === \"\")\n ) {\n errors.push(\n \"Local state has a defined schema but is missing an initial value\",\n );\n }\n }\n\n // Validate modules array (required but can be empty)\n if (!Array.isArray(latestSpec.modules)) {\n errors.push('Latest specification must have a \"modules\" array');\n } else {\n // Validate that there's at least one module\n if (latestSpec.modules.length === 0) {\n errors.push(\"Latest specification must have at least one module defined\");\n }\n\n latestSpec.modules.forEach((module, moduleIndex) => {\n if (\n !module.name ||\n typeof module.name !== \"string\" ||\n module.name.trim() === \"\"\n ) {\n errors.push(\n `Module at index ${moduleIndex} must have a non-empty \"name\" property`,\n );\n }\n\n if (!Array.isArray(module.operations)) {\n errors.push(\n `Module \"${module.name || `at index ${moduleIndex}`}\" must have an \"operations\" array`,\n );\n } else {\n // Validate that each module has at least one operation\n if (module.operations.length === 0) {\n errors.push(\n `Module \"${module.name || `at index ${moduleIndex}`}\" must have at least one operation defined`,\n );\n }\n\n module.operations.forEach((operation, operationIndex) => {\n const operationId = operation.name || `at index ${operationIndex}`;\n const moduleId = module.name || `at index ${moduleIndex}`;\n\n // operation.name is required for code generation\n if (\n !operation.name ||\n typeof operation.name !== \"string\" ||\n operation.name.trim() === \"\"\n ) {\n errors.push(\n `Operation ${operationId} in module \"${moduleId}\" must have a non-empty \"name\" property`,\n );\n }\n\n // operation.schema can be null or string (required property)\n if (\n operation.schema !== null &&\n typeof operation.schema !== \"string\"\n ) {\n errors.push(\n `Operation \"${operationId}\" in module \"${moduleId}\" must have a \"schema\" that is either null or a string`,\n );\n }\n\n // operation.scope is optional - template uses `a.scope || \"global\"` fallback\n if (\n operation.scope !== undefined &&\n typeof operation.scope !== \"string\"\n ) {\n errors.push(\n `Operation \"${operationId}\" in module \"${moduleId}\" must have a \"scope\" that is a string if provided`,\n );\n }\n\n // operation.errors is required - templates directly access it\n if (!Array.isArray(operation.errors)) {\n errors.push(\n `Operation \"${operationId}\" in module \"${moduleId}\" must have an \"errors\" array`,\n );\n }\n });\n }\n });\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n };\n}\n","/**\n * Extract type names from a GraphQL schema.\n * Finds all type, enum, union, interface, and input definitions.\n */\nexport function extractTypeNames(schema: string): string[] {\n const found = schema.match(/(type|enum|union|interface|input)\\s+(\\w+)\\s/g);\n if (!found) return [];\n return found.map((f) =>\n f\n .replaceAll(\"type \", \"\")\n .replaceAll(\"enum \", \"\")\n .replaceAll(\"union \", \"\")\n .replaceAll(\"interface \", \"\")\n .replaceAll(\"input \", \"\")\n .trim(),\n );\n}\n\n/**\n * Apply type prefixes to GraphQL schema to namespace types and avoid collisions.\n */\nexport function applyGraphQLTypePrefixes(\n schema: string,\n prefix: string,\n externalTypeNames: string[] = [],\n): string {\n if (!schema || !schema.trim()) {\n return schema;\n }\n\n let processedSchema = schema;\n\n // Find types defined in this schema\n const localTypeNames = extractTypeNames(schema);\n\n // Combine with external type names (remove duplicates)\n const allTypeNames = [...new Set([...localTypeNames, ...externalTypeNames])];\n\n if (allTypeNames.length === 0) {\n return schema;\n }\n\n allTypeNames.forEach((typeName) => {\n const typeRegex = new RegExp(\n // Match type references in various GraphQL contexts\n `(?<![_A-Za-z0-9])(${typeName})(?![_A-Za-z0-9])|` +\n `\\\\[(${typeName})\\\\]|` +\n `\\\\[(${typeName})!\\\\]|` +\n `\\\\[(${typeName})\\\\]!|` +\n `\\\\[(${typeName})!\\\\]!`,\n \"g\",\n );\n\n processedSchema = processedSchema.replace(\n typeRegex,\n (\n match: string,\n p1: string,\n p2: string,\n p3: string,\n p4: string,\n p5: string,\n ) => {\n if (match.startsWith(\"[\")) {\n const captured = p2 || p3 || p4 || p5;\n return match.replace(captured, `${prefix}_${captured}`);\n }\n // Basic type reference\n return `${prefix}_${p1}`;\n },\n );\n });\n\n return processedSchema;\n}\n"],"mappings":"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"}
|