@n8n/decorators 1.38.1 → 1.39.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.
@@ -1,6 +1,7 @@
1
1
  import type { LICENSE_FEATURES, InstanceType } from '@n8n/constants';
2
2
  import { type Constructable } from '@n8n/di';
3
3
  import type { NodeLoader } from 'n8n-workflow';
4
+ import type { SystemTaskClass } from '../system-task/system-task';
4
5
  export interface BaseEntity {
5
6
  hasId(): boolean;
6
7
  save(options?: unknown): Promise<this>;
@@ -28,6 +29,7 @@ export interface ModuleInterface {
28
29
  entities?(): Promise<EntityClass[]>;
29
30
  settings?(): Promise<ModuleSettings>;
30
31
  context?(): Promise<ModuleContext>;
32
+ systemTasks?(): Promise<SystemTaskClass[]>;
31
33
  nodeLoaders?(): Promise<NodeLoader[]>;
32
34
  }
33
35
  export type ModuleClass = Constructable<ModuleInterface>;
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module/module.ts"],"names":[],"mappings":";;;AACA,gCAAiE;AAGjE,uDAAmD;AA6G5C,MAAM,aAAa,GACzB,CAAC,IAA0B,EAAkB,EAAE,CAC/C,CAAC,MAAM,EAAE,EAAE;IACV,cAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;QACjD,KAAK,EAAE,MAAgC;QACvC,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,aAAa,EAAE,IAAI,EAAE,aAAa;KAClC,CAAC,CAAC;IAGH,OAAO,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC;AAXU,QAAA,aAAa,GAAb,aAAa,CAWvB"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/module/module.ts"],"names":[],"mappings":";;;AACA,gCAAiE;AAGjE,uDAAmD;AAwH5C,MAAM,aAAa,GACzB,CAAC,IAA0B,EAAkB,EAAE,CAC/C,CAAC,MAAM,EAAE,EAAE;IACV,cAAS,CAAC,GAAG,CAAC,gCAAc,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;QACjD,KAAK,EAAE,MAAgC;QACvC,WAAW,EAAE,IAAI,EAAE,WAAW;QAC9B,aAAa,EAAE,IAAI,EAAE,aAAa;KAClC,CAAC,CAAC;IAGH,OAAO,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;AAC1B,CAAC,CAAC;AAXU,QAAA,aAAa,GAAb,aAAa,CAWvB"}
@@ -35,9 +35,11 @@ export type CredentialDecryptContext = {
35
35
  readonly consumer: CredentialConsumer | null;
36
36
  readonly projectId: string | null;
37
37
  };
38
+ export type ContentImportTransport = 'cli' | 'source-control' | 'package' | 'git-connection';
38
39
  export type ContentImportContext = {
39
40
  readonly workflow: PolicedWorkflow;
40
41
  readonly projectId: string | null;
42
+ readonly transport: ContentImportTransport;
41
43
  };
