@n8n/eslint-plugin-community-nodes 0.32.0 → 0.33.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 (169) hide show
  1. package/README.md +1 -1
  2. package/dist/rules/ai-node-package-json.d.ts +3 -1
  3. package/dist/rules/ai-node-package-json.d.ts.map +1 -1
  4. package/dist/rules/cred-class-field-icon-missing.d.ts +3 -1
  5. package/dist/rules/cred-class-field-icon-missing.d.ts.map +1 -1
  6. package/dist/rules/cred-class-oauth2-naming.d.ts +3 -1
  7. package/dist/rules/cred-class-oauth2-naming.d.ts.map +1 -1
  8. package/dist/rules/credential-documentation-url.d.ts +3 -1
  9. package/dist/rules/credential-documentation-url.d.ts.map +1 -1
  10. package/dist/rules/credential-password-field.d.ts +3 -1
  11. package/dist/rules/credential-password-field.d.ts.map +1 -1
  12. package/dist/rules/credential-password-field.js +1 -2
  13. package/dist/rules/credential-test-required.d.ts +3 -1
  14. package/dist/rules/credential-test-required.d.ts.map +1 -1
  15. package/dist/rules/credential-unnecessary-password.d.ts +3 -1
  16. package/dist/rules/credential-unnecessary-password.d.ts.map +1 -1
  17. package/dist/rules/credential-unnecessary-password.js +1 -2
  18. package/dist/rules/icon-prefer-themed-variants.d.ts +3 -1
  19. package/dist/rules/icon-prefer-themed-variants.d.ts.map +1 -1
  20. package/dist/rules/icon-validation.d.ts +3 -1
  21. package/dist/rules/icon-validation.d.ts.map +1 -1
  22. package/dist/rules/icon-validation.js +5 -15
  23. package/dist/rules/index.d.ts +132 -44
  24. package/dist/rules/index.d.ts.map +1 -1
  25. package/dist/rules/missing-paired-item.d.ts +3 -1
  26. package/dist/rules/missing-paired-item.d.ts.map +1 -1
  27. package/dist/rules/n8n-object-validation.d.ts +3 -1
  28. package/dist/rules/n8n-object-validation.d.ts.map +1 -1
  29. package/dist/rules/no-builder-hint-leakage.d.ts +3 -1
  30. package/dist/rules/no-builder-hint-leakage.d.ts.map +1 -1
  31. package/dist/rules/no-credential-reuse.d.ts +3 -1
  32. package/dist/rules/no-credential-reuse.d.ts.map +1 -1
  33. package/dist/rules/no-dangerous-functions.d.ts +3 -1
  34. package/dist/rules/no-dangerous-functions.d.ts.map +1 -1
  35. package/dist/rules/no-dead-files.d.ts +3 -1
  36. package/dist/rules/no-dead-files.d.ts.map +1 -1
  37. package/dist/rules/no-deprecated-workflow-functions.d.ts +3 -1
  38. package/dist/rules/no-deprecated-workflow-functions.d.ts.map +1 -1
  39. package/dist/rules/no-emoji-in-options.d.ts +3 -1
  40. package/dist/rules/no-emoji-in-options.d.ts.map +1 -1
  41. package/dist/rules/no-forbidden-lifecycle-scripts.d.ts +3 -1
  42. package/dist/rules/no-forbidden-lifecycle-scripts.d.ts.map +1 -1
  43. package/dist/rules/no-forbidden-lifecycle-scripts.js +1 -1
  44. package/dist/rules/no-hardcoded-secrets.d.ts +3 -1
  45. package/dist/rules/no-hardcoded-secrets.d.ts.map +1 -1
  46. package/dist/rules/no-http-request-with-manual-auth.d.ts +3 -1
  47. package/dist/rules/no-http-request-with-manual-auth.d.ts.map +1 -1
  48. package/dist/rules/no-overrides-field.d.ts +3 -1
  49. package/dist/rules/no-overrides-field.d.ts.map +1 -1
  50. package/dist/rules/no-restricted-globals.d.ts +3 -1
  51. package/dist/rules/no-restricted-globals.d.ts.map +1 -1
  52. package/dist/rules/no-restricted-imports.d.ts +3 -1
  53. package/dist/rules/no-restricted-imports.d.ts.map +1 -1
  54. package/dist/rules/no-runtime-dependencies.d.ts +3 -1
  55. package/dist/rules/no-runtime-dependencies.d.ts.map +1 -1
  56. package/dist/rules/no-silent-error-swallowing.d.ts +3 -1
  57. package/dist/rules/no-silent-error-swallowing.d.ts.map +1 -1
  58. package/dist/rules/no-template-placeholders.d.ts +3 -1
  59. package/dist/rules/no-template-placeholders.d.ts.map +1 -1
  60. package/dist/rules/no-unsafe-connection-type-cast.d.ts +3 -1
  61. package/dist/rules/no-unsafe-connection-type-cast.d.ts.map +1 -1
  62. package/dist/rules/node-class-description-icon-missing.d.ts +3 -1
  63. package/dist/rules/node-class-description-icon-missing.d.ts.map +1 -1
  64. package/dist/rules/node-class-description-icon-missing.js +1 -2
  65. package/dist/rules/node-connection-type-literal.d.ts +3 -1
  66. package/dist/rules/node-connection-type-literal.d.ts.map +1 -1
  67. package/dist/rules/node-registration-complete.d.ts +3 -1
  68. package/dist/rules/node-registration-complete.d.ts.map +1 -1
  69. package/dist/rules/node-usable-as-tool.d.ts +3 -1
  70. package/dist/rules/node-usable-as-tool.d.ts.map +1 -1
  71. package/dist/rules/package-name-convention.d.ts +3 -1
  72. package/dist/rules/package-name-convention.d.ts.map +1 -1
  73. package/dist/rules/require-files-array.d.ts +3 -1
  74. package/dist/rules/require-files-array.d.ts.map +1 -1
  75. package/dist/rules/require-homepage.d.ts +3 -1
  76. package/dist/rules/require-homepage.d.ts.map +1 -1
  77. package/dist/rules/require-node-api-error.d.ts +3 -1
  78. package/dist/rules/require-node-api-error.d.ts.map +1 -1
  79. package/dist/rules/require-node-description-fields.d.ts +3 -1
  80. package/dist/rules/require-node-description-fields.d.ts.map +1 -1
  81. package/dist/rules/require-node-description-fields.js +1 -2
  82. package/dist/rules/require-version.d.ts +3 -1
  83. package/dist/rules/require-version.d.ts.map +1 -1
  84. package/dist/rules/resource-operation-pattern.d.ts +3 -1
  85. package/dist/rules/resource-operation-pattern.d.ts.map +1 -1
  86. package/dist/rules/resource-operation-pattern.js +3 -4
  87. package/dist/rules/trigger-node-conventions.d.ts +3 -1
  88. package/dist/rules/trigger-node-conventions.d.ts.map +1 -1
  89. package/dist/rules/valid-author.d.ts +3 -1
  90. package/dist/rules/valid-author.d.ts.map +1 -1
  91. package/dist/rules/valid-author.js +1 -1
  92. package/dist/rules/valid-credential-references.d.ts +3 -1
  93. package/dist/rules/valid-credential-references.d.ts.map +1 -1
  94. package/dist/rules/valid-description.d.ts +3 -1
  95. package/dist/rules/valid-description.d.ts.map +1 -1
  96. package/dist/rules/valid-peer-dependencies.d.ts +3 -1
  97. package/dist/rules/valid-peer-dependencies.d.ts.map +1 -1
  98. package/dist/rules/webhook-lifecycle-complete.d.ts +3 -1
  99. package/dist/rules/webhook-lifecycle-complete.d.ts.map +1 -1
  100. package/dist/utils/file-utils.d.ts.map +1 -1
  101. package/dist/utils/file-utils.js +1 -2
  102. package/dist/utils/rule-creator.d.ts +3 -1
  103. package/dist/utils/rule-creator.d.ts.map +1 -1
  104. package/docs/rules/icon-prefer-themed-variants.md +2 -2
  105. package/docs/rules/icon-validation.md +11 -11
  106. package/eslint.config.mjs +2 -3
  107. package/package.json +7 -7
  108. package/src/rules/credential-password-field.ts +1 -4
  109. package/src/rules/credential-unnecessary-password.ts +1 -4
  110. package/src/rules/icon-validation.test.ts +19 -21
  111. package/src/rules/icon-validation.ts +5 -20
  112. package/src/rules/no-forbidden-lifecycle-scripts.ts +1 -1
  113. package/src/rules/node-class-description-icon-missing.ts +1 -4
  114. package/src/rules/require-node-description-fields.ts +1 -4
  115. package/src/rules/resource-operation-pattern.ts +3 -6
  116. package/src/rules/valid-author.ts +1 -1
  117. package/src/utils/file-utils.ts +3 -6
  118. package/dist/plugin.js.map +0 -1
  119. package/dist/rules/ai-node-package-json.js.map +0 -1
  120. package/dist/rules/cred-class-field-icon-missing.js.map +0 -1
  121. package/dist/rules/cred-class-oauth2-naming.js.map +0 -1
  122. package/dist/rules/credential-documentation-url.js.map +0 -1
  123. package/dist/rules/credential-password-field.js.map +0 -1
  124. package/dist/rules/credential-test-required.js.map +0 -1
  125. package/dist/rules/credential-unnecessary-password.js.map +0 -1
  126. package/dist/rules/icon-prefer-themed-variants.js.map +0 -1
  127. package/dist/rules/icon-validation.js.map +0 -1
  128. package/dist/rules/index.js.map +0 -1
  129. package/dist/rules/missing-paired-item.js.map +0 -1
  130. package/dist/rules/n8n-object-validation.js.map +0 -1
  131. package/dist/rules/no-builder-hint-leakage.js.map +0 -1
  132. package/dist/rules/no-credential-reuse.js.map +0 -1
  133. package/dist/rules/no-dangerous-functions.js.map +0 -1
  134. package/dist/rules/no-dead-files.js.map +0 -1
  135. package/dist/rules/no-deprecated-workflow-functions.js.map +0 -1
  136. package/dist/rules/no-emoji-in-options.js.map +0 -1
  137. package/dist/rules/no-forbidden-lifecycle-scripts.js.map +0 -1
  138. package/dist/rules/no-hardcoded-secrets.js.map +0 -1
  139. package/dist/rules/no-http-request-with-manual-auth.js.map +0 -1
  140. package/dist/rules/no-overrides-field.js.map +0 -1
  141. package/dist/rules/no-restricted-globals.js.map +0 -1
  142. package/dist/rules/no-restricted-imports.js.map +0 -1
  143. package/dist/rules/no-runtime-dependencies.js.map +0 -1
  144. package/dist/rules/no-silent-error-swallowing.js.map +0 -1
  145. package/dist/rules/no-template-placeholders.js.map +0 -1
  146. package/dist/rules/no-unsafe-connection-type-cast.js.map +0 -1
  147. package/dist/rules/node-class-description-icon-missing.js.map +0 -1
  148. package/dist/rules/node-connection-type-literal.js.map +0 -1
  149. package/dist/rules/node-registration-complete.js.map +0 -1
  150. package/dist/rules/node-usable-as-tool.js.map +0 -1
  151. package/dist/rules/package-name-convention.js.map +0 -1
  152. package/dist/rules/require-files-array.js.map +0 -1
  153. package/dist/rules/require-homepage.js.map +0 -1
  154. package/dist/rules/require-node-api-error.js.map +0 -1
  155. package/dist/rules/require-node-description-fields.js.map +0 -1
  156. package/dist/rules/require-version.js.map +0 -1
  157. package/dist/rules/resource-operation-pattern.js.map +0 -1
  158. package/dist/rules/trigger-node-conventions.js.map +0 -1
  159. package/dist/rules/valid-author.js.map +0 -1
  160. package/dist/rules/valid-credential-references.js.map +0 -1
  161. package/dist/rules/valid-description.js.map +0 -1
  162. package/dist/rules/valid-peer-dependencies.js.map +0 -1
  163. package/dist/rules/webhook-lifecycle-complete.js.map +0 -1
  164. package/dist/utils/ast-utils.js.map +0 -1
  165. package/dist/utils/constants.js.map +0 -1
  166. package/dist/utils/credential-fields.js.map +0 -1
  167. package/dist/utils/file-utils.js.map +0 -1
  168. package/dist/utils/index.js.map +0 -1
  169. package/dist/utils/rule-creator.js.map +0 -1
