diff --git a/.github/workflows/ci-postgres-mysql.yml b/.github/workflows/ci-postgres-mysql.yml index 77f4c285d6..bfcfbdc617 100644 --- a/.github/workflows/ci-postgres-mysql.yml +++ b/.github/workflows/ci-postgres-mysql.yml @@ -130,7 +130,7 @@ jobs: timeout-minutes: 20 strategy: matrix: - service-name: [ 'mysql-8.0.13', 'mysql-8.4' ] + service-name: ['mysql-8.0.13', 'mysql-8.4'] env: DB_MYSQLDB_PASSWORD: password steps: diff --git a/codecov.yml b/codecov.yml index 1d61749328..13af5046d4 100644 --- a/codecov.yml +++ b/codecov.yml @@ -15,7 +15,7 @@ github_checks: flags: tests: paths: - - "**" + - '**' carryforward: true component_management: @@ -24,7 +24,7 @@ component_management: - type: project target: auto branches: - - "!master" + - '!master' individual_components: - component_id: backend_packages name: Backend diff --git a/packages/frontend/@n8n/design-system/src/components/N8nActionBox/ActionBox.vue b/packages/frontend/@n8n/design-system/src/components/N8nActionBox/ActionBox.vue index a658e513fb..75b5fa2607 100644 --- a/packages/frontend/@n8n/design-system/src/components/N8nActionBox/ActionBox.vue +++ b/packages/frontend/@n8n/design-system/src/components/N8nActionBox/ActionBox.vue @@ -65,7 +65,7 @@ withDefaults(defineProps(), { :class="$style.callout" > - + diff --git a/packages/frontend/@n8n/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue b/packages/frontend/@n8n/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue index 7ef2af20f1..456a0c4cfe 100644 --- a/packages/frontend/@n8n/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue +++ b/packages/frontend/@n8n/design-system/src/components/N8nInfoAccordion/InfoAccordion.vue @@ -71,7 +71,7 @@ const onTooltipClick = (item: string, event: MouseEvent) => emit('tooltipClick',
diff --git a/packages/frontend/@n8n/design-system/src/components/N8nMarkdown/Markdown.vue b/packages/frontend/@n8n/design-system/src/components/N8nMarkdown/Markdown.vue index fa65a8cdc6..87499686a2 100644 --- a/packages/frontend/@n8n/design-system/src/components/N8nMarkdown/Markdown.vue +++ b/packages/frontend/@n8n/design-system/src/components/N8nMarkdown/Markdown.vue @@ -198,11 +198,11 @@ const onCheckboxChange = (index: number) => {
diff --git a/packages/frontend/@n8n/design-system/src/components/N8nNotice/Notice.vue b/packages/frontend/@n8n/design-system/src/components/N8nNotice/Notice.vue index d2f7512292..d713423a0c 100644 --- a/packages/frontend/@n8n/design-system/src/components/N8nNotice/Notice.vue +++ b/packages/frontend/@n8n/design-system/src/components/N8nNotice/Notice.vue @@ -74,9 +74,9 @@ const onClick = (event: MouseEvent) => { diff --git a/packages/frontend/@n8n/design-system/src/components/N8nTabs/Tabs.vue b/packages/frontend/@n8n/design-system/src/components/N8nTabs/Tabs.vue index 53e2a7da56..3b9b9cb743 100644 --- a/packages/frontend/@n8n/design-system/src/components/N8nTabs/Tabs.vue +++ b/packages/frontend/@n8n/design-system/src/components/N8nTabs/Tabs.vue @@ -90,7 +90,7 @@ const scrollRight = () => scroll(50); >
diff --git a/packages/frontend/editor-ui/src/components/ExpressionEditModal.vue b/packages/frontend/editor-ui/src/components/ExpressionEditModal.vue index 4f2a13de78..f6a5155857 100644 --- a/packages/frontend/editor-ui/src/components/ExpressionEditModal.vue +++ b/packages/frontend/editor-ui/src/components/ExpressionEditModal.vue @@ -185,9 +185,9 @@ const onResizeThrottle = useThrottleFn(onResize, 10); {{ i18n.baseText('expressionEdit.expression') }}
diff --git a/packages/frontend/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue b/packages/frontend/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue index 80f148b8d4..14e4e7a464 100644 --- a/packages/frontend/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue +++ b/packages/frontend/editor-ui/src/components/InlineExpressionEditor/InlineExpressionEditorOutput.vue @@ -53,7 +53,7 @@ onBeforeUnmount(() => { > -
+
-import { nextTick } from 'vue'; -import { onBeforeUnmount, onMounted, ref } from 'vue'; +import { nextTick, onBeforeUnmount, onMounted, ref } from 'vue'; import type { EventBus } from '@n8n/utils/event-bus'; import { createEventBus } from '@n8n/utils/event-bus'; diff --git a/packages/frontend/editor-ui/src/components/Logo/Logo.vue b/packages/frontend/editor-ui/src/components/Logo/Logo.vue index 4b25eddec7..d6077bc2af 100644 --- a/packages/frontend/editor-ui/src/components/Logo/Logo.vue +++ b/packages/frontend/editor-ui/src/components/Logo/Logo.vue @@ -63,7 +63,7 @@ onMounted(() => { @@ -300,12 +300,12 @@ onMounted(() => {
diff --git a/packages/frontend/editor-ui/src/components/Node/NodeCreator/Renderers/ItemsRenderer.vue b/packages/frontend/editor-ui/src/components/Node/NodeCreator/Renderers/ItemsRenderer.vue index ab225854fd..719af1d0ad 100644 --- a/packages/frontend/editor-ui/src/components/Node/NodeCreator/Renderers/ItemsRenderer.vue +++ b/packages/frontend/editor-ui/src/components/Node/NodeCreator/Renderers/ItemsRenderer.vue @@ -136,7 +136,7 @@ watch( :elements="item.children" expanded :category="item.title" - @selected="(child) => wrappedEmit('selected', child)" + @selected="(child: INodeCreateElement) => wrappedEmit('selected', child)" > diff --git a/packages/frontend/editor-ui/src/components/NodeExecuteButton.vue b/packages/frontend/editor-ui/src/components/NodeExecuteButton.vue index 8ef10dd1be..6085e9eb86 100644 --- a/packages/frontend/editor-ui/src/components/NodeExecuteButton.vue +++ b/packages/frontend/editor-ui/src/components/NodeExecuteButton.vue @@ -85,7 +85,7 @@ const nodeType = computed((): INodeTypeDescription | null => { }); const isNodeRunning = computed(() => { - if (!uiStore.isActionActive['workflowRunning'] || codeGenerationInProgress.value) return false; + if (!uiStore.isActionActive.workflowRunning || codeGenerationInProgress.value) return false; const triggeredNode = workflowsStore.executedNode; return ( workflowsStore.isNodeExecuting(node.value?.name ?? '') || triggeredNode === node.value?.name diff --git a/packages/frontend/editor-ui/src/components/ParameterInput.vue b/packages/frontend/editor-ui/src/components/ParameterInput.vue index 510bb7b115..e6b6feb6e2 100644 --- a/packages/frontend/editor-ui/src/components/ParameterInput.vue +++ b/packages/frontend/editor-ui/src/components/ParameterInput.vue @@ -987,7 +987,7 @@ async function optionSelected(command: string) { onMounted(() => { props.eventBus.on('optionSelected', optionSelected); - tempValue.value = displayValue.value as string; + tempValue.value = displayValue.value; if (node.value) { nodeName.value = node.value.name; @@ -1003,7 +1003,7 @@ onMounted(() => { displayValue.value !== null && displayValue.value.toString().charAt(0) !== '#' ) { - const newValue = rgbaToHex(displayValue.value as string); + const newValue = rgbaToHex(displayValue.value); if (newValue !== null) { tempValue.value = newValue; } @@ -1074,12 +1074,12 @@ watch( // Do not set for color with alpha else wrong value gets displayed in field return; } - tempValue.value = displayValue.value as string; + tempValue.value = displayValue.value; }, ); watch(remoteParameterOptionsLoading, () => { - tempValue.value = displayValue.value as string; + tempValue.value = displayValue.value; }); // Focus input field when changing between fixed and expression @@ -1598,8 +1598,8 @@ onUpdated(async () => {
@@ -1631,8 +1631,8 @@ onUpdated(async () => {
{{ getOptionsOptionDisplayName(option) }}
diff --git a/packages/frontend/editor-ui/src/components/ParameterInputHint.vue b/packages/frontend/editor-ui/src/components/ParameterInputHint.vue index 1c28e4e44a..26249006a6 100644 --- a/packages/frontend/editor-ui/src/components/ParameterInputHint.vue +++ b/packages/frontend/editor-ui/src/components/ParameterInputHint.vue @@ -46,13 +46,13 @@ const simplyText = computed(() => { [$style.highlight]: highlight, }" > - +
diff --git a/packages/frontend/editor-ui/src/components/ParameterOptions.test.ts b/packages/frontend/editor-ui/src/components/ParameterOptions.test.ts index 4ae7f8e226..c302f7e587 100644 --- a/packages/frontend/editor-ui/src/components/ParameterOptions.test.ts +++ b/packages/frontend/editor-ui/src/components/ParameterOptions.test.ts @@ -1,7 +1,6 @@ import { renderComponent } from '@/__tests__/render'; import userEvent from '@testing-library/user-event'; -import { within } from '@testing-library/vue'; -import { waitFor } from '@testing-library/vue'; +import { within, waitFor } from '@testing-library/vue'; import ParameterOptions from './ParameterOptions.vue'; import { setActivePinia, createPinia } from 'pinia'; diff --git a/packages/frontend/editor-ui/src/components/ResourceMapper/MappingModeSelect.vue b/packages/frontend/editor-ui/src/components/ResourceMapper/MappingModeSelect.vue index fd9f2d2125..a6c505a25d 100644 --- a/packages/frontend/editor-ui/src/components/ResourceMapper/MappingModeSelect.vue +++ b/packages/frontend/editor-ui/src/components/ResourceMapper/MappingModeSelect.vue @@ -131,7 +131,7 @@ defineExpose({
{{ option.name }}
-
+
diff --git a/packages/frontend/editor-ui/src/components/SourceControlPushModal.ee.vue b/packages/frontend/editor-ui/src/components/SourceControlPushModal.ee.vue index d26a7a4928..ccc0e38bed 100644 --- a/packages/frontend/editor-ui/src/components/SourceControlPushModal.ee.vue +++ b/packages/frontend/editor-ui/src/components/SourceControlPushModal.ee.vue @@ -431,7 +431,7 @@ watch(refDebounced(search, 500), (term) => {
diff --git a/packages/frontend/editor-ui/src/components/TriggerPanel.vue b/packages/frontend/editor-ui/src/components/TriggerPanel.vue index e209abce19..888fbe291c 100644 --- a/packages/frontend/editor-ui/src/components/TriggerPanel.vue +++ b/packages/frontend/editor-ui/src/components/TriggerPanel.vue @@ -163,7 +163,7 @@ const isListeningForEvents = computed(() => { }); const workflowRunning = computed(() => { - return uiStore.isActionActive['workflowRunning']; + return uiStore.isActionActive.workflowRunning; }); const isActivelyPolling = computed(() => { diff --git a/packages/frontend/editor-ui/src/components/VersionCard.vue b/packages/frontend/editor-ui/src/components/VersionCard.vue index e62214ead6..8b814e1119 100644 --- a/packages/frontend/editor-ui/src/components/VersionCard.vue +++ b/packages/frontend/editor-ui/src/components/VersionCard.vue @@ -55,8 +55,8 @@ const nodeName = (node: IVersionNode): string => {
diff --git a/packages/frontend/editor-ui/src/components/executions/ExecutionsFilter.vue b/packages/frontend/editor-ui/src/components/executions/ExecutionsFilter.vue index 4325c9b94f..a11246ab67 100644 --- a/packages/frontend/editor-ui/src/components/executions/ExecutionsFilter.vue +++ b/packages/frontend/editor-ui/src/components/executions/ExecutionsFilter.vue @@ -257,8 +257,8 @@ onBeforeMount(() => { }} { >
diff --git a/packages/frontend/editor-ui/src/components/layouts/ResourcesListLayout.vue b/packages/frontend/editor-ui/src/components/layouts/ResourcesListLayout.vue index b18e92f80d..eaa85af03d 100644 --- a/packages/frontend/editor-ui/src/components/layouts/ResourcesListLayout.vue +++ b/packages/frontend/editor-ui/src/components/layouts/ResourcesListLayout.vue @@ -145,7 +145,11 @@ const slots = defineSlots<{ setKeyValue: (key: string, value: unknown) => void; }): unknown; // eslint-disable-next-line @typescript-eslint/no-explicit-any - default(props: { data: any; updateItemSize: (data: any) => void }): unknown; + default(props: { + data: any; + columns?: DatatableColumn[]; + updateItemSize?: (data: any) => void; + }): unknown; item(props: { item: unknown; index: number }): unknown; breadcrumbs(): unknown; }>(); @@ -418,7 +422,7 @@ const getColumns = () => { if ('columns' in props.typeProps) { return props.typeProps.columns; } - return {}; + return []; }; const sendSortingTelemetry = () => { diff --git a/packages/frontend/editor-ui/src/composables/useAIAssistantHelpers.ts b/packages/frontend/editor-ui/src/composables/useAIAssistantHelpers.ts index 4d0923a2ff..9e014afe8c 100644 --- a/packages/frontend/editor-ui/src/composables/useAIAssistantHelpers.ts +++ b/packages/frontend/editor-ui/src/composables/useAIAssistantHelpers.ts @@ -1,11 +1,12 @@ +import { deepCopy } from 'n8n-workflow'; import type { IDataObject, IRunExecutionData, NodeApiError, NodeError, NodeOperationError, + INode, } from 'n8n-workflow'; -import { deepCopy, type INode } from 'n8n-workflow'; import { useWorkflowHelpers } from './useWorkflowHelpers'; import { useRouter } from 'vue-router'; import { useNDVStore } from '@/stores/ndv.store'; diff --git a/packages/frontend/editor-ui/src/composables/useCanvasOperations.ts b/packages/frontend/editor-ui/src/composables/useCanvasOperations.ts index 6785f7245b..45024bbe94 100644 --- a/packages/frontend/editor-ui/src/composables/useCanvasOperations.ts +++ b/packages/frontend/editor-ui/src/composables/useCanvasOperations.ts @@ -1684,9 +1684,9 @@ export function useCanvasOperations({ router }: { router: ReturnType { const workflow = workflowHelpers.getCurrentWorkflow(); - if (uiStore.isActionActive['workflowRunning']) { + if (uiStore.isActionActive.workflowRunning) { return; } diff --git a/packages/frontend/editor-ui/src/composables/useWorkflowHelpers.ts b/packages/frontend/editor-ui/src/composables/useWorkflowHelpers.ts index b915af24dd..6dc5aacdd2 100644 --- a/packages/frontend/editor-ui/src/composables/useWorkflowHelpers.ts +++ b/packages/frontend/editor-ui/src/composables/useWorkflowHelpers.ts @@ -395,7 +395,7 @@ export function executeData( !workflowRunData[parentNodeName][runIndex] || !workflowRunData[parentNodeName][runIndex].hasOwnProperty('data') || workflowRunData[parentNodeName][runIndex].data === undefined || - !workflowRunData[parentNodeName][runIndex].data!.hasOwnProperty(inputName) + !workflowRunData[parentNodeName][runIndex].data.hasOwnProperty(inputName) ) { executeData.data = {}; } else { diff --git a/packages/frontend/editor-ui/src/stores/workflows.store.ts b/packages/frontend/editor-ui/src/stores/workflows.store.ts index 5adb91fa66..930600f155 100644 --- a/packages/frontend/editor-ui/src/stores/workflows.store.ts +++ b/packages/frontend/editor-ui/src/stores/workflows.store.ts @@ -61,6 +61,7 @@ import { NodeHelpers, SEND_AND_WAIT_OPERATION, Workflow, + TelemetryHelpers, } from 'n8n-workflow'; import { findLast, pick, isEqual } from 'lodash-es'; @@ -82,7 +83,6 @@ import { useProjectsStore } from '@/stores/projects.store'; import type { ProjectSharingData } from '@/types/projects.types'; import type { PushPayload } from '@n8n/api-types'; import { useTelemetry } from '@/composables/useTelemetry'; -import { TelemetryHelpers } from 'n8n-workflow'; import { useWorkflowHelpers } from '@/composables/useWorkflowHelpers'; import { useRouter } from 'vue-router'; import { useSettingsStore } from './settings.store'; diff --git a/packages/frontend/editor-ui/src/utils/apiUtils.ts b/packages/frontend/editor-ui/src/utils/apiUtils.ts index be343aefea..3be7d097e5 100644 --- a/packages/frontend/editor-ui/src/utils/apiUtils.ts +++ b/packages/frontend/editor-ui/src/utils/apiUtils.ts @@ -13,7 +13,7 @@ const getBrowserId = () => { browserId = crypto.randomUUID(); localStorage.setItem(BROWSER_ID_STORAGE_KEY, browserId); } - return browserId!; + return browserId; }; export const NO_NETWORK_ERROR_CODE = 999; diff --git a/packages/frontend/editor-ui/src/utils/nodeSettingsUtils.ts b/packages/frontend/editor-ui/src/utils/nodeSettingsUtils.ts index 3e232c548b..09ce50b2ec 100644 --- a/packages/frontend/editor-ui/src/utils/nodeSettingsUtils.ts +++ b/packages/frontend/editor-ui/src/utils/nodeSettingsUtils.ts @@ -37,7 +37,7 @@ export function updateDynamicConnections( parameterData.name === 'parameters.options.fallbackOutput' ) { const curentFallbackOutput = (node.parameters?.options as { fallbackOutput: string }) - ?.fallbackOutput as string; + ?.fallbackOutput; if (curentFallbackOutput === 'extra') { if (!parameterData.value || parameterData.value !== 'extra') { connections[node.name].main = connections[node.name].main.slice(0, -1); diff --git a/packages/frontend/editor-ui/src/utils/nodeViewUtils.ts b/packages/frontend/editor-ui/src/utils/nodeViewUtils.ts index adebd1c08c..fd9ecd544c 100644 --- a/packages/frontend/editor-ui/src/utils/nodeViewUtils.ts +++ b/packages/frontend/editor-ui/src/utils/nodeViewUtils.ts @@ -284,7 +284,7 @@ export function getGenericHints({ if (hasNodeRun && workflowNode.parameters.limit) { if (nodeOutputData.length === workflowNode.parameters.limit) { nodeHints.push({ - message: `Limit of ${workflowNode.parameters.limit as number} items reached. There may be more items that aren't being returned. Tweak the 'Return All' or 'Limit' parameters to access more items.`, + message: `Limit of ${workflowNode.parameters.limit} items reached. There may be more items that aren't being returned. Tweak the 'Return All' or 'Limit' parameters to access more items.`, location: 'outputPane', whenToDisplay: 'afterExecution', }); diff --git a/packages/frontend/editor-ui/src/views/ProjectSettings.vue b/packages/frontend/editor-ui/src/views/ProjectSettings.vue index bba575c402..cb865a569a 100644 --- a/packages/frontend/editor-ui/src/views/ProjectSettings.vue +++ b/packages/frontend/editor-ui/src/views/ProjectSettings.vue @@ -7,8 +7,7 @@ import { useUsersStore } from '@/stores/users.store'; import type { IUser } from '@/Interface'; import { useI18n } from '@/composables/useI18n'; import { useProjectsStore } from '@/stores/projects.store'; -import type { ProjectIcon } from '@/types/projects.types'; -import { type Project, type ProjectRelation } from '@/types/projects.types'; +import type { ProjectIcon, Project, ProjectRelation } from '@/types/projects.types'; import { useToast } from '@/composables/useToast'; import { VIEWS } from '@/constants'; import ProjectDeleteDialog from '@/components/Projects/ProjectDeleteDialog.vue'; diff --git a/packages/frontend/editor-ui/src/views/SettingsCommunityNodesView.vue b/packages/frontend/editor-ui/src/views/SettingsCommunityNodesView.vue index 79ce24a468..139b492c83 100644 --- a/packages/frontend/editor-ui/src/views/SettingsCommunityNodesView.vue +++ b/packages/frontend/editor-ui/src/views/SettingsCommunityNodesView.vue @@ -10,15 +10,12 @@ import type { PublicInstalledPackage } from 'n8n-workflow'; import { useCommunityNodesStore } from '@/stores/communityNodes.store'; import { useUIStore } from '@/stores/ui.store'; -import { onBeforeUnmount, ref } from 'vue'; +import { onBeforeUnmount, ref, computed, onBeforeMount, onMounted } from 'vue'; import { useExternalHooks } from '@/composables/useExternalHooks'; import { useRouter } from 'vue-router'; import { usePushConnection } from '@/composables/usePushConnection'; import { usePushConnectionStore } from '@/stores/pushConnection.store'; -import { computed } from 'vue'; import { useI18n } from '@/composables/useI18n'; -import { onBeforeMount } from 'vue'; -import { onMounted } from 'vue'; import { useTelemetry } from '@/composables/useTelemetry'; const PACKAGE_COUNT_THRESHOLD = 31; diff --git a/packages/frontend/editor-ui/src/views/SettingsLogStreamingView.vue b/packages/frontend/editor-ui/src/views/SettingsLogStreamingView.vue index 125f74fce4..c6561afce0 100644 --- a/packages/frontend/editor-ui/src/views/SettingsLogStreamingView.vue +++ b/packages/frontend/editor-ui/src/views/SettingsLogStreamingView.vue @@ -1,5 +1,5 @@ diff --git a/packages/nodes-base/nodes/Form/utils.ts b/packages/nodes-base/nodes/Form/utils.ts index d23ebb73a0..c8b750e6d1 100644 --- a/packages/nodes-base/nodes/Form/utils.ts +++ b/packages/nodes-base/nodes/Form/utils.ts @@ -315,7 +315,7 @@ export async function prepareFormReturnItem( if (field.fieldType === 'html') { if (field.elementName) { - returnItem.json[field.elementName as string] = value; + returnItem.json[field.elementName] = value; } continue; }