42
44
  export type PolicyVersionRef = {
43
45
  scope: string;
@@ -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,mBAAmB;IACnB,eAAe;CACN,CAAC;AA6KE,QAAA,yBAAyB,GAElC;IACH,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,oBAAoB;IACtC,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,mBAAmB;IACnB,eAAe;CACN,CAAC;AAuLE,QAAA,yBAAyB,GAElC;IACH,YAAY,EAAE,gBAAgB;IAC9B,eAAe,EAAE,mBAAmB;IACpC,aAAa,EAAE,iBAAiB;IAChC,gBAAgB,EAAE,oBAAoB;IACtC,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,10 +1,12 @@
1
1
  import { brand } from './policy-brand';
2
- import type { EnforcementPoint, PolicyDecision, PolicyVersionRef } from './policy-check';
2
+ import type { EnforcementPoint, PolicedWorkflow, PolicyDecision, PolicyVersionRef } from './policy-check';
3
3
  export type PolicySubjectType = 'workflow' | 'credential';
4
4
  export type PolicySubject = {
5
5
  readonly type: PolicySubjectType;
6
6
  readonly id: string;
7
7
  };
8
+ export declare function workflowContentSubject(workflow: Pick<PolicedWorkflow, 'nodes'>): PolicySubject;
9
+ export declare function workflowSubject(workflow: Pick<PolicedWorkflow, 'id' | 'nodes'>): PolicySubject;
8
10
  export type PolicyCleared<Point extends EnforcementPoint> = {
9
11
  readonly [brand]: 'Use the policy enforcement service — a cleared action cannot be forged';
10
12
  readonly point: Point;
@@ -1,8 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.workflowContentSubject = workflowContentSubject;
4
+ exports.workflowSubject = workflowSubject;
3
5
  exports.assertClearedFor = assertClearedFor;
4
6
  const n8n_workflow_1 = require("n8n-workflow");
7
+ const node_crypto_1 = require("node:crypto");
5
8
  const policy_brand_1 = require("./policy-brand");
9
+ function workflowContentSubject(workflow) {
10
+ const hash = (0, node_crypto_1.createHash)('sha256').update(JSON.stringify(workflow.nodes)).digest('hex');
11
+ return { type: 'workflow', id: hash };
12
+ }
13
+ function workflowSubject(workflow) {
14
+ if (workflow.id)
15
+ return { type: 'workflow', id: workflow.id };
16
+ return workflowContentSubject(workflow);
17
+ }
6
18
  function assertClearedFor(cleared, point, subject) {
7
19
  if (!cleared)
8
20
  throw new n8n_workflow_1.UnexpectedError(`No policy clearance for ${point}`);
@@ -1 +1 @@
1
- {"version":3,"file":"policy-cleared.js","sourceRoot":"","sources":["../../src/policy-check/policy-cleared.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAE/C,iDAAuC;AA+CvC,0BACC,OAAoD,EACpD,KAAuB,EACvB,OAAsB;IAEtB,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,8BAAe,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,oBAAK,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;QAC1D,MAAM,IAAI,8BAAe,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;QAC7E,MAAM,IAAI,8BAAe,CACxB,oBAAoB,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CACnG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"policy-cleared.js","sourceRoot":"","sources":["../../src/policy-check/policy-cleared.ts"],"names":[],"mappings":";;;;;AAAA,+CAA+C;AAC/C,6CAAyC;AAEzC,iDAAuC;AA+BvC,gCAAuC,QAAwC;IAE9E,MAAM,IAAI,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEvF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AASD,yBAAgC,QAA+C;IAC9E,IAAI,QAAQ,CAAC,EAAE;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;IAE9D,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AA+BD,0BACC,OAAoD,EACpD,KAAuB,EACvB,OAAsB;IAEtB,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,8BAAe,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;IAC5E,IAAI,OAAO,CAAC,oBAAK,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;QAC1D,MAAM,IAAI,8BAAe,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;QAC7E,MAAM,IAAI,8BAAe,CACxB,oBAAoB,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CACnG,CAAC;AACJ,CAAC"}
@@ -1,8 +1,7 @@
1
- import type { EnforcementPoint, PolicedWorkflow, PolicyDecision } from './policy-check';
1
+ import type { EnforcementPoint, PolicyDecision } from './policy-check';
2
2
  import type { PolicyCleared, PolicySubject } from './policy-cleared';
3
3
  export declare function mintPolicyCleared<Point extends EnforcementPoint>({ point, subject, decision, }: {
4
4
  point: Point;
5
5
  subject: PolicySubject;
6
6
  decision: PolicyDecision;
7
7
  }): PolicyCleared<Point>;
8
- export declare function workflowSubject(workflow: PolicedWorkflow): PolicySubject;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mintPolicyCleared = mintPolicyCleared;
4
- exports.workflowSubject = workflowSubject;
5
4
  const n8n_workflow_1 = require("n8n-workflow");
6
- const node_crypto_1 = require("node:crypto");
7
5
  const policy_brand_1 = require("./policy-brand");
8
6
  function mintPolicyCleared({ point, subject, decision, }) {
9
7
  const refusal = `Refusing to clear ${point} for ${subject.type} ${subject.id}`;
@@ -21,10 +19,4 @@ function mintPolicyCleared({ point, subject, decision, }) {
21
19
  policyVersions: decision.policyVersions ?? [],
22
20
  };
23
21
  }
24
- function workflowSubject(workflow) {
25
- if (workflow.id !== null)
26
- return { type: 'workflow', id: workflow.id };
27
- const nodes = (0, node_crypto_1.createHash)('sha256').update(JSON.stringify(workflow.nodes)).digest('hex');
28
- return { type: 'workflow', id: nodes };
29
- }
30
22
  //# sourceMappingURL=policy-mint.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy-mint.js","sourceRoot":"","sources":["../../src/policy-check/policy-mint.ts"],"names":[],"mappings":";;;;AAAA,+CAA+C;AAC/C,6CAAyC;AAEzC,iDAAuC;AAYvC,2BAAkE,EACjE,KAAK,EACL,OAAO,EACP,QAAQ,GAKR;IACA,MAAM,OAAO,GAAG,qBAAqB,KAAK,QAAQ,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAE/E,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,8BAAe,CACxB,GAAG,OAAO,kBAAkB,QAAQ,CAAC,UAAU,CAAC,MAAM,eAAe,CACrE,CAAC;IACH,CAAC;IAID,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,8BAAe,CAAC,GAAG,OAAO,KAAK,QAAQ,CAAC,WAAW,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAChG,CAAC;IAED,OAAO;QACN,CAAC,oBAAK,CAAC,EAAE,wEAAwE;QACjF,KAAK;QACL,OAAO;QACP,QAAQ;QACR,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,EAAE;KAC7C,CAAC;AACH,CAAC;AAGD,yBAAgC,QAAyB;IACxD,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;IAGvE,MAAM,KAAK,GAAG,IAAA,wBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"policy-mint.js","sourceRoot":"","sources":["../../src/policy-check/policy-mint.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAE/C,iDAAuC;AAYvC,2BAAkE,EACjE,KAAK,EACL,OAAO,EACP,QAAQ,GAKR;IACA,MAAM,OAAO,GAAG,qBAAqB,KAAK,QAAQ,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;IAE/E,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,8BAAe,CACxB,GAAG,OAAO,kBAAkB,QAAQ,CAAC,UAAU,CAAC,MAAM,eAAe,CACrE,CAAC;IACH,CAAC;IAID,IAAI,QAAQ,CAAC,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7D,MAAM,IAAI,8BAAe,CAAC,GAAG,OAAO,KAAK,QAAQ,CAAC,WAAW,CAAC,MAAM,yBAAyB,CAAC,CAAC;IAChG,CAAC;IAED,OAAO;QACN,CAAC,oBAAK,CAAC,EAAE,wEAAwE;QACjF,KAAK;QACL,OAAO;QACP,QAAQ;QACR,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,EAAE;KAC7C,CAAC;AACH,CAAC"}
@@ -7,10 +7,12 @@ export interface SystemTask {
7
7
  readonly schedule: SystemTaskSchedule;
8
8
  readonly effects: SystemTaskEffects;
9
9
  readonly durable: boolean;
10
+ readonly runOnTakeover?: boolean;
11
+ readonly retryDelaySeconds?: number;
10
12
  readonly misfirePolicy?: ScheduledJobMisfirePolicy;
11
13
  readonly misfireGraceSeconds?: number;
12
14
  readonly maxAttempts?: number;
13
- run(): Promise<void>;
15
+ run(signal: AbortSignal): Promise<void>;
14
16
  }
15
17
  export interface SystemTaskRunOptions {
16
18
  misfirePolicy: ScheduledJobMisfirePolicy;
@@ -5,7 +5,6 @@ exports.resolveSystemTaskRunOptions = resolveSystemTaskRunOptions;
5
5
  const constants_1 = require("@n8n/constants");
6
6
  const di_1 = require("@n8n/di");
7
7
  const n8n_workflow_1 = require("n8n-workflow");
8
- const system_task_metadata_1 = require("./system-task-metadata");
9
8
  const SYSTEM_TASK_RUN_OPTION_DEFAULTS = {
10
9
  idempotent: {
11
10
  misfirePolicy: constants_1.ScheduledJobMisfirePolicy.Coalesce,
@@ -21,7 +20,7 @@ function resolveSystemTaskRunOptions(task) {
21
20
  const options = {
22
21
  misfirePolicy: task.misfirePolicy ?? defaults.misfirePolicy,
23
22
  misfireGraceSeconds: task.misfireGraceSeconds ?? constants_1.DEFAULT_MISFIRE_GRACE_SECONDS,
24
- maxAttempts: task.maxAttempts ?? defaults.maxAttempts,
23
+ maxAttempts: task.effects === 'non-idempotent' ? 1 : (task.maxAttempts ?? defaults.maxAttempts),
25
24
  };
26
25
  assertInRange(task.name, 'maxAttempts', options.maxAttempts, 1);
27
26
  assertInRange(task.name, 'misfireGraceSeconds', options.misfireGraceSeconds, 1);
@@ -35,7 +34,6 @@ function assertInRange(taskName, field, value, min) {
35
34
  }
36
35
  const SystemTask = () => (target) => {
37
36
  (0, di_1.Service)()(target);
38
- di_1.Container.get(system_task_metadata_1.SystemTaskMetadata).register(target);
39
37
  return target;
40
38
  };
41
39
  exports.SystemTask = SystemTask;
@@ -1 +1 @@
1
- {"version":3,"file":"system-task.js","sourceRoot":"","sources":["../../src/system-task/system-task.ts"],"names":[],"mappings":";;;;AAAA,8CAKwB;AACxB,gCAAiE;AACjE,+CAA+C;AAE/C,iEAA4D;AAqE5D,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;AAOF,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,WAAW,IAAI,QAAQ,CAAC,WAAW;KACrD,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;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;AAiBM,MAAM,UAAU,GACtB,GAAG,EAAE,CACL,CAA4B,MAAS,EAAK,EAAE;IAI3C,IAAA,YAAO,GAAE,CAAC,MAAM,CAAC,CAAC;IAClB,cAAS,CAAC,GAAG,CAAC,yCAAkB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC;AACf,CAAC,CAAC;AATU,QAAA,UAAU,GAAV,UAAU,CASpB"}
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;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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@n8n/decorators",
3
- "version": "1.38.1",
3
+ "version": "1.39.0",
4
4
  "main": "dist/index.js",
5
5
  "module": "src/index.ts",
6
6
  "types": "dist/index.d.ts",
@@ -22,21 +22,21 @@
22
22
  "LICENSE.md"
23
23
  ],
24
24
  "devDependencies": {
25
+ "@n8n/typescript-config": "1.11.0",
26
+ "@n8n/vitest-config": "1.21.0",
25
27
  "@types/express": "^5.0.1",
26
28
  "@types/lodash": "4.17.17",
27
29
  "typescript": "7.0.2",
28
30
  "vitest": "^4.1.9",
29
- "zod": "3.25.76",
30
- "@n8n/typescript-config": "1.11.0",
31
- "@n8n/vitest-config": "1.21.0"
31
+ "zod": "3.25.76"
32
32
  },
33
33
  "dependencies": {
34
- "lodash": "4.18.1",
35
- "@n8n/constants": "0.37.1",
36
- "@n8n/permissions": "0.75.1",
34
+ "@n8n/api-types": "1.39.0",
35
+ "@n8n/constants": "0.38.0",
37
36
  "@n8n/di": "0.16.0",
38
- "n8n-workflow": "2.38.1",
39
- "@n8n/api-types": "1.38.1"
37
+ "@n8n/permissions": "0.76.0",
38
+ "lodash": "4.18.1",
39
+ "n8n-workflow": "2.39.0"
40
40
  },
41
41
  "license": "SEE LICENSE IN LICENSE.md",
42
42
  "homepage": "https://n8n.io",