@n8n/decorators 1.37.2 → 1.38.1
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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/execution-lifecycle/lifecycle-metadata.d.ts +1 -1
- package/dist/execution-lifecycle/lifecycle-metadata.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/multi-main/multi-main-metadata.d.ts +3 -5
- package/dist/multi-main/multi-main-metadata.js +8 -16
- package/dist/multi-main/multi-main-metadata.js.map +1 -1
- package/dist/policy-check/index.d.ts +1 -0
- package/dist/policy-check/index.js +1 -0
- package/dist/policy-check/index.js.map +1 -1
- package/dist/policy-check/policy-brand.d.ts +1 -0
- package/dist/policy-check/policy-brand.js +5 -0
- package/dist/policy-check/policy-brand.js.map +1 -0
- package/dist/policy-check/policy-check.d.ts +2 -13
- package/dist/policy-check/policy-check.js.map +1 -1
- package/dist/policy-check/policy-cleared.d.ts +15 -0
- package/dist/policy-check/policy-cleared.js +14 -0
- package/dist/policy-check/policy-cleared.js.map +1 -0
- package/dist/policy-check/policy-mint.d.ts +8 -0
- package/dist/policy-check/policy-mint.js +30 -0
- package/dist/policy-check/policy-mint.js.map +1 -0
- package/dist/pubsub/pubsub-metadata.d.ts +1 -1
- package/dist/pubsub/pubsub-metadata.js.map +1 -1
- package/dist/replayable-registry.d.ts +11 -0
- package/dist/replayable-registry.js +38 -0
- package/dist/replayable-registry.js.map +1 -0
- package/dist/system-task/index.d.ts +3 -0
- package/dist/system-task/index.js +9 -0
- package/dist/system-task/index.js.map +1 -0
- package/dist/system-task/system-task-metadata.d.ts +6 -0
- package/dist/system-task/system-task-metadata.js +28 -0
- package/dist/system-task/system-task-metadata.js.map +1 -0
- package/dist/system-task/system-task.d.ts +22 -0
- package/dist/system-task/system-task.js +42 -0
- package/dist/system-task/system-task.js.map +1 -0
- package/package.json +19 -7
|
@@ -22,7 +22,7 @@ export type WorkflowExecuteBeforeContext = {
|
|
|
22
22
|
type: 'workflowExecuteBefore';
|
|
23
23
|
workflow: IWorkflowBase;
|
|
24
24
|
mode: WorkflowExecuteMode;
|
|
25
|
-
workflowInstance: Workflow;
|
|
25
|
+
workflowInstance: Workflow | undefined;
|
|
26
26
|
executionData?: IRunExecutionData;
|
|
27
27
|
executionId: string;
|
|
28
28
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle-metadata.js","sourceRoot":"","sources":["../../src/execution-lifecycle/lifecycle-metadata.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;
|
|
1
|
+
{"version":3,"file":"lifecycle-metadata.js","sourceRoot":"","sources":["../../src/execution-lifecycle/lifecycle-metadata.ts"],"names":[],"mappings":";;;;;;;;;AAAA,gCAAkC;AA2F3B,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QACW,aAAQ,GAAuB,EAAE,CAAC;IASpD,CAAC;IAPA,QAAQ,CAAC,OAAyB;QACjC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW;QACV,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;CACD,CAAA;;4BAVY,iBAAiB;IAD7B,IAAA,YAAO,GAAE;GACG,iBAAiB,CAU7B"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ export * from './policy-check';
|
|
|
14
14
|
export * from './pubsub';
|
|
15
15
|
export { Redactable } from './redactable';
|
|
16
16
|
export * from './shutdown';
|
|
17
|
+
export * from './system-task';
|
|
17
18
|
export * from './module/module-metadata';
|
|
18
19
|
export type { TimedOptions } from './timed';
|
|
19
20
|
export { Timed } from './timed';
|
package/dist/index.js
CHANGED
|
@@ -34,6 +34,7 @@ __exportStar(require("./pubsub"), exports);
|
|
|
34
34
|
var redactable_1 = require("./redactable");
|
|
35
35
|
Object.defineProperty(exports, "Redactable", { enumerable: true, get: function () { return redactable_1.Redactable; } });
|
|
36
36
|
__exportStar(require("./shutdown"), exports);
|
|
37
|
+
__exportStar(require("./system-task"), exports);
|
|
37
38
|
__exportStar(require("./module/module-metadata"), exports);
|
|
38
39
|
var timed_1 = require("./timed");
|
|
39
40
|
Object.defineProperty(exports, "Timed", { enumerable: true, get: function () { return timed_1.Timed; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,+CAA6B;AAC7B,4CAA0B;AAC1B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,wDAAsC;AACtC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAA+B;AAC/B,kDAAgC;AAChC,0DAAwC;AACxC,wDAAsC;AACtC,2CAAyB;AACzB,+CAA6B;AAC7B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,6CAA2B;AAC3B,2DAAyC;AAEzC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yDAAuC;AACvC,+CAA6B;AAC7B,4CAA0B;AAC1B,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,wDAAsC;AACtC,uCAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,iDAA+B;AAC/B,kDAAgC;AAChC,0DAAwC;AACxC,wDAAsC;AACtC,2CAAyB;AACzB,+CAA6B;AAC7B,iDAA+B;AAC/B,2CAAyB;AACzB,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,6CAA2B;AAC3B,gDAA8B;AAC9B,2DAAyC;AAEzC,iCAAgC;AAAvB,8FAAA,KAAK,OAAA"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
+
import { ReplayableRegistry } from '../replayable-registry';
|
|
1
2
|
import type { EventHandler } from '../types';
|
|
2
3
|
export declare const LEADER_TAKEOVER_EVENT_NAME = "leader-takeover";
|
|
3
4
|
export declare const LEADER_STEPDOWN_EVENT_NAME = "leader-stepdown";
|
|
4
5
|
export type MultiMainEvent = typeof LEADER_TAKEOVER_EVENT_NAME | typeof LEADER_STEPDOWN_EVENT_NAME;
|
|
5
6
|
export type MultiMainEventHandler = EventHandler<MultiMainEvent>;
|
|
6
|
-
export declare class MultiMainMetadata {
|
|
7
|
-
|
|
8
|
-
private onRegister?;
|
|
9
|
-
register(handler: MultiMainEventHandler): void;
|
|
10
|
-
subscribe(listener: (handler: MultiMainEventHandler) => void): void;
|
|
7
|
+
export declare class MultiMainMetadata extends ReplayableRegistry<MultiMainEventHandler> {
|
|
8
|
+
constructor();
|
|
11
9
|
}
|
|
@@ -5,31 +5,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
6
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
7
|
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
12
|
exports.MultiMainMetadata = exports.LEADER_STEPDOWN_EVENT_NAME = exports.LEADER_TAKEOVER_EVENT_NAME = void 0;
|
|
10
13
|
const di_1 = require("@n8n/di");
|
|
11
|
-
const
|
|
14
|
+
const replayable_registry_1 = require("../replayable-registry");
|
|
12
15
|
exports.LEADER_TAKEOVER_EVENT_NAME = 'leader-takeover';
|
|
13
16
|
exports.LEADER_STEPDOWN_EVENT_NAME = 'leader-stepdown';
|
|
14
|
-
let MultiMainMetadata = class MultiMainMetadata {
|
|
17
|
+
let MultiMainMetadata = class MultiMainMetadata extends replayable_registry_1.ReplayableRegistry {
|
|
15
18
|
constructor() {
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
register(handler) {
|
|
19
|
-
this.handlers.push(handler);
|
|
20
|
-
this.onRegister?.(handler);
|
|
21
|
-
}
|
|
22
|
-
subscribe(listener) {
|
|
23
|
-
if (this.onRegister) {
|
|
24
|
-
throw new n8n_workflow_1.UnexpectedError('A listener is already subscribed to handler registrations');
|
|
25
|
-
}
|
|
26
|
-
this.onRegister = listener;
|
|
27
|
-
for (const handler of this.handlers)
|
|
28
|
-
listener(handler);
|
|
19
|
+
super('multi-main event handler', ({ eventHandlerClass, methodName }) => `${eventHandlerClass.name}.${methodName}`);
|
|
29
20
|
}
|
|
30
21
|
};
|
|
31
22
|
exports.MultiMainMetadata = MultiMainMetadata;
|
|
32
23
|
exports.MultiMainMetadata = MultiMainMetadata = __decorate([
|
|
33
|
-
(0, di_1.Service)()
|
|
24
|
+
(0, di_1.Service)(),
|
|
25
|
+
__metadata("design:paramtypes", [])
|
|
34
26
|
], MultiMainMetadata);
|
|
35
27
|
//# sourceMappingURL=multi-main-metadata.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-main-metadata.js","sourceRoot":"","sources":["../../src/multi-main/multi-main-metadata.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"multi-main-metadata.js","sourceRoot":"","sources":["../../src/multi-main/multi-main-metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAElC,gEAA4D;AAG/C,QAAA,0BAA0B,GAAG,iBAAiB,CAAC;AAC/C,QAAA,0BAA0B,GAAG,iBAAiB,CAAC;AAOrD,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,wCAAyC;IAC/E;QACC,KAAK,CACJ,0BAA0B,EAC1B,CAAC,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,GAAG,iBAAiB,CAAC,IAAI,IAAI,UAAU,EAAE,CAChF,CAAC;IACH,CAAC;CACD,CAAA;;4BAPY,iBAAiB;IAD7B,IAAA,YAAO,GAAE;;GACG,iBAAiB,CAO7B"}
|
|
@@ -20,4 +20,5 @@ Object.defineProperty(exports, "PolicyCheck", { enumerable: true, get: function
|
|
|
20
20
|
Object.defineProperty(exports, "PolicyCheckMetadata", { enumerable: true, get: function () { return policy_check_metadata_1.PolicyCheckMetadata; } });
|
|
21
21
|
Object.defineProperty(exports, "UnknownEnforcementPointError", { enumerable: true, get: function () { return policy_check_metadata_1.UnknownEnforcementPointError; } });
|
|
22
22
|
__exportStar(require("./policy-check"), exports);
|
|
23
|
+
__exportStar(require("./policy-cleared"), exports);
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,iEAIiC;AAHhC,oHAAA,WAAW,OAAA;AACX,4HAAA,mBAAmB,OAAA;AACnB,qIAAA,4BAA4B,OAAA;AAE7B,iDAA+B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy-check/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASA,iEAIiC;AAHhC,oHAAA,WAAW,OAAA;AACX,4HAAA,mBAAmB,OAAA;AACnB,qIAAA,4BAA4B,OAAA;AAE7B,iDAA+B;AAC/B,mDAAiC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const brand: unique symbol;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy-brand.js","sourceRoot":"","sources":["../../src/policy-check/policy-brand.ts"],"names":[],"mappings":";;;AAMa,QAAA,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import type { PolicyCheckFailure, PolicyViolation } from '@n8n/api-types';
|
|
1
2
|
import type { Constructable } from '@n8n/di';
|
|
2
3
|
import type { INode } from 'n8n-workflow';
|
|
4
|
+
export type { PolicyViolation, PolicyCheckFailure };
|
|
3
5
|
export declare const ENFORCEMENT_POINTS: readonly ['workflowSave', 'workflowPublish', 'workflowStart', 'workflowTransfer', 'credentialDecrypt', 'contentImport'];
|
|
4
6
|
export type EnforcementPoint = (typeof ENFORCEMENT_POINTS)[number];
|
|
5
7
|
export type PolicedWorkflow = {
|
|
@@ -37,23 +39,10 @@ export type ContentImportContext = {
|
|
|
37
39
|
readonly workflow: PolicedWorkflow;
|
|
38
40
|
readonly projectId: string | null;
|
|
39
41
|
};
|
|
40
|
-
export type PolicyViolation = {
|
|
41
|
-
kind: string;
|
|
42
|
-
checkId: string;
|
|
43
|
-
message: string;
|
|
44
|
-
subject?: string;
|
|
45
|
-
subjectType?: string;
|
|
46
|
-
scope?: string;
|
|
47
|
-
matchedRuleId?: string;
|
|
48
|
-
};
|
|
49
42
|
export type PolicyVersionRef = {
|
|
50
43
|
scope: string;
|
|
51
44
|
version: number;
|
|
52
45
|
};
|
|
53
|
-
export type PolicyCheckFailure = {
|
|
54
|
-
checkId: string;
|
|
55
|
-
correlationId: string;
|
|
56
|
-
};
|
|
57
46
|
export type PolicyCheckResult = {
|
|
58
47
|
violations: PolicyViolation[];
|
|
59
48
|
policyVersions?: PolicyVersionRef[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-check.js","sourceRoot":"","sources":["../../src/policy-check/policy-check.ts"],"names":[],"mappings":";;;
|
|
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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { brand } from './policy-brand';
|
|
2
|
+
import type { EnforcementPoint, PolicyDecision, PolicyVersionRef } from './policy-check';
|
|
3
|
+
export type PolicySubjectType = 'workflow' | 'credential';
|
|
4
|
+
export type PolicySubject = {
|
|
5
|
+
readonly type: PolicySubjectType;
|
|
6
|
+
readonly id: string;
|
|
7
|
+
};
|
|
8
|
+
export type PolicyCleared<Point extends EnforcementPoint> = {
|
|
9
|
+
readonly [brand]: 'Use the policy enforcement service — a cleared action cannot be forged';
|
|
10
|
+
readonly point: Point;
|
|
11
|
+
readonly subject: PolicySubject;
|
|
12
|
+
readonly decision: PolicyDecision;
|
|
13
|
+
readonly policyVersions: readonly PolicyVersionRef[];
|
|
14
|
+
};
|
|
15
|
+
export declare function assertClearedFor(cleared: PolicyCleared<EnforcementPoint> | undefined, point: EnforcementPoint, subject: PolicySubject): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assertClearedFor = assertClearedFor;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const policy_brand_1 = require("./policy-brand");
|
|
6
|
+
function assertClearedFor(cleared, point, subject) {
|
|
7
|
+
if (!cleared)
|
|
8
|
+
throw new n8n_workflow_1.UnexpectedError(`No policy clearance for ${point}`);
|
|
9
|
+
if (cleared[policy_brand_1.brand] === undefined || cleared.point !== point)
|
|
10
|
+
throw new n8n_workflow_1.UnexpectedError(`Clearance is not valid for ${point}`);
|
|
11
|
+
if (cleared.subject.type !== subject.type || cleared.subject.id !== subject.id)
|
|
12
|
+
throw new n8n_workflow_1.UnexpectedError(`Clearance is for ${cleared.subject.type} ${cleared.subject.id}, not ${subject.type} ${subject.id}`);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=policy-cleared.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EnforcementPoint, PolicedWorkflow, PolicyDecision } from './policy-check';
|
|
2
|
+
import type { PolicyCleared, PolicySubject } from './policy-cleared';
|
|
3
|
+
export declare function mintPolicyCleared<Point extends EnforcementPoint>({ point, subject, decision, }: {
|
|
4
|
+
point: Point;
|
|
5
|
+
subject: PolicySubject;
|
|
6
|
+
decision: PolicyDecision;
|
|
7
|
+
}): PolicyCleared<Point>;
|
|
8
|
+
export declare function workflowSubject(workflow: PolicedWorkflow): PolicySubject;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mintPolicyCleared = mintPolicyCleared;
|
|
4
|
+
exports.workflowSubject = workflowSubject;
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const policy_brand_1 = require("./policy-brand");
|
|
8
|
+
function mintPolicyCleared({ point, subject, decision, }) {
|
|
9
|
+
const refusal = `Refusing to clear ${point} for ${subject.type} ${subject.id}`;
|
|
10
|
+
if (decision.violations.length > 0) {
|
|
11
|
+
throw new n8n_workflow_1.UnexpectedError(`${refusal}: decision has ${decision.violations.length} violation(s)`);
|
|
12
|
+
}
|
|
13
|
+
if (decision.checkErrors && decision.checkErrors.length > 0) {
|
|
14
|
+
throw new n8n_workflow_1.UnexpectedError(`${refusal}: ${decision.checkErrors.length} check(s) failed to run`);
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
[policy_brand_1.brand]: 'Use the policy enforcement service — a cleared action cannot be forged',
|
|
18
|
+
point,
|
|
19
|
+
subject,
|
|
20
|
+
decision,
|
|
21
|
+
policyVersions: decision.policyVersions ?? [],
|
|
22
|
+
};
|
|
23
|
+
}
|
|
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
|
+
//# sourceMappingURL=policy-mint.js.map
|
|
@@ -0,0 +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,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-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' | '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' | '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' | '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;
|
|
1
|
+
{"version":3,"file":"pubsub-metadata.js","sourceRoot":"","sources":["../../src/pubsub/pubsub-metadata.ts"],"names":[],"mappings":";;;;;;;;;AACA,gCAAkC;AA8D3B,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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare class ReplayableRegistry<T> {
|
|
2
|
+
private readonly entryName;
|
|
3
|
+
private readonly describe;
|
|
4
|
+
private readonly entries;
|
|
5
|
+
private onRegister?;
|
|
6
|
+
constructor(entryName: string, describe: (entry: T) => string);
|
|
7
|
+
register(entry: T): void;
|
|
8
|
+
subscribe(listener: (entry: T) => void): void;
|
|
9
|
+
protected getEntries(): T[];
|
|
10
|
+
private notify;
|
|
11
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReplayableRegistry = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
class ReplayableRegistry {
|
|
6
|
+
constructor(entryName, describe) {
|
|
7
|
+
this.entryName = entryName;
|
|
8
|
+
this.describe = describe;
|
|
9
|
+
this.entries = [];
|
|
10
|
+
}
|
|
11
|
+
register(entry) {
|
|
12
|
+
this.entries.push(entry);
|
|
13
|
+
if (this.onRegister)
|
|
14
|
+
this.notify(this.onRegister, entry);
|
|
15
|
+
}
|
|
16
|
+
subscribe(listener) {
|
|
17
|
+
if (this.onRegister) {
|
|
18
|
+
throw new n8n_workflow_1.UnexpectedError(`A listener is already subscribed to ${this.entryName} registrations`);
|
|
19
|
+
}
|
|
20
|
+
for (const entry of this.entries) {
|
|
21
|
+
this.notify(listener, entry);
|
|
22
|
+
}
|
|
23
|
+
this.onRegister = listener;
|
|
24
|
+
}
|
|
25
|
+
getEntries() {
|
|
26
|
+
return [...this.entries];
|
|
27
|
+
}
|
|
28
|
+
notify(listener, entry) {
|
|
29
|
+
try {
|
|
30
|
+
listener(entry);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
throw new n8n_workflow_1.UnexpectedError(`Failed to handle the registration of ${this.entryName} "${this.describe(entry)}"`, { cause: error });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.ReplayableRegistry = ReplayableRegistry;
|
|
38
|
+
//# sourceMappingURL=replayable-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayable-registry.js","sourceRoot":"","sources":["../src/replayable-registry.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAW/C;IAUC,YACkB,SAAiB,EACjB,QAA8B;QAD9B,cAAS,GAAT,SAAS,CAAQ;QACjB,aAAQ,GAAR,QAAQ,CAAsB;QAX/B,YAAO,GAAQ,EAAE,CAAC;IAYhC,CAAC;IAEJ,QAAQ,CAAC,KAAQ;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC1D,CAAC;IAED,SAAS,CAAC,QAA4B;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,8BAAe,CACxB,uCAAuC,IAAI,CAAC,SAAS,gBAAgB,CACrE,CAAC;QACH,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC9B,CAAC;QAKD,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAES,UAAU;QACnB,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC1B,CAAC;IAOO,MAAM,CAAC,QAA4B,EAAE,KAAQ;QACpD,IAAI,CAAC;YACJ,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,8BAAe,CACxB,wCAAwC,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,EAClF,EAAE,KAAK,EAAE,KAAK,EAAE,CAChB,CAAC;QACH,CAAC;IACF,CAAC;CACD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SystemTaskMetadata = exports.resolveSystemTaskRunOptions = exports.SystemTask = void 0;
|
|
4
|
+
var system_task_1 = require("./system-task");
|
|
5
|
+
Object.defineProperty(exports, "SystemTask", { enumerable: true, get: function () { return system_task_1.SystemTask; } });
|
|
6
|
+
Object.defineProperty(exports, "resolveSystemTaskRunOptions", { enumerable: true, get: function () { return system_task_1.resolveSystemTaskRunOptions; } });
|
|
7
|
+
var system_task_metadata_1 = require("./system-task-metadata");
|
|
8
|
+
Object.defineProperty(exports, "SystemTaskMetadata", { enumerable: true, get: function () { return system_task_metadata_1.SystemTaskMetadata; } });
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/system-task/index.ts"],"names":[],"mappings":";;;AAAA,6CAAwE;AAA/D,yGAAA,UAAU,OAAA;AAAE,0HAAA,2BAA2B,OAAA;AAOhD,+DAA4D;AAAnD,0HAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.SystemTaskMetadata = void 0;
|
|
13
|
+
const di_1 = require("@n8n/di");
|
|
14
|
+
const replayable_registry_1 = require("../replayable-registry");
|
|
15
|
+
let SystemTaskMetadata = class SystemTaskMetadata extends replayable_registry_1.ReplayableRegistry {
|
|
16
|
+
constructor() {
|
|
17
|
+
super('system task', (taskClass) => taskClass.name);
|
|
18
|
+
}
|
|
19
|
+
getClasses() {
|
|
20
|
+
return this.getEntries();
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.SystemTaskMetadata = SystemTaskMetadata;
|
|
24
|
+
exports.SystemTaskMetadata = SystemTaskMetadata = __decorate([
|
|
25
|
+
(0, di_1.Service)(),
|
|
26
|
+
__metadata("design:paramtypes", [])
|
|
27
|
+
], SystemTaskMetadata);
|
|
28
|
+
//# sourceMappingURL=system-task-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-task-metadata.js","sourceRoot":"","sources":["../../src/system-task/system-task-metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gCAAkC;AAElC,gEAA4D;AAIrD,IAAM,kBAAkB,GAAxB,MAAM,kBAAmB,SAAQ,wCAAmC;IAC1E;QACC,KAAK,CAAC,aAAa,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACT,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;CACD,CAAA;;6BARY,kBAAkB;IAD9B,IAAA,YAAO,GAAE;;GACG,kBAAkB,CAQ9B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ScheduledJobMisfirePolicy, type OneOffDefinition, type ScheduleDefinition } from '@n8n/constants';
|
|
2
|
+
import { type Constructable } from '@n8n/di';
|
|
3
|
+
export type SystemTaskEffects = 'idempotent' | 'non-idempotent';
|
|
4
|
+
export type SystemTaskSchedule = Exclude<ScheduleDefinition, OneOffDefinition>;
|
|
5
|
+
export interface SystemTask {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
readonly schedule: SystemTaskSchedule;
|
|
8
|
+
readonly effects: SystemTaskEffects;
|
|
9
|
+
readonly durable: boolean;
|
|
10
|
+
readonly misfirePolicy?: ScheduledJobMisfirePolicy;
|
|
11
|
+
readonly misfireGraceSeconds?: number;
|
|
12
|
+
readonly maxAttempts?: number;
|
|
13
|
+
run(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export interface SystemTaskRunOptions {
|
|
16
|
+
misfirePolicy: ScheduledJobMisfirePolicy;
|
|
17
|
+
misfireGraceSeconds: number;
|
|
18
|
+
maxAttempts: number;
|
|
19
|
+
}
|
|
20
|
+
export declare function resolveSystemTaskRunOptions(task: SystemTask): SystemTaskRunOptions;
|
|
21
|
+
export type SystemTaskClass = Constructable<SystemTask>;
|
|
22
|
+
export declare const SystemTask: () => <T extends SystemTaskClass>(target: T) => T;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SystemTask = void 0;
|
|
4
|
+
exports.resolveSystemTaskRunOptions = resolveSystemTaskRunOptions;
|
|
5
|
+
const constants_1 = require("@n8n/constants");
|
|
6
|
+
const di_1 = require("@n8n/di");
|
|
7
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
8
|
+
const system_task_metadata_1 = require("./system-task-metadata");
|
|
9
|
+
const SYSTEM_TASK_RUN_OPTION_DEFAULTS = {
|
|
10
|
+
idempotent: {
|
|
11
|
+
misfirePolicy: constants_1.ScheduledJobMisfirePolicy.Coalesce,
|
|
12
|
+
maxAttempts: 3,
|
|
13
|
+
},
|
|
14
|
+
'non-idempotent': {
|
|
15
|
+
misfirePolicy: constants_1.ScheduledJobMisfirePolicy.Skip,
|
|
16
|
+
maxAttempts: 1,
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
function resolveSystemTaskRunOptions(task) {
|
|
20
|
+
const defaults = SYSTEM_TASK_RUN_OPTION_DEFAULTS[task.effects];
|
|
21
|
+
const options = {
|
|
22
|
+
misfirePolicy: task.misfirePolicy ?? defaults.misfirePolicy,
|
|
23
|
+
misfireGraceSeconds: task.misfireGraceSeconds ?? constants_1.DEFAULT_MISFIRE_GRACE_SECONDS,
|
|
24
|
+
maxAttempts: task.maxAttempts ?? defaults.maxAttempts,
|
|
25
|
+
};
|
|
26
|
+
assertInRange(task.name, 'maxAttempts', options.maxAttempts, 1);
|
|
27
|
+
assertInRange(task.name, 'misfireGraceSeconds', options.misfireGraceSeconds, 1);
|
|
28
|
+
return options;
|
|
29
|
+
}
|
|
30
|
+
const MAX_INT32 = 2_147_483_647;
|
|
31
|
+
function assertInRange(taskName, field, value, min) {
|
|
32
|
+
if (Number.isInteger(value) && value >= min && value <= MAX_INT32)
|
|
33
|
+
return;
|
|
34
|
+
throw new n8n_workflow_1.UnexpectedError(`System task "${taskName}" declares ${field} as ${value}, but it must be an integer between ${min} and ${MAX_INT32}`);
|
|
35
|
+
}
|
|
36
|
+
const SystemTask = () => (target) => {
|
|
37
|
+
(0, di_1.Service)()(target);
|
|
38
|
+
di_1.Container.get(system_task_metadata_1.SystemTaskMetadata).register(target);
|
|
39
|
+
return target;
|
|
40
|
+
};
|
|
41
|
+
exports.SystemTask = SystemTask;
|
|
42
|
+
//# sourceMappingURL=system-task.js.map
|
|
@@ -0,0 +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"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/decorators",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.38.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"module": "src/index.ts",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./src/index.ts",
|
|
11
|
+
"require": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./policy-internal": {
|
|
14
|
+
"types": "./dist/policy-check/policy-mint.d.ts",
|
|
15
|
+
"import": "./src/policy-check/policy-mint.ts",
|
|
16
|
+
"require": "./dist/policy-check/policy-mint.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
7
19
|
"files": [
|
|
8
20
|
"dist/**/*",
|
|
9
21
|
"LICENSE_EE.md",
|
|
@@ -15,16 +27,16 @@
|
|
|
15
27
|
"typescript": "7.0.2",
|
|
16
28
|
"vitest": "^4.1.9",
|
|
17
29
|
"zod": "3.25.76",
|
|
18
|
-
"@n8n/
|
|
19
|
-
"@n8n/
|
|
30
|
+
"@n8n/typescript-config": "1.11.0",
|
|
31
|
+
"@n8n/vitest-config": "1.21.0"
|
|
20
32
|
},
|
|
21
33
|
"dependencies": {
|
|
22
34
|
"lodash": "4.18.1",
|
|
23
|
-
"@n8n/
|
|
35
|
+
"@n8n/constants": "0.37.1",
|
|
36
|
+
"@n8n/permissions": "0.75.1",
|
|
24
37
|
"@n8n/di": "0.16.0",
|
|
25
|
-
"
|
|
26
|
-
"@n8n/api-types": "1.
|
|
27
|
-
"n8n-workflow": "2.37.2"
|
|
38
|
+
"n8n-workflow": "2.38.1",
|
|
39
|
+
"@n8n/api-types": "1.38.1"
|
|
28
40
|
},
|
|
29
41
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
30
42
|
"homepage": "https://n8n.io",
|