@n8n/eslint-plugin-community-nodes 0.12.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.
Files changed (63) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/README.md +30 -23
  3. package/dist/plugin.d.ts +36 -6
  4. package/dist/plugin.d.ts.map +1 -1
  5. package/dist/plugin.js +12 -2
  6. package/dist/plugin.js.map +1 -1
  7. package/dist/rules/index.d.ts +6 -0
  8. package/dist/rules/index.d.ts.map +1 -1
  9. package/dist/rules/index.js +12 -0
  10. package/dist/rules/index.js.map +1 -1
  11. package/dist/rules/no-overrides-field.d.ts +2 -0
  12. package/dist/rules/no-overrides-field.d.ts.map +1 -0
  13. package/dist/rules/no-overrides-field.js +37 -0
  14. package/dist/rules/no-overrides-field.js.map +1 -0
  15. package/dist/rules/node-class-description-icon-missing.d.ts +1 -0
  16. package/dist/rules/node-class-description-icon-missing.d.ts.map +1 -1
  17. package/dist/rules/node-class-description-icon-missing.js +6 -1
  18. package/dist/rules/node-class-description-icon-missing.js.map +1 -1
  19. package/dist/rules/require-community-node-keyword.d.ts +2 -0
  20. package/dist/rules/require-community-node-keyword.d.ts.map +1 -0
  21. package/dist/rules/require-community-node-keyword.js +65 -0
  22. package/dist/rules/require-community-node-keyword.js.map +1 -0
  23. package/dist/rules/require-node-api-error.d.ts +2 -0
  24. package/dist/rules/require-node-api-error.d.ts.map +1 -0
  25. package/dist/rules/require-node-api-error.js +77 -0
  26. package/dist/rules/require-node-api-error.js.map +1 -0
  27. package/dist/rules/require-node-description-fields.d.ts +2 -0
  28. package/dist/rules/require-node-description-fields.d.ts.map +1 -0
  29. package/dist/rules/require-node-description-fields.js +58 -0
  30. package/dist/rules/require-node-description-fields.js.map +1 -0
  31. package/dist/rules/valid-peer-dependencies.d.ts +2 -0
  32. package/dist/rules/valid-peer-dependencies.d.ts.map +1 -0
  33. package/dist/rules/valid-peer-dependencies.js +107 -0
  34. package/dist/rules/valid-peer-dependencies.js.map +1 -0
  35. package/dist/rules/webhook-lifecycle-complete.d.ts +2 -0
  36. package/dist/rules/webhook-lifecycle-complete.d.ts.map +1 -0
  37. package/dist/rules/webhook-lifecycle-complete.js +98 -0
  38. package/dist/rules/webhook-lifecycle-complete.js.map +1 -0
  39. package/docs/rules/no-overrides-field.md +50 -0
  40. package/docs/rules/node-class-description-icon-missing.md +4 -2
  41. package/docs/rules/require-community-node-keyword.md +45 -0
  42. package/docs/rules/require-node-api-error.md +62 -0
  43. package/docs/rules/require-node-description-fields.md +46 -0
  44. package/docs/rules/valid-peer-dependencies.md +72 -0
  45. package/docs/rules/webhook-lifecycle-complete.md +88 -0
  46. package/package.json +5 -5
  47. package/src/plugin.ts +12 -2
  48. package/src/rules/index.ts +12 -0
  49. package/src/rules/no-overrides-field.test.ts +50 -0
  50. package/src/rules/no-overrides-field.ts +43 -0
  51. package/src/rules/node-class-description-icon-missing.ts +7 -1
  52. package/src/rules/require-community-node-keyword.test.ts +82 -0
  53. package/src/rules/require-community-node-keyword.ts +78 -0
  54. package/src/rules/require-node-api-error.test.ts +199 -0
  55. package/src/rules/require-node-api-error.ts +90 -0
  56. package/src/rules/require-node-description-fields.test.ts +171 -0
  57. package/src/rules/require-node-description-fields.ts +77 -0
  58. package/src/rules/valid-peer-dependencies.test.ts +130 -0
  59. package/src/rules/valid-peer-dependencies.ts +116 -0
  60. package/src/rules/webhook-lifecycle-complete.test.ts +212 -0
  61. package/src/rules/webhook-lifecycle-complete.ts +120 -0
  62. package/tsconfig.build.tsbuildinfo +1 -1
  63. package/tsconfig.json +0 -1