package/README.md CHANGED
@@ -54,7 +54,7 @@ export default [
54
54
  | [credential-test-required](docs/rules/credential-test-required.md) | Ensure credentials have a credential test | ✅ ☑️ | | | 💡 | |
55
55
  | [credential-unnecessary-password](docs/rules/credential-unnecessary-password.md) | Warn when a credential field with no sensitive name uses typeOptions.password = true | | ✅ ☑️ | | | |
56
56
  | [icon-prefer-themed-variants](docs/rules/icon-prefer-themed-variants.md) | Encourage node and credential icons to provide light/dark variants instead of a single icon file | | ✅ ☑️ | | | |
57
- | [icon-validation](docs/rules/icon-validation.md) | Validate node and credential icon files exist, use the file: protocol, and that light/dark icons are different | ✅ ☑️ | | | 💡 | |
57
+ | [icon-validation](docs/rules/icon-validation.md) | Validate node and credential icon files exist and use the file: protocol | ✅ ☑️ | | | 💡 | |
58
58
  | [missing-paired-item](docs/rules/missing-paired-item.md) | Require pairedItem on INodeExecutionData objects in execute() methods to preserve item linking. | ✅ ☑️ | | | | |
59
59
  | [n8n-object-validation](docs/rules/n8n-object-validation.md) | Validate the structure of the "n8n" object in community node package.json (required keys, types, and dist/ paths) | ✅ ☑️ | | | | |
60
60
  | [no-builder-hint-leakage](docs/rules/no-builder-hint-leakage.md) | Disallow wire-format expression syntax (={{...}}) and NodeConnectionType string literals in builderHint texts and AI-builder prompts. Use expr() and SDK-canonical references instead. | ✅ ☑️ | | | | |
@@ -1,2 +1,4 @@
1
- export declare const AiNodePackageJsonRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidSdkVersion" | "missingPeerDep" | "missingSdkVersion" | "wrongLocation", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const AiNodePackageJsonRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidSdkVersion" | "missingPeerDep" | "missingSdkVersion" | "wrongLocation", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=ai-node-package-json.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-node-package-json.d.ts","sourceRoot":"","sources":["../../src/rules/ai-node-package-json.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,iNA2FhC,CAAC"}
1
+ {"version":3,"file":"ai-node-package-json.d.ts","sourceRoot":"","sources":["../../src/rules/ai-node-package-json.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB;;CA2FhC,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const CredClassFieldIconMissingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const CredClassFieldIconMissingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=cred-class-field-icon-missing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cred-class-field-icon-missing.d.ts","sourceRoot":"","sources":["../../src/rules/cred-class-field-icon-missing.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,6BAA6B,mKAmDxC,CAAC"}
1
+ {"version":3,"file":"cred-class-field-icon-missing.d.ts","sourceRoot":"","sources":["../../src/rules/cred-class-field-icon-missing.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,6BAA6B;;CAmDxC,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const CredClassOAuth2NamingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"classNameMissingOAuth2" | "displayNameMissingOAuth2" | "nameMissingOAuth2", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const CredClassOAuth2NamingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"classNameMissingOAuth2" | "displayNameMissingOAuth2" | "nameMissingOAuth2", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=cred-class-oauth2-naming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cred-class-oauth2-naming.d.ts","sourceRoot":"","sources":["../../src/rules/cred-class-oauth2-naming.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,yBAAyB,8MAmFpC,CAAC"}
1
+ {"version":3,"file":"cred-class-oauth2-naming.d.ts","sourceRoot":"","sources":["../../src/rules/cred-class-oauth2-naming.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,yBAAyB;;CAmFpC,CAAC"}
@@ -2,6 +2,8 @@ type RuleOptions = {
2
2
  allowUrls?: boolean;
3
3
  allowSlugs?: boolean;
4
4
  };
5
- export declare const CredentialDocumentationUrlRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidDocumentationUrl", [RuleOptions], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
5
+ export declare const CredentialDocumentationUrlRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidDocumentationUrl", [RuleOptions], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
6
+ name: string;
7
+ };
6
8
  export {};
7
9
  //# sourceMappingURL=credential-documentation-url.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credential-documentation-url.d.ts","sourceRoot":"","sources":["../../src/rules/credential-documentation-url.ts"],"names":[],"mappings":"AAOA,KAAK,WAAW,GAAG;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA+CF,eAAO,MAAM,8BAA8B,uKAuEzC,CAAC"}
1
+ {"version":3,"file":"credential-documentation-url.d.ts","sourceRoot":"","sources":["../../src/rules/credential-documentation-url.ts"],"names":[],"mappings":"AAOA,KAAK,WAAW,GAAG;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AA+CF,eAAO,MAAM,8BAA8B;;CAuEzC,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const CredentialPasswordFieldRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const CredentialPasswordFieldRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=credential-password-field.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credential-password-field.d.ts","sourceRoot":"","sources":["../../src/rules/credential-password-field.ts"],"names":[],"mappings":"AAgDA,eAAO,MAAM,2BAA2B,0JAwDtC,CAAC"}
1
+ {"version":3,"file":"credential-password-field.d.ts","sourceRoot":"","sources":["../../src/rules/credential-password-field.ts"],"names":[],"mappings":"AAgDA,eAAO,MAAM,2BAA2B;;CAqDtC,CAAC"}
@@ -50,8 +50,7 @@ export const CredentialPasswordFieldRule = createRule({
50
50
  return;
51
51
  }
52
52
  const propertiesProperty = findClassProperty(node, 'properties');
53
- if (!propertiesProperty?.value ||
54
- propertiesProperty.value.type !== TSESTree.AST_NODE_TYPES.ArrayExpression) {
53
+ if (propertiesProperty?.value?.type !== TSESTree.AST_NODE_TYPES.ArrayExpression) {
55
54
  return;
56
55
  }
57
56
  for (const element of propertiesProperty.value.elements) {
@@ -1,2 +1,4 @@
1
- export declare const CredentialTestRequiredRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addTemplate" | "missingCredentialTest", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const CredentialTestRequiredRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addTemplate" | "missingCredentialTest", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=credential-test-required.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credential-test-required.d.ts","sourceRoot":"","sources":["../../src/rules/credential-test-required.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,0BAA0B,0KAyHrC,CAAC"}
1
+ {"version":3,"file":"credential-test-required.d.ts","sourceRoot":"","sources":["../../src/rules/credential-test-required.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,0BAA0B;;CAyHrC,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const CredentialUnnecessaryPasswordRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unnecessaryPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const CredentialUnnecessaryPasswordRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unnecessaryPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=credential-unnecessary-password.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credential-unnecessary-password.d.ts","sourceRoot":"","sources":["../../src/rules/credential-unnecessary-password.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,iCAAiC,8JA2D5C,CAAC"}
1
+ {"version":3,"file":"credential-unnecessary-password.d.ts","sourceRoot":"","sources":["../../src/rules/credential-unnecessary-password.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,iCAAiC;;CAwD5C,CAAC"}
@@ -20,8 +20,7 @@ export const CredentialUnnecessaryPasswordRule = createRule({
20
20
  return;
21
21
  }
22
22
  const propertiesProperty = findClassProperty(node, 'properties');
23
- if (!propertiesProperty?.value ||
24
- propertiesProperty.value.type !== TSESTree.AST_NODE_TYPES.ArrayExpression) {
23
+ if (propertiesProperty?.value?.type !== TSESTree.AST_NODE_TYPES.ArrayExpression) {
25
24
  return;
26
25
  }
27
26
  for (const element of propertiesProperty.value.elements) {
@@ -1,2 +1,4 @@
1
- export declare const IconPreferThemedVariantsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingThemedVariants", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const IconPreferThemedVariantsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingThemedVariants", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=icon-prefer-themed-variants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-prefer-themed-variants.d.ts","sourceRoot":"","sources":["../../src/rules/icon-prefer-themed-variants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,4BAA4B,0JAqDvC,CAAC"}
1
+ {"version":3,"file":"icon-prefer-themed-variants.d.ts","sourceRoot":"","sources":["../../src/rules/icon-prefer-themed-variants.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,4BAA4B;;CAqDvC,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const IconValidationRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addFileProtocol" | "addPlaceholder" | "iconFileNotFound" | "invalidIconPath" | "lightDarkSame" | "missingIcon" | "similarIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const IconValidationRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addFileProtocol" | "addPlaceholder" | "iconFileNotFound" | "invalidIconPath" | "missingIcon" | "similarIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=icon-validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"icon-validation.d.ts","sourceRoot":"","sources":["../../src/rules/icon-validation.ts"],"names":[],"mappings":"AA0BA,eAAO,MAAM,kBAAkB,kQA4L7B,CAAC"}
1
+ {"version":3,"file":"icon-validation.d.ts","sourceRoot":"","sources":["../../src/rules/icon-validation.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,kBAAkB;;CA8K7B,CAAC"}
@@ -3,7 +3,6 @@ import { dirname } from 'node:path';
3
3
  import { isNodeTypeClass, isCredentialTypeClass, findClassProperty, findObjectProperty, getStringLiteralValue, validateIconPath, findSimilarIconFiles, isFileType, createRule, } from '../utils/index.js';
4
4
  const messages = {
5
5
  iconFileNotFound: 'Icon file "{{ iconPath }}" does not exist',
6
- lightDarkSame: 'Light and dark icons cannot be the same file. Both point to "{{ iconPath }}"',
7
6
  invalidIconPath: 'Icon path "{{ iconPath }}" must use file: protocol and be a string',
8
7
  missingIcon: 'Node/Credential class must have an icon property defined',
9
8
  addPlaceholder: 'Add icon property with placeholder',
@@ -15,7 +14,7 @@ export const IconValidationRule = createRule({
15
14
  meta: {
16
15
  type: 'problem',
17
16
  docs: {
18
- description: 'Validate node and credential icon files exist, use the file: protocol, and that light/dark icons are different',
17
+ description: 'Validate node and credential icon files exist and use the file: protocol',
19
18
  },
20
19
  messages,
21
20
  schema: [],
@@ -88,20 +87,12 @@ export const IconValidationRule = createRule({
88
87
  else if (iconValue.type === TSESTree.AST_NODE_TYPES.ObjectExpression) {
89
88
  const lightProperty = findObjectProperty(iconValue, 'light');
90
89
  const darkProperty = findObjectProperty(iconValue, 'dark');
91
- const lightPath = lightProperty ? getStringLiteralValue(lightProperty.value) : null;
92
- const darkPath = darkProperty ? getStringLiteralValue(darkProperty.value) : null;
90
+ // A theme-agnostic file can fill both slots, so only each path is checked
93
91
  if (lightProperty) {
94
- validateIcon(lightPath, lightProperty.value);
92
+ validateIcon(getStringLiteralValue(lightProperty.value), lightProperty.value);
95
93
  }
96
94
  if (darkProperty) {
97
- validateIcon(darkPath, darkProperty.value);
98
- }
99
- if (lightPath && darkPath && lightPath === darkPath && lightProperty) {
100
- context.report({
101
- node: lightProperty.value,
102
- messageId: 'lightDarkSame',
103
- data: { iconPath: lightPath.replace(/^file:/, '') },
104
- });
95
+ validateIcon(getStringLiteralValue(darkProperty.value), darkProperty.value);
105
96
  }
106
97
  }
107
98
  };
@@ -114,8 +105,7 @@ export const IconValidationRule = createRule({
114
105
  }
115
106
  if (isNodeClass) {
116
107
  const descriptionProperty = findClassProperty(node, 'description');
117
- if (!descriptionProperty?.value ||
118
- descriptionProperty.value.type !== TSESTree.AST_NODE_TYPES.ObjectExpression) {
108
+ if (descriptionProperty?.value?.type !== TSESTree.AST_NODE_TYPES.ObjectExpression) {
119
109
  context.report({
120
110
  node,
121
111
  messageId: 'missingIcon',
@@ -1,52 +1,140 @@
1
1
  export declare const rules: {
2
- 'ai-node-package-json': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidSdkVersion" | "missingPeerDep" | "missingSdkVersion" | "wrongLocation", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
3
- 'no-restricted-globals': import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedGlobal" | "restrictedGlobalWithHint", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
4
- 'no-restricted-imports': import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedDynamicImport" | "restrictedImport" | "restrictedRequire", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
5
- 'credential-password-field': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
6
- 'no-deprecated-workflow-functions': import("@typescript-eslint/utils/ts-eslint").RuleModule<"deprecatedFunction" | "deprecatedRequestFunction" | "deprecatedType" | "deprecatedWithoutReplacement" | "suggestReplaceFunction" | "suggestReplaceType", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
7
- 'no-emoji-in-options': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emojiInOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
8
- 'node-usable-as-tool': import("@typescript-eslint/utils/ts-eslint").RuleModule<"aiOnlyUsableAsTool" | "missingUsableAsTool" | "triggerUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
9
- 'package-name-convention': import("@typescript-eslint/utils/ts-eslint").RuleModule<"defaultPlaceholderName" | "invalidPackageName" | "missingName" | "renameTo", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
10
- 'credential-test-required': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addTemplate" | "missingCredentialTest", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
11
- 'credential-unnecessary-password': import("@typescript-eslint/utils/ts-eslint").RuleModule<"unnecessaryPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
12
- 'no-credential-reuse': import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotInPackage" | "didYouMean" | "useAvailable", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
13
- 'no-dangerous-functions': import("@typescript-eslint/utils/ts-eslint").RuleModule<"noChildProcess" | "noEval" | "noFunctionConstructor", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
14
- 'no-dead-files': import("@typescript-eslint/utils/ts-eslint").RuleModule<"deadFileFound", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
15
- 'no-forbidden-lifecycle-scripts': import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenScript", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
16
- 'no-hardcoded-secrets': import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedSecret", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
17
- 'no-http-request-with-manual-auth': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useHttpRequestWithAuthentication", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
18
- 'no-overrides-field': import("@typescript-eslint/utils/ts-eslint").RuleModule<"overridesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
19
- 'no-runtime-dependencies': import("@typescript-eslint/utils/ts-eslint").RuleModule<"runtimeDependenciesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
20
- 'no-silent-error-swallowing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyCatch" | "silentReturn", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
21
- 'no-template-placeholders': import("@typescript-eslint/utils/ts-eslint").RuleModule<"unresolvedPlaceholder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
22
- 'no-unsafe-connection-type-cast': import("@typescript-eslint/utils/ts-eslint").RuleModule<"erasingCast" | "removeCast", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
23
- 'icon-validation': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addFileProtocol" | "addPlaceholder" | "iconFileNotFound" | "invalidIconPath" | "lightDarkSame" | "missingIcon" | "similarIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
24
- 'icon-prefer-themed-variants': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingThemedVariants", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
25
- 'resource-operation-pattern': import("@typescript-eslint/utils/ts-eslint").RuleModule<"tooManyOperationsWithoutResources", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
26
- 'trigger-node-conventions': import("@typescript-eslint/utils/ts-eslint").RuleModule<"displayNameMissingTrigger" | "inputsNotEmpty" | "nameMissingSuffix", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
2
+ 'ai-node-package-json': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidSdkVersion" | "missingPeerDep" | "missingSdkVersion" | "wrongLocation", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
3
+ name: string;
4
+ };
5
+ 'no-restricted-globals': import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedGlobal" | "restrictedGlobalWithHint", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
6
+ name: string;
7
+ };
8
+ 'no-restricted-imports': import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedDynamicImport" | "restrictedImport" | "restrictedRequire", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
9
+ name: string;
10
+ };
11
+ 'credential-password-field': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
12
+ name: string;
13
+ };
14
+ 'no-deprecated-workflow-functions': import("@typescript-eslint/utils/ts-eslint").RuleModule<"deprecatedFunction" | "deprecatedRequestFunction" | "deprecatedType" | "deprecatedWithoutReplacement" | "suggestReplaceFunction" | "suggestReplaceType", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
15
+ name: string;
16
+ };
17
+ 'no-emoji-in-options': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emojiInOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
18
+ name: string;
19
+ };
20
+ 'node-usable-as-tool': import("@typescript-eslint/utils/ts-eslint").RuleModule<"aiOnlyUsableAsTool" | "missingUsableAsTool" | "triggerUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
21
+ name: string;
22
+ };
23
+ 'package-name-convention': import("@typescript-eslint/utils/ts-eslint").RuleModule<"defaultPlaceholderName" | "invalidPackageName" | "missingName" | "renameTo", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
24
+ name: string;
25
+ };
26
+ 'credential-test-required': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addTemplate" | "missingCredentialTest", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
27
+ name: string;
28
+ };
29
+ 'credential-unnecessary-password': import("@typescript-eslint/utils/ts-eslint").RuleModule<"unnecessaryPasswordOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
30
+ name: string;
31
+ };
32
+ 'no-credential-reuse': import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotInPackage" | "didYouMean" | "useAvailable", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
33
+ name: string;
34
+ };
35
+ 'no-dangerous-functions': import("@typescript-eslint/utils/ts-eslint").RuleModule<"noChildProcess" | "noEval" | "noFunctionConstructor", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
36
+ name: string;
37
+ };
38
+ 'no-dead-files': import("@typescript-eslint/utils/ts-eslint").RuleModule<"deadFileFound", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
39
+ name: string;
40
+ };
41
+ 'no-forbidden-lifecycle-scripts': import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenScript", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
42
+ name: string;
43
+ };
44
+ 'no-hardcoded-secrets': import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedSecret", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
45
+ name: string;
46
+ };
47
+ 'no-http-request-with-manual-auth': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useHttpRequestWithAuthentication", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
48
+ name: string;
49
+ };
50
+ 'no-overrides-field': import("@typescript-eslint/utils/ts-eslint").RuleModule<"overridesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
51
+ name: string;
52
+ };
53
+ 'no-runtime-dependencies': import("@typescript-eslint/utils/ts-eslint").RuleModule<"runtimeDependenciesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
54
+ name: string;
55
+ };
56
+ 'no-silent-error-swallowing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyCatch" | "silentReturn", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
57
+ name: string;
58
+ };
59
+ 'no-template-placeholders': import("@typescript-eslint/utils/ts-eslint").RuleModule<"unresolvedPlaceholder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
60
+ name: string;
61
+ };
62
+ 'no-unsafe-connection-type-cast': import("@typescript-eslint/utils/ts-eslint").RuleModule<"erasingCast" | "removeCast", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
63
+ name: string;
64
+ };
65
+ 'icon-validation': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addFileProtocol" | "addPlaceholder" | "iconFileNotFound" | "invalidIconPath" | "missingIcon" | "similarIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
66
+ name: string;
67
+ };
68
+ 'icon-prefer-themed-variants': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingThemedVariants", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
69
+ name: string;
70
+ };
71
+ 'resource-operation-pattern': import("@typescript-eslint/utils/ts-eslint").RuleModule<"tooManyOperationsWithoutResources", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
72
+ name: string;
73
+ };
74
+ 'trigger-node-conventions': import("@typescript-eslint/utils/ts-eslint").RuleModule<"displayNameMissingTrigger" | "inputsNotEmpty" | "nameMissingSuffix", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
75
+ name: string;
76
+ };
27
77
  'credential-documentation-url': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidDocumentationUrl", [{
28
78
  allowUrls?: boolean;
29
79
  allowSlugs?: boolean;
30
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
31
- 'node-class-description-icon-missing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
32
- 'cred-class-field-icon-missing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
33
- 'cred-class-oauth2-naming': import("@typescript-eslint/utils/ts-eslint").RuleModule<"classNameMissingOAuth2" | "displayNameMissingOAuth2" | "nameMissingOAuth2", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
34
- 'node-connection-type-literal': import("@typescript-eslint/utils/ts-eslint").RuleModule<"stringLiteralInInputs" | "stringLiteralInOutputs" | "unknownStringLiteralInInputs" | "unknownStringLiteralInOutputs", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
35
- 'node-registration-complete': import("@typescript-eslint/utils/ts-eslint").RuleModule<"nodeNotRegistered", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
36
- 'missing-paired-item': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPairedItem", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
80
+ }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
81
+ name: string;
82
+ };
83
+ 'node-class-description-icon-missing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
84
+ name: string;
85
+ };
86
+ 'cred-class-field-icon-missing': import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
87
+ name: string;
88
+ };
89
+ 'cred-class-oauth2-naming': import("@typescript-eslint/utils/ts-eslint").RuleModule<"classNameMissingOAuth2" | "displayNameMissingOAuth2" | "nameMissingOAuth2", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
90
+ name: string;
91
+ };
92
+ 'node-connection-type-literal': import("@typescript-eslint/utils/ts-eslint").RuleModule<"stringLiteralInInputs" | "stringLiteralInOutputs" | "unknownStringLiteralInInputs" | "unknownStringLiteralInOutputs", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
93
+ name: string;
94
+ };
95
+ 'node-registration-complete': import("@typescript-eslint/utils/ts-eslint").RuleModule<"nodeNotRegistered", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
96
+ name: string;
97
+ };
98
+ 'missing-paired-item': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPairedItem", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
99
+ name: string;
100
+ };
37
101
  'no-builder-hint-leakage': import("@typescript-eslint/utils/ts-eslint").RuleModule<"connectionTypeLiteral" | "wireExpression", [{
38
102
  scope?: 'builderHint' | 'all';
39
- }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
40
- 'n8n-object-validation': import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialPathNotInDist" | "credentialPathNotString" | "emptyN8nNodes" | "invalidNodesApiVersion" | "invalidStrict" | "missingN8nNodes" | "missingN8nObject" | "missingNodesApiVersion" | "n8nCredentialsNotArray" | "n8nNodesNotArray" | "nodePathNotInDist" | "nodePathNotString" | "wrongLocationApiVersion", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
41
- 'require-files-array': import("@typescript-eslint/utils/ts-eslint").RuleModule<"filesEmpty" | "filesMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
42
- 'require-homepage': import("@typescript-eslint/utils/ts-eslint").RuleModule<"homepageInvalid" | "homepageMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
43
- 'require-node-api-error': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useNodeApiError" | "useNodeApiErrorInsteadOfGeneric", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
44
- 'require-node-description-fields': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingField" | "missingFields", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
45
- 'require-version': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidVersion" | "missingVersion", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
46
- 'valid-author': import("@typescript-eslint/utils/ts-eslint").RuleModule<"authorEmailMissing" | "authorMissing" | "authorNameMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
47
- 'valid-credential-references': import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotFound" | "didYouMean", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
48
- 'valid-description': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyDescription" | "missingDescription", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
49
- 'valid-peer-dependencies': import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenPeerDependency" | "invalidPeerDependenciesType" | "missingN8nWorkflow" | "missingPeerDependencies" | "pinnedN8nWorkflow", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
50
- 'webhook-lifecycle-complete': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyWebhookMethods" | "missingLifecycleMethod" | "missingWebhookMethods", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
103
+ }], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
104
+ name: string;
105
+ };
106
+ 'n8n-object-validation': import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialPathNotInDist" | "credentialPathNotString" | "emptyN8nNodes" | "invalidNodesApiVersion" | "invalidStrict" | "missingN8nNodes" | "missingN8nObject" | "missingNodesApiVersion" | "n8nCredentialsNotArray" | "n8nNodesNotArray" | "nodePathNotInDist" | "nodePathNotString" | "wrongLocationApiVersion", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
107
+ name: string;
108
+ };
109
+ 'require-files-array': import("@typescript-eslint/utils/ts-eslint").RuleModule<"filesEmpty" | "filesMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
110
+ name: string;
111
+ };
112
+ 'require-homepage': import("@typescript-eslint/utils/ts-eslint").RuleModule<"homepageInvalid" | "homepageMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
113
+ name: string;
114
+ };
115
+ 'require-node-api-error': import("@typescript-eslint/utils/ts-eslint").RuleModule<"useNodeApiError" | "useNodeApiErrorInsteadOfGeneric", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
116
+ name: string;
117
+ };
118
+ 'require-node-description-fields': import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingField" | "missingFields", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
119
+ name: string;
120
+ };
121
+ 'require-version': import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidVersion" | "missingVersion", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
122
+ name: string;
123
+ };
124
+ 'valid-author': import("@typescript-eslint/utils/ts-eslint").RuleModule<"authorEmailMissing" | "authorMissing" | "authorNameMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
125
+ name: string;
126
+ };
127
+ 'valid-credential-references': import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotFound" | "didYouMean", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
128
+ name: string;
129
+ };
130
+ 'valid-description': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyDescription" | "missingDescription", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
131
+ name: string;
132
+ };
133
+ 'valid-peer-dependencies': import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenPeerDependency" | "invalidPeerDependenciesType" | "missingN8nWorkflow" | "missingPeerDependencies" | "pinnedN8nWorkflow", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
134
+ name: string;
135
+ };
136
+ 'webhook-lifecycle-complete': import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyWebhookMethods" | "missingLifecycleMethod" | "missingWebhookMethods", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
137
+ name: string;
138
+ };
51
139
  };
