@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.
- package/README.md +1 -1
- package/dist/rules/ai-node-package-json.d.ts +3 -1
- package/dist/rules/ai-node-package-json.d.ts.map +1 -1
- package/dist/rules/cred-class-field-icon-missing.d.ts +3 -1
- package/dist/rules/cred-class-field-icon-missing.d.ts.map +1 -1
- package/dist/rules/cred-class-oauth2-naming.d.ts +3 -1
- package/dist/rules/cred-class-oauth2-naming.d.ts.map +1 -1
- package/dist/rules/credential-documentation-url.d.ts +3 -1
- package/dist/rules/credential-documentation-url.d.ts.map +1 -1
- package/dist/rules/credential-password-field.d.ts +3 -1
- package/dist/rules/credential-password-field.d.ts.map +1 -1
- package/dist/rules/credential-password-field.js +1 -2
- package/dist/rules/credential-test-required.d.ts +3 -1
- package/dist/rules/credential-test-required.d.ts.map +1 -1
- package/dist/rules/credential-unnecessary-password.d.ts +3 -1
- package/dist/rules/credential-unnecessary-password.d.ts.map +1 -1
- package/dist/rules/credential-unnecessary-password.js +1 -2
- package/dist/rules/icon-prefer-themed-variants.d.ts +3 -1
- package/dist/rules/icon-prefer-themed-variants.d.ts.map +1 -1
- package/dist/rules/icon-validation.d.ts +3 -1
- package/dist/rules/icon-validation.d.ts.map +1 -1
- package/dist/rules/icon-validation.js +5 -15
- package/dist/rules/index.d.ts +132 -44
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/missing-paired-item.d.ts +3 -1
- package/dist/rules/missing-paired-item.d.ts.map +1 -1
- package/dist/rules/n8n-object-validation.d.ts +3 -1
- package/dist/rules/n8n-object-validation.d.ts.map +1 -1
- package/dist/rules/no-builder-hint-leakage.d.ts +3 -1
- package/dist/rules/no-builder-hint-leakage.d.ts.map +1 -1
- package/dist/rules/no-credential-reuse.d.ts +3 -1
- package/dist/rules/no-credential-reuse.d.ts.map +1 -1
- package/dist/rules/no-dangerous-functions.d.ts +3 -1
- package/dist/rules/no-dangerous-functions.d.ts.map +1 -1
- package/dist/rules/no-dead-files.d.ts +3 -1
- package/dist/rules/no-dead-files.d.ts.map +1 -1
- package/dist/rules/no-deprecated-workflow-functions.d.ts +3 -1
- package/dist/rules/no-deprecated-workflow-functions.d.ts.map +1 -1
- package/dist/rules/no-emoji-in-options.d.ts +3 -1
- package/dist/rules/no-emoji-in-options.d.ts.map +1 -1
- package/dist/rules/no-forbidden-lifecycle-scripts.d.ts +3 -1
- package/dist/rules/no-forbidden-lifecycle-scripts.d.ts.map +1 -1
- package/dist/rules/no-forbidden-lifecycle-scripts.js +1 -1
- package/dist/rules/no-hardcoded-secrets.d.ts +3 -1
- package/dist/rules/no-hardcoded-secrets.d.ts.map +1 -1
- package/dist/rules/no-http-request-with-manual-auth.d.ts +3 -1
- package/dist/rules/no-http-request-with-manual-auth.d.ts.map +1 -1
- package/dist/rules/no-overrides-field.d.ts +3 -1
- package/dist/rules/no-overrides-field.d.ts.map +1 -1
- package/dist/rules/no-restricted-globals.d.ts +3 -1
- package/dist/rules/no-restricted-globals.d.ts.map +1 -1
- package/dist/rules/no-restricted-imports.d.ts +3 -1
- package/dist/rules/no-restricted-imports.d.ts.map +1 -1
- package/dist/rules/no-runtime-dependencies.d.ts +3 -1
- package/dist/rules/no-runtime-dependencies.d.ts.map +1 -1
- package/dist/rules/no-silent-error-swallowing.d.ts +3 -1
- package/dist/rules/no-silent-error-swallowing.d.ts.map +1 -1
- package/dist/rules/no-template-placeholders.d.ts +3 -1
- package/dist/rules/no-template-placeholders.d.ts.map +1 -1
- package/dist/rules/no-unsafe-connection-type-cast.d.ts +3 -1
- package/dist/rules/no-unsafe-connection-type-cast.d.ts.map +1 -1
- package/dist/rules/node-class-description-icon-missing.d.ts +3 -1
- package/dist/rules/node-class-description-icon-missing.d.ts.map +1 -1
- package/dist/rules/node-class-description-icon-missing.js +1 -2
- package/dist/rules/node-connection-type-literal.d.ts +3 -1
- package/dist/rules/node-connection-type-literal.d.ts.map +1 -1
- package/dist/rules/node-registration-complete.d.ts +3 -1
- package/dist/rules/node-registration-complete.d.ts.map +1 -1
- package/dist/rules/node-usable-as-tool.d.ts +3 -1
- package/dist/rules/node-usable-as-tool.d.ts.map +1 -1
- package/dist/rules/package-name-convention.d.ts +3 -1
- package/dist/rules/package-name-convention.d.ts.map +1 -1
- package/dist/rules/require-files-array.d.ts +3 -1
- package/dist/rules/require-files-array.d.ts.map +1 -1
- package/dist/rules/require-homepage.d.ts +3 -1
- package/dist/rules/require-homepage.d.ts.map +1 -1
- package/dist/rules/require-node-api-error.d.ts +3 -1
- package/dist/rules/require-node-api-error.d.ts.map +1 -1
- package/dist/rules/require-node-description-fields.d.ts +3 -1
- package/dist/rules/require-node-description-fields.d.ts.map +1 -1
- package/dist/rules/require-node-description-fields.js +1 -2
- package/dist/rules/require-version.d.ts +3 -1
- package/dist/rules/require-version.d.ts.map +1 -1
- package/dist/rules/resource-operation-pattern.d.ts +3 -1
- package/dist/rules/resource-operation-pattern.d.ts.map +1 -1
- package/dist/rules/resource-operation-pattern.js +3 -4
- package/dist/rules/trigger-node-conventions.d.ts +3 -1
- package/dist/rules/trigger-node-conventions.d.ts.map +1 -1
- package/dist/rules/valid-author.d.ts +3 -1
- package/dist/rules/valid-author.d.ts.map +1 -1
- package/dist/rules/valid-author.js +1 -1
- package/dist/rules/valid-credential-references.d.ts +3 -1
- package/dist/rules/valid-credential-references.d.ts.map +1 -1
- package/dist/rules/valid-description.d.ts +3 -1
- package/dist/rules/valid-description.d.ts.map +1 -1
- package/dist/rules/valid-peer-dependencies.d.ts +3 -1
- package/dist/rules/valid-peer-dependencies.d.ts.map +1 -1
- package/dist/rules/webhook-lifecycle-complete.d.ts +3 -1
- package/dist/rules/webhook-lifecycle-complete.d.ts.map +1 -1
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +1 -2
- package/dist/utils/rule-creator.d.ts +3 -1
- package/dist/utils/rule-creator.d.ts.map +1 -1
- package/docs/rules/icon-prefer-themed-variants.md +2 -2
- package/docs/rules/icon-validation.md +11 -11
- package/eslint.config.mjs +2 -3
- package/package.json +7 -7
- package/src/rules/credential-password-field.ts +1 -4
- package/src/rules/credential-unnecessary-password.ts +1 -4
- package/src/rules/icon-validation.test.ts +19 -21
- package/src/rules/icon-validation.ts +5 -20
- package/src/rules/no-forbidden-lifecycle-scripts.ts +1 -1
- package/src/rules/node-class-description-icon-missing.ts +1 -4
- package/src/rules/require-node-description-fields.ts +1 -4
- package/src/rules/resource-operation-pattern.ts +3 -6
- package/src/rules/valid-author.ts +1 -1
- package/src/utils/file-utils.ts +3 -6
- package/dist/plugin.js.map +0 -1
- package/dist/rules/ai-node-package-json.js.map +0 -1
- package/dist/rules/cred-class-field-icon-missing.js.map +0 -1
- package/dist/rules/cred-class-oauth2-naming.js.map +0 -1
- package/dist/rules/credential-documentation-url.js.map +0 -1
- package/dist/rules/credential-password-field.js.map +0 -1
- package/dist/rules/credential-test-required.js.map +0 -1
- package/dist/rules/credential-unnecessary-password.js.map +0 -1
- package/dist/rules/icon-prefer-themed-variants.js.map +0 -1
- package/dist/rules/icon-validation.js.map +0 -1
- package/dist/rules/index.js.map +0 -1
- package/dist/rules/missing-paired-item.js.map +0 -1
- package/dist/rules/n8n-object-validation.js.map +0 -1
- package/dist/rules/no-builder-hint-leakage.js.map +0 -1
- package/dist/rules/no-credential-reuse.js.map +0 -1
- package/dist/rules/no-dangerous-functions.js.map +0 -1
- package/dist/rules/no-dead-files.js.map +0 -1
- package/dist/rules/no-deprecated-workflow-functions.js.map +0 -1
- package/dist/rules/no-emoji-in-options.js.map +0 -1
- package/dist/rules/no-forbidden-lifecycle-scripts.js.map +0 -1
- package/dist/rules/no-hardcoded-secrets.js.map +0 -1
- package/dist/rules/no-http-request-with-manual-auth.js.map +0 -1
- package/dist/rules/no-overrides-field.js.map +0 -1
- package/dist/rules/no-restricted-globals.js.map +0 -1
- package/dist/rules/no-restricted-imports.js.map +0 -1
- package/dist/rules/no-runtime-dependencies.js.map +0 -1
- package/dist/rules/no-silent-error-swallowing.js.map +0 -1
- package/dist/rules/no-template-placeholders.js.map +0 -1
- package/dist/rules/no-unsafe-connection-type-cast.js.map +0 -1
- package/dist/rules/node-class-description-icon-missing.js.map +0 -1
- package/dist/rules/node-connection-type-literal.js.map +0 -1
- package/dist/rules/node-registration-complete.js.map +0 -1
- package/dist/rules/node-usable-as-tool.js.map +0 -1
- package/dist/rules/package-name-convention.js.map +0 -1
- package/dist/rules/require-files-array.js.map +0 -1
- package/dist/rules/require-homepage.js.map +0 -1
- package/dist/rules/require-node-api-error.js.map +0 -1
- package/dist/rules/require-node-description-fields.js.map +0 -1
- package/dist/rules/require-version.js.map +0 -1
- package/dist/rules/resource-operation-pattern.js.map +0 -1
- package/dist/rules/trigger-node-conventions.js.map +0 -1
- package/dist/rules/valid-author.js.map +0 -1
- package/dist/rules/valid-credential-references.js.map +0 -1
- package/dist/rules/valid-description.js.map +0 -1
- package/dist/rules/valid-peer-dependencies.js.map +0 -1
- package/dist/rules/webhook-lifecycle-complete.js.map +0 -1
- package/dist/utils/ast-utils.js.map +0 -1
- package/dist/utils/constants.js.map +0 -1
- package/dist/utils/credential-fields.js.map +0 -1
- package/dist/utils/file-utils.js.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/rule-creator.js.map +0 -1
|
@@ -15,5 +15,7 @@
|
|
|
15
15
|
* Known false positive: a function that fetches credentials for a non-HTTP purpose
|
|
16
16
|
* and also makes an unauthenticated request. Use eslint-disable to suppress.
|
|
17
17
|
*/
|
|
18
|
-
export declare const NoHttpRequestWithManualAuthRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"useHttpRequestWithAuthentication", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
18
|
+
export declare const NoHttpRequestWithManualAuthRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"useHttpRequestWithAuthentication", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
19
|
+
name: string;
|
|
20
|
+
};
|
|
19
21
|
//# sourceMappingURL=no-http-request-with-manual-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-http-request-with-manual-auth.d.ts","sourceRoot":"","sources":["../../src/rules/no-http-request-with-manual-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,eAAO,MAAM,+BAA+B,
|
|
1
|
+
{"version":3,"file":"no-http-request-with-manual-auth.d.ts","sourceRoot":"","sources":["../../src/rules/no-http-request-with-manual-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAWH,eAAO,MAAM,+BAA+B;;CAkD1C,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NoOverridesFieldRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"overridesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NoOverridesFieldRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"overridesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=no-overrides-field.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-overrides-field.d.ts","sourceRoot":"","sources":["../../src/rules/no-overrides-field.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"no-overrides-field.d.ts","sourceRoot":"","sources":["../../src/rules/no-overrides-field.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB;;CAwC/B,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
-
export declare const NoRestrictedGlobalsRule: TSESLint.RuleModule<"restrictedGlobal" | "restrictedGlobalWithHint", [], unknown, TSESLint.RuleListener
|
|
2
|
+
export declare const NoRestrictedGlobalsRule: TSESLint.RuleModule<"restrictedGlobal" | "restrictedGlobalWithHint", [], unknown, TSESLint.RuleListener> & {
|
|
3
|
+
name: string;
|
|
4
|
+
};
|
|
3
5
|
//# sourceMappingURL=no-restricted-globals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-restricted-globals.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-globals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAwBzD,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"no-restricted-globals.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-globals.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAwBzD,eAAO,MAAM,uBAAuB;;CAiElC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NoRestrictedImportsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedDynamicImport" | "restrictedImport" | "restrictedRequire", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NoRestrictedImportsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"restrictedDynamicImport" | "restrictedImport" | "restrictedRequire", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=no-restricted-imports.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-restricted-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-imports.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"no-restricted-imports.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-imports.ts"],"names":[],"mappings":"AAuCA,eAAO,MAAM,uBAAuB;;CAkElC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NoRuntimeDependenciesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"runtimeDependenciesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NoRuntimeDependenciesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"runtimeDependenciesForbidden", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=no-runtime-dependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-runtime-dependencies.d.ts","sourceRoot":"","sources":["../../src/rules/no-runtime-dependencies.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"no-runtime-dependencies.d.ts","sourceRoot":"","sources":["../../src/rules/no-runtime-dependencies.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,yBAAyB;;CA4CpC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NoSilentErrorSwallowingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyCatch" | "silentReturn", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NoSilentErrorSwallowingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyCatch" | "silentReturn", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=no-silent-error-swallowing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-silent-error-swallowing.d.ts","sourceRoot":"","sources":["../../src/rules/no-silent-error-swallowing.ts"],"names":[],"mappings":"AA6CA,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"no-silent-error-swallowing.d.ts","sourceRoot":"","sources":["../../src/rules/no-silent-error-swallowing.ts"],"names":[],"mappings":"AA6CA,eAAO,MAAM,2BAA2B;;CAiFtC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NoTemplatePlaceholdersRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unresolvedPlaceholder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NoTemplatePlaceholdersRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"unresolvedPlaceholder", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=no-template-placeholders.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-template-placeholders.d.ts","sourceRoot":"","sources":["../../src/rules/no-template-placeholders.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,0BAA0B
|
|
1
|
+
{"version":3,"file":"no-template-placeholders.d.ts","sourceRoot":"","sources":["../../src/rules/no-template-placeholders.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,0BAA0B;;CA+CrC,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import type { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
-
export declare const NoUnsafeConnectionTypeCastRule: TSESLint.RuleModule<"erasingCast" | "removeCast", [], unknown, TSESLint.RuleListener
|
|
2
|
+
export declare const NoUnsafeConnectionTypeCastRule: TSESLint.RuleModule<"erasingCast" | "removeCast", [], unknown, TSESLint.RuleListener> & {
|
|
3
|
+
name: string;
|
|
4
|
+
};
|
|
3
5
|
//# sourceMappingURL=no-unsafe-connection-type-cast.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-unsafe-connection-type-cast.d.ts","sourceRoot":"","sources":["../../src/rules/no-unsafe-connection-type-cast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AA0DnE,eAAO,MAAM,8BAA8B,
|
|
1
|
+
{"version":3,"file":"no-unsafe-connection-type-cast.d.ts","sourceRoot":"","sources":["../../src/rules/no-unsafe-connection-type-cast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,0BAA0B,CAAC;AA0DnE,eAAO,MAAM,8BAA8B;;CAiEzC,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
/** @deprecated Use `require-node-description-fields` instead. */
|
|
2
|
-
export declare const NodeClassDescriptionIconMissingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
2
|
+
export declare const NodeClassDescriptionIconMissingRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"addPlaceholder" | "missingIcon", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
3
|
+
name: string;
|
|
4
|
+
};
|
|
3
5
|
//# 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,iEAAiE;AACjE,eAAO,MAAM,mCAAmC,
|
|
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;;CA8D9C,CAAC"}
|
|
@@ -30,8 +30,7 @@ export const NodeClassDescriptionIconMissingRule = createRule({
|
|
|
30
30
|
return;
|
|
31
31
|
}
|
|
32
32
|
const descriptionProperty = findClassProperty(node, 'description');
|
|
33
|
-
if (
|
|
34
|
-
descriptionProperty.value.type !== TSESTree.AST_NODE_TYPES.ObjectExpression) {
|
|
33
|
+
if (descriptionProperty?.value?.type !== TSESTree.AST_NODE_TYPES.ObjectExpression) {
|
|
35
34
|
return;
|
|
36
35
|
}
|
|
37
36
|
const descriptionValue = descriptionProperty.value;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NodeConnectionTypeLiteralRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"stringLiteralInInputs" | "stringLiteralInOutputs" | "unknownStringLiteralInInputs" | "unknownStringLiteralInOutputs", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NodeConnectionTypeLiteralRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"stringLiteralInInputs" | "stringLiteralInOutputs" | "unknownStringLiteralInInputs" | "unknownStringLiteralInOutputs", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=node-connection-type-literal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-connection-type-literal.d.ts","sourceRoot":"","sources":["../../src/rules/node-connection-type-literal.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"node-connection-type-literal.d.ts","sourceRoot":"","sources":["../../src/rules/node-connection-type-literal.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,6BAA6B;;CA0ExC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NodeRegistrationCompleteRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"nodeNotRegistered", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NodeRegistrationCompleteRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"nodeNotRegistered", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=node-registration-complete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-registration-complete.d.ts","sourceRoot":"","sources":["../../src/rules/node-registration-complete.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"node-registration-complete.d.ts","sourceRoot":"","sources":["../../src/rules/node-registration-complete.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,4BAA4B;;CAkEvC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const NodeUsableAsToolRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"aiOnlyUsableAsTool" | "missingUsableAsTool" | "triggerUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const NodeUsableAsToolRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"aiOnlyUsableAsTool" | "missingUsableAsTool" | "triggerUsableAsTool", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=node-usable-as-tool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-usable-as-tool.d.ts","sourceRoot":"","sources":["../../src/rules/node-usable-as-tool.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"node-usable-as-tool.d.ts","sourceRoot":"","sources":["../../src/rules/node-usable-as-tool.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,oBAAoB;;CA2G/B,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const PackageNameConventionRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"defaultPlaceholderName" | "invalidPackageName" | "missingName" | "renameTo", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const PackageNameConventionRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"defaultPlaceholderName" | "invalidPackageName" | "missingName" | "renameTo", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=package-name-convention.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-name-convention.d.ts","sourceRoot":"","sources":["../../src/rules/package-name-convention.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,yBAAyB
|
|
1
|
+
{"version":3,"file":"package-name-convention.d.ts","sourceRoot":"","sources":["../../src/rules/package-name-convention.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,yBAAyB;;CAwFpC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const RequireFilesArrayRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"filesEmpty" | "filesMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const RequireFilesArrayRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"filesEmpty" | "filesMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=require-files-array.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-files-array.d.ts","sourceRoot":"","sources":["../../src/rules/require-files-array.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"require-files-array.d.ts","sourceRoot":"","sources":["../../src/rules/require-files-array.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB;;CA4ChC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const RequireHomepageRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"homepageInvalid" | "homepageMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const RequireHomepageRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"homepageInvalid" | "homepageMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=require-homepage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-homepage.d.ts","sourceRoot":"","sources":["../../src/rules/require-homepage.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"require-homepage.d.ts","sourceRoot":"","sources":["../../src/rules/require-homepage.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,mBAAmB;;CA4C9B,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { TSESLint } from '@typescript-eslint/utils';
|
|
2
|
-
export declare const RequireNodeApiErrorRule: TSESLint.RuleModule<"useNodeApiError" | "useNodeApiErrorInsteadOfGeneric", [], unknown, TSESLint.RuleListener
|
|
2
|
+
export declare const RequireNodeApiErrorRule: TSESLint.RuleModule<"useNodeApiError" | "useNodeApiErrorInsteadOfGeneric", [], unknown, TSESLint.RuleListener> & {
|
|
3
|
+
name: string;
|
|
4
|
+
};
|
|
3
5
|
//# sourceMappingURL=require-node-api-error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-node-api-error.d.ts","sourceRoot":"","sources":["../../src/rules/require-node-api-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAiB,MAAM,0BAA0B,CAAC;AA2BnF,eAAO,MAAM,uBAAuB
|
|
1
|
+
{"version":3,"file":"require-node-api-error.d.ts","sourceRoot":"","sources":["../../src/rules/require-node-api-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,QAAQ,EAAiB,MAAM,0BAA0B,CAAC;AA2BnF,eAAO,MAAM,uBAAuB;;CA+DlC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const RequireNodeDescriptionFieldsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingField" | "missingFields", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const RequireNodeDescriptionFieldsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"missingField" | "missingFields", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=require-node-description-fields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-node-description-fields.d.ts","sourceRoot":"","sources":["../../src/rules/require-node-description-fields.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,gCAAgC,
|
|
1
|
+
{"version":3,"file":"require-node-description-fields.d.ts","sourceRoot":"","sources":["../../src/rules/require-node-description-fields.ts"],"names":[],"mappings":"AAiBA,eAAO,MAAM,gCAAgC;;CAwD3C,CAAC"}
|
|
@@ -28,8 +28,7 @@ export const RequireNodeDescriptionFieldsRule = createRule({
|
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
30
30
|
const descriptionProperty = findClassProperty(node, 'description');
|
|
31
|
-
if (
|
|
32
|
-
descriptionProperty.value.type !== TSESTree.AST_NODE_TYPES.ObjectExpression) {
|
|
31
|
+
if (descriptionProperty?.value?.type !== TSESTree.AST_NODE_TYPES.ObjectExpression) {
|
|
33
32
|
return;
|
|
34
33
|
}
|
|
35
34
|
const descriptionValue = descriptionProperty.value;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const RequireVersionRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidVersion" | "missingVersion", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const RequireVersionRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"invalidVersion" | "missingVersion", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=require-version.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"require-version.d.ts","sourceRoot":"","sources":["../../src/rules/require-version.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"require-version.d.ts","sourceRoot":"","sources":["../../src/rules/require-version.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,kBAAkB;;CAoD7B,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const ResourceOperationPatternRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"tooManyOperationsWithoutResources", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const ResourceOperationPatternRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"tooManyOperationsWithoutResources", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=resource-operation-pattern.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-operation-pattern.d.ts","sourceRoot":"","sources":["../../src/rules/resource-operation-pattern.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"resource-operation-pattern.d.ts","sourceRoot":"","sources":["../../src/rules/resource-operation-pattern.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,4BAA4B;;CAwFvC,CAAC"}
|
|
@@ -18,12 +18,11 @@ export const ResourceOperationPatternRule = createRule({
|
|
|
18
18
|
return {};
|
|
19
19
|
}
|
|
20
20
|
const analyzeNodeDescription = (descriptionValue) => {
|
|
21
|
-
if (
|
|
21
|
+
if (descriptionValue?.type !== AST_NODE_TYPES.ObjectExpression) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
24
24
|
const propertiesProperty = findObjectProperty(descriptionValue, 'properties');
|
|
25
|
-
if (
|
|
26
|
-
propertiesProperty.value.type !== AST_NODE_TYPES.ArrayExpression) {
|
|
25
|
+
if (propertiesProperty?.value?.type !== AST_NODE_TYPES.ArrayExpression) {
|
|
27
26
|
return;
|
|
28
27
|
}
|
|
29
28
|
const propertiesArray = propertiesProperty.value;
|
|
@@ -31,7 +30,7 @@ export const ResourceOperationPatternRule = createRule({
|
|
|
31
30
|
let operationCount = 0;
|
|
32
31
|
let operationNode = null;
|
|
33
32
|
for (const property of propertiesArray.elements) {
|
|
34
|
-
if (
|
|
33
|
+
if (property?.type !== AST_NODE_TYPES.ObjectExpression) {
|
|
35
34
|
continue;
|
|
36
35
|
}
|
|
37
36
|
const nameProperty = findObjectProperty(property, 'name');
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const TriggerNodeConventionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"displayNameMissingTrigger" | "inputsNotEmpty" | "nameMissingSuffix", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const TriggerNodeConventionsRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"displayNameMissingTrigger" | "inputsNotEmpty" | "nameMissingSuffix", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=trigger-node-conventions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-node-conventions.d.ts","sourceRoot":"","sources":["../../src/rules/trigger-node-conventions.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,0BAA0B,
|
|
1
|
+
{"version":3,"file":"trigger-node-conventions.d.ts","sourceRoot":"","sources":["../../src/rules/trigger-node-conventions.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,0BAA0B;;CAgFrC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const ValidAuthorRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"authorEmailMissing" | "authorMissing" | "authorNameMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const ValidAuthorRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"authorEmailMissing" | "authorMissing" | "authorNameMissing", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=valid-author.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-author.d.ts","sourceRoot":"","sources":["../../src/rules/valid-author.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,eAAe
|
|
1
|
+
{"version":3,"file":"valid-author.d.ts","sourceRoot":"","sources":["../../src/rules/valid-author.ts"],"names":[],"mappings":"AA+BA,eAAO,MAAM,eAAe;;CAoE1B,CAAC"}
|
|
@@ -18,7 +18,7 @@ function parsePersonString(value) {
|
|
|
18
18
|
return { name, email };
|
|
19
19
|
}
|
|
20
20
|
function isNonEmptyStringLiteral(node) {
|
|
21
|
-
if (
|
|
21
|
+
if (node?.value.type !== AST_NODE_TYPES.Literal) {
|
|
22
22
|
return false;
|
|
23
23
|
}
|
|
24
24
|
const { value } = node.value;
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const ValidCredentialReferencesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotFound" | "didYouMean", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const ValidCredentialReferencesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"credentialNotFound" | "didYouMean", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=valid-credential-references.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-credential-references.d.ts","sourceRoot":"","sources":["../../src/rules/valid-credential-references.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"valid-credential-references.d.ts","sourceRoot":"","sources":["../../src/rules/valid-credential-references.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,6BAA6B;;CAsFxC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const ValidDescriptionRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyDescription" | "missingDescription", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const ValidDescriptionRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyDescription" | "missingDescription", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=valid-description.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-description.d.ts","sourceRoot":"","sources":["../../src/rules/valid-description.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"valid-description.d.ts","sourceRoot":"","sources":["../../src/rules/valid-description.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB;;CAmD/B,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const ValidPeerDependenciesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenPeerDependency" | "invalidPeerDependenciesType" | "missingN8nWorkflow" | "missingPeerDependencies" | "pinnedN8nWorkflow", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const ValidPeerDependenciesRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"forbiddenPeerDependency" | "invalidPeerDependenciesType" | "missingN8nWorkflow" | "missingPeerDependencies" | "pinnedN8nWorkflow", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=valid-peer-dependencies.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valid-peer-dependencies.d.ts","sourceRoot":"","sources":["../../src/rules/valid-peer-dependencies.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"valid-peer-dependencies.d.ts","sourceRoot":"","sources":["../../src/rules/valid-peer-dependencies.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,yBAAyB;;CA0GpC,CAAC"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export declare const WebhookLifecycleCompleteRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyWebhookMethods" | "missingLifecycleMethod" | "missingWebhookMethods", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener
|
|
1
|
+
export declare const WebhookLifecycleCompleteRule: import("@typescript-eslint/utils/ts-eslint").RuleModule<"emptyWebhookMethods" | "missingLifecycleMethod" | "missingWebhookMethods", [], unknown, import("@typescript-eslint/utils/ts-eslint").RuleListener> & {
|
|
2
|
+
name: string;
|
|
3
|
+
};
|
|
2
4
|
//# sourceMappingURL=webhook-lifecycle-complete.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webhook-lifecycle-complete.d.ts","sourceRoot":"","sources":["../../src/rules/webhook-lifecycle-complete.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"webhook-lifecycle-complete.d.ts","sourceRoot":"","sources":["../../src/rules/webhook-lifecycle-complete.ts"],"names":[],"mappings":"AA8CA,eAAO,MAAM,4BAA4B;;CAkFvC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAShF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAU3E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAahE;AA+BD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAO1F;AAkBD,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAkB/E;AAED,wBAAgB,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4BvF;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACb;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CAChB,CAYA;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAItE;AAwBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAS3E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,GACpC,MAAM,EAAE,CAYV;AAED,wBAAgB,mCAAmC,CAClD,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAoBT;
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAShF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAU3E;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAahE;AA+BD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAO1F;AAkBD,wBAAgB,0BAA0B,CAAC,eAAe,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAkB/E;AAED,wBAAgB,6BAA6B,CAAC,kBAAkB,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA4BvF;AAED,wBAAgB,gBAAgB,CAC/B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACb;IACF,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CAChB,CAYA;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAItE;AAwBD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,EAAE,CAS3E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACrC,eAAe,EAAE,MAAM,EACvB,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,GACpC,MAAM,EAAE,CAYV;AAED,wBAAgB,mCAAmC,CAClD,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,GAChB,OAAO,CAoBT;AA8DD,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAiClF"}
|
package/dist/utils/file-utils.js
CHANGED
|
@@ -229,8 +229,7 @@ function checkCredentialUsageInFile(nodeFile, credentialName) {
|
|
|
229
229
|
enter(node) {
|
|
230
230
|
if (node.type === AST_NODE_TYPES.ClassDeclaration && isNodeTypeClass(node)) {
|
|
231
231
|
const descriptionProperty = findClassProperty(node, 'description');
|
|
232
|
-
if (
|
|
233
|
-
descriptionProperty.value.type !== AST_NODE_TYPES.ObjectExpression) {
|
|
232
|
+
if (descriptionProperty?.value?.type !== AST_NODE_TYPES.ObjectExpression) {
|
|
234
233
|
return;
|
|
235
234
|
}
|
|
236
235
|
const credentialsArray = findArrayLiteralProperty(descriptionProperty.value, 'credentials');
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { ESLintUtils } from '@typescript-eslint/utils';
|
|
2
|
-
export declare const createRule: <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<Options, MessageIds, unknown>>) => ESLintUtils.RuleModule<MessageIds, Options, unknown, ESLintUtils.RuleListener
|
|
2
|
+
export declare const createRule: <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<Options, MessageIds, unknown>>) => ESLintUtils.RuleModule<MessageIds, Options, unknown, ESLintUtils.RuleListener> & {
|
|
3
|
+
name: string;
|
|
4
|
+
};
|
|
3
5
|
//# sourceMappingURL=rule-creator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule-creator.d.ts","sourceRoot":"","sources":["../../src/utils/rule-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"rule-creator.d.ts","sourceRoot":"","sources":["../../src/utils/rule-creator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAKvD,eAAO,MAAM,UAAU;;CAA2E,CAAC"}
|
|
@@ -17,8 +17,8 @@ an error: most existing nodes ship a single icon, so this nudges authors toward
|
|
|
17
17
|
themed variants without failing verification.
|
|
18
18
|
|
|
19
19
|
The companion `icon-validation` rule still validates that the referenced files
|
|
20
|
-
exist
|
|
21
|
-
|
|
20
|
+
exist and use the `file:` protocol. Both slots can point to the same file if one
|
|
21
|
+
icon design works on both themes.
|
|
22
22
|
|
|
23
23
|
## Examples
|
|
24
24
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Validate node and credential icon files exist
|
|
1
|
+
# Validate node and credential icon files exist and use the file: protocol (`@n8n/community-nodes/icon-validation`)
|
|
2
2
|
|
|
3
3
|
💼 This rule is enabled in the following configs: ✅ `recommended`, ☑️ `recommendedWithoutN8nCloudSupport`.
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
## Rule Details
|
|
10
10
|
|
|
11
|
-
Validates that your node and credential icon files exist and use the correct `file:` protocol.
|
|
11
|
+
Validates that your node and credential icon files exist and use the correct `file:` protocol. The `light` and `dark` slots can point to the same file: one theme-agnostic icon is a valid choice, and you do not have to copy it under a second filename.
|
|
12
12
|
|
|
13
13
|
Both SVG and PNG icons are accepted. SVG is recommended (it scales cleanly and supports theming), but PNG is allowed — see the `icon-prefer-themed-variants` rule for the related light/dark nudge.
|
|
14
14
|
|
|
@@ -27,28 +27,28 @@ export class MyNode implements INodeType {
|
|
|
27
27
|
}
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
+
### ✅ Correct
|
|
31
|
+
|
|
30
32
|
```typescript
|
|
31
33
|
export class MyNode implements INodeType {
|
|
32
34
|
description: INodeTypeDescription = {
|
|
33
35
|
displayName: 'My Node',
|
|
34
36
|
name: 'myNode',
|
|
35
|
-
icon:
|
|
36
|
-
light: 'file:icons/my-icon.svg',
|
|
37
|
-
dark: 'file:icons/my-icon.svg', // Same file for both themes
|
|
38
|
-
},
|
|
37
|
+
icon: 'file:icons/my-service.svg', // Correct format
|
|
39
38
|
// ...
|
|
40
39
|
};
|
|
41
40
|
}
|
|
42
41
|
```
|
|
43
42
|
|
|
44
|
-
### ✅ Correct
|
|
45
|
-
|
|
46
43
|
```typescript
|
|
47
44
|
export class MyNode implements INodeType {
|
|
48
45
|
description: INodeTypeDescription = {
|
|
49
46
|
displayName: 'My Node',
|
|
50
47
|
name: 'myNode',
|
|
51
|
-
icon:
|
|
48
|
+
icon: {
|
|
49
|
+
light: 'file:icons/my-service-light.svg',
|
|
50
|
+
dark: 'file:icons/my-service-dark.svg', // Different files
|
|
51
|
+
},
|
|
52
52
|
// ...
|
|
53
53
|
};
|
|
54
54
|
}
|
|
@@ -60,8 +60,8 @@ export class MyNode implements INodeType {
|
|
|
60
60
|
displayName: 'My Node',
|
|
61
61
|
name: 'myNode',
|
|
62
62
|
icon: {
|
|
63
|
-
light: 'file:icons/my-service
|
|
64
|
-
dark: 'file:icons/my-service
|
|
63
|
+
light: 'file:icons/my-service.svg',
|
|
64
|
+
dark: 'file:icons/my-service.svg', // One file that works on both themes
|
|
65
65
|
},
|
|
66
66
|
// ...
|
|
67
67
|
};
|
package/eslint.config.mjs
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { defineConfig } from 'eslint/config';
|
|
2
|
-
import {
|
|
2
|
+
import { backendConfig } from '@n8n/eslint-config/backend';
|
|
3
3
|
import eslintPlugin from 'eslint-plugin-eslint-plugin';
|
|
4
4
|
|
|
5
5
|
export default defineConfig([
|
|
6
|
-
|
|
6
|
+
backendConfig,
|
|
7
7
|
eslintPlugin.configs.recommended,
|
|
8
8
|
{
|
|
9
9
|
files: ['src/**/*.ts'],
|
|
10
10
|
languageOptions: {
|
|
11
11
|
parserOptions: {
|
|
12
|
-
project: './tsconfig.json',
|
|
13
12
|
allowDefaultProject: true,
|
|
14
13
|
},
|
|
15
14
|
},
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@n8n/eslint-plugin-community-nodes",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.33.0",
|
|
5
5
|
"main": "./dist/plugin.js",
|
|
6
6
|
"types": "./dist/plugin.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -11,16 +11,16 @@
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@typescript-eslint/typescript-estree": "
|
|
15
|
-
"@typescript-eslint/utils": "
|
|
14
|
+
"@typescript-eslint/typescript-estree": "8.70.0",
|
|
15
|
+
"@typescript-eslint/utils": "8.70.0",
|
|
16
16
|
"fastest-levenshtein": "1.0.16"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
-
"@n8n/typescript-config": "1.
|
|
20
|
-
"@n8n/vitest-config": "1.
|
|
19
|
+
"@n8n/typescript-config": "1.12.0",
|
|
20
|
+
"@n8n/vitest-config": "1.22.0",
|
|
21
21
|
"@types/node": "24.10.1",
|
|
22
|
-
"n8n-workflow": "2.
|
|
23
|
-
"@typescript-eslint/rule-tester": "
|
|
22
|
+
"n8n-workflow": "2.40.0",
|
|
23
|
+
"@typescript-eslint/rule-tester": "8.70.0",
|
|
24
24
|
"eslint-doc-generator": "^2.2.2",
|
|
25
25
|
"eslint-plugin-eslint-plugin": "^7.0.0",
|
|
26
26
|
"rimraf": "6.0.1",
|
|
@@ -69,10 +69,7 @@ export const CredentialPasswordFieldRule = createRule({
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
const propertiesProperty = findClassProperty(node, 'properties');
|
|
72
|
-
if (
|
|
73
|
-
!propertiesProperty?.value ||
|
|
74
|
-
propertiesProperty.value.type !== TSESTree.AST_NODE_TYPES.ArrayExpression
|
|
75
|
-
) {
|
|
72
|
+
if (propertiesProperty?.value?.type !== TSESTree.AST_NODE_TYPES.ArrayExpression) {
|
|
76
73
|
return;
|
|
77
74
|
}
|
|
78
75
|
|
|
@@ -33,10 +33,7 @@ export const CredentialUnnecessaryPasswordRule = createRule({
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
const propertiesProperty = findClassProperty(node, 'properties');
|
|
36
|
-
if (
|
|
37
|
-
!propertiesProperty?.value ||
|
|
38
|
-
propertiesProperty.value.type !== TSESTree.AST_NODE_TYPES.ArrayExpression
|
|
39
|
-
) {
|
|
36
|
+
if (propertiesProperty?.value?.type !== TSESTree.AST_NODE_TYPES.ArrayExpression) {
|
|
40
37
|
return;
|
|
41
38
|
}
|
|
42
39
|
|