@@ -1,4 +1,4 @@
1
1
 
2
- > @n8n/eslint-plugin-community-nodes@0.12.0 build /home/runner/work/n8n/n8n/packages/@n8n/eslint-plugin-community-nodes
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,29 +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-restricted-globals](docs/rules/no-restricted-globals.md) | Disallow usage of restricted global variables in community nodes. | ✅ | | | |
60
- | [no-restricted-imports](docs/rules/no-restricted-imports.md) | Disallow usage of restricted imports in community nodes. | ✅ | | | |
61
- | [node-class-description-icon-missing](docs/rules/node-class-description-icon-missing.md) | Node class description must have an `icon` property defined | ✅ ☑️ | | | 💡 |
62
- | [node-connection-type-literal](docs/rules/node-connection-type-literal.md) | Disallow string literals in node description `inputs`/`outputs` use `NodeConnectionTypes` enum instead | ✅ ☑️ | | 🔧 | |
63
- | [node-usable-as-tool](docs/rules/node-usable-as-tool.md) | Ensure node classes have usableAsTool property | ✅ ☑️ | | 🔧 | |
64
- | [options-sorted-alphabetically](docs/rules/options-sorted-alphabetically.md) | Enforce alphabetical ordering of options arrays in n8n node properties | | ☑️ | | |
65
- | [package-name-convention](docs/rules/package-name-convention.md) | Enforce correct package naming convention for n8n community nodes | ✅ ☑️ | | | 💡 |
66
- | [require-continue-on-fail](docs/rules/require-continue-on-fail.md) | Require continueOnFail() handling in execute() methods of node classes | ✅ ☑️ | | | |
67
- | [resource-operation-pattern](docs/rules/resource-operation-pattern.md) | Enforce proper resource/operation pattern for better UX in n8n nodes | | ✅ ☑️ | | |
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) | ✅ ☑️ | | | | |
68
75
 
69
76
  <!-- end auto-generated rules list -->
package/dist/plugin.d.ts CHANGED
@@ -25,15 +25,20 @@ 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";
31
32
  '@n8n/community-nodes/credential-documentation-url': "error";
32
- '@n8n/community-nodes/node-class-description-icon-missing': "error";
33
33
  '@n8n/community-nodes/cred-class-field-icon-missing': "error";
34
34
  '@n8n/community-nodes/node-connection-type-literal': "error";
35
35
  '@n8n/community-nodes/missing-paired-item': "error";
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";
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";
37
42
  };
38
43
  };
39
44
  recommendedWithoutN8nCloudSupport: {
@@ -58,15 +63,20 @@ declare const configs: {
58
63
  '@n8n/community-nodes/no-credential-reuse': "error";
59
64
  '@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
60
65
  '@n8n/community-nodes/no-http-request-with-manual-auth': "error";
66
+ '@n8n/community-nodes/no-overrides-field': "error";
61
67
  '@n8n/community-nodes/icon-validation': "error";
62
68
  '@n8n/community-nodes/options-sorted-alphabetically': "warn";
63
69
  '@n8n/community-nodes/credential-documentation-url': "error";
64
70
  '@n8n/community-nodes/resource-operation-pattern': "warn";
65
- '@n8n/community-nodes/node-class-description-icon-missing': "error";
66
71
  '@n8n/community-nodes/cred-class-field-icon-missing': "error";
67
72
  '@n8n/community-nodes/node-connection-type-literal': "error";
68
73
  '@n8n/community-nodes/missing-paired-item': "error";
74
+ '@n8n/community-nodes/require-community-node-keyword': "warn";
69
75
  '@n8n/community-nodes/require-continue-on-fail': "error";
76
+ '@n8n/community-nodes/require-node-api-error': "error";
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";
70
80
  };
71
81
  };