52
140
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AA+CA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AA+CA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CuB,CAAC"}
@@ -12,5 +12,7 @@
12
12
  * Only flags object literals directly — variable references are skipped since
13
13
  * their shape cannot be determined without type resolution.
14
14
  */
15
- export declare const MissingPairedItemRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPairedItem", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
15
+ export declare const MissingPairedItemRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingPairedItem", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
16
+ name: string;
17
+ };
16
18
  //# sourceMappingURL=missing-paired-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"missing-paired-item.d.ts","sourceRoot":"","sources":["../../src/rules/missing-paired-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiCH,eAAO,MAAM,qBAAqB,sJAsGhC,CAAC"}
1
+ {"version":3,"file":"missing-paired-item.d.ts","sourceRoot":"","sources":["../../src/rules/missing-paired-item.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiCH,eAAO,MAAM,qBAAqB;;CAsGhC,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import type { TSESLint } from '@typescript-eslint/utils';
2
2
  type MessageIds = 'missingN8nObject' | 'wrongLocationApiVersion' | 'missingNodesApiVersion' | 'invalidNodesApiVersion' | 'missingN8nNodes' | 'n8nNodesNotArray' | 'emptyN8nNodes' | 'n8nCredentialsNotArray' | 'nodePathNotString' | 'nodePathNotInDist' | 'credentialPathNotString' | 'credentialPathNotInDist' | 'invalidStrict';
3
- export declare const N8nObjectValidationRule: TSESLint.RuleModule<MessageIds, [], unknown, TSESLint.RuleListener>;
3
+ export declare const N8nObjectValidationRule: TSESLint.RuleModule<MessageIds, [], unknown, TSESLint.RuleListener> & {
4
+ name: string;
5
+ };
4
6
  export {};
5
7
  //# sourceMappingURL=n8n-object-validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"n8n-object-validation.d.ts","sourceRoot":"","sources":["../../src/rules/n8n-object-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAKnE,KAAK,UAAU,GACZ,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GACxB,wBAAwB,GACxB,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,wBAAwB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,yBAAyB,GACzB,yBAAyB,GACzB,eAAe,CAAC;AAInB,eAAO,MAAM,uBAAuB,qEA8ElC,CAAC"}
1
+ {"version":3,"file":"n8n-object-validation.d.ts","sourceRoot":"","sources":["../../src/rules/n8n-object-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AAKnE,KAAK,UAAU,GACZ,kBAAkB,GAClB,yBAAyB,GACzB,wBAAwB,GACxB,wBAAwB,GACxB,iBAAiB,GACjB,kBAAkB,GAClB,eAAe,GACf,wBAAwB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,yBAAyB,GACzB,yBAAyB,GACzB,eAAe,CAAC;AAInB,eAAO,MAAM,uBAAuB;;CA8ElC,CAAC"}
@@ -2,6 +2,8 @@ type Options = [{
2
2
  scope?: 'builderHint' | 'all';
3
3
  }];
4
4
  type MessageIds = 'wireExpression' | 'connectionTypeLiteral';
5
- export declare const NoBuilderHintLeakageRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<MessageIds, Options, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
5
+ export declare const NoBuilderHintLeakageRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<MessageIds, Options, unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
6
+ name: string;
7
+ };
6
8
  export {};
7
9
  //# sourceMappingURL=no-builder-hint-leakage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-builder-hint-leakage.d.ts","sourceRoot":"","sources":["../../src/rules/no-builder-hint-leakage.ts"],"names":[],"mappings":"AAaA,KAAK,OAAO,GAAG,CAAC;IAAE,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,CAAA;CAAE,CAAC,CAAC;AACnD,KAAK,UAAU,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAyB7D,eAAO,MAAM,wBAAwB,kJAwEnC,CAAC"}
1
+ {"version":3,"file":"no-builder-hint-leakage.d.ts","sourceRoot":"","sources":["../../src/rules/no-builder-hint-leakage.ts"],"names":[],"mappings":"AAaA,KAAK,OAAO,GAAG,CAAC;IAAE,KAAK,CAAC,EAAE,aAAa,GAAG,KAAK,CAAA;CAAE,CAAC,CAAC;AACnD,KAAK,UAAU,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAyB7D,eAAO,MAAM,wBAAwB;;CAwEnC,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const NoCredentialReuseRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotInPackage" | "didYouMean" | "useAvailable", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const NoCredentialReuseRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotInPackage" | "didYouMean" | "useAvailable", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=no-credential-reuse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-credential-reuse.d.ts","sourceRoot":"","sources":["../../src/rules/no-credential-reuse.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,qBAAqB,2LAsGhC,CAAC"}
1
+ {"version":3,"file":"no-credential-reuse.d.ts","sourceRoot":"","sources":["../../src/rules/no-credential-reuse.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,qBAAqB;;CAsGhC,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const NoDangerousFunctionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"noChildProcess" | "noEval" | "noFunctionConstructor", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const NoDangerousFunctionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"noChildProcess" | "noEval" | "noFunctionConstructor", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=no-dangerous-functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-dangerous-functions.d.ts","sourceRoot":"","sources":["../../src/rules/no-dangerous-functions.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,wBAAwB,wLA0HnC,CAAC"}
1
+ {"version":3,"file":"no-dangerous-functions.d.ts","sourceRoot":"","sources":["../../src/rules/no-dangerous-functions.ts"],"names":[],"mappings":"AAgCA,eAAO,MAAM,wBAAwB;;CA0HnC,CAAC"}
@@ -3,5 +3,7 @@
3
3
  * test-artifact file that should not ship with a community node.
4
4
  */
5
5
  export declare function isDeadFileName(fileName: string): boolean;
6
- export declare const NoDeadFilesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"deadFileFound", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
6
+ export declare const NoDeadFilesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"deadFileFound", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
7
+ name: string;
8
+ };
7
9
  //# sourceMappingURL=no-dead-files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-dead-files.d.ts","sourceRoot":"","sources":["../../src/rules/no-dead-files.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,eAAO,MAAM,eAAe,kJA2C1B,CAAC"}
1
+ {"version":3,"file":"no-dead-files.d.ts","sourceRoot":"","sources":["../../src/rules/no-dead-files.ts"],"names":[],"mappings":"AAmBA;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED,eAAO,MAAM,eAAe;;CA2C1B,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const NoDeprecatedWorkflowFunctionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"deprecatedFunction" | "deprecatedRequestFunction" | "deprecatedType" | "deprecatedWithoutReplacement" | "suggestReplaceFunction" | "suggestReplaceType", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const NoDeprecatedWorkflowFunctionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"deprecatedFunction" | "deprecatedRequestFunction" | "deprecatedType" | "deprecatedWithoutReplacement" | "suggestReplaceFunction" | "suggestReplaceType", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=no-deprecated-workflow-functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-workflow-functions.d.ts","sourceRoot":"","sources":["../../src/rules/no-deprecated-workflow-functions.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,iCAAiC,2RA6I5C,CAAC"}
1
+ {"version":3,"file":"no-deprecated-workflow-functions.d.ts","sourceRoot":"","sources":["../../src/rules/no-deprecated-workflow-functions.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,iCAAiC;;CA6I5C,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const NoEmojiInOptionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emojiInOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const NoEmojiInOptionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emojiInOption", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=no-emoji-in-options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-emoji-in-options.d.ts","sourceRoot":"","sources":["../../src/rules/no-emoji-in-options.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,oBAAoB,kJAoF/B,CAAC"}
1
+ {"version":3,"file":"no-emoji-in-options.d.ts","sourceRoot":"","sources":["../../src/rules/no-emoji-in-options.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,oBAAoB;;CAoF/B,CAAC"}
@@ -1,2 +1,4 @@
1
- export declare const NoForbiddenLifecycleScriptsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenScript", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const NoForbiddenLifecycleScriptsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenScript", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=no-forbidden-lifecycle-scripts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-forbidden-lifecycle-scripts.d.ts","sourceRoot":"","sources":["../../src/rules/no-forbidden-lifecycle-scripts.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,+BAA+B,oJAqD1C,CAAC"}
1
+ {"version":3,"file":"no-forbidden-lifecycle-scripts.d.ts","sourceRoot":"","sources":["../../src/rules/no-forbidden-lifecycle-scripts.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,+BAA+B;;CAqD1C,CAAC"}
@@ -33,7 +33,7 @@ export const NoForbiddenLifecycleScriptsRule = createRule({
33
33
  return;
34
34
  }
35
35
  const scriptsProp = findJsonProperty(node, 'scripts');
36
- if (!scriptsProp || scriptsProp.value.type !== AST_NODE_TYPES.ObjectExpression) {
36
+ if (scriptsProp?.value.type !== AST_NODE_TYPES.ObjectExpression) {
37
37
  return;
38
38
  }
39
39
  for (const property of scriptsProp.value.properties) {
@@ -1,2 +1,4 @@
1
- export declare const NoHardcodedSecretsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedSecret", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
1
+ export declare const NoHardcodedSecretsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"hardcodedSecret", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
2
+ name: string;
3
+ };
2
4
  //# sourceMappingURL=no-hardcoded-secrets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"no-hardcoded-secrets.d.ts","sourceRoot":"","sources":["../../src/rules/no-hardcoded-secrets.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,sBAAsB,oJA8DjC,CAAC"}
1
+ {"version":3,"file":"no-hardcoded-secrets.d.ts","sourceRoot":"","sources":["../../src/rules/no-hardcoded-secrets.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,sBAAsB;;CA8DjC,CAAC"}