@n8n/eslint-plugin-community-nodes 0.27.0 → 0.29.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.
- package/.turbo/turbo-build.log +1 -1
- package/dist/rules/index.d.ts +2 -2
- package/dist/rules/no-restricted-globals.d.ts +1 -1
- package/dist/rules/no-restricted-globals.d.ts.map +1 -1
- package/dist/rules/no-restricted-globals.js +18 -5
- package/dist/rules/no-restricted-globals.js.map +1 -1
- package/dist/rules/node-usable-as-tool.d.ts +1 -1
- package/dist/rules/node-usable-as-tool.d.ts.map +1 -1
- package/dist/rules/node-usable-as-tool.js +23 -1
- package/dist/rules/node-usable-as-tool.js.map +1 -1
- package/dist/rules/trigger-node-conventions.d.ts.map +1 -1
- package/dist/rules/trigger-node-conventions.js +2 -2
- package/dist/rules/trigger-node-conventions.js.map +1 -1
- package/dist/typecheck.tsbuildinfo +1 -1
- package/dist/utils/ast-utils.d.ts +8 -0
- package/dist/utils/ast-utils.d.ts.map +1 -1
- package/dist/utils/ast-utils.js +16 -0
- package/dist/utils/ast-utils.js.map +1 -1
- package/docs/rules/no-restricted-globals.md +14 -0
- package/docs/rules/node-usable-as-tool.md +59 -0
- package/package.json +3 -3
- package/src/rules/no-restricted-globals.test.ts +26 -2
- package/src/rules/no-restricted-globals.ts +22 -5
- package/src/rules/node-usable-as-tool.test.ts +62 -3
- package/src/rules/node-usable-as-tool.ts +28 -0
- package/src/rules/trigger-node-conventions.ts +2 -1
- package/src/utils/ast-utils.ts +26 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
> @n8n/eslint-plugin-community-nodes@0.
|
|
2
|
+
> @n8n/eslint-plugin-community-nodes@0.29.0 build /home/runner/work/n8n/n8n/packages/@n8n/eslint-plugin-community-nodes
|
|
3
3
|
> tsc --project tsconfig.build.json
|
|
4
4
|
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare const rules: {
|
|
2
2
|
'ai-node-package-json': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidSdkVersion" | "missingPeerDep" | "missingSdkVersion" | "wrongLocation", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
3
|
-
'no-restricted-globals': import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedGlobal", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
3
|
+
'no-restricted-globals': import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedGlobal" | "restrictedGlobalWithHint", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
4
4
|
'no-restricted-imports': import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedDynamicImport" | "restrictedImport" | "restrictedRequire", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
5
5
|
'credential-password-field': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
6
6
|
'no-deprecated-workflow-functions': import("@typescript-eslint/utils/ts-eslint").RuleModule<"deprecatedFunction" | "deprecatedRequestFunction" | "deprecatedType" | "deprecatedWithoutReplacement" | "suggestReplaceFunction" | "suggestReplaceType", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
7
7
|
'no-emoji-in-options': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emojiInOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
8
|
-
'node-usable-as-tool': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
8
|
+
'node-usable-as-tool': import("@typescript-eslint/utils/ts-eslint").RuleModule<"aiOnlyUsableAsTool" | "missingUsableAsTool" | "triggerUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
9
9
|
'package-name-convention': import("@typescript-eslint/utils/ts-eslint").RuleModule<"defaultPlaceholderName" | "invalidPackageName" | "missingName" | "renameTo", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
10
10
|
'credential-test-required': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addTemplate" | "missingCredentialTest", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
11
11
|
'credential-unnecessary-password': import("@typescript-eslint/utils/ts-eslint").RuleModule<"unnecessaryPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
-
export declare const NoRestrictedGlobalsRule: TSESLint.RuleModule<"restrictedGlobal", [], unknown, TSESLint.RuleListener>;
|
|
2
|
+
export declare const NoRestrictedGlobalsRule: TSESLint.RuleModule<"restrictedGlobal" | "restrictedGlobalWithHint", [], unknown, TSESLint.RuleListener>;
|
|
3
3
|
//# sourceMappingURL=no-restricted-globals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-restricted-globals.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-globals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"no-restricted-globals.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-globals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAwBzD,eAAO,MAAM,uBAAuB,0GAiElC,CAAC"}
|
|
@@ -13,6 +13,11 @@ const restrictedGlobals = [
|
|
|
13
13
|
'__dirname',
|
|
14
14
|
'__filename',
|
|
15
15
|
];
|
|
16
|
+
// Nudge toward the n8n-workflow alternatives that work under n8n Cloud's restrictions
|
|
17
|
+
const restrictedGlobalHints = {
|
|
18
|
+
setTimeout: "Use the 'sleep' helper from 'n8n-workflow' instead.",
|
|
19
|
+
clearTimeout: "Use 'sleepWithAbort' from 'n8n-workflow' with an AbortSignal instead.",
|
|
20
|
+
};
|
|
16
21
|
export const NoRestrictedGlobalsRule = createRule({
|
|
17
22
|
name: 'no-restricted-globals',
|
|
18
23
|
meta: {
|
|
@@ -22,6 +27,7 @@ export const NoRestrictedGlobalsRule = createRule({
|
|
|
22
27
|
},
|
|
23
28
|
messages: {
|
|
24
29
|
restrictedGlobal: "Use of restricted global '{{ name }}' is not allowed",
|
|
30
|
+
restrictedGlobalWithHint: "Use of restricted global '{{ name }}' is not allowed. {{ hint }}",
|
|
25
31
|
},
|
|
26
32
|
schema: [],
|
|
27
33
|
},
|
|
@@ -35,11 +41,18 @@ export const NoRestrictedGlobalsRule = createRule({
|
|
|
35
41
|
!parent.computed) {
|
|
36
42
|
return;
|
|
37
43
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
44
|
+
const hint = restrictedGlobalHints[name];
|
|
45
|
+
context.report(hint
|
|
46
|
+
? {
|
|
47
|
+
node: ref.identifier,
|
|
48
|
+
messageId: 'restrictedGlobalWithHint',
|
|
49
|
+
data: { name, hint },
|
|
50
|
+
}
|
|
51
|
+
: {
|
|
52
|
+
node: ref.identifier,
|
|
53
|
+
messageId: 'restrictedGlobal',
|
|
54
|
+
data: { name },
|
|
55
|
+
});
|
|
43
56
|
}
|
|
44
57
|
return {
|
|
45
58
|
Program() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-restricted-globals.js","sourceRoot":"","sources":["../../src/rules/no-restricted-globals.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAGpD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,MAAM,iBAAiB,GAAG;IACzB,eAAe;IACf,cAAc;IACd,QAAQ;IACR,YAAY;IACZ,SAAS;IACT,aAAa;IACb,YAAY;IACZ,cAAc;IACd,gBAAgB;IAChB,WAAW;IACX,YAAY;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,UAAU,CAAC;IACjD,IAAI,EAAE,uBAAuB;IAC7B,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACL,WAAW,EAAE,mEAAmE;SAChF;QACD,QAAQ,EAAE;YACT,gBAAgB,EAAE,sDAAsD;
|
|
1
|
+
{"version":3,"file":"no-restricted-globals.js","sourceRoot":"","sources":["../../src/rules/no-restricted-globals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const NodeUsableAsToolRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
1
|
+
export declare const NodeUsableAsToolRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"aiOnlyUsableAsTool" | "missingUsableAsTool" | "triggerUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
2
2
|
//# sourceMappingURL=node-usable-as-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-usable-as-tool.d.ts","sourceRoot":"","sources":["../../src/rules/node-usable-as-tool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-usable-as-tool.d.ts","sourceRoot":"","sources":["../../src/rules/node-usable-as-tool.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB,uMA2G/B,CAAC"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { TSESTree } from '@typescript-eslint/utils';
|
|
2
|
-
import { isNodeTypeClass, findClassProperty, findObjectProperty, createRule, } from '../utils/index.js';
|
|
2
|
+
import { isNodeTypeClass, isTriggerNode, findClassProperty, findObjectProperty, createRule, } from '../utils/index.js';
|
|
3
|
+
function isSetToTrue(property) {
|
|
4
|
+
return property?.value.type === TSESTree.AST_NODE_TYPES.Literal && property.value.value === true;
|
|
5
|
+
}
|
|
3
6
|
export const NodeUsableAsToolRule = createRule({
|
|
4
7
|
name: 'node-usable-as-tool',
|
|
5
8
|
meta: {
|
|
@@ -9,6 +12,8 @@ export const NodeUsableAsToolRule = createRule({
|
|
|
9
12
|
},
|
|
10
13
|
messages: {
|
|
11
14
|
missingUsableAsTool: 'Node class should have usableAsTool property. When in doubt, set it to true.',
|
|
15
|
+
triggerUsableAsTool: 'Trigger nodes must not set usableAsTool: true. Trigger nodes cannot be invoked as AI tools and doing so pollutes the tool picker. Remove this property.',
|
|
16
|
+
aiOnlyUsableAsTool: 'AI-only nodes (non-main output, no inputs) must not set usableAsTool: true. These nodes are only usable through their AI connection type, not as a generic tool, and doing so pollutes the tool picker. Remove this property.',
|
|
12
17
|
},
|
|
13
18
|
fixable: 'code',
|
|
14
19
|
schema: [],
|
|
@@ -29,6 +34,15 @@ export const NodeUsableAsToolRule = createRule({
|
|
|
29
34
|
return;
|
|
30
35
|
}
|
|
31
36
|
const usableAsToolProperty = findObjectProperty(descriptionValue, 'usableAsTool');
|
|
37
|
+
if (isTriggerNode(node, descriptionValue)) {
|
|
38
|
+
if (isSetToTrue(usableAsToolProperty)) {
|
|
39
|
+
context.report({
|
|
40
|
+
node: usableAsToolProperty,
|
|
41
|
+
messageId: 'triggerUsableAsTool',
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
32
46
|
const outputsProperty = findObjectProperty(descriptionValue, 'outputs');
|
|
33
47
|
const inputsProperty = findObjectProperty(descriptionValue, 'inputs');
|
|
34
48
|
if (outputsProperty?.value?.type === TSESTree.AST_NODE_TYPES.ArrayExpression &&
|
|
@@ -44,6 +58,14 @@ export const NodeUsableAsToolRule = createRule({
|
|
|
44
58
|
});
|
|
45
59
|
const isEmptyInputs = inputsProperty?.value?.elements?.length === 0;
|
|
46
60
|
if (isAiOutput && isEmptyInputs) {
|
|
61
|
+
// These nodes are only ever consumed via their AI connection type (e.g. as an
|
|
62
|
+
// Agent's memory/language model), never invoked directly like a regular tool.
|
|
63
|
+
if (isSetToTrue(usableAsToolProperty)) {
|
|
64
|
+
context.report({
|
|
65
|
+
node: usableAsToolProperty,
|
|
66
|
+
messageId: 'aiOnlyUsableAsTool',
|
|
67
|
+
});
|
|
68
|
+
}
|
|
47
69
|
return;
|
|
48
70
|
}
|
|
49
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-usable-as-tool.js","sourceRoot":"","sources":["../../src/rules/node-usable-as-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,GACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,qBAAqB;IAC3B,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACL,WAAW,EAAE,gDAAgD;SAC7D;QACD,QAAQ,EAAE;YACT,mBAAmB,EAClB,8EAA8E;
|
|
1
|
+
{"version":3,"file":"node-usable-as-tool.js","sourceRoot":"","sources":["../../src/rules/node-usable-as-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-node-conventions.d.ts","sourceRoot":"","sources":["../../src/rules/trigger-node-conventions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trigger-node-conventions.d.ts","sourceRoot":"","sources":["../../src/rules/trigger-node-conventions.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,0BAA0B,uMAgFrC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TSESTree } from '@typescript-eslint/utils';
|
|
2
|
-
import { isNodeTypeClass, findClassProperty, findObjectProperty, getStringLiteralValue, isFileType, createRule, } from '../utils/index.js';
|
|
2
|
+
import { isNodeTypeClass, isTriggerNodeClass, findClassProperty, findObjectProperty, getStringLiteralValue, isFileType, createRule, } from '../utils/index.js';
|
|
3
3
|
export const TriggerNodeConventionsRule = createRule({
|
|
4
4
|
name: 'trigger-node-conventions',
|
|
5
5
|
meta: {
|
|
@@ -24,7 +24,7 @@ export const TriggerNodeConventionsRule = createRule({
|
|
|
24
24
|
if (!isNodeTypeClass(node)) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
if (!node
|
|
27
|
+
if (!isTriggerNodeClass(node)) {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
const descriptionProperty = findClassProperty(node, 'description');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-node-conventions.js","sourceRoot":"","sources":["../../src/rules/trigger-node-conventions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,UAAU,EACV,UAAU,GACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;IACpD,IAAI,EAAE,0BAA0B;IAChC,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACL,WAAW,EACV,+FAA+F;SAChG;QACD,QAAQ,EAAE;YACT,iBAAiB,EAAE,qEAAqE;YACxF,yBAAyB,EACxB,2EAA2E;YAC5E,cAAc,EAAE,+DAA+D;SAC/E;QACD,MAAM,EAAE,EAAE;KACV;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACb,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO;YACN,gBAAgB,CAAC,IAAI;gBACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,OAAO;gBACR,CAAC;gBAED,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"trigger-node-conventions.js","sourceRoot":"","sources":["../../src/rules/trigger-node-conventions.ts"],"names":[],"mappings":"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"}
|