72
82
  };
@@ -96,15 +106,20 @@ declare const pluginWithConfigs: {
96
106
  '@n8n/community-nodes/no-credential-reuse': "error";
97
107
  '@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
98
108
  '@n8n/community-nodes/no-http-request-with-manual-auth': "error";
109
+ '@n8n/community-nodes/no-overrides-field': "error";
99
110
  '@n8n/community-nodes/icon-validation': "error";
100
111
  '@n8n/community-nodes/options-sorted-alphabetically': "warn";
101
112
  '@n8n/community-nodes/resource-operation-pattern': "warn";
102
113
  '@n8n/community-nodes/credential-documentation-url': "error";
103
- '@n8n/community-nodes/node-class-description-icon-missing': "error";
104
114
  '@n8n/community-nodes/cred-class-field-icon-missing': "error";
105
115
  '@n8n/community-nodes/node-connection-type-literal': "error";
106
116
  '@n8n/community-nodes/missing-paired-item': "error";
117
+ '@n8n/community-nodes/require-community-node-keyword': "warn";
107
118
  '@n8n/community-nodes/require-continue-on-fail': "error";
119
+ '@n8n/community-nodes/require-node-api-error': "error";
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";
108
123
  };
109
124
  };
110
125
  recommendedWithoutN8nCloudSupport: {
@@ -129,15 +144,20 @@ declare const pluginWithConfigs: {
129
144
  '@n8n/community-nodes/no-credential-reuse': "error";
130
145
  '@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
131
146
  '@n8n/community-nodes/no-http-request-with-manual-auth': "error";
147
+ '@n8n/community-nodes/no-overrides-field': "error";
132
148
  '@n8n/community-nodes/icon-validation': "error";
133
149
  '@n8n/community-nodes/options-sorted-alphabetically': "warn";
134
150
  '@n8n/community-nodes/credential-documentation-url': "error";
135
151
  '@n8n/community-nodes/resource-operation-pattern': "warn";
136
- '@n8n/community-nodes/node-class-description-icon-missing': "error";
137
152
  '@n8n/community-nodes/cred-class-field-icon-missing': "error";
138
153
  '@n8n/community-nodes/node-connection-type-literal': "error";
139
154
  '@n8n/community-nodes/missing-paired-item': "error";
155
+ '@n8n/community-nodes/require-community-node-keyword': "warn";
140
156
  '@n8n/community-nodes/require-continue-on-fail': "error";
157
+ '@n8n/community-nodes/require-node-api-error': "error";
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";
141
161
  };
142
162
  };
143
163
  };
@@ -174,15 +194,20 @@ declare const n8nCommunityNodesPlugin: {
174
194
  '@n8n/community-nodes/no-credential-reuse': "error";
175
195
  '@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
176
196
  '@n8n/community-nodes/no-http-request-with-manual-auth': "error";
197
+ '@n8n/community-nodes/no-overrides-field': "error";
177
198
  '@n8n/community-nodes/icon-validation': "error";
178
199
  '@n8n/community-nodes/options-sorted-alphabetically': "warn";
179
200
  '@n8n/community-nodes/resource-operation-pattern': "warn";
180
201
  '@n8n/community-nodes/credential-documentation-url': "error";
181
- '@n8n/community-nodes/node-class-description-icon-missing': "error";
182
202
  '@n8n/community-nodes/cred-class-field-icon-missing': "error";
183
203
  '@n8n/community-nodes/node-connection-type-literal': "error";
184
204
  '@n8n/community-nodes/missing-paired-item': "error";
205
+ '@n8n/community-nodes/require-community-node-keyword': "warn";
185
206
  '@n8n/community-nodes/require-continue-on-fail': "error";
207
+ '@n8n/community-nodes/require-node-api-error': "error";
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";
186
211
  };
