From 20c63436d2faa61aa99575deb911a0f0942f0341 Mon Sep 17 00:00:00 2001 From: Alex Grozav Date: Tue, 24 Jun 2025 14:01:23 +0300 Subject: [PATCH] fix(editor): Fix broken types for globally defined components (no-changelog) (#16505) Co-authored-by: Mutasem Aldmour --- biome.jsonc | 1 + packages/frontend/@n8n/chat/.gitignore | 3 + packages/frontend/@n8n/chat/package.json | 5 +- packages/frontend/@n8n/chat/src/App.vue | 3 +- .../@n8n/chat/src/components/Message.vue | 2 +- .../@n8n/chat/src/components/MessagesList.vue | 1 + packages/frontend/@n8n/chat/src/env.d.ts | 16 + packages/frontend/@n8n/chat/src/shims.d.ts | 6 - packages/frontend/@n8n/chat/tsconfig.json | 4 +- packages/frontend/@n8n/chat/vite.config.mts | 37 +- .../frontend/@n8n/design-system/.eslintrc.js | 1 + .../frontend/@n8n/design-system/package.json | 1 + .../AskAssistantChat/AskAssistantChat.vue | 13 +- .../AskAssistantChat.test.ts.snap | 103 ++- .../AskAssistantChat/messages/BaseMessage.vue | 3 +- .../messages/ErrorMessage.vue | 8 +- .../AskAssistantChat/messages/TextMessage.vue | 7 +- .../messages/workflow/RateWorkflowMessage.vue | 12 +- .../src/components/CodeDiff/CodeDiff.vue | 15 +- .../__snapshots__/CodeDiff.test.ts.snap | 27 + .../src/components/N8nActionBox/ActionBox.vue | 6 +- .../N8nActionDropdown/ActionDropdown.vue | 9 +- .../N8nActionToggle/ActionToggle.vue | 19 +- .../src/components/N8nAvatar/Avatar.vue | 4 +- .../src/components/N8nBadge/Badge.vue | 14 +- .../N8nBreadcrumbs/Breadcrumbs.stories.ts | 4 +- .../components/N8nBreadcrumbs/Breadcrumbs.vue | 33 +- .../src/components/N8nButton/Button.vue | 6 +- .../src/components/N8nCallout/Callout.vue | 5 +- .../src/components/N8nCallout/index.ts | 2 +- .../N8nDataTableServer/N8nDataTableServer.vue | 10 +- .../src/components/N8nDatatable/Datatable.vue | 6 +- .../src/components/N8nFormBox/FormBox.vue | 19 +- .../src/components/N8nFormInput/FormInput.vue | 13 +- .../components/N8nFormInputs/FormInputs.vue | 43 +- .../N8nIconPicker/IconPicker.test.ts | 8 +- .../components/N8nIconPicker/IconPicker.vue | 4 + .../N8nInfoAccordion/InfoAccordion.vue | 9 +- .../src/components/N8nInput/Input.vue | 2 +- .../src/components/N8nMarkdown/Markdown.vue | 4 +- .../src/components/N8nMenuItem/MenuItem.vue | 6 +- .../src/components/N8nNodeIcon/NodeIcon.vue | 13 +- .../N8nRadioButtons/RadioButtons.vue | 5 +- .../N8nRecycleScroller/RecycleScroller.vue | 31 +- .../src/components/N8nRoute/Route.test.ts | 9 + .../src/components/N8nRoute/Route.vue | 6 +- .../N8nRoute/__snapshots__/Route.test.ts.snap | 2 +- .../N8nSelectableList/SelectableList.vue | 1 + .../src/components/N8nSpinner/Spinner.vue | 4 +- .../src/components/N8nTabs/Tabs.vue | 21 +- .../src/components/N8nTags/Tags.vue | 2 +- .../src/components/N8nTree/Tree.vue | 15 +- .../src/components/N8nUserInfo/UserInfo.vue | 6 +- .../components/N8nUserSelect/UserSelect.vue | 2 +- .../src/components/N8nUserStack/UserStack.vue | 19 +- .../src/components/N8nUsersList/UsersList.vue | 16 +- .../frontend/@n8n/design-system/src/plugin.ts | 7 +- .../@n8n/design-system/src/types/badge.ts | 10 + .../@n8n/design-system/src/types/button.ts | 4 +- .../@n8n/design-system/src/types/callout.ts | 2 + .../@n8n/design-system/src/types/datatable.ts | 2 +- .../@n8n/design-system/src/types/form.ts | 10 + .../@n8n/design-system/src/types/index.ts | 13 +- .../src/types/recycle-scroller.ts | 5 + .../@n8n/design-system/src/types/tabs.ts | 11 + .../@n8n/design-system/src/types/user.ts | 25 +- packages/frontend/editor-ui/package.json | 1 + packages/frontend/editor-ui/src/Interface.ts | 50 ++ .../editor-ui/src/__tests__/render.ts | 12 +- .../editor-ui/src/components/ApiKeyCard.vue | 2 +- .../src/components/ChangePasswordModal.vue | 14 +- .../src/components/CommunityPackageCard.vue | 5 +- .../src/components/CredentialCard.vue | 2 +- .../Evaluations.ee/shared/TableStatusCell.vue | 3 +- .../components/ExpressionParameterInput.vue | 2 +- .../Folders/FolderBreadcrumbs.test.ts | 3 +- .../components/Folders/FolderBreadcrumbs.vue | 3 +- .../src/components/Folders/FolderCard.test.ts | 6 +- .../src/components/Folders/FolderCard.vue | 7 +- .../src/components/FreeAiCreditsCallout.vue | 2 +- .../src/components/FromAiParametersModal.vue | 8 +- .../src/components/InlineNameEdit.vue | 5 +- .../src/components/InviteUsersModal.vue | 20 +- .../src/components/MainHeader/TabBar.vue | 4 +- .../components/MainHeader/WorkflowDetails.vue | 3 +- .../editor-ui/src/components/MainSidebar.vue | 3 +- .../src/components/NDVDraggablePanels.vue | 6 +- .../src/components/NDVSubConnections.test.ts | 9 +- .../src/components/NodeExecuteButton.vue | 7 +- .../src/components/NodeSettingsTabs.vue | 4 +- .../FromAiOverrideField.vue | 4 +- .../src/components/PersonalizationModal.vue | 819 +++++++++--------- .../components/Projects/ProjectCardBadge.vue | 6 +- .../Projects/ProjectCreateResource.vue | 14 +- .../src/components/Projects/ProjectHeader.vue | 3 +- .../Projects/ProjectMoveResourceModal.vue | 2 +- .../components/Projects/ProjectNavigation.vue | 22 +- .../components/Projects/ProjectSharing.vue | 2 +- .../src/components/Projects/ProjectTabs.vue | 22 +- .../PromptMfaCodeModal/PromptMfaCodeModal.vue | 13 +- .../ResourceLocator/ResourceLocator.vue | 13 +- .../ResourceLocatorDropdown.vue | 10 +- .../editor-ui/src/components/SSOLogin.vue | 2 +- .../editor-ui/src/components/SaveButton.vue | 3 +- .../components/SourceControlPushModal.ee.vue | 2 +- .../src/components/TemplateDetails.vue | 17 +- .../src/components/VirtualSchema.vue | 2 +- .../components/Workers/WorkerAccordion.ee.vue | 5 +- .../Workers/WorkerChartsAccordion.ee.vue | 2 +- .../Workers/WorkerJobAccordion.ee.vue | 2 +- .../Workers/WorkerNetAccordion.ee.vue | 2 +- ...kflowActivationConflictingWebhookModal.vue | 2 +- .../editor-ui/src/components/WorkflowCard.vue | 9 +- .../WorkflowHistoryContent.test.ts | 3 +- .../WorkflowHistoryContent.vue | 3 +- .../WorkflowHistoryList.test.ts | 3 +- .../WorkflowHistory/WorkflowHistoryList.vue | 3 +- .../WorkflowHistoryListItem.test.ts | 3 +- .../WorkflowHistoryListItem.vue | 6 +- .../WorkflowHistoryVersionRestoreModal.vue | 3 +- .../WorkflowSelectorParameterInput.vue | 7 +- .../useWorkflowResourceLocatorModes.ts | 2 +- .../src/components/WorkflowSettings.vue | 4 +- .../__snapshots__/VirtualSchema.test.ts.snap | 4 +- .../src/components/banners/BaseBanner.vue | 3 +- .../executions/ExecutionsFilter.vue | 8 +- .../WorkflowExecutionsInfoAccordion.vue | 10 +- .../forms/ResourceFiltersDropdown.vue | 2 +- .../layouts/ResourcesListLayout.test.ts | 3 +- .../layouts/ResourcesListLayout.vue | 100 +-- .../src/composables/useWorkflowSaving.ts | 2 +- .../logs/components/MessageOptionAction.vue | 10 +- .../editor-ui/src/utils/typeGuards.ts | 16 +- .../frontend/editor-ui/src/views/AuthView.vue | 16 +- .../src/views/ChangePasswordView.vue | 6 +- .../editor-ui/src/views/CredentialsView.vue | 6 +- .../frontend/editor-ui/src/views/MfaView.vue | 15 +- .../editor-ui/src/views/ProjectSettings.vue | 8 +- .../src/views/SettingsCommunityNodesView.vue | 2 +- .../editor-ui/src/views/SettingsLdapView.vue | 2 +- .../src/views/SettingsPersonalView.vue | 3 +- .../src/views/SettingsSourceControl.vue | 14 +- .../editor-ui/src/views/SettingsUsersView.vue | 11 +- .../src/views/TemplatesCollectionView.vue | 12 +- .../editor-ui/src/views/VariablesView.vue | 10 +- .../editor-ui/src/views/WorkflowHistory.vue | 3 +- .../editor-ui/src/views/WorkflowsView.vue | 29 +- packages/frontend/editor-ui/vite.config.mts | 4 + packages/workflow/src/interfaces.ts | 2 +- pnpm-lock.yaml | 60 +- 150 files changed, 1332 insertions(+), 960 deletions(-) delete mode 100644 packages/frontend/@n8n/chat/src/shims.d.ts create mode 100644 packages/frontend/@n8n/design-system/src/types/badge.ts create mode 100644 packages/frontend/@n8n/design-system/src/types/callout.ts create mode 100644 packages/frontend/@n8n/design-system/src/types/recycle-scroller.ts create mode 100644 packages/frontend/@n8n/design-system/src/types/tabs.ts diff --git a/biome.jsonc b/biome.jsonc index d231d17407..1eb434dc88 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -8,6 +8,7 @@ "files": { "ignore": [ "**/.turbo", + "**/components.d.ts", "**/coverage", "**/dist", "**/package.json", diff --git a/packages/frontend/@n8n/chat/.gitignore b/packages/frontend/@n8n/chat/.gitignore index 38adffa64e..286644387f 100644 --- a/packages/frontend/@n8n/chat/.gitignore +++ b/packages/frontend/@n8n/chat/.gitignore @@ -26,3 +26,6 @@ coverage *.njsproj *.sln *.sw? + +# Auto-generated files +src/components.d.ts diff --git a/packages/frontend/@n8n/chat/package.json b/packages/frontend/@n8n/chat/package.json index 13d3cb7885..2c7015b79e 100644 --- a/packages/frontend/@n8n/chat/package.json +++ b/packages/frontend/@n8n/chat/package.json @@ -12,8 +12,8 @@ "typecheck": "vue-tsc --noEmit", "lint": "eslint . --ext .js,.ts,.vue --quiet", "lintfix": "eslint . --ext .js,.ts,.vue --fix", - "format": "biome format --write src .storybook && prettier --write src/ --ignore-path ../../.prettierignore", - "format:check": "biome ci src .storybook && prettier --check src/ --ignore-path ../../.prettierignore", + "format": "biome format --write src .storybook && prettier --write src/ --ignore-path ../../../../.prettierignore", + "format:check": "biome ci src .storybook && prettier --check src/ --ignore-path ../../../../.prettierignore", "storybook": "storybook dev -p 6006 --no-open", "build:storybook": "storybook build" }, @@ -36,6 +36,7 @@ } }, "dependencies": { + "@n8n/design-system": "workspace:*", "@vueuse/core": "catalog:frontend", "highlight.js": "catalog:frontend", "markdown-it-link-attributes": "^4.0.1", diff --git a/packages/frontend/@n8n/chat/src/App.vue b/packages/frontend/@n8n/chat/src/App.vue index 0614b7cf73..32e5976d9d 100644 --- a/packages/frontend/@n8n/chat/src/App.vue +++ b/packages/frontend/@n8n/chat/src/App.vue @@ -4,7 +4,8 @@ import hljsJavascript from 'highlight.js/lib/languages/javascript'; import hljsXML from 'highlight.js/lib/languages/xml'; import { computed, onMounted } from 'vue'; -import { Chat, ChatWindow } from '@n8n/chat/components'; +import Chat from '@n8n/chat/components/Chat.vue'; +import ChatWindow from '@n8n/chat/components/ChatWindow.vue'; import { useOptions } from '@n8n/chat/composables'; defineProps({}); diff --git a/packages/frontend/@n8n/chat/src/components/Message.vue b/packages/frontend/@n8n/chat/src/components/Message.vue index 7868cd54f6..bfcc21ca39 100644 --- a/packages/frontend/@n8n/chat/src/components/Message.vue +++ b/packages/frontend/@n8n/chat/src/components/Message.vue @@ -105,7 +105,7 @@ onMounted(async () => {