@n8n/decorators 1.41.0 → 1.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46,10 +46,13 @@ export type CredentialDecryptContext = {
46
46
  };
47
47
  export type ContentImportTransport = 'cli' | 'source-control' | 'package' | 'git-connection';
48
48
  export type ContentImportContext = {
49
- readonly workflow: PolicedWorkflow;
50
49
  readonly projectId: string | null;
51
50
  readonly transport: ContentImportTransport;
52
- };
51
+ } & ({
52
+ readonly workflow: PolicedWorkflow;
53
+ } | {
54
+ readonly credential: PolicedCredential;
55
+ });
53
56
  export type PolicyVersionRef = {
54
57
  scope: string;
55
58
  version: number;
@@ -1 +1 @@
1
- {"version":3,"file":"policy-check.js","sourceRoot":"","sources":["../../src/policy-check/policy-check.ts"],"names":[],"mappings":";;;AAaa,QAAA,kBAAkB,GAAG;IACjC,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,eAAe;CACN,CAAC;AAkNE,QAAA,yBAAyB,GAElC;IACH,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,qBAAqB;IACxC,aAAa,EAAE,iBAAiB;CAChC,CAAC;AAUK,MAAM,mBAAmB,GAAG,CAAC,KAA4B,EAAsB,EAAE,CACvF,QAAA,kBAAkB,CAAC,MAAM,CACxB,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,QAAA,yBAAyB,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU,CACxE,CAAC;AAHU,QAAA,mBAAmB,GAAnB,mBAAmB,CAG7B"}
1
+ {"version":3,"file":"policy-check.js","sourceRoot":"","sources":["../../src/policy-check/policy-check.ts"],"names":[],"mappings":";;;AAaa,QAAA,kBAAkB,GAAG;IACjC,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,eAAe;CACN,CAAC;AAuNE,QAAA,yBAAyB,GAElC;IACH,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,oBAAoB;IACtC,cAAc,EAAE,kBAAkB;IAClC,iBAAiB,EAAE,qBAAqB;IACxC,aAAa,EAAE,iBAAiB;CAChC,CAAC;AAUK,MAAM,mBAAmB,GAAG,CAAC,KAA4B,EAAsB,EAAE,CACvF,QAAA,kBAAkB,CAAC,MAAM,CACxB,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,CAAC,QAAA,yBAAyB,CAAC,KAAK,CAAC,CAAC,KAAK,UAAU,CACxE,CAAC;AAHU,QAAA,mBAAmB,GAAnB,mBAAmB,CAG7B"}
@@ -1,6 +1,6 @@
1
1
  import type { InstanceRole, InstanceType } from '@n8n/constants';
2
2
  import type { EventHandler } from '../types';
3
- export type PubSubEventName = 'add-webhooks-triggers-and-pollers' | 'remove-triggers-and-pollers' | 'clear-test-webhooks' | 'display-workflow-activation' | 'display-workflow-deactivation' | 'display-workflow-activation-error' | 'display-workflow-publication-status' | 'workflow-publish-wake-up' | 'community-package-install' | 'community-package-uninstall' | 'community-package-update' | 'get-worker-status' | 'stop-execution' | 'reload-external-secrets-providers' | 'reload-license' | 'reload-oidc-config' | 'reload-saml-config' | 'reload-overwrite-credentials' | 'response-to-get-worker-status' | 'restart-event-bus' | 'relay-execution-lifecycle-event' | 'relay-agent-execution-update' | 'relay-agent-background-tasks-update' | 'relay-agent-update' | 'resume-agent-workflow-tool' | 'relay-chat-stream-event' | 'relay-instance-ai-event' | 'relay-instance-ai-task-control' | 'relay-chat-human-message' | 'relay-chat-message-edit' | 'reload-sso-provisioning-configuration' | 'reload-source-control-config' | 'reload-mcp-registry' | 'reload-otel-config' | 'reload-instance-ai-settings' | 'cancel-test-run' | 'cancel-collection' | 'agent-chat-integration-changed' | 'agent-chat-subscription-changed' | 'agent-chat-leader-channel-request' | 'agent-chat-leader-channel-result' | 'agent-config-changed' | 'cancel-agent-background-job' | 'wake-agent-background-job' | 'agent-tasks-changed' | 'redaction-floor-changed';
3
+ export type PubSubEventName = 'add-webhooks-triggers-and-pollers' | 'remove-triggers-and-pollers' | 'clear-test-webhooks' | 'display-workflow-activation' | 'display-workflow-deactivation' | 'display-workflow-activation-error' | 'display-workflow-publication-status' | 'workflow-publish-wake-up' | 'community-package-install' | 'community-package-uninstall' | 'community-package-update' | 'get-worker-status' | 'stop-execution' | 'reload-external-secrets-providers' | 'reload-license' | 'reload-oidc-config' | 'reload-saml-config' | 'reload-overwrite-credentials' | 'response-to-get-worker-status' | 'restart-event-bus' | 'relay-execution-lifecycle-event' | 'relay-agent-execution-update' | 'relay-agent-queued-chat' | 'cancel-agent-chat-execution' | 'relay-agent-message-queue-update' | 'relay-agent-background-tasks-update' | 'relay-agent-update' | 'resume-agent-workflow-tool' | 'relay-chat-stream-event' | 'relay-instance-ai-event' | 'relay-instance-ai-task-control' | 'relay-chat-human-message' | 'relay-chat-message-edit' | 'reload-sso-provisioning-configuration' | 'reload-source-control-config' | 'reload-mcp-registry' | 'reload-otel-config' | 'reload-instance-ai-settings' | 'cancel-test-run' | 'cancel-collection' | 'agent-chat-integration-changed' | 'agent-chat-subscription-changed' | 'agent-chat-leader-channel-request' | 'agent-chat-leader-channel-result' | 'agent-config-changed' | 'cancel-agent-background-job' | 'wake-agent-background-job' | 'agent-tasks-changed' | 'redaction-floor-changed';
4
4
  export type PubSubEventFilter = {
5
5
  instanceType: 'main';
6
6
  instanceRole?: Omit<InstanceRole, 'unset'>;
@@ -1 +1 @@
1
- {"version":3,"file":"pubsub-metadata.js","sourceRoot":"","sources":["../../src/pubsub/pubsub-metadata.ts"],"names":[],"mappings":";;;;;;;;;AACA,gCAAkC;AAiE3B,IAAM,cAAc,GAApB,MAAM,cAAc;IAApB;QACW,aAAQ,GAAyB,EAAE,CAAC;IAStD,CAAC;IAPA,QAAQ,CAAC,OAA2B;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD,CAAA;;yBAVY,cAAc;IAD1B,IAAA,YAAO,GAAE;GACG,cAAc,CAU1B"}
1
+ {"version":3,"file":"pubsub-metadata.js","sourceRoot":"","sources":["../../src/pubsub/pubsub-metadata.ts"],"names":[],"mappings":";;;;;;;;;AACA,gCAAkC;AAoE3B,IAAM,cAAc,GAApB,MAAM,cAAc;IAApB;QACW,aAAQ,GAAyB,EAAE,CAAC;IAStD,CAAC;IAPA,QAAQ,CAAC,OAA2B;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD,CAAA;;yBAVY,cAAc;IAD1B,IAAA,YAAO,GAAE;GACG,cAAc,CAU1B"}
@@ -1,3 +1,4 @@
1
- export { SystemTask, resolveSystemTaskRunOptions, resolveSystemTaskSchedule, } from './system-task';
1
+ export { SystemTask, intervalFromMilliseconds, intervalFromSeconds, resolveSystemTaskRunOptions, resolveSystemTaskSchedule, validateSystemTask, } from './system-task';
2
2
  export type { SystemTaskClass, SystemTaskEffects, SystemTaskRunOptions, SystemTaskSchedule, } from './system-task';
3
+ export type { SystemTaskPlacement } from './system-task-placement';
3
4
  export { SystemTaskMetadata } from './system-task-metadata';
@@ -1,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SystemTaskMetadata = exports.resolveSystemTaskSchedule = exports.resolveSystemTaskRunOptions = exports.SystemTask = void 0;
3
+ exports.SystemTaskMetadata = exports.validateSystemTask = exports.resolveSystemTaskSchedule = exports.resolveSystemTaskRunOptions = exports.intervalFromSeconds = exports.intervalFromMilliseconds = exports.SystemTask = void 0;
4
4
  var system_task_1 = require("./system-task");
5
5
  Object.defineProperty(exports, "SystemTask", { enumerable: true, get: function () { return system_task_1.SystemTask; } });
6
+ Object.defineProperty(exports, "intervalFromMilliseconds", { enumerable: true, get: function () { return system_task_1.intervalFromMilliseconds; } });
7
+ Object.defineProperty(exports, "intervalFromSeconds", { enumerable: true, get: function () { return system_task_1.intervalFromSeconds; } });
6
8
  Object.defineProperty(exports, "resolveSystemTaskRunOptions", { enumerable: true, get: function () { return system_task_1.resolveSystemTaskRunOptions; } });
7
9
  Object.defineProperty(exports, "resolveSystemTaskSchedule", { enumerable: true, get: function () { return system_task_1.resolveSystemTaskSchedule; } });
10
+ Object.defineProperty(exports, "validateSystemTask", { enumerable: true, get: function () { return system_task_1.validateSystemTask; } });
8
11
  var system_task_metadata_1 = require("./system-task-metadata");
9
12
  Object.defineProperty(exports, "SystemTaskMetadata", { enumerable: true, get: function () { return system_task_metadata_1.SystemTaskMetadata; } });
10
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/system-task/index.ts"],"names":[],"mappings":";;;AAAA,6CAIuB;AAHtB,yGAAA,UAAU,OAAA;AACV,0HAAA,2BAA2B,OAAA;AAC3B,wHAAA,yBAAyB,OAAA;AAQ1B,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/system-task/index.ts"],"names":[],"mappings":";;;AAAA,6CAOuB;AANtB,yGAAA,UAAU,OAAA;AACV,uHAAA,wBAAwB,OAAA;AACxB,kHAAA,mBAAmB,OAAA;AACnB,0HAAA,2BAA2B,OAAA;AAC3B,wHAAA,yBAAyB,OAAA;AACzB,iHAAA,kBAAkB,OAAA;AASnB,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
@@ -0,0 +1,9 @@
1
+ import type { InstanceType } from '@n8n/constants';
2
+ export type SystemTaskPlacement = {
3
+ readonly scope: 'cluster';
4
+ readonly durable: boolean;
5
+ readonly runOnTakeover?: boolean;
6
+ } | {
7
+ readonly scope: 'instance';
8
+ readonly instanceTypes: readonly [InstanceType, ...InstanceType[]];
9
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=system-task-placement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-task-placement.js","sourceRoot":"","sources":["../../src/system-task/system-task-placement.ts"],"names":[],"mappings":""}
@@ -1,13 +1,13 @@
1
- import { ScheduledJobMisfirePolicy, type OneOffDefinition, type ScheduleDefinition } from '@n8n/constants';
1
+ import { ScheduledJobMisfirePolicy, type IntervalDefinition, type OneOffDefinition, type ScheduleDefinition } from '@n8n/constants';
2
2
  import { type Constructable } from '@n8n/di';
3
+ import type { SystemTaskPlacement } from './system-task-placement';
3
4
  export type SystemTaskEffects = 'idempotent' | 'non-idempotent';
4
5
  export type SystemTaskSchedule = Exclude<ScheduleDefinition, OneOffDefinition>;
5
6
  export interface SystemTask {
6
7
  readonly name: string;
7
8
  readonly schedule: SystemTaskSchedule;
8
9
  readonly effects: SystemTaskEffects;
9
- readonly durable: boolean;
10
- readonly runOnTakeover?: boolean;
10
+ readonly placement: SystemTaskPlacement;
11
11
  readonly retryDelaySeconds?: number;
12
12
  readonly misfirePolicy?: ScheduledJobMisfirePolicy;
13
13
  readonly misfireGraceSeconds?: number;
@@ -20,6 +20,9 @@ export interface SystemTaskRunOptions {
20
20
  maxAttempts: number;
21
21
  }
22
22
  export declare function resolveSystemTaskRunOptions(task: SystemTask): SystemTaskRunOptions;
23
+ export declare function validateSystemTask(task: SystemTask): void;
24
+ export declare function intervalFromSeconds(seconds: number): IntervalDefinition;
25
+ export declare function intervalFromMilliseconds(milliseconds: number): IntervalDefinition;
23
26
  export declare function resolveSystemTaskSchedule(task: SystemTask): SystemTaskSchedule;
24
27
  export type SystemTaskClass = Constructable<SystemTask>;
25
28
  export declare const SystemTask: () => <T extends SystemTaskClass>(target: T) => T;
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SystemTask = void 0;
4
4
  exports.resolveSystemTaskRunOptions = resolveSystemTaskRunOptions;
5
+ exports.validateSystemTask = validateSystemTask;
6
+ exports.intervalFromSeconds = intervalFromSeconds;
7
+ exports.intervalFromMilliseconds = intervalFromMilliseconds;
5
8
  exports.resolveSystemTaskSchedule = resolveSystemTaskSchedule;
6
9
  const constants_1 = require("@n8n/constants");
7
10
  const di_1 = require("@n8n/di");
@@ -27,20 +30,62 @@ function resolveSystemTaskRunOptions(task) {
27
30
  assertInRange(task.name, 'misfireGraceSeconds', options.misfireGraceSeconds, 1);
28
31
  return options;
29
32
  }
33
+ const MAX_RETRY_DELAY_SECONDS = Math.floor(constants_1.MAX_INTEGER_32BITS_SIGNED / constants_1.Time.seconds.toMilliseconds);
34
+ function validateSystemTask(task) {
35
+ resolveSystemTaskRunOptions(task);
36
+ const { retryDelaySeconds } = task;
37
+ if (retryDelaySeconds !== undefined &&
38
+ (!Number.isInteger(retryDelaySeconds) ||
39
+ retryDelaySeconds < 1 ||
40
+ retryDelaySeconds > MAX_RETRY_DELAY_SECONDS)) {
41
+ throw new n8n_workflow_1.UnexpectedError('A system task declares an out-of-range retry delay', {
42
+ extra: { name: task.name, retryDelaySeconds },
43
+ });
44
+ }
45
+ const { schedule, placement } = task;
46
+ if (placement.scope === 'instance' &&
47
+ schedule.kind === 'interval' &&
48
+ !(schedule.intervalSeconds > 0 && Number.isFinite(schedule.intervalSeconds))) {
49
+ throw new n8n_workflow_1.UnexpectedError('A system task declares an interval that is not positive and finite', {
50
+ extra: { name: task.name, intervalSeconds: schedule.intervalSeconds },
51
+ });
52
+ }
53
+ }
54
+ function intervalFromSeconds(seconds) {
55
+ if (!(seconds >= 0)) {
56
+ throw new n8n_workflow_1.UnexpectedError('A system task interval in seconds is negative or not a number', {
57
+ extra: { seconds },
58
+ });
59
+ }
60
+ return { kind: 'interval', intervalSeconds: Math.round(seconds) };
61
+ }
62
+ function intervalFromMilliseconds(milliseconds) {
63
+ return {
64
+ kind: 'interval',
65
+ intervalSeconds: Math.round(milliseconds) / constants_1.Time.seconds.toMilliseconds,
66
+ };
67
+ }
30
68
  function resolveSystemTaskSchedule(task) {
31
69
  const { schedule } = task;
32
70
  if (schedule.kind !== 'interval')
33
71
  return schedule;
34
- return { ...schedule, intervalSeconds: wholeSeconds(schedule.intervalSeconds) };
72
+ const intervalSeconds = task.placement.scope === 'instance'
73
+ ? wholeMilliseconds(schedule.intervalSeconds)
74
+ : wholeSeconds(schedule.intervalSeconds);
75
+ return { ...schedule, intervalSeconds };
35
76
  }
36
77
  function wholeSeconds(seconds) {
37
78
  return Math.max(1, Math.round(seconds));
38
79
  }
39
- const MAX_INT32 = 2_147_483_647;
80
+ function wholeMilliseconds(seconds) {
81
+ return (Math.max(1, Math.round(seconds * constants_1.Time.seconds.toMilliseconds)) / constants_1.Time.seconds.toMilliseconds);
82
+ }
40
83
  function assertInRange(taskName, field, value, min) {
41
- if (Number.isInteger(value) && value >= min && value <= MAX_INT32)
42
- return;
43
- throw new n8n_workflow_1.UnexpectedError(`System task "${taskName}" declares ${field} as ${value}, but it must be an integer between ${min} and ${MAX_INT32}`);
84
+ if (!Number.isInteger(value) || value < min || value > constants_1.MAX_INTEGER_32BITS_SIGNED) {
85
+ throw new n8n_workflow_1.UnexpectedError('A system task declares an out-of-range option', {
86
+ extra: { name: taskName, field, value, min, max: constants_1.MAX_INTEGER_32BITS_SIGNED },
87
+ });
88
+ }
44
89
  }
45
90
  const SystemTask = () => (target) => {
46
91
  (0, di_1.Service)()(target);
@@ -1 +1 @@
1
- {"version":3,"file":"system-task.js","sourceRoot":"","sources":["../../src/system-task/system-task.ts"],"names":[],"mappings":";;;;;AAAA,8CAKwB;AACxB,gCAAsD;AACtD,+CAA+C;AA2F/C,MAAM,+BAA+B,GAGjC;IACH,UAAU,EAAE;QACX,aAAa,EAAE,qCAAyB,CAAC,QAAQ;QACjD,WAAW,EAAE,CAAC;KACd;IAED,gBAAgB,EAAE;QACjB,aAAa,EAAE,qCAAyB,CAAC,IAAI;QAC7C,WAAW,EAAE,CAAC;KACd;CACD,CAAC;AAQF,qCAA4C,IAAgB;IAC3D,MAAM,QAAQ,GAAG,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAE/D,MAAM,OAAO,GAAG;QACf,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa;QAC3D,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,yCAA6B;QAC9E,WAAW,EAAE,IAAI,CAAC,OAAO,KAAK,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC;KAC/F,CAAC;IAQF,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAChE,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;IAEhF,OAAO,OAAO,CAAC;AAChB,CAAC;AAOD,mCAA0C,IAAgB;IACzD,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC1B,IAAI,QAAQ,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,QAAQ,CAAC;IAElD,OAAO,EAAE,GAAG,QAAQ,EAAE,eAAe,EAAE,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;AACjF,CAAC;AAGD,SAAS,YAAY,CAAC,OAAe;IACpC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AACzC,CAAC;AAGD,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,SAAS,aAAa,CAAC,QAAgB,EAAE,KAAa,EAAE,KAAa,EAAE,GAAW;IACjF,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,SAAS;QAAE,OAAO;IAE1E,MAAM,IAAI,8BAAe,CACxB,gBAAgB,QAAQ,cAAc,KAAK,OAAO,KAAK,uCAAuC,GAAG,QAAQ,SAAS,EAAE,CACpH,CAAC;AACH,CAAC;AAkBM,MAAM,UAAU,GACtB,GAAG,EAAE,CACL,CAA4B,MAAS,EAAK,EAAE;IAE3C,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;IAClB,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AANU,QAAA,UAAU,GAAV,UAAU,CAMpB"}
1
+ {"version":3,"file":"system-task.js","sourceRoot":"","sources":["../../src/system-task/system-task.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/decorators",
3
- "version": "1.41.0",
3
+ "version": "1.42.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
@@ -22,21 +22,24 @@
22
22
  "LICENSE_EE.md"
23
23
  ],
24
24
  "devDependencies": {
25
+ "@n8n/oxlint-config": "0.0.1",
25
26
  "@n8n/typescript-config": "1.12.0",
26
- "@n8n/vitest-config": "1.22.0",
27
+ "@n8n/vitest-config": "1.23.0",
27
28
  "@types/express": "^5.0.1",
28
29
  "@types/lodash": "4.17.17",
30
+ "oxlint": "1.78.0",
31
+ "oxlint-tsgolint": "^0.21.1",
29
32
  "typescript": "7.0.2",
30
- "vitest": "^4.1.9",
33
+ "vitest": "5.0.1",
31
34
  "zod": "3.25.76"
32
35
  },
33
36
  "dependencies": {
34
- "@n8n/api-types": "1.41.0",
35
- "@n8n/constants": "0.39.0",
37
+ "@n8n/api-types": "1.42.0",
38
+ "@n8n/constants": "0.40.0",
36
39
  "@n8n/di": "0.17.0",
37
- "@n8n/permissions": "0.78.0",
40
+ "@n8n/permissions": "0.79.0",
38
41
  "lodash": "4.18.1",
39
- "n8n-workflow": "2.41.0"
42
+ "n8n-workflow": "2.42.0"
40
43
  },
41
44
  "license": "SEE LICENSE IN LICENSE.md",
42
45
  "homepage": "https://n8n.io",
@@ -56,8 +59,8 @@
56
59
  "build:unchecked": "tsc -p tsconfig.build.json --noCheck",
57
60
  "format": "biome format --write .",
58
61
  "format:check": "biome ci .",
59
- "lint": "eslint . --quiet",
60
- "lint:fix": "eslint . --fix",
62
+ "lint": "oxlint --quiet",
63
+ "lint:fix": "oxlint --fix",
61
64
  "watch": "tsc -p tsconfig.build.json --watch",
62
65
  "test": "vitest run",
63
66
  "test:unit": "vitest run",