@n8n/eslint-plugin-community-nodes 0.13.0 → 0.14.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 +30 -24
- package/dist/plugin.d.ts +24 -0
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +8 -0
- package/dist/plugin.js.map +1 -1
- package/dist/rules/index.d.ts +4 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +8 -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/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-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 +98 -0
- package/dist/rules/webhook-lifecycle-complete.js.map +1 -0
- package/docs/rules/no-overrides-field.md +50 -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-peer-dependencies.md +72 -0
- package/docs/rules/webhook-lifecycle-complete.md +88 -0
- package/package.json +5 -5
- package/src/plugin.ts +8 -0
- package/src/rules/index.ts +8 -0
- package/src/rules/no-overrides-field.test.ts +50 -0
- package/src/rules/no-overrides-field.ts +43 -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-peer-dependencies.test.ts +130 -0
- package/src/rules/valid-peer-dependencies.ts +116 -0
- package/src/rules/webhook-lifecycle-complete.test.ts +212 -0
- package/src/rules/webhook-lifecycle-complete.ts +120 -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.14.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,36 @@ 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
|
-
| [node-
|
|
63
|
-
| [node-
|
|
64
|
-
| [
|
|
65
|
-
| [
|
|
66
|
-
| [
|
|
67
|
-
| [require-node-
|
|
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
|
+
| [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. | | | | 💡 | ❌ |
|
|
64
|
+
| [node-connection-type-literal](docs/rules/node-connection-type-literal.md) | Disallow string literals in node description `inputs`/`outputs` — use `NodeConnectionTypes` enum instead | ✅ ☑️ | | 🔧 | | |
|
|
65
|
+
| [node-usable-as-tool](docs/rules/node-usable-as-tool.md) | Ensure node classes have usableAsTool property | ✅ ☑️ | | 🔧 | | |
|
|
66
|
+
| [options-sorted-alphabetically](docs/rules/options-sorted-alphabetically.md) | Enforce alphabetical ordering of options arrays in n8n node properties | | ✅ ☑️ | | | |
|
|
67
|
+
| [package-name-convention](docs/rules/package-name-convention.md) | Enforce correct package naming convention for n8n community nodes | ✅ ☑️ | | | 💡 | |
|
|
68
|
+
| [require-community-node-keyword](docs/rules/require-community-node-keyword.md) | Require the "n8n-community-node-package" keyword in community node package.json | | ✅ ☑️ | 🔧 | | |
|
|
69
|
+
| [require-continue-on-fail](docs/rules/require-continue-on-fail.md) | Require continueOnFail() handling in execute() methods of node classes | ✅ ☑️ | | | | |
|
|
70
|
+
| [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. | ✅ ☑️ | | | | |
|
|
71
|
+
| [require-node-description-fields](docs/rules/require-node-description-fields.md) | Node class description must define all required fields: icon, subtitle | ✅ ☑️ | | | | |
|
|
72
|
+
| [resource-operation-pattern](docs/rules/resource-operation-pattern.md) | Enforce proper resource/operation pattern for better UX in n8n nodes | | ✅ ☑️ | | | |
|
|
73
|
+
| [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") | ✅ ☑️ | | 🔧 | | |
|
|
74
|
+
| [webhook-lifecycle-complete](docs/rules/webhook-lifecycle-complete.md) | Require webhook trigger nodes to implement the complete webhookMethods lifecycle (checkExists, create, delete) | ✅ ☑️ | | | | |
|
|
69
75
|
|
|
70
76
|
<!-- end auto-generated rules list -->
|
package/dist/plugin.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ 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";
|
|
28
29
|
'@n8n/community-nodes/icon-validation': "error";
|
|
29
30
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
30
31
|
'@n8n/community-nodes/resource-operation-pattern': "warn";
|
|
@@ -34,7 +35,10 @@ declare const configs: {
|
|
|
34
35
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
35
36
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
36
37
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
38
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
37
39
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
40
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
41
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
38
42
|
};
|
|
39
43
|
};
|
|
40
44
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -59,6 +63,7 @@ declare const configs: {
|
|
|
59
63
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
60
64
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
61
65
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
66
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
62
67
|
'@n8n/community-nodes/icon-validation': "error";
|
|
63
68
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
64
69
|
'@n8n/community-nodes/credential-documentation-url': "error";
|
|
@@ -68,7 +73,10 @@ declare const configs: {
|
|
|
68
73
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
69
74
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
70
75
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
76
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
71
77
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
78
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
79
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
72
80
|
};
|
|
73
81
|
};
|
|
74
82
|
};
|
|
@@ -98,6 +106,7 @@ declare const pluginWithConfigs: {
|
|
|
98
106
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
99
107
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
100
108
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
109
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
101
110
|
'@n8n/community-nodes/icon-validation': "error";
|
|
102
111
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
103
112
|
'@n8n/community-nodes/resource-operation-pattern': "warn";
|
|
@@ -107,7 +116,10 @@ declare const pluginWithConfigs: {
|
|
|
107
116
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
108
117
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
109
118
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
119
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
110
120
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
121
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
122
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
111
123
|
};
|
|
112
124
|
};
|
|
113
125
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -132,6 +144,7 @@ declare const pluginWithConfigs: {
|
|
|
132
144
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
133
145
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
134
146
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
147
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
135
148
|
'@n8n/community-nodes/icon-validation': "error";
|
|
136
149
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
137
150
|
'@n8n/community-nodes/credential-documentation-url': "error";
|
|
@@ -141,7 +154,10 @@ declare const pluginWithConfigs: {
|
|
|
141
154
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
142
155
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
143
156
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
157
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
144
158
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
159
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
160
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
145
161
|
};
|
|
146
162
|
};
|
|
147
163
|
};
|
|
@@ -178,6 +194,7 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
178
194
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
179
195
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
180
196
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
197
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
181
198
|
'@n8n/community-nodes/icon-validation': "error";
|
|
182
199
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
183
200
|
'@n8n/community-nodes/resource-operation-pattern': "warn";
|
|
@@ -187,7 +204,10 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
187
204
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
188
205
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
189
206
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
207
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
190
208
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
209
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
210
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
191
211
|
};
|
|
192
212
|
};
|
|
193
213
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -212,6 +232,7 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
212
232
|
'@n8n/community-nodes/no-credential-reuse': "error";
|
|
213
233
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
|
|
214
234
|
'@n8n/community-nodes/no-http-request-with-manual-auth': "error";
|
|
235
|
+
'@n8n/community-nodes/no-overrides-field': "error";
|
|
215
236
|
'@n8n/community-nodes/icon-validation': "error";
|
|
216
237
|
'@n8n/community-nodes/options-sorted-alphabetically': "warn";
|
|
217
238
|
'@n8n/community-nodes/credential-documentation-url': "error";
|
|
@@ -221,7 +242,10 @@ declare const n8nCommunityNodesPlugin: {
|
|
|
221
242
|
'@n8n/community-nodes/missing-paired-item': "error";
|
|
222
243
|
'@n8n/community-nodes/require-community-node-keyword': "warn";
|
|
223
244
|
'@n8n/community-nodes/require-continue-on-fail': "error";
|
|
245
|
+
'@n8n/community-nodes/require-node-api-error': "error";
|
|
224
246
|
'@n8n/community-nodes/require-node-description-fields': "error";
|
|
247
|
+
'@n8n/community-nodes/valid-peer-dependencies': "error";
|
|
248
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': "error";
|
|
225
249
|
};
|
|
226
250
|
};
|
|
227
251
|
};
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoEE,CAAC;AAE1C,QAAA,MAAM,iBAAiB;;;;;;;;;;;2BAtEN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;CAsEiC,CAAC;AAEzE,QAAA,MAAM,uBAAuB;;;;;;;;;;;2BAxEZ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;CAwEU,CAAC;AAClD,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
package/dist/plugin.js
CHANGED
|
@@ -27,6 +27,7 @@ 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',
|
|
30
31
|
'@n8n/community-nodes/icon-validation': 'error',
|
|
31
32
|
'@n8n/community-nodes/options-sorted-alphabetically': 'warn',
|
|
32
33
|
'@n8n/community-nodes/resource-operation-pattern': 'warn',
|
|
@@ -36,7 +37,10 @@ const configs = {
|
|
|
36
37
|
'@n8n/community-nodes/missing-paired-item': 'error',
|
|
37
38
|
'@n8n/community-nodes/require-community-node-keyword': 'warn',
|
|
38
39
|
'@n8n/community-nodes/require-continue-on-fail': 'error',
|
|
40
|
+
'@n8n/community-nodes/require-node-api-error': 'error',
|
|
39
41
|
'@n8n/community-nodes/require-node-description-fields': 'error',
|
|
42
|
+
'@n8n/community-nodes/valid-peer-dependencies': 'error',
|
|
43
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': 'error',
|
|
40
44
|
},
|
|
41
45
|
},
|
|
42
46
|
recommendedWithoutN8nCloudSupport: {
|
|
@@ -54,6 +58,7 @@ const configs = {
|
|
|
54
58
|
'@n8n/community-nodes/no-credential-reuse': 'error',
|
|
55
59
|
'@n8n/community-nodes/no-forbidden-lifecycle-scripts': 'error',
|
|
56
60
|
'@n8n/community-nodes/no-http-request-with-manual-auth': 'error',
|
|
61
|
+
'@n8n/community-nodes/no-overrides-field': 'error',
|
|
57
62
|
'@n8n/community-nodes/icon-validation': 'error',
|
|
58
63
|
'@n8n/community-nodes/options-sorted-alphabetically': 'warn',
|
|
59
64
|
'@n8n/community-nodes/credential-documentation-url': 'error',
|
|
@@ -63,7 +68,10 @@ const configs = {
|
|
|
63
68
|
'@n8n/community-nodes/missing-paired-item': 'error',
|
|
64
69
|
'@n8n/community-nodes/require-community-node-keyword': 'warn',
|
|
65
70
|
'@n8n/community-nodes/require-continue-on-fail': 'error',
|
|
71
|
+
'@n8n/community-nodes/require-node-api-error': 'error',
|
|
66
72
|
'@n8n/community-nodes/require-node-description-fields': 'error',
|
|
73
|
+
'@n8n/community-nodes/valid-peer-dependencies': 'error',
|
|
74
|
+
'@n8n/community-nodes/webhook-lifecycle-complete': 'error',
|
|
67
75
|
},
|
|
68
76
|
},
|
|
69
77
|
};
|
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,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,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,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,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,7 @@ 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>;
|
|
14
15
|
'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
16
|
'resource-operation-pattern': import("@typescript-eslint/utils/ts-eslint").RuleModule<"tooManyOperationsWithoutResources", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
16
17
|
'credential-documentation-url': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidDocumentationUrl", [{
|
|
@@ -23,6 +24,9 @@ export declare const rules: {
|
|
|
23
24
|
'missing-paired-item': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPairedItem", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
24
25
|
'require-community-node-keyword': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingKeyword" | "missingKeywordsArray", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
25
26
|
'require-continue-on-fail': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingContinueOnFail", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
27
|
+
'require-node-api-error': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useNodeApiError" | "useNodeApiErrorInsteadOfGeneric", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
26
28
|
'require-node-description-fields': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingField" | "missingFields", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
29
|
+
'valid-peer-dependencies': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPeerDependencies" | "invalidPeerDependenciesType" | "missingN8nWorkflow" | "pinnedN8nWorkflow" | "forbiddenPeerDependency", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
30
|
+
'webhook-lifecycle-complete': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingWebhookMethods" | "missingLifecycleMethod", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
27
31
|
};
|
|
28
32
|
//# 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":"AA6BA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BuB,CAAC"}
|
package/dist/rules/index.js
CHANGED
|
@@ -9,6 +9,7 @@ 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';
|
|
14
15
|
import { NodeClassDescriptionIconMissingRule } from './node-class-description-icon-missing.js';
|
|
@@ -18,8 +19,11 @@ import { OptionsSortedAlphabeticallyRule } from './options-sorted-alphabetically
|
|
|
18
19
|
import { PackageNameConventionRule } from './package-name-convention.js';
|
|
19
20
|
import { RequireCommunityNodeKeywordRule } from './require-community-node-keyword.js';
|
|
20
21
|
import { RequireContinueOnFailRule } from './require-continue-on-fail.js';
|
|
22
|
+
import { RequireNodeApiErrorRule } from './require-node-api-error.js';
|
|
21
23
|
import { RequireNodeDescriptionFieldsRule } from './require-node-description-fields.js';
|
|
22
24
|
import { ResourceOperationPatternRule } from './resource-operation-pattern.js';
|
|
25
|
+
import { ValidPeerDependenciesRule } from './valid-peer-dependencies.js';
|
|
26
|
+
import { WebhookLifecycleCompleteRule } from './webhook-lifecycle-complete.js';
|
|
23
27
|
export const rules = {
|
|
24
28
|
'ai-node-package-json': AiNodePackageJsonRule,
|
|
25
29
|
'no-restricted-globals': NoRestrictedGlobalsRule,
|
|
@@ -33,6 +37,7 @@ export const rules = {
|
|
|
33
37
|
'no-credential-reuse': NoCredentialReuseRule,
|
|
34
38
|
'no-forbidden-lifecycle-scripts': NoForbiddenLifecycleScriptsRule,
|
|
35
39
|
'no-http-request-with-manual-auth': NoHttpRequestWithManualAuthRule,
|
|
40
|
+
'no-overrides-field': NoOverridesFieldRule,
|
|
36
41
|
'icon-validation': IconValidationRule,
|
|
37
42
|
'resource-operation-pattern': ResourceOperationPatternRule,
|
|
38
43
|
'credential-documentation-url': CredentialDocumentationUrlRule,
|
|
@@ -42,6 +47,9 @@ export const rules = {
|
|
|
42
47
|
'missing-paired-item': MissingPairedItemRule,
|
|
43
48
|
'require-community-node-keyword': RequireCommunityNodeKeywordRule,
|
|
44
49
|
'require-continue-on-fail': RequireContinueOnFailRule,
|
|
50
|
+
'require-node-api-error': RequireNodeApiErrorRule,
|
|
45
51
|
'require-node-description-fields': RequireNodeDescriptionFieldsRule,
|
|
52
|
+
'valid-peer-dependencies': ValidPeerDependenciesRule,
|
|
53
|
+
'webhook-lifecycle-complete': WebhookLifecycleCompleteRule,
|
|
46
54
|
};
|
|
47
55
|
//# 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":"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,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,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,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AACxF,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,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,oBAAoB,EAAE,oBAAoB;IAC1C,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,wBAAwB,EAAE,uBAAuB;IACjD,iCAAiC,EAAE,gCAAgC;IACnE,yBAAyB,EAAE,yBAAyB;IACpD,4BAA4B,EAAE,4BAA4B;CAClB,CAAC"}
|
|
@@ -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,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,2 @@
|
|
|
1
|
+
export declare const ValidPeerDependenciesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPeerDependencies" | "invalidPeerDependenciesType" | "missingN8nWorkflow" | "pinnedN8nWorkflow" | "forbiddenPeerDependency", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
|
|
2
|
+
//# sourceMappingURL=valid-peer-dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-peer-dependencies.d.ts","sourceRoot":"","sources":["../../src/rules/valid-peer-dependencies.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,yBAAyB,qQA0GpC,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { AST_NODE_TYPES } from '@typescript-eslint/utils';
|
|
2
|
+
import { createRule, findJsonProperty } from '../utils/index.js';
|
|
3
|
+
const REQUIRED_DEP = 'n8n-workflow';
|
|
4
|
+
const REQUIRED_VERSION = '*';
|
|
5
|
+
const ALLOWED_DEPS = new Set([REQUIRED_DEP, 'ai-node-sdk']);
|
|
6
|
+
export const ValidPeerDependenciesRule = createRule({
|
|
7
|
+
name: 'valid-peer-dependencies',
|
|
8
|
+
meta: {
|
|
9
|
+
type: 'problem',
|
|
10
|
+
docs: {
|
|
11
|
+
description: 'Require community node package.json peerDependencies to contain only "n8n-workflow": "*" (and optionally "ai-node-sdk")',
|
|
12
|
+
},
|
|
13
|
+
fixable: 'code',
|
|
14
|
+
messages: {
|
|
15
|
+
missingPeerDependencies: `The package.json must have a "peerDependencies" section containing "${REQUIRED_DEP}": "${REQUIRED_VERSION}".`,
|
|
16
|
+
invalidPeerDependenciesType: `"peerDependencies" must be an object mapping package names to version ranges (containing "${REQUIRED_DEP}": "${REQUIRED_VERSION}").`,
|
|
17
|
+
missingN8nWorkflow: `"peerDependencies" must include "${REQUIRED_DEP}": "${REQUIRED_VERSION}".`,
|
|
18
|
+
pinnedN8nWorkflow: `"peerDependencies.${REQUIRED_DEP}" must be "${REQUIRED_VERSION}", got {{ value }}.`,
|
|
19
|
+
forbiddenPeerDependency: '"{{ name }}" is not allowed in "peerDependencies". Only "n8n-workflow" and "ai-node-sdk" are permitted.',
|
|
20
|
+
},
|
|
21
|
+
schema: [],
|
|
22
|
+
},
|
|
23
|
+
defaultOptions: [],
|
|
24
|
+
create(context) {
|
|
25
|
+
if (!context.filename.endsWith('package.json')) {
|
|
26
|
+
return {};
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
ObjectExpression(node) {
|
|
30
|
+
if (node.parent?.type !== AST_NODE_TYPES.ExpressionStatement) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
const peerDepsProp = findJsonProperty(node, 'peerDependencies');
|
|
34
|
+
if (!peerDepsProp) {
|
|
35
|
+
context.report({
|
|
36
|
+
node,
|
|
37
|
+
messageId: 'missingPeerDependencies',
|
|
38
|
+
fix(fixer) {
|
|
39
|
+
const insertion = `"peerDependencies": { "${REQUIRED_DEP}": "${REQUIRED_VERSION}" }`;
|
|
40
|
+
const lastProp = node.properties[node.properties.length - 1];
|
|
41
|
+
if (!lastProp) {
|
|
42
|
+
return fixer.replaceText(node, `{ ${insertion} }`);
|
|
43
|
+
}
|
|
44
|
+
return fixer.insertTextAfter(lastProp, `, ${insertion}`);
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
if (peerDepsProp.value.type !== AST_NODE_TYPES.ObjectExpression) {
|
|
50
|
+
context.report({
|
|
51
|
+
node: peerDepsProp,
|
|
52
|
+
messageId: 'invalidPeerDependenciesType',
|
|
53
|
+
});
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const peerDepsObject = peerDepsProp.value;
|
|
57
|
+
const workflowEntry = findJsonProperty(peerDepsObject, REQUIRED_DEP);
|
|
58
|
+
if (!workflowEntry) {
|
|
59
|
+
context.report({
|
|
60
|
+
node: peerDepsProp,
|
|
61
|
+
messageId: 'missingN8nWorkflow',
|
|
62
|
+
fix(fixer) {
|
|
63
|
+
const insertion = `"${REQUIRED_DEP}": "${REQUIRED_VERSION}"`;
|
|
64
|
+
const lastProp = peerDepsObject.properties[peerDepsObject.properties.length - 1];
|
|
65
|
+
if (!lastProp) {
|
|
66
|
+
return fixer.replaceText(peerDepsObject, `{ ${insertion} }`);
|
|
67
|
+
}
|
|
68
|
+
return fixer.insertTextAfter(lastProp, `, ${insertion}`);
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
else if (workflowEntry.value.type !== AST_NODE_TYPES.Literal ||
|
|
73
|
+
workflowEntry.value.value !== REQUIRED_VERSION) {
|
|
74
|
+
const valueNode = workflowEntry.value;
|
|
75
|
+
const rawValue = valueNode.type === AST_NODE_TYPES.Literal ? String(valueNode.raw) : 'non-literal';
|
|
76
|
+
context.report({
|
|
77
|
+
node: workflowEntry,
|
|
78
|
+
messageId: 'pinnedN8nWorkflow',
|
|
79
|
+
data: { value: rawValue },
|
|
80
|
+
fix(fixer) {
|
|
81
|
+
if (valueNode.type !== AST_NODE_TYPES.Literal)
|
|
82
|
+
return null;
|
|
83
|
+
return fixer.replaceText(valueNode, `"${REQUIRED_VERSION}"`);
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
for (const prop of peerDepsObject.properties) {
|
|
88
|
+
if (prop.type !== AST_NODE_TYPES.Property)
|
|
89
|
+
continue;
|
|
90
|
+
if (prop.key.type !== AST_NODE_TYPES.Literal)
|
|
91
|
+
continue;
|
|
92
|
+
const name = prop.key.value;
|
|
93
|
+
if (typeof name !== 'string')
|
|
94
|
+
continue;
|
|
95
|
+
if (ALLOWED_DEPS.has(name))
|
|
96
|
+
continue;
|
|
97
|
+
context.report({
|
|
98
|
+
node: prop,
|
|
99
|
+
messageId: 'forbiddenPeerDependency',
|
|
100
|
+
data: { name },
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
};
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=valid-peer-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"valid-peer-dependencies.js","sourceRoot":"","sources":["../../src/rules/valid-peer-dependencies.ts"],"names":[],"mappings":"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"}
|