187
212
  };
188
213
  recommendedWithoutN8nCloudSupport: {
@@ -207,15 +232,20 @@ declare const n8nCommunityNodesPlugin: {
207
232
  '@n8n/community-nodes/no-credential-reuse': "error";
208
233
  '@n8n/community-nodes/no-forbidden-lifecycle-scripts': "error";
209
234
  '@n8n/community-nodes/no-http-request-with-manual-auth': "error";
235
+ '@n8n/community-nodes/no-overrides-field': "error";
210
236
  '@n8n/community-nodes/icon-validation': "error";
211
237
  '@n8n/community-nodes/options-sorted-alphabetically': "warn";
212
238
  '@n8n/community-nodes/credential-documentation-url': "error";
213
239
  '@n8n/community-nodes/resource-operation-pattern': "warn";
214
- '@n8n/community-nodes/node-class-description-icon-missing': "error";
215
240
  '@n8n/community-nodes/cred-class-field-icon-missing': "error";
216
241
  '@n8n/community-nodes/node-connection-type-literal': "error";
217
242
  '@n8n/community-nodes/missing-paired-item': "error";
243
+ '@n8n/community-nodes/require-community-node-keyword': "warn";
218
244
  '@n8n/community-nodes/require-continue-on-fail': "error";
245
+ '@n8n/community-nodes/require-node-api-error': "error";
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";
219
249
  };
220
250
  };
221
251
  };
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;CA0DE,CAAC;AAE1C,QAAA,MAAM,iBAAiB;;;;;;;;;;;2BA5DN,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;CA4DiC,CAAC;AAEzE,QAAA,MAAM,uBAAuB;;;;;;;;;;;2BA9DZ,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAAtB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;CA8DU,CAAC;AAClD,eAAe,iBAAiB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,uBAAuB,EAAE,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,15 +27,20 @@ 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',
33
34
  '@n8n/community-nodes/credential-documentation-url': 'error',
34
- '@n8n/community-nodes/node-class-description-icon-missing': 'error',
35
35
  '@n8n/community-nodes/cred-class-field-icon-missing': 'error',
36
36
  '@n8n/community-nodes/node-connection-type-literal': 'error',
37
37
  '@n8n/community-nodes/missing-paired-item': 'error',
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',
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',
39
44
  },
40
45
  },
41
46
  recommendedWithoutN8nCloudSupport: {
@@ -53,15 +58,20 @@ const configs = {
53
58
  '@n8n/community-nodes/no-credential-reuse': 'error',
54
59
  '@n8n/community-nodes/no-forbidden-lifecycle-scripts': 'error',
55
60
  '@n8n/community-nodes/no-http-request-with-manual-auth': 'error',
61
+ '@n8n/community-nodes/no-overrides-field': 'error',
56
62
  '@n8n/community-nodes/icon-validation': 'error',
57
63
  '@n8n/community-nodes/options-sorted-alphabetically': 'warn',
58
64
  '@n8n/community-nodes/credential-documentation-url': 'error',
59
65
  '@n8n/community-nodes/resource-operation-pattern': 'warn',
60
- '@n8n/community-nodes/node-class-description-icon-missing': 'error',
61
66
  '@n8n/community-nodes/cred-class-field-icon-missing': 'error',
62
67
  '@n8n/community-nodes/node-connection-type-literal': 'error',
63
68
  '@n8n/community-nodes/missing-paired-item': 'error',
69
+ '@n8n/community-nodes/require-community-node-keyword': 'warn',
64
70
  '@n8n/community-nodes/require-continue-on-fail': 'error',
71
+ '@n8n/community-nodes/require-node-api-error': 'error',
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',
65
75
  },
66
76
  },
67
77
  };
@@ -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,0DAA0D,EAAE,OAAO;YACnE,oDAAoD,EAAE,OAAO;YAC7D,mDAAmD,EAAE,OAAO;YAC5D,0CAA0C,EAAE,OAAO;YACnD,+CAA+C,EAAE,OAAO;SACxD;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,sCAAsC,EAAE,OAAO;YAC/C,oDAAoD,EAAE,MAAM;YAC5D,mDAAmD,EAAE,OAAO;YAC5D,iDAAiD,EAAE,MAAM;YACzD,0DAA0D,EAAE,OAAO;YACnE,oDAAoD,EAAE,OAAO;YAC7D,mDAAmD,EAAE,OAAO;YAC5D,0CAA0C,EAAE,OAAO;YACnD,+CAA+C,EAAE,OAAO;SACxD;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"}
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"}
@@ -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", [{
@@ -21,6 +22,11 @@ export declare const rules: {
21
22
  'cred-class-field-icon-missing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingIcon" | "addPlaceholder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
22
23
  'node-connection-type-literal': import("@typescript-eslint/utils/ts-eslint").RuleModule<"stringLiteralInInputs" | "stringLiteralInOutputs" | "unknownStringLiteralInInputs" | "unknownStringLiteralInOutputs", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
23
24
  'missing-paired-item': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPairedItem", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
25
+ 'require-community-node-keyword': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingKeyword" | "missingKeywordsArray", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
24
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>;
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>;
25
31
  };
26
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;CAqBuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AA6BA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BuB,CAAC"}
@@ -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';
@@ -16,8 +17,13 @@ import { NodeConnectionTypeLiteralRule } from './node-connection-type-literal.js
16
17
  import { NodeUsableAsToolRule } from './node-usable-as-tool.js';
17
18
  import { OptionsSortedAlphabeticallyRule } from './options-sorted-alphabetically.js';
18
19
  import { PackageNameConventionRule } from './package-name-convention.js';
20
+ import { RequireCommunityNodeKeywordRule } from './require-community-node-keyword.js';
19
21
  import { RequireContinueOnFailRule } from './require-continue-on-fail.js';
22
+ import { RequireNodeApiErrorRule } from './require-node-api-error.js';
23
+ import { RequireNodeDescriptionFieldsRule } from './require-node-description-fields.js';
20
24
  import { ResourceOperationPatternRule } from './resource-operation-pattern.js';
25
+ import { ValidPeerDependenciesRule } from './valid-peer-dependencies.js';
26
+ import { WebhookLifecycleCompleteRule } from './webhook-lifecycle-complete.js';
21
27
  export const rules = {
22
28
  'ai-node-package-json': AiNodePackageJsonRule,
23
29
  'no-restricted-globals': NoRestrictedGlobalsRule,
@@ -31,6 +37,7 @@ export const rules = {
31
37
  'no-credential-reuse': NoCredentialReuseRule,
32
38
  'no-forbidden-lifecycle-scripts': NoForbiddenLifecycleScriptsRule,
33
39
  'no-http-request-with-manual-auth': NoHttpRequestWithManualAuthRule,
40
+ 'no-overrides-field': NoOverridesFieldRule,
34
41
  'icon-validation': IconValidationRule,
35
42
  'resource-operation-pattern': ResourceOperationPatternRule,
36
43
  'credential-documentation-url': CredentialDocumentationUrlRule,
@@ -38,6 +45,11 @@ export const rules = {
38
45
  'cred-class-field-icon-missing': CredClassFieldIconMissingRule,
39
46
  'node-connection-type-literal': NodeConnectionTypeLiteralRule,
40
47
  'missing-paired-item': MissingPairedItemRule,
48
+ 'require-community-node-keyword': RequireCommunityNodeKeywordRule,
41
49
  'require-continue-on-fail': RequireContinueOnFailRule,
50
+ 'require-node-api-error': RequireNodeApiErrorRule,
51
+ 'require-node-description-fields': RequireNodeDescriptionFieldsRule,
52
+ 'valid-peer-dependencies': ValidPeerDependenciesRule,
53
+ 'webhook-lifecycle-complete': WebhookLifecycleCompleteRule,
42
54
  };
43
55
  //# sourceMappingURL=index.js.map
@@ -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,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,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,0BAA0B,EAAE,yBAAyB;CACb,CAAC"}
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,2 @@
1
+ export declare const NoOverridesFieldRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"overridesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
2
+ //# sourceMappingURL=no-overrides-field.d.ts.map
@@ -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"}
@@ -1,2 +1,3 @@
1
+ /** @deprecated Use `require-node-description-fields` instead. */
1
2
  export declare const NodeClassDescriptionIconMissingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingIcon" | "addPlaceholder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
2
3
  //# sourceMappingURL=node-class-description-icon-missing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-class-description-icon-missing.d.ts","sourceRoot":"","sources":["../../src/rules/node-class-description-icon-missing.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,mCAAmC,mKA4D9C,CAAC"}
1
+ {"version":3,"file":"node-class-description-icon-missing.d.ts","sourceRoot":"","sources":["../../src/rules/node-class-description-icon-missing.ts"],"names":[],"mappings":"AAUA,iEAAiE;AACjE,eAAO,MAAM,mCAAmC,mKAiE9C,CAAC"}
@@ -1,11 +1,16 @@
1
1
  import { TSESTree } from '@typescript-eslint/utils';
2
2
  import { isNodeTypeClass, findClassProperty, findObjectProperty, isFileType, createRule, } from '../utils/index.js';
3
+ /** @deprecated Use `require-node-description-fields` instead. */
3
4
  export const NodeClassDescriptionIconMissingRule = createRule({
4
5
  name: 'node-class-description-icon-missing',
5
6
  meta: {
6
7
  type: 'problem',
8
+ deprecated: {
9
+ message: 'Use require-node-description-fields instead.',
10
+ replacedBy: [{ rule: { name: 'require-node-description-fields' } }],
11
+ },
7
12
  docs: {
8
- description: 'Node class description must have an `icon` property defined',
13
+ description: 'Node class description must have an `icon` property defined. Deprecated: use `require-node-description-fields` instead.',
9
14
  },
10
15
  messages: {
11
16
  missingIcon: 'Node class description is missing required `icon` property',
@@ -1 +1 @@
1
- {"version":3,"file":"node-class-description-icon-missing.js","sourceRoot":"","sources":["../../src/rules/node-class-description-icon-missing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,UAAU,GACV,MAAM,mBAAmB,CAAC;AAE3B,MAAM,CAAC,MAAM,mCAAmC,GAAG,UAAU,CAAC;IAC7D,IAAI,EAAE,qCAAqC;IAC3C,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACL,WAAW,EAAE,6DAA6D;SAC1E;QACD,QAAQ,EAAE;YACT,WAAW,EAAE,4DAA4D;YACzE,cAAc,EAAE,oCAAoC;SACpD;QACD,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,IAAI;KACpB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACb,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO;YACN,gBAAgB,CAAC,IAAI;gBACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,OAAO;gBACR,CAAC;gBAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gBACnE,IACC,CAAC,mBAAmB,EAAE,KAAK;oBAC3B,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC1E,CAAC;oBACF,OAAO;gBACR,CAAC;gBAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC;gBACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gBAClE,IAAI,YAAY,EAAE,CAAC;oBAClB,OAAO;gBACR,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACd,IAAI;oBACJ,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE;wBACR;4BACC,SAAS,EAAE,gBAAgB;4BAC3B,GAAG,CAAC,KAAK;gCACR,MAAM,YAAY,GACjB,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCACrE,IAAI,YAAY,EAAE,CAAC;oCAClB,OAAO,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;gCAC9E,CAAC;gCACD,OAAO,IAAI,CAAC;4BACb,CAAC;yBACD;qBACD;iBACD,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"node-class-description-icon-missing.js","sourceRoot":"","sources":["../../src/rules/node-class-description-icon-missing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EACN,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,UAAU,GACV,MAAM,mBAAmB,CAAC;AAE3B,iEAAiE;AACjE,MAAM,CAAC,MAAM,mCAAmC,GAAG,UAAU,CAAC;IAC7D,IAAI,EAAE,qCAAqC;IAC3C,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,UAAU,EAAE;YACX,OAAO,EAAE,8CAA8C;YACvD,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,iCAAiC,EAAE,EAAE,CAAC;SACnE;QACD,IAAI,EAAE;YACL,WAAW,EACV,yHAAyH;SAC1H;QACD,QAAQ,EAAE;YACT,WAAW,EAAE,4DAA4D;YACzE,cAAc,EAAE,oCAAoC;SACpD;QACD,MAAM,EAAE,EAAE;QACV,cAAc,EAAE,IAAI;KACpB;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACb,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO;YACN,gBAAgB,CAAC,IAAI;gBACpB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5B,OAAO;gBACR,CAAC;gBAED,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;gBACnE,IACC,CAAC,mBAAmB,EAAE,KAAK;oBAC3B,mBAAmB,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,cAAc,CAAC,gBAAgB,EAC1E,CAAC;oBACF,OAAO;gBACR,CAAC;gBAED,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,KAAK,CAAC;gBACnD,MAAM,YAAY,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;gBAClE,IAAI,YAAY,EAAE,CAAC;oBAClB,OAAO;gBACR,CAAC;gBAED,OAAO,CAAC,MAAM,CAAC;oBACd,IAAI;oBACJ,SAAS,EAAE,aAAa;oBACxB,OAAO,EAAE;wBACR;4BACC,SAAS,EAAE,gBAAgB;4BAC3B,GAAG,CAAC,KAAK;gCACR,MAAM,YAAY,GACjB,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gCACrE,IAAI,YAAY,EAAE,CAAC;oCAClB,OAAO,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,gCAAgC,CAAC,CAAC;gCAC9E,CAAC;gCACD,OAAO,IAAI,CAAC;4BACb,CAAC;yBACD;qBACD;iBACD,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const RequireCommunityNodeKeywordRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingKeyword" | "missingKeywordsArray", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
2
+ //# sourceMappingURL=require-community-node-keyword.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-community-node-keyword.d.ts","sourceRoot":"","sources":["../../src/rules/require-community-node-keyword.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,+BAA+B,4KAsE1C,CAAC"}
@@ -0,0 +1,65 @@
1
+ import { AST_NODE_TYPES } from '@typescript-eslint/utils';
2
+ import { createRule, findJsonProperty } from '../utils/index.js';
3
+ const REQUIRED_KEYWORD = 'n8n-community-node-package';
4
+ export const RequireCommunityNodeKeywordRule = createRule({
5
+ name: 'require-community-node-keyword',
6
+ meta: {
7
+ type: 'problem',
8
+ docs: {
9
+ description: 'Require the "n8n-community-node-package" keyword in community node package.json',
10
+ },
11
+ fixable: 'code',
12
+ messages: {
13
+ missingKeyword: `The "keywords" array must include "${REQUIRED_KEYWORD}". This keyword is required for n8n to discover community node packages.`,
14
+ missingKeywordsArray: `The package.json must have a "keywords" array containing "${REQUIRED_KEYWORD}".`,
15
+ },
16
+ schema: [],
17
+ },
18
+ defaultOptions: [],
19
+ create(context) {
20
+ if (!context.filename.endsWith('package.json')) {
21
+ return {};
22
+ }
23
+ return {
24
+ ObjectExpression(node) {
25
+ if (node.parent?.type !== AST_NODE_TYPES.ExpressionStatement) {
26
+ return;
27
+ }
28
+ const keywordsProp = findJsonProperty(node, 'keywords');
29
+ if (!keywordsProp) {
30
+ context.report({
31
+ node,
32
+ messageId: 'missingKeywordsArray',
33
+ fix(fixer) {
34
+ const lastProp = node.properties[node.properties.length - 1];
35
+ if (!lastProp) {
36
+ return fixer.replaceText(node, `{ "keywords": ["${REQUIRED_KEYWORD}"] }`);
37
+ }
38
+ return fixer.insertTextAfter(lastProp, `, "keywords": ["${REQUIRED_KEYWORD}"]`);
39
+ },
40
+ });
41
+ return;
42
+ }
43
+ if (keywordsProp.value.type !== AST_NODE_TYPES.ArrayExpression) {
44
+ return;
45
+ }
46
+ const keywordsArray = keywordsProp.value;
47
+ const hasRequiredKeyword = keywordsArray.elements.some((element) => element?.type === AST_NODE_TYPES.Literal && element.value === REQUIRED_KEYWORD);
48
+ if (!hasRequiredKeyword) {
49
+ context.report({
50
+ node: keywordsProp,
51
+ messageId: 'missingKeyword',
52
+ fix(fixer) {
53
+ const lastElement = keywordsArray.elements[keywordsArray.elements.length - 1];
54
+ if (!lastElement) {
55
+ return fixer.replaceText(keywordsArray, `["${REQUIRED_KEYWORD}"]`);
56
+ }
57
+ return fixer.insertTextAfter(lastElement, `, "${REQUIRED_KEYWORD}"`);
58
+ },
59
+ });
60
+ }
61
+ },
62
+ };
63
+ },
64
+ });
65
+ //# sourceMappingURL=require-community-node-keyword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"require-community-node-keyword.js","sourceRoot":"","sources":["../../src/rules/require-community-node-keyword.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEjE,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AAEtD,MAAM,CAAC,MAAM,+BAA+B,GAAG,UAAU,CAAC;IACzD,IAAI,EAAE,gCAAgC;IACtC,IAAI,EAAE;QACL,IAAI,EAAE,SAAS;QACf,IAAI,EAAE;YACL,WAAW,EACV,iFAAiF;SAClF;QACD,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE;YACT,cAAc,EAAE,sCAAsC,gBAAgB,0EAA0E;YAChJ,oBAAoB,EAAE,6DAA6D,gBAAgB,IAAI;SACvG;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,YAAY,GAAG,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBAExD,IAAI,CAAC,YAAY,EAAE,CAAC;oBACnB,OAAO,CAAC,MAAM,CAAC;wBACd,IAAI;wBACJ,SAAS,EAAE,sBAAsB;wBACjC,GAAG,CAAC,KAAK;4BACR,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACf,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,mBAAmB,gBAAgB,MAAM,CAAC,CAAC;4BAC3E,CAAC;4BACD,OAAO,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,gBAAgB,IAAI,CAAC,CAAC;wBACjF,CAAC;qBACD,CAAC,CAAC;oBACH,OAAO;gBACR,CAAC;gBAED,IAAI,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,eAAe,EAAE,CAAC;oBAChE,OAAO;gBACR,CAAC;gBAED,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,CAAC;gBACzC,MAAM,kBAAkB,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CACrD,CAAC,OAAO,EAAE,EAAE,CACX,OAAO,EAAE,IAAI,KAAK,cAAc,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,gBAAgB,CAC/E,CAAC;gBAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACzB,OAAO,CAAC,MAAM,CAAC;wBACd,IAAI,EAAE,YAAY;wBAClB,SAAS,EAAE,gBAAgB;wBAC3B,GAAG,CAAC,KAAK;4BACR,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BAC9E,IAAI,CAAC,WAAW,EAAE,CAAC;gCAClB,OAAO,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,KAAK,gBAAgB,IAAI,CAAC,CAAC;4BACpE,CAAC;4BACD,OAAO,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,gBAAgB,GAAG,CAAC,CAAC;wBACtE,CAAC;qBACD,CAAC,CAAC;gBACJ,CAAC;YACF,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"}