diff --git a/src/Umbraco.Web.UI.Client/devops/json-schema-generator/index.js b/src/Umbraco.Web.UI.Client/devops/json-schema-generator/index.js new file mode 100644 index 0000000000..709dc41862 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/devops/json-schema-generator/index.js @@ -0,0 +1,23 @@ +import { writeFileSync } from 'fs'; +import { format, resolveConfig } from 'prettier'; +import { createImportMap } from '../importmap/index.js'; + +const tsPath = './src/all-packages.ts'; + +const importmap = createImportMap({ + rootDir: './src', + replaceModuleExtensions: true, +}); + +const paths = Object.keys(importmap.imports); + +const content = ` +${ + paths.map(path => `import '${path}';`).join('\n') +} +`; + +//const config = await resolveConfig('./.prettierrc.json'); +//const formattedContent = await format(content, { ...config, parser: 'json' }); + +writeFileSync(tsPath, content); diff --git a/src/Umbraco.Web.UI.Client/package.json b/src/Umbraco.Web.UI.Client/package.json index 065c45d2bc..8f15da7d4e 100644 --- a/src/Umbraco.Web.UI.Client/package.json +++ b/src/Umbraco.Web.UI.Client/package.json @@ -160,8 +160,9 @@ "generate:server-api": "openapi-ts --file devops/openapi-ts/openapi-ts.config.js", "generate:icons": "node ./devops/icons/index.js", "generate:overrides": "node ./devops/tsc/index.js", - "generate:jsonschema:dist": "typescript-json-schema --required --include \"./src/packages/core/extension-registry/umbraco-package.ts\" --out dist-cms/umbraco-package-schema.json tsconfig.json UmbracoPackage", - "generate:jsonschema": "typescript-json-schema --required --include \"./src/packages/core/extension-registry/*.ts\"", + "generate:jsonschema:imports": "node ./devops/json-schema-generator/index.js", + "generate:jsonschema:dist": "typescript-json-schema --required --include \"./src/umbraco-package-schema.ts\" --out dist-cms/umbraco-package-schema.json tsconfig.json UmbracoPackage", + "generate:jsonschema": "typescript-json-schema --required --include \"./src/umbraco-package-schema.ts\"", "lint:errors": "npm run lint -- --quiet", "lint:fix": "npm run lint -- --fix", "lint": "eslint src", diff --git a/src/Umbraco.Web.UI.Client/src/all-packages.ts b/src/Umbraco.Web.UI.Client/src/all-packages.ts new file mode 100644 index 0000000000..4514c57c76 --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/all-packages.ts @@ -0,0 +1,110 @@ + +import '@umbraco-cms/backoffice/app'; +import '@umbraco-cms/backoffice/class-api'; +import '@umbraco-cms/backoffice/context-api'; +import '@umbraco-cms/backoffice/controller-api'; +import '@umbraco-cms/backoffice/element-api'; +import '@umbraco-cms/backoffice/extension-api'; +import '@umbraco-cms/backoffice/formatting-api'; +import '@umbraco-cms/backoffice/localization-api'; +import '@umbraco-cms/backoffice/observable-api'; +import '@umbraco-cms/backoffice/action'; +import '@umbraco-cms/backoffice/audit-log'; +import '@umbraco-cms/backoffice/auth'; +import '@umbraco-cms/backoffice/block-custom-view'; +import '@umbraco-cms/backoffice/block-grid'; +import '@umbraco-cms/backoffice/block-list'; +import '@umbraco-cms/backoffice/block-rte'; +import '@umbraco-cms/backoffice/block-type'; +import '@umbraco-cms/backoffice/block'; +import '@umbraco-cms/backoffice/code-editor'; +import '@umbraco-cms/backoffice/collection'; +import '@umbraco-cms/backoffice/components'; +import '@umbraco-cms/backoffice/content-type'; +import '@umbraco-cms/backoffice/content'; +import '@umbraco-cms/backoffice/culture'; +import '@umbraco-cms/backoffice/picker'; +import '@umbraco-cms/backoffice/current-user'; +import '@umbraco-cms/backoffice/data-type'; +import '@umbraco-cms/backoffice/debug'; +import '@umbraco-cms/backoffice/dictionary'; +import '@umbraco-cms/backoffice/document-blueprint'; +import '@umbraco-cms/backoffice/document-type'; +import '@umbraco-cms/backoffice/document'; +import '@umbraco-cms/backoffice/entity-action'; +import '@umbraco-cms/backoffice/entity-bulk-action'; +import '@umbraco-cms/backoffice/entity'; +import '@umbraco-cms/backoffice/event'; +import '@umbraco-cms/backoffice/extension-registry'; +import '@umbraco-cms/backoffice/help'; +import '@umbraco-cms/backoffice/icon'; +import '@umbraco-cms/backoffice/id'; +import '@umbraco-cms/backoffice/imaging'; +import '@umbraco-cms/backoffice/language'; +import '@umbraco-cms/backoffice/lit-element'; +import '@umbraco-cms/backoffice/localization'; +import '@umbraco-cms/backoffice/log-viewer'; +import '@umbraco-cms/backoffice/markdown-editor'; +import '@umbraco-cms/backoffice/media-type'; +import '@umbraco-cms/backoffice/media'; +import '@umbraco-cms/backoffice/member-group'; +import '@umbraco-cms/backoffice/member-type'; +import '@umbraco-cms/backoffice/member'; +import '@umbraco-cms/backoffice/menu'; +import '@umbraco-cms/backoffice/modal'; +import '@umbraco-cms/backoffice/models'; +import '@umbraco-cms/backoffice/multi-url-picker'; +import '@umbraco-cms/backoffice/notification'; +import '@umbraco-cms/backoffice/object-type'; +import '@umbraco-cms/backoffice/package'; +import '@umbraco-cms/backoffice/partial-view'; +import '@umbraco-cms/backoffice/picker-input'; +import '@umbraco-cms/backoffice/property-action'; +import '@umbraco-cms/backoffice/property-editor'; +import '@umbraco-cms/backoffice/property-type'; +import '@umbraco-cms/backoffice/property'; +import '@umbraco-cms/backoffice/recycle-bin'; +import '@umbraco-cms/backoffice/relation-type'; +import '@umbraco-cms/backoffice/relations'; +import '@umbraco-cms/backoffice/repository'; +import '@umbraco-cms/backoffice/resources'; +import '@umbraco-cms/backoffice/router'; +import '@umbraco-cms/backoffice/script'; +import '@umbraco-cms/backoffice/search'; +import '@umbraco-cms/backoffice/section'; +import '@umbraco-cms/backoffice/server-file-system'; +import '@umbraco-cms/backoffice/settings'; +import '@umbraco-cms/backoffice/sorter'; +import '@umbraco-cms/backoffice/static-file'; +import '@umbraco-cms/backoffice/store'; +import '@umbraco-cms/backoffice/style'; +import '@umbraco-cms/backoffice/stylesheet'; +import '@umbraco-cms/backoffice/sysinfo'; +import '@umbraco-cms/backoffice/tags'; +import '@umbraco-cms/backoffice/template'; +import '@umbraco-cms/backoffice/temporary-file'; +import '@umbraco-cms/backoffice/themes'; +import '@umbraco-cms/backoffice/tiny-mce'; +import '@umbraco-cms/backoffice/tree'; +import '@umbraco-cms/backoffice/ufm'; +import '@umbraco-cms/backoffice/user-group'; +import '@umbraco-cms/backoffice/user-permission'; +import '@umbraco-cms/backoffice/user'; +import '@umbraco-cms/backoffice/utils'; +import '@umbraco-cms/backoffice/validation'; +import '@umbraco-cms/backoffice/variant'; +import '@umbraco-cms/backoffice/webhook'; +import '@umbraco-cms/backoffice/workspace'; +import '@umbraco-cms/backoffice/external/backend-api'; +import '@umbraco-cms/backoffice/external/base64-js'; +import '@umbraco-cms/backoffice/external/diff'; +import '@umbraco-cms/backoffice/external/dompurify'; +import '@umbraco-cms/backoffice/external/lit'; +import '@umbraco-cms/backoffice/external/marked'; +import '@umbraco-cms/backoffice/external/monaco-editor'; +import '@umbraco-cms/backoffice/external/openid'; +import '@umbraco-cms/backoffice/external/router-slot'; +import '@umbraco-cms/backoffice/external/rxjs'; +import '@umbraco-cms/backoffice/external/tinymce'; +import '@umbraco-cms/backoffice/external/uui'; +import '@umbraco-cms/backoffice/external/uuid'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/extensions/types.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/extensions/types.ts index b3fc55cf42..26f2be39c0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/extensions/types.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/extensions/types.ts @@ -14,28 +14,11 @@ import type { } from './workspace-view.model.js'; import type { ManifestWorkspace, ManifestWorkspaceRoutableKind } from './workspace.model.js'; -export type { - ManifestWorkspaceAction, - MetaWorkspaceAction, - ManifestWorkspaceActionDefaultKind, - MetaWorkspaceActionDefaultKind, -} from './workspace-action.model.js'; -export type { - ManifestWorkspaceFooterApp, - ManifestWorkspaceFooterAppMenuBreadcrumbKind, - ManifestWorkspaceFooterAppVariantMenuBreadcrumbKind, -} from './workspace-footer-app.model.js'; -export type { - UmbWorkspaceViewElement, - ManifestWorkspaceView, - ManifestWorkspaceViewContentTypeDesignEditorKind, -} from './workspace-view.model.js'; -export type { ManifestWorkspace, ManifestWorkspaceRoutableKind } from './workspace.model.js'; -export type { - ManifestWorkspaceActionMenuItem, - ManifestWorkspaceActionMenuItemDefaultKind, - MetaWorkspaceActionMenuItemDefaultKind, -} from './workspace-action-menu-item.model.js'; +export type * from './workspace-action.model.js'; +export type * from './workspace-footer-app.model.js'; +export type * from './workspace-view.model.js'; +export type * from './workspace.model.js'; +export type * from './workspace-action-menu-item.model.js'; export type ManifestWorkspaceFooterApps = | ManifestWorkspaceFooterApp diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/umbraco-package.ts b/src/Umbraco.Web.UI.Client/src/umbraco-package-schema.ts similarity index 98% rename from src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/umbraco-package.ts rename to src/Umbraco.Web.UI.Client/src/umbraco-package-schema.ts index 7e11d17764..9bd0fa2930 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/umbraco-package.ts +++ b/src/Umbraco.Web.UI.Client/src/umbraco-package-schema.ts @@ -1,4 +1,4 @@ -import './models/index.js'; +import './all-packages.js'; /** * Umbraco package manifest JSON