@n8n/eslint-plugin-community-nodes 0.13.0 → 0.15.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/README.md +32 -24
- package/dist/plugin.d.ts +36 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +12 -0
- package/dist/plugin.js.map +1 -1
- package/dist/rules/index.d.ts +6 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +12 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/no-overrides-field.d.ts +2 -0
- package/dist/rules/no-overrides-field.d.ts.map +1 -0
- package/dist/rules/no-overrides-field.js +37 -0
- package/dist/rules/no-overrides-field.js.map +1 -0
- package/dist/rules/no-runtime-dependencies.d.ts +2 -0
- package/dist/rules/no-runtime-dependencies.d.ts.map +1 -0
- package/dist/rules/no-runtime-dependencies.js +41 -0
- package/dist/rules/no-runtime-dependencies.js.map +1 -0
- package/dist/rules/require-node-api-error.d.ts +2 -0
- package/dist/rules/require-node-api-error.d.ts.map +1 -0
- package/dist/rules/require-node-api-error.js +77 -0
- package/dist/rules/require-node-api-error.js.map +1 -0
- package/dist/rules/valid-credential-references.d.ts +2 -0
- package/dist/rules/valid-credential-references.d.ts.map +1 -0
- package/dist/rules/valid-credential-references.js +77 -0
- package/dist/rules/valid-credential-references.js.map +1 -0
- package/dist/rules/valid-peer-dependencies.d.ts +2 -0
- package/dist/rules/valid-peer-dependencies.d.ts.map +1 -0
- package/dist/rules/valid-peer-dependencies.js +107 -0
- package/dist/rules/valid-peer-dependencies.js.map +1 -0
- package/dist/rules/webhook-lifecycle-complete.d.ts +2 -0
- package/dist/rules/webhook-lifecycle-complete.d.ts.map +1 -0
- package/dist/rules/webhook-lifecycle-complete.js +106 -0
- package/dist/rules/webhook-lifecycle-complete.js.map +1 -0
- package/docs/rules/no-overrides-field.md +50 -0
- package/docs/rules/no-runtime-dependencies.md +58 -0
- package/docs/rules/node-class-description-icon-missing.md +4 -2
- package/docs/rules/require-community-node-keyword.md +3 -3
- package/docs/rules/require-node-api-error.md +62 -0
- package/docs/rules/require-node-description-fields.md +1 -1
- package/docs/rules/valid-credential-references.md +78 -0
- package/docs/rules/valid-peer-dependencies.md +72 -0
- package/docs/rules/webhook-lifecycle-complete.md +88 -0
- package/package.json +5 -5
- package/src/plugin.ts +12 -0
- package/src/rules/index.ts +12 -0
- package/src/rules/no-overrides-field.test.ts +50 -0
- package/src/rules/no-overrides-field.ts +43 -0
- package/src/rules/no-runtime-dependencies.test.ts +50 -0
- package/src/rules/no-runtime-dependencies.ts +50 -0
- package/src/rules/require-node-api-error.test.ts +199 -0
- package/src/rules/require-node-api-error.ts +90 -0
- package/src/rules/valid-credential-references.test.ts +230 -0
- package/src/rules/valid-credential-references.ts +105 -0
- package/src/rules/valid-peer-dependencies.test.ts +130 -0
- package/src/rules/valid-peer-dependencies.ts +116 -0
- package/src/rules/webhook-lifecycle-complete.test.ts +217 -0
- package/src/rules/webhook-lifecycle-complete.ts +130 -0
- package/tsconfig.build.tsbuildinfo +1 -1
- package/tsconfig.json +0 -1
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.15.0 build /home/runner/work/n8n/n8n/packages/@n8n/eslint-plugin-community-nodes
|
|
3
3
|
> tsc --project tsconfig.build.json
|
|
4
4
|
|
package/README.md
CHANGED
|
@@ -41,30 +41,38 @@ export default [
|
|
|
41
41
|
✅ Set in the `recommended` configuration.\
|
|
42
42
|
☑️ Set in the `recommendedWithoutN8nCloudSupport` configuration.\
|
|
43
43
|
🔧 Automatically fixable by the [`--fix` CLI option](https://eslint.org/docs/user-guide/command-line-interface#--fix).\
|
|
44
|
-
💡 Manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions)
|
|
44
|
+
💡 Manually fixable by [editor suggestions](https://eslint.org/docs/latest/use/core-concepts#rule-suggestions).\
|
|
45
|
+
❌ Deprecated.
|
|
45
46
|
|
|
46
|
-
| Name | Description | 💼 | ⚠️ | 🔧 | 💡 |
|
|
47
|
-
| :--------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :--- | :--- | :- | :- |
|
|
48
|
-
| [ai-node-package-json](docs/rules/ai-node-package-json.md) | Enforce consistency between n8n.aiNodeSdkVersion and ai-node-sdk peer dependency in community node packages | ✅ ☑️ | | | |
|
|
49
|
-
| [cred-class-field-icon-missing](docs/rules/cred-class-field-icon-missing.md) | Credential class must have an `icon` property defined | ✅ ☑️ | | | 💡 |
|
|
50
|
-
| [credential-documentation-url](docs/rules/credential-documentation-url.md) | Enforce valid credential documentationUrl format (URL or lowercase alphanumeric slug) | ✅ ☑️ | | 🔧 | |
|
|
51
|
-
| [credential-password-field](docs/rules/credential-password-field.md) | Ensure credential fields with sensitive names have typeOptions.password = true | ✅ ☑️ | | 🔧 | |
|
|
52
|
-
| [credential-test-required](docs/rules/credential-test-required.md) | Ensure credentials have a credential test | ✅ ☑️ | | | 💡 |
|
|
53
|
-
| [icon-validation](docs/rules/icon-validation.md) | Validate node and credential icon files exist, are SVG format, and light/dark icons are different | ✅ ☑️ | | | 💡 |
|
|
54
|
-
| [missing-paired-item](docs/rules/missing-paired-item.md) | Require pairedItem on INodeExecutionData objects in execute() methods to preserve item linking. | ✅ ☑️ | | | |
|
|
55
|
-
| [no-credential-reuse](docs/rules/no-credential-reuse.md) | Prevent credential re-use security issues by ensuring nodes only reference credentials from the same package | ✅ ☑️ | | | 💡 |
|
|
56
|
-
| [no-deprecated-workflow-functions](docs/rules/no-deprecated-workflow-functions.md) | Disallow usage of deprecated functions and types from n8n-workflow package | ✅ ☑️ | | | 💡 |
|
|
57
|
-
| [no-forbidden-lifecycle-scripts](docs/rules/no-forbidden-lifecycle-scripts.md) | Ban lifecycle scripts (prepare, preinstall, postinstall, etc.) in community node packages | ✅ ☑️ | | | |
|
|
58
|
-
| [no-http-request-with-manual-auth](docs/rules/no-http-request-with-manual-auth.md) | Disallow this.helpers.httpRequest() in functions that call this.getCredentials(). Use this.helpers.httpRequestWithAuthentication() instead. | ✅ ☑️ | | | |
|
|
59
|
-
| [no-
|
|
60
|
-
| [no-restricted-
|
|
61
|
-
| [
|
|
62
|
-
| [
|
|
63
|
-
| [node-
|
|
64
|
-
| [
|
|
65
|
-
| [
|
|
66
|
-
| [
|
|
67
|
-
| [
|
|
68
|
-
| [
|
|
47
|
+
| Name | Description | 💼 | ⚠️ | 🔧 | 💡 | ❌ |
|
|
48
|
+
| :--------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | :--- | :--- | :- | :- | :- |
|
|
49
|
+
| [ai-node-package-json](docs/rules/ai-node-package-json.md) | Enforce consistency between n8n.aiNodeSdkVersion and ai-node-sdk peer dependency in community node packages | ✅ ☑️ | | | | |
|
|
50
|
+
| [cred-class-field-icon-missing](docs/rules/cred-class-field-icon-missing.md) | Credential class must have an `icon` property defined | ✅ ☑️ | | | 💡 | |
|
|
51
|
+
| [credential-documentation-url](docs/rules/credential-documentation-url.md) | Enforce valid credential documentationUrl format (URL or lowercase alphanumeric slug) | ✅ ☑️ | | 🔧 | | |
|
|
52
|
+
| [credential-password-field](docs/rules/credential-password-field.md) | Ensure credential fields with sensitive names have typeOptions.password = true | ✅ ☑️ | | 🔧 | | |
|
|
53
|
+
| [credential-test-required](docs/rules/credential-test-required.md) | Ensure credentials have a credential test | ✅ ☑️ | | | 💡 | |
|
|
54
|
+
| [icon-validation](docs/rules/icon-validation.md) | Validate node and credential icon files exist, are SVG format, and light/dark icons are different | ✅ ☑️ | | | 💡 | |
|
|
55
|
+
| [missing-paired-item](docs/rules/missing-paired-item.md) | Require pairedItem on INodeExecutionData objects in execute() methods to preserve item linking. | ✅ ☑️ | | | | |
|
|
56
|
+
| [no-credential-reuse](docs/rules/no-credential-reuse.md) | Prevent credential re-use security issues by ensuring nodes only reference credentials from the same package | ✅ ☑️ | | | 💡 | |
|
|
57
|
+
| [no-deprecated-workflow-functions](docs/rules/no-deprecated-workflow-functions.md) | Disallow usage of deprecated functions and types from n8n-workflow package | ✅ ☑️ | | | 💡 | |
|
|
58
|
+
| [no-forbidden-lifecycle-scripts](docs/rules/no-forbidden-lifecycle-scripts.md) | Ban lifecycle scripts (prepare, preinstall, postinstall, etc.) in community node packages | ✅ ☑️ | | | | |
|
|
59
|
+
| [no-http-request-with-manual-auth](docs/rules/no-http-request-with-manual-auth.md) | Disallow this.helpers.httpRequest() in functions that call this.getCredentials(). Use this.helpers.httpRequestWithAuthentication() instead. | ✅ ☑️ | | | | |
|
|
60
|
+
| [no-overrides-field](docs/rules/no-overrides-field.md) | Ban the "overrides" field in community node package.json | ✅ ☑️ | | | | |
|
|
61
|
+
| [no-restricted-globals](docs/rules/no-restricted-globals.md) | Disallow usage of restricted global variables in community nodes. | ✅ | | | | |
|
|
62
|
+
| [no-restricted-imports](docs/rules/no-restricted-imports.md) | Disallow usage of restricted imports in community nodes. | ✅ | | | | |
|
|
63
|
+
| [no-runtime-dependencies](docs/rules/no-runtime-dependencies.md) | Disallow non-empty "dependencies" in community node package.json | ✅ ☑️ | | | | |
|
|
64
|
+
| [node-class-description-icon-missing](docs/rules/node-class-description-icon-missing.md) | Node class description must have an `icon` property defined. Deprecated: use `require-node-description-fields` instead. | | | | 💡 | ❌ |
|
|
65
|
+
| [node-connection-type-literal](docs/rules/node-connection-type-literal.md) | Disallow string literals in node description `inputs`/`outputs` — use `NodeConnectionTypes` enum instead | ✅ ☑️ | | 🔧 | | |
|
|
66
|
+
| [node-usable-as-tool](docs/rules/node-usable-as-tool.md) | Ensure node classes have usableAsTool property | ✅ ☑️ | | 🔧 | | |
|
|
67
|
+
| [options-sorted-alphabetically](docs/rules/options-sorted-alphabetically.md) | Enforce alphabetical ordering of options arrays in n8n node properties | | ✅ ☑️ | | | |
|
|
68
|
+
| [package-name-convention](docs/rules/package-name-convention.md) | Enforce correct package naming convention for n8n community nodes | ✅ ☑️ | | | 💡 | |
|
|
69
|
+
| [require-community-node-keyword](docs/rules/require-community-node-keyword.md) | Require the "n8n-community-node-package" keyword in community node package.json | | ✅ ☑️ | 🔧 | | |
|
|
70
|
+
| [require-continue-on-fail](docs/rules/require-continue-on-fail.md) | Require continueOnFail() handling in execute() methods of node classes | ✅ ☑️ | | | | |
|
|
71
|
+
| [require-node-api-error](docs/rules/require-node-api-error.md) | Require NodeApiError or NodeOperationError for error wrapping in catch blocks. Raw errors lose HTTP context in the n8n UI. | ✅ ☑️ | | | | |
|
|
72
|
+
| [require-node-description-fields](docs/rules/require-node-description-fields.md) | Node class description must define all required fields: icon, subtitle | ✅ ☑️ | | | | |
|
|
73
|
+
| [resource-operation-pattern](docs/rules/resource-operation-pattern.md) | Enforce proper resource/operation pattern for better UX in n8n nodes | | ✅ ☑️ | | | |
|
|
74
|
+
| [valid-credential-references](docs/rules/valid-credential-references.md) | Ensure credentials referenced in node descriptions exist as credential classes in the package | ✅ ☑️ | | | 💡 | |
|
|
75
|
+
| [valid-peer-dependencies](docs/rules/valid-peer-dependencies.md) | Require community node package.json peerDependencies to contain only "n8n-workflow": "*" (and optionally "ai-node-sdk") | ✅ ☑️ | | 🔧 | | |
|
|
76
|
+
| [webhook-lifecycle-complete](docs/rules/webhook-lifecycle-complete.md) | Require webhook trigger nodes to implement the complete webhookMethods lifecycle (checkExists, create, delete) | ✅ ☑️ | | | | |
|
|
69
77
|
|
|
70
78
|
<!-- end auto-generated rules list -->
|
package/dist/plugin.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ declare const configs: {
|
|
|
25
25
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
26
26
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
27
27
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
28
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
29
|
+
'@n8n/community-nodes/no-runtime-dependencies': "error";
|
|
28
30
|
'@n8n/community-nodes/icon-validation': "error";
|
|
29
31
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
30
32
|
'@n8n/community-nodes/resource-operation-pattern': "warn";
|
|
@@ -34,7 +36,11 @@ declare const configs: {
|
|
|
34
36
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
35
37
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
36
38
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
39
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
37
40
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
41
|
+
'@n8n/community-nodes/valid-credential-references': "error";
|
|
42
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
43
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
38
44
|
};
|
|
39
45
|
};
|
|
40
46
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -59,6 +65,8 @@ declare const configs: {
|
|
|
59
65
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
60
66
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
61
67
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
68
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
69
|
+
'@n8n/community-nodes/no-runtime-dependencies': "error";
|
|
62
70
|
'@n8n/community-nodes/icon-validation': "error";
|
|
63
71
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
64
72
|
'@n8n/community-nodes/credential-documentation-url': "error";
|
|
@@ -68,7 +76,11 @@ declare const configs: {
|
|
|
68
76
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
69
77
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
70
78
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
79
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
71
80
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
81
|
+
'@n8n/community-nodes/valid-credential-references': "error";
|
|
82
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
83
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
72
84
|
};
|
|
73
85
|
};
|
|
74
86
|
};
|
|
@@ -98,6 +110,8 @@ declare const pluginWithConfigs: {
|
|
|
98
110
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
99
111
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
100
112
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
113
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
114
|
+
'@n8n/community-nodes/no-runtime-dependencies': "error";
|
|
101
115
|
'@n8n/community-nodes/icon-validation': "error";
|
|
102
116
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
103
117
|
'@n8n/community-nodes/resource-operation-pattern': "warn";
|
|
@@ -107,7 +121,11 @@ declare const pluginWithConfigs: {
|
|
|
107
121
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
108
122
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
109
123
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
124
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
110
125
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
126
|
+
'@n8n/community-nodes/valid-credential-references': "error";
|
|
127
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
128
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
111
129
|
};
|
|
112
130
|
};
|
|
113
131
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -132,6 +150,8 @@ declare const pluginWithConfigs: {
|
|
|
132
150
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
133
151
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
134
152
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
153
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
154
|
+
'@n8n/community-nodes/no-runtime-dependencies': "error";
|
|
135
155
|
'@n8n/community-nodes/icon-validation': "error";
|
|
136
156
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
137
157
|
'@n8n/community-nodes/credential-documentation-url': "error";
|
|
@@ -141,7 +161,11 @@ declare const pluginWithConfigs: {
|
|
|
141
161
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
142
162
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
143
163
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
164
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
144
165
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
166
|
+
'@n8n/community-nodes/valid-credential-references': "error";
|
|
167
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
168
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
145
169
|
};
|
|
146
170
|
};
|
|
147
171
|
};
|
|
@@ -178,6 +202,8 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
178
202
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
179
203
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
180
204
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
205
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
206
|
+
'@n8n/community-nodes/no-runtime-dependencies': "error";
|
|
181
207
|
'@n8n/community-nodes/icon-validation': "error";
|
|
182
208
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
183
209
|
'@n8n/community-nodes/resource-operation-pattern': "warn";
|
|
@@ -187,7 +213,11 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
187
213
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
188
214
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
189
215
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
216
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
190
217
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
218
|
+
'@n8n/community-nodes/valid-credential-references': "error";
|
|
219
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
220
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
191
221
|
};
|
|
192
222
|
};
|
|
193
223
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -212,6 +242,8 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
212
242
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
213
243
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
214
244
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
245
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
246
|
+
'@n8n/community-nodes/no-runtime-dependencies': "error";
|
|
215
247
|
'@n8n/community-nodes/icon-validation': "error";
|
|
216
248
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
217
249
|
'@n8n/community-nodes/credential-documentation-url': "error";
|
|
@@ -221,7 +253,11 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
221
253
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
222
254
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
223
255
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
256
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
224
257
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
258
|
+
'@n8n/community-nodes/valid-credential-references': "error";
|
|
259
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
260
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
225
261
|
};
|
|
226
262
|
};
|
|
227
263
|
};
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAYzC,QAAA,MAAM,OAAO;;;;;;;;;;uBAHI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,QAAQ,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAYzC,QAAA,MAAM,OAAO;;;;;;;;;;uBAHI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwEE,CAAC;AAE1C,QAAA,MAAM,iBAAiB;;;;;;;;;;;2BA1EN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;CA0EiC,CAAC;AAEzE,QAAA,MAAM,uBAAuB;;;;;;;;;;;2BA5EZ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;CA4EU,CAAC;AAClD,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -27,6 +27,8 @@ const configs = {
|
|
|
27
27
|
'@n8n/community-nodes/no-credential-reuse': 'error',
|
|
28
28
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': 'error',
|
|
29
29
|
'@n8n/community-nodes/no-http-request-with-manual-auth': 'error',
|
|
30
|
+
'@n8n/community-nodes/no-overrides-field': 'error',
|
|
31
|
+
'@n8n/community-nodes/no-runtime-dependencies': 'error',
|
|
30
32
|
'@n8n/community-nodes/icon-validation': 'error',
|
|
31
33
|
'@n8n/community-nodes/options-sorted-alphabetically': 'warn',
|
|
32
34
|
'@n8n/community-nodes/resource-operation-pattern': 'warn',
|
|
@@ -36,7 +38,11 @@ const configs = {
|
|
|
36
38
|
'@n8n/community-nodes/missing-paired-item': 'error',
|
|
37
39
|
'@n8n/community-nodes/require-community-node-keyword': 'warn',
|
|
38
40
|
'@n8n/community-nodes/require-continue-on-fail': 'error',
|
|
41
|
+
'@n8n/community-nodes/require-node-api-error': 'error',
|
|
39
42
|
'@n8n/community-nodes/require-node-description-fields': 'error',
|
|
43
|
+
'@n8n/community-nodes/valid-credential-references': 'error',
|
|
44
|
+
'@n8n/community-nodes/valid-peer-dependencies': 'error',
|
|
45
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': 'error',
|
|
40
46
|
},
|
|
41
47
|
},
|
|
42
48
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -54,6 +60,8 @@ const configs = {
|
|
|
54
60
|
'@n8n/community-nodes/no-credential-reuse': 'error',
|
|
55
61
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': 'error',
|
|
56
62
|
'@n8n/community-nodes/no-http-request-with-manual-auth': 'error',
|
|
63
|
+
'@n8n/community-nodes/no-overrides-field': 'error',
|
|
64
|
+
'@n8n/community-nodes/no-runtime-dependencies': 'error',
|
|
57
65
|
'@n8n/community-nodes/icon-validation': 'error',
|
|
58
66
|
'@n8n/community-nodes/options-sorted-alphabetically': 'warn',
|
|
59
67
|
'@n8n/community-nodes/credential-documentation-url': 'error',
|
|
@@ -63,7 +71,11 @@ const configs = {
|
|
|
63
71
|
'@n8n/community-nodes/missing-paired-item': 'error',
|
|
64
72
|
'@n8n/community-nodes/require-community-node-keyword': 'warn',
|
|
65
73
|
'@n8n/community-nodes/require-continue-on-fail': 'error',
|
|
74
|
+
'@n8n/community-nodes/require-node-api-error': 'error',
|
|
66
75
|
'@n8n/community-nodes/require-node-description-fields': 'error',
|
|
76
|
+
'@n8n/community-nodes/valid-credential-references': 'error',
|
|
77
|
+
'@n8n/community-nodes/valid-peer-dependencies': 'error',
|
|
78
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': 'error',
|
|
67
79
|
},
|
|
68
80
|
},
|
|
69
81
|
};
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,MAAM,GAAG;IACd,IAAI,EAAE;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,sBAAsB;KACjC;IACD,8EAA8E;IAC9E,KAAK,EAAE,KAA+B;CACd,CAAC;AAE1B,MAAM,OAAO,GAAG;IACf,WAAW,EAAE;QACZ,OAAO,EAAE,CAAC,+BAA+B,CAAC;QAC1C,OAAO,EAAE;YACR,sBAAsB,EAAE,MAAM;SAC9B;QACD,KAAK,EAAE;YACN,2CAA2C,EAAE,OAAO;YACpD,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,OAAO;YACrD,gDAAgD,EAAE,OAAO;YACzD,uDAAuD,EAAE,OAAO;YAChE,0CAA0C,EAAE,OAAO;YACnD,8CAA8C,EAAE,OAAO;YACvD,+CAA+C,EAAE,OAAO;YACxD,0CAA0C,EAAE,OAAO;YACnD,qDAAqD,EAAE,OAAO;YAC9D,uDAAuD,EAAE,OAAO;YAChE,sCAAsC,EAAE,OAAO;YAC/C,oDAAoD,EAAE,MAAM;YAC5D,iDAAiD,EAAE,MAAM;YACzD,mDAAmD,EAAE,OAAO;YAC5D,oDAAoD,EAAE,OAAO;YAC7D,mDAAmD,EAAE,OAAO;YAC5D,0CAA0C,EAAE,OAAO;YACnD,qDAAqD,EAAE,MAAM;YAC7D,+CAA+C,EAAE,OAAO;YACxD,sDAAsD,EAAE,OAAO;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,GAAG,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,MAAM,MAAM,GAAG;IACd,IAAI,EAAE;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,sBAAsB;KACjC;IACD,8EAA8E;IAC9E,KAAK,EAAE,KAA+B;CACd,CAAC;AAE1B,MAAM,OAAO,GAAG;IACf,WAAW,EAAE;QACZ,OAAO,EAAE,CAAC,+BAA+B,CAAC;QAC1C,OAAO,EAAE;YACR,sBAAsB,EAAE,MAAM;SAC9B;QACD,KAAK,EAAE;YACN,2CAA2C,EAAE,OAAO;YACpD,4CAA4C,EAAE,OAAO;YACrD,4CAA4C,EAAE,OAAO;YACrD,gDAAgD,EAAE,OAAO;YACzD,uDAAuD,EAAE,OAAO;YAChE,0CAA0C,EAAE,OAAO;YACnD,8CAA8C,EAAE,OAAO;YACvD,+CAA+C,EAAE,OAAO;YACxD,0CAA0C,EAAE,OAAO;YACnD,qDAAqD,EAAE,OAAO;YAC9D,uDAAuD,EAAE,OAAO;YAChE,yCAAyC,EAAE,OAAO;YAClD,8CAA8C,EAAE,OAAO;YACvD,sCAAsC,EAAE,OAAO;YAC/C,oDAAoD,EAAE,MAAM;YAC5D,iDAAiD,EAAE,MAAM;YACzD,mDAAmD,EAAE,OAAO;YAC5D,oDAAoD,EAAE,OAAO;YAC7D,mDAAmD,EAAE,OAAO;YAC5D,0CAA0C,EAAE,OAAO;YACnD,qDAAqD,EAAE,MAAM;YAC7D,+CAA+C,EAAE,OAAO;YACxD,6CAA6C,EAAE,OAAO;YACtD,sDAAsD,EAAE,OAAO;YAC/D,kDAAkD,EAAE,OAAO;YAC3D,8CAA8C,EAAE,OAAO;YACvD,iDAAiD,EAAE,OAAO;SAC1D;KACD;IACD,iCAAiC,EAAE;QAClC,OAAO,EAAE,CAAC,+BAA+B,CAAC;QAC1C,OAAO,EAAE;YACR,sBAAsB,EAAE,MAAM;SAC9B;QACD,KAAK,EAAE;YACN,2CAA2C,EAAE,OAAO;YACpD,gDAAgD,EAAE,OAAO;YACzD,uDAAuD,EAAE,OAAO;YAChE,0CAA0C,EAAE,OAAO;YACnD,8CAA8C,EAAE,OAAO;YACvD,+CAA+C,EAAE,OAAO;YACxD,0CAA0C,EAAE,OAAO;YACnD,qDAAqD,EAAE,OAAO;YAC9D,uDAAuD,EAAE,OAAO;YAChE,yCAAyC,EAAE,OAAO;YAClD,8CAA8C,EAAE,OAAO;YACvD,sCAAsC,EAAE,OAAO;YAC/C,oDAAoD,EAAE,MAAM;YAC5D,mDAAmD,EAAE,OAAO;YAC5D,iDAAiD,EAAE,MAAM;YACzD,oDAAoD,EAAE,OAAO;YAC7D,mDAAmD,EAAE,OAAO;YAC5D,0CAA0C,EAAE,OAAO;YACnD,qDAAqD,EAAE,MAAM;YAC7D,+CAA+C,EAAE,OAAO;YACxD,6CAA6C,EAAE,OAAO;YACtD,sDAAsD,EAAE,OAAO;YAC/D,kDAAkD,EAAE,OAAO;YAC3D,8CAA8C,EAAE,OAAO;YACvD,iDAAiD,EAAE,OAAO;SAC1D;KACD;CACuC,CAAC;AAE1C,MAAM,iBAAiB,GAAG,EAAE,GAAG,MAAM,EAAE,OAAO,EAA0B,CAAC;AAEzE,MAAM,uBAAuB,GAAG,iBAAiB,CAAC;AAClD,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -11,6 +11,8 @@ export declare const rules: {
|
|
|
11
11
|
'no-credential-reuse': import("@typescript-eslint/utils/ts-eslint").RuleModule<"didYouMean" | "useAvailable" | "credentialNotInPackage", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
12
12
|
'no-forbidden-lifecycle-scripts': import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenScript", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
13
13
|
'no-http-request-with-manual-auth': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useHttpRequestWithAuthentication", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
14
|
+
'no-overrides-field': import("@typescript-eslint/utils/ts-eslint").RuleModule<"overridesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
15
|
+
'no-runtime-dependencies': import("@typescript-eslint/utils/ts-eslint").RuleModule<"runtimeDependenciesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
14
16
|
'icon-validation': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingIcon" | "addPlaceholder" | "iconFileNotFound" | "iconNotSvg" | "lightDarkSame" | "invalidIconPath" | "addFileProtocol" | "changeExtension" | "similarIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
15
17
|
'resource-operation-pattern': import("@typescript-eslint/utils/ts-eslint").RuleModule<"tooManyOperationsWithoutResources", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
16
18
|
'credential-documentation-url': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidDocumentationUrl", [{
|
|
@@ -23,6 +25,10 @@ export declare const rules: {
|
|
|
23
25
|
'missing-paired-item': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPairedItem", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
24
26
|
'require-community-node-keyword': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingKeyword" | "missingKeywordsArray", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
25
27
|
'require-continue-on-fail': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingContinueOnFail", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
28
|
+
'require-node-api-error': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useNodeApiError" | "useNodeApiErrorInsteadOfGeneric", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
26
29
|
'require-node-description-fields': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingField" | "missingFields", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
30
|
+
'valid-credential-references': import("@typescript-eslint/utils/ts-eslint").RuleModule<"didYouMean" | "credentialNotFound", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
31
|
+
'valid-peer-dependencies': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPeerDependencies" | "invalidPeerDependenciesType" | "missingN8nWorkflow" | "pinnedN8nWorkflow" | "forbiddenPeerDependency", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
32
|
+
'webhook-lifecycle-complete': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingWebhookMethods" | "emptyWebhookMethods" | "missingLifecycleMethod", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
27
33
|
};
|
|
28
34
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BuB,CAAC"}
|
package/dist/rules/index.js
CHANGED
|
@@ -9,8 +9,10 @@ import { NoCredentialReuseRule } from './no-credential-reuse.js';
|
|
|
9
9
|
import { NoDeprecatedWorkflowFunctionsRule } from './no-deprecated-workflow-functions.js';
|
|
10
10
|
import { NoForbiddenLifecycleScriptsRule } from './no-forbidden-lifecycle-scripts.js';
|
|
11
11
|
import { NoHttpRequestWithManualAuthRule } from './no-http-request-with-manual-auth.js';
|
|
12
|
+
import { NoOverridesFieldRule } from './no-overrides-field.js';
|
|
12
13
|
import { NoRestrictedGlobalsRule } from './no-restricted-globals.js';
|
|
13
14
|
import { NoRestrictedImportsRule } from './no-restricted-imports.js';
|
|
15
|
+
import { NoRuntimeDependenciesRule } from './no-runtime-dependencies.js';
|
|
14
16
|
import { NodeClassDescriptionIconMissingRule } from './node-class-description-icon-missing.js';
|
|
15
17
|
import { NodeConnectionTypeLiteralRule } from './node-connection-type-literal.js';
|
|
16
18
|
import { NodeUsableAsToolRule } from './node-usable-as-tool.js';
|
|
@@ -18,8 +20,12 @@ import { OptionsSortedAlphabeticallyRule } from './options-sorted-alphabetically
|
|
|
18
20
|
import { PackageNameConventionRule } from './package-name-convention.js';
|
|
19
21
|
import { RequireCommunityNodeKeywordRule } from './require-community-node-keyword.js';
|
|
20
22
|
import { RequireContinueOnFailRule } from './require-continue-on-fail.js';
|
|
23
|
+
import { RequireNodeApiErrorRule } from './require-node-api-error.js';
|
|
21
24
|
import { RequireNodeDescriptionFieldsRule } from './require-node-description-fields.js';
|
|
22
25
|
import { ResourceOperationPatternRule } from './resource-operation-pattern.js';
|
|
26
|
+
import { ValidCredentialReferencesRule } from './valid-credential-references.js';
|
|
27
|
+
import { ValidPeerDependenciesRule } from './valid-peer-dependencies.js';
|
|
28
|
+
import { WebhookLifecycleCompleteRule } from './webhook-lifecycle-complete.js';
|
|
23
29
|
export const rules = {
|
|
24
30
|
'ai-node-package-json': AiNodePackageJsonRule,
|
|
25
31
|
'no-restricted-globals': NoRestrictedGlobalsRule,
|
|
@@ -33,6 +39,8 @@ export const rules = {
|
|
|
33
39
|
'no-credential-reuse': NoCredentialReuseRule,
|
|
34
40
|
'no-forbidden-lifecycle-scripts': NoForbiddenLifecycleScriptsRule,
|
|
35
41
|
'no-http-request-with-manual-auth': NoHttpRequestWithManualAuthRule,
|
|
42
|
+
'no-overrides-field': NoOverridesFieldRule,
|
|
43
|
+
'no-runtime-dependencies': NoRuntimeDependenciesRule,
|
|
36
44
|
'icon-validation': IconValidationRule,
|
|
37
45
|
'resource-operation-pattern': ResourceOperationPatternRule,
|
|
38
46
|
'credential-documentation-url': CredentialDocumentationUrlRule,
|
|
@@ -42,6 +50,10 @@ export const rules = {
|
|
|
42
50
|
'missing-paired-item': MissingPairedItemRule,
|
|
43
51
|
'require-community-node-keyword': RequireCommunityNodeKeywordRule,
|
|
44
52
|
'require-continue-on-fail': RequireContinueOnFailRule,
|
|
53
|
+
'require-node-api-error': RequireNodeApiErrorRule,
|
|
45
54
|
'require-node-description-fields': RequireNodeDescriptionFieldsRule,
|
|
55
|
+
'valid-credential-references': ValidCredentialReferencesRule,
|
|
56
|
+
'valid-peer-dependencies': ValidPeerDependenciesRule,
|
|
57
|
+
'webhook-lifecycle-complete': WebhookLifecycleCompleteRule,
|
|
46
58
|
};
|
|
47
59
|
//# sourceMappingURL=index.js.map
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,iCAAiC,EAAE,MAAM,uCAAuC,CAAC;AAC1F,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,+BAA+B,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,mCAAmC,EAAE,MAAM,0CAA0C,CAAC;AAC/F,OAAO,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,+BAA+B,EAAE,MAAM,oCAAoC,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,+BAA+B,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAE/E,MAAM,CAAC,MAAM,KAAK,GAAG;IACpB,sBAAsB,EAAE,qBAAqB;IAC7C,uBAAuB,EAAE,uBAAuB;IAChD,uBAAuB,EAAE,uBAAuB;IAChD,2BAA2B,EAAE,2BAA2B;IACxD,kCAAkC,EAAE,iCAAiC;IACrE,qBAAqB,EAAE,oBAAoB;IAC3C,+BAA+B,EAAE,+BAA+B;IAChE,yBAAyB,EAAE,yBAAyB;IACpD,0BAA0B,EAAE,0BAA0B;IACtD,qBAAqB,EAAE,qBAAqB;IAC5C,gCAAgC,EAAE,+BAA+B;IACjE,kCAAkC,EAAE,+BAA+B;IACnE,iBAAiB,EAAE,kBAAkB;IACrC,4BAA4B,EAAE,4BAA4B;IAC1D,8BAA8B,EAAE,8BAA8B;IAC9D,qCAAqC,EAAE,mCAAmC;IAC1E,+BAA+B,EAAE,6BAA6B;IAC9D,8BAA8B,EAAE,6BAA6B;IAC7D,qBAAqB,EAAE,qBAAqB;IAC5C,gCAAgC,EAAE,+BAA+B;IACjE,0BAA0B,EAAE,yBAAyB;IACrD,iCAAiC,EAAE,gCAAgC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-overrides-field.d.ts","sourceRoot":"","sources":["../../src/rules/no-overrides-field.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,uJAqC/B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
|
+
import { createRule, findJsonProperty } from '../utils/index.js';
|
|
3
|
+
export const NoOverridesFieldRule = createRule({
|
|
4
|
+
name: 'no-overrides-field',
|
|
5
|
+
meta: {
|
|
6
|
+
type: 'problem',
|
|
7
|
+
docs: {
|
|
8
|
+
description: 'Ban the "overrides" field in community node package.json',
|
|
9
|
+
},
|
|
10
|
+
messages: {
|
|
11
|
+
overridesForbidden: 'The "overrides" field is not allowed in community node packages. Dependency overrides can introduce incompatible versions of shared libraries into the n8n runtime and cause conflicts with other nodes.',
|
|
12
|
+
},
|
|
13
|
+
schema: [],
|
|
14
|
+
},
|
|
15
|
+
defaultOptions: [],
|
|
16
|
+
create(context) {
|
|
17
|
+
if (!context.filename.endsWith('package.json')) {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
ObjectExpression(node) {
|
|
22
|
+
if (node.parent?.type !== AST_NODE_TYPES.ExpressionStatement) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const overridesProp = findJsonProperty(node, 'overrides');
|
|
26
|
+
if (!overridesProp) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
context.report({
|
|
30
|
+
node: overridesProp,
|
|
31
|
+
messageId: 'overridesForbidden',
|
|
32
|
+
});
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=no-overrides-field.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-overrides-field.js","sourceRoot":"","sources":["../../src/rules/no-overrides-field.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAAC;IAC9C,IAAI,EAAE,oBAAoB;IAC1B,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACL,WAAW,EAAE,0DAA0D;SACvE;QACD,QAAQ,EAAE;YACT,kBAAkB,EACjB,0MAA0M;SAC3M;QACD,MAAM,EAAE,EAAE;KACV;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO;YACN,gBAAgB,CAAC,IAA+B;gBAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;oBAC9D,OAAO;gBACR,CAAC;gBAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;gBAC1D,IAAI,CAAC,aAAa,EAAE,CAAC;oBACpB,OAAO;gBACR,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACd,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,oBAAoB;iBAC/B,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-runtime-dependencies.d.ts","sourceRoot":"","sources":["../../src/rules/no-runtime-dependencies.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,iKA4CpC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
|
+
import { createRule, findJsonProperty } from '../utils/index.js';
|
|
3
|
+
export const NoRuntimeDependenciesRule = createRule({
|
|
4
|
+
name: 'no-runtime-dependencies',
|
|
5
|
+
meta: {
|
|
6
|
+
type: 'problem',
|
|
7
|
+
docs: {
|
|
8
|
+
description: 'Disallow non-empty "dependencies" in community node package.json',
|
|
9
|
+
},
|
|
10
|
+
messages: {
|
|
11
|
+
runtimeDependenciesForbidden: 'The "dependencies" field must be empty or absent in community node packages. Runtime dependencies get bundled into the n8n instance and can conflict with other nodes or the n8n runtime itself. Move shared libraries to "peerDependencies" or bundle them into your build artifact.',
|
|
12
|
+
},
|
|
13
|
+
schema: [],
|
|
14
|
+
},
|
|
15
|
+
defaultOptions: [],
|
|
16
|
+
create(context) {
|
|
17
|
+
if (!context.filename.endsWith('package.json')) {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
ObjectExpression(node) {
|
|
22
|
+
if (node.parent?.type !== AST_NODE_TYPES.ExpressionStatement) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
const depsProp = findJsonProperty(node, 'dependencies');
|
|
26
|
+
if (!depsProp) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (depsProp.value.type !== AST_NODE_TYPES.ObjectExpression ||
|
|
30
|
+
depsProp.value.properties.length === 0) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
context.report({
|
|
34
|
+
node: depsProp,
|
|
35
|
+
messageId: 'runtimeDependenciesForbidden',
|
|
36
|
+
});
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=no-runtime-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-runtime-dependencies.js","sourceRoot":"","sources":["../../src/rules/no-runtime-dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;IACnD,IAAI,EAAE,yBAAyB;IAC/B,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACL,WAAW,EAAE,kEAAkE;SAC/E;QACD,QAAQ,EAAE;YACT,4BAA4B,EAC3B,uRAAuR;SACxR;QACD,MAAM,EAAE,EAAE;KACV;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAChD,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO;YACN,gBAAgB,CAAC,IAA+B;gBAC/C,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,cAAc,CAAC,mBAAmB,EAAE,CAAC;oBAC9D,OAAO;gBACR,CAAC;gBAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;gBACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACf,OAAO;gBACR,CAAC;gBAED,IACC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,gBAAgB;oBACvD,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EACrC,CAAC;oBACF,OAAO;gBACR,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACd,IAAI,EAAE,QAAQ;oBACd,SAAS,EAAE,8BAA8B;iBACzC,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const RequireNodeApiErrorRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"useNodeApiError" | "useNodeApiErrorInsteadOfGeneric", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
2
|
+
//# sourceMappingURL=require-node-api-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-node-api-error.d.ts","sourceRoot":"","sources":["../../src/rules/require-node-api-error.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,uBAAuB,wLA6DlC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { DefinitionType } from '@typescript-eslint/scope-manager';
|
|
2
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
3
|
+
import { isFileType } from '../utils/index.js';
|
|
4
|
+
import { createRule } from '../utils/rule-creator.js';
|
|
5
|
+
const ALLOWED_ERROR_CLASSES = new Set(['NodeApiError', 'NodeOperationError']);
|
|
6
|
+
function getThrowCalleeName(argument) {
|
|
7
|
+
if (argument.type === AST_NODE_TYPES.NewExpression) {
|
|
8
|
+
if (argument.callee.type === AST_NODE_TYPES.Identifier) {
|
|
9
|
+
return argument.callee.name;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
function isInsideCatchClause(node) {
|
|
15
|
+
let current = node.parent;
|
|
16
|
+
while (current) {
|
|
17
|
+
if (current.type === AST_NODE_TYPES.CatchClause) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
current = current.parent;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
export const RequireNodeApiErrorRule = createRule({
|
|
25
|
+
name: 'require-node-api-error',
|
|
26
|
+
meta: {
|
|
27
|
+
type: 'problem',
|
|
28
|
+
docs: {
|
|
29
|
+
description: 'Require NodeApiError or NodeOperationError for error wrapping in catch blocks. ' +
|
|
30
|
+
'Raw errors lose HTTP context in the n8n UI.',
|
|
31
|
+
},
|
|
32
|
+
messages: {
|
|
33
|
+
useNodeApiError: 'Use `NodeApiError` or `NodeOperationError` instead of re-throwing raw errors. ' +
|
|
34
|
+
'Example: `throw new NodeApiError(this.getNode(), error as JsonObject)`',
|
|
35
|
+
useNodeApiErrorInsteadOfGeneric: 'Use `NodeApiError` or `NodeOperationError` instead of `{{ errorClass }}`. ' +
|
|
36
|
+
'Example: `throw new NodeApiError(this.getNode(), error as JsonObject)`',
|
|
37
|
+
},
|
|
38
|
+
schema: [],
|
|
39
|
+
},
|
|
40
|
+
defaultOptions: [],
|
|
41
|
+
create(context) {
|
|
42
|
+
const isNodeFile = isFileType(context.filename, '.node.ts');
|
|
43
|
+
const isHelperFile = context.filename.endsWith('.ts') &&
|
|
44
|
+
!isNodeFile &&
|
|
45
|
+
!isFileType(context.filename, '.credentials.ts');
|
|
46
|
+
if (!isNodeFile && !isHelperFile) {
|
|
47
|
+
return {};
|
|
48
|
+
}
|
|
49
|
+
return {
|
|
50
|
+
ThrowStatement(node) {
|
|
51
|
+
if (!isInsideCatchClause(node))
|
|
52
|
+
return;
|
|
53
|
+
if (!node.argument)
|
|
54
|
+
return;
|
|
55
|
+
const { argument } = node;
|
|
56
|
+
if (argument.type === AST_NODE_TYPES.Identifier) {
|
|
57
|
+
const scope = context.sourceCode.getScope(node);
|
|
58
|
+
const ref = scope.references.find((r) => r.identifier === argument);
|
|
59
|
+
const isCatchParam = ref?.resolved?.defs.some((def) => def.type === DefinitionType.CatchClause) ?? false;
|
|
60
|
+
if (isCatchParam) {
|
|
61
|
+
context.report({ node, messageId: 'useNodeApiError' });
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const calleeName = getThrowCalleeName(argument);
|
|
66
|
+
if (calleeName !== null && !ALLOWED_ERROR_CLASSES.has(calleeName)) {
|
|
67
|
+
context.report({
|
|
68
|
+
node,
|
|
69
|
+
messageId: 'useNodeApiErrorInsteadOfGeneric',
|
|
70
|
+
data: { errorClass: calleeName },
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
};
|
|
75
|
+
},
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=require-node-api-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-node-api-error.js","sourceRoot":"","sources":["../../src/rules/require-node-api-error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-credential-references.d.ts","sourceRoot":"","sources":["../../src/rules/valid-credential-references.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,6BAA6B,sKAyFxC,CAAC"}
|