From 7ce5d8fd90d6f2ea378e9201634e46fb7901b663 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Wed, 16 Aug 2023 17:13:57 +0200 Subject: [PATCH] refactor: Upgrade to Prettier 3 (no-changelog) (#6947) Supersedes https://github.com/n8n-io/n8n/pull/6937 Excluding fixtures and test workflow JSONs to avoid having to update tests. --- .github/workflows/check-issue-template.yml | 3 - .prettierignore | 3 + README.md | 3 +- cypress/e2e/12-canvas-actions.cy.ts | 24 +- cypress/e2e/24-ndv-paired-item.cy.ts | 110 +-- cypress/pages/credentials.ts | 3 +- cypress/pages/modals/message-box.ts | 4 +- cypress/pages/workflow-executions-tab.ts | 22 +- cypress/pages/workflow.ts | 2 +- cypress/support/binaryTestFiles.ts | 3 +- cypress/support/commands.ts | 8 +- cypress/support/index.ts | 6 +- docker/images/n8n/README.md | 40 +- package.json | 2 +- .../credentials/spec/paths/credentials.id.yml | 12 +- .../credentials/spec/schemas/credential.yml | 6 +- .../spec/paths/sourceControl.yml | 14 +- .../sourceControl/spec/schemas/pull.yml | 2 +- .../workflows/spec/schemas/workflow.yml | 10 +- packages/cli/src/PublicApi/v1/openapi.yml | 2 +- .../v1/shared/spec/responses/_index.yml | 8 +- .../v1/shared/spec/schemas/_index.yml | 4 +- .../schema/saml-schema-assertion-2.0.xsd.ts | 566 +++++++-------- .../schema/saml-schema-metadata-2.0.xsd.ts | 672 +++++++++--------- .../schema/saml-schema-protocol-2.0.xsd.ts | 604 ++++++++-------- .../templates/oauth-error-callback.handlebars | 12 +- .../design-system/.storybook/storybook.scss | 2 +- packages/design-system/src/css/checkbox.scss | 3 +- .../design-system/src/css/color-picker.scss | 4 +- .../src/css/common/transition.scss | 10 +- .../design-system/src/css/common/var.scss | 11 +- packages/design-system/src/css/drawer.scss | 238 +++---- packages/design-system/src/css/icon.scss | 5 +- packages/design-system/src/css/menu.scss | 5 +- packages/design-system/src/css/message.scss | 5 +- .../design-system/src/css/mixins/utils.scss | 17 +- .../design-system/src/css/notification.scss | 8 +- .../design-system/src/css/pagination.scss | 2 - packages/design-system/src/css/popper.scss | 1 - packages/design-system/src/css/switch.scss | 4 +- packages/design-system/src/css/tabs.scss | 7 +- .../design-system/theme/preview/docs.min.css | 31 +- .../design-system/theme/preview/index.html | 2 +- packages/editor-ui/index.html | 46 +- packages/editor-ui/package.json | 2 +- packages/editor-ui/src/n8n-theme.scss | 10 +- .../editor-ui/src/plugins/i18n/docs/README.md | 1 - .../src/styles/autocomplete-theme.scss | 3 +- packages/editor-ui/vite.config.ts | 2 +- packages/node-dev/README.md | 6 +- .../nodes/Twitter/Twitter.node.json | 2 +- .../test/nodes/Airtable/workflow.json | 10 +- packages/workflow/test/TypeValidation.test.ts | 3 +- pnpm-lock.yaml | 22 +- scripts/format.mjs | 2 +- 55 files changed, 1314 insertions(+), 1295 deletions(-) diff --git a/.github/workflows/check-issue-template.yml b/.github/workflows/check-issue-template.yml index 755307a1dd..d3aab9405b 100644 --- a/.github/workflows/check-issue-template.yml +++ b/.github/workflows/check-issue-template.yml @@ -13,6 +13,3 @@ jobs: uses: n8n-io/GH-actions-playground@v1 with: repo-token: ${{ secrets.GITHUB_TOKEN }} - - - diff --git a/.prettierignore b/.prettierignore index c5faf0aa47..c6a6424c90 100644 --- a/.prettierignore +++ b/.prettierignore @@ -2,3 +2,6 @@ coverage dist package.json .pnpm-lock.yml +packages/nodes-base/nodes/**/test +cypress/fixtures +CHANGELOG.md diff --git a/README.md b/README.md index 68ae8c8aeb..62218c65a9 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,8 @@ changes [here](https://github.com/n8n-io/n8n/blob/master/packages/cli/BREAKING-C [how to run n8n in **Docker**](https://docs.n8n.io/hosting/installation/docker/) ## Start -You can try n8n without installing it using npx. You must have [Node.js](https://nodejs.org/en/) installed. + +You can try n8n without installing it using npx. You must have [Node.js](https://nodejs.org/en/) installed. From the terminal, run: `npx n8n` diff --git a/cypress/e2e/12-canvas-actions.cy.ts b/cypress/e2e/12-canvas-actions.cy.ts index c536d0c69d..334d8c3291 100644 --- a/cypress/e2e/12-canvas-actions.cy.ts +++ b/cypress/e2e/12-canvas-actions.cy.ts @@ -82,14 +82,10 @@ describe('Canvas Actions', () => { cy.get('.plus-endpoint').should('be.visible').click(); WorkflowPage.getters.nodeCreatorSearchBar().should('be.visible'); WorkflowPage.getters.nodeCreatorSearchBar().type(CODE_NODE_NAME); - cy.drag( - WorkflowPage.getters.nodeCreatorNodeItems().first(), - [100, 100], - { - realMouse: true, - abs: true - } - ); + cy.drag(WorkflowPage.getters.nodeCreatorNodeItems().first(), [100, 100], { + realMouse: true, + abs: true, + }); cy.get('body').type('{esc}'); WorkflowPage.getters.canvasNodes().should('have.length', 2); WorkflowPage.getters.nodeConnections().should('have.length', 1); @@ -100,14 +96,10 @@ describe('Canvas Actions', () => { cy.get('.plus-endpoint').should('be.visible').click(); WorkflowPage.getters.nodeCreatorSearchBar().should('be.visible'); WorkflowPage.getters.nodeCreatorSearchBar().type(CODE_NODE_NAME); - cy.drag( - WorkflowPage.getters.nodeCreatorActionItems().first(), - [100, 100], - { - realMouse: true, - abs: true - } - ); + cy.drag(WorkflowPage.getters.nodeCreatorActionItems().first(), [100, 100], { + realMouse: true, + abs: true, + }); WorkflowPage.getters.nodeCreatorCategoryItems().its('length').should('be.gt', 0); WorkflowPage.getters.canvasNodes().should('have.length', 1); WorkflowPage.getters.nodeConnections().should('have.length', 0); diff --git a/cypress/e2e/24-ndv-paired-item.cy.ts b/cypress/e2e/24-ndv-paired-item.cy.ts index 9829a22d22..b2f6f47f8c 100644 --- a/cypress/e2e/24-ndv-paired-item.cy.ts +++ b/cypress/e2e/24-ndv-paired-item.cy.ts @@ -28,14 +28,9 @@ describe('NDV', () => { ndv.actions.switchOutputMode('Table'); // input to output - ndv.getters - .inputTableRow(1) - .should('exist') + ndv.getters.inputTableRow(1).should('exist'); - ndv.getters - .inputTableRow(1) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(1).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.getters.inputTableRow(1).realHover(); ndv.getters.outputTableRow(4).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); @@ -88,16 +83,11 @@ describe('NDV', () => { ndv.actions.selectInputNode('Set1'); ndv.getters.backToCanvas().realHover(); // reset to default hover - ndv.getters - .inputTableRow(1) - .should('have.text', '1000') + ndv.getters.inputTableRow(1).should('have.text', '1000'); - ndv.getters - .inputTableRow(1) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(1).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); - ndv.getters.inputTableRow(1).realHover(); + ndv.getters.inputTableRow(1).realHover(); cy.wait(50); ndv.getters.outputHoveringItem().should('have.text', '1000'); ndv.getters.parameterExpressionPreview('value').should('include.text', '1000'); @@ -106,14 +96,9 @@ describe('NDV', () => { ndv.actions.changeOutputRunSelector('1 of 2 (6 items)'); ndv.getters.backToCanvas().realHover(); // reset to default hover - ndv.getters - .inputTableRow(1) - .should('have.text', '1111') + ndv.getters.inputTableRow(1).should('have.text', '1111'); - ndv.getters - .inputTableRow(1) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(1).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.getters.inputTableRow(1).realHover(); cy.wait(50); ndv.getters.outputHoveringItem().should('have.text', '1111'); @@ -146,27 +131,16 @@ describe('NDV', () => { ndv.getters.inputRunSelector().find('input').should('include.value', '1 of 2 (6 items)'); ndv.getters.outputRunSelector().find('input').should('include.value', '1 of 2 (6 items)'); - ndv.getters - .inputTableRow(1) - .should('have.text', '1111') - ndv.getters - .inputTableRow(1) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(1).should('have.text', '1111'); + ndv.getters.inputTableRow(1).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.getters.outputTableRow(1).should('have.text', '1111'); ndv.getters.outputTableRow(1).realHover(); - ndv.getters.outputTableRow(3).should('have.text', '4444'); ndv.getters.outputTableRow(3).realHover(); - ndv.getters - .inputTableRow(3) - .should('have.text', '4444') - ndv.getters - .inputTableRow(3) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(3).should('have.text', '4444'); + ndv.getters.inputTableRow(3).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.actions.changeOutputRunSelector('2 of 2 (6 items)'); cy.wait(50); @@ -174,9 +148,7 @@ describe('NDV', () => { ndv.getters.inputTableRow(1).should('have.text', '1000'); ndv.getters.inputTableRow(1).realHover(); - ndv.getters - .outputTableRow(1) - .should('have.text', '1000') + ndv.getters.outputTableRow(1).should('have.text', '1000'); ndv.getters .outputTableRow(1) .should('have.text', '1000') @@ -186,14 +158,9 @@ describe('NDV', () => { ndv.getters.outputTableRow(3).should('have.text', '2000'); ndv.getters.outputTableRow(3).realHover(); - ndv.getters - .inputTableRow(3) - .should('have.text', '2000') + ndv.getters.inputTableRow(3).should('have.text', '2000'); - ndv.getters - .inputTableRow(3) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(3).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); }); it('resolves expression with default item when input node is not parent, while still pairing items', () => { @@ -215,42 +182,27 @@ describe('NDV', () => { ndv.actions.switchOutputMode('Table'); ndv.getters.backToCanvas().realHover(); // reset to default hover - ndv.getters - .inputTableRow(1) - .should('have.text', '1111') + ndv.getters.inputTableRow(1).should('have.text', '1111'); - ndv.getters - .inputTableRow(1) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(1).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.getters.inputTableRow(1).realHover(); ndv.getters.outputHoveringItem().should('not.exist'); ndv.getters.parameterExpressionPreview('value').should('include.text', '1111'); ndv.actions.selectInputNode('Code1'); ndv.getters.inputTableRow(1).realHover(); - ndv.getters - .inputTableRow(1) - .should('have.text', '1000') + ndv.getters.inputTableRow(1).should('have.text', '1000'); - ndv.getters - .inputTableRow(1) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(1).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.getters.outputTableRow(1).should('have.text', '1000'); ndv.getters.parameterExpressionPreview('value').should('include.text', '1000'); ndv.actions.selectInputNode('Code'); ndv.getters.inputTableRow(1).realHover(); - ndv.getters - .inputTableRow(1) - .should('have.text', '6666') + ndv.getters.inputTableRow(1).should('have.text', '6666'); - ndv.getters - .inputTableRow(1) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(1).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.getters.outputHoveringItem().should('not.exist'); ndv.getters.parameterExpressionPreview('value').should('include.text', '1000'); @@ -282,26 +234,16 @@ describe('NDV', () => { ndv.getters.outputTableRow(1).should('have.text', '8888'); ndv.getters.outputTableRow(1).realHover(); - ndv.getters - .inputTableRow(5) - .should('have.text', '8888') + ndv.getters.inputTableRow(5).should('have.text', '8888'); - ndv.getters - .inputTableRow(5) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(5).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.getters.outputTableRow(2).should('have.text', '9999'); ndv.getters.outputTableRow(2).realHover(); - ndv.getters - .inputTableRow(6) - .should('have.text', '9999') + ndv.getters.inputTableRow(6).should('have.text', '9999'); - ndv.getters - .inputTableRow(6) - .invoke('attr', 'data-test-id') - .should('equal', 'hovering-item'); + ndv.getters.inputTableRow(6).invoke('attr', 'data-test-id').should('equal', 'hovering-item'); ndv.actions.close(); @@ -309,12 +251,12 @@ describe('NDV', () => { ndv.actions.switchInputBranch('True Branch'); ndv.actions.changeOutputRunSelector('1 of 2 (2 items)'); - ndv.getters.outputTableRow(1).should('have.text', '8888') + ndv.getters.outputTableRow(1).should('have.text', '8888'); ndv.getters.outputTableRow(1).realHover(); cy.wait(100); ndv.getters.inputHoveringItem().should('not.exist'); - ndv.getters.inputTableRow(1).should('have.text', '1111') + ndv.getters.inputTableRow(1).should('have.text', '1111'); ndv.getters.inputTableRow(1).realHover(); cy.wait(100); ndv.getters.outputHoveringItem().should('not.exist'); diff --git a/cypress/pages/credentials.ts b/cypress/pages/credentials.ts index 733c030caa..24ec88565d 100644 --- a/cypress/pages/credentials.ts +++ b/cypress/pages/credentials.ts @@ -18,7 +18,8 @@ export class CredentialsPage extends BasePage { credentialDeleteButton: () => cy.getByTestId('action-toggle-dropdown').filter(':visible').contains('Delete'), sort: () => cy.getByTestId('resources-list-sort').first(), - sortOption: (label: string) => cy.getByTestId('resources-list-sort-item').contains(label).first(), + sortOption: (label: string) => + cy.getByTestId('resources-list-sort-item').contains(label).first(), filtersTrigger: () => cy.getByTestId('resources-list-filters-trigger'), filtersDropdown: () => cy.getByTestId('resources-list-filters-dropdown'), }; diff --git a/cypress/pages/modals/message-box.ts b/cypress/pages/modals/message-box.ts index 95f259ccb4..b54e375ef6 100644 --- a/cypress/pages/modals/message-box.ts +++ b/cypress/pages/modals/message-box.ts @@ -10,10 +10,10 @@ export class MessageBox extends BasePage { }; actions = { confirm: () => { - this.getters.confirm().click({ force: true}); + this.getters.confirm().click({ force: true }); }, cancel: () => { - this.getters.cancel().click({ force: true}); + this.getters.cancel().click({ force: true }); }, }; } diff --git a/cypress/pages/workflow-executions-tab.ts b/cypress/pages/workflow-executions-tab.ts index 4e641ae69a..674ff6d5f3 100644 --- a/cypress/pages/workflow-executions-tab.ts +++ b/cypress/pages/workflow-executions-tab.ts @@ -1,5 +1,5 @@ -import { BasePage } from "./base"; -import { WorkflowPage } from "./workflow"; +import { BasePage } from './base'; +import { WorkflowPage } from './workflow'; const workflowPage = new WorkflowPage(); @@ -14,10 +14,14 @@ export class WorkflowExecutionsTab extends BasePage { failedExecutionListItems: () => cy.get('[data-test-execution-status="error"]'), executionCard: (executionId: string) => cy.getByTestId(`execution-details-${executionId}`), executionPreviewDetails: () => cy.get('[data-test-id^="execution-preview-details-"]'), - executionPreviewDetailsById: (executionId: string) => cy.getByTestId(`execution-preview-details-${executionId}`), - executionPreviewTime: () => this.getters.executionPreviewDetails().find('[data-test-id="execution-time"]'), - executionPreviewStatus: () => this.getters.executionPreviewDetails().find('[data-test-id="execution-preview-label"]'), - executionPreviewId: () => this.getters.executionPreviewDetails().find('[data-test-id="execution-preview-id"]'), + executionPreviewDetailsById: (executionId: string) => + cy.getByTestId(`execution-preview-details-${executionId}`), + executionPreviewTime: () => + this.getters.executionPreviewDetails().find('[data-test-id="execution-time"]'), + executionPreviewStatus: () => + this.getters.executionPreviewDetails().find('[data-test-id="execution-preview-label"]'), + executionPreviewId: () => + this.getters.executionPreviewDetails().find('[data-test-id="execution-preview-id"]'), }; actions = { toggleNodeEnabled: (nodeName: string) => { @@ -25,7 +29,7 @@ export class WorkflowExecutionsTab extends BasePage { cy.get('body').type('d', { force: true }); }, createManualExecutions: (count: number) => { - for (let i=0; i { workflowPage.getters.editorTabButton().click(); - } + }, }; -}; +} diff --git a/cypress/pages/workflow.ts b/cypress/pages/workflow.ts index c6b624d0da..950c83be9b 100644 --- a/cypress/pages/workflow.ts +++ b/cypress/pages/workflow.ts @@ -221,7 +221,7 @@ export class WorkflowPage extends BasePage { this.getters.workflowTagsInput().type(tag); this.getters.workflowTagsInput().type('{enter}'); }); - cy.realPress('Tab') + cy.realPress('Tab'); // For a brief moment the Element UI tag component shows the tags as(+X) string // so we need to wait for it to disappear this.getters.workflowTagsContainer().should('not.contain', `+${tags.length}`); diff --git a/cypress/support/binaryTestFiles.ts b/cypress/support/binaryTestFiles.ts index bb42cd2101..4dc9919549 100644 --- a/cypress/support/binaryTestFiles.ts +++ b/cypress/support/binaryTestFiles.ts @@ -1 +1,2 @@ -export const cowBase64 = "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" +export const cowBase64 = + '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'; diff --git a/cypress/support/commands.ts b/cypress/support/commands.ts index 08ee29befa..c215bdf3f7 100644 --- a/cypress/support/commands.ts +++ b/cypress/support/commands.ts @@ -111,13 +111,13 @@ Cypress.Commands.add('drag', (selector, pos, options) => { const newPosition = { x: options?.abs ? xDiff : originalLocation.right + xDiff, y: options?.abs ? yDiff : originalLocation.top + yDiff, - } - if(options?.realMouse) { + }; + if (options?.realMouse) { element.realMouseDown(); element.realMouseMove(newPosition.x, newPosition.y); element.realMouseUp(); } else { - element.trigger('mousedown', {force: true}); + element.trigger('mousedown', { force: true }); element.trigger('mousemove', { which: 1, pageX: newPosition.x, @@ -129,7 +129,7 @@ Cypress.Commands.add('drag', (selector, pos, options) => { // For some reason, mouseup isn't working when moving nodes cy.get('body').click(newPosition.x, newPosition.y); } else { - element.trigger('mouseup', {force: true}); + element.trigger('mouseup', { force: true }); } } }); diff --git a/cypress/support/index.ts b/cypress/support/index.ts index f1602b3e06..37140351ff 100644 --- a/cypress/support/index.ts +++ b/cypress/support/index.ts @@ -31,7 +31,11 @@ declare global { grantBrowserPermissions(...permissions: string[]): void; readClipboard(): Chainable; paste(pastePayload: string): void; - drag(selector: string | Cypress.Chainable>, target: [number, number], options?: {abs?: boolean, index?: number, realMouse?: boolean}): void; + drag( + selector: string | Cypress.Chainable>, + target: [number, number], + options?: { abs?: boolean; index?: number; realMouse?: boolean }, + ): void; draganddrop(draggableSelector: string, droppableSelector: string): void; } } diff --git a/docker/images/n8n/README.md b/docker/images/n8n/README.md index 75cfba3855..6e70bf28e2 100644 --- a/docker/images/n8n/README.md +++ b/docker/images/n8n/README.md @@ -9,26 +9,26 @@ n8n is an extendable workflow automation tool. With a [fair-code](http://faircod ## Contents - [n8n - Workflow automation tool](#n8n---workflow-automation-tool) - - [Contents](#contents) - - [Demo](#demo) - - [Available integrations](#available-integrations) - - [Documentation](#documentation) - - [Start n8n in Docker](#start-n8n-in-docker) - - [Start with tunnel](#start-with-tunnel) - - [Persist data](#persist-data) - - [Start with other Database](#start-with-other-database) - - [Use with PostgresDB](#use-with-postgresdb) - - [Use with MySQL](#use-with-mysql) - - [Passing Sensitive Data via File](#passing-sensitive-data-via-file) - - [Example Setup with Lets Encrypt](#example-setup-with-lets-encrypt) - - [Updating a running docker-compose instance](#updating-a-running-docker-compose-instance) - - [Setting Timezone](#setting-timezone) - - [Build Docker-Image](#build-docker-image) - - [What does n8n mean and how do you pronounce it?](#what-does-n8n-mean-and-how-do-you-pronounce-it) - - [Support](#support) - - [Jobs](#jobs) - - [Upgrading](#upgrading) - - [License](#license) + - [Contents](#contents) + - [Demo](#demo) + - [Available integrations](#available-integrations) + - [Documentation](#documentation) + - [Start n8n in Docker](#start-n8n-in-docker) + - [Start with tunnel](#start-with-tunnel) + - [Persist data](#persist-data) + - [Start with other Database](#start-with-other-database) + - [Use with PostgresDB](#use-with-postgresdb) + - [Use with MySQL](#use-with-mysql) + - [Passing Sensitive Data via File](#passing-sensitive-data-via-file) + - [Example Setup with Lets Encrypt](#example-setup-with-lets-encrypt) + - [Updating a running docker-compose instance](#updating-a-running-docker-compose-instance) + - [Setting Timezone](#setting-timezone) + - [Build Docker-Image](#build-docker-image) + - [What does n8n mean and how do you pronounce it?](#what-does-n8n-mean-and-how-do-you-pronounce-it) + - [Support](#support) + - [Jobs](#jobs) + - [Upgrading](#upgrading) + - [License](#license) ## Demo diff --git a/package.json b/package.json index 2e0facc379..b1260fb6e6 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,6 @@ "nock": "^13.3.2", "nodemon": "^3.0.1", "p-limit": "^3.1.0", - "prettier": "^2.8.8", "rimraf": "^5.0.1", "run-script-os": "^1.0.7", "start-server-and-test": "^2.0.0", @@ -75,6 +74,7 @@ "@types/node": "^18.16.16", "chokidar": "3.5.2", "jsonwebtoken": "9.0.0", + "prettier": "^3.0.0", "semver": "^7.5.4", "tough-cookie": "^4.1.3", "tslib": "^2.6.1", diff --git a/packages/cli/src/PublicApi/v1/handlers/credentials/spec/paths/credentials.id.yml b/packages/cli/src/PublicApi/v1/handlers/credentials/spec/paths/credentials.id.yml index acacd4ad98..7ab682ffab 100644 --- a/packages/cli/src/PublicApi/v1/handlers/credentials/spec/paths/credentials.id.yml +++ b/packages/cli/src/PublicApi/v1/handlers/credentials/spec/paths/credentials.id.yml @@ -14,13 +14,13 @@ delete: schema: type: string responses: - "200": + '200': description: Operation successful. content: application/json: schema: - $ref: "../schemas/credential.yml" - "401": - $ref: "../../../../shared/spec/responses/unauthorized.yml" - "404": - $ref: "../../../../shared/spec/responses/notFound.yml" + $ref: '../schemas/credential.yml' + '401': + $ref: '../../../../shared/spec/responses/unauthorized.yml' + '404': + $ref: '../../../../shared/spec/responses/notFound.yml' diff --git a/packages/cli/src/PublicApi/v1/handlers/credentials/spec/schemas/credential.yml b/packages/cli/src/PublicApi/v1/handlers/credentials/spec/schemas/credential.yml index 585d6d29b5..08c208f59a 100644 --- a/packages/cli/src/PublicApi/v1/handlers/credentials/spec/schemas/credential.yml +++ b/packages/cli/src/PublicApi/v1/handlers/credentials/spec/schemas/credential.yml @@ -17,14 +17,14 @@ properties: data: type: object writeOnly: true - example: { token: "ada612vad6fa5df4adf5a5dsf4389adsf76da7s" } + example: { token: 'ada612vad6fa5df4adf5a5dsf4389adsf76da7s' } createdAt: type: string format: date-time readOnly: true - example: "2022-04-29T11:02:29.842Z" + example: '2022-04-29T11:02:29.842Z' updatedAt: type: string format: date-time readOnly: true - example: "2022-04-29T11:02:29.842Z" + example: '2022-04-29T11:02:29.842Z' diff --git a/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/paths/sourceControl.yml b/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/paths/sourceControl.yml index d883ac5529..21a9d882f3 100644 --- a/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/paths/sourceControl.yml +++ b/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/paths/sourceControl.yml @@ -11,15 +11,15 @@ post: content: application/json: schema: - $ref: "../schemas/pull.yml" + $ref: '../schemas/pull.yml' responses: - "200": + '200': description: Import result content: application/json: schema: - $ref: "../schemas/importResult.yml" - "400": - $ref: "../../../../shared/spec/responses/badRequest.yml" - "409": - $ref: "../../../../shared/spec/responses/conflict.yml" + $ref: '../schemas/importResult.yml' + '400': + $ref: '../../../../shared/spec/responses/badRequest.yml' + '409': + $ref: '../../../../shared/spec/responses/conflict.yml' diff --git a/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/schemas/pull.yml b/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/schemas/pull.yml index 0b94cb4646..8e19e449ab 100644 --- a/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/schemas/pull.yml +++ b/packages/cli/src/PublicApi/v1/handlers/sourceControl/spec/schemas/pull.yml @@ -5,4 +5,4 @@ properties: example: true variables: type: object - example: { "foo": "bar" } + example: { 'foo': 'bar' } diff --git a/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml b/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml index acaa15f34d..13000108d6 100644 --- a/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml +++ b/packages/cli/src/PublicApi/v1/handlers/workflows/spec/schemas/workflow.yml @@ -27,23 +27,23 @@ properties: nodes: type: array items: - $ref: "./node.yml" + $ref: './node.yml' connections: type: object - example: { main: [{ node: "Jira", type: "main", index: 0 }] } + example: { main: [{ node: 'Jira', type: 'main', index: 0 }] } settings: - $ref: "./workflowSettings.yml" + $ref: './workflowSettings.yml' staticData: example: { lastId: 1 } nullable: true anyOf: - type: string - format: "jsonString" + format: 'jsonString' nullable: true - type: object nullable: true tags: type: array items: - $ref: "./tag.yml" + $ref: './tag.yml' readOnly: true diff --git a/packages/cli/src/PublicApi/v1/openapi.yml b/packages/cli/src/PublicApi/v1/openapi.yml index d5839d0307..7dee98b6aa 100644 --- a/packages/cli/src/PublicApi/v1/openapi.yml +++ b/packages/cli/src/PublicApi/v1/openapi.yml @@ -55,7 +55,7 @@ paths: /users/{id}: $ref: './handlers/users/spec/paths/users.id.yml' /source-control/pull: - $ref: "./handlers/sourceControl/spec/paths/sourceControl.yml" + $ref: './handlers/sourceControl/spec/paths/sourceControl.yml' components: schemas: $ref: './shared/spec/schemas/_index.yml' diff --git a/packages/cli/src/PublicApi/v1/shared/spec/responses/_index.yml b/packages/cli/src/PublicApi/v1/shared/spec/responses/_index.yml index 274c824335..e5c738c345 100644 --- a/packages/cli/src/PublicApi/v1/shared/spec/responses/_index.yml +++ b/packages/cli/src/PublicApi/v1/shared/spec/responses/_index.yml @@ -1,8 +1,8 @@ NotFound: - $ref: "./notFound.yml" + $ref: './notFound.yml' Unauthorized: - $ref: "./unauthorized.yml" + $ref: './unauthorized.yml' BadRequest: - $ref: "./badRequest.yml" + $ref: './badRequest.yml' Conflict: - $ref: "./conflict.yml" + $ref: './conflict.yml' diff --git a/packages/cli/src/PublicApi/v1/shared/spec/schemas/_index.yml b/packages/cli/src/PublicApi/v1/shared/spec/schemas/_index.yml index d98ad77f17..9dd408f1d9 100644 --- a/packages/cli/src/PublicApi/v1/shared/spec/schemas/_index.yml +++ b/packages/cli/src/PublicApi/v1/shared/spec/schemas/_index.yml @@ -23,9 +23,9 @@ CredentialType: Audit: $ref: './../../../handlers/audit/spec/schemas/audit.yml' Pull: - $ref: "./../../../handlers/sourceControl/spec/schemas/pull.yml" + $ref: './../../../handlers/sourceControl/spec/schemas/pull.yml' ImportResult: - $ref: "./../../../handlers/sourceControl/spec/schemas/importResult.yml" + $ref: './../../../handlers/sourceControl/spec/schemas/importResult.yml' UserList: $ref: './../../../handlers/users/spec/schemas/userList.yml' User: diff --git a/packages/cli/src/sso/saml/schema/saml-schema-assertion-2.0.xsd.ts b/packages/cli/src/sso/saml/schema/saml-schema-assertion-2.0.xsd.ts index ff8d93c989..5000484753 100644 --- a/packages/cli/src/sso/saml/schema/saml-schema-assertion-2.0.xsd.ts +++ b/packages/cli/src/sso/saml/schema/saml-schema-assertion-2.0.xsd.ts @@ -1,283 +1,283 @@ -export const xsdSamlSchemaAssertion20 = ` - - - - - - Document identifier: saml-schema-assertion-2.0 - Location: http://docs.oasis-open.org/security/saml/v2.0/ - Revision history: - V1.0 (November, 2002): - Initial Standard Schema. - V1.1 (September, 2003): - Updates within the same V1.0 namespace. - V2.0 (March, 2005): - New assertion schema for SAML V2.0 namespace. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`; +export const xsdSamlSchemaAssertion20 = ` + + + + + + Document identifier: saml-schema-assertion-2.0 + Location: http://docs.oasis-open.org/security/saml/v2.0/ + Revision history: + V1.0 (November, 2002): + Initial Standard Schema. + V1.1 (September, 2003): + Updates within the same V1.0 namespace. + V2.0 (March, 2005): + New assertion schema for SAML V2.0 namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; diff --git a/packages/cli/src/sso/saml/schema/saml-schema-metadata-2.0.xsd.ts b/packages/cli/src/sso/saml/schema/saml-schema-metadata-2.0.xsd.ts index 664168ef93..6ed44930af 100644 --- a/packages/cli/src/sso/saml/schema/saml-schema-metadata-2.0.xsd.ts +++ b/packages/cli/src/sso/saml/schema/saml-schema-metadata-2.0.xsd.ts @@ -1,336 +1,336 @@ -export const xsdSamlSchemaMetadata20 = ` - - - - - - - - Document identifier: saml-schema-metadata-2.0 - Location: http://docs.oasis-open.org/security/saml/v2.0/ - Revision history: - V2.0 (March, 2005): - Schema for SAML metadata, first published in SAML 2.0. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`; +export const xsdSamlSchemaMetadata20 = ` + + + + + + + + Document identifier: saml-schema-metadata-2.0 + Location: http://docs.oasis-open.org/security/saml/v2.0/ + Revision history: + V2.0 (March, 2005): + Schema for SAML metadata, first published in SAML 2.0. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; diff --git a/packages/cli/src/sso/saml/schema/saml-schema-protocol-2.0.xsd.ts b/packages/cli/src/sso/saml/schema/saml-schema-protocol-2.0.xsd.ts index 18e27b006b..e8bb9d0aae 100644 --- a/packages/cli/src/sso/saml/schema/saml-schema-protocol-2.0.xsd.ts +++ b/packages/cli/src/sso/saml/schema/saml-schema-protocol-2.0.xsd.ts @@ -1,302 +1,302 @@ -export const xsdSamlSchemaProtocol20 = ` - - - - - - Document identifier: saml-schema-protocol-2.0 - Location: http://docs.oasis-open.org/security/saml/v2.0/ - Revision history: - V1.0 (November, 2002): - Initial Standard Schema. - V1.1 (September, 2003): - Updates within the same V1.0 namespace. - V2.0 (March, 2005): - New protocol schema based in a SAML V2.0 namespace. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -`; +export const xsdSamlSchemaProtocol20 = ` + + + + + + Document identifier: saml-schema-protocol-2.0 + Location: http://docs.oasis-open.org/security/saml/v2.0/ + Revision history: + V1.0 (November, 2002): + Initial Standard Schema. + V1.1 (September, 2003): + Updates within the same V1.0 namespace. + V2.0 (March, 2005): + New protocol schema based in a SAML V2.0 namespace. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; diff --git a/packages/cli/templates/oauth-error-callback.handlebars b/packages/cli/templates/oauth-error-callback.handlebars index a911167234..5c718ff398 100644 --- a/packages/cli/templates/oauth-error-callback.handlebars +++ b/packages/cli/templates/oauth-error-callback.handlebars @@ -2,9 +2,9 @@ n8n - OAuth Callback @@ -12,12 +12,12 @@

Error: {{error.message}}

More details - {{#if error.reason}}
{{error.reason}}
{{/if}} -
+ {{#if error.reason}}
{{error.reason}}
{{/if}} + {{/if}} Failed to connect. The window can be closed now. - + \ No newline at end of file diff --git a/packages/design-system/.storybook/storybook.scss b/packages/design-system/.storybook/storybook.scss index ab48133c1e..86a675f90c 100644 --- a/packages/design-system/.storybook/storybook.scss +++ b/packages/design-system/.storybook/storybook.scss @@ -13,5 +13,5 @@ #storybook-root > div:not([class]) > *, #storybook-root > * { - margin: var(--spacing-5xs); + margin: var(--spacing-5xs); } diff --git a/packages/design-system/src/css/checkbox.scss b/packages/design-system/src/css/checkbox.scss index 3b79a63532..3c1a1ddb4e 100644 --- a/packages/design-system/src/css/checkbox.scss +++ b/packages/design-system/src/css/checkbox.scss @@ -196,7 +196,8 @@ height: var.$checkbox-input-height; background-color: var.$checkbox-background-color; z-index: var.$index-normal; - transition: border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), + transition: + border-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46), background-color 0.25s cubic-bezier(0.71, -0.46, 0.29, 1.46); &:hover { diff --git a/packages/design-system/src/css/color-picker.scss b/packages/design-system/src/css/color-picker.scss index b6031693ef..2e5b61383d 100644 --- a/packages/design-system/src/css/color-picker.scss +++ b/packages/design-system/src/css/color-picker.scss @@ -134,7 +134,9 @@ cursor: head; width: 4px; height: 4px; - box-shadow: 0 0 0 1.5px #fff, inset 0 0 1px 1px rgba(0, 0, 0, 0.3), + box-shadow: + 0 0 0 1.5px #fff, + inset 0 0 1px 1px rgba(0, 0, 0, 0.3), 0 0 1px 2px rgba(0, 0, 0, 0.4); border-radius: 50%; transform: translate(-2px, -2px); diff --git a/packages/design-system/src/css/common/transition.scss b/packages/design-system/src/css/common/transition.scss index 26c8c1d448..a7090e0bfe 100644 --- a/packages/design-system/src/css/common/transition.scss +++ b/packages/design-system/src/css/common/transition.scss @@ -79,10 +79,16 @@ } .collapse-transition { - transition: 0.3s height ease-in-out, 0.3s padding-top ease-in-out, 0.3s padding-bottom ease-in-out; + transition: + 0.3s height ease-in-out, + 0.3s padding-top ease-in-out, + 0.3s padding-bottom ease-in-out; } .horizontal-collapse-transition { - transition: 0.3s width ease-in-out, 0.3s padding-left ease-in-out, 0.3s padding-right ease-in-out; + transition: + 0.3s width ease-in-out, + 0.3s padding-left ease-in-out, + 0.3s padding-right ease-in-out; } .el-list-enter-active, diff --git a/packages/design-system/src/css/common/var.scss b/packages/design-system/src/css/common/var.scss index b5555dea2e..24ea1e8cad 100644 --- a/packages/design-system/src/css/common/var.scss +++ b/packages/design-system/src/css/common/var.scss @@ -10,7 +10,8 @@ $all-transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); $fade-transition: opacity 300ms cubic-bezier(0.23, 1, 0.32, 1); $fade-linear-transition: opacity 200ms linear; -$md-fade-transition: transform 300ms cubic-bezier(0.23, 1, 0.32, 1), +$md-fade-transition: + transform 300ms cubic-bezier(0.23, 1, 0.32, 1), opacity 300ms cubic-bezier(0.23, 1, 0.32, 1); $border-transition-base: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); $color-transition-base: color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1); @@ -199,9 +200,13 @@ $focus-outline-width: 2px; /* Box shadow -------------------------- */ /// boxShadow|1|Shadow|1 -$box-shadow-base: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.04); +$box-shadow-base: + 0 2px 4px rgba(0, 0, 0, 0.12), + 0 0 6px rgba(0, 0, 0, 0.04); // boxShadow|1|Shadow|1 -$box-shadow-dark: 0 2px 4px rgba(0, 0, 0, 0.12), 0 0 6px rgba(0, 0, 0, 0.12); +$box-shadow-dark: + 0 2px 4px rgba(0, 0, 0, 0.12), + 0 0 6px rgba(0, 0, 0, 0.12); /// boxShadow|1|Shadow|1 $box-shadow-light: 0 2px 12px 0 rgba(0, 0, 0, 0.1); diff --git a/packages/design-system/src/css/drawer.scss b/packages/design-system/src/css/drawer.scss index cc2dbc7266..8afdf31650 100644 --- a/packages/design-system/src/css/drawer.scss +++ b/packages/design-system/src/css/drawer.scss @@ -4,152 +4,152 @@ $directions: rtl, ltr, ttb, btt; @include mixins.b(drawer) { - position: absolute; - box-sizing: border-box; + position: absolute; + box-sizing: border-box; background-color: var.$dialog-background-color; - display: flex; - flex-direction: column; + display: flex; + flex-direction: column; box-shadow: 0px 6px 16px rgb(68 28 23 / 6%); - overflow: hidden; + overflow: hidden; - transition: all 0.3s; + transition: all 0.3s; - @each $direction in $directions { - .#{$direction} { - transform: translate(0, 0); - } - } + @each $direction in $directions { + .#{$direction} { + transform: translate(0, 0); + } + } - &__sr-focus:focus { - outline: none !important; - } + &__sr-focus:focus { + outline: none !important; + } - &__header { - align-items: center; - color: rgb(114, 118, 123); - display: flex; - margin-bottom: 32px; + &__header { + align-items: center; + color: rgb(114, 118, 123); + display: flex; + margin-bottom: 32px; padding: var.$dialog-padding-primary; - padding-bottom: 0; - & > :first-child { - flex: 1; - } - } + padding-bottom: 0; + & > :first-child { + flex: 1; + } + } - &__title { - margin: 0; - flex: 1; - line-height: inherit; - font-size: 1rem; - } + &__title { + margin: 0; + flex: 1; + line-height: inherit; + font-size: 1rem; + } - @include mixins.e(footer) { + @include mixins.e(footer) { padding: var.$dialog-padding-primary; - padding-top: 10px; - text-align: right; - } + padding-top: 10px; + text-align: right; + } - &__close-btn { - display: inline-flex; - border: none; - cursor: pointer; - font-size: getCssVar('font-size-extra-large'); - color: inherit; - background-color: transparent; - outline: none; - &:focus, - &:hover { - i { - color: getCssVar('color-primary'); - } - } - } + &__close-btn { + display: inline-flex; + border: none; + cursor: pointer; + font-size: getCssVar('font-size-extra-large'); + color: inherit; + background-color: transparent; + outline: none; + &:focus, + &:hover { + i { + color: getCssVar('color-primary'); + } + } + } - &__body { - flex: 1; + &__body { + flex: 1; padding: 0; - overflow: auto; - & > * { - box-sizing: border-box; - } - } + overflow: auto; + & > * { + box-sizing: border-box; + } + } - &.ltr, - &.rtl { - height: 100%; - top: 0; - bottom: 0; - } + &.ltr, + &.rtl { + height: 100%; + top: 0; + bottom: 0; + } - &.ttb, - &.btt { - width: 100%; - left: 0; - right: 0; - } + &.ttb, + &.btt { + width: 100%; + left: 0; + right: 0; + } - &.ltr { - left: 0; - } + &.ltr { + left: 0; + } - &.rtl { - right: 0; - } + &.rtl { + right: 0; + } - &.ttb { - top: 0; - } + &.ttb { + top: 0; + } - &.btt { - bottom: 0; - } + &.btt { + bottom: 0; + } } .el-drawer-fade { - &-enter-active, - &-leave-active { - transition: all 0.3s; - } + &-enter-active, + &-leave-active { + transition: all 0.3s; + } - &-enter-from, - &-enter-active, - &-enter-to, - &-leave-from, - &-leave-active, - &-leave-to { - overflow: hidden !important; - } + &-enter-from, + &-enter-active, + &-enter-to, + &-leave-from, + &-leave-active, + &-leave-to { + overflow: hidden !important; + } - &-enter-from, - &-leave-to { - opacity: 0; - } + &-enter-from, + &-leave-to { + opacity: 0; + } - &-enter-to, - &-leave-from { - opacity: 1; - } + &-enter-to, + &-leave-from { + opacity: 1; + } - &-enter-from, - &-leave-to { - @each $direction in $directions { - .#{$direction} { - @if $direction == ltr { - transform: translateX(-100%); - } + &-enter-from, + &-leave-to { + @each $direction in $directions { + .#{$direction} { + @if $direction == ltr { + transform: translateX(-100%); + } - @if $direction == rtl { - transform: translateX(100%); - } + @if $direction == rtl { + transform: translateX(100%); + } - @if $direction == ttb { - transform: translateY(-100%); - } + @if $direction == ttb { + transform: translateY(-100%); + } - @if $direction == btt { - transform: translateY(100%); - } - } - } - } + @if $direction == btt { + transform: translateY(100%); + } + } + } + } } diff --git a/packages/design-system/src/css/icon.scss b/packages/design-system/src/css/icon.scss index 5ffa344d56..6c56f8860d 100644 --- a/packages/design-system/src/css/icon.scss +++ b/packages/design-system/src/css/icon.scss @@ -2,7 +2,8 @@ @font-face { font-family: 'element-icons'; - src: url('#{var.$font-path}/element-icons.woff') format('woff'), + src: + url('#{var.$font-path}/element-icons.woff') format('woff'), /* chrome, firefox */ url('#{var.$font-path}/element-icons.ttf') format('truetype'); /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ font-weight: normal; font-display: var.$font-display; @@ -42,7 +43,7 @@ svg { height: 1em; - width: 1em; + width: 1em; } } .el-icon-ice-cream-round:before { diff --git a/packages/design-system/src/css/menu.scss b/packages/design-system/src/css/menu.scss index d2488c1238..f98ffa356c 100644 --- a/packages/design-system/src/css/menu.scss +++ b/packages/design-system/src/css/menu.scss @@ -13,7 +13,10 @@ list-style: none; cursor: pointer; position: relative; - transition: border-color 0.3s, background-color 0.3s, color 0.3s; + transition: + border-color 0.3s, + background-color 0.3s, + color 0.3s; box-sizing: border-box; white-space: nowrap; border-radius: var.$menu-item-border-radius; diff --git a/packages/design-system/src/css/message.scss b/packages/design-system/src/css/message.scss index 5a80adb911..2f340a7ca7 100644 --- a/packages/design-system/src/css/message.scss +++ b/packages/design-system/src/css/message.scss @@ -13,7 +13,10 @@ top: 20px; transform: translateX(-50%); background-color: var.$message-background-color; - transition: opacity 0.3s, transform 0.4s, top 0.4s; + transition: + opacity 0.3s, + transform 0.4s, + top 0.4s; overflow: hidden; padding: var.$message-padding; display: flex; diff --git a/packages/design-system/src/css/mixins/utils.scss b/packages/design-system/src/css/mixins/utils.scss index cfb4cb42f9..54e6349732 100644 --- a/packages/design-system/src/css/mixins/utils.scss +++ b/packages/design-system/src/css/mixins/utils.scss @@ -39,17 +39,16 @@ } @function joinVarName($list) { - $name: '--' + 'el'; - @each $item in $list { - @if $item != '' { - $name: $name + '-' + $item; - } - } - @return $name; + $name: '--' + 'el'; + @each $item in $list { + @if $item != '' { + $name: $name + '-' + $item; + } + } + @return $name; } // getCssVarName('button', 'text-color') => '--el-button-text-color' @function getCssVarName($args...) { - @return joinVarName($args); + @return joinVarName($args); } - diff --git a/packages/design-system/src/css/notification.scss b/packages/design-system/src/css/notification.scss index fc8fcc03d6..d2dc68dd65 100644 --- a/packages/design-system/src/css/notification.scss +++ b/packages/design-system/src/css/notification.scss @@ -11,7 +11,13 @@ position: fixed; background-color: var.$color-white; box-shadow: var.$notification-shadow; - transition: opacity 0.3s, transform 0.3s, left 0.3s, right 0.3s, top 0.4s, bottom 0.3s; + transition: + opacity 0.3s, + transform 0.3s, + left 0.3s, + right 0.3s, + top 0.4s, + bottom 0.3s; overflow: hidden; &.right { diff --git a/packages/design-system/src/css/pagination.scss b/packages/design-system/src/css/pagination.scss index f7b2fd45ea..8d40cdae35 100644 --- a/packages/design-system/src/css/pagination.scss +++ b/packages/design-system/src/css/pagination.scss @@ -259,7 +259,6 @@ display: inline-flex; align-items: center; - .more::before { line-height: 30px; } @@ -313,7 +312,6 @@ } } - //@mixin pagination-button { // display: flex; // justify-content: center; diff --git a/packages/design-system/src/css/popper.scss b/packages/design-system/src/css/popper.scss index 09fdbe5581..61651dd027 100644 --- a/packages/design-system/src/css/popper.scss +++ b/packages/design-system/src/css/popper.scss @@ -124,7 +124,6 @@ } } - &[data-popper-placement^='bottom'] .el-popper__arrow { border-bottom-color: transparent; diff --git a/packages/design-system/src/css/switch.scss b/packages/design-system/src/css/switch.scss index 17d8e568d2..23bb3ef6c4 100644 --- a/packages/design-system/src/css/switch.scss +++ b/packages/design-system/src/css/switch.scss @@ -63,7 +63,9 @@ box-sizing: border-box; background: var.$switch-off-color; cursor: pointer; - transition: border-color 0.1s, background-color 0.1s; + transition: + border-color 0.1s, + background-color 0.1s; vertical-align: middle; &:after { diff --git a/packages/design-system/src/css/tabs.scss b/packages/design-system/src/css/tabs.scss index cca2eddef4..d9aa9c7dd3 100644 --- a/packages/design-system/src/css/tabs.scss +++ b/packages/design-system/src/css/tabs.scss @@ -179,7 +179,8 @@ > .el-tabs__header .el-tabs__item { border-bottom: 1px solid transparent; border-left: 1px solid var(--border-color-base); - transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), + transition: + color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); &:first-child { border-left: none; @@ -211,7 +212,9 @@ @include mixins.m(border-card) { background: var.$color-white; border: 1px solid var(--border-color-base); - box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04); + box-shadow: + 0 2px 4px 0 rgba(0, 0, 0, 0.12), + 0 0 6px 0 rgba(0, 0, 0, 0.04); > .el-tabs__content { padding: 15px; diff --git a/packages/design-system/theme/preview/docs.min.css b/packages/design-system/theme/preview/docs.min.css index 4754922bf4..7d08663d73 100644 --- a/packages/design-system/theme/preview/docs.min.css +++ b/packages/design-system/theme/preview/docs.min.css @@ -20,7 +20,9 @@ transition: 0.2s; } .demo-block.hover { - box-shadow: 0 0 8px 0 rgba(232, 237, 250, 0.6), 0 2px 4px 0 rgba(232, 237, 250, 0.5); + box-shadow: + 0 0 8px 0 rgba(232, 237, 250, 0.6), + 0 2px 4px 0 rgba(232, 237, 250, 0.5); } .demo-block code { font-family: Menlo, Monaco, Consolas, Courier, monospace; @@ -305,7 +307,9 @@ right: 0; height: 2px; width: 0; - transition: width 0.2s, opacity 0.4s; + transition: + width 0.2s, + opacity 0.4s; opacity: 1; z-index: 999999; } @@ -943,7 +947,9 @@ background: url("data:image/svg+xml;utf8,"); background-repeat: no-repeat; background-position: 50%; - background-size: 100% 100%, auto; + background-size: + 100% 100%, + auto; } .demo-color-box-lite { color: #303133; @@ -1189,7 +1195,13 @@ ul.language-list li { } .icon-list li span { line-height: normal; - font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, + font-family: + Helvetica Neue, + Helvetica, + PingFang SC, + Hiragino Sans GB, + Microsoft YaHei, + SimSun, sans-serif; color: #99a9bf; transition: color 0.15s linear; @@ -1811,7 +1823,13 @@ html { margin: 0; padding: 0; height: 100%; - font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, SimSun, + font-family: + Helvetica Neue, + Helvetica, + PingFang SC, + Hiragino Sans GB, + Microsoft YaHei, + SimSun, sans-serif; font-weight: 400; -webkit-font-smoothing: antialiased; @@ -1972,7 +1990,8 @@ textarea { @font-face { font-family: icomoon; src: url(data:application/vnd.ms-fontobject;base64,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); - src: url(data:application/vnd.ms-fontobject;base64,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#iefix) + src: + url(data:application/vnd.ms-fontobject;base64,SAgAAKQHAAABAAIAAAAAAAAAAAAAAAAAAAABAJABAAAAAExQAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAa7522AAAAAAAAAAAAAAAAAAAAAAAAA4AaQBjAG8AbQBvAG8AbgAAAA4AUgBlAGcAdQBsAGEAcgAAABYAVgBlAHIAcwBpAG8AbgAgADEALgAwAAAADgBpAGMAbwBtAG8AbwBuAAAAAAAAAQAAAAsAgAADADBPUy8yDxIFxwAAALwAAABgY21hcBdW0ooAAAEcAAAAVGdhc3AAAAAQAAABcAAAAAhnbHlmx3GYOgAAAXgAAAPUaGVhZArUIjUAAAVMAAAANmhoZWEHwgPJAAAFhAAAACRobXR4FgAAAAAABagAAAAgbG9jYQMUAf4AAAXIAAAAEm1heHAADgBvAAAF3AAAACBuYW1lmUoJ+wAABfwAAAGGcG9zdAADAAAAAAeEAAAAIAADA5oBkAAFAAACmQLMAAAAjwKZAswAAAHrADMBCQAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAAAAAAAEAAAOkDA8D/wABAA8AAQAAAAAEAAAAAAAAAAAAAACAAAAAAAAMAAAADAAAAHAABAAMAAAAcAAMAAQAAABwABAA4AAAACgAIAAIAAgABACDpA//9//8AAAAAACDpAP/9//8AAf/jFwQAAwABAAAAAAAAAAAAAAABAAH//wAPAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAUAAP/ABAADwAATACcANQBDAFEAABM0PgIzMh4CFRQOAiMiLgIlNC4CIyIOAhUUHgIzMj4CJTQ2MzIWHQEUBiMiJjUlNDYzMhYdARQGIyImNQEiBhUUFjMhMjY1NCYjAFCLu2pqu4tQUIu7amq7i1ADs0R2n1pan3ZERHafWlqfdkT9cx4WFR4eFRYeAU0eFRYeHhYVHv72ERgYEQEuERgYEQHAaruLUFCLu2pqu4tQUIu7alqfdkREdp9aWp92RER2n+cVHh4VMxYeHhYzFR4eFTMWHh4W/wAZEREZGRERGQAAAAQAAP/ABAADwAATACEALwBPAAABIg4CFRQeAjMyPgI1NC4CATQ2MzIWHQEUBiMiJjUlNDYzMhYdARQGIyImNRMnLgEjIgYPAQ4BIyImNTQ2Nyc3PgEzMhYXHgEVFAYnAgBqu4tQUIu7amq7i1BQi7v+vB4WFR4eFRYeAU0eFRYeHhYVHkQEKlovMFsqBAEFAhAVBgYBCjJrNTZpMwkKHBMDwFCLu2pqu4tQUIu7amq7i1D+jRUeHhUzFh4eFjMVHh4VMxYeHhb+mwEVFRUVAQEBGBEIDwYDBRgaGRoFEwwTGgYAAAQAAP/ABAADwAATACEALwA9AAAFIi4CNTQ+AjMyHgIVFA4CARUUFjMyNj0BNCYjIgYFFRQWMzI2PQE0JiMiBgEiBhUUFjMhMjY1NCYjAgBqu4tQUIu7amq7i1BQi7v+vB4WFR4eFRYeAU0eFRYeHhYVHv72ERgYEQEuERgYEUBQi7tqaruLUFCLu2pqu4tQAo0zFh4eFjMVHh4VMxYeHhYzFR4e/rgZEREZGRERGQAABAAA/8AEAAPAABMAUABeAGwAAAEiDgIVFB4CMzI+AjU0LgITFAYVDgEVDgMjOAExOAExIi4CJzQmJzQmNS4BNTQ2Nz4BMzIWFzEeATMyNjcxPgEzMhYXHgEVFAYHAzQ2MzIWHQEUBiMiJjUlNDYzMhYdARQGIyImNQIAaruLUFCLu2pqu4tQUIu7xwEBARU/TVsyMltNPxUBAQEBAQICBRUMDBUFIHhLS3ggBRUMDBUFAgIBAb4eFRYeHhYVHv6zHhYVHh4VFh4DwFCLu2pqu4tQUIu7amq7i1D9cgICAQECASlCMBsbMEIpAQIBAQICAgYDBQkECwwMCz1MTD0LDAwLBAkFAwYCARsVHh4VMxYeHhYzFR4eFTMWHh4WAAAAAQAAAAAAANh2vmtfDzz1AAsEAAAAAADT2u7cAAAAANPa7twAAP/ABAADwAAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAAEAAABAAAAAAAAAAAAAAAAAAAACAQAAAAAAAAAAAAAAAIAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAKABQAHgCQAQIBWgHqAAAAAQAAAAgAbQAFAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAA4ArgABAAAAAAABAAcAAAABAAAAAAACAAcAYAABAAAAAAADAAcANgABAAAAAAAEAAcAdQABAAAAAAAFAAsAFQABAAAAAAAGAAcASwABAAAAAAAKABoAigADAAEECQABAA4ABwADAAEECQACAA4AZwADAAEECQADAA4APQADAAEECQAEAA4AfAADAAEECQAFABYAIAADAAEECQAGAA4AUgADAAEECQAKADQApGljb21vb24AaQBjAG8AbQBvAG8AblZlcnNpb24gMS4wAFYAZQByAHMAaQBvAG4AIAAxAC4AMGljb21vb24AaQBjAG8AbQBvAG8Abmljb21vb24AaQBjAG8AbQBvAG8AblJlZ3VsYXIAUgBlAGcAdQBsAGEAcmljb21vb24AaQBjAG8AbQBvAG8AbkZvbnQgZ2VuZXJhdGVkIGJ5IEljb01vb24uAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=#iefix) format('embedded-opentype'), url(data:font/ttf;base64,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) format('truetype'), diff --git a/packages/design-system/theme/preview/index.html b/packages/design-system/theme/preview/index.html index ed1c514ab2..39d0462ee7 100644 --- a/packages/design-system/theme/preview/index.html +++ b/packages/design-system/theme/preview/index.html @@ -1,4 +1,4 @@ - + diff --git a/packages/editor-ui/index.html b/packages/editor-ui/index.html index d7259bd02a..b237f77b5d 100644 --- a/packages/editor-ui/index.html +++ b/packages/editor-ui/index.html @@ -10,9 +10,51 @@ window.REST_ENDPOINT = '{{REST_ENDPOINT}}'; <% if(!isDev){ %> - + <% } %> - + n8n.io - Workflow Automation diff --git a/packages/editor-ui/package.json b/packages/editor-ui/package.json index eee21ad290..0b30f9eedd 100644 --- a/packages/editor-ui/package.json +++ b/packages/editor-ui/package.json @@ -65,7 +65,7 @@ "n8n-workflow": "workspace:*", "normalize-wheel": "^1.0.1", "pinia": "^2.1.6", - "prettier": "^2.8.8", + "prettier": "^3.0.0", "stream-browserify": "^3.0.0", "timeago.js": "^4.0.2", "uuid": "^8.3.2", diff --git a/packages/editor-ui/src/n8n-theme.scss b/packages/editor-ui/src/n8n-theme.scss index e944fb58f8..f86d5386aa 100644 --- a/packages/editor-ui/src/n8n-theme.scss +++ b/packages/editor-ui/src/n8n-theme.scss @@ -188,7 +188,6 @@ } .tags-container { - .el-select-tags-wrapper .el-tag { font-size: 12px; font-weight: 400; @@ -222,15 +221,18 @@ cursor: not-allowed; color: var(--color-foreground-dark); } - .el-input__inner, .el-input__inner::placeholder { + .el-input__inner, + .el-input__inner::placeholder { opacity: 1; color: var(--color-foreground-dark); } } - .el-select .el-input:not(.is-disabled ) .el-input__icon { + .el-select .el-input:not(.is-disabled) .el-input__icon { color: var(--color-text-dark); } - .el-input .el-input__inner { text-align: center; } + .el-input .el-input__inner { + text-align: center; + } .el-input:not(.is-disabled) .el-input__inner { &, &:hover, diff --git a/packages/editor-ui/src/plugins/i18n/docs/README.md b/packages/editor-ui/src/plugins/i18n/docs/README.md index 664c3e1a2f..344ae7ab57 100644 --- a/packages/editor-ui/src/plugins/i18n/docs/README.md +++ b/packages/editor-ui/src/plugins/i18n/docs/README.md @@ -507,4 +507,3 @@ After changing the dynamic text file: If a `headerText` section was changed, re-run `pnpm build:translations` in `/nodes-base`. > **Note**: To translate base and dynamic text simultaneously, run three terminals following the steps from both sections (first terminal running only once) and browse `http://localhost:8080`. - diff --git a/packages/editor-ui/src/styles/autocomplete-theme.scss b/packages/editor-ui/src/styles/autocomplete-theme.scss index 5c406de1f2..6eda8b76c8 100644 --- a/packages/editor-ui/src/styles/autocomplete-theme.scss +++ b/packages/editor-ui/src/styles/autocomplete-theme.scss @@ -10,7 +10,8 @@ // Custom autocomplete item type icons // 1. Native and n8n extension functions: -.cm-completionIcon-extension-function, .cm-completionIcon-native-function { +.cm-completionIcon-extension-function, +.cm-completionIcon-native-function { &::after { content: 'ƒ'; } diff --git a/packages/editor-ui/vite.config.ts b/packages/editor-ui/vite.config.ts index 40ed61ebef..3c89229005 100644 --- a/packages/editor-ui/vite.config.ts +++ b/packages/editor-ui/vite.config.ts @@ -3,7 +3,7 @@ import { resolve } from 'path'; import { defineConfig, mergeConfig } from 'vite'; import { defineConfig as defineVitestConfig } from 'vitest/config'; import { sentryVitePlugin } from '@sentry/vite-plugin'; -import { ViteEjsPlugin } from "vite-plugin-ejs"; +import { ViteEjsPlugin } from 'vite-plugin-ejs'; import packageJSON from './package.json'; diff --git a/packages/node-dev/README.md b/packages/node-dev/README.md index f115f25e7b..6227da0a21 100644 --- a/packages/node-dev/README.md +++ b/packages/node-dev/README.md @@ -1,6 +1,6 @@ ![n8n.io - Workflow Automation](https://user-images.githubusercontent.com/65276001/173571060-9f2f6d7b-bac0-43b6-bdb2-001da9694058.png) -# n8n-node-dev +# n8n-node-dev Currently very simple and not very sophisticated CLI which makes it easier to create credentials and nodes in TypeScript for n8n. @@ -131,14 +131,12 @@ Method is called when the workflow gets executed - `execute`: Executed once no matter how many items By default, `execute` should always be used, especially when creating a -third-party integration. The reason for this is that it provides much more +third-party integration. The reason for this is that it provides much more flexibility and allows, for example, returning a different number of items than it received as input. This becomes crucial when a node needs to query data such as _return all users_. In such cases, the node typically receives only one input item but returns as many items as there are users. Therefore, when in doubt, it is recommended to use `execute`! - - **Trigger node** Method is called once when the workflow gets activated. It can then trigger workflow runs and provide the necessary data by itself. diff --git a/packages/nodes-base/nodes/Twitter/Twitter.node.json b/packages/nodes-base/nodes/Twitter/Twitter.node.json index 9d8fb0b276..693c9a9836 100644 --- a/packages/nodes-base/nodes/Twitter/Twitter.node.json +++ b/packages/nodes-base/nodes/Twitter/Twitter.node.json @@ -32,5 +32,5 @@ } ] }, - "alias": ["Tweet"] + "alias": ["Tweet"] } diff --git a/packages/nodes-base/test/nodes/Airtable/workflow.json b/packages/nodes-base/test/nodes/Airtable/workflow.json index 43b959b92e..b171c33df0 100644 --- a/packages/nodes-base/test/nodes/Airtable/workflow.json +++ b/packages/nodes-base/test/nodes/Airtable/workflow.json @@ -9,10 +9,7 @@ "name": "On clicking 'execute'", "type": "n8n-nodes-base.manualTrigger", "typeVersion": 1, - "position": [ - 820, - 380 - ] + "position": [820, 380] }, { "parameters": { @@ -35,10 +32,7 @@ "name": "Airtable", "type": "n8n-nodes-base.airtable", "typeVersion": 1, - "position": [ - 1020, - 380 - ], + "position": [1020, 380], "credentials": { "airtableApi": { "id": "20", diff --git a/packages/workflow/test/TypeValidation.test.ts b/packages/workflow/test/TypeValidation.test.ts index 68bfa36b8f..3561ff18ad 100644 --- a/packages/workflow/test/TypeValidation.test.ts +++ b/packages/workflow/test/TypeValidation.test.ts @@ -136,8 +136,7 @@ describe('Type Validation', () => { ).toEqual(true); // Invalid value: expect(validateFieldType('json', ['one', 'two'], 'object').valid).toEqual(false); - // eslint-disable-next-line prettier/prettier - expect(validateFieldType('json', ["one", "two"], 'object').valid).toEqual(false); + expect(validateFieldType('json', ['one', 'two'], 'object').valid).toEqual(false); expect(validateFieldType('json', '1', 'object').valid).toEqual(false); expect(validateFieldType('json', '[1]', 'object').valid).toEqual(false); expect(validateFieldType('json', '1.1', 'object').valid).toEqual(false); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9753a547c2..3211d6c7a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,4 +1,4 @@ -lockfileVersion: '6.1' +lockfileVersion: '6.0' settings: autoInstallPeers: true @@ -11,6 +11,7 @@ overrides: '@types/node': ^18.16.16 chokidar: 3.5.2 jsonwebtoken: 9.0.0 + prettier: ^3.0.0 semver: ^7.5.4 tough-cookie: ^4.1.3 tslib: ^2.6.1 @@ -91,9 +92,6 @@ importers: p-limit: specifier: ^3.1.0 version: 3.1.0 - prettier: - specifier: ^2.8.8 - version: 2.8.8 rimraf: specifier: ^5.0.1 version: 5.0.1 @@ -887,8 +885,8 @@ importers: specifier: ^2.1.6 version: 2.1.6(typescript@5.1.6)(vue@3.3.4) prettier: - specifier: ^2.8.8 - version: 2.8.8 + specifier: ^3.0.0 + version: 3.0.0 stream-browserify: specifier: ^3.0.0 version: 3.0.0 @@ -4966,7 +4964,7 @@ packages: less-loader: 11.1.3(less@4.1.3)(webpack@5.75.0) postcss: 8.4.27 postcss-loader: 7.3.3(postcss@8.4.27)(webpack@5.75.0) - prettier: 2.8.8 + prettier: 3.0.0 react: 17.0.2 react-dom: 18.2.0(react@17.0.2) resolve-url-loader: 5.0.0 @@ -5280,7 +5278,7 @@ packages: jscodeshift: 0.14.0(@babel/preset-env@7.22.9) leven: 3.1.0 ora: 5.4.1 - prettier: 2.8.8 + prettier: 3.0.0 prompts: 2.4.2 puppeteer-core: 2.1.1 read-pkg-up: 7.0.1 @@ -5331,7 +5329,7 @@ packages: globby: 11.1.0 jscodeshift: 0.14.0(@babel/preset-env@7.22.9) lodash: 4.17.21 - prettier: 2.8.8 + prettier: 3.0.0 recast: 0.23.3 transitivePeerDependencies: - supports-color @@ -17147,16 +17145,10 @@ packages: fast-diff: 1.2.0 dev: true - /prettier@2.8.8: - resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} - engines: {node: '>=10.13.0'} - hasBin: true - /prettier@3.0.0: resolution: {integrity: sha512-zBf5eHpwHOGPC47h0zrPyNn+eAEIdEzfywMoYn2XPi0P44Zp0tSq64rq0xAREh4auw2cJZHo9QUob+NqCQky4g==} engines: {node: '>=14'} hasBin: true - dev: true /pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} diff --git a/scripts/format.mjs b/scripts/format.mjs index f278e77ec1..11b267b477 100644 --- a/scripts/format.mjs +++ b/scripts/format.mjs @@ -4,7 +4,7 @@ import fs from 'fs'; import path from 'path'; import { execSync } from 'child_process'; -const prettier = path.resolve('node_modules', 'prettier', 'bin-prettier.js'); +const prettier = path.resolve('node_modules', '.bin', 'prettier'); if (!fs.existsSync(prettier)) { throw new Error(