}`;
}[keyof ExternalHooks];
-type ExtractHookMethodArray =
- ExternalHooks[P][S] extends Array ? U : never;
+type ExtractHookMethodArray<
+ P extends keyof ExternalHooks,
+ S extends keyof ExternalHooks[P],
+> = ExternalHooks[P][S] extends Array ? U : never;
type ExtractHookMethodFunction = T extends ExternalHooksMethod ? T : never;
diff --git a/packages/editor-ui/src/utils/__tests__/nodeTypesUtils.spec.ts b/packages/editor-ui/src/utils/__tests__/nodeTypesUtils.spec.ts
new file mode 100644
index 0000000000..118095ed24
--- /dev/null
+++ b/packages/editor-ui/src/utils/__tests__/nodeTypesUtils.spec.ts
@@ -0,0 +1,383 @@
+import { describe, it, expect } from 'vitest';
+import { getReferencedNodes } from '../nodeTypesUtils';
+import type { INode } from 'n8n-workflow';
+
+const referencedNodesTestCases: Array<{ caseName: string; node: INode; expected: string[] }> = [
+ {
+ caseName: 'Should return an empty array if no referenced nodes',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ url: 'https://httpbin.org/get1',
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: [],
+ },
+ {
+ caseName: 'Should return an array of references for regular node',
+ node: {
+ parameters: {
+ authentication: 'oAuth2',
+ resource: 'sheet',
+ operation: 'read',
+ documentId: {
+ __rl: true,
+ value: "={{ $('Edit Fields').item.json.document }}",
+ mode: 'id',
+ },
+ sheetName: {
+ __rl: true,
+ value: "={{ $('Edit Fields 2').item.json.sheet }}",
+ mode: 'id',
+ },
+ filtersUI: {},
+ combineFilters: 'AND',
+ options: {},
+ },
+ type: 'n8n-nodes-base.googleSheets',
+ typeVersion: 4.5,
+ position: [440, 0],
+ id: '9a95ad27-06cf-4076-af6b-52846a109a8b',
+ name: 'Google Sheets',
+ credentials: {
+ googleSheetsOAuth2Api: {
+ id: '8QEpi028oHDLXntS',
+ name: 'milorad@n8n.io',
+ },
+ },
+ },
+ expected: ['Edit Fields', 'Edit Fields 2'],
+ },
+ {
+ caseName: 'Should return an array of references for set node',
+ node: {
+ parameters: {
+ mode: 'manual',
+ duplicateItem: false,
+ assignments: {
+ assignments: [
+ {
+ id: '135e0eb0-f412-430d-8990-731c57cf43ae',
+ name: 'document',
+ value: "={{ $('Edit Fields 2').item.json.document}}",
+ type: 'string',
+ },
+ ],
+ },
+ includeOtherFields: false,
+ options: {},
+ },
+ type: 'n8n-nodes-base.set',
+ typeVersion: 3.4,
+ position: [560, -140],
+ id: '7306745f-ba8c-451d-ae1a-c627f60fbdd3',
+ name: 'Edit Fields 2',
+ },
+ expected: ['Edit Fields 2'],
+ },
+ {
+ caseName: 'Should handle expressions with single quotes, double quotes and backticks',
+ node: {
+ parameters: {
+ authentication: 'oAuth2',
+ resource: 'sheet',
+ operation: 'read',
+ documentId: {
+ __rl: true,
+ value: "={{ $('Edit Fields').item.json.document }}",
+ mode: 'id',
+ },
+ sheetName: {
+ __rl: true,
+ value: '={{ $("Edit Fields 2").item.json.sheet }}',
+ mode: 'id',
+ },
+ rowName: {
+ __rl: true,
+ value: '={{ $(`Edit Fields 3`).item.json.row }}',
+ mode: 'id',
+ },
+ filtersUI: {},
+ combineFilters: 'AND',
+ options: {},
+ },
+ type: 'n8n-nodes-base.googleSheets',
+ typeVersion: 4.5,
+ position: [440, 0],
+ id: '9a95ad27-06cf-4076-af6b-52846a109a8b',
+ name: 'Google Sheets',
+ credentials: {
+ googleSheetsOAuth2Api: {
+ id: '8QEpi028oHDLXntS',
+ name: 'milorad@n8n.io',
+ },
+ },
+ },
+ expected: ['Edit Fields', 'Edit Fields 2', 'Edit Fields 3'],
+ },
+ {
+ caseName: 'Should only add one reference for each referenced node',
+ node: {
+ parameters: {
+ authentication: 'oAuth2',
+ resource: 'sheet',
+ operation: 'read',
+ documentId: {
+ __rl: true,
+ value: "={{ $('Edit Fields').item.json.document }}",
+ mode: 'id',
+ },
+ sheetName: {
+ __rl: true,
+ value: "={{ $('Edit Fields').item.json.sheet }}",
+ mode: 'id',
+ },
+ filtersUI: {},
+ combineFilters: 'AND',
+ options: {},
+ },
+ type: 'n8n-nodes-base.googleSheets',
+ typeVersion: 4.5,
+ position: [440, 0],
+ id: '9a95ad27-06cf-4076-af6b-52846a109a8b',
+ name: 'Google Sheets',
+ credentials: {
+ googleSheetsOAuth2Api: {
+ id: '8QEpi028oHDLXntS',
+ name: 'milorad@n8n.io',
+ },
+ },
+ },
+ expected: ['Edit Fields'],
+ },
+ {
+ caseName: 'Should handle multiple node references in one expression',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ url: "={{ $('Edit Fields').item.json.one }} {{ $('Edit Fields 2').item.json.two }} {{ $('Edit Fields').item.json.three }}",
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: ['Edit Fields', 'Edit Fields 2'],
+ },
+ {
+ caseName: 'Should respect whitespace around node references',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ url: "={{ $(' Edit Fields ').item.json.one }}",
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: [' Edit Fields '],
+ },
+ {
+ caseName: 'Should ignore whitespace inside expressions',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ url: "={{ $( 'Edit Fields' ).item.json.one }}",
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: ['Edit Fields'],
+ },
+ {
+ caseName: 'Should ignore special characters in node references',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ url: "={{ $( 'Ignore ' this' ).item.json.document }",
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: [],
+ },
+ {
+ caseName: 'Should correctly detect node names that contain single quotes',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ // In order to carry over backslashes to test function, the string needs to be double escaped
+ url: "={{ $('Edit \\'Fields\\' 2').item.json.name }}",
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: ["Edit 'Fields' 2"],
+ },
+ {
+ caseName: 'Should correctly detect node names with inner backticks',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ url: "={{ $('Edit `Fields` 2').item.json.name }}",
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: ['Edit `Fields` 2'],
+ },
+ {
+ caseName: 'Should correctly detect node names with inner escaped backticks',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ url: '={{ $(`Edit \\`Fields\\` 2`).item.json.name }}',
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: ['Edit `Fields` 2'],
+ },
+ {
+ caseName: 'Should correctly detect node names with inner escaped double quotes',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ // In order to carry over backslashes to test function, the string needs to be double escaped
+ url: '={{ $("Edit \\"Fields\\" 2").item.json.name }}',
+ authentication: 'none',
+ provideSslCertificates: false,
+ sendQuery: false,
+ sendHeaders: false,
+ sendBody: false,
+ options: {},
+ infoMessage: '',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: ['Edit "Fields" 2'],
+ },
+ {
+ caseName: 'Should not detect invalid expressions',
+ node: {
+ parameters: {
+ curlImport: '',
+ method: 'GET',
+ // String not closed properly
+ url: "={{ $('Edit ' fields').item.json.document }",
+ // Mixed quotes
+ url2: '{{ $("Edit \'Fields" 2").item.json.name }}',
+ url3: '{{ $("Edit `Fields" 2").item.json.name }}',
+ // Quotes not escaped
+ url4: '{{ $("Edit "Fields" 2").item.json.name }}',
+ url5: "{{ $('Edit 'Fields' 2').item.json.name }}",
+ url6: '{{ $(`Edit `Fields` 2`).item.json.name }}',
+ },
+ type: 'n8n-nodes-base.httpRequest',
+ typeVersion: 4.2,
+ position: [220, 220],
+ id: 'edc36001-aee7-4052-b66e-cf127f4b6ea5',
+ name: 'HTTP Request',
+ },
+ expected: [],
+ },
+];
+
+describe.each(referencedNodesTestCases)('getReferencedNodes', (testCase) => {
+ const caseName = testCase.caseName;
+ it(`${caseName}`, () => {
+ expect(getReferencedNodes(testCase.node)).toEqual(testCase.expected);
+ });
+});
diff --git a/packages/editor-ui/src/utils/htmlUtils.ts b/packages/editor-ui/src/utils/htmlUtils.ts
index 5da34b3965..2a78582b01 100644
--- a/packages/editor-ui/src/utils/htmlUtils.ts
+++ b/packages/editor-ui/src/utils/htmlUtils.ts
@@ -37,6 +37,17 @@ export function sanitizeHtml(dirtyHtml: string) {
return sanitizedHtml;
}
+/**
+ * Checks if the input is a string and sanitizes it by removing or escaping harmful characters,
+ * returning the original input if it's not a string.
+ */
+export const sanitizeIfString = (message: T): string | T => {
+ if (typeof message === 'string') {
+ return sanitizeHtml(message);
+ }
+ return message;
+};
+
export function setPageTitle(title: string) {
window.document.title = title;
}
diff --git a/packages/editor-ui/src/utils/nodeTypesUtils.ts b/packages/editor-ui/src/utils/nodeTypesUtils.ts
index 70fa803411..03f930c740 100644
--- a/packages/editor-ui/src/utils/nodeTypesUtils.ts
+++ b/packages/editor-ui/src/utils/nodeTypesUtils.ts
@@ -5,10 +5,10 @@ import type {
ITemplatesNode,
IVersionNode,
NodeAuthenticationOption,
- Schema,
SimplifiedNodeType,
} from '@/Interface';
import { useDataSchema } from '@/composables/useDataSchema';
+import { useWorkflowHelpers } from '@/composables/useWorkflowHelpers';
import {
CORE_NODES_CATEGORY,
MAIN_AUTH_FIELD_NAME,
@@ -20,20 +20,22 @@ import { i18n as locale } from '@/plugins/i18n';
import { useCredentialsStore } from '@/stores/credentials.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useWorkflowsStore } from '@/stores/workflows.store';
+import type { ChatRequest } from '@/types/assistant.types';
import { isResourceLocatorValue } from '@/utils/typeGuards';
import { isJsonKeyObject } from '@/utils/typesUtils';
-import type {
- AssignmentCollectionValue,
- IDataObject,
- INode,
- INodeCredentialDescription,
- INodeExecutionData,
- INodeProperties,
- INodeTypeDescription,
- NodeParameterValueType,
- ResourceMapperField,
- Themed,
+import {
+ deepCopy,
+ type IDataObject,
+ type INode,
+ type INodeCredentialDescription,
+ type INodeExecutionData,
+ type INodeProperties,
+ type INodeTypeDescription,
+ type NodeParameterValueType,
+ type ResourceMapperField,
+ type Themed,
} from 'n8n-workflow';
+import { useRouter } from 'vue-router';
/*
Constants and utility functions mainly used to get information about
@@ -503,9 +505,9 @@ export const getNodeIconColor = (
/**
Regular expression to extract the node names from the expressions in the template.
- Example: $(expression) => expression
+ Supports single quotes, double quotes, and backticks.
*/
-const entityRegex = /\$\((['"])(.*?)\1\)/g;
+const entityRegex = /\$\(\s*(\\?["'`])((?:\\.|(?!\1)[^\\])*)\1\s*\)/g;
/**
* Extract the node names from the expressions in the template.
@@ -520,81 +522,89 @@ function extractNodeNames(template: string): string[] {
}
/**
- * Extract the node names from the expressions in the node parameters.
+ * Unescape quotes in the string. Supports single quotes, double quotes, and backticks.
*/
-export function getReferencedNodes(node: INode): string[] {
- const referencedNodes: string[] = [];
- if (!node) {
- return referencedNodes;
- }
- // Special case for code node
- if (node.type === 'n8n-nodes-base.set' && node.parameters.assignments) {
- const assignments = node.parameters.assignments as AssignmentCollectionValue;
- if (assignments.assignments?.length) {
- assignments.assignments.forEach((assignment) => {
- if (assignment.name && assignment.value && String(assignment.value).startsWith('=')) {
- const nodeNames = extractNodeNames(String(assignment.value));
- if (nodeNames.length) {
- referencedNodes.push(...nodeNames);
- }
- }
- });
- }
- } else {
- Object.values(node.parameters).forEach((value) => {
- if (!value) {
- return;
- }
- let strValue = String(value);
- // Handle resource locator
- if (typeof value === 'object' && 'value' in value) {
- strValue = String(value.value);
- }
- if (strValue.startsWith('=')) {
- const nodeNames = extractNodeNames(strValue);
- if (nodeNames.length) {
- referencedNodes.push(...nodeNames);
- }
- }
- });
- }
- return referencedNodes;
+export function unescapeQuotes(str: string): string {
+ return str.replace(/\\(['"`])/g, '$1');
}
/**
- * Remove properties from a node based on the provided list of property names.
- * Reruns a new node object with the properties removed.
+ * Extract the node names from the expressions in the node parameters.
*/
-export function pruneNodeProperties(node: INode, propsToRemove: string[]): INode {
- const prunedNode = { ...node };
+export function getReferencedNodes(node: INode): string[] {
+ const referencedNodes: Set = new Set();
+ if (!node) {
+ return [];
+ }
+ // Go through all parameters and check if they contain expressions on any level
+ for (const key in node.parameters) {
+ let names: string[] = [];
+ if (
+ node.parameters[key] &&
+ typeof node.parameters[key] === 'object' &&
+ Object.keys(node.parameters[key]).length
+ ) {
+ names = extractNodeNames(JSON.stringify(node.parameters[key]));
+ } else if (typeof node.parameters[key] === 'string' && node.parameters[key]) {
+ names = extractNodeNames(node.parameters[key]);
+ }
+ if (names.length) {
+ names
+ .map((name) => unescapeQuotes(name))
+ .forEach((name) => {
+ referencedNodes.add(name);
+ });
+ }
+ }
+ return referencedNodes.size ? Array.from(referencedNodes) : [];
+}
+
+/**
+ * Processes node object before sending it to AI assistant
+ * - Removes unnecessary properties
+ * - Extracts expressions from the parameters and resolves them
+ * @param node original node object
+ * @param propsToRemove properties to remove from the node object
+ * @returns processed node
+ */
+export function processNodeForAssistant(node: INode, propsToRemove: string[]): INode {
+ // Make a copy of the node object so we don't modify the original
+ const nodeForLLM = deepCopy(node);
propsToRemove.forEach((key) => {
- delete prunedNode[key as keyof INode];
+ delete nodeForLLM[key as keyof INode];
});
- return prunedNode;
+ const workflowHelpers = useWorkflowHelpers({ router: useRouter() });
+ const resolvedParameters = workflowHelpers.getNodeParametersWithResolvedExpressions(
+ nodeForLLM.parameters,
+ );
+ nodeForLLM.parameters = resolvedParameters;
+ return nodeForLLM;
+}
+
+export function isNodeReferencingInputData(node: INode): boolean {
+ const parametersString = JSON.stringify(node.parameters);
+ const references = ['$json', '$input', '$binary'];
+ return references.some((ref) => parametersString.includes(ref));
}
/**
* Get the schema for the referenced nodes as expected by the AI assistant
* @param nodeNames The names of the nodes to get the schema for
- * @returns An array of objects containing the node name and the schema
+ * @returns An array of NodeExecutionSchema objects
*/
export function getNodesSchemas(nodeNames: string[]) {
- return nodeNames.map((name) => {
+ const schemas: ChatRequest.NodeExecutionSchema[] = [];
+ for (const name of nodeNames) {
const node = useWorkflowsStore().getNodeByName(name);
if (!node) {
- return {
- nodeName: name,
- schema: {} as Schema,
- };
+ continue;
}
const { getSchemaForExecutionData, getInputDataWithPinned } = useDataSchema();
- const schema = getSchemaForExecutionData(
- executionDataToJson(getInputDataWithPinned(node)),
- true,
- );
- return {
+ const schema = getSchemaForExecutionData(executionDataToJson(getInputDataWithPinned(node)));
+ schemas.push({
nodeName: node.name,
schema,
- };
- });
+ });
+ }
+ return schemas;
}
diff --git a/packages/editor-ui/src/views/NodeView.vue b/packages/editor-ui/src/views/NodeView.vue
index b22ce73d3d..a792ff135a 100644
--- a/packages/editor-ui/src/views/NodeView.vue
+++ b/packages/editor-ui/src/views/NodeView.vue
@@ -2926,6 +2926,7 @@ export default defineComponent({
}
if (
+ // @ts-expect-error Deprecated file
// eslint-disable-next-line no-constant-binary-expression
!(this.workflowPermissions.update ?? this.projectPermissions.workflow.update) ??
this.isReadOnlyRoute ??
@@ -2965,6 +2966,7 @@ export default defineComponent({
}
if (
+ // @ts-expect-error Deprecated file
// eslint-disable-next-line no-constant-binary-expression
!(this.workflowPermissions.update ?? this.projectPermissions.workflow.update) ??
this.isReadOnlyRoute ??
diff --git a/packages/editor-ui/src/views/ProjectSettings.test.ts b/packages/editor-ui/src/views/ProjectSettings.test.ts
index 13a8707109..333480665d 100644
--- a/packages/editor-ui/src/views/ProjectSettings.test.ts
+++ b/packages/editor-ui/src/views/ProjectSettings.test.ts
@@ -10,7 +10,7 @@ import { VIEWS } from '@/constants';
import { useUsersStore } from '@/stores/users.store';
import { createProjectListItem } from '@/__tests__/data/projects';
import { useSettingsStore } from '@/stores/settings.store';
-import type { IN8nUISettings } from 'n8n-workflow';
+import type { FrontendSettings } from '@n8n/api-types';
import { ProjectTypes } from '@/types/projects.types';
vi.mock('vue-router', () => {
@@ -63,7 +63,7 @@ describe('ProjectSettings', () => {
},
},
},
- } as IN8nUISettings);
+ } as FrontendSettings);
projectsStore.setCurrentProject({
id: '123',
type: 'team',
diff --git a/packages/editor-ui/src/views/SettingsLdapView.vue b/packages/editor-ui/src/views/SettingsLdapView.vue
index 8feca49da7..6cab6b1ba5 100644
--- a/packages/editor-ui/src/views/SettingsLdapView.vue
+++ b/packages/editor-ui/src/views/SettingsLdapView.vue
@@ -633,7 +633,7 @@ export default defineComponent({
-
+
diff --git a/packages/editor-ui/src/views/SettingsLogStreamingView.vue b/packages/editor-ui/src/views/SettingsLogStreamingView.vue
index e8abb67e64..0f62a31aee 100644
--- a/packages/editor-ui/src/views/SettingsLogStreamingView.vue
+++ b/packages/editor-ui/src/views/SettingsLogStreamingView.vue
@@ -175,7 +175,7 @@ export default defineComponent({
-
+
@@ -207,7 +207,7 @@ export default defineComponent({
@click:button="addDestination"
>
-
+
@@ -215,7 +215,7 @@ export default defineComponent({
-
+
@@ -225,7 +225,7 @@ export default defineComponent({
@click:button="goToUpgrade"
>
-
+
diff --git a/packages/editor-ui/src/views/__tests__/SettingsSourceControl.test.ts b/packages/editor-ui/src/views/SettingsSourceControl.test.ts
similarity index 98%
rename from packages/editor-ui/src/views/__tests__/SettingsSourceControl.test.ts
rename to packages/editor-ui/src/views/SettingsSourceControl.test.ts
index aa0a100e4e..3cc3072e86 100644
--- a/packages/editor-ui/src/views/__tests__/SettingsSourceControl.test.ts
+++ b/packages/editor-ui/src/views/SettingsSourceControl.test.ts
@@ -170,6 +170,8 @@ describe('SettingsSourceControl', () => {
['git@192.168.1.101:2222:user/repo', true],
['git@ssh.dev.azure.com:v3/User/repo/directory', true],
['ssh://git@mydomain.example:2224/gitolite-admin', true],
+ ['gituser@192.168.1.1:ABC/Repo4.git', true],
+ ['root@192.168.1.1/repo.git', true],
['http://github.com/user/repository', false],
['https://github.com/user/repository', false],
])('%s', async (url: string, isValid: boolean) => {
diff --git a/packages/editor-ui/src/views/SettingsSourceControl.vue b/packages/editor-ui/src/views/SettingsSourceControl.vue
index c8c9263b6f..23505092da 100644
--- a/packages/editor-ui/src/views/SettingsSourceControl.vue
+++ b/packages/editor-ui/src/views/SettingsSourceControl.vue
@@ -131,7 +131,7 @@ const repoUrlValidationRules: Array = [
name: 'MATCH_REGEX',
config: {
regex:
- /^(ssh:\/\/)?git@(?:\[[0-9a-fA-F:]+\]|(?:[a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+)(?::[0-9]+)*:(?:v[0-9]+\/)?[a-zA-Z0-9_.\-\/]+(\.git)?(?:\/[a-zA-Z0-9_.\-\/]+)*$/,
+ /^(?:git@|ssh:\/\/git@|[\w-]+@)(?:[\w.-]+|\[[0-9a-fA-F:]+])(?::\d+)?[:\/][\w\-~]+(?:\/[\w\-~]+)*(?:\.git)?(?:\/.*)?$/,
message: locale.baseText('settings.sourceControl.repoUrlInvalid'),
},
},
diff --git a/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/AppsRequiringCredsNotice.vue b/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/AppsRequiringCredsNotice.vue
index a640b49f9d..ac5bfbe63a 100644
--- a/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/AppsRequiringCredsNotice.vue
+++ b/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/AppsRequiringCredsNotice.vue
@@ -28,7 +28,7 @@ const appNodeCounts = computed(() => {
-
+
diff --git a/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/SetupTemplateFormStep.vue b/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/SetupTemplateFormStep.vue
index 2e64dece86..c482d31114 100644
--- a/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/SetupTemplateFormStep.vue
+++ b/packages/editor-ui/src/views/SetupWorkflowFromTemplateView/SetupTemplateFormStep.vue
@@ -95,7 +95,7 @@ const onCredentialModalOpened = () => {
:plural="credentials.usedBy.length"
scope="global"
>
-
+
diff --git a/packages/editor-ui/src/views/TemplatesSearchView.vue b/packages/editor-ui/src/views/TemplatesSearchView.vue
index 61ce8b42e0..af0381d820 100644
--- a/packages/editor-ui/src/views/TemplatesSearchView.vue
+++ b/packages/editor-ui/src/views/TemplatesSearchView.vue
@@ -410,7 +410,7 @@ export default defineComponent({
/>
-
+
diff --git a/packages/editor-ui/vite.config.mts b/packages/editor-ui/vite.config.mts
index 9fc8b15718..f6824d31a5 100644
--- a/packages/editor-ui/vite.config.mts
+++ b/packages/editor-ui/vite.config.mts
@@ -6,7 +6,7 @@ import { sentryVitePlugin } from '@sentry/vite-plugin';
import packageJSON from './package.json';
import { vitestConfig } from '../design-system/vite.config.mts';
import icons from 'unplugin-icons/vite';
-import iconsResolver from 'unplugin-icons/resolver'
+import iconsResolver from 'unplugin-icons/resolver';
import components from 'unplugin-vue-components/vite';
const vendorChunks = ['vue', 'vue-router'];
@@ -80,9 +80,9 @@ const plugins = [
dts: './src/components.d.ts',
resolvers: [
iconsResolver({
- prefix: 'icon'
- })
- ]
+ prefix: 'icon',
+ }),
+ ],
}),
vue(),
];
diff --git a/packages/node-dev/package.json b/packages/node-dev/package.json
index 0b538e613a..4bcfd04d6c 100644
--- a/packages/node-dev/package.json
+++ b/packages/node-dev/package.json
@@ -13,7 +13,8 @@
"dev": "pnpm watch",
"build": "tsc --noEmit",
"build-node-dev": "tsc",
- "format": "prettier --write . --ignore-path ../../.prettierignore",
+ "format": "biome format --write .",
+ "format:check": "biome ci .",
"lint": "eslint . --quiet",
"lintfix": "eslint . --fix",
"prepack": "echo \"Building project...\" && rm -rf dist && tsc -b",
diff --git a/packages/nodes-base/biome.jsonc b/packages/nodes-base/biome.jsonc
new file mode 100644
index 0000000000..6f4325bafd
--- /dev/null
+++ b/packages/nodes-base/biome.jsonc
@@ -0,0 +1,7 @@
+{
+ "$schema": "../../node_modules/@biomejs/biome/configuration_schema.json",
+ "extends": ["../../biome.jsonc"],
+ "formatter": {
+ "ignore": ["nodes/**/test/*.json"]
+ }
+}
diff --git a/packages/nodes-base/nodes/AiTransform/AiTransform.node.ts b/packages/nodes-base/nodes/AiTransform/AiTransform.node.ts
index 573c34ad62..ac68f13f0e 100644
--- a/packages/nodes-base/nodes/AiTransform/AiTransform.node.ts
+++ b/packages/nodes-base/nodes/AiTransform/AiTransform.node.ts
@@ -1,4 +1,3 @@
-/* eslint-disable n8n-nodes-base/node-dirname-against-convention */
import {
NodeOperationError,
NodeConnectionType,
diff --git a/packages/nodes-base/nodes/Baserow/GenericFunctions.ts b/packages/nodes-base/nodes/Baserow/GenericFunctions.ts
index d08d0c2f5e..ba33755e2f 100644
--- a/packages/nodes-base/nodes/Baserow/GenericFunctions.ts
+++ b/packages/nodes-base/nodes/Baserow/GenericFunctions.ts
@@ -169,7 +169,7 @@ export class TableFieldMapper {
}
setField(field: string) {
- return this.mapIds ? field : this.nameToIdMapping[field] ?? field;
+ return this.mapIds ? field : (this.nameToIdMapping[field] ?? field);
}
idsToNames(obj: Record) {
diff --git a/packages/nodes-base/nodes/Brevo/GenericFunctions.ts b/packages/nodes-base/nodes/Brevo/GenericFunctions.ts
index d43f3e8bfd..4b5da056c1 100644
--- a/packages/nodes-base/nodes/Brevo/GenericFunctions.ts
+++ b/packages/nodes-base/nodes/Brevo/GenericFunctions.ts
@@ -19,15 +19,15 @@ export namespace BrevoNode {
type ValidatedEmail = ToEmail | SenderEmail | CCEmail | BBCEmail;
const enum OVERRIDE_MAP_VALUES {
- 'CATEGORY' = 'category',
- 'NORMAL' = 'boolean',
- 'TRANSACTIONAL' = 'id',
+ CATEGORY = 'category',
+ NORMAL = 'boolean',
+ TRANSACTIONAL = 'id',
}
const enum OVERRIDE_MAP_TYPE {
- 'CATEGORY' = 'category',
- 'NORMAL' = 'normal',
- 'TRANSACTIONAL' = 'transactional',
+ CATEGORY = 'category',
+ NORMAL = 'normal',
+ TRANSACTIONAL = 'transactional',
}
export const INTERCEPTORS = new Map void>([
diff --git a/packages/nodes-base/nodes/CompareDatasets/CompareDatasets.node.ts b/packages/nodes-base/nodes/CompareDatasets/CompareDatasets.node.ts
index 99f866394f..87b0c88c72 100644
--- a/packages/nodes-base/nodes/CompareDatasets/CompareDatasets.node.ts
+++ b/packages/nodes-base/nodes/CompareDatasets/CompareDatasets.node.ts
@@ -22,11 +22,11 @@ export class CompareDatasets implements INodeType {
version: [1, 2, 2.1, 2.2, 2.3],
description: 'Compare two inputs for changes',
defaults: { name: 'Compare Datasets' },
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [NodeConnectionType.Main, NodeConnectionType.Main],
inputNames: ['Input A', 'Input B'],
requiredInputs: 1,
- // eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
+
outputs: [
NodeConnectionType.Main,
NodeConnectionType.Main,
diff --git a/packages/nodes-base/nodes/Contentful/EntryDescription.ts b/packages/nodes-base/nodes/Contentful/EntryDescription.ts
index b5820b98cb..2d76804183 100644
--- a/packages/nodes-base/nodes/Contentful/EntryDescription.ts
+++ b/packages/nodes-base/nodes/Contentful/EntryDescription.ts
@@ -189,4 +189,26 @@ export const fields: INodeProperties[] = [
},
},
},
+ {
+ displayName: 'Additional Fields',
+ name: 'additionalFields',
+ type: 'collection',
+ placeholder: 'Add Field',
+ default: {},
+ displayOptions: {
+ show: {
+ resource: [resource.value],
+ operation: ['get'],
+ },
+ },
+ options: [
+ {
+ displayName: 'RAW Data',
+ name: 'rawData',
+ type: 'boolean',
+ default: false,
+ description: 'Whether the data should be returned RAW instead of parsed',
+ },
+ ],
+ },
];
diff --git a/packages/nodes-base/nodes/Cortex/AnalyzerInterface.ts b/packages/nodes-base/nodes/Cortex/AnalyzerInterface.ts
index 5f9f8fe827..a20948d01b 100644
--- a/packages/nodes-base/nodes/Cortex/AnalyzerInterface.ts
+++ b/packages/nodes-base/nodes/Cortex/AnalyzerInterface.ts
@@ -16,19 +16,19 @@ export const enum TLP {
}
export const enum ObservableDataType {
- 'domain' = 'domain',
- 'file' = 'file',
- 'filename' = 'filename',
- 'fqdn' = 'fqdn',
- 'hash' = 'hash',
- 'ip' = 'ip',
- 'mail' = 'mail',
- 'mail_subject' = 'mail_subject',
- 'other' = 'other',
- 'regexp' = 'regexp',
- 'registry' = 'registry',
- 'uri_path' = 'uri_path',
- 'url' = 'url',
+ domain = 'domain',
+ file = 'file',
+ filename = 'filename',
+ fqdn = 'fqdn',
+ hash = 'hash',
+ ip = 'ip',
+ mail = 'mail',
+ mail_subject = 'mail_subject',
+ other = 'other',
+ regexp = 'regexp',
+ registry = 'registry',
+ uri_path = 'uri_path',
+ url = 'url',
'user-agent' = 'user-agent',
}
export interface IJob {
diff --git a/packages/nodes-base/nodes/Cron/Cron.node.ts b/packages/nodes-base/nodes/Cron/Cron.node.ts
index ebb471a99d..df026c2a5f 100644
--- a/packages/nodes-base/nodes/Cron/Cron.node.ts
+++ b/packages/nodes-base/nodes/Cron/Cron.node.ts
@@ -23,7 +23,7 @@ export class Cron implements INodeType {
name: 'Cron',
color: '#29a568',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
properties: [
diff --git a/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts b/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts
index 419191e17e..29cac4a002 100644
--- a/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts
+++ b/packages/nodes-base/nodes/EmailReadImap/v1/EmailReadImapV1.node.ts
@@ -82,7 +82,7 @@ const versionDescription: INodeTypeDescription = {
activationHint:
"Once you’ve finished building your workflow, activate it to have it also listen continuously (you just won’t see those executions here).",
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
credentials: [
diff --git a/packages/nodes-base/nodes/EmailReadImap/v2/EmailReadImapV2.node.ts b/packages/nodes-base/nodes/EmailReadImap/v2/EmailReadImapV2.node.ts
index 796a269e88..bfb6d50ed3 100644
--- a/packages/nodes-base/nodes/EmailReadImap/v2/EmailReadImapV2.node.ts
+++ b/packages/nodes-base/nodes/EmailReadImap/v2/EmailReadImapV2.node.ts
@@ -86,7 +86,7 @@ const versionDescription: INodeTypeDescription = {
activationHint:
"Once you’ve finished building your workflow, activate it to have it also listen continuously (you just won’t see those executions here).",
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
credentials: [
diff --git a/packages/nodes-base/nodes/Form/v1/FormTriggerV1.node.ts b/packages/nodes-base/nodes/Form/v1/FormTriggerV1.node.ts
index b0363cce73..f68e0ac86d 100644
--- a/packages/nodes-base/nodes/Form/v1/FormTriggerV1.node.ts
+++ b/packages/nodes-base/nodes/Form/v1/FormTriggerV1.node.ts
@@ -27,7 +27,7 @@ const descriptionV1: INodeTypeDescription = {
defaults: {
name: 'n8n Form Trigger',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
webhooks: [
diff --git a/packages/nodes-base/nodes/Form/v2/FormTriggerV2.node.ts b/packages/nodes-base/nodes/Form/v2/FormTriggerV2.node.ts
index 8792d0d6a1..e6ba8c619d 100644
--- a/packages/nodes-base/nodes/Form/v2/FormTriggerV2.node.ts
+++ b/packages/nodes-base/nodes/Form/v2/FormTriggerV2.node.ts
@@ -38,7 +38,7 @@ const descriptionV2: INodeTypeDescription = {
defaults: {
name: 'n8n Form Trigger',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
webhooks: [
diff --git a/packages/nodes-base/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.ts b/packages/nodes-base/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.ts
index cb643737ee..72a07b2f64 100644
--- a/packages/nodes-base/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.ts
+++ b/packages/nodes-base/nodes/Google/Analytics/v1/GoogleAnalyticsV1.node.ts
@@ -1,4 +1,3 @@
-/* eslint-disable n8n-nodes-base/node-filename-against-convention */
import {
type IExecuteFunctions,
type IDataObject,
diff --git a/packages/nodes-base/nodes/Google/Chat/MessageInterface.ts b/packages/nodes-base/nodes/Google/Chat/MessageInterface.ts
index a03ab9f130..b2193f9820 100644
--- a/packages/nodes-base/nodes/Google/Chat/MessageInterface.ts
+++ b/packages/nodes-base/nodes/Google/Chat/MessageInterface.ts
@@ -32,9 +32,9 @@ export interface IUser {
isAnonymous?: boolean;
}
const enum Type {
- 'TYPE_UNSPECIFIED',
- 'HUMAN',
- 'BOT',
+ TYPE_UNSPECIFIED,
+ HUMAN,
+ BOT,
}
// // TODO: define other interfaces
diff --git a/packages/nodes-base/nodes/Google/Sheet/v2/helpers/GoogleSheet.ts b/packages/nodes-base/nodes/Google/Sheet/v2/helpers/GoogleSheet.ts
index fa96649464..c5f8a8dc79 100644
--- a/packages/nodes-base/nodes/Google/Sheet/v2/helpers/GoogleSheet.ts
+++ b/packages/nodes-base/nodes/Google/Sheet/v2/helpers/GoogleSheet.ts
@@ -485,8 +485,7 @@ export class GoogleSheet {
columnValuesList?: string[];
}) {
const decodedRange = this.getDecodedSheetRange(range);
- // prettier-ignore
- const keyRowRange = `${decodedRange.name}!${decodedRange.start?.column || ''}${keyRowIndex + 1}:${decodedRange.end?.column || ''}${keyRowIndex + 1}`;
+ const keyRowRange = `${decodedRange.name}!${decodedRange.start?.column || ''}${keyRowIndex + 1}:${decodedRange.end?.column || ''}${keyRowIndex + 1}`;
const sheetDatakeyRow = columnNamesList || (await this.getData(keyRowRange, valueRenderMode));
diff --git a/packages/nodes-base/nodes/Google/Sheet/v2/methods/listSearch.ts b/packages/nodes-base/nodes/Google/Sheet/v2/methods/listSearch.ts
index 36f18521e4..6c0c8b74ca 100644
--- a/packages/nodes-base/nodes/Google/Sheet/v2/methods/listSearch.ts
+++ b/packages/nodes-base/nodes/Google/Sheet/v2/methods/listSearch.ts
@@ -84,7 +84,6 @@ export async function sheetsSearch(
returnData.push({
name: sheet.properties!.title as string,
value: (sheet.properties!.sheetId as number) || 'gid=0',
- //prettier-ignore
url: `https://docs.google.com/spreadsheets/d/${spreadsheetId}/edit#gid=${sheet.properties!.sheetId}`,
});
}
diff --git a/packages/nodes-base/nodes/Interval/Interval.node.ts b/packages/nodes-base/nodes/Interval/Interval.node.ts
index be97325277..10d60b93c5 100644
--- a/packages/nodes-base/nodes/Interval/Interval.node.ts
+++ b/packages/nodes-base/nodes/Interval/Interval.node.ts
@@ -22,7 +22,7 @@ export class Interval implements INodeType {
name: 'Interval',
color: '#00FF00',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
properties: [
diff --git a/packages/nodes-base/nodes/InvoiceNinja/BankTransactionDescription.ts b/packages/nodes-base/nodes/InvoiceNinja/BankTransactionDescription.ts
new file mode 100644
index 0000000000..abf39ab493
--- /dev/null
+++ b/packages/nodes-base/nodes/InvoiceNinja/BankTransactionDescription.ts
@@ -0,0 +1,213 @@
+import type { INodeProperties } from 'n8n-workflow';
+
+export const bankTransactionOperations: INodeProperties[] = [
+ {
+ displayName: 'Operation',
+ name: 'operation',
+ type: 'options',
+ noDataExpression: true,
+ displayOptions: {
+ show: {
+ resource: ['bank_transaction'],
+ },
+ },
+ options: [
+ {
+ name: 'Create',
+ value: 'create',
+ description: 'Create a new bank transaction',
+ action: 'Create a bank transaction',
+ },
+ {
+ name: 'Delete',
+ value: 'delete',
+ description: 'Delete a bank transaction',
+ action: 'Delete a bank transaction',
+ },
+ {
+ name: 'Get',
+ value: 'get',
+ description: 'Get data of a bank transaction',
+ action: 'Get a bank transaction',
+ },
+ {
+ name: 'Get Many',
+ value: 'getAll',
+ description: 'Get data of many bank transactions',
+ action: 'Get many bank transactions',
+ },
+ {
+ name: 'Match Payment',
+ value: 'matchPayment',
+ description: 'Match payment to a bank transaction',
+ action: 'Match payment to a bank transaction',
+ },
+ ],
+ default: 'create',
+ },
+];
+
+export const bankTransactionFields: INodeProperties[] = [
+ /* -------------------------------------------------------------------------- */
+ /* bankTransaction:create */
+ /* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Additional Fields',
+ name: 'additionalFields',
+ type: 'collection',
+ placeholder: 'Add Field',
+ default: {},
+ displayOptions: {
+ show: {
+ operation: ['create'],
+ resource: ['bank_transaction'],
+ },
+ },
+ options: [
+ {
+ displayName: 'Amount',
+ name: 'amount',
+ type: 'number',
+ default: 0,
+ },
+ {
+ displayName: 'Bank Integration Name or ID',
+ name: 'bankIntegrationId',
+ type: 'options',
+ description:
+ 'Choose from the list, or specify an ID using an expression ',
+ typeOptions: {
+ loadOptionsMethod: 'getBankIntegrations',
+ },
+ default: '',
+ },
+ {
+ displayName: 'Base Type',
+ name: 'baseType',
+ type: 'options',
+ options: [
+ {
+ name: 'Deposit',
+ value: 'CREDIT',
+ },
+ {
+ name: 'Withdrawal',
+ value: 'DEBIT',
+ },
+ ],
+ default: '',
+ },
+ {
+ displayName: 'Date',
+ name: 'date',
+ type: 'dateTime',
+ default: '',
+ },
+ {
+ displayName: 'Description',
+ name: 'description',
+ type: 'string',
+ default: '',
+ },
+ ],
+ },
+ /* -------------------------------------------------------------------------- */
+ /* bankTransaction:delete */
+ /* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Bank Transaction ID',
+ name: 'bankTransactionId',
+ type: 'string',
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: ['bank_transaction'],
+ operation: ['delete'],
+ },
+ },
+ },
+ /* -------------------------------------------------------------------------- */
+ /* bankTransaction:get */
+ /* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Bank Transaction ID',
+ name: 'bankTransactionId',
+ type: 'string',
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: ['bank_transaction'],
+ operation: ['get'],
+ },
+ },
+ },
+ /* -------------------------------------------------------------------------- */
+ /* bankTransaction:getAll */
+ /* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Return All',
+ name: 'returnAll',
+ type: 'boolean',
+ displayOptions: {
+ show: {
+ resource: ['bank_transaction'],
+ operation: ['getAll'],
+ },
+ },
+ default: false,
+ description: 'Whether to return all results or only up to a given limit',
+ },
+ {
+ displayName: 'Limit',
+ name: 'limit',
+ type: 'number',
+ displayOptions: {
+ show: {
+ resource: ['bank_transaction'],
+ operation: ['getAll'],
+ returnAll: [false],
+ },
+ },
+ typeOptions: {
+ minValue: 1,
+ maxValue: 60,
+ },
+ default: 50,
+ description: 'Max number of results to return',
+ },
+ /* -------------------------------------------------------------------------- */
+ /* bankTransaction:matchPayment */
+ /* -------------------------------------------------------------------------- */
+ {
+ displayName: 'Bank Transaction ID',
+ name: 'bankTransactionId',
+ type: 'string',
+ default: '',
+ required: true,
+ displayOptions: {
+ show: {
+ resource: ['bank_transaction'],
+ operation: ['matchPayment'],
+ },
+ },
+ },
+ {
+ displayName: 'Payment Name or ID',
+ name: 'paymentId',
+ type: 'options',
+ description:
+ 'Choose from the list, or specify an ID using an expression ',
+ typeOptions: {
+ loadOptionsMethod: 'getPayments',
+ },
+ default: '',
+ displayOptions: {
+ show: {
+ resource: ['bank_transaction'],
+ operation: ['matchPayment'],
+ },
+ },
+ },
+];
diff --git a/packages/nodes-base/nodes/InvoiceNinja/BankTransactionInterface.ts b/packages/nodes-base/nodes/InvoiceNinja/BankTransactionInterface.ts
new file mode 100644
index 0000000000..735f339ab8
--- /dev/null
+++ b/packages/nodes-base/nodes/InvoiceNinja/BankTransactionInterface.ts
@@ -0,0 +1,9 @@
+export interface IBankTransaction {
+ amount?: number;
+ bank_integration_id?: number;
+ base_type?: string;
+ date?: string;
+ description?: string;
+ id?: string;
+ paymentId?: string;
+}
diff --git a/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts b/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts
index a23a7ff8c5..fd43eb8e86 100644
--- a/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts
+++ b/packages/nodes-base/nodes/InvoiceNinja/InvoiceNinja.node.ts
@@ -36,6 +36,10 @@ import { quoteFields, quoteOperations } from './QuoteDescription';
import type { IQuote } from './QuoteInterface';
import { isoCountryCodes } from '@utils/ISOCountryCodes';
+import { bankTransactionFields, bankTransactionOperations } from './BankTransactionDescription';
+
+import type { IBankTransaction } from './BankTransactionInterface';
+
export class InvoiceNinja implements INodeType {
description: INodeTypeDescription = {
displayName: 'Invoice Ninja',
@@ -107,6 +111,15 @@ export class InvoiceNinja implements INodeType {
type: 'options',
noDataExpression: true,
options: [
+ {
+ name: 'Bank Transaction',
+ value: 'bank_transaction',
+ displayOptions: {
+ show: {
+ apiVersion: ['v5'],
+ },
+ },
+ },
{
name: 'Client',
value: 'client',
@@ -146,6 +159,8 @@ export class InvoiceNinja implements INodeType {
...expenseFields,
...quoteOperations,
...quoteFields,
+ ...bankTransactionOperations,
+ ...bankTransactionFields,
],
};
@@ -255,6 +270,58 @@ export class InvoiceNinja implements INodeType {
}
return returnData;
},
+ // Get all the available bank integrations to display them to user so that they can
+ // select them easily
+ async getBankIntegrations(this: ILoadOptionsFunctions): Promise {
+ const returnData: INodePropertyOptions[] = [];
+ let banks = await invoiceNinjaApiRequestAllItems.call(
+ this,
+ 'data',
+ 'GET',
+ '/bank_integrations',
+ );
+ banks = banks.filter((e) => !e.is_deleted);
+ for (const bank of banks) {
+ const providerName = bank.provider_name as string;
+ const accountName = bank.bank_account_name as string;
+ const bankId = bank.id as string;
+ returnData.push({
+ name:
+ providerName != accountName
+ ? `${providerName} - ${accountName}`
+ : accountName || providerName,
+ value: bankId,
+ });
+ }
+ return returnData;
+ },
+ // Get all the available users to display them to user so that they can
+ // select them easily
+ async getPayments(this: ILoadOptionsFunctions): Promise {
+ const returnData: INodePropertyOptions[] = [];
+ const qs: IDataObject = {};
+ // Only select payments that can be matched to transactions
+ qs.match_transactions = true;
+ const payments = await invoiceNinjaApiRequestAllItems.call(
+ this,
+ 'data',
+ 'GET',
+ '/payments',
+ {},
+ qs,
+ );
+ for (const payment of payments) {
+ const paymentName = [payment.number, payment.date, payment.amount]
+ .filter((e) => e)
+ .join(' - ');
+ const paymentId = payment.id as string;
+ returnData.push({
+ name: paymentName,
+ value: paymentId,
+ });
+ }
+ return returnData;
+ },
},
};
@@ -858,6 +925,106 @@ export class InvoiceNinja implements INodeType {
responseData = responseData.data;
}
}
+ if (resource === 'bank_transaction') {
+ const resourceEndpoint = '/bank_transactions';
+ if (operation === 'create') {
+ const additionalFields = this.getNodeParameter('additionalFields', i);
+ const body: IBankTransaction = {};
+ if (additionalFields.amount) {
+ body.amount = additionalFields.amount as number;
+ }
+ if (additionalFields.baseType) {
+ body.base_type = additionalFields.baseType as string;
+ }
+ if (additionalFields.bankIntegrationId) {
+ body.bank_integration_id = additionalFields.bankIntegrationId as number;
+ }
+ if (additionalFields.client) {
+ body.date = additionalFields.date as string;
+ }
+ if (additionalFields.email) {
+ body.description = additionalFields.description as string;
+ }
+ responseData = await invoiceNinjaApiRequest.call(
+ this,
+ 'POST',
+ resourceEndpoint,
+ body as IDataObject,
+ );
+ responseData = responseData.data;
+ }
+ if (operation === 'get') {
+ const bankTransactionId = this.getNodeParameter('bankTransactionId', i) as string;
+ const options = this.getNodeParameter('options', i);
+ if (options.include) {
+ qs.include = options.include as string;
+ }
+ responseData = await invoiceNinjaApiRequest.call(
+ this,
+ 'GET',
+ `${resourceEndpoint}/${bankTransactionId}`,
+ {},
+ qs,
+ );
+ responseData = responseData.data;
+ }
+ if (operation === 'getAll') {
+ const returnAll = this.getNodeParameter('returnAll', 0);
+ const options = this.getNodeParameter('options', i);
+ if (options.include) {
+ qs.include = options.include as string;
+ }
+ if (options.invoiceNumber) {
+ qs.invoice_number = options.invoiceNumber as string;
+ }
+ if (returnAll) {
+ responseData = await invoiceNinjaApiRequestAllItems.call(
+ this,
+ 'data',
+ 'GET',
+ resourceEndpoint,
+ {},
+ qs,
+ );
+ } else {
+ qs.per_page = this.getNodeParameter('limit', 0);
+ responseData = await invoiceNinjaApiRequest.call(
+ this,
+ 'GET',
+ resourceEndpoint,
+ {},
+ qs,
+ );
+ responseData = responseData.data;
+ }
+ }
+ if (operation === 'delete') {
+ const bankTransactionId = this.getNodeParameter('bankTransactionId', i) as string;
+ responseData = await invoiceNinjaApiRequest.call(
+ this,
+ 'DELETE',
+ `${resourceEndpoint}/${bankTransactionId}`,
+ );
+ responseData = responseData.data;
+ }
+ if (operation === 'matchPayment') {
+ const bankTransactionId = this.getNodeParameter('bankTransactionId', i) as string;
+ const paymentId = this.getNodeParameter('paymentId', i) as string;
+ const body: IBankTransaction = {};
+ if (bankTransactionId) {
+ body.id = bankTransactionId as string;
+ }
+ if (paymentId) {
+ body.paymentId = paymentId as string;
+ }
+ responseData = await invoiceNinjaApiRequest.call(
+ this,
+ 'POST',
+ `${resourceEndpoint}/match`,
+ body as IDataObject,
+ );
+ }
+ }
if (resource === 'quote') {
const resourceEndpoint = apiVersion === 'v4' ? '/invoices' : '/quotes';
if (operation === 'create') {
@@ -983,7 +1150,7 @@ export class InvoiceNinja implements INodeType {
responseData = await invoiceNinjaApiRequest.call(
this,
'GET',
- `/quotes/${quoteId}/email`,
+ `${resourceEndpoint}/${quoteId}/email`,
);
}
}
@@ -1016,13 +1183,19 @@ export class InvoiceNinja implements INodeType {
this,
'data',
'GET',
- '/quotes',
+ resourceEndpoint,
{},
qs,
);
} else {
qs.per_page = this.getNodeParameter('limit', 0);
- responseData = await invoiceNinjaApiRequest.call(this, 'GET', '/quotes', {}, qs);
+ responseData = await invoiceNinjaApiRequest.call(
+ this,
+ 'GET',
+ resourceEndpoint,
+ {},
+ qs,
+ );
responseData = responseData.data;
}
}
diff --git a/packages/nodes-base/nodes/KoBoToolbox/KoBoToolboxTrigger.node.ts b/packages/nodes-base/nodes/KoBoToolbox/KoBoToolboxTrigger.node.ts
index 436f9d86a7..503c100741 100644
--- a/packages/nodes-base/nodes/KoBoToolbox/KoBoToolboxTrigger.node.ts
+++ b/packages/nodes-base/nodes/KoBoToolbox/KoBoToolboxTrigger.node.ts
@@ -144,9 +144,12 @@ export class KoBoToolboxTrigger implements INodeType {
const req = this.getRequestObject();
const formatOptions = this.getNodeParameter('formatOptions') as IDataObject;
- // prettier-ignore
const responseData = formatOptions.reformat
- ? formatSubmission(req.body as IDataObject, parseStringList(formatOptions.selectMask as string), parseStringList(formatOptions.numberMask as string))
+ ? formatSubmission(
+ req.body as IDataObject,
+ parseStringList(formatOptions.selectMask as string),
+ parseStringList(formatOptions.numberMask as string),
+ )
: req.body;
if (formatOptions.download) {
diff --git a/packages/nodes-base/nodes/Notion/shared/GenericFunctions.ts b/packages/nodes-base/nodes/Notion/shared/GenericFunctions.ts
index af27d2c4cb..1b6ba6563d 100644
--- a/packages/nodes-base/nodes/Notion/shared/GenericFunctions.ts
+++ b/packages/nodes-base/nodes/Notion/shared/GenericFunctions.ts
@@ -27,7 +27,6 @@ import { filters } from './descriptions/Filters';
function uuidValidateWithoutDashes(this: IExecuteFunctions, value: string) {
if (uuidValidate(value)) return true;
if (value.length == 32) {
- //prettier-ignore
const strWithDashes = `${value.slice(0, 8)}-${value.slice(8, 12)}-${value.slice(12, 16)}-${value.slice(16, 20)}-${value.slice(20)}`;
if (uuidValidate(strWithDashes)) return true;
}
@@ -309,7 +308,6 @@ export function formatBlocks(blocks: IDataObject[]) {
[block.type as string]: {
...(block.type === 'to_do' ? { checked: block.checked } : {}),
...(block.type === 'image' ? { type: 'external', external: { url: block.url } } : {}),
- // prettier-ignore,
...(!['image'].includes(block.type as string) ? getTextBlocks(block) : {}),
},
});
@@ -867,9 +865,12 @@ export type FileRecord = {
};
};
};
-// prettier-ignore
-export async function downloadFiles(this: IExecuteFunctions | IPollFunctions, records: FileRecord[], pairedItem?: IPairedItemData[]): Promise {
+export async function downloadFiles(
+ this: IExecuteFunctions | IPollFunctions,
+ records: FileRecord[],
+ pairedItem?: IPairedItemData[],
+): Promise {
const elements: INodeExecutionData[] = [];
for (const record of records) {
const element: INodeExecutionData = { json: {}, binary: {} };
@@ -887,10 +888,12 @@ export async function downloadFiles(this: IExecuteFunctions | IPollFunctions, re
'',
{},
{},
- file?.file?.url as string || file?.external?.url as string,
+ (file?.file?.url as string) || (file?.external?.url as string),
{ json: false, encoding: null },
);
- element.binary![`${key}_${index}`] = await this.helpers.prepareBinaryData(data as Buffer);
+ element.binary![`${key}_${index}`] = await this.helpers.prepareBinaryData(
+ data as Buffer,
+ );
}
}
}
diff --git a/packages/nodes-base/nodes/Postgres/v1/genericFunctions.ts b/packages/nodes-base/nodes/Postgres/v1/genericFunctions.ts
index 9420c427a1..834779d1a0 100644
--- a/packages/nodes-base/nodes/Postgres/v1/genericFunctions.ts
+++ b/packages/nodes-base/nodes/Postgres/v1/genericFunctions.ts
@@ -536,8 +536,10 @@ export async function pgUpdate(
} else {
const where =
' WHERE ' +
- // eslint-disable-next-line n8n-local-rules/no-interpolation-in-regular-string
- updateKeys.map((entry) => pgp.as.name(entry.name) + ' = ${' + entry.prop + '}').join(' AND ');
+ updateKeys
+ // eslint-disable-next-line n8n-local-rules/no-interpolation-in-regular-string
+ .map((entry) => pgp.as.name(entry.name) + ' = ${' + entry.prop + '}')
+ .join(' AND ');
if (mode === 'transaction') {
return await db.tx(async (t) => {
const result: IDataObject[] = [];
@@ -664,8 +666,10 @@ export async function pgUpdateV2(
} else {
const where =
' WHERE ' +
- // eslint-disable-next-line n8n-local-rules/no-interpolation-in-regular-string
- updateKeys.map((entry) => pgp.as.name(entry.name) + ' = ${' + entry.prop + '}').join(' AND ');
+ updateKeys
+ // eslint-disable-next-line n8n-local-rules/no-interpolation-in-regular-string
+ .map((entry) => pgp.as.name(entry.name) + ' = ${' + entry.prop + '}')
+ .join(' AND ');
if (mode === 'transaction') {
return await db.tx(async (t) => {
const result: IDataObject[] = [];
diff --git a/packages/nodes-base/nodes/QuickBase/GenericFunctions.ts b/packages/nodes-base/nodes/QuickBase/GenericFunctions.ts
index 73d8232aa6..0f2cbee6db 100644
--- a/packages/nodes-base/nodes/QuickBase/GenericFunctions.ts
+++ b/packages/nodes-base/nodes/QuickBase/GenericFunctions.ts
@@ -62,9 +62,10 @@ export async function quickbaseApiRequest(
}
}
-//@ts-ignore
-// prettier-ignore
-export async function getFieldsObject(this: IHookFunctions | ILoadOptionsFunctions | IExecuteFunctions, tableId: string): any {
+export async function getFieldsObject(
+ this: IHookFunctions | ILoadOptionsFunctions | IExecuteFunctions,
+ tableId: string,
+): Promise {
const fieldsLabelKey: { [key: string]: number } = {};
const fieldsIdKey: { [key: number]: string } = {};
const data = await quickbaseApiRequest.call(this, 'GET', '/fields', {}, { tableId });
diff --git a/packages/nodes-base/nodes/RssFeedRead/RssFeedReadTrigger.node.ts b/packages/nodes-base/nodes/RssFeedRead/RssFeedReadTrigger.node.ts
index b956a4e18d..a0607f3b86 100644
--- a/packages/nodes-base/nodes/RssFeedRead/RssFeedReadTrigger.node.ts
+++ b/packages/nodes-base/nodes/RssFeedRead/RssFeedReadTrigger.node.ts
@@ -9,6 +9,11 @@ import { NodeConnectionType, NodeOperationError } from 'n8n-workflow';
import Parser from 'rss-parser';
import moment from 'moment-timezone';
+interface PollData {
+ lastItemDate?: string;
+ lastTimeChecked?: string;
+}
+
export class RssFeedReadTrigger implements INodeType {
description: INodeTypeDescription = {
displayName: 'RSS Feed Trigger',
@@ -39,12 +44,12 @@ export class RssFeedReadTrigger implements INodeType {
};
async poll(this: IPollFunctions): Promise {
- const pollData = this.getWorkflowStaticData('node');
+ const pollData = this.getWorkflowStaticData('node') as PollData;
const feedUrl = this.getNodeParameter('feedUrl') as string;
- const now = moment().utc().format();
- const dateToCheck =
- (pollData.lastItemDate as string) || (pollData.lastTimeChecked as string) || now;
+ const dateToCheck = Date.parse(
+ pollData.lastItemDate ?? pollData.lastTimeChecked ?? moment().utc().format(),
+ );
if (!feedUrl) {
throw new NodeOperationError(this.getNode(), 'The parameter "URL" has to be set!');
@@ -73,14 +78,15 @@ export class RssFeedReadTrigger implements INodeType {
return [this.helpers.returnJsonArray(feed.items[0])];
}
feed.items.forEach((item) => {
- if (Date.parse(item.isoDate as string) > Date.parse(dateToCheck)) {
+ if (Date.parse(item.isoDate as string) > dateToCheck) {
returnData.push(item);
}
});
- const maxIsoDate = feed.items.reduce((a, b) =>
- new Date(a.isoDate as string) > new Date(b.isoDate as string) ? a : b,
- ).isoDate;
- pollData.lastItemDate = maxIsoDate;
+
+ if (feed.items.length) {
+ const maxIsoDate = Math.max(...feed.items.map(({ isoDate }) => Date.parse(isoDate!)));
+ pollData.lastItemDate = new Date(maxIsoDate).toISOString();
+ }
}
if (Array.isArray(returnData) && returnData.length !== 0) {
diff --git a/packages/nodes-base/nodes/RssFeedRead/test/RssFeedRead.test.ts b/packages/nodes-base/nodes/RssFeedRead/test/RssFeedRead.test.ts
new file mode 100644
index 0000000000..0f7b13fbe9
--- /dev/null
+++ b/packages/nodes-base/nodes/RssFeedRead/test/RssFeedRead.test.ts
@@ -0,0 +1,64 @@
+import { mock } from 'jest-mock-extended';
+import type { IPollFunctions } from 'n8n-workflow';
+import Parser from 'rss-parser';
+import { returnJsonArray } from 'n8n-core';
+import { RssFeedReadTrigger } from '../RssFeedReadTrigger.node';
+
+jest.mock('rss-parser');
+
+const now = new Date('2024-02-01T01:23:45.678Z');
+jest.useFakeTimers({ now });
+
+describe('RssFeedReadTrigger', () => {
+ describe('poll', () => {
+ const feedUrl = 'https://example.com/feed';
+ const lastItemDate = '2022-01-01T00:00:00.000Z';
+ const newItemDate = '2022-01-02T00:00:00.000Z';
+
+ const node = new RssFeedReadTrigger();
+ const pollFunctions = mock({
+ helpers: mock({ returnJsonArray }),
+ });
+
+ it('should throw an error if the feed URL is empty', async () => {
+ pollFunctions.getNodeParameter.mockReturnValue('');
+
+ await expect(node.poll.call(pollFunctions)).rejects.toThrowError();
+
+ expect(pollFunctions.getNodeParameter).toHaveBeenCalledWith('feedUrl');
+ expect(Parser.prototype.parseURL).not.toHaveBeenCalled();
+ });
+
+ it('should return new items from the feed', async () => {
+ const pollData = mock({ lastItemDate });
+ pollFunctions.getNodeParameter.mockReturnValue(feedUrl);
+ pollFunctions.getWorkflowStaticData.mockReturnValue(pollData);
+ (Parser.prototype.parseURL as jest.Mock).mockResolvedValue({
+ items: [{ isoDate: lastItemDate }, { isoDate: newItemDate }],
+ });
+
+ const result = await node.poll.call(pollFunctions);
+
+ expect(result).toEqual([[{ json: { isoDate: newItemDate } }]]);
+ expect(pollFunctions.getWorkflowStaticData).toHaveBeenCalledWith('node');
+ expect(pollFunctions.getNodeParameter).toHaveBeenCalledWith('feedUrl');
+ expect(Parser.prototype.parseURL).toHaveBeenCalledWith(feedUrl);
+ expect(pollData.lastItemDate).toEqual(newItemDate);
+ });
+
+ it('should return null if the feed is empty', async () => {
+ const pollData = mock({ lastItemDate });
+ pollFunctions.getNodeParameter.mockReturnValue(feedUrl);
+ pollFunctions.getWorkflowStaticData.mockReturnValue(pollData);
+ (Parser.prototype.parseURL as jest.Mock).mockResolvedValue({ items: [] });
+
+ const result = await node.poll.call(pollFunctions);
+
+ expect(result).toEqual(null);
+ expect(pollFunctions.getWorkflowStaticData).toHaveBeenCalledWith('node');
+ expect(pollFunctions.getNodeParameter).toHaveBeenCalledWith('feedUrl');
+ expect(Parser.prototype.parseURL).toHaveBeenCalledWith(feedUrl);
+ expect(pollData.lastItemDate).toEqual(lastItemDate);
+ });
+ });
+});
diff --git a/packages/nodes-base/nodes/RssFeedRead/test/node/RssFeedRead.test.ts b/packages/nodes-base/nodes/RssFeedRead/test/node/RssFeedRead.test.ts
index 62806e448c..7238dcfa00 100644
--- a/packages/nodes-base/nodes/RssFeedRead/test/node/RssFeedRead.test.ts
+++ b/packages/nodes-base/nodes/RssFeedRead/test/node/RssFeedRead.test.ts
@@ -4,7 +4,7 @@ import { setup, equalityTest, workflowToTests, getWorkflowFilenames } from '@tes
// eslint-disable-next-line n8n-local-rules/no-unneeded-backticks
const feed = ` http://example.com/RSS for Node Thu, 09 Feb 2023 13:40:32 GMT Thu, 09 Feb 2023 13:40:00 GMT 1 http://example.com/test/1675950000http://example.com/test/1675950000 Thu, 09 Feb 2023 13:40:00 GMT http://example.com/test/1675949940http://example.com/test/1675949940 Thu, 09 Feb 2023 13:39:00 GMT http://example.com/test/1675949880http://example.com/test/1675949880 Thu, 09 Feb 2023 13:38:00 GMT `;
-describe('Test HTTP Request Node', () => {
+describe('Test RSS Feed Trigger Node', () => {
const workflows = getWorkflowFilenames(__dirname);
const tests = workflowToTests(workflows);
diff --git a/packages/nodes-base/nodes/SplitInBatches/v2/SplitInBatchesV2.node.ts b/packages/nodes-base/nodes/SplitInBatches/v2/SplitInBatchesV2.node.ts
index f80095e5f3..d6c8b7fbb3 100644
--- a/packages/nodes-base/nodes/SplitInBatches/v2/SplitInBatchesV2.node.ts
+++ b/packages/nodes-base/nodes/SplitInBatches/v2/SplitInBatchesV2.node.ts
@@ -20,7 +20,7 @@ export class SplitInBatchesV2 implements INodeType {
color: '#007755',
},
inputs: [NodeConnectionType.Main],
- // eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
+
outputs: [NodeConnectionType.Main, NodeConnectionType.Main],
outputNames: ['loop', 'done'],
properties: [
diff --git a/packages/nodes-base/nodes/SplitInBatches/v3/SplitInBatchesV3.node.ts b/packages/nodes-base/nodes/SplitInBatches/v3/SplitInBatchesV3.node.ts
index fde5bc9d33..5c6edcc59d 100644
--- a/packages/nodes-base/nodes/SplitInBatches/v3/SplitInBatchesV3.node.ts
+++ b/packages/nodes-base/nodes/SplitInBatches/v3/SplitInBatchesV3.node.ts
@@ -21,7 +21,7 @@ export class SplitInBatchesV3 implements INodeType {
color: '#007755',
},
inputs: [NodeConnectionType.Main],
- // eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
+
outputs: [NodeConnectionType.Main, NodeConnectionType.Main],
outputNames: ['done', 'loop'],
properties: [
diff --git a/packages/nodes-base/nodes/Start/Start.node.ts b/packages/nodes-base/nodes/Start/Start.node.ts
index b59c225b0a..4405e9def7 100644
--- a/packages/nodes-base/nodes/Start/Start.node.ts
+++ b/packages/nodes-base/nodes/Start/Start.node.ts
@@ -20,7 +20,7 @@ export class Start implements INodeType {
name: 'Start',
color: '#00e000',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
properties: [
diff --git a/packages/nodes-base/nodes/StickyNote/StickyNote.node.ts b/packages/nodes-base/nodes/StickyNote/StickyNote.node.ts
index 06106e0dad..3be50c00cb 100644
--- a/packages/nodes-base/nodes/StickyNote/StickyNote.node.ts
+++ b/packages/nodes-base/nodes/StickyNote/StickyNote.node.ts
@@ -17,9 +17,9 @@ export class StickyNote implements INodeType {
name: 'Sticky Note',
color: '#FFD233',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
- // eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
+
outputs: [],
properties: [
{
diff --git a/packages/nodes-base/nodes/StopAndError/StopAndError.node.ts b/packages/nodes-base/nodes/StopAndError/StopAndError.node.ts
index 4c44504920..7007f81530 100644
--- a/packages/nodes-base/nodes/StopAndError/StopAndError.node.ts
+++ b/packages/nodes-base/nodes/StopAndError/StopAndError.node.ts
@@ -26,7 +26,7 @@ export class StopAndError implements INodeType {
color: '#ff0000',
},
inputs: [NodeConnectionType.Main],
- // eslint-disable-next-line n8n-nodes-base/node-class-description-outputs-wrong
+
outputs: [],
properties: [
{
diff --git a/packages/nodes-base/nodes/Telegram/GenericFunctions.ts b/packages/nodes-base/nodes/Telegram/GenericFunctions.ts
index cbffe21d5f..309b23c176 100644
--- a/packages/nodes-base/nodes/Telegram/GenericFunctions.ts
+++ b/packages/nodes-base/nodes/Telegram/GenericFunctions.ts
@@ -158,9 +158,12 @@ export function addAdditionalFields(
}
sendRows.push(sendButtonData);
}
+
// @ts-ignore
- // prettier-ignore
- ((body.reply_markup as ITelegramInlineReply | ITelegramReplyKeyboard)[setParameterName] as ITelegramKeyboardButton[][]).push(sendRows);
+ const array = (body.reply_markup as ITelegramInlineReply | ITelegramReplyKeyboard)[
+ setParameterName
+ ] as ITelegramKeyboardButton[][];
+ array.push(sendRows);
}
}
} else if (replyMarkupOption === 'forceReply') {
diff --git a/packages/nodes-base/nodes/TheHive/interfaces/ObservableInterface.ts b/packages/nodes-base/nodes/TheHive/interfaces/ObservableInterface.ts
index cb35df2189..da792ba07a 100644
--- a/packages/nodes-base/nodes/TheHive/interfaces/ObservableInterface.ts
+++ b/packages/nodes-base/nodes/TheHive/interfaces/ObservableInterface.ts
@@ -5,19 +5,19 @@ export const enum ObservableStatus {
DELETED = 'Deleted',
}
export const enum ObservableDataType {
- 'domain' = 'domain',
- 'file' = 'file',
- 'filename' = 'filename',
- 'fqdn' = 'fqdn',
- 'hash' = 'hash',
- 'ip' = 'ip',
- 'mail' = 'mail',
- 'mail_subject' = 'mail_subject',
- 'other' = 'other',
- 'regexp' = 'regexp',
- 'registry' = 'registry',
- 'uri_path' = 'uri_path',
- 'url' = 'url',
+ domain = 'domain',
+ file = 'file',
+ filename = 'filename',
+ fqdn = 'fqdn',
+ hash = 'hash',
+ ip = 'ip',
+ mail = 'mail',
+ mail_subject = 'mail_subject',
+ other = 'other',
+ regexp = 'regexp',
+ registry = 'registry',
+ uri_path = 'uri_path',
+ url = 'url',
'user-agent' = 'user-agent',
}
diff --git a/packages/nodes-base/nodes/Webflow/V1/WebflowTriggerV1.node.ts b/packages/nodes-base/nodes/Webflow/V1/WebflowTriggerV1.node.ts
index 87fafeffd7..ab7f7df9f2 100644
--- a/packages/nodes-base/nodes/Webflow/V1/WebflowTriggerV1.node.ts
+++ b/packages/nodes-base/nodes/Webflow/V1/WebflowTriggerV1.node.ts
@@ -26,7 +26,7 @@ export class WebflowTriggerV1 implements INodeType {
defaults: {
name: 'Webflow Trigger',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
credentials: [
diff --git a/packages/nodes-base/nodes/Webflow/V2/WebflowTriggerV2.node.ts b/packages/nodes-base/nodes/Webflow/V2/WebflowTriggerV2.node.ts
index 0038f0bd87..618f359fc5 100644
--- a/packages/nodes-base/nodes/Webflow/V2/WebflowTriggerV2.node.ts
+++ b/packages/nodes-base/nodes/Webflow/V2/WebflowTriggerV2.node.ts
@@ -26,7 +26,7 @@ export class WebflowTriggerV2 implements INodeType {
defaults: {
name: 'Webflow Trigger',
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: [NodeConnectionType.Main],
credentials: [
diff --git a/packages/nodes-base/nodes/Webhook/Webhook.node.ts b/packages/nodes-base/nodes/Webhook/Webhook.node.ts
index a237ce9ada..9938f4eaa1 100644
--- a/packages/nodes-base/nodes/Webhook/Webhook.node.ts
+++ b/packages/nodes-base/nodes/Webhook/Webhook.node.ts
@@ -65,7 +65,7 @@ export class Webhook extends Node {
activationHint:
"Once you've finished building your workflow, run it without having to click this button by using the production webhook URL.",
},
- // eslint-disable-next-line n8n-nodes-base/node-class-description-inputs-wrong-regular-node
+
inputs: [],
outputs: `={{(${configuredOutputs})($parameter)}}`,
credentials: credentialsProperty(this.authPropertyName),
diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json
index d1a16ef2c6..053eb4abeb 100644
--- a/packages/nodes-base/package.json
+++ b/packages/nodes-base/package.json
@@ -9,7 +9,8 @@
"typecheck": "tsc --noEmit",
"build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && pnpm n8n-copy-icons && pnpm n8n-generate-translations && pnpm build:metadata",
"build:metadata": "pnpm n8n-generate-known && pnpm n8n-generate-ui-types",
- "format": "prettier --write . --ignore-path ../../.prettierignore",
+ "format": "biome format --write .",
+ "format:check": "biome ci .",
"lint": "eslint . --quiet && node ./scripts/validate-load-options-methods.js",
"lintfix": "eslint . --fix",
"watch": "tsc-watch -p tsconfig.build.json --onCompilationComplete \"tsc-alias -p tsconfig.build.json\" --onSuccess \"pnpm n8n-generate-ui-types\"",
diff --git a/packages/nodes-base/utils/descriptions.ts b/packages/nodes-base/utils/descriptions.ts
index d2fa59ac11..65deaaf6ac 100644
--- a/packages/nodes-base/utils/descriptions.ts
+++ b/packages/nodes-base/utils/descriptions.ts
@@ -43,7 +43,6 @@ export const looseTypeValidationProperty: INodeProperties = {
};
export const appendAttributionOption: INodeProperties = {
- // eslint-disable-next-line n8n-nodes-base/node-param-display-name-miscased
displayName: 'Append n8n Attribution',
name: 'appendAttribution',
type: 'boolean',
diff --git a/packages/workflow/.eslintrc.js b/packages/workflow/.eslintrc.js
index 32422b2846..fa81226338 100644
--- a/packages/workflow/.eslintrc.js
+++ b/packages/workflow/.eslintrc.js
@@ -12,7 +12,6 @@ module.exports = {
complexity: 'error',
// TODO: remove these
- 'import/order': 'off',
'@typescript-eslint/no-base-to-string': 'warn',
'@typescript-eslint/no-explicit-any': 'warn',
'@typescript-eslint/no-redundant-type-constituents': 'warn',
diff --git a/packages/workflow/package.json b/packages/workflow/package.json
index 723994f917..be6eae2ba6 100644
--- a/packages/workflow/package.json
+++ b/packages/workflow/package.json
@@ -18,7 +18,8 @@
"dev": "pnpm watch",
"typecheck": "tsc --noEmit",
"build": "tsc -p tsconfig.build.json",
- "format": "prettier --write . --ignore-path ../../.prettierignore",
+ "format": "biome format --write .",
+ "format:check": "biome ci .",
"lint": "eslint . --quiet",
"lintfix": "eslint . --fix",
"watch": "tsc -p tsconfig.build.json --watch",
diff --git a/packages/workflow/src/Authentication.ts b/packages/workflow/src/Authentication.ts
deleted file mode 100644
index 05fec7b4bd..0000000000
--- a/packages/workflow/src/Authentication.ts
+++ /dev/null
@@ -1 +0,0 @@
-export type AuthenticationMethod = 'email' | 'ldap' | 'saml';
diff --git a/packages/workflow/src/ErrorReporterProxy.ts b/packages/workflow/src/ErrorReporterProxy.ts
index b878fcedf0..8a6d568d24 100644
--- a/packages/workflow/src/ErrorReporterProxy.ts
+++ b/packages/workflow/src/ErrorReporterProxy.ts
@@ -1,5 +1,5 @@
-import * as Logger from './LoggerProxy';
import { ApplicationError, type ReportingOptions } from './errors/application.error';
+import * as Logger from './LoggerProxy';
interface ErrorReporter {
report: (error: Error | string, options?: ReportingOptions) => void;
diff --git a/packages/workflow/src/Expression.ts b/packages/workflow/src/Expression.ts
index 018a8e9e24..dc7c661b56 100644
--- a/packages/workflow/src/Expression.ts
+++ b/packages/workflow/src/Expression.ts
@@ -1,6 +1,15 @@
-import { DateTime, Duration, Interval } from 'luxon';
import * as tmpl from '@n8n_io/riot-tmpl';
+import { DateTime, Duration, Interval } from 'luxon';
+import { ApplicationError } from './errors/application.error';
+import { ExpressionExtensionError } from './errors/expression-extension.error';
+import { ExpressionError } from './errors/expression.error';
+import { evaluateExpression, setErrorHandler } from './ExpressionEvaluatorProxy';
+import { sanitizer, sanitizerName } from './ExpressionSandboxing';
+import { extend, extendOptional } from './Extensions';
+import { extendSyntax } from './Extensions/ExpressionExtension';
+import { extendedFunctions } from './Extensions/ExtendedFunctions';
+import { getGlobalState } from './GlobalState';
import type {
IDataObject,
IExecuteData,
@@ -15,18 +24,8 @@ import type {
NodeParameterValueType,
WorkflowExecuteMode,
} from './Interfaces';
-import { ExpressionError } from './errors/expression.error';
-import { ExpressionExtensionError } from './errors/expression-extension.error';
-import { WorkflowDataProxy } from './WorkflowDataProxy';
import type { Workflow } from './Workflow';
-
-import { extend, extendOptional } from './Extensions';
-import { extendedFunctions } from './Extensions/ExtendedFunctions';
-import { extendSyntax } from './Extensions/ExpressionExtension';
-import { evaluateExpression, setErrorHandler } from './ExpressionEvaluatorProxy';
-import { getGlobalState } from './GlobalState';
-import { ApplicationError } from './errors/application.error';
-import { sanitizer, sanitizerName } from './ExpressionSandboxing';
+import { WorkflowDataProxy } from './WorkflowDataProxy';
const IS_FRONTEND_IN_DEV_MODE =
typeof process === 'object' &&
diff --git a/packages/workflow/src/ExpressionEvaluatorProxy.ts b/packages/workflow/src/ExpressionEvaluatorProxy.ts
index 74d5c46e8f..37dec8af51 100644
--- a/packages/workflow/src/ExpressionEvaluatorProxy.ts
+++ b/packages/workflow/src/ExpressionEvaluatorProxy.ts
@@ -1,9 +1,10 @@
-import * as tmpl from '@n8n_io/riot-tmpl';
import type { ReturnValue, TmplDifference } from '@n8n/tournament';
import { Tournament } from '@n8n/tournament';
+import * as tmpl from '@n8n_io/riot-tmpl';
+
+import { PrototypeSanitizer } from './ExpressionSandboxing';
import type { ExpressionEvaluatorType } from './Interfaces';
import * as LoggerProxy from './LoggerProxy';
-import { PrototypeSanitizer } from './ExpressionSandboxing';
type Evaluator = (expr: string, data: unknown) => tmpl.ReturnValue;
type ErrorHandler = (error: Error) => void;
diff --git a/packages/workflow/src/ExpressionSandboxing.ts b/packages/workflow/src/ExpressionSandboxing.ts
index 8240f8babb..7562e8efa2 100644
--- a/packages/workflow/src/ExpressionSandboxing.ts
+++ b/packages/workflow/src/ExpressionSandboxing.ts
@@ -1,4 +1,5 @@
import { type ASTAfterHook, astBuilders as b, astVisit } from '@n8n/tournament';
+
import { ExpressionError } from './errors';
const forbiddenMembers = ['__proto__', 'prototype', 'constructor', 'getPrototypeOf'];
diff --git a/packages/workflow/src/Extensions/ArrayExtensions.ts b/packages/workflow/src/Extensions/ArrayExtensions.ts
index a97049ece3..cd58d735f6 100644
--- a/packages/workflow/src/Extensions/ArrayExtensions.ts
+++ b/packages/workflow/src/Extensions/ArrayExtensions.ts
@@ -1,10 +1,10 @@
import deepEqual from 'deep-equal';
import uniqWith from 'lodash/uniqWith';
-import { ExpressionError } from '../errors/expression.error';
-import { ExpressionExtensionError } from '../errors/expression-extension.error';
import type { Extension, ExtensionMap } from './Extensions';
import { compact as oCompact } from './ObjectExtensions';
+import { ExpressionExtensionError } from '../errors/expression-extension.error';
+import { ExpressionError } from '../errors/expression.error';
import { randomInt } from '../utils';
function first(value: unknown[]): unknown {
diff --git a/packages/workflow/src/Extensions/DateExtensions.ts b/packages/workflow/src/Extensions/DateExtensions.ts
index 8c38fc35bf..e6e721c74c 100644
--- a/packages/workflow/src/Extensions/DateExtensions.ts
+++ b/packages/workflow/src/Extensions/DateExtensions.ts
@@ -1,5 +1,3 @@
-import { ExpressionExtensionError } from '../errors/expression-extension.error';
-
import { DateTime } from 'luxon';
import type {
DateTimeUnit,
@@ -8,9 +6,11 @@ import type {
LocaleOptions,
WeekdayNumbers,
} from 'luxon';
+
import type { ExtensionMap } from './Extensions';
-import { convertToDateTime } from './utils';
import { toDateTime as stringToDateTime } from './StringExtensions';
+import { convertToDateTime } from './utils';
+import { ExpressionExtensionError } from '../errors/expression-extension.error';
const durationUnits = [
'milliseconds',
diff --git a/packages/workflow/src/Extensions/ExpressionExtension.ts b/packages/workflow/src/Extensions/ExpressionExtension.ts
index 615e793ecc..2c8d745bd8 100644
--- a/packages/workflow/src/Extensions/ExpressionExtension.ts
+++ b/packages/workflow/src/Extensions/ExpressionExtension.ts
@@ -1,23 +1,22 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
-import { DateTime } from 'luxon';
-import { ExpressionExtensionError } from '../errors/expression-extension.error';
-import { parse, visit, types, print } from 'recast';
-import { getOption } from 'recast/lib/util';
+import type { ExpressionKind } from 'ast-types/gen/kinds';
import type { Config as EsprimaConfig } from 'esprima-next';
import { parse as esprimaParse } from 'esprima-next';
+import { DateTime } from 'luxon';
+import { parse, visit, types, print } from 'recast';
+import { getOption } from 'recast/lib/util';
import { arrayExtensions } from './ArrayExtensions';
-import { dateExtensions } from './DateExtensions';
-import { numberExtensions } from './NumberExtensions';
-import { stringExtensions } from './StringExtensions';
-import { objectExtensions } from './ObjectExtensions';
-import type { ExpressionKind } from 'ast-types/gen/kinds';
-
-import type { ExpressionChunk, ExpressionCode } from './ExpressionParser';
-import { joinExpression, splitExpression } from './ExpressionParser';
import { booleanExtensions } from './BooleanExtensions';
+import { dateExtensions } from './DateExtensions';
+import { joinExpression, splitExpression } from './ExpressionParser';
+import type { ExpressionChunk, ExpressionCode } from './ExpressionParser';
import type { ExtensionMap } from './Extensions';
+import { numberExtensions } from './NumberExtensions';
+import { objectExtensions } from './ObjectExtensions';
+import { stringExtensions } from './StringExtensions';
import { checkIfValueDefinedOrThrow } from './utils';
+import { ExpressionExtensionError } from '../errors/expression-extension.error';
const EXPRESSION_EXTENDER = 'extend';
const EXPRESSION_EXTENDER_OPTIONAL = 'extendOptional';
diff --git a/packages/workflow/src/Extensions/ExtendedFunctions.ts b/packages/workflow/src/Extensions/ExtendedFunctions.ts
index 091cdc8b0c..75ad05fd2e 100644
--- a/packages/workflow/src/Extensions/ExtendedFunctions.ts
+++ b/packages/workflow/src/Extensions/ExtendedFunctions.ts
@@ -1,6 +1,6 @@
-import { ExpressionError } from '../errors/expression.error';
-import { ExpressionExtensionError } from '../errors/expression-extension.error';
import { average as aAverage } from './ArrayExtensions';
+import { ExpressionExtensionError } from '../errors/expression-extension.error';
+import { ExpressionError } from '../errors/expression.error';
const min = Math.min;
const max = Math.max;
diff --git a/packages/workflow/src/Extensions/NumberExtensions.ts b/packages/workflow/src/Extensions/NumberExtensions.ts
index b13520be4d..7fc5a97e3e 100644
--- a/packages/workflow/src/Extensions/NumberExtensions.ts
+++ b/packages/workflow/src/Extensions/NumberExtensions.ts
@@ -2,8 +2,9 @@
* @jest-environment jsdom
*/
import { DateTime } from 'luxon';
-import { ExpressionExtensionError } from '../errors/expression-extension.error';
+
import type { ExtensionMap } from './Extensions';
+import { ExpressionExtensionError } from '../errors/expression-extension.error';
function format(value: number, extraArgs: unknown[]): string {
const [locales = 'en-US', config = {}] = extraArgs as [
diff --git a/packages/workflow/src/Extensions/ObjectExtensions.ts b/packages/workflow/src/Extensions/ObjectExtensions.ts
index 8970318e1c..58759890ad 100644
--- a/packages/workflow/src/Extensions/ObjectExtensions.ts
+++ b/packages/workflow/src/Extensions/ObjectExtensions.ts
@@ -1,5 +1,5 @@
-import { ExpressionExtensionError } from '../errors/expression-extension.error';
import type { ExtensionMap } from './Extensions';
+import { ExpressionExtensionError } from '../errors/expression-extension.error';
function isEmpty(value: object): boolean {
return Object.keys(value).length === 0;
diff --git a/packages/workflow/src/Extensions/StringExtensions.ts b/packages/workflow/src/Extensions/StringExtensions.ts
index 8b4e025bf6..4f42b546da 100644
--- a/packages/workflow/src/Extensions/StringExtensions.ts
+++ b/packages/workflow/src/Extensions/StringExtensions.ts
@@ -1,13 +1,14 @@
-import SHA from 'jssha';
-import MD5 from 'md5';
import { toBase64, fromBase64 } from 'js-base64';
-import { titleCase } from 'title-case';
-import type { Extension, ExtensionMap } from './Extensions';
-import { transliterate } from 'transliteration';
-import { ExpressionExtensionError } from '../errors/expression-extension.error';
+import SHA from 'jssha';
import { DateTime } from 'luxon';
-import { tryToParseDateTime } from '../TypeValidation';
+import MD5 from 'md5';
+import { titleCase } from 'title-case';
+import { transliterate } from 'transliteration';
+
+import type { Extension, ExtensionMap } from './Extensions';
import { toDateTime as numberToDateTime } from './NumberExtensions';
+import { ExpressionExtensionError } from '../errors/expression-extension.error';
+import { tryToParseDateTime } from '../TypeValidation';
export const SupportedHashAlgorithms = [
'md5',
diff --git a/packages/workflow/src/Extensions/utils.ts b/packages/workflow/src/Extensions/utils.ts
index e56d37a691..1e8509db40 100644
--- a/packages/workflow/src/Extensions/utils.ts
+++ b/packages/workflow/src/Extensions/utils.ts
@@ -1,4 +1,5 @@
import { DateTime } from 'luxon';
+
import { ExpressionExtensionError } from '../errors/expression-extension.error';
// Utility functions and type guards for expression extensions
diff --git a/packages/workflow/src/Interfaces.ts b/packages/workflow/src/Interfaces.ts
index 1ca35089b7..17f24c3096 100644
--- a/packages/workflow/src/Interfaces.ts
+++ b/packages/workflow/src/Interfaces.ts
@@ -1,29 +1,28 @@
/* eslint-disable @typescript-eslint/no-explicit-any */
+import type { CallbackManager as CallbackManagerLC } from '@langchain/core/callbacks/manager';
+import type { AxiosProxyConfig } from 'axios';
import type * as express from 'express';
import type FormData from 'form-data';
import type { PathLike } from 'fs';
import type { IncomingHttpHeaders } from 'http';
-import type { SecureContextOptions } from 'tls';
-import type { Readable } from 'stream';
-import type { URLSearchParams } from 'url';
import type { RequestBodyMatcher } from 'nock';
import type { Client as SSHClient } from 'ssh2';
+import type { Readable } from 'stream';
+import type { SecureContextOptions } from 'tls';
+import type { URLSearchParams } from 'url';
-import type { AuthenticationMethod } from './Authentication';
import type { CODE_EXECUTION_MODES, CODE_LANGUAGES, LOG_LEVELS } from './Constants';
import type { IDeferredPromise } from './DeferredPromise';
-import type { ExecutionStatus } from './ExecutionStatus';
+import type { ExecutionCancelledError } from './errors';
import type { ExpressionError } from './errors/expression.error';
-import type { Workflow } from './Workflow';
+import type { NodeApiError } from './errors/node-api.error';
+import type { NodeOperationError } from './errors/node-operation.error';
import type { WorkflowActivationError } from './errors/workflow-activation.error';
import type { WorkflowOperationError } from './errors/workflow-operation.error';
+import type { ExecutionStatus } from './ExecutionStatus';
+import type { Workflow } from './Workflow';
import type { WorkflowHooks } from './WorkflowHooks';
-import type { ExecutionCancelledError } from './errors';
-import type { NodeOperationError } from './errors/node-operation.error';
-import type { NodeApiError } from './errors/node-api.error';
-import type { AxiosProxyConfig } from 'axios';
-import type { CallbackManager as CallbackManagerLC } from '@langchain/core/callbacks/manager';
export interface IAdditionalCredentialOptions {
oauth2?: IOAuth2Options;
@@ -2407,16 +2406,6 @@ export interface INodesGraphResult {
webhookNodeNames: string[];
}
-export interface ITelemetryClientConfig {
- url: string;
- key: string;
-}
-
-export interface ITelemetrySettings {
- enabled: boolean;
- config?: ITelemetryClientConfig;
-}
-
export interface FeatureFlags {
[featureFlag: string]: string | boolean | undefined;
}
@@ -2598,19 +2587,6 @@ export interface ExecutionFilters {
workflowId?: number | string;
}
-export interface IVersionNotificationSettings {
- enabled: boolean;
- endpoint: string;
- infoUrl: string;
-}
-
-export interface IUserManagementSettings {
- quota: number;
- showSetupOnFirstLoad?: boolean;
- smtpSetup: boolean;
- authenticationMethod: AuthenticationMethod;
-}
-
export type NpsSurveyRespondedState = { lastShownAt: number; responded: true };
export type NpsSurveyWaitingState = {
lastShownAt: number;
@@ -2628,158 +2604,10 @@ export interface IUserSettings {
npsSurvey?: NpsSurveyState;
}
-export interface IPublicApiSettings {
- enabled: boolean;
- latestVersion: number;
- path: string;
- swaggerUi: {
- enabled: boolean;
- };
-}
-
export type ExpressionEvaluatorType = 'tmpl' | 'tournament';
export type N8nAIProviderType = 'openai' | 'unknown';
-export interface IN8nUISettings {
- isDocker?: boolean;
- databaseType: 'sqlite' | 'mariadb' | 'mysqldb' | 'postgresdb';
- endpointForm: string;
- endpointFormTest: string;
- endpointFormWaiting: string;
- endpointWebhook: string;
- endpointWebhookTest: string;
- saveDataErrorExecution: WorkflowSettings.SaveDataExecution;
- saveDataSuccessExecution: WorkflowSettings.SaveDataExecution;
- saveManualExecutions: boolean;
- saveExecutionProgress: boolean;
- executionTimeout: number;
- maxExecutionTimeout: number;
- workflowCallerPolicyDefaultOption: WorkflowSettings.CallerPolicy;
- oauthCallbackUrls: {
- oauth1: string;
- oauth2: string;
- };
- timezone: string;
- urlBaseWebhook: string;
- urlBaseEditor: string;
- versionCli: string;
- nodeJsVersion: string;
- concurrency: number;
- authCookie: {
- secure: boolean;
- };
- binaryDataMode: 'default' | 'filesystem' | 's3';
- releaseChannel: 'stable' | 'beta' | 'nightly' | 'dev';
- n8nMetadata?: {
- userId?: string;
- [key: string]: string | number | undefined;
- };
- versionNotifications: IVersionNotificationSettings;
- instanceId: string;
- telemetry: ITelemetrySettings;
- posthog: {
- enabled: boolean;
- apiHost: string;
- apiKey: string;
- autocapture: boolean;
- disableSessionRecording: boolean;
- debug: boolean;
- };
- personalizationSurveyEnabled: boolean;
- defaultLocale: string;
- userManagement: IUserManagementSettings;
- sso: {
- saml: {
- loginLabel: string;
- loginEnabled: boolean;
- };
- ldap: {
- loginLabel: string;
- loginEnabled: boolean;
- };
- };
- publicApi: IPublicApiSettings;
- workflowTagsDisabled: boolean;
- logLevel: LogLevel;
- hiringBannerEnabled: boolean;
- previewMode: boolean;
- templates: {
- enabled: boolean;
- host: string;
- };
- missingPackages?: boolean;
- executionMode: 'regular' | 'queue';
- pushBackend: 'sse' | 'websocket';
- communityNodesEnabled: boolean;
- aiAssistant: {
- enabled: boolean;
- };
- deployment: {
- type: string | 'default' | 'n8n-internal' | 'cloud' | 'desktop_mac' | 'desktop_win';
- };
- isNpmAvailable: boolean;
- allowedModules: {
- builtIn?: string[];
- external?: string[];
- };
- enterprise: {
- sharing: boolean;
- ldap: boolean;
- saml: boolean;
- logStreaming: boolean;
- advancedExecutionFilters: boolean;
- variables: boolean;
- sourceControl: boolean;
- auditLogs: boolean;
- externalSecrets: boolean;
- showNonProdBanner: boolean;
- debugInEditor: boolean;
- binaryDataS3: boolean;
- workflowHistory: boolean;
- workerView: boolean;
- advancedPermissions: boolean;
- projects: {
- team: {
- limit: number;
- };
- };
- };
- hideUsagePage: boolean;
- license: {
- planName?: string;
- consumerId: string;
- environment: 'development' | 'production' | 'staging';
- };
- variables: {
- limit: number;
- };
- expressions: {
- evaluator: ExpressionEvaluatorType;
- };
- mfa: {
- enabled: boolean;
- };
- banners: {
- dismissed: string[];
- };
- ai: {
- enabled: boolean;
- };
- workflowHistory: {
- pruneTime: number;
- licensePruneTime: number;
- };
- pruning: {
- isEnabled: boolean;
- maxAge: number;
- maxCount: number;
- };
- security: {
- blockFileAccessToN8nFiles: boolean;
- };
-}
-
export interface SecretsHelpersBase {
update(): Promise;
waitForInit(): Promise;
diff --git a/packages/workflow/src/MessageEventBus.ts b/packages/workflow/src/MessageEventBus.ts
index 48c80e9b52..f873299090 100644
--- a/packages/workflow/src/MessageEventBus.ts
+++ b/packages/workflow/src/MessageEventBus.ts
@@ -1,4 +1,5 @@
import type { DateTime } from 'luxon';
+
import type { INodeCredentials } from './Interfaces';
// ===============================
diff --git a/packages/workflow/src/NativeMethods/index.ts b/packages/workflow/src/NativeMethods/index.ts
index f51d64f89c..1ba9d9759f 100644
--- a/packages/workflow/src/NativeMethods/index.ts
+++ b/packages/workflow/src/NativeMethods/index.ts
@@ -1,9 +1,9 @@
-import { stringMethods } from './String.methods';
import { arrayMethods } from './Array.methods';
+import { booleanMethods } from './Boolean.methods';
import { numberMethods } from './Number.methods';
import { objectMethods } from './Object.Methods';
+import { stringMethods } from './String.methods';
import type { NativeDoc } from '../Extensions/Extensions';
-import { booleanMethods } from './Boolean.methods';
const NATIVE_METHODS: NativeDoc[] = [
stringMethods,
diff --git a/packages/workflow/src/NodeHelpers.ts b/packages/workflow/src/NodeHelpers.ts
index 9e68a03a80..6869652f4f 100644
--- a/packages/workflow/src/NodeHelpers.ts
+++ b/packages/workflow/src/NodeHelpers.ts
@@ -10,6 +10,8 @@ import get from 'lodash/get';
import isEqual from 'lodash/isEqual';
import uniqBy from 'lodash/uniqBy';
+import { SINGLE_EXECUTION_NODES } from './Constants';
+import { ApplicationError } from './errors/application.error';
import { NodeConnectionType } from './Interfaces';
import type {
FieldType,
@@ -44,18 +46,15 @@ import type {
NodeHint,
INodeExecutionData,
} from './Interfaces';
+import { validateFilterParameter } from './NodeParameters/FilterParameter';
import {
isFilterValue,
isResourceMapperValue,
isValidResourceLocatorParameterValue,
} from './type-guards';
-import { deepCopy } from './utils';
-
-import type { Workflow } from './Workflow';
-import { validateFilterParameter } from './NodeParameters/FilterParameter';
import { validateFieldType } from './TypeValidation';
-import { ApplicationError } from './errors/application.error';
-import { SINGLE_EXECUTION_NODES } from './Constants';
+import { deepCopy } from './utils';
+import type { Workflow } from './Workflow';
export const cronNodeOptions: INodePropertyCollection[] = [
{
diff --git a/packages/workflow/src/NodeParameters/FilterParameter.ts b/packages/workflow/src/NodeParameters/FilterParameter.ts
index e1191394df..b2df097b09 100644
--- a/packages/workflow/src/NodeParameters/FilterParameter.ts
+++ b/packages/workflow/src/NodeParameters/FilterParameter.ts
@@ -1,4 +1,6 @@
import type { DateTime } from 'luxon';
+
+import { ApplicationError } from '../errors/application.error';
import type {
FilterConditionValue,
FilterOperatorType,
@@ -8,9 +10,8 @@ import type {
Result,
ValidationResult,
} from '../Interfaces';
-import { validateFieldType } from '../TypeValidation';
import * as LoggerProxy from '../LoggerProxy';
-import { ApplicationError } from '../errors/application.error';
+import { validateFieldType } from '../TypeValidation';
type FilterConditionMetadata = {
index: number;
diff --git a/packages/workflow/src/RoutingNode.ts b/packages/workflow/src/RoutingNode.ts
index 8824f9c516..fe7fac6790 100644
--- a/packages/workflow/src/RoutingNode.ts
+++ b/packages/workflow/src/RoutingNode.ts
@@ -11,6 +11,8 @@ import merge from 'lodash/merge';
import set from 'lodash/set';
import url from 'node:url';
+import { NodeApiError } from './errors/node-api.error';
+import { NodeOperationError } from './errors/node-operation.error';
import type {
ICredentialDataDecryptedObject,
ICredentialsDecrypted,
@@ -40,14 +42,9 @@ import type {
JsonObject,
CloseFunction,
} from './Interfaces';
-
import * as NodeHelpers from './NodeHelpers';
-
-import type { Workflow } from './Workflow';
-
-import { NodeOperationError } from './errors/node-operation.error';
-import { NodeApiError } from './errors/node-api.error';
import { sleep } from './utils';
+import type { Workflow } from './Workflow';
export class RoutingNode {
additionalData: IWorkflowExecuteAdditionalData;
diff --git a/packages/workflow/src/TelemetryHelpers.ts b/packages/workflow/src/TelemetryHelpers.ts
index b28a59f654..42c6571b3b 100644
--- a/packages/workflow/src/TelemetryHelpers.ts
+++ b/packages/workflow/src/TelemetryHelpers.ts
@@ -1,16 +1,3 @@
-import { getNodeParameters } from './NodeHelpers';
-import type {
- IConnection,
- INode,
- INodeNameIndex,
- INodesGraph,
- INodeGraphItem,
- INodesGraphResult,
- IWorkflowBase,
- INodeTypes,
- IDataObject,
-} from './Interfaces';
-import { ApplicationError } from './errors/application.error';
import {
AGENT_LANGCHAIN_NODE_TYPE,
AI_TRANSFORM_NODE_TYPE,
@@ -26,6 +13,19 @@ import {
WEBHOOK_NODE_TYPE,
WORKFLOW_TOOL_LANGCHAIN_NODE_TYPE,
} from './Constants';
+import { ApplicationError } from './errors/application.error';
+import type {
+ IConnection,
+ INode,
+ INodeNameIndex,
+ INodesGraph,
+ INodeGraphItem,
+ INodesGraphResult,
+ IWorkflowBase,
+ INodeTypes,
+ IDataObject,
+} from './Interfaces';
+import { getNodeParameters } from './NodeHelpers';
export function getNodeTypeForName(workflow: IWorkflowBase, nodeName: string): INode | undefined {
return workflow.nodes.find((node) => node.name === nodeName);
diff --git a/packages/workflow/src/TypeValidation.ts b/packages/workflow/src/TypeValidation.ts
index a2c299303f..d15a0a07be 100644
--- a/packages/workflow/src/TypeValidation.ts
+++ b/packages/workflow/src/TypeValidation.ts
@@ -1,7 +1,8 @@
-import { DateTime } from 'luxon';
-import type { FieldType, INodePropertyOptions, ValidationResult } from './Interfaces';
import isObject from 'lodash/isObject';
+import { DateTime } from 'luxon';
+
import { ApplicationError } from './errors';
+import type { FieldType, INodePropertyOptions, ValidationResult } from './Interfaces';
import { jsonParse } from './utils';
export const tryToParseNumber = (value: unknown): number => {
diff --git a/packages/workflow/src/Workflow.ts b/packages/workflow/src/Workflow.ts
index aa4131bfc6..c60b949449 100644
--- a/packages/workflow/src/Workflow.ts
+++ b/packages/workflow/src/Workflow.ts
@@ -7,6 +7,15 @@
/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */
+import {
+ MANUAL_CHAT_TRIGGER_LANGCHAIN_NODE_TYPE,
+ NODES_WITH_RENAMABLE_CONTENT,
+ STARTING_NODE_TYPES,
+} from './Constants';
+import type { IDeferredPromise } from './DeferredPromise';
+import { ApplicationError } from './errors/application.error';
+import { Expression } from './Expression';
+import { getGlobalState } from './GlobalState';
import type {
IConnections,
IExecuteResponsePromiseData,
@@ -45,19 +54,9 @@ import type {
INodeOutputConfiguration,
} from './Interfaces';
import { Node, NodeConnectionType } from './Interfaces';
-import type { IDeferredPromise } from './DeferredPromise';
-
import * as NodeHelpers from './NodeHelpers';
import * as ObservableObject from './ObservableObject';
import { RoutingNode } from './RoutingNode';
-import { Expression } from './Expression';
-import {
- MANUAL_CHAT_TRIGGER_LANGCHAIN_NODE_TYPE,
- NODES_WITH_RENAMABLE_CONTENT,
- STARTING_NODE_TYPES,
-} from './Constants';
-import { ApplicationError } from './errors/application.error';
-import { getGlobalState } from './GlobalState';
function dedupe(arr: T[]): T[] {
return [...new Set(arr)];
diff --git a/packages/workflow/src/WorkflowDataProxy.ts b/packages/workflow/src/WorkflowDataProxy.ts
index 8e9cf49f03..1ceb62fb7b 100644
--- a/packages/workflow/src/WorkflowDataProxy.ts
+++ b/packages/workflow/src/WorkflowDataProxy.ts
@@ -2,9 +2,14 @@
/* eslint-disable @typescript-eslint/no-this-alias */
/* eslint-disable @typescript-eslint/no-unsafe-return */
-import { DateTime, Duration, Interval, Settings } from 'luxon';
import * as jmespath from 'jmespath';
+import { DateTime, Duration, Interval, Settings } from 'luxon';
+import { augmentArray, augmentObject } from './AugmentObject';
+import { SCRIPTING_NODE_TYPES } from './Constants';
+import { ApplicationError } from './errors/application.error';
+import { ExpressionError, type ExpressionErrorOptions } from './errors/expression.error';
+import { getGlobalState } from './GlobalState';
import {
type IDataObject,
type IExecuteData,
@@ -23,13 +28,8 @@ import {
NodeConnectionType,
} from './Interfaces';
import * as NodeHelpers from './NodeHelpers';
-import { ExpressionError, type ExpressionErrorOptions } from './errors/expression.error';
-import type { Workflow } from './Workflow';
-import { augmentArray, augmentObject } from './AugmentObject';
import { deepCopy } from './utils';
-import { getGlobalState } from './GlobalState';
-import { ApplicationError } from './errors/application.error';
-import { SCRIPTING_NODE_TYPES } from './Constants';
+import type { Workflow } from './Workflow';
import { getPinDataIfManualExecution } from './WorkflowDataProxyHelpers';
export function isResourceLocatorValue(value: unknown): value is INodeParameterResourceLocator {
diff --git a/packages/workflow/src/errors/abstract/node.error.ts b/packages/workflow/src/errors/abstract/node.error.ts
index ceaa7f0954..dfa8f9819e 100644
--- a/packages/workflow/src/errors/abstract/node.error.ts
+++ b/packages/workflow/src/errors/abstract/node.error.ts
@@ -1,6 +1,6 @@
-import { isTraversableObject, jsonParse } from '../../utils';
-import type { IDataObject, INode, JsonObject } from '../../Interfaces';
import { ExecutionBaseError } from './execution-base.error';
+import type { IDataObject, INode, JsonObject } from '../../Interfaces';
+import { isTraversableObject, jsonParse } from '../../utils';
/**
* Descriptive messages for common errors.
diff --git a/packages/workflow/src/errors/application.error.ts b/packages/workflow/src/errors/application.error.ts
index 954df90a78..7cd3095cf0 100644
--- a/packages/workflow/src/errors/application.error.ts
+++ b/packages/workflow/src/errors/application.error.ts
@@ -1,5 +1,5 @@
-import callsites from 'callsites';
import type { Event } from '@sentry/node';
+import callsites from 'callsites';
export type Level = 'warning' | 'error' | 'fatal' | 'info';
diff --git a/packages/workflow/src/errors/credential-access-error.ts b/packages/workflow/src/errors/credential-access-error.ts
index 0fce04cf4e..6de0c3ec96 100644
--- a/packages/workflow/src/errors/credential-access-error.ts
+++ b/packages/workflow/src/errors/credential-access-error.ts
@@ -1,5 +1,5 @@
-import type { INode } from '../Interfaces';
import { ExecutionBaseError } from './abstract/execution-base.error';
+import type { INode } from '../Interfaces';
export class CredentialAccessError extends ExecutionBaseError {
override readonly description =
diff --git a/packages/workflow/src/errors/expression.error.ts b/packages/workflow/src/errors/expression.error.ts
index ac73010957..02b3c74444 100644
--- a/packages/workflow/src/errors/expression.error.ts
+++ b/packages/workflow/src/errors/expression.error.ts
@@ -1,5 +1,5 @@
-import type { IDataObject } from '../Interfaces';
import { ExecutionBaseError } from './abstract/execution-base.error';
+import type { IDataObject } from '../Interfaces';
export interface ExpressionErrorOptions {
cause?: Error;
diff --git a/packages/workflow/src/errors/node-api.error.ts b/packages/workflow/src/errors/node-api.error.ts
index 47f231bcef..f18f2e6fed 100644
--- a/packages/workflow/src/errors/node-api.error.ts
+++ b/packages/workflow/src/errors/node-api.error.ts
@@ -1,7 +1,17 @@
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
/* eslint-disable @typescript-eslint/no-unsafe-argument */
+import { AxiosError } from 'axios';
import { parseString } from 'xml2js';
+
+import { NodeError } from './abstract/node.error';
+import type { ReportingOptions } from './application.error';
+import {
+ NO_OP_NODE_TYPE,
+ UNKNOWN_ERROR_DESCRIPTION,
+ UNKNOWN_ERROR_MESSAGE,
+ UNKNOWN_ERROR_MESSAGE_CRED,
+} from '../Constants';
import type {
INode,
JsonObject,
@@ -9,16 +19,7 @@ import type {
IStatusCodeMessages,
Functionality,
} from '../Interfaces';
-import { NodeError } from './abstract/node.error';
import { removeCircularRefs } from '../utils';
-import type { ReportingOptions } from './application.error';
-import { AxiosError } from 'axios';
-import {
- NO_OP_NODE_TYPE,
- UNKNOWN_ERROR_DESCRIPTION,
- UNKNOWN_ERROR_MESSAGE,
- UNKNOWN_ERROR_MESSAGE_CRED,
-} from '../Constants';
export interface NodeOperationErrorOptions {
message?: string;
diff --git a/packages/workflow/src/errors/node-operation.error.ts b/packages/workflow/src/errors/node-operation.error.ts
index c55cd003cc..00a7a179cc 100644
--- a/packages/workflow/src/errors/node-operation.error.ts
+++ b/packages/workflow/src/errors/node-operation.error.ts
@@ -1,7 +1,7 @@
-import type { INode, JsonObject } from '../Interfaces';
-import type { NodeOperationErrorOptions } from './node-api.error';
import { NodeError } from './abstract/node.error';
import { ApplicationError } from './application.error';
+import type { NodeOperationErrorOptions } from './node-api.error';
+import type { INode, JsonObject } from '../Interfaces';
/**
* Class for instantiating an operational error, e.g. an invalid credentials error.
diff --git a/packages/workflow/src/errors/trigger-close.error.ts b/packages/workflow/src/errors/trigger-close.error.ts
index 19d3b7a769..25b5e186b8 100644
--- a/packages/workflow/src/errors/trigger-close.error.ts
+++ b/packages/workflow/src/errors/trigger-close.error.ts
@@ -1,5 +1,5 @@
-import type { INode } from '../Interfaces';
import { ApplicationError, type Level } from './application.error';
+import type { INode } from '../Interfaces';
interface TriggerCloseErrorOptions extends ErrorOptions {
level: Level;
diff --git a/packages/workflow/src/errors/workflow-activation.error.ts b/packages/workflow/src/errors/workflow-activation.error.ts
index 2ea7e5628f..8e2c493d9a 100644
--- a/packages/workflow/src/errors/workflow-activation.error.ts
+++ b/packages/workflow/src/errors/workflow-activation.error.ts
@@ -1,6 +1,6 @@
-import type { INode } from '../Interfaces';
import { ExecutionBaseError } from './abstract/execution-base.error';
import type { ApplicationError } from './application.error';
+import type { INode } from '../Interfaces';
interface WorkflowActivationErrorOptions {
cause?: Error;
diff --git a/packages/workflow/src/errors/workflow-operation.error.ts b/packages/workflow/src/errors/workflow-operation.error.ts
index 936b6bea10..40bdd100e5 100644
--- a/packages/workflow/src/errors/workflow-operation.error.ts
+++ b/packages/workflow/src/errors/workflow-operation.error.ts
@@ -1,5 +1,5 @@
-import type { INode } from '../Interfaces';
import { ExecutionBaseError } from './abstract/execution-base.error';
+import type { INode } from '../Interfaces';
/**
* Class for instantiating an operational error, e.g. a timeout error.
diff --git a/packages/workflow/src/index.ts b/packages/workflow/src/index.ts
index 55805993ef..61dae7afae 100644
--- a/packages/workflow/src/index.ts
+++ b/packages/workflow/src/index.ts
@@ -6,7 +6,6 @@ import * as ObservableObject from './ObservableObject';
import * as TelemetryHelpers from './TelemetryHelpers';
export * from './errors';
-export * from './Authentication';
export * from './Constants';
export * from './Cron';
export * from './DeferredPromise';
diff --git a/packages/workflow/src/utils.ts b/packages/workflow/src/utils.ts
index c0330955c3..4fba8de101 100644
--- a/packages/workflow/src/utils.ts
+++ b/packages/workflow/src/utils.ts
@@ -1,16 +1,15 @@
-import FormData from 'form-data';
-import { merge } from 'lodash';
-
-import { ALPHABET } from './Constants';
-import type { BinaryFileType, IDisplayOptions, INodeProperties, JsonObject } from './Interfaces';
-import { ApplicationError } from './errors/application.error';
-
import {
parse as esprimaParse,
Syntax,
type Node as SyntaxNode,
type ExpressionStatement,
} from 'esprima-next';
+import FormData from 'form-data';
+import { merge } from 'lodash';
+
+import { ALPHABET } from './Constants';
+import { ApplicationError } from './errors/application.error';
+import type { BinaryFileType, IDisplayOptions, INodeProperties, JsonObject } from './Interfaces';
const readStreamClasses = new Set(['ReadStream', 'Readable', 'ReadableStream']);
diff --git a/packages/workflow/test/AugmentObject.test.ts b/packages/workflow/test/AugmentObject.test.ts
index fcb126e4eb..457567b993 100644
--- a/packages/workflow/test/AugmentObject.test.ts
+++ b/packages/workflow/test/AugmentObject.test.ts
@@ -1,5 +1,5 @@
-import type { IDataObject } from '@/Interfaces';
import { augmentArray, augmentObject } from '@/AugmentObject';
+import type { IDataObject } from '@/Interfaces';
import { deepCopy } from '@/utils';
describe('AugmentObject', () => {
diff --git a/packages/workflow/test/Expression.test.ts b/packages/workflow/test/Expression.test.ts
index 42cd682dbc..abfb5895da 100644
--- a/packages/workflow/test/Expression.test.ts
+++ b/packages/workflow/test/Expression.test.ts
@@ -3,15 +3,17 @@
*/
import { DateTime, Duration, Interval } from 'luxon';
-import { Workflow } from '@/Workflow';
-import * as Helpers from './Helpers';
-import type { ExpressionTestEvaluation, ExpressionTestTransform } from './ExpressionFixtures/base';
-import { baseFixtures } from './ExpressionFixtures/base';
-import type { INodeExecutionData } from '@/Interfaces';
-import { extendSyntax } from '@/Extensions/ExpressionExtension';
+
import { ExpressionError } from '@/errors/expression.error';
import { setDifferEnabled, setEvaluator } from '@/ExpressionEvaluatorProxy';
+import { extendSyntax } from '@/Extensions/ExpressionExtension';
+import type { INodeExecutionData } from '@/Interfaces';
+import { Workflow } from '@/Workflow';
+
import { workflow } from './ExpressionExtensions/Helpers';
+import { baseFixtures } from './ExpressionFixtures/base';
+import type { ExpressionTestEvaluation, ExpressionTestTransform } from './ExpressionFixtures/base';
+import * as Helpers from './Helpers';
setDifferEnabled(true);
diff --git a/packages/workflow/test/ExpressionExtensions/ArrayExtensions.test.ts b/packages/workflow/test/ExpressionExtensions/ArrayExtensions.test.ts
index 6759c9e02d..d85ec4a257 100644
--- a/packages/workflow/test/ExpressionExtensions/ArrayExtensions.test.ts
+++ b/packages/workflow/test/ExpressionExtensions/ArrayExtensions.test.ts
@@ -2,8 +2,8 @@
* @jest-environment jsdom
*/
-import { arrayExtensions } from '../../src/Extensions/ArrayExtensions';
import { evaluate } from './Helpers';
+import { arrayExtensions } from '../../src/Extensions/ArrayExtensions';
describe('Data Transformation Functions', () => {
describe('Array Data Transformation Functions', () => {
diff --git a/packages/workflow/test/ExpressionExtensions/BooleanExtensions.test.ts b/packages/workflow/test/ExpressionExtensions/BooleanExtensions.test.ts
index eccb53e50b..842158a5b3 100644
--- a/packages/workflow/test/ExpressionExtensions/BooleanExtensions.test.ts
+++ b/packages/workflow/test/ExpressionExtensions/BooleanExtensions.test.ts
@@ -2,8 +2,8 @@
* @jest-environment jsdom
*/
-import { booleanExtensions } from '../../src/Extensions/BooleanExtensions';
import { evaluate } from './Helpers';
+import { booleanExtensions } from '../../src/Extensions/BooleanExtensions';
describe('Data Transformation Functions', () => {
describe('Boolean Data Transformation Functions', () => {
diff --git a/packages/workflow/test/ExpressionExtensions/DateExtensions.test.ts b/packages/workflow/test/ExpressionExtensions/DateExtensions.test.ts
index 2e542fc377..09a5761d65 100644
--- a/packages/workflow/test/ExpressionExtensions/DateExtensions.test.ts
+++ b/packages/workflow/test/ExpressionExtensions/DateExtensions.test.ts
@@ -3,7 +3,9 @@
*/
import { DateTime } from 'luxon';
+
import { getGlobalState } from '@/GlobalState';
+
import { evaluate, getLocalISOString } from './Helpers';
import { dateExtensions } from '../../src/Extensions/DateExtensions';
diff --git a/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts b/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts
index b35cd2c728..e08f4f05c4 100644
--- a/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts
+++ b/packages/workflow/test/ExpressionExtensions/ExpressionExtension.test.ts
@@ -6,6 +6,7 @@
import { extendTransform, extend } from '@/Extensions';
import { joinExpression, splitExpression } from '@/Extensions/ExpressionParser';
+
import { evaluate } from './Helpers';
import { ExpressionExtensionError } from '../../src/errors/expression-extension.error';
@@ -157,13 +158,11 @@ describe('tmpl Expression Parser', () => {
});
test('Multiple optional chains in an expression', () => {
- expect(extendTransform('$json.test?.test2($json.test?.test2)')?.code)
- .toBe(`window.chainCancelToken2 = ((window.chainValue2 = $json.test) ?? undefined) === undefined, window.chainCancelToken2 === true ? undefined : window.chainValue2.test2(
+ expect(extendTransform('$json.test?.test2($json.test?.test2)')?.code).toBe(`window.chainCancelToken2 = ((window.chainValue2 = $json.test) ?? undefined) === undefined, window.chainCancelToken2 === true ? undefined : window.chainValue2.test2(
(window.chainCancelToken1 = ((window.chainValue1 = $json.test) ?? undefined) === undefined, window.chainCancelToken1 === true ? undefined : window.chainValue1.test2)
);`);
- expect(extendTransform('$json.test?.test2($json.test.sum?.())')?.code)
- .toBe(`window.chainCancelToken2 = ((window.chainValue2 = $json.test) ?? undefined) === undefined, window.chainCancelToken2 === true ? undefined : window.chainValue2.test2(
+ expect(extendTransform('$json.test?.test2($json.test.sum?.())')?.code).toBe(`window.chainCancelToken2 = ((window.chainValue2 = $json.test) ?? undefined) === undefined, window.chainCancelToken2 === true ? undefined : window.chainValue2.test2(
(window.chainCancelToken1 = ((window.chainValue1 = extendOptional($json.test, "sum")) ?? undefined) === undefined, window.chainCancelToken1 === true ? undefined : window.chainValue1())
);`);
});
diff --git a/packages/workflow/test/ExpressionExtensions/Helpers.ts b/packages/workflow/test/ExpressionExtensions/Helpers.ts
index 54836960e5..2c2e8ffde7 100644
--- a/packages/workflow/test/ExpressionExtensions/Helpers.ts
+++ b/packages/workflow/test/ExpressionExtensions/Helpers.ts
@@ -1,5 +1,6 @@
import type { IDataObject } from '@/Interfaces';
import { Workflow } from '@/Workflow';
+
import * as Helpers from '../Helpers';
export const nodeTypes = Helpers.NodeTypes();
diff --git a/packages/workflow/test/ExpressionExtensions/NumberExtensions.test.ts b/packages/workflow/test/ExpressionExtensions/NumberExtensions.test.ts
index 1f41e853a1..ff51ec180a 100644
--- a/packages/workflow/test/ExpressionExtensions/NumberExtensions.test.ts
+++ b/packages/workflow/test/ExpressionExtensions/NumberExtensions.test.ts
@@ -3,6 +3,7 @@
*/
import { numberExtensions } from '@/Extensions/NumberExtensions';
+
import { evaluate } from './Helpers';
describe('Data Transformation Functions', () => {
diff --git a/packages/workflow/test/ExpressionExtensions/ObjectExtensions.test.ts b/packages/workflow/test/ExpressionExtensions/ObjectExtensions.test.ts
index 4a78037488..1107ceae54 100644
--- a/packages/workflow/test/ExpressionExtensions/ObjectExtensions.test.ts
+++ b/packages/workflow/test/ExpressionExtensions/ObjectExtensions.test.ts
@@ -1,5 +1,5 @@
-import { objectExtensions } from '../../src/Extensions/ObjectExtensions';
import { evaluate } from './Helpers';
+import { objectExtensions } from '../../src/Extensions/ObjectExtensions';
describe('Data Transformation Functions', () => {
describe('Object Data Transformation Functions', () => {
diff --git a/packages/workflow/test/ExpressionExtensions/StringExtensions.test.ts b/packages/workflow/test/ExpressionExtensions/StringExtensions.test.ts
index 70ec97c915..35b2318868 100644
--- a/packages/workflow/test/ExpressionExtensions/StringExtensions.test.ts
+++ b/packages/workflow/test/ExpressionExtensions/StringExtensions.test.ts
@@ -2,6 +2,7 @@
* @jest-environment jsdom
*/
import { DateTime } from 'luxon';
+
import { evaluate } from './Helpers';
import { ExpressionExtensionError } from '../../src/errors';
diff --git a/packages/workflow/test/ExpressionFixtures/base.ts b/packages/workflow/test/ExpressionFixtures/base.ts
index f05d098fd5..1988180aa0 100644
--- a/packages/workflow/test/ExpressionFixtures/base.ts
+++ b/packages/workflow/test/ExpressionFixtures/base.ts
@@ -1,5 +1,5 @@
-import type { GenericValue, IDataObject } from '@/Interfaces';
import { ExpressionError } from '@/errors/expression.error';
+import type { GenericValue, IDataObject } from '@/Interfaces';
interface ExpressionTestBase {
type: 'evaluation' | 'transform';
diff --git a/packages/workflow/test/ExpressionSandboxing.test.ts b/packages/workflow/test/ExpressionSandboxing.test.ts
index f2ba200f8e..dbec453443 100644
--- a/packages/workflow/test/ExpressionSandboxing.test.ts
+++ b/packages/workflow/test/ExpressionSandboxing.test.ts
@@ -1,6 +1,7 @@
-import { PrototypeSanitizer, sanitizer } from '@/ExpressionSandboxing';
import { Tournament } from '@n8n/tournament';
+import { PrototypeSanitizer, sanitizer } from '@/ExpressionSandboxing';
+
const tournament = new Tournament(
(e) => {
throw e;
diff --git a/packages/workflow/test/FilterParameter.test.ts b/packages/workflow/test/FilterParameter.test.ts
index b22460f998..d8914ef773 100644
--- a/packages/workflow/test/FilterParameter.test.ts
+++ b/packages/workflow/test/FilterParameter.test.ts
@@ -1,8 +1,9 @@
-import { arrayContainsValue, executeFilter } from '@/NodeParameters/FilterParameter';
-import type { FilterConditionValue, FilterValue } from '@/Interfaces';
import merge from 'lodash/merge';
import { DateTime } from 'luxon';
+import type { FilterConditionValue, FilterValue } from '@/Interfaces';
+import { arrayContainsValue, executeFilter } from '@/NodeParameters/FilterParameter';
+
type DeepPartial = {
[P in keyof T]?: T[P] extends object ? DeepPartial : T[P];
};
diff --git a/packages/workflow/test/Helpers.ts b/packages/workflow/test/Helpers.ts
index c618f5fd0c..f72c041c69 100644
--- a/packages/workflow/test/Helpers.ts
+++ b/packages/workflow/test/Helpers.ts
@@ -1,7 +1,7 @@
import { readFileSync } from 'fs';
-import path from 'path';
import { mock } from 'jest-mock-extended';
import get from 'lodash/get';
+import path from 'path';
import type {
IExecuteSingleFunctions,
@@ -13,6 +13,7 @@ import type {
IRunExecutionData,
} from '@/Interfaces';
import type { Workflow } from '@/Workflow';
+
import { NodeTypes as NodeTypesClass } from './NodeTypes';
export function getExecuteSingleFunctions(
diff --git a/packages/workflow/test/NodeErrors.test.ts b/packages/workflow/test/NodeErrors.test.ts
index 12033fd28d..04aafb1610 100644
--- a/packages/workflow/test/NodeErrors.test.ts
+++ b/packages/workflow/test/NodeErrors.test.ts
@@ -1,6 +1,7 @@
-import type { INode, JsonObject } from '@/Interfaces';
import { NodeOperationError } from '@/errors';
import { NodeApiError } from '@/errors/node-api.error';
+import type { INode, JsonObject } from '@/Interfaces';
+
import { UNKNOWN_ERROR_DESCRIPTION, UNKNOWN_ERROR_MESSAGE } from '../src/Constants';
const node: INode = {
diff --git a/packages/workflow/test/NodeHelpers.test.ts b/packages/workflow/test/NodeHelpers.test.ts
index 583d423c60..f3ecc161ca 100644
--- a/packages/workflow/test/NodeHelpers.test.ts
+++ b/packages/workflow/test/NodeHelpers.test.ts
@@ -6,7 +6,6 @@ import {
type INodeType,
type INodeTypeDescription,
} from '@/Interfaces';
-import type { Workflow } from '@/Workflow';
import {
getNodeParameters,
getNodeHints,
@@ -15,6 +14,7 @@ import {
applyDeclarativeNodeOptionParameters,
convertNodeToAiTool,
} from '@/NodeHelpers';
+import type { Workflow } from '@/Workflow';
describe('NodeHelpers', () => {
describe('getNodeParameters', () => {
diff --git a/packages/workflow/test/NodeTypes.ts b/packages/workflow/test/NodeTypes.ts
index f255d92e62..9cd5c548f2 100644
--- a/packages/workflow/test/NodeTypes.ts
+++ b/packages/workflow/test/NodeTypes.ts
@@ -1,4 +1,5 @@
import { mock } from 'jest-mock-extended';
+
import {
NodeConnectionType,
type IDataObject,
diff --git a/packages/workflow/test/RoutingNode.test.ts b/packages/workflow/test/RoutingNode.test.ts
index e2638d8c90..a38f4551e2 100644
--- a/packages/workflow/test/RoutingNode.test.ts
+++ b/packages/workflow/test/RoutingNode.test.ts
@@ -1,3 +1,5 @@
+import { mock } from 'jest-mock-extended';
+
import type {
INode,
INodeExecutionData,
@@ -16,14 +18,12 @@ import type {
IWorkflowExecuteAdditionalData,
IExecuteFunctions,
} from '@/Interfaces';
+import { applyDeclarativeNodeOptionParameters } from '@/NodeHelpers';
import { RoutingNode } from '@/RoutingNode';
+import * as utilsModule from '@/utils';
import { Workflow } from '@/Workflow';
-import * as utilsModule from '@/utils';
-
import * as Helpers from './Helpers';
-import { applyDeclarativeNodeOptionParameters } from '@/NodeHelpers';
-import { mock } from 'jest-mock-extended';
const postReceiveFunction1 = async function (
this: IExecuteSingleFunctions,
@@ -1959,7 +1959,7 @@ describe('RoutingNode', () => {
executeSingleFunctions.getNodeParameter = (parameterName: string) =>
parameterName in testData.input.node.parameters
? testData.input.node.parameters[parameterName]
- : getNodeParameter(parameterName) ?? {};
+ : (getNodeParameter(parameterName) ?? {});
const result = await routingNode.runNode(
inputData,
diff --git a/packages/workflow/test/TelemetryHelpers.test.ts b/packages/workflow/test/TelemetryHelpers.test.ts
index c1f46d2d66..9c51b0f1db 100644
--- a/packages/workflow/test/TelemetryHelpers.test.ts
+++ b/packages/workflow/test/TelemetryHelpers.test.ts
@@ -1,19 +1,20 @@
-import { v5 as uuidv5, v3 as uuidv3, v4 as uuidv4, v1 as uuidv1 } from 'uuid';
import { mock } from 'jest-mock-extended';
+import { v5 as uuidv5, v3 as uuidv3, v4 as uuidv4, v1 as uuidv1 } from 'uuid';
+import { STICKY_NODE_TYPE } from '@/Constants';
+import { ApplicationError } from '@/errors';
+import { NodeConnectionType, type IWorkflowBase } from '@/Interfaces';
+import * as nodeHelpers from '@/NodeHelpers';
import {
ANONYMIZATION_CHARACTER as CHAR,
generateNodesGraph,
getDomainBase,
getDomainPath,
} from '@/TelemetryHelpers';
-import { nodeTypes } from './ExpressionExtensions/Helpers';
-import * as nodeHelpers from '@/NodeHelpers';
-import { NodeConnectionType, type IWorkflowBase } from '@/Interfaces';
-import { STICKY_NODE_TYPE } from '@/Constants';
-import { ApplicationError } from '@/errors';
import { randomInt } from '@/utils';
+import { nodeTypes } from './ExpressionExtensions/Helpers';
+
describe('getDomainBase should return protocol plus domain', () => {
test('in valid URLs', () => {
for (const url of validUrls(numericId)) {
diff --git a/packages/workflow/test/TypeValidation.test.ts b/packages/workflow/test/TypeValidation.test.ts
index f01af4cedc..54504bf7f4 100644
--- a/packages/workflow/test/TypeValidation.test.ts
+++ b/packages/workflow/test/TypeValidation.test.ts
@@ -1,4 +1,5 @@
import { DateTime } from 'luxon';
+
import { getValueDescription, validateFieldType } from '@/TypeValidation';
describe('Type Validation', () => {
diff --git a/packages/workflow/test/Workflow.test.ts b/packages/workflow/test/Workflow.test.ts
index df0e85f49b..bdd5fec8b9 100644
--- a/packages/workflow/test/Workflow.test.ts
+++ b/packages/workflow/test/Workflow.test.ts
@@ -1,4 +1,5 @@
import { mock } from 'jest-mock-extended';
+
import { NodeConnectionType } from '@/Interfaces';
import type {
IBinaryKeyData,
@@ -18,8 +19,8 @@ import type {
IWorkflowExecuteAdditionalData,
NodeParameterValueType,
} from '@/Interfaces';
-import { Workflow, type WorkflowParameters } from '@/Workflow';
import * as NodeHelpers from '@/NodeHelpers';
+import { Workflow, type WorkflowParameters } from '@/Workflow';
process.env.TEST_VARIABLE_1 = 'valueEnvVariable1';
diff --git a/packages/workflow/test/WorkflowDataProxy.test.ts b/packages/workflow/test/WorkflowDataProxy.test.ts
index 230c11198b..ac9504dcd8 100644
--- a/packages/workflow/test/WorkflowDataProxy.test.ts
+++ b/packages/workflow/test/WorkflowDataProxy.test.ts
@@ -1,3 +1,4 @@
+import { ExpressionError } from '@/errors/expression.error';
import type {
IExecuteData,
INode,
@@ -8,7 +9,7 @@ import type {
} from '@/Interfaces';
import { Workflow } from '@/Workflow';
import { WorkflowDataProxy } from '@/WorkflowDataProxy';
-import { ExpressionError } from '@/errors/expression.error';
+
import * as Helpers from './Helpers';
const loadFixture = (fixture: string) => {
diff --git a/packages/workflow/test/errors/node.error.test.ts b/packages/workflow/test/errors/node.error.test.ts
index 7d0783a65c..c988aa9930 100644
--- a/packages/workflow/test/errors/node.error.test.ts
+++ b/packages/workflow/test/errors/node.error.test.ts
@@ -1,7 +1,8 @@
import { mock } from 'jest-mock-extended';
-import type { INode } from '@/Interfaces';
+
import { NodeApiError } from '@/errors/node-api.error';
import { NodeOperationError } from '@/errors/node-operation.error';
+import type { INode } from '@/Interfaces';
describe('NodeError', () => {
const node = mock();
diff --git a/packages/workflow/test/fixtures/WorkflowDataProxy/pindata_workflow.json b/packages/workflow/test/fixtures/WorkflowDataProxy/pindata_workflow.json
index 543bdb814b..0941baaeb0 100644
--- a/packages/workflow/test/fixtures/WorkflowDataProxy/pindata_workflow.json
+++ b/packages/workflow/test/fixtures/WorkflowDataProxy/pindata_workflow.json
@@ -1,106 +1,97 @@
{
- "meta": {
- "instanceId": "a786b722078489c1fa382391a9f3476c2784761624deb2dfb4634827256d51a0"
- },
- "nodes": [
- {
- "parameters": {
- "assignments": {
- "assignments": [
- {
- "id": "3058c300-b377-41b7-9c90-a01372f9b581",
- "name": "firstName",
- "value": "Joe",
- "type": "string"
- },
- {
- "id": "bb871662-c23c-4234-ac0c-b78c279bbf34",
- "name": "lastName",
- "value": "Smith",
- "type": "string"
- }
- ]
- },
- "options": {}
- },
- "id": "baee2bf4-5083-4cbe-8e51-4eddcf859ef5",
- "name": "PinnedSet",
- "type": "n8n-nodes-base.set",
- "typeVersion": 3.3,
- "position": [
- 1120,
- 380
- ]
- },
- {
- "parameters": {
- "assignments": {
- "assignments": [
- {
- "id": "a482f1fd-4815-4da4-a733-7beafb43c500",
- "name": "test",
- "value": "={{ $('PinnedSet').all().json }}\n{{ $('PinnedSet').item.json.firstName }}\n{{ $('PinnedSet').first().json.firstName }}\n{{ $('PinnedSet').itemMatching(0).json.firstName }}\n{{ $('PinnedSet').itemMatching(1).json.firstName }}\n{{ $('PinnedSet').last().json.firstName }}\n{{ $('PinnedSet').all()[0].json.firstName }}\n{{ $('PinnedSet').all()[1].json.firstName }}\n\n{{ $input.first().json.firstName }}\n{{ $input.last().json.firstName }}\n{{ $input.item.json.firstName }}\n\n{{ $json.firstName }}\n{{ $data.firstName }}\n\n{{ $items()[0].json.firstName }}",
- "type": "string"
- }
- ]
- },
- "options": {}
- },
- "id": "2a543169-e2c1-4764-ac63-09534310b2b9",
- "name": "NotPinnedSet1",
- "type": "n8n-nodes-base.set",
- "typeVersion": 3.3,
- "position": [
- 1360,
- 380
- ]
- },
- {
- "parameters": {},
- "id": "f36672e5-8c87-480e-a5b8-de9da6b63192",
- "name": "Start",
- "type": "n8n-nodes-base.manualTrigger",
- "position": [
- 920,
- 380
- ],
- "typeVersion": 1
- }
- ],
- "connections": {
- "PinnedSet": {
- "main": [
- [
- {
- "node": "NotPinnedSet1",
- "type": "main",
- "index": 0
- }
- ]
- ]
- },
- "Start": {
- "main": [
- [
- {
- "node": "PinnedSet",
- "type": "main",
- "index": 0
- }
- ]
- ]
- }
- },
- "pinData": {
- "PinnedSet": [
- {
- "firstName": "Joe",
- "lastName": "Smith"
- },
- {
- "firstName": "Joan",
- "lastName": "Summers"
- }
- ]
- }
+ "meta": {
+ "instanceId": "a786b722078489c1fa382391a9f3476c2784761624deb2dfb4634827256d51a0"
+ },
+ "nodes": [
+ {
+ "parameters": {
+ "assignments": {
+ "assignments": [
+ {
+ "id": "3058c300-b377-41b7-9c90-a01372f9b581",
+ "name": "firstName",
+ "value": "Joe",
+ "type": "string"
+ },
+ {
+ "id": "bb871662-c23c-4234-ac0c-b78c279bbf34",
+ "name": "lastName",
+ "value": "Smith",
+ "type": "string"
+ }
+ ]
+ },
+ "options": {}
+ },
+ "id": "baee2bf4-5083-4cbe-8e51-4eddcf859ef5",
+ "name": "PinnedSet",
+ "type": "n8n-nodes-base.set",
+ "typeVersion": 3.3,
+ "position": [1120, 380]
+ },
+ {
+ "parameters": {
+ "assignments": {
+ "assignments": [
+ {
+ "id": "a482f1fd-4815-4da4-a733-7beafb43c500",
+ "name": "test",
+ "value": "={{ $('PinnedSet').all().json }}\n{{ $('PinnedSet').item.json.firstName }}\n{{ $('PinnedSet').first().json.firstName }}\n{{ $('PinnedSet').itemMatching(0).json.firstName }}\n{{ $('PinnedSet').itemMatching(1).json.firstName }}\n{{ $('PinnedSet').last().json.firstName }}\n{{ $('PinnedSet').all()[0].json.firstName }}\n{{ $('PinnedSet').all()[1].json.firstName }}\n\n{{ $input.first().json.firstName }}\n{{ $input.last().json.firstName }}\n{{ $input.item.json.firstName }}\n\n{{ $json.firstName }}\n{{ $data.firstName }}\n\n{{ $items()[0].json.firstName }}",
+ "type": "string"
+ }
+ ]
+ },
+ "options": {}
+ },
+ "id": "2a543169-e2c1-4764-ac63-09534310b2b9",
+ "name": "NotPinnedSet1",
+ "type": "n8n-nodes-base.set",
+ "typeVersion": 3.3,
+ "position": [1360, 380]
+ },
+ {
+ "parameters": {},
+ "id": "f36672e5-8c87-480e-a5b8-de9da6b63192",
+ "name": "Start",
+ "type": "n8n-nodes-base.manualTrigger",
+ "position": [920, 380],
+ "typeVersion": 1
+ }
+ ],
+ "connections": {
+ "PinnedSet": {
+ "main": [
+ [
+ {
+ "node": "NotPinnedSet1",
+ "type": "main",
+ "index": 0
+ }
+ ]
+ ]
+ },
+ "Start": {
+ "main": [
+ [
+ {
+ "node": "PinnedSet",
+ "type": "main",
+ "index": 0
+ }
+ ]
+ ]
+ }
+ },
+ "pinData": {
+ "PinnedSet": [
+ {
+ "firstName": "Joe",
+ "lastName": "Smith"
+ },
+ {
+ "firstName": "Joan",
+ "lastName": "Summers"
+ }
+ ]
+ }
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 76e220a796..d94ec4a582 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -19,8 +19,8 @@ catalogs:
specifier: ^4.14.195
version: 4.14.195
'@types/uuid':
- specifier: ^8.3.2
- version: 8.3.4
+ specifier: ^10.0.0
+ version: 10.0.0
'@types/xml2js':
specifier: ^0.4.14
version: 0.4.14
@@ -49,8 +49,8 @@ catalogs:
specifier: 0.10.0
version: 0.10.0
uuid:
- specifier: 8.3.2
- version: 8.3.2
+ specifier: 10.0.0
+ version: 10.0.0
xml2js:
specifier: 0.6.2
version: 0.6.2
@@ -93,7 +93,7 @@ overrides:
semver: ^7.5.4
tslib: ^2.6.2
tsconfig-paths: ^4.2.0
- typescript: ^5.5.2
+ typescript: ^5.6.2
ws: '>=8.17.1'
patchedDependencies:
@@ -123,6 +123,9 @@ importers:
.:
devDependencies:
+ '@biomejs/biome':
+ specifier: ^1.9.0
+ version: 1.9.0
'@n8n_io/eslint-config':
specifier: workspace:*
version: link:packages/@n8n_io/eslint-config
@@ -134,7 +137,7 @@ importers:
version: 6.0.2
jest:
specifier: ^29.6.2
- version: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ version: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
jest-environment-jsdom:
specifier: ^29.6.2
version: 29.6.2
@@ -146,7 +149,10 @@ importers:
version: 29.6.2
jest-mock-extended:
specifier: ^3.0.4
- version: 3.0.4(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(typescript@5.5.2)
+ version: 3.0.4(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(typescript@5.6.2)
+ lefthook:
+ specifier: ^1.7.15
+ version: 1.7.15
nock:
specifier: ^13.3.2
version: 13.3.2
@@ -167,19 +173,19 @@ importers:
version: 7.0.0
ts-jest:
specifier: ^29.1.1
- version: 29.1.1(@babel/core@7.24.0)(@jest/types@29.6.1)(babel-jest@29.6.2(@babel/core@7.24.0))(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(typescript@5.5.2)
+ version: 29.1.1(@babel/core@7.24.0)(@jest/types@29.6.1)(babel-jest@29.6.2(@babel/core@7.24.0))(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(typescript@5.6.2)
tsc-alias:
specifier: ^1.8.7
version: 1.8.7
tsc-watch:
specifier: ^6.0.4
- version: 6.0.4(typescript@5.5.2)
+ version: 6.0.4(typescript@5.6.2)
turbo:
specifier: 2.0.6
version: 2.0.6
typescript:
- specifier: ^5.5.2
- version: 5.5.2
+ specifier: ^5.6.2
+ version: 5.6.2
zx:
specifier: ^8.1.4
version: 8.1.4
@@ -211,6 +217,9 @@ importers:
specifier: ^2.0.5
version: 2.0.5
devDependencies:
+ '@n8n/api-types':
+ specifier: workspace:*
+ version: link:../packages/@n8n/api-types
'@types/lodash':
specifier: 'catalog:'
version: 4.14.195
@@ -258,14 +267,14 @@ importers:
specifier: ^1.8.7
version: 1.8.7
typescript:
- specifier: ^5.5.2
- version: 5.5.2
+ specifier: ^5.6.2
+ version: 5.6.2
packages/@n8n/chat:
dependencies:
'@vueuse/core':
specifier: ^10.11.0
- version: 10.11.0(vue@3.4.21(typescript@5.5.2))
+ version: 10.11.0(vue@3.4.21(typescript@5.6.2))
highlight.js:
specifier: catalog:frontend
version: 11.9.0
@@ -274,13 +283,13 @@ importers:
version: 4.0.1
uuid:
specifier: 'catalog:'
- version: 8.3.2
+ version: 10.0.0
vue:
specifier: catalog:frontend
- version: 3.4.21(typescript@5.5.2)
+ version: 3.4.21(typescript@5.6.2)
vue-markdown-render:
specifier: catalog:frontend
- version: 2.2.1(vue@3.4.21(typescript@5.5.2))
+ version: 2.2.1(vue@3.4.21(typescript@5.6.2))
devDependencies:
'@iconify-json/mdi':
specifier: ^1.1.54
@@ -299,13 +308,13 @@ importers:
version: 5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)
vite-plugin-dts:
specifier: ^3.9.1
- version: 3.9.1(@types/node@18.16.16)(rollup@4.18.0)(typescript@5.5.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
+ version: 3.9.1(@types/node@18.16.16)(rollup@4.18.0)(typescript@5.6.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
vitest:
specifier: catalog:frontend
version: 1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)
vue-tsc:
specifier: catalog:frontend
- version: 2.0.19(typescript@5.5.2)
+ version: 2.0.19(typescript@5.6.2)
packages/@n8n/client-oauth2:
dependencies:
@@ -406,10 +415,10 @@ importers:
version: 0.2.2(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@langchain/community':
specifier: 0.2.32
- version: 0.2.32(ygqwlohwinok7tv3gruzwbtdoi)
+ version: 0.2.32(wjcprhsh6kptjwisshzaqzfaay)
'@langchain/core':
specifier: 'catalog:'
- version: 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ version: 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@langchain/google-genai':
specifier: 0.0.26
version: 0.0.26(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
@@ -427,25 +436,25 @@ importers:
version: 0.0.4(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@langchain/openai':
specifier: 0.2.10
- version: 0.2.10(encoding@0.1.13)(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))
+ version: 0.2.10(encoding@0.1.13)(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))
'@langchain/pinecone':
specifier: 0.0.9
- version: 0.0.9(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ version: 0.0.9(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@langchain/qdrant':
specifier: 0.0.5
- version: 0.0.5(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(typescript@5.5.2)
+ version: 0.0.5(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(typescript@5.6.2)
'@langchain/redis':
specifier: 0.0.5
- version: 0.0.5(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ version: 0.0.5(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@langchain/textsplitters':
specifier: 0.0.3
- version: 0.0.3(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ version: 0.0.3(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@mozilla/readability':
specifier: ^0.5.0
version: 0.5.0
'@n8n/typeorm':
specifier: 0.3.20-10
- version: 0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.12)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ version: 0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.12)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
'@n8n/vm2':
specifier: 3.9.25
version: 3.9.25
@@ -454,7 +463,7 @@ importers:
version: 3.0.0
'@qdrant/js-client-rest':
specifier: 1.9.0
- version: 1.9.0(typescript@5.5.2)
+ version: 1.9.0(typescript@5.6.2)
'@supabase/supabase-js':
specifier: 2.45.3
version: 2.45.3
@@ -463,7 +472,7 @@ importers:
version: 8.11.6
'@xata.io/client':
specifier: 0.28.4
- version: 0.28.4(typescript@5.5.2)
+ version: 0.28.4(typescript@5.6.2)
basic-auth:
specifier: 'catalog:'
version: 2.0.1
@@ -496,7 +505,7 @@ importers:
version: 2.1.0
langchain:
specifier: 0.2.18
- version: 0.2.18(xd7d7p3bjr65bts4h63vmtvguu)
+ version: 0.2.18(7abrqxy75ksyaxunbmagq3jube)
lodash:
specifier: 'catalog:'
version: 4.17.21
@@ -577,7 +586,7 @@ importers:
version: 8.1.4(@types/react@18.0.27)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@storybook/addon-interactions':
specifier: ^8.1.4
- version: 8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
+ version: 8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
'@storybook/addon-links':
specifier: ^8.1.4
version: 8.1.4(react@18.2.0)
@@ -589,13 +598,13 @@ importers:
version: 8.1.4(@types/react@18.0.27)(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@storybook/test':
specifier: ^8.1.4
- version: 8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
+ version: 8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
'@storybook/vue3':
specifier: ^8.1.4
- version: 8.1.4(encoding@0.1.13)(prettier@3.2.5)(vue@3.4.21(typescript@5.5.2))
+ version: 8.1.4(encoding@0.1.13)(prettier@3.2.5)(vue@3.4.21(typescript@5.6.2))
'@storybook/vue3-vite':
specifier: ^8.1.4
- version: 8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.5.2))
+ version: 8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.6.2))
chromatic:
specifier: ^11.4.1
version: 11.4.1
@@ -610,46 +619,43 @@ importers:
version: 8.56.5
'@typescript-eslint/eslint-plugin':
specifier: ^7.2.0
- version: 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
+ version: 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)
'@typescript-eslint/parser':
specifier: ^7.2.0
- version: 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ version: 7.2.0(eslint@8.57.0)(typescript@5.6.2)
'@vue/eslint-config-prettier':
specifier: ^9.0.0
version: 9.0.0(@types/eslint@8.56.5)(eslint@8.57.0)(prettier@3.2.5)
'@vue/eslint-config-typescript':
specifier: ^13.0.0
- version: 13.0.0(eslint-plugin-vue@9.23.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.2)
+ version: 13.0.0(eslint-plugin-vue@9.23.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.6.2)
eslint:
specifier: ^8.57.0
version: 8.57.0
eslint-config-airbnb-typescript:
specifier: ^18.0.0
- version: 18.0.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0)
+ version: 18.0.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0)
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.57.0)
eslint-import-resolver-typescript:
specifier: ^3.6.1
- version: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0)
+ version: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0)
eslint-plugin-import:
specifier: ^2.29.1
- version: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
+ version: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
eslint-plugin-lodash:
specifier: ^7.4.0
version: 7.4.0(eslint@8.57.0)
eslint-plugin-n8n-local-rules:
specifier: ^1.0.0
version: 1.0.0
- eslint-plugin-prettier:
- specifier: ^5.1.3
- version: 5.1.3(@types/eslint@8.56.5)(eslint-config-prettier@9.1.0(eslint@8.57.0))(eslint@8.57.0)(prettier@3.2.5)
eslint-plugin-unicorn:
specifier: ^51.0.1
version: 51.0.1(eslint@8.57.0)
eslint-plugin-unused-imports:
specifier: ^3.1.0
- version: 3.1.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)
+ version: 3.1.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)
eslint-plugin-vue:
specifier: ^9.23.0
version: 9.23.0(eslint@8.57.0)
@@ -688,7 +694,7 @@ importers:
version: link:../@n8n/permissions
'@n8n/typeorm':
specifier: 0.3.20-10
- version: 0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.14)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ version: 0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.14)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
'@n8n_io/ai-assistant-sdk':
specifier: 1.9.4
version: 1.9.4
@@ -916,7 +922,7 @@ importers:
version: 0.10.0(patch_hash=sk6omkefrosihg7lmqbzh7vfxe)
uuid:
specifier: 'catalog:'
- version: 8.3.2
+ version: 10.0.0
validator:
specifier: 13.7.0
version: 13.7.0
@@ -1001,7 +1007,7 @@ importers:
version: 1.1.2
'@types/uuid':
specifier: 'catalog:'
- version: 8.3.4
+ version: 10.0.0
'@types/validator':
specifier: ^13.7.0
version: 13.7.7
@@ -1031,7 +1037,7 @@ importers:
version: 4.15.3(encoding@0.1.13)
ts-essentials:
specifier: ^7.0.3
- version: 7.0.3(typescript@5.5.2)
+ version: 7.0.3(typescript@5.6.2)
packages/core:
dependencies:
@@ -1094,7 +1100,7 @@ importers:
version: 0.10.0(patch_hash=sk6omkefrosihg7lmqbzh7vfxe)
uuid:
specifier: 'catalog:'
- version: 8.3.2
+ version: 10.0.0
xml2js:
specifier: 'catalog:'
version: 0.6.2
@@ -1119,7 +1125,7 @@ importers:
version: 2.1.1
'@types/uuid':
specifier: 'catalog:'
- version: 8.3.4
+ version: 10.0.0
'@types/xml2js':
specifier: 'catalog:'
version: 0.4.14
@@ -1134,10 +1140,10 @@ importers:
version: 5.15.4
'@fortawesome/vue-fontawesome':
specifier: ^3.0.3
- version: 3.0.3(@fortawesome/fontawesome-svg-core@1.2.36)(vue@3.4.21(typescript@5.5.2))
+ version: 3.0.3(@fortawesome/fontawesome-svg-core@1.2.36)(vue@3.4.21(typescript@5.6.2))
element-plus:
specifier: 2.4.3
- version: 2.4.3(vue@3.4.21(typescript@5.5.2))
+ version: 2.4.3(vue@3.4.21(typescript@5.6.2))
markdown-it:
specifier: ^13.0.2
version: 13.0.2
@@ -1158,13 +1164,13 @@ importers:
version: 2.12.1
vue:
specifier: catalog:frontend
- version: 3.4.21(typescript@5.5.2)
+ version: 3.4.21(typescript@5.6.2)
vue-boring-avatars:
specifier: ^1.3.0
- version: 1.3.0(vue@3.4.21(typescript@5.5.2))
+ version: 1.3.0(vue@3.4.21(typescript@5.6.2))
vue-router:
specifier: ^4.2.2
- version: 4.2.2(vue@3.4.21(typescript@5.5.2))
+ version: 4.2.2(vue@3.4.21(typescript@5.6.2))
xss:
specifier: ^1.0.14
version: 1.0.14
@@ -1174,13 +1180,13 @@ importers:
version: link:../@n8n/storybook
'@testing-library/jest-dom':
specifier: ^6.1.5
- version: 6.1.5(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
+ version: 6.1.5(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
'@testing-library/user-event':
specifier: ^14.5.1
version: 14.5.1(@testing-library/dom@9.3.4)
'@testing-library/vue':
specifier: ^8.0.1
- version: 8.0.1(@vue/compiler-sfc@3.4.21)(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
+ version: 8.0.1(@vue/compiler-sfc@3.4.21)(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))
'@types/markdown-it':
specifier: ^13.0.9
version: 13.0.9
@@ -1195,13 +1201,10 @@ importers:
version: 2.11.0
'@vitejs/plugin-vue':
specifier: ^5.0.4
- version: 5.0.4(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.5.2))
+ version: 5.0.4(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.6.2))
'@vitest/coverage-v8':
specifier: catalog:frontend
version: 1.6.0(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
- '@vue/test-utils':
- specifier: ^2.4.3
- version: 2.4.3(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
autoprefixer:
specifier: ^10.4.19
version: 10.4.19(postcss@8.4.38)
@@ -1213,13 +1216,13 @@ importers:
version: 1.64.1
tailwindcss:
specifier: ^3.4.3
- version: 3.4.3(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ version: 3.4.3(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
unplugin-icons:
specifier: ^0.19.0
version: 0.19.0(@vue/compiler-sfc@3.4.21)(vue-template-compiler@2.7.14)
unplugin-vue-components:
specifier: ^0.27.2
- version: 0.27.3(@babel/parser@7.24.6)(rollup@4.18.0)(vue@3.4.21(typescript@5.5.2))
+ version: 0.27.3(@babel/parser@7.24.6)(rollup@4.18.0)(vue@3.4.21(typescript@5.6.2))
vite:
specifier: catalog:frontend
version: 5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)
@@ -1228,10 +1231,10 @@ importers:
version: 1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)
vitest-mock-extended:
specifier: catalog:frontend
- version: 1.3.1(typescript@5.5.2)(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
+ version: 1.3.1(typescript@5.6.2)(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
vue-tsc:
specifier: catalog:frontend
- version: 2.0.19(typescript@5.5.2)
+ version: 2.0.19(typescript@5.6.2)
packages/editor-ui:
dependencies:
@@ -1276,7 +1279,7 @@ importers:
version: 5.15.4
'@fortawesome/vue-fontawesome':
specifier: '*'
- version: 3.0.3(@fortawesome/fontawesome-svg-core@1.2.36)(vue@3.4.21(typescript@5.5.2))
+ version: 3.0.3(@fortawesome/fontawesome-svg-core@1.2.36)(vue@3.4.21(typescript@5.6.2))
'@jsplumb/browser-ui':
specifier: ^5.13.2
version: 5.13.2
@@ -1312,25 +1315,25 @@ importers:
version: link:../@n8n/permissions
'@vue-flow/background':
specifier: ^1.3.0
- version: 1.3.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
+ version: 1.3.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))
'@vue-flow/controls':
specifier: ^1.1.1
- version: 1.1.1(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
+ version: 1.1.1(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))
'@vue-flow/core':
specifier: ^1.33.5
- version: 1.33.5(vue@3.4.21(typescript@5.5.2))
+ version: 1.33.5(vue@3.4.21(typescript@5.6.2))
'@vue-flow/minimap':
specifier: ^1.4.0
- version: 1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
+ version: 1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))
'@vue-flow/node-resizer':
specifier: ^1.4.0
- version: 1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
+ version: 1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))
'@vueuse/components':
specifier: ^10.11.0
- version: 10.11.0(vue@3.4.21(typescript@5.5.2))
+ version: 10.11.0(vue@3.4.21(typescript@5.6.2))
'@vueuse/core':
specifier: ^10.11.0
- version: 10.11.0(vue@3.4.21(typescript@5.5.2))
+ version: 10.11.0(vue@3.4.21(typescript@5.6.2))
axios:
specifier: 'catalog:'
version: 1.7.4(debug@4.3.6)
@@ -1384,13 +1387,13 @@ importers:
version: link:../workflow
pinia:
specifier: ^2.1.6
- version: 2.1.6(typescript@5.5.2)(vue@3.4.21(typescript@5.5.2))
+ version: 2.1.6(typescript@5.6.2)(vue@3.4.21(typescript@5.6.2))
prettier:
specifier: ^3.2.5
version: 3.2.5
qrcode.vue:
specifier: ^3.3.4
- version: 3.3.4(vue@3.4.21(typescript@5.5.2))
+ version: 3.3.4(vue@3.4.21(typescript@5.6.2))
stream-browserify:
specifier: ^3.0.0
version: 3.0.0
@@ -1399,31 +1402,31 @@ importers:
version: 4.0.2
uuid:
specifier: 'catalog:'
- version: 8.3.2
+ version: 10.0.0
v3-infinite-loading:
specifier: ^1.2.2
version: 1.2.2
vue:
specifier: catalog:frontend
- version: 3.4.21(typescript@5.5.2)
+ version: 3.4.21(typescript@5.6.2)
vue-agile:
specifier: ^2.0.0
version: 2.0.0
vue-chartjs:
specifier: ^5.2.0
- version: 5.2.0(chart.js@4.4.0)(vue@3.4.21(typescript@5.5.2))
+ version: 5.2.0(chart.js@4.4.0)(vue@3.4.21(typescript@5.6.2))
vue-i18n:
specifier: ^9.2.2
- version: 9.2.2(vue@3.4.21(typescript@5.5.2))
+ version: 9.2.2(vue@3.4.21(typescript@5.6.2))
vue-json-pretty:
specifier: 2.2.4
- version: 2.2.4(vue@3.4.21(typescript@5.5.2))
+ version: 2.2.4(vue@3.4.21(typescript@5.6.2))
vue-markdown-render:
specifier: catalog:frontend
- version: 2.2.1(vue@3.4.21(typescript@5.5.2))
+ version: 2.2.1(vue@3.4.21(typescript@5.6.2))
vue-router:
specifier: ^4.2.2
- version: 4.2.2(vue@3.4.21(typescript@5.5.2))
+ version: 4.2.2(vue@3.4.21(typescript@5.6.2))
vue3-touch-events:
specifier: ^4.1.3
version: 4.1.3
@@ -1439,7 +1442,7 @@ importers:
version: 2.2.230
'@pinia/testing':
specifier: ^0.1.3
- version: 0.1.3(pinia@2.1.6(typescript@5.5.2)(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
+ version: 0.1.3(pinia@2.1.6(typescript@5.6.2)(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))
'@sentry/vite-plugin':
specifier: ^2.5.0
version: 2.5.0(encoding@0.1.13)
@@ -1463,7 +1466,7 @@ importers:
version: 3.2.0
'@types/uuid':
specifier: 'catalog:'
- version: 8.3.4
+ version: 10.0.0
'@vitest/coverage-v8':
specifier: catalog:frontend
version: 1.6.0(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
@@ -1478,7 +1481,7 @@ importers:
version: 0.19.0(@vue/compiler-sfc@3.4.21)(vue-template-compiler@2.7.14)
unplugin-vue-components:
specifier: ^0.27.2
- version: 0.27.3(@babel/parser@7.24.6)(rollup@4.18.0)(vue@3.4.21(typescript@5.5.2))
+ version: 0.27.3(@babel/parser@7.24.6)(rollup@4.18.0)(vue@3.4.21(typescript@5.6.2))
vite:
specifier: catalog:frontend
version: 5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)
@@ -1487,10 +1490,10 @@ importers:
version: 1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)
vitest-mock-extended:
specifier: catalog:frontend
- version: 1.3.1(typescript@5.5.2)(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
+ version: 1.3.1(typescript@5.6.2)(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))
vue-tsc:
specifier: catalog:frontend
- version: 2.0.19(typescript@5.5.2)
+ version: 2.0.19(typescript@5.6.2)
packages/node-dev:
dependencies:
@@ -1710,7 +1713,7 @@ importers:
version: 0.10.0(patch_hash=sk6omkefrosihg7lmqbzh7vfxe)
uuid:
specifier: 'catalog:'
- version: 8.3.2
+ version: 10.0.0
xlsx:
specifier: https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz
version: https://cdn.sheetjs.com/xlsx-0.20.2/xlsx-0.20.2.tgz
@@ -1783,13 +1786,13 @@ importers:
version: 5.3.2
'@types/uuid':
specifier: 'catalog:'
- version: 8.3.4
+ version: 10.0.0
'@types/xml2js':
specifier: 'catalog:'
version: 0.4.14
eslint-plugin-n8n-nodes-base:
specifier: ^1.16.2
- version: 1.16.2(eslint@8.57.0)(typescript@5.5.2)
+ version: 1.16.2(eslint@8.57.0)(typescript@5.6.2)
n8n-core:
specifier: workspace:*
version: link:../core
@@ -3137,6 +3140,59 @@ packages:
'@bcoe/v8-coverage@0.2.3':
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
+ '@biomejs/biome@1.9.0':
+ resolution: {integrity: sha512-NlWh2F1wbxB3O/wE+aohGL0BziTS6e+6+dyFvpdeqLsbQZY7EsiklFb9W5Xs41U4vEmY7ANgdNp+oVDij6sQdA==}
+ engines: {node: '>=14.21.3'}
+ hasBin: true
+
+ '@biomejs/cli-darwin-arm64@1.9.0':
+ resolution: {integrity: sha512-2w9v/NRtYSmodx5QWQ49OGcyGKSECdWKbzc7n532Iq5sBhkKk996fd19icT6BuL54f01KFKRCRibAW+A2rg1Kw==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [darwin]
+
+ '@biomejs/cli-darwin-x64@1.9.0':
+ resolution: {integrity: sha512-fBVt8jJQi0zX0SJ1C+tdzUbRpuX/07sgtBXEhunWRkPjdi6W/2S1sYHQ1wKn4OKiRAKfHM2Cf2FNO7hQvY61dA==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [darwin]
+
+ '@biomejs/cli-linux-arm64-musl@1.9.0':
+ resolution: {integrity: sha512-Jy84mZ4vcppdmWMgQWOCfd8qIVC/vHmlaS5gy7GXkdWlBKSQ56YxEXTU58MHTbZ16LwJQpK2IulqRCC/rqWLBA==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@biomejs/cli-linux-arm64@1.9.0':
+ resolution: {integrity: sha512-l8U2lcqsl9yKPP5WUdIrKH//C1pWyM2cSUfcTBn6GSvXmsSjBNEdGSdM4Wfne777Oe/9ONaD1Ga53U2HksHHLw==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [linux]
+
+ '@biomejs/cli-linux-x64-musl@1.9.0':
+ resolution: {integrity: sha512-N3enoFoIrkB6qJWyYfTiYmFdB1R/Mrij1dd1xBHqxxCKZY9GRkEswRX3F1Uqzo5T+9Iu8nAQobDqI/ygicYy/Q==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [linux]
+
+ '@biomejs/cli-linux-x64@1.9.0':
+ resolution: {integrity: sha512-8jAzjrrJTj510pwq4aVs7ZKkOvEy1D+nzl9DKvrPh4TOyUw5Ie+0EDwXGE2RAkCKHkGNOQBZ78WtIdsATgz5sA==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [linux]
+
+ '@biomejs/cli-win32-arm64@1.9.0':
+ resolution: {integrity: sha512-AIjwJTGfdWGMRluSQ9pDB29nzce077dfHh0/HMqzztKzgD3spyuo2R9VoaFpbR0hLHPWEH6g6OxxDO7hfkXNkQ==}
+ engines: {node: '>=14.21.3'}
+ cpu: [arm64]
+ os: [win32]
+
+ '@biomejs/cli-win32-x64@1.9.0':
+ resolution: {integrity: sha512-4/4wTjNSoyNkm1SzcUaStDx46baX1VJRXtUoeEHjX9LfedR5N3qwZz5KfrRUnCd2fl5bmXK1CwMqKBkoF6zEiA==}
+ engines: {node: '>=14.21.3'}
+ cpu: [x64]
+ os: [win32]
+
'@chromatic-com/storybook@1.5.0':
resolution: {integrity: sha512-LkLKv7SWu/6kGep1ft2HA1T/cm14wU0zoW71gE4cZRcgUoRQJtyhITFTLHrjqAxz6bVqNgqzQtd5oBZ2nK3L3g==}
engines: {node: '>=16.0.0', yarn: '>=1.22.18'}
@@ -4451,7 +4507,7 @@ packages:
resolution: {integrity: sha512-YiX/IskbRCoAY2ujyPDI6FBcO0ygAS4pgkGaJ7DcrJFh4SZV2XHs+u0KM7mO72RWJn1eJQFF2PQwxG+401xxJg==}
engines: {node: '>=18.0.0', pnpm: '>=8'}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
'@qdrant/openapi-typescript-fetch@1.2.6':
resolution: {integrity: sha512-oQG/FejNpItrxRHoyctYvT3rwGZOnK4jr3JdppO/c78ktDvkWiPXPHNsrDf33K9sZdRb6PR7gi4noIapu5q4HA==}
@@ -5355,7 +5411,7 @@ packages:
resolution: {integrity: sha512-wKcLPqy8OvI5GeWJclrzeW2FaEMXFHLO0w6kIsim0XL4QDSGSPTz+aEzVJYmhuwYFbRY/lpMkdWC4ouv7xSwWQ==}
peerDependencies:
'@preact/preset-vite': '*'
- typescript: ^5.5.2
+ typescript: ^5.6.2
vite: ^4.0.0 || ^5.0.0
vite-plugin-glimmerx: '*'
peerDependenciesMeta:
@@ -6012,8 +6068,8 @@ packages:
'@types/uuid@8.3.4':
resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==}
- '@types/uuid@9.0.7':
- resolution: {integrity: sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g==}
+ '@types/uuid@9.0.8':
+ resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
'@types/validator@13.7.10':
resolution: {integrity: sha512-t1yxFAR2n0+VO6hd/FJ9F2uezAZVWHLmpmlJzm1eX03+H7+HsuTAp7L8QJs+2pQCfWkP1+EXsGK9Z9v7o/qPVQ==}
@@ -6255,7 +6311,7 @@ packages:
peerDependencies:
eslint: ^8.56.0
eslint-plugin-vue: ^9.0.0
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
typescript:
optional: true
@@ -6263,7 +6319,7 @@ packages:
'@vue/language-core@1.8.27':
resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
typescript:
optional: true
@@ -6271,7 +6327,7 @@ packages:
'@vue/language-core@2.0.19':
resolution: {integrity: sha512-A9EGOnvb51jOvnCYoRLnMP+CcoPlbZVxI9gZXE/y2GksRWM6j/PrLEIC++pnosWTN08tFpJgxhSS//E9v/Sg+Q==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
typescript:
optional: true
@@ -6329,7 +6385,7 @@ packages:
'@xata.io/client@0.28.4':
resolution: {integrity: sha512-B02WHIA/ViHya84XvH6JCo13rd5h4S5vVyY2aYi6fIcjDIbCpsSLJ4oGWpdodovRYeAZy9Go4OhdyZwMIRC4BQ==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
'@xmldom/xmldom@0.8.6':
resolution: {integrity: sha512-uRjjusqpoqfmRkTaNuLJ2VohVr67Q5YwDATW3VU7PfzTj6IRaihGrYI7zckGZjxQPBIp63nfvJbM+Yu5ICh0Bg==}
@@ -9445,7 +9501,7 @@ packages:
resolution: {integrity: sha512-2ynEZ7IEJNrhrgshklDMhrOdnmW4Nt+PhkyRqZxRgpwMo7JjmFWMzyp0+eSyk+H9KK1QjXI5xTZIw6x7cVDcRg==}
peerDependencies:
jest: ^24.0.0 || ^25.0.0 || ^26.0.0 || ^27.0.0 || ^28.0.0 || ^29.0.0
- typescript: ^5.5.2
+ typescript: ^5.6.2
jest-mock@29.6.2:
resolution: {integrity: sha512-hoSv3lb3byzdKfwqCuT6uTscan471GUECqgNYykg6ob0yiAw3zYc7OrPnI9Qv8Wwoa4lC7AZ9hyS4AiIx5U2zg==}
@@ -9956,6 +10012,60 @@ packages:
leac@0.6.0:
resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==}
+ lefthook-darwin-arm64@1.7.15:
+ resolution: {integrity: sha512-o8JgCnLM7UgF9g0MwarHJFoj6aVSSkUInHpsQZegV1c7CVQY/LIXgSeAWRb9XBvuUjByJ/HiHFMp9/hAALTwxQ==}
+ cpu: [arm64]
+ os: [darwin]
+
+ lefthook-darwin-x64@1.7.15:
+ resolution: {integrity: sha512-nrdoex0icmXYl7AAvG7WtfEzjQtX/kWvM88jPu/gijH6VhAjp110Y8VScB7rWOcApb5kNNeqd1nKMAFgZ8KhAg==}
+ cpu: [x64]
+ os: [darwin]
+
+ lefthook-freebsd-arm64@1.7.15:
+ resolution: {integrity: sha512-zl1TPynklJZZ/YsWb2H0gfErQbey318i2W85wIKGEk8kC2UzOgYTuPffnfi7kANei9ntZnhvGgilc6tqYOPuGQ==}
+ cpu: [arm64]
+ os: [freebsd]
+
+ lefthook-freebsd-x64@1.7.15:
+ resolution: {integrity: sha512-/gKPwhWhZ3Q/efGs73/qw6nyR4WCT74oSTgn8wabAJO5+T/2FXTKzo7IiKkQmScmY5OcnD/0teJbJZ17VWSSOg==}
+ cpu: [x64]
+ os: [freebsd]
+
+ lefthook-linux-arm64@1.7.15:
+ resolution: {integrity: sha512-re2f8WmYw19n8ojit0rnKbERAzD1/iCpU/Y8anXOjD/ROw/cpSfO88uKQrUCNY9Rp4XLtkkp9oDJs3Eg7JS7vA==}
+ cpu: [arm64]
+ os: [linux]
+
+ lefthook-linux-x64@1.7.15:
+ resolution: {integrity: sha512-Kj6ieTlhFGlbPDyVFeOb296MS9x/Jj5y/xTPLBM+EKbdsTJSvUYu5FdtEWfhpLyWmPfkZtULHcTQE1hoo9Q4Cg==}
+ cpu: [x64]
+ os: [linux]
+
+ lefthook-openbsd-arm64@1.7.15:
+ resolution: {integrity: sha512-85amE23mJ4BC9OThLkt+QCeVwue2Cr0ezN9LSwP0h8+royyj7YRcSu0VM/Et3B9LO50T2bpdI9norOqTcPZ9yA==}
+ cpu: [arm64]
+ os: [openbsd]
+
+ lefthook-openbsd-x64@1.7.15:
+ resolution: {integrity: sha512-vXx/PpcalFgdvqkoHLI4KTGZp0ti+VCCL7RqDTA6n+GZpxPTWEXSOz3GuwNALX93Dn6MOYQYktKtXADwy24fcA==}
+ cpu: [x64]
+ os: [openbsd]
+
+ lefthook-windows-arm64@1.7.15:
+ resolution: {integrity: sha512-jPKdQOLWQLRPO3VfI3ptpmdQBBsXTwaCLKXMo/gcSyU0xE/ltPD4QqvHzTAFJo00VcKRHjv9QeH69qhENjJtjw==}
+ cpu: [arm64]
+ os: [win32]
+
+ lefthook-windows-x64@1.7.15:
+ resolution: {integrity: sha512-tlkSU669+b64AsqytGy1W3au7h8kFjt5ejLhTkErJpylTqThZIHm/GI0wUmpX+ud8kekM+9j407dweAHYOQ1XA==}
+ cpu: [x64]
+ os: [win32]
+
+ lefthook@1.7.15:
+ resolution: {integrity: sha512-HW2mYkhg0a3RH2t57+ZJwacJiSIuDEhsXQAaCw6iGeN7zowdUV7g5QtnRdFdPkaK2eaNFpG6Rp0GsTrl/v0gNg==}
+ hasBin: true
+
leven@3.1.0:
resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==}
engines: {node: '>=6'}
@@ -11283,7 +11393,7 @@ packages:
resolution: {integrity: sha512-bIU6QuE5qZviMmct5XwCesXelb5VavdOWKWaB17ggk++NUwQWWbP5YnsONTk3b752QkW9sACiR81rorpeOMSvQ==}
peerDependencies:
'@vue/composition-api': ^1.4.0
- typescript: ^5.5.2
+ typescript: ^5.6.2
vue: ^2.6.14 || ^3.3.0
peerDependenciesMeta:
'@vue/composition-api':
@@ -12783,7 +12893,7 @@ packages:
resolution: {integrity: sha512-lC/RGlPmwdrIBFTX59wwNzqh7aR2otPNPR/5brHZm/XKFYKsfqxihXUe9pU3JI+3vGkl+vyCoNNnPhJn3aLK1A==}
engines: {node: '>=16.13.0'}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
ts-dedent@2.2.0:
resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==}
@@ -12792,12 +12902,12 @@ packages:
ts-essentials@7.0.3:
resolution: {integrity: sha512-8+gr5+lqO3G84KdiTSMRLtuyJ+nTBVRKuCrK4lidMPdVeEp0uqC875uE5NMcaA7YYMN7XsNiFQuMvasF8HT/xQ==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
ts-essentials@9.4.2:
resolution: {integrity: sha512-mB/cDhOvD7pg3YCLk2rOtejHjjdSi9in/IBYE13S+8WA5FBSraYf4V/ws55uvs0IvQ/l0wBOlXy5yBNZ9Bl8ZQ==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
typescript:
optional: true
@@ -12822,7 +12932,7 @@ packages:
babel-jest: ^29.0.0
esbuild: '*'
jest: ^29.0.0
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
'@babel/core':
optional: true
@@ -12843,7 +12953,7 @@ packages:
'@swc/core': '>=1.2.50'
'@swc/wasm': '>=1.2.50'
'@types/node': ^18.16.16
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
'@swc/core':
optional: true
@@ -12867,7 +12977,7 @@ packages:
engines: {node: '>=12.12.0'}
hasBin: true
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
tsconfig-paths@4.2.0:
resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==}
@@ -13017,8 +13127,8 @@ packages:
typedi@0.10.0:
resolution: {integrity: sha512-v3UJF8xm68BBj6AF4oQML3ikrfK2c9EmZUyLOfShpJuItAqVBHWP/KtpGinkSsIiP6EZyyb6Z3NXyW9dgS9X1w==}
- typescript@5.5.2:
- resolution: {integrity: sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew==}
+ typescript@5.6.2:
+ resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==}
engines: {node: '>=14.17'}
hasBin: true
@@ -13288,7 +13398,7 @@ packages:
resolution: {integrity: sha512-rVp2KM9Ue22NGWB8dNtWEr+KekN3rIgz1tWD050QnRGlriUCmaDwa7qA5zDEjbXg5lAXhYMSBJtx3q3hQIJZSg==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
vite: '*'
peerDependenciesMeta:
vite:
@@ -13325,7 +13435,7 @@ packages:
vitest-mock-extended@1.3.1:
resolution: {integrity: sha512-OpghYjh4BDuQ/Mzs3lFMQ1QRk9D8/2O9T47MLUA5eLn7K4RWIy+MfIivYOWEyxjTENjsBnzgMihDjyNalN/K0Q==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
vitest: '>=0.31.1'
vitest@1.6.0:
@@ -13374,7 +13484,7 @@ packages:
vue-component-meta@2.0.19:
resolution: {integrity: sha512-Iv6VWXnlkUyJZvgadxYLcZajb58qUuIrQUePGbm0yZQEKMTb2T09UK57hz35TU4lb7zobierICDKvzInEpOGpg==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
typescript:
optional: true
@@ -13455,13 +13565,13 @@ packages:
resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==}
hasBin: true
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
vue-tsc@2.0.19:
resolution: {integrity: sha512-JWay5Zt2/871iodGF72cELIbcAoPyhJxq56mPPh+M2K7IwI688FMrFKc/+DvB05wDWEuCPexQJ6L10zSwzzapg==}
hasBin: true
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
vue3-touch-events@4.1.3:
resolution: {integrity: sha512-uXTclRzn7de1mgiDIZ8N4J/wnWl1vBPLTWr60fqoLXu7ifhDKpl83Q2m9qA20KfEiAy+L4X/xXGc5ptGmdPh4A==}
@@ -13469,7 +13579,7 @@ packages:
vue@3.4.21:
resolution: {integrity: sha512-5hjyV/jLEIKD/jYl4cavMcnzKwjMKohureP8ejn3hhEjwhWIhWeuzL2kJAjzl/WyVsgPY56Sy4Z40C3lVshxXA==}
peerDependencies:
- typescript: ^5.5.2
+ typescript: ^5.6.2
peerDependenciesMeta:
typescript:
optional: true
@@ -16142,6 +16252,41 @@ snapshots:
'@bcoe/v8-coverage@0.2.3': {}
+ '@biomejs/biome@1.9.0':
+ optionalDependencies:
+ '@biomejs/cli-darwin-arm64': 1.9.0
+ '@biomejs/cli-darwin-x64': 1.9.0
+ '@biomejs/cli-linux-arm64': 1.9.0
+ '@biomejs/cli-linux-arm64-musl': 1.9.0
+ '@biomejs/cli-linux-x64': 1.9.0
+ '@biomejs/cli-linux-x64-musl': 1.9.0
+ '@biomejs/cli-win32-arm64': 1.9.0
+ '@biomejs/cli-win32-x64': 1.9.0
+
+ '@biomejs/cli-darwin-arm64@1.9.0':
+ optional: true
+
+ '@biomejs/cli-darwin-x64@1.9.0':
+ optional: true
+
+ '@biomejs/cli-linux-arm64-musl@1.9.0':
+ optional: true
+
+ '@biomejs/cli-linux-arm64@1.9.0':
+ optional: true
+
+ '@biomejs/cli-linux-x64-musl@1.9.0':
+ optional: true
+
+ '@biomejs/cli-linux-x64@1.9.0':
+ optional: true
+
+ '@biomejs/cli-win32-arm64@1.9.0':
+ optional: true
+
+ '@biomejs/cli-win32-x64@1.9.0':
+ optional: true
+
'@chromatic-com/storybook@1.5.0(react@18.2.0)':
dependencies:
chromatic: 11.4.1
@@ -16309,9 +16454,9 @@ snapshots:
'@discoveryjs/json-ext@0.5.7': {}
- '@element-plus/icons-vue@2.3.1(vue@3.4.21(typescript@5.5.2))':
+ '@element-plus/icons-vue@2.3.1(vue@3.4.21(typescript@5.6.2))':
dependencies:
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
'@emotion/is-prop-valid@1.2.1':
dependencies:
@@ -16453,10 +16598,10 @@ snapshots:
dependencies:
'@fortawesome/fontawesome-common-types': 0.2.36
- '@fortawesome/vue-fontawesome@3.0.3(@fortawesome/fontawesome-svg-core@1.2.36)(vue@3.4.21(typescript@5.5.2))':
+ '@fortawesome/vue-fontawesome@3.0.3(@fortawesome/fontawesome-svg-core@1.2.36)(vue@3.4.21(typescript@5.6.2))':
dependencies:
'@fortawesome/fontawesome-svg-core': 1.2.36
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
'@gar/promisify@1.1.3':
optional: true
@@ -16469,8 +16614,8 @@ snapshots:
url-join: 4.0.1
zod: 3.23.8
optionalDependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- langchain: 0.2.18(xd7d7p3bjr65bts4h63vmtvguu)
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ langchain: 0.2.18(7abrqxy75ksyaxunbmagq3jube)
transitivePeerDependencies:
- encoding
@@ -16478,7 +16623,7 @@ snapshots:
dependencies:
'@supercharge/promise-pool': 3.1.0
semver: 7.6.0
- typescript: 5.5.2
+ typescript: 5.6.2
'@google-ai/generativelanguage@2.5.0(encoding@0.1.13)':
dependencies:
@@ -16654,7 +16799,7 @@ snapshots:
jest-util: 29.6.2
slash: 3.0.0
- '@jest/core@29.6.2(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))':
+ '@jest/core@29.6.2(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))':
dependencies:
'@jest/console': 29.6.2
'@jest/reporters': 29.6.2
@@ -16668,7 +16813,7 @@ snapshots:
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.5.0
- jest-config: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ jest-config: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
jest-haste-map: 29.6.2
jest-message-util: 29.6.2
jest-regex-util: 29.4.3
@@ -16893,7 +17038,7 @@ snapshots:
'@langchain/anthropic@0.2.16(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
dependencies:
'@anthropic-ai/sdk': 0.25.2(encoding@0.1.13)
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
fast-xml-parser: 4.4.1
zod: 3.23.8
zod-to-json-schema: 3.23.2(zod@3.23.8)
@@ -16905,7 +17050,7 @@ snapshots:
'@langchain/cohere@0.2.2(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
cohere-ai: 7.13.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(encoding@0.1.13)
uuid: 10.0.0
zod: 3.23.8
@@ -16917,16 +17062,16 @@ snapshots:
- langchain
- openai
- '@langchain/community@0.2.32(ygqwlohwinok7tv3gruzwbtdoi)':
+ '@langchain/community@0.2.32(wjcprhsh6kptjwisshzaqzfaay)':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/openai': 0.2.10(encoding@0.1.13)(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/openai': 0.2.10(encoding@0.1.13)(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))
binary-extensions: 2.2.0
expr-eval: 2.0.2
flat: 5.0.2
js-yaml: 4.1.0
- langchain: 0.2.18(xd7d7p3bjr65bts4h63vmtvguu)
- langsmith: 0.1.39(@langchain/core@0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ langchain: 0.2.18(7abrqxy75ksyaxunbmagq3jube)
+ langsmith: 0.1.39(@langchain/core@0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
uuid: 10.0.0
zod: 3.23.8
zod-to-json-schema: 3.23.2(zod@3.23.8)
@@ -16943,13 +17088,13 @@ snapshots:
'@huggingface/inference': 2.8.0
'@mozilla/readability': 0.5.0
'@pinecone-database/pinecone': 3.0.0
- '@qdrant/js-client-rest': 1.9.0(typescript@5.5.2)
+ '@qdrant/js-client-rest': 1.9.0(typescript@5.6.2)
'@smithy/eventstream-codec': 2.2.0
'@smithy/protocol-http': 3.3.0
'@smithy/signature-v4': 2.2.1
'@smithy/util-utf8': 2.3.0
'@supabase/supabase-js': 2.45.3
- '@xata.io/client': 0.28.4(typescript@5.5.2)
+ '@xata.io/client': 0.28.4(typescript@5.6.2)
cheerio: 1.0.0-rc.12
cohere-ai: 7.13.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(encoding@0.1.13)
crypto-js: 4.2.0
@@ -16987,6 +17132,23 @@ snapshots:
- pyodide
- supports-color
+ '@langchain/core@0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
+ dependencies:
+ ansi-styles: 5.2.0
+ camelcase: 6.3.0
+ decamelize: 1.2.0
+ js-tiktoken: 1.0.12
+ langsmith: 0.1.51(@langchain/core@0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ mustache: 4.2.0
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ uuid: 10.0.0
+ zod: 3.23.8
+ zod-to-json-schema: 3.23.2(zod@3.23.8)
+ transitivePeerDependencies:
+ - langchain
+ - openai
+
'@langchain/core@0.2.31(langchain@0.2.18(axios@1.7.4)(openai@4.58.0(zod@3.23.8)))(openai@4.58.0(zod@3.23.8))':
dependencies:
ansi-styles: 5.2.0
@@ -17039,26 +17201,9 @@ snapshots:
- langchain
- openai
- '@langchain/core@0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
+ '@langchain/google-common@0.0.27(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)':
dependencies:
- ansi-styles: 5.2.0
- camelcase: 6.3.0
- decamelize: 1.2.0
- js-tiktoken: 1.0.12
- langsmith: 0.1.51(@langchain/core@0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- mustache: 4.2.0
- p-queue: 6.6.2
- p-retry: 4.6.2
- uuid: 10.0.0
- zod: 3.23.8
- zod-to-json-schema: 3.23.2(zod@3.23.8)
- transitivePeerDependencies:
- - langchain
- - openai
-
- '@langchain/google-common@0.0.27(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)':
- dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
uuid: 10.0.0
zod-to-json-schema: 3.23.2(zod@3.23.8)
transitivePeerDependencies:
@@ -17066,10 +17211,10 @@ snapshots:
- openai
- zod
- '@langchain/google-gauth@0.0.27(encoding@0.1.13)(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)':
+ '@langchain/google-gauth@0.0.27(encoding@0.1.13)(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/google-common': 0.0.27(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/google-common': 0.0.27(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
google-auth-library: 8.9.0(encoding@0.1.13)
transitivePeerDependencies:
- encoding
@@ -17081,7 +17226,7 @@ snapshots:
'@langchain/google-genai@0.0.26(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)':
dependencies:
'@google/generative-ai': 0.7.1
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
zod-to-json-schema: 3.23.2(zod@3.23.8)
transitivePeerDependencies:
- langchain
@@ -17090,8 +17235,8 @@ snapshots:
'@langchain/google-vertexai@0.0.27(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/google-gauth': 0.0.27(encoding@0.1.13)(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/google-gauth': 0.0.27(encoding@0.1.13)(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
transitivePeerDependencies:
- encoding
- langchain
@@ -17101,8 +17246,8 @@ snapshots:
'@langchain/groq@0.0.17(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/openai': 0.2.10(encoding@0.1.13)(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/openai': 0.2.10(encoding@0.1.13)(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))
groq-sdk: 0.5.0(encoding@0.1.13)
zod: 3.23.8
zod-to-json-schema: 3.23.2(zod@3.23.8)
@@ -17114,7 +17259,7 @@ snapshots:
'@langchain/mistralai@0.0.29(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@mistralai/mistralai': 0.4.0(encoding@0.1.13)
uuid: 10.0.0
zod: 3.23.8
@@ -17126,16 +17271,16 @@ snapshots:
'@langchain/ollama@0.0.4(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
ollama: 0.5.6
uuid: 10.0.0
transitivePeerDependencies:
- langchain
- openai
- '@langchain/openai@0.2.10(encoding@0.1.13)(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))':
+ '@langchain/openai@0.2.10(encoding@0.1.13)(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
js-tiktoken: 1.0.12
openai: 4.58.0(encoding@0.1.13)(zod@3.23.8)
zod: 3.23.8
@@ -17171,9 +17316,9 @@ snapshots:
- supports-color
optional: true
- '@langchain/pinecone@0.0.9(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
+ '@langchain/pinecone@0.0.9(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
'@pinecone-database/pinecone': 3.0.0
flat: 5.0.2
uuid: 10.0.0
@@ -17181,24 +17326,32 @@ snapshots:
- langchain
- openai
- '@langchain/qdrant@0.0.5(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(typescript@5.5.2)':
+ '@langchain/qdrant@0.0.5(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(typescript@5.6.2)':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@qdrant/js-client-rest': 1.9.0(typescript@5.5.2)
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@qdrant/js-client-rest': 1.9.0(typescript@5.6.2)
uuid: 9.0.1
transitivePeerDependencies:
- langchain
- openai
- typescript
- '@langchain/redis@0.0.5(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
+ '@langchain/redis@0.0.5(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
redis: 4.6.13
transitivePeerDependencies:
- langchain
- openai
+ '@langchain/textsplitters@0.0.3(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
+ dependencies:
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ js-tiktoken: 1.0.12
+ transitivePeerDependencies:
+ - langchain
+ - openai
+
'@langchain/textsplitters@0.0.3(langchain@0.2.18(axios@1.7.4)(openai@4.58.0(zod@3.23.8)))(openai@4.58.0(zod@3.23.8))':
dependencies:
'@langchain/core': 0.2.31(langchain@0.2.18(axios@1.7.4)(openai@4.58.0(zod@3.23.8)))(openai@4.58.0(zod@3.23.8))
@@ -17217,14 +17370,6 @@ snapshots:
- openai
optional: true
- '@langchain/textsplitters@0.0.3(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))':
- dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- js-tiktoken: 1.0.12
- transitivePeerDependencies:
- - langchain
- - openai
-
'@lezer/common@1.1.0': {}
'@lezer/common@1.2.1': {}
@@ -17296,7 +17441,7 @@ snapshots:
resolve: 1.22.8
semver: 7.6.0
source-map: 0.6.1
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- '@types/node'
@@ -17372,7 +17517,7 @@ snapshots:
esprima-next: 5.8.4
recast: 0.22.0
- '@n8n/typeorm@0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.12)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))':
+ '@n8n/typeorm@0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.12)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))':
dependencies:
'@n8n/p-retry': 6.2.0-2
'@sqltools/formatter': 1.2.5
@@ -17399,11 +17544,11 @@ snapshots:
pg: 8.12.0
redis: 4.6.12
sqlite3: 5.1.7
- ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.5.2)
+ ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.6.2)
transitivePeerDependencies:
- supports-color
- '@n8n/typeorm@0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.14)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))':
+ '@n8n/typeorm@0.3.20-10(@sentry/node@7.87.0)(ioredis@5.3.2)(mssql@10.0.2)(mysql2@3.11.0)(pg@8.12.0)(redis@4.6.14)(sqlite3@5.1.7)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))':
dependencies:
'@n8n/p-retry': 6.2.0-2
'@sqltools/formatter': 1.2.5
@@ -17430,7 +17575,7 @@ snapshots:
pg: 8.12.0
redis: 4.6.14
sqlite3: 5.1.7
- ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.5.2)
+ ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.6.2)
transitivePeerDependencies:
- supports-color
@@ -17547,10 +17692,10 @@ snapshots:
cross-fetch: 3.1.8(encoding@0.1.13)
encoding: 0.1.13
- '@pinia/testing@0.1.3(pinia@2.1.6(typescript@5.5.2)(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))':
+ '@pinia/testing@0.1.3(pinia@2.1.6(typescript@5.6.2)(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))':
dependencies:
- pinia: 2.1.6(typescript@5.5.2)(vue@3.4.21(typescript@5.5.2))
- vue-demi: 0.14.5(vue@3.4.21(typescript@5.5.2))
+ pinia: 2.1.6(typescript@5.6.2)(vue@3.4.21(typescript@5.6.2))
+ vue-demi: 0.14.5(vue@3.4.21(typescript@5.6.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -17583,11 +17728,11 @@ snapshots:
'@protobufjs/utf8@1.1.0': {}
- '@qdrant/js-client-rest@1.9.0(typescript@5.5.2)':
+ '@qdrant/js-client-rest@1.9.0(typescript@5.6.2)':
dependencies:
'@qdrant/openapi-typescript-fetch': 1.2.6
'@sevinf/maybe': 0.5.0
- typescript: 5.5.2
+ typescript: 5.6.2
undici: 5.28.4
'@qdrant/openapi-typescript-fetch@1.2.6': {}
@@ -18769,7 +18914,7 @@ snapshots:
dependencies:
'@storybook/core-events': 8.1.4
'@storybook/global': 5.0.0
- '@types/uuid': 9.0.7
+ '@types/uuid': 9.0.8
dequal: 2.0.3
polished: 4.2.2
uuid: 9.0.1
@@ -18852,11 +18997,11 @@ snapshots:
dependencies:
'@storybook/global': 5.0.0
- '@storybook/addon-interactions@8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
+ '@storybook/addon-interactions@8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
dependencies:
'@storybook/global': 5.0.0
'@storybook/instrumenter': 8.1.4
- '@storybook/test': 8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
+ '@storybook/test': 8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
'@storybook/types': 8.1.4
polished: 4.2.2
ts-dedent: 2.2.0
@@ -18952,7 +19097,7 @@ snapshots:
- prettier
- supports-color
- '@storybook/builder-vite@8.1.4(encoding@0.1.13)(prettier@3.2.5)(typescript@5.5.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
+ '@storybook/builder-vite@8.1.4(encoding@0.1.13)(prettier@3.2.5)(typescript@5.6.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
dependencies:
'@storybook/channels': 8.1.4
'@storybook/client-logger': 8.1.4
@@ -18973,7 +19118,7 @@ snapshots:
ts-dedent: 2.2.0
vite: 5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- encoding
- prettier
@@ -19304,14 +19449,14 @@ snapshots:
- prettier
- supports-color
- '@storybook/test@8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
+ '@storybook/test@8.1.4(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
dependencies:
'@storybook/client-logger': 8.1.4
'@storybook/core-events': 8.1.4
'@storybook/instrumenter': 8.1.4
'@storybook/preview-api': 8.1.4
'@testing-library/dom': 9.3.4
- '@testing-library/jest-dom': 6.4.2(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
+ '@testing-library/jest-dom': 6.4.2(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
'@testing-library/user-event': 14.5.2(@testing-library/dom@9.3.4)
'@vitest/expect': 1.3.1
'@vitest/spy': 1.3.1
@@ -19339,18 +19484,18 @@ snapshots:
'@types/express': 4.17.21
file-system-cache: 2.3.0
- '@storybook/vue3-vite@8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.5.2))':
+ '@storybook/vue3-vite@8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.6.2))':
dependencies:
- '@storybook/builder-vite': 8.1.4(encoding@0.1.13)(prettier@3.2.5)(typescript@5.5.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
+ '@storybook/builder-vite': 8.1.4(encoding@0.1.13)(prettier@3.2.5)(typescript@5.6.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))
'@storybook/core-server': 8.1.4(encoding@0.1.13)(prettier@3.2.5)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)
'@storybook/types': 8.1.4
- '@storybook/vue3': 8.1.4(encoding@0.1.13)(prettier@3.2.5)(vue@3.4.21(typescript@5.5.2))
+ '@storybook/vue3': 8.1.4(encoding@0.1.13)(prettier@3.2.5)(vue@3.4.21(typescript@5.6.2))
find-package-json: 1.2.0
magic-string: 0.30.8
- typescript: 5.5.2
+ typescript: 5.6.2
vite: 5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)
- vue-component-meta: 2.0.19(typescript@5.5.2)
- vue-docgen-api: 4.76.0(vue@3.4.21(typescript@5.5.2))
+ vue-component-meta: 2.0.19(typescript@5.6.2)
+ vue-docgen-api: 4.76.0(vue@3.4.21(typescript@5.6.2))
transitivePeerDependencies:
- '@preact/preset-vite'
- bufferutil
@@ -19363,7 +19508,7 @@ snapshots:
- vite-plugin-glimmerx
- vue
- '@storybook/vue3@8.1.4(encoding@0.1.13)(prettier@3.2.5)(vue@3.4.21(typescript@5.5.2))':
+ '@storybook/vue3@8.1.4(encoding@0.1.13)(prettier@3.2.5)(vue@3.4.21(typescript@5.6.2))':
dependencies:
'@storybook/docs-tools': 8.1.4(encoding@0.1.13)(prettier@3.2.5)
'@storybook/global': 5.0.0
@@ -19373,7 +19518,7 @@ snapshots:
lodash: 4.17.21
ts-dedent: 2.2.0
type-fest: 2.19.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
vue-component-type-helpers: 2.1.6
transitivePeerDependencies:
- encoding
@@ -19458,7 +19603,7 @@ snapshots:
lz-string: 1.5.0
pretty-format: 27.5.1
- '@testing-library/jest-dom@6.1.5(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))':
+ '@testing-library/jest-dom@6.1.5(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))':
dependencies:
'@adobe/css-tools': 4.3.2
'@babel/runtime': 7.22.6
@@ -19471,10 +19616,10 @@ snapshots:
optionalDependencies:
'@jest/globals': 29.6.2
'@types/jest': 29.5.3
- jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
vitest: 1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)
- '@testing-library/jest-dom@6.4.2(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
+ '@testing-library/jest-dom@6.4.2(@jest/globals@29.6.2)(@types/jest@29.5.3)(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(vitest@1.6.0(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))':
dependencies:
'@adobe/css-tools': 4.3.2
'@babel/runtime': 7.23.6
@@ -19487,7 +19632,7 @@ snapshots:
optionalDependencies:
'@jest/globals': 29.6.2
'@types/jest': 29.5.3
- jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
vitest: 1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)
'@testing-library/user-event@14.5.1(@testing-library/dom@9.3.4)':
@@ -19498,13 +19643,13 @@ snapshots:
dependencies:
'@testing-library/dom': 9.3.4
- '@testing-library/vue@8.0.1(@vue/compiler-sfc@3.4.21)(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))':
+ '@testing-library/vue@8.0.1(@vue/compiler-sfc@3.4.21)(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))':
dependencies:
'@babel/runtime': 7.23.6
'@testing-library/dom': 9.3.3
'@vue/compiler-sfc': 3.4.21
- '@vue/test-utils': 2.4.3(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))
- vue: 3.4.21(typescript@5.5.2)
+ '@vue/test-utils': 2.4.3(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))
+ vue: 3.4.21(typescript@5.6.2)
transitivePeerDependencies:
- '@vue/server-renderer'
@@ -19977,7 +20122,7 @@ snapshots:
'@types/uuid@8.3.4': {}
- '@types/uuid@9.0.7': {}
+ '@types/uuid@9.0.8': {}
'@types/validator@13.7.10': {}
@@ -20018,13 +20163,13 @@ snapshots:
'@types/node': 18.16.16
optional: true
- '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)':
dependencies:
'@eslint-community/regexpp': 4.6.2
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
'@typescript-eslint/scope-manager': 7.2.0
- '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
- '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/type-utils': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
+ '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
'@typescript-eslint/visitor-keys': 7.2.0
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.57.0
@@ -20032,22 +20177,22 @@ snapshots:
ignore: 5.2.4
natural-compare: 1.4.0
semver: 7.6.0
- ts-api-utils: 1.0.1(typescript@5.5.2)
+ ts-api-utils: 1.0.1(typescript@5.6.2)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2)':
dependencies:
'@typescript-eslint/scope-manager': 7.2.0
'@typescript-eslint/types': 7.2.0
- '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.2)
+ '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.2)
'@typescript-eslint/visitor-keys': 7.2.0
debug: 4.3.4(supports-color@8.1.1)
eslint: 8.57.0
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- supports-color
@@ -20061,15 +20206,15 @@ snapshots:
'@typescript-eslint/types': 7.2.0
'@typescript-eslint/visitor-keys': 7.2.0
- '@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/type-utils@7.2.0(eslint@8.57.0)(typescript@5.6.2)':
dependencies:
- '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.2)
- '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.2)
+ '@typescript-eslint/utils': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
debug: 4.3.6(supports-color@8.1.1)
eslint: 8.57.0
- ts-api-utils: 1.0.1(typescript@5.5.2)
+ ts-api-utils: 1.0.1(typescript@5.6.2)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- supports-color
@@ -20077,7 +20222,7 @@ snapshots:
'@typescript-eslint/types@7.2.0': {}
- '@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.2)':
+ '@typescript-eslint/typescript-estree@6.21.0(typescript@5.6.2)':
dependencies:
'@typescript-eslint/types': 6.21.0
'@typescript-eslint/visitor-keys': 6.21.0
@@ -20086,13 +20231,13 @@ snapshots:
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.6.0
- ts-api-utils: 1.0.1(typescript@5.5.2)
+ ts-api-utils: 1.0.1(typescript@5.6.2)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/typescript-estree@7.2.0(typescript@5.5.2)':
+ '@typescript-eslint/typescript-estree@7.2.0(typescript@5.6.2)':
dependencies:
'@typescript-eslint/types': 7.2.0
'@typescript-eslint/visitor-keys': 7.2.0
@@ -20101,34 +20246,34 @@ snapshots:
is-glob: 4.0.3
minimatch: 9.0.3
semver: 7.6.0
- ts-api-utils: 1.0.1(typescript@5.5.2)
+ ts-api-utils: 1.0.1(typescript@5.6.2)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.6.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 6.21.0
'@typescript-eslint/types': 6.21.0
- '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.2)
+ '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.6.2)
eslint: 8.57.0
semver: 7.6.0
transitivePeerDependencies:
- supports-color
- typescript
- '@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.5.2)':
+ '@typescript-eslint/utils@7.2.0(eslint@8.57.0)(typescript@5.6.2)':
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.0
'@typescript-eslint/scope-manager': 7.2.0
'@typescript-eslint/types': 7.2.0
- '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.5.2)
+ '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.6.2)
eslint: 8.57.0
semver: 7.6.0
transitivePeerDependencies:
@@ -20147,10 +20292,10 @@ snapshots:
'@ungap/structured-clone@1.2.0': {}
- '@vitejs/plugin-vue@5.0.4(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.5.2))':
+ '@vitejs/plugin-vue@5.0.4(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1))(vue@3.4.21(typescript@5.6.2))':
dependencies:
vite: 5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
'@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1))':
dependencies:
@@ -20243,39 +20388,39 @@ snapshots:
'@volar/language-core': 2.2.5
path-browserify: 1.0.1
- '@vue-flow/background@1.3.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))':
+ '@vue-flow/background@1.3.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))':
dependencies:
- '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.5.2))
- vue: 3.4.21(typescript@5.5.2)
+ '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.6.2))
+ vue: 3.4.21(typescript@5.6.2)
- '@vue-flow/controls@1.1.1(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))':
+ '@vue-flow/controls@1.1.1(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))':
dependencies:
- '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.5.2))
- vue: 3.4.21(typescript@5.5.2)
+ '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.6.2))
+ vue: 3.4.21(typescript@5.6.2)
- '@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2))':
+ '@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2))':
dependencies:
- '@vueuse/core': 10.11.0(vue@3.4.21(typescript@5.5.2))
+ '@vueuse/core': 10.11.0(vue@3.4.21(typescript@5.6.2))
d3-drag: 3.0.0
d3-selection: 3.0.0
d3-zoom: 3.0.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
transitivePeerDependencies:
- '@vue/composition-api'
- '@vue-flow/minimap@1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))':
+ '@vue-flow/minimap@1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))':
dependencies:
- '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.5.2))
+ '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.6.2))
d3-selection: 3.0.0
d3-zoom: 3.0.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- '@vue-flow/node-resizer@1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))':
+ '@vue-flow/node-resizer@1.4.0(@vue-flow/core@1.33.5(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))':
dependencies:
- '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.5.2))
+ '@vue-flow/core': 1.33.5(vue@3.4.21(typescript@5.6.2))
d3-drag: 3.0.0
d3-selection: 3.0.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
'@vue/compiler-core@3.4.21':
dependencies:
@@ -20320,19 +20465,19 @@ snapshots:
transitivePeerDependencies:
- '@types/eslint'
- '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.23.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.5.2)':
+ '@vue/eslint-config-typescript@13.0.0(eslint-plugin-vue@9.23.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.6.2)':
dependencies:
- '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
eslint: 8.57.0
eslint-plugin-vue: 9.23.0(eslint@8.57.0)
vue-eslint-parser: 9.4.2(eslint@8.57.0)
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
transitivePeerDependencies:
- supports-color
- '@vue/language-core@1.8.27(typescript@5.5.2)':
+ '@vue/language-core@1.8.27(typescript@5.6.2)':
dependencies:
'@volar/language-core': 1.11.1
'@volar/source-map': 1.11.1
@@ -20344,9 +20489,9 @@ snapshots:
path-browserify: 1.0.1
vue-template-compiler: 2.7.14
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
- '@vue/language-core@2.0.19(typescript@5.5.2)':
+ '@vue/language-core@2.0.19(typescript@5.6.2)':
dependencies:
'@volar/language-core': 2.2.5
'@vue/compiler-dom': 3.4.21
@@ -20356,7 +20501,7 @@ snapshots:
path-browserify: 1.0.1
vue-template-compiler: 2.7.14
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
'@vue/reactivity@3.4.21':
dependencies:
@@ -20373,47 +20518,47 @@ snapshots:
'@vue/shared': 3.4.21
csstype: 3.1.3
- '@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.5.2))':
+ '@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.6.2))':
dependencies:
'@vue/compiler-ssr': 3.4.21
'@vue/shared': 3.4.21
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
'@vue/shared@3.4.21': {}
- '@vue/test-utils@2.4.3(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.5.2)))(vue@3.4.21(typescript@5.5.2))':
+ '@vue/test-utils@2.4.3(@vue/server-renderer@3.4.21(vue@3.4.21(typescript@5.6.2)))(vue@3.4.21(typescript@5.6.2))':
dependencies:
js-beautify: 1.14.9
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
vue-component-type-helpers: 1.8.25
optionalDependencies:
- '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.5.2))
+ '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.6.2))
- '@vueuse/components@10.11.0(vue@3.4.21(typescript@5.5.2))':
+ '@vueuse/components@10.11.0(vue@3.4.21(typescript@5.6.2))':
dependencies:
- '@vueuse/core': 10.11.0(vue@3.4.21(typescript@5.5.2))
- '@vueuse/shared': 10.11.0(vue@3.4.21(typescript@5.5.2))
- vue-demi: 0.14.8(vue@3.4.21(typescript@5.5.2))
+ '@vueuse/core': 10.11.0(vue@3.4.21(typescript@5.6.2))
+ '@vueuse/shared': 10.11.0(vue@3.4.21(typescript@5.6.2))
+ vue-demi: 0.14.8(vue@3.4.21(typescript@5.6.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- '@vueuse/core@10.11.0(vue@3.4.21(typescript@5.5.2))':
+ '@vueuse/core@10.11.0(vue@3.4.21(typescript@5.6.2))':
dependencies:
'@types/web-bluetooth': 0.0.20
'@vueuse/metadata': 10.11.0
- '@vueuse/shared': 10.11.0(vue@3.4.21(typescript@5.5.2))
- vue-demi: 0.14.8(vue@3.4.21(typescript@5.5.2))
+ '@vueuse/shared': 10.11.0(vue@3.4.21(typescript@5.6.2))
+ vue-demi: 0.14.8(vue@3.4.21(typescript@5.6.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- '@vueuse/core@9.13.0(vue@3.4.21(typescript@5.5.2))':
+ '@vueuse/core@9.13.0(vue@3.4.21(typescript@5.6.2))':
dependencies:
'@types/web-bluetooth': 0.0.16
'@vueuse/metadata': 9.13.0
- '@vueuse/shared': 9.13.0(vue@3.4.21(typescript@5.5.2))
- vue-demi: 0.14.8(vue@3.4.21(typescript@5.5.2))
+ '@vueuse/shared': 9.13.0(vue@3.4.21(typescript@5.6.2))
+ vue-demi: 0.14.8(vue@3.4.21(typescript@5.6.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
@@ -20422,25 +20567,25 @@ snapshots:
'@vueuse/metadata@9.13.0': {}
- '@vueuse/shared@10.11.0(vue@3.4.21(typescript@5.5.2))':
+ '@vueuse/shared@10.11.0(vue@3.4.21(typescript@5.6.2))':
dependencies:
- vue-demi: 0.14.8(vue@3.4.21(typescript@5.5.2))
+ vue-demi: 0.14.8(vue@3.4.21(typescript@5.6.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
- '@vueuse/shared@9.13.0(vue@3.4.21(typescript@5.5.2))':
+ '@vueuse/shared@9.13.0(vue@3.4.21(typescript@5.6.2))':
dependencies:
- vue-demi: 0.14.8(vue@3.4.21(typescript@5.5.2))
+ vue-demi: 0.14.8(vue@3.4.21(typescript@5.6.2))
transitivePeerDependencies:
- '@vue/composition-api'
- vue
'@vvo/tzdb@6.141.0': {}
- '@xata.io/client@0.28.4(typescript@5.5.2)':
+ '@xata.io/client@0.28.4(typescript@5.6.2)':
dependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
'@xmldom/xmldom@0.8.6': {}
@@ -22109,15 +22254,15 @@ snapshots:
electron-to-chromium@1.4.703: {}
- element-plus@2.4.3(vue@3.4.21(typescript@5.5.2)):
+ element-plus@2.4.3(vue@3.4.21(typescript@5.6.2)):
dependencies:
'@ctrl/tinycolor': 3.6.0
- '@element-plus/icons-vue': 2.3.1(vue@3.4.21(typescript@5.5.2))
+ '@element-plus/icons-vue': 2.3.1(vue@3.4.21(typescript@5.6.2))
'@floating-ui/dom': 1.4.5
'@popperjs/core': '@sxzz/popperjs-es@2.11.7'
'@types/lodash': 4.14.195
'@types/lodash-es': 4.17.6
- '@vueuse/core': 9.13.0(vue@3.4.21(typescript@5.5.2))
+ '@vueuse/core': 9.13.0(vue@3.4.21(typescript@5.6.2))
async-validator: 4.2.5
dayjs: 1.11.10
escape-html: 1.0.3
@@ -22126,7 +22271,7 @@ snapshots:
lodash-unified: 1.0.3(@types/lodash-es@4.17.6)(lodash-es@4.17.21)(lodash@4.17.21)
memoize-one: 6.0.0
normalize-wheel-es: 1.2.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
transitivePeerDependencies:
- '@vue/composition-api'
@@ -22399,21 +22544,21 @@ snapshots:
optionalDependencies:
source-map: 0.6.1
- eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0):
+ eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
confusing-browser-globals: 1.0.11
eslint: 8.57.0
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
object.assign: 4.1.5
object.entries: 1.1.5
semver: 7.6.0
- eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0):
+ eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
- '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
eslint: 8.57.0
- eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0)
+ eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0))(eslint@8.57.0)
transitivePeerDependencies:
- eslint-plugin-import
@@ -22431,13 +22576,13 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0):
+ eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0):
dependencies:
debug: 4.3.4(supports-color@8.1.1)
enhanced-resolve: 5.13.0
eslint: 8.57.0
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
- eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0)
fast-glob: 3.3.2
get-tsconfig: 4.5.0
is-core-module: 2.13.1
@@ -22448,14 +22593,14 @@ snapshots:
- eslint-import-resolver-webpack
- supports-color
- eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
+ eslint-module-utils@2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0):
dependencies:
debug: 3.2.7(supports-color@5.5.0)
optionalDependencies:
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0)
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0)
transitivePeerDependencies:
- supports-color
@@ -22464,7 +22609,7 @@ snapshots:
eslint: 8.57.0
globals: 13.20.0
- eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
+ eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-typescript@3.6.1)(eslint@8.57.0):
dependencies:
array-includes: 3.1.7
array.prototype.findlastindex: 1.2.3
@@ -22474,7 +22619,7 @@ snapshots:
doctrine: 2.1.0
eslint: 8.57.0
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint-plugin-import@2.29.1)(eslint@8.57.0))(eslint@8.57.0)
hasown: 2.0.2
is-core-module: 2.13.1
is-glob: 4.0.3
@@ -22485,7 +22630,7 @@ snapshots:
semver: 7.6.0
tsconfig-paths: 4.2.0
optionalDependencies:
- '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/parser': 7.2.0(eslint@8.57.0)(typescript@5.6.2)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
@@ -22500,9 +22645,9 @@ snapshots:
eslint-plugin-n8n-local-rules@1.0.0: {}
- eslint-plugin-n8n-nodes-base@1.16.2(eslint@8.57.0)(typescript@5.5.2):
+ eslint-plugin-n8n-nodes-base@1.16.2(eslint@8.57.0)(typescript@5.6.2):
dependencies:
- '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.6.2)
camel-case: 4.1.2
eslint-plugin-local: 1.0.0
indefinite: 2.5.1
@@ -22547,12 +22692,12 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0):
+ eslint-plugin-unused-imports@3.1.0(@typescript-eslint/eslint-plugin@7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0):
dependencies:
eslint: 8.57.0
eslint-rule-composer: 0.3.0
optionalDependencies:
- '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.5.2))(eslint@8.57.0)(typescript@5.5.2)
+ '@typescript-eslint/eslint-plugin': 7.2.0(@typescript-eslint/parser@7.2.0(eslint@8.57.0)(typescript@5.6.2))(eslint@8.57.0)(typescript@5.6.2)
eslint-plugin-vue@9.23.0(eslint@8.57.0):
dependencies:
@@ -24066,16 +24211,16 @@ snapshots:
- babel-plugin-macros
- supports-color
- jest-cli@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)):
+ jest-cli@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)):
dependencies:
- '@jest/core': 29.6.2(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ '@jest/core': 29.6.2(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
'@jest/test-result': 29.6.2
'@jest/types': 29.6.1
chalk: 4.1.2
exit: 0.1.2
graceful-fs: 4.2.11
import-local: 3.1.0
- jest-config: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ jest-config: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
jest-util: 29.6.2
jest-validate: 29.6.2
prompts: 2.4.2
@@ -24086,7 +24231,7 @@ snapshots:
- supports-color
- ts-node
- jest-config@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)):
+ jest-config@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)):
dependencies:
'@babel/core': 7.24.0
'@jest/test-sequencer': 29.6.2
@@ -24112,7 +24257,7 @@ snapshots:
strip-json-comments: 3.1.1
optionalDependencies:
'@types/node': 18.16.16
- ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.5.2)
+ ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.6.2)
transitivePeerDependencies:
- babel-plugin-macros
- supports-color
@@ -24230,11 +24375,11 @@ snapshots:
slash: 3.0.0
stack-utils: 2.0.6
- jest-mock-extended@3.0.4(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(typescript@5.5.2):
+ jest-mock-extended@3.0.4(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(typescript@5.6.2):
dependencies:
- jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
- ts-essentials: 7.0.3(typescript@5.5.2)
- typescript: 5.5.2
+ jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
+ ts-essentials: 7.0.3(typescript@5.6.2)
+ typescript: 5.6.2
jest-mock@29.6.2:
dependencies:
@@ -24390,12 +24535,12 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
- jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)):
+ jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)):
dependencies:
- '@jest/core': 29.6.2(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ '@jest/core': 29.6.2(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
'@jest/types': 29.6.1
import-local: 3.1.0
- jest-cli: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ jest-cli: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
transitivePeerDependencies:
- '@types/node'
- babel-plugin-macros
@@ -24682,6 +24827,56 @@ snapshots:
kuler@2.0.0: {}
+ langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube):
+ dependencies:
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/openai': 0.2.10(encoding@0.1.13)(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))
+ '@langchain/textsplitters': 0.0.3(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ binary-extensions: 2.2.0
+ js-tiktoken: 1.0.12
+ js-yaml: 4.1.0
+ jsonpointer: 5.0.1
+ langsmith: 0.1.51(@langchain/core@0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ openapi-types: 12.1.3
+ p-retry: 4.6.2
+ uuid: 10.0.0
+ yaml: 2.3.4
+ zod: 3.23.8
+ zod-to-json-schema: 3.23.2(zod@3.23.8)
+ optionalDependencies:
+ '@aws-sdk/client-s3': 3.478.0
+ '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)
+ '@azure/storage-blob': 12.18.0(encoding@0.1.13)
+ '@langchain/anthropic': 0.2.16(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/cohere': 0.2.2(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/community': 0.2.32(wjcprhsh6kptjwisshzaqzfaay)
+ '@langchain/google-genai': 0.0.26(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
+ '@langchain/google-vertexai': 0.0.27(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
+ '@langchain/groq': 0.0.17(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/mistralai': 0.0.29(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@langchain/ollama': 0.0.4(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ '@pinecone-database/pinecone': 3.0.0
+ '@supabase/supabase-js': 2.45.3
+ '@xata.io/client': 0.28.4(typescript@5.6.2)
+ axios: 1.7.4(debug@4.3.6)
+ cheerio: 1.0.0-rc.12
+ d3-dsv: 2.0.0
+ epub2: 3.0.2(ts-toolbelt@9.6.0)
+ fast-xml-parser: 4.4.1
+ handlebars: 4.7.8
+ html-to-text: 9.0.5
+ ignore: 5.2.4
+ ioredis: 5.3.2
+ jsdom: 23.0.1
+ mammoth: 1.7.2
+ pdf-parse: 1.1.1
+ redis: 4.6.12
+ ws: 8.17.1
+ transitivePeerDependencies:
+ - encoding
+ - openai
+ - supports-color
+
langchain@0.2.18(axios@1.7.4)(openai@4.58.0(zod@3.23.8)):
dependencies:
'@langchain/core': 0.2.31(langchain@0.2.18(axios@1.7.4)(openai@4.58.0(zod@3.23.8)))(openai@4.58.0(zod@3.23.8))
@@ -24730,66 +24925,29 @@ snapshots:
- supports-color
optional: true
- langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu):
+ langsmith@0.1.39(@langchain/core@0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)):
dependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/openai': 0.2.10(encoding@0.1.13)(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))
- '@langchain/textsplitters': 0.0.3(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- binary-extensions: 2.2.0
- js-tiktoken: 1.0.12
- js-yaml: 4.1.0
- jsonpointer: 5.0.1
- langsmith: 0.1.51(@langchain/core@0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- openapi-types: 12.1.3
- p-retry: 4.6.2
- uuid: 10.0.0
- yaml: 2.3.4
- zod: 3.23.8
- zod-to-json-schema: 3.23.2(zod@3.23.8)
- optionalDependencies:
- '@aws-sdk/client-s3': 3.478.0
- '@aws-sdk/credential-provider-node': 3.645.0(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(@aws-sdk/client-sts@3.645.0)
- '@azure/storage-blob': 12.18.0(encoding@0.1.13)
- '@langchain/anthropic': 0.2.16(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/cohere': 0.2.2(@aws-sdk/client-sso-oidc@3.645.0(@aws-sdk/client-sts@3.645.0))(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/community': 0.2.32(ygqwlohwinok7tv3gruzwbtdoi)
- '@langchain/google-genai': 0.0.26(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
- '@langchain/google-vertexai': 0.0.27(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))(zod@3.23.8)
- '@langchain/groq': 0.0.17(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/mistralai': 0.0.29(encoding@0.1.13)(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@langchain/ollama': 0.0.4(langchain@0.2.18)(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- '@pinecone-database/pinecone': 3.0.0
- '@supabase/supabase-js': 2.45.3
- '@xata.io/client': 0.28.4(typescript@5.5.2)
- axios: 1.7.4(debug@4.3.6)
- cheerio: 1.0.0-rc.12
- d3-dsv: 2.0.0
- epub2: 3.0.2(ts-toolbelt@9.6.0)
- fast-xml-parser: 4.4.1
- handlebars: 4.7.8
- html-to-text: 9.0.5
- ignore: 5.2.4
- ioredis: 5.3.2
- jsdom: 23.0.1
- mammoth: 1.7.2
- pdf-parse: 1.1.1
- redis: 4.6.12
- ws: 8.17.1
- transitivePeerDependencies:
- - encoding
- - openai
- - supports-color
-
- langsmith@0.1.39(@langchain/core@0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)):
- dependencies:
- '@types/uuid': 9.0.7
+ '@types/uuid': 9.0.8
commander: 10.0.1
p-queue: 6.6.2
p-retry: 4.6.2
uuid: 9.0.1
optionalDependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- langchain: 0.2.18(xd7d7p3bjr65bts4h63vmtvguu)
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ langchain: 0.2.18(7abrqxy75ksyaxunbmagq3jube)
+ openai: 4.58.0(encoding@0.1.13)(zod@3.23.8)
+
+ langsmith@0.1.51(@langchain/core@0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)):
+ dependencies:
+ '@types/uuid': 10.0.0
+ commander: 10.0.1
+ p-queue: 6.6.2
+ p-retry: 4.6.2
+ semver: 7.6.0
+ uuid: 10.0.0
+ optionalDependencies:
+ '@langchain/core': 0.2.31(langchain@0.2.18(7abrqxy75ksyaxunbmagq3jube))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
+ langchain: 0.2.18(7abrqxy75ksyaxunbmagq3jube)
openai: 4.58.0(encoding@0.1.13)(zod@3.23.8)
langsmith@0.1.51(@langchain/core@0.2.31(langchain@0.2.18(axios@1.7.4)(openai@4.58.0(zod@3.23.8)))(openai@4.58.0(zod@3.23.8)))(langchain@0.2.18(axios@1.7.4)(openai@4.58.0(zod@3.23.8)))(openai@4.58.0(zod@3.23.8)):
@@ -24832,19 +24990,6 @@ snapshots:
langchain: 0.2.18(axios@1.7.4)(openai@4.58.0)
openai: 4.58.0(zod@3.23.8)
- langsmith@0.1.51(@langchain/core@0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)))(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8)):
- dependencies:
- '@types/uuid': 10.0.0
- commander: 10.0.1
- p-queue: 6.6.2
- p-retry: 4.6.2
- semver: 7.6.0
- uuid: 10.0.0
- optionalDependencies:
- '@langchain/core': 0.2.31(langchain@0.2.18(xd7d7p3bjr65bts4h63vmtvguu))(openai@4.58.0(encoding@0.1.13)(zod@3.23.8))
- langchain: 0.2.18(xd7d7p3bjr65bts4h63vmtvguu)
- openai: 4.58.0(encoding@0.1.13)(zod@3.23.8)
-
lazy-ass@1.6.0: {}
lazy-universal-dotenv@4.0.0:
@@ -24857,7 +25002,7 @@ snapshots:
dependencies:
'@types/asn1': 0.2.0
'@types/node': 18.16.16
- '@types/uuid': 9.0.7
+ '@types/uuid': 10.0.0
asn1: 0.2.6
debug: 4.3.4(supports-color@8.1.1)
strict-event-emitter-types: 2.0.0
@@ -24867,6 +25012,49 @@ snapshots:
leac@0.6.0: {}
+ lefthook-darwin-arm64@1.7.15:
+ optional: true
+
+ lefthook-darwin-x64@1.7.15:
+ optional: true
+
+ lefthook-freebsd-arm64@1.7.15:
+ optional: true
+
+ lefthook-freebsd-x64@1.7.15:
+ optional: true
+
+ lefthook-linux-arm64@1.7.15:
+ optional: true
+
+ lefthook-linux-x64@1.7.15:
+ optional: true
+
+ lefthook-openbsd-arm64@1.7.15:
+ optional: true
+
+ lefthook-openbsd-x64@1.7.15:
+ optional: true
+
+ lefthook-windows-arm64@1.7.15:
+ optional: true
+
+ lefthook-windows-x64@1.7.15:
+ optional: true
+
+ lefthook@1.7.15:
+ optionalDependencies:
+ lefthook-darwin-arm64: 1.7.15
+ lefthook-darwin-x64: 1.7.15
+ lefthook-freebsd-arm64: 1.7.15
+ lefthook-freebsd-x64: 1.7.15
+ lefthook-linux-arm64: 1.7.15
+ lefthook-linux-x64: 1.7.15
+ lefthook-openbsd-arm64: 1.7.15
+ lefthook-openbsd-x64: 1.7.15
+ lefthook-windows-arm64: 1.7.15
+ lefthook-windows-x64: 1.7.15
+
leven@3.1.0: {}
levn@0.3.0:
@@ -26466,13 +26654,13 @@ snapshots:
pify@4.0.1: {}
- pinia@2.1.6(typescript@5.5.2)(vue@3.4.21(typescript@5.5.2)):
+ pinia@2.1.6(typescript@5.6.2)(vue@3.4.21(typescript@5.6.2)):
dependencies:
'@vue/devtools-api': 6.5.0
- vue: 3.4.21(typescript@5.5.2)
- vue-demi: 0.14.5(vue@3.4.21(typescript@5.5.2))
+ vue: 3.4.21(typescript@5.6.2)
+ vue-demi: 0.14.5(vue@3.4.21(typescript@5.6.2))
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
pirates@4.0.6: {}
@@ -26528,13 +26716,13 @@ snapshots:
camelcase-css: 2.0.1
postcss: 8.4.38
- postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)):
+ postcss-load-config@4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)):
dependencies:
lilconfig: 3.1.2
yaml: 2.3.4
optionalDependencies:
postcss: 8.4.38
- ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.5.2)
+ ts-node: 10.9.2(@types/node@18.16.16)(typescript@5.6.2)
postcss-nested@6.0.1(postcss@8.4.38):
dependencies:
@@ -26831,9 +27019,9 @@ snapshots:
dependencies:
long: 4.0.0
- qrcode.vue@3.3.4(vue@3.4.21(typescript@5.5.2)):
+ qrcode.vue@3.3.4(vue@3.4.21(typescript@5.6.2)):
dependencies:
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
qs@6.10.4:
dependencies:
@@ -28070,7 +28258,7 @@ snapshots:
syslog-client@1.1.1: {}
- tailwindcss@3.4.3(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)):
+ tailwindcss@3.4.3(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)):
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
@@ -28089,7 +28277,7 @@ snapshots:
postcss: 8.4.38
postcss-import: 15.1.0(postcss@8.4.38)
postcss-js: 4.0.1(postcss@8.4.38)
- postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ postcss-load-config: 4.0.2(postcss@8.4.38)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
postcss-nested: 6.0.1(postcss@8.4.38)
postcss-selector-parser: 6.0.16
resolve: 1.22.8
@@ -28300,19 +28488,19 @@ snapshots:
triple-beam@1.3.0: {}
- ts-api-utils@1.0.1(typescript@5.5.2):
+ ts-api-utils@1.0.1(typescript@5.6.2):
dependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
ts-dedent@2.2.0: {}
- ts-essentials@7.0.3(typescript@5.5.2):
+ ts-essentials@7.0.3(typescript@5.6.2):
dependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
- ts-essentials@9.4.2(typescript@5.5.2):
+ ts-essentials@9.4.2(typescript@5.6.2):
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
ts-ics@1.2.2(date-fns@2.30.0)(lodash@4.17.21)(zod@3.23.8):
dependencies:
@@ -28323,17 +28511,17 @@ snapshots:
ts-interface-checker@0.1.13: {}
- ts-jest@29.1.1(@babel/core@7.24.0)(@jest/types@29.6.1)(babel-jest@29.6.2(@babel/core@7.24.0))(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2)))(typescript@5.5.2):
+ ts-jest@29.1.1(@babel/core@7.24.0)(@jest/types@29.6.1)(babel-jest@29.6.2(@babel/core@7.24.0))(jest@29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2)))(typescript@5.6.2):
dependencies:
bs-logger: 0.2.6
fast-json-stable-stringify: 2.1.0
- jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2))
+ jest: 29.6.2(@types/node@18.16.16)(ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2))
jest-util: 29.5.0
json5: 2.2.3
lodash.memoize: 4.1.2
make-error: 1.3.6
semver: 7.6.0
- typescript: 5.5.2
+ typescript: 5.6.2
yargs-parser: 21.1.1
optionalDependencies:
'@babel/core': 7.24.0
@@ -28342,7 +28530,7 @@ snapshots:
ts-map@1.0.3: {}
- ts-node@10.9.2(@types/node@18.16.16)(typescript@5.5.2):
+ ts-node@10.9.2(@types/node@18.16.16)(typescript@5.6.2):
dependencies:
'@cspotcode/source-map-support': 0.8.1
'@tsconfig/node10': 1.0.11
@@ -28356,7 +28544,7 @@ snapshots:
create-require: 1.1.1
diff: 4.0.2
make-error: 1.3.6
- typescript: 5.5.2
+ typescript: 5.6.2
v8-compile-cache-lib: 3.0.1
yn: 3.1.1
optional: true
@@ -28379,13 +28567,13 @@ snapshots:
normalize-path: 3.0.0
plimit-lit: 1.4.1
- tsc-watch@6.0.4(typescript@5.5.2):
+ tsc-watch@6.0.4(typescript@5.6.2):
dependencies:
cross-spawn: 7.0.3
node-cleanup: 2.1.2
ps-tree: 1.2.0
string-argv: 0.3.1
- typescript: 5.5.2
+ typescript: 5.6.2
tsconfig-paths@4.2.0:
dependencies:
@@ -28532,7 +28720,7 @@ snapshots:
typedi@0.10.0(patch_hash=sk6omkefrosihg7lmqbzh7vfxe): {}
- typescript@5.5.2: {}
+ typescript@5.6.2: {}
uc.micro@1.0.6: {}
@@ -28632,7 +28820,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- unplugin-vue-components@0.27.3(@babel/parser@7.24.6)(rollup@4.18.0)(vue@3.4.21(typescript@5.5.2)):
+ unplugin-vue-components@0.27.3(@babel/parser@7.24.6)(rollup@4.18.0)(vue@3.4.21(typescript@5.6.2)):
dependencies:
'@antfu/utils': 0.7.10
'@rollup/pluginutils': 5.1.0(rollup@4.18.0)
@@ -28644,7 +28832,7 @@ snapshots:
minimatch: 9.0.5
mlly: 1.7.1
unplugin: 1.11.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
optionalDependencies:
'@babel/parser': 7.24.6
transitivePeerDependencies:
@@ -28793,16 +28981,16 @@ snapshots:
- supports-color
- terser
- vite-plugin-dts@3.9.1(@types/node@18.16.16)(rollup@4.18.0)(typescript@5.5.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)):
+ vite-plugin-dts@3.9.1(@types/node@18.16.16)(rollup@4.18.0)(typescript@5.6.2)(vite@5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)):
dependencies:
'@microsoft/api-extractor': 7.43.0(@types/node@18.16.16)
'@rollup/pluginutils': 5.1.0(rollup@4.18.0)
- '@vue/language-core': 1.8.27(typescript@5.5.2)
+ '@vue/language-core': 1.8.27(typescript@5.6.2)
debug: 4.3.5
kolorist: 1.8.0
magic-string: 0.30.8
- typescript: 5.5.2
- vue-tsc: 1.8.27(typescript@5.5.2)
+ typescript: 5.6.2
+ vue-tsc: 1.8.27(typescript@5.6.2)
optionalDependencies:
vite: 5.2.12(@types/node@18.16.16)(sass@1.64.1)(terser@5.16.1)
transitivePeerDependencies:
@@ -28821,10 +29009,10 @@ snapshots:
sass: 1.64.1
terser: 5.16.1
- vitest-mock-extended@1.3.1(typescript@5.5.2)(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)):
+ vitest-mock-extended@1.3.1(typescript@5.6.2)(vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)):
dependencies:
- ts-essentials: 9.4.2(typescript@5.5.2)
- typescript: 5.5.2
+ ts-essentials: 9.4.2(typescript@5.6.2)
+ typescript: 5.6.2
vitest: 1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1)
vitest@1.6.0(@types/node@18.16.16)(jsdom@23.0.1)(sass@1.64.1)(terser@5.16.1):
@@ -28868,23 +29056,23 @@ snapshots:
lodash.orderby: 4.6.0
lodash.throttle: 4.1.1
- vue-boring-avatars@1.3.0(vue@3.4.21(typescript@5.5.2)):
+ vue-boring-avatars@1.3.0(vue@3.4.21(typescript@5.6.2)):
dependencies:
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-chartjs@5.2.0(chart.js@4.4.0)(vue@3.4.21(typescript@5.5.2)):
+ vue-chartjs@5.2.0(chart.js@4.4.0)(vue@3.4.21(typescript@5.6.2)):
dependencies:
chart.js: 4.4.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-component-meta@2.0.19(typescript@5.5.2):
+ vue-component-meta@2.0.19(typescript@5.6.2):
dependencies:
'@volar/typescript': 2.2.5
- '@vue/language-core': 2.0.19(typescript@5.5.2)
+ '@vue/language-core': 2.0.19(typescript@5.6.2)
path-browserify: 1.0.1
vue-component-type-helpers: 2.0.19
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
vue-component-type-helpers@1.8.25: {}
@@ -28892,15 +29080,15 @@ snapshots:
vue-component-type-helpers@2.1.6: {}
- vue-demi@0.14.5(vue@3.4.21(typescript@5.5.2)):
+ vue-demi@0.14.5(vue@3.4.21(typescript@5.6.2)):
dependencies:
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-demi@0.14.8(vue@3.4.21(typescript@5.5.2)):
+ vue-demi@0.14.8(vue@3.4.21(typescript@5.6.2)):
dependencies:
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-docgen-api@4.76.0(vue@3.4.21(typescript@5.5.2)):
+ vue-docgen-api@4.76.0(vue@3.4.21(typescript@5.6.2)):
dependencies:
'@babel/parser': 7.24.0
'@babel/types': 7.24.0
@@ -28913,8 +29101,8 @@ snapshots:
pug: 3.0.3
recast: 0.23.6
ts-map: 1.0.3
- vue: 3.4.21(typescript@5.5.2)
- vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.4.21(typescript@5.5.2))
+ vue: 3.4.21(typescript@5.6.2)
+ vue-inbrowser-compiler-independent-utils: 4.71.1(vue@3.4.21(typescript@5.6.2))
vue-eslint-parser@9.4.2(eslint@8.57.0):
dependencies:
@@ -28929,62 +29117,62 @@ snapshots:
transitivePeerDependencies:
- supports-color
- vue-i18n@9.2.2(vue@3.4.21(typescript@5.5.2)):
+ vue-i18n@9.2.2(vue@3.4.21(typescript@5.6.2)):
dependencies:
'@intlify/core-base': 9.2.2
'@intlify/shared': 9.2.2
'@intlify/vue-devtools': 9.2.2
'@vue/devtools-api': 6.4.5
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.4.21(typescript@5.5.2)):
+ vue-inbrowser-compiler-independent-utils@4.71.1(vue@3.4.21(typescript@5.6.2)):
dependencies:
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-json-pretty@2.2.4(vue@3.4.21(typescript@5.5.2)):
+ vue-json-pretty@2.2.4(vue@3.4.21(typescript@5.6.2)):
dependencies:
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-markdown-render@2.2.1(vue@3.4.21(typescript@5.5.2)):
+ vue-markdown-render@2.2.1(vue@3.4.21(typescript@5.6.2)):
dependencies:
markdown-it: 13.0.2
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
- vue-router@4.2.2(vue@3.4.21(typescript@5.5.2)):
+ vue-router@4.2.2(vue@3.4.21(typescript@5.6.2)):
dependencies:
'@vue/devtools-api': 6.5.0
- vue: 3.4.21(typescript@5.5.2)
+ vue: 3.4.21(typescript@5.6.2)
vue-template-compiler@2.7.14:
dependencies:
de-indent: 1.0.2
he: 1.2.0
- vue-tsc@1.8.27(typescript@5.5.2):
+ vue-tsc@1.8.27(typescript@5.6.2):
dependencies:
'@volar/typescript': 1.11.1
- '@vue/language-core': 1.8.27(typescript@5.5.2)
+ '@vue/language-core': 1.8.27(typescript@5.6.2)
semver: 7.6.0
- typescript: 5.5.2
+ typescript: 5.6.2
- vue-tsc@2.0.19(typescript@5.5.2):
+ vue-tsc@2.0.19(typescript@5.6.2):
dependencies:
'@volar/typescript': 2.2.5
- '@vue/language-core': 2.0.19(typescript@5.5.2)
+ '@vue/language-core': 2.0.19(typescript@5.6.2)
semver: 7.6.0
- typescript: 5.5.2
+ typescript: 5.6.2
vue3-touch-events@4.1.3: {}
- vue@3.4.21(typescript@5.5.2):
+ vue@3.4.21(typescript@5.6.2):
dependencies:
'@vue/compiler-dom': 3.4.21
'@vue/compiler-sfc': 3.4.21
'@vue/runtime-dom': 3.4.21
- '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.5.2))
+ '@vue/server-renderer': 3.4.21(vue@3.4.21(typescript@5.6.2))
'@vue/shared': 3.4.21
optionalDependencies:
- typescript: 5.5.2
+ typescript: 5.6.2
w3c-keyname@2.2.6: {}
diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml
index 2caf5f6d7a..b93fd6b12c 100644
--- a/pnpm-workspace.yaml
+++ b/pnpm-workspace.yaml
@@ -8,7 +8,7 @@ catalog:
'@types/basic-auth': ^1.1.3
'@types/express': ^4.17.21
'@types/lodash': ^4.14.195
- '@types/uuid': ^8.3.2
+ '@types/uuid': ^10.0.0
'@types/xml2js': ^0.4.14
axios: 1.7.4
basic-auth: 2.0.1
@@ -18,7 +18,7 @@ catalog:
luxon: 3.4.4
nanoid: 3.3.6
typedi: 0.10.0
- uuid: 8.3.2
+ uuid: 10.0.0
xml2js: 0.6.2
zod: 3.23.8
'@langchain/core': 0.2.31
diff --git a/scripts/format.mjs b/scripts/format.mjs
index 11b267b477..69bbfce015 100644
--- a/scripts/format.mjs
+++ b/scripts/format.mjs
@@ -5,42 +5,61 @@ import path from 'path';
import { execSync } from 'child_process';
const prettier = path.resolve('node_modules', '.bin', 'prettier');
+const biome = path.resolve('node_modules', '.bin', 'biome');
-if (!fs.existsSync(prettier)) {
- throw new Error(
- [`Prettier not found at path: ${prettier}`, 'Please run `pnpm i` first'].join('\n'),
- );
-}
+[prettier, biome].forEach((bin) => {
+ if (!fs.existsSync(bin)) {
+ throw new Error(
+ [`${path.basename(bin)} not found at path: ${bin}`, 'Please run `pnpm i` first'].join('\n'),
+ );
+ }
+});
-const config = path.resolve('.prettierrc.js');
+const prettierConfig = path.resolve('.prettierrc.js');
+const biomeConfig = path.resolve('biome.jsonc');
const ignore = path.resolve('.prettierignore');
-const ROOT_DIRS_TO_SKIP = ['.git', 'node_modules', 'packages'];
-const EXTENSIONS_TO_FORMAT = ['.md', '.yml', '.js', '.json', '.ts'];
+const ROOT_DIRS_TO_SKIP = ['.git', 'node_modules', 'packages', '.turbo', 'cypress'];
+const EXTENSIONS_TO_FORMAT_WITH_PRETTIER = ['.yml'];
+const EXTENSIONS_TO_FORMAT_WITH_BIOME = ['.js', '.json', '.ts'];
const isDir = (path) => fs.lstatSync(path).isDirectory();
-const isTarget = (path) => EXTENSIONS_TO_FORMAT.some((ext) => path.endsWith(ext));
+const isPrettierTarget = (path) =>
+ EXTENSIONS_TO_FORMAT_WITH_PRETTIER.some((ext) => path.endsWith(ext));
+const isBiomeTarget = (path) => EXTENSIONS_TO_FORMAT_WITH_BIOME.some((ext) => path.endsWith(ext));
-const walk = (dir, test, found = []) => {
+const biomeTargets = [];
+const prettierTargets = [];
+
+const walk = (dir) => {
fs.readdirSync(dir).forEach((entry) => {
const entryPath = path.resolve(dir, entry);
- if (isDir(entryPath)) walk(entryPath, test, found);
- if (test(entryPath)) found.push(entryPath);
+ if (isDir(entryPath)) walk(entryPath);
+ if (isPrettierTarget(entryPath)) prettierTargets.push(entryPath);
+ if (isBiomeTarget(entryPath)) biomeTargets.push(entryPath);
});
-
- return found;
};
-const targets = fs
- .readdirSync('.')
- .reduce((acc, cur) => {
- if (ROOT_DIRS_TO_SKIP.includes(cur)) return acc;
- if (isDir(cur)) return [...acc, ...walk(cur, isTarget)];
- if (isTarget(cur)) return [...acc, cur];
+fs.readdirSync('.').forEach((cur) => {
+ if (ROOT_DIRS_TO_SKIP.includes(cur)) return;
+ if (isDir(cur)) walk(cur);
+ if (isPrettierTarget(cur)) prettierTargets.push(cur);
+ if (isBiomeTarget(cur)) biomeTargets.push(cur);
+});
- return acc;
- }, [])
- .join(' ');
+execSync(
+ [
+ prettier,
+ '--config',
+ prettierConfig,
+ '--ignore-path',
+ ignore,
+ '--write',
+ prettierTargets.join(' '),
+ ].join(' '),
+);
-execSync([prettier, '--config', config, '--ignore-path', ignore, '--write', targets].join(' '));
+execSync(
+ [biome, 'format', '--write', `--config-path=${biomeConfig}`, biomeTargets.join(' ')].join(' '),
+);
diff --git a/scripts/prepare.mjs b/scripts/prepare.mjs
new file mode 100644
index 0000000000..d729715347
--- /dev/null
+++ b/scripts/prepare.mjs
@@ -0,0 +1,10 @@
+#!/usr/bin/env node
+
+import { execSync } from 'node:child_process';
+
+// Skip lefthook install in CI or Docker build
+if (process.env.CI || process.env.DOCKER_BUILD) {
+ process.exit(0);
+}
+
+execSync('./node_modules/.bin/lefthook install', { stdio: 'inherit' });
diff --git a/turbo.json b/turbo.json
index 55e67cae94..cd38cc5045 100644
--- a/turbo.json
+++ b/turbo.json
@@ -23,6 +23,7 @@
"dependsOn": ["^typecheck"]
},
"format": {},
+ "format:check": {},
"lint:backend": {
"dependsOn": [
"@n8n/api-types#lint",