@salesforce-ux/eslint-plugin-slds 1.1.1 → 1.2.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/build/index.js CHANGED
@@ -53,6 +53,7 @@ var require_eslint_rules = __commonJS({
53
53
 
54
54
  // src/index.ts
55
55
  var import_enforce_bem_usage = __toESM(require("./rules/enforce-bem-usage"));
56
+ var import_no_deprecated_slds_classes = __toESM(require("./rules/v9/no-deprecated-slds-classes"));
56
57
  var import_no_deprecated_classes_slds2 = __toESM(require("./rules/no-deprecated-classes-slds2"));
57
58
  var import_modal_close_button_issue = __toESM(require("./rules/modal-close-button-issue"));
58
59
  var import_no_slds_class_overrides = __toESM(require("./rules/v9/no-slds-class-overrides"));
@@ -73,6 +74,7 @@ var import_css = __toESM(require("@eslint/css"));
73
74
  var import_eslint_rules = __toESM(require_eslint_rules());
74
75
  var rules = {
75
76
  "enforce-bem-usage": import_enforce_bem_usage.default,
77
+ "no-deprecated-slds-classes": import_no_deprecated_slds_classes.default,
76
78
  "no-deprecated-classes-slds2": import_no_deprecated_classes_slds2.default,
77
79
  "modal-close-button-issue": import_modal_close_button_issue.default,
78
80
  "no-slds-class-overrides": import_no_slds_class_overrides.default,
@@ -92,7 +94,7 @@ var rules = {
92
94
  var plugin = {
93
95
  meta: {
94
96
  name: "@salesforce-ux/eslint-plugin-slds",
95
- version: "1.1.1"
97
+ version: "1.2.0"
96
98
  },
97
99
  rules,
98
100
  configs: {}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["json-inline:eslint.rules.json", "../src/index.ts"],
4
- "sourcesContent": ["module.exports = {\n \"css\": {\n \"@salesforce-ux/slds/no-slds-class-overrides\": \"warn\",\n \"@salesforce-ux/slds/no-deprecated-classes-slds2\": \"warn\",\n \"@salesforce-ux/slds/lwc-token-to-slds-hook\": \"error\",\n \"@salesforce-ux/slds/enforce-sds-to-slds-hooks\": \"warn\",\n \"@salesforce-ux/slds/no-sldshook-fallback-for-lwctoken\": \"warn\",\n \"@salesforce-ux/slds/no-unsupported-hooks-slds2\": \"warn\",\n \"@salesforce-ux/slds/no-slds-var-without-fallback\": \"warn\",\n \"@salesforce-ux/slds/no-slds-namespace-for-custom-hooks\": \"warn\",\n \"@salesforce-ux/slds/enforce-component-hook-naming-convention\": \"error\",\n \"@salesforce-ux/slds/no-slds-private-var\": \"warn\",\n \"@salesforce-ux/slds/no-hardcoded-values-slds2\": \"warn\",\n \"@salesforce-ux/slds/reduce-annotations\": \"warn\"\n },\n \"html\": { \n \"@salesforce-ux/slds/enforce-bem-usage\": \"error\",\n \"@salesforce-ux/slds/no-deprecated-classes-slds2\": \"error\",\n \"@salesforce-ux/slds/modal-close-button-issue\": \"error\"\n }\n};", "// Unified ESLint plugin config for both v8 (legacy) and v9+ (flat)\n\nimport enforceBemUsage from './rules/enforce-bem-usage';\nimport noDeprecatedClassesSlds2 from './rules/no-deprecated-classes-slds2';\nimport modalCloseButtonIssue from './rules/modal-close-button-issue';\nimport noSldsClassOverrides from './rules/v9/no-slds-class-overrides';\nimport noDeprecatedTokensSlds1 from './rules/v9/no-deprecated-tokens-slds1';\nimport lwcTokenToSldsHook from './rules/v9/lwc-token-to-slds-hook';\nimport enforceSdsToSldsHooks from './rules/v9/enforce-sds-to-slds-hooks';\nimport noSldshookFallbackForLwctoken from './rules/v9/no-sldshook-fallback-for-lwctoken';\nimport noUnsupportedHooksSlds2 from './rules/v9/no-unsupported-hooks-slds2';\nimport noSldsVarWithoutFallback from './rules/v9/no-slds-var-without-fallback';\nimport noSldsNamespaceForCustomHooks from './rules/v9/no-slds-namespace-for-custom-hooks';\nimport enforceComponentHookNamingConvention from './rules/v9/enforce-component-hook-naming-convention';\nimport reduceAnnotations from './rules/v9/reduce-annotations';\nimport noSldsPrivateVar from './rules/v9/no-slds-private-var';\nimport noHardcodedValuesSlds1 from './rules/v9/no-hardcoded-values/no-hardcoded-values-slds1';\nimport noHardcodedValuesSlds2 from './rules/v9/no-hardcoded-values/no-hardcoded-values-slds2';\n\n\nimport htmlParser from \"@html-eslint/parser\";\nimport cssPlugin from \"@eslint/css\";\n\n// Import rule configurations based on persona\nimport ruleConfigs from '../eslint.rules.json';\n\nconst rules = {\n \"enforce-bem-usage\": enforceBemUsage,\n \"no-deprecated-classes-slds2\": noDeprecatedClassesSlds2,\n \"modal-close-button-issue\": modalCloseButtonIssue,\n \"no-slds-class-overrides\": noSldsClassOverrides,\n \"no-deprecated-tokens-slds1\": noDeprecatedTokensSlds1,\n \"lwc-token-to-slds-hook\": lwcTokenToSldsHook,\n \"enforce-sds-to-slds-hooks\": enforceSdsToSldsHooks,\n \"no-sldshook-fallback-for-lwctoken\": noSldshookFallbackForLwctoken,\n \"no-unsupported-hooks-slds2\": noUnsupportedHooksSlds2,\n \"no-slds-var-without-fallback\": noSldsVarWithoutFallback,\n \"no-slds-namespace-for-custom-hooks\": noSldsNamespaceForCustomHooks,\n \"enforce-component-hook-naming-convention\": enforceComponentHookNamingConvention,\n \"no-slds-private-var\": noSldsPrivateVar,\n \"no-hardcoded-values-slds1\": noHardcodedValuesSlds1,\n \"no-hardcoded-values-slds2\": noHardcodedValuesSlds2,\n \"reduce-annotations\": reduceAnnotations\n};\n\nconst plugin = {\n meta: {\n name: \"@salesforce-ux/eslint-plugin-slds\",\n version: process.env.PLUGIN_VERSION\n },\n rules,\n configs: {}\n};\n\n// Base CSS config with CSS plugin included (required for SLDS plugin to work independently)\nconst baseCssConfigWithPlugin = {\n files: [\"**/*.{css,scss}\"],\n language: \"css/css\",\n languageOptions: {\n tolerant: true // Allow recoverable parsing errors for SCSS syntax\n },\n plugins: {\n css: cssPlugin,\n \"@salesforce-ux/slds\": plugin,\n },\n rules: ruleConfigs.css,\n settings: {\n // Pass rules configuration to context for runtime access\n sldsRules: { ...ruleConfigs.css }\n }\n};\n\n// CSS config array built from base config (self-sufficient with CSS plugin)\nconst cssConfigArray = [baseCssConfigWithPlugin];\n\nconst htmlConfigArray = [\n // HTML/Component config\n {\n files: [\"**/*.html\", \"**/*.cmp\"],\n languageOptions: {\n parser: htmlParser,\n ecmaVersion: 2021,\n sourceType: \"module\"\n },\n plugins: {\n \"@salesforce-ux/slds\": plugin\n },\n rules: ruleConfigs.html\n }\n];\n\nObject.assign(plugin.configs, {\n // Flat config for ESLint v9+\n \"flat/recommended-css\": cssConfigArray,\n \"flat/recommended-html\": htmlConfigArray,\n \"flat/recommended\": [...cssConfigArray, ...htmlConfigArray],\n // legacy config for ESLint v8-\n recommended: {\n plugins: [\"@salesforce-ux/slds\"],\n rules: ruleConfigs.html,\n parser: htmlParser,\n parserOptions: {\n ecmaVersion: 2021,\n sourceType: \"module\"\n }\n }\n});\n\nfunction sldsCssPlugin() {\n return {\n ...baseCssConfigWithPlugin.plugins,\n }\n}\n\nmodule.exports = plugin;\nmodule.exports.sldsCssPlugin = sldsCssPlugin;\n"],
5
- "mappings": "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",
6
- "names": ["exports", "module", "enforceBemUsage", "noDeprecatedClassesSlds2", "modalCloseButtonIssue", "noSldsClassOverrides", "noDeprecatedTokensSlds1", "lwcTokenToSldsHook", "enforceSdsToSldsHooks", "noSldshookFallbackForLwctoken", "noUnsupportedHooksSlds2", "noSldsVarWithoutFallback", "noSldsNamespaceForCustomHooks", "enforceComponentHookNamingConvention", "noSldsPrivateVar", "noHardcodedValuesSlds1", "noHardcodedValuesSlds2", "reduceAnnotations", "cssPlugin", "ruleConfigs", "htmlParser"]
4
+ "sourcesContent": ["module.exports = {\n \"css\": {\n \"@salesforce-ux/slds/no-slds-class-overrides\": \"warn\",\n \"@salesforce-ux/slds/no-deprecated-classes-slds2\": \"warn\",\n \"@salesforce-ux/slds/lwc-token-to-slds-hook\": \"error\",\n \"@salesforce-ux/slds/enforce-sds-to-slds-hooks\": \"warn\",\n \"@salesforce-ux/slds/no-sldshook-fallback-for-lwctoken\": \"warn\",\n \"@salesforce-ux/slds/no-unsupported-hooks-slds2\": \"warn\",\n \"@salesforce-ux/slds/no-slds-var-without-fallback\": \"warn\",\n \"@salesforce-ux/slds/no-slds-namespace-for-custom-hooks\": \"warn\",\n \"@salesforce-ux/slds/enforce-component-hook-naming-convention\": \"error\",\n \"@salesforce-ux/slds/no-slds-private-var\": \"warn\",\n \"@salesforce-ux/slds/no-hardcoded-values-slds2\": \"warn\",\n \"@salesforce-ux/slds/reduce-annotations\": \"warn\"\n },\n \"html\": { \n \"@salesforce-ux/slds/enforce-bem-usage\": \"error\",\n \"@salesforce-ux/slds/no-deprecated-classes-slds2\": \"error\",\n \"@salesforce-ux/slds/modal-close-button-issue\": \"error\"\n }\n};", "// Unified ESLint plugin config for both v8 (legacy) and v9+ (flat)\n\nimport enforceBemUsage from './rules/enforce-bem-usage';\nimport noDeprecatedSldsClasses from './rules/v9/no-deprecated-slds-classes';\nimport noDeprecatedClassesSlds2 from './rules/no-deprecated-classes-slds2';\nimport modalCloseButtonIssue from './rules/modal-close-button-issue';\nimport noSldsClassOverrides from './rules/v9/no-slds-class-overrides';\nimport noDeprecatedTokensSlds1 from './rules/v9/no-deprecated-tokens-slds1';\nimport lwcTokenToSldsHook from './rules/v9/lwc-token-to-slds-hook';\nimport enforceSdsToSldsHooks from './rules/v9/enforce-sds-to-slds-hooks';\nimport noSldshookFallbackForLwctoken from './rules/v9/no-sldshook-fallback-for-lwctoken';\nimport noUnsupportedHooksSlds2 from './rules/v9/no-unsupported-hooks-slds2';\nimport noSldsVarWithoutFallback from './rules/v9/no-slds-var-without-fallback';\nimport noSldsNamespaceForCustomHooks from './rules/v9/no-slds-namespace-for-custom-hooks';\nimport enforceComponentHookNamingConvention from './rules/v9/enforce-component-hook-naming-convention';\nimport reduceAnnotations from './rules/v9/reduce-annotations';\nimport noSldsPrivateVar from './rules/v9/no-slds-private-var';\nimport noHardcodedValuesSlds1 from './rules/v9/no-hardcoded-values/no-hardcoded-values-slds1';\nimport noHardcodedValuesSlds2 from './rules/v9/no-hardcoded-values/no-hardcoded-values-slds2';\n\nimport htmlParser from \"@html-eslint/parser\";\nimport cssPlugin from \"@eslint/css\";\n\n// Import rule configurations based on persona\nimport ruleConfigs from '../eslint.rules.json';\n\nconst rules = {\n \"enforce-bem-usage\": enforceBemUsage,\n \"no-deprecated-slds-classes\": noDeprecatedSldsClasses,\n \"no-deprecated-classes-slds2\": noDeprecatedClassesSlds2,\n \"modal-close-button-issue\": modalCloseButtonIssue,\n \"no-slds-class-overrides\": noSldsClassOverrides,\n \"no-deprecated-tokens-slds1\": noDeprecatedTokensSlds1,\n \"lwc-token-to-slds-hook\": lwcTokenToSldsHook,\n \"enforce-sds-to-slds-hooks\": enforceSdsToSldsHooks,\n \"no-sldshook-fallback-for-lwctoken\": noSldshookFallbackForLwctoken,\n \"no-unsupported-hooks-slds2\": noUnsupportedHooksSlds2,\n \"no-slds-var-without-fallback\": noSldsVarWithoutFallback,\n \"no-slds-namespace-for-custom-hooks\": noSldsNamespaceForCustomHooks,\n \"enforce-component-hook-naming-convention\": enforceComponentHookNamingConvention,\n \"no-slds-private-var\": noSldsPrivateVar,\n \"no-hardcoded-values-slds1\": noHardcodedValuesSlds1,\n \"no-hardcoded-values-slds2\": noHardcodedValuesSlds2,\n \"reduce-annotations\": reduceAnnotations\n};\n\nconst plugin = {\n meta: {\n name: \"@salesforce-ux/eslint-plugin-slds\",\n version: process.env.PLUGIN_VERSION\n },\n rules,\n configs: {}\n};\n\n// Base CSS config with CSS plugin included (required for SLDS plugin to work independently)\nconst baseCssConfigWithPlugin = {\n files: [\"**/*.{css,scss}\"],\n language: \"css/css\",\n languageOptions: {\n tolerant: true // Allow recoverable parsing errors for SCSS syntax\n },\n plugins: {\n css: cssPlugin,\n \"@salesforce-ux/slds\": plugin,\n },\n rules: ruleConfigs.css,\n settings: {\n // Pass rules configuration to context for runtime access\n sldsRules: { ...ruleConfigs.css }\n }\n};\n\n// CSS config array built from base config (self-sufficient with CSS plugin)\nconst cssConfigArray = [baseCssConfigWithPlugin];\n\nconst htmlConfigArray = [\n // HTML/Component config\n {\n files: [\"**/*.html\", \"**/*.cmp\"],\n languageOptions: {\n parser: htmlParser,\n ecmaVersion: 2021,\n sourceType: \"module\"\n },\n plugins: {\n \"@salesforce-ux/slds\": plugin\n },\n rules: ruleConfigs.html\n }\n];\n\nObject.assign(plugin.configs, {\n // Flat config for ESLint v9+\n \"flat/recommended-css\": cssConfigArray,\n \"flat/recommended-html\": htmlConfigArray,\n \"flat/recommended\": [...cssConfigArray, ...htmlConfigArray],\n // legacy config for ESLint v8-\n recommended: {\n plugins: [\"@salesforce-ux/slds\"],\n rules: ruleConfigs.html,\n parser: htmlParser,\n parserOptions: {\n ecmaVersion: 2021,\n sourceType: \"module\"\n }\n }\n});\n\nfunction sldsCssPlugin() {\n return {\n ...baseCssConfigWithPlugin.plugins,\n }\n}\n\nmodule.exports = plugin;\nmodule.exports.sldsCssPlugin = sldsCssPlugin;\n"],
5
+ "mappings": "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",
6
+ "names": ["exports", "module", "enforceBemUsage", "noDeprecatedSldsClasses", "noDeprecatedClassesSlds2", "modalCloseButtonIssue", "noSldsClassOverrides", "noDeprecatedTokensSlds1", "lwcTokenToSldsHook", "enforceSdsToSldsHooks", "noSldshookFallbackForLwctoken", "noUnsupportedHooksSlds2", "noSldsVarWithoutFallback", "noSldsNamespaceForCustomHooks", "enforceComponentHookNamingConvention", "noSldsPrivateVar", "noHardcodedValuesSlds1", "noHardcodedValuesSlds2", "reduceAnnotations", "cssPlugin", "ruleConfigs", "htmlParser"]
7
7
  }
@@ -1,4 +1,3 @@
1
- import { Rule } from 'eslint';
2
1
  declare const noDeprecatedClassesSlds2: {
3
2
  meta: {
4
3
  type: "problem" | "suggestion" | "layout";
@@ -11,8 +10,6 @@ declare const noDeprecatedClassesSlds2: {
11
10
  schema: any[];
12
11
  messages: Record<string, string>;
13
12
  };
14
- create(context: any): Rule.NodeListener | {
15
- Tag: (node: any) => void;
16
- };
13
+ create(context: any): {};
17
14
  };
18
15
  export = noDeprecatedClassesSlds2;
@@ -25,7 +25,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
25
25
  var import_node = require("../utils/node");
26
26
  var import_sds_metadata = __toESM(require("@salesforce-ux/sds-metadata"));
27
27
  var import_rule_messages = __toESM(require("../config/rule-messages"));
28
- var import_no_deprecated_slds_classes = __toESM(require("./v9/no-deprecated-slds-classes"));
28
+ var import_no_deprecated_slds_classes = require("./v9/no-deprecated-slds-classes");
29
29
  var deprecatedClasses = import_sds_metadata.default.deprecatedClasses;
30
30
  var ruleConfig = import_rule_messages.default["no-deprecated-classes-slds2"];
31
31
  var { type, description, url, messages } = ruleConfig;
@@ -83,7 +83,7 @@ var noDeprecatedClassesSlds2 = {
83
83
  const filename = context.filename || context.getFilename();
84
84
  if (filename.endsWith(".css") || filename.endsWith(".scss")) {
85
85
  try {
86
- return import_no_deprecated_slds_classes.default.create(context);
86
+ return (0, import_no_deprecated_slds_classes.createCssVisitor)(context);
87
87
  } catch (error) {
88
88
  return {};
89
89
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/rules/no-deprecated-classes-slds2.ts"],
4
- "sourcesContent": ["import { Rule } from 'eslint';\nimport { findAttr, isAttributesEmpty } from \"../utils/node\";\nimport metadata from '@salesforce-ux/sds-metadata';\nimport ruleMessages from '../config/rule-messages';\nimport noDeprecatedSldsClassesCss from './v9/no-deprecated-slds-classes';\n\nconst deprecatedClasses = metadata.deprecatedClasses;\nconst ruleConfig = ruleMessages['no-deprecated-classes-slds2'];\nconst { type, description, url, messages } = ruleConfig;\n\n/**\n * HTML implementation for detecting deprecated SLDS classes in HTML templates.\n * Checks class attributes on HTML elements for deprecated class names.\n */\nconst noDeprecatedClassesSlds2Html = {\n create(context) {\n function check(node) {\n if (isAttributesEmpty(node)) {\n return;\n }\n\n const classAttr = findAttr(node, \"class\");\n if (classAttr && classAttr.value) {\n const classNames = classAttr.value.value.split(/\\s+/);\n classNames.forEach((className) => {\n if (className && deprecatedClasses.includes(className)) {\n // Find the exact location of the problematic class name\n const classNameStart = classAttr.value.value.indexOf(className) + 7; // 7 here is for `class= \"`\n const classNameEnd = classNameStart + className.length;\n\n // Use the loc property to get line and column from the class attribute\n const startLoc = {\n line: classAttr.loc.start.line,\n column: classAttr.loc.start.column + classNameStart,\n };\n const endLoc = {\n line: classAttr.loc.start.line,\n column: classAttr.loc.start.column + classNameEnd,\n };\n\n context.report({\n node,\n loc: { start: startLoc, end: endLoc },\n messageId: 'deprecatedClass',\n data: {\n className,\n },\n });\n }\n });\n }\n }\n\n return {\n Tag: check,\n };\n },\n};\n\n// Create a hybrid rule that works for both HTML and CSS\nconst noDeprecatedClassesSlds2 = {\n meta: {\n type,\n docs: {\n category: \"Best Practices\",\n recommended: true,\n description,\n url\n },\n schema: [],\n messages\n },\n\n create(context) {\n const filename = context.filename || context.getFilename();\n\n // Check if we're in a CSS context\n if (filename.endsWith('.css') || filename.endsWith('.scss')) {\n // Try to detect if we have CSS support\n // In ESLint v9 with @eslint/css, we should have CSS AST support\n try {\n // Use CSS implementation (ESLint v9 with @eslint/css)\n return noDeprecatedSldsClassesCss.create(context);\n } catch (error) {\n // If CSS implementation fails, likely ESLint v8 without CSS support\n // Return empty visitor to avoid errors\n return {};\n }\n } else {\n // Use HTML implementation (compatible with both ESLint v8 and v9)\n return noDeprecatedClassesSlds2Html.create(context);\n }\n },\n};\n\nexport = noDeprecatedClassesSlds2;"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AACA,kBAA4C;AAC5C,0BAAqB;AACrB,2BAAyB;AACzB,wCAAuC;AAEvC,IAAM,oBAAoB,oBAAAA,QAAS;AACnC,IAAM,aAAa,qBAAAC,QAAa,6BAA6B;AAC7D,IAAM,EAAE,MAAM,aAAa,KAAK,SAAS,IAAI;AAM7C,IAAM,+BAA+B;AAAA,EACnC,OAAO,SAAS;AACd,aAAS,MAAM,MAAM;AACnB,cAAI,+BAAkB,IAAI,GAAG;AAC3B;AAAA,MACF;AAEA,YAAM,gBAAY,sBAAS,MAAM,OAAO;AACxC,UAAI,aAAa,UAAU,OAAO;AAChC,cAAM,aAAa,UAAU,MAAM,MAAM,MAAM,KAAK;AACpD,mBAAW,QAAQ,CAAC,cAAc;AAChC,cAAI,aAAa,kBAAkB,SAAS,SAAS,GAAG;AAEtD,kBAAM,iBAAiB,UAAU,MAAM,MAAM,QAAQ,SAAS,IAAI;AAClE,kBAAM,eAAe,iBAAiB,UAAU;AAGhD,kBAAM,WAAW;AAAA,cACf,MAAM,UAAU,IAAI,MAAM;AAAA,cAC1B,QAAQ,UAAU,IAAI,MAAM,SAAS;AAAA,YACvC;AACA,kBAAM,SAAS;AAAA,cACb,MAAM,UAAU,IAAI,MAAM;AAAA,cAC1B,QAAQ,UAAU,IAAI,MAAM,SAAS;AAAA,YACvC;AAEA,oBAAQ,OAAO;AAAA,cACb;AAAA,cACA,KAAK,EAAE,OAAO,UAAU,KAAK,OAAO;AAAA,cACpC,WAAW;AAAA,cACX,MAAM;AAAA,gBACJ;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACF;AAGA,IAAM,2BAA2B;AAAA,EAC/B,MAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACJ,UAAU;AAAA,MACV,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAAA,IACA,QAAQ,CAAC;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO,SAAS;AACd,UAAM,WAAW,QAAQ,YAAY,QAAQ,YAAY;AAGzD,QAAI,SAAS,SAAS,MAAM,KAAK,SAAS,SAAS,OAAO,GAAG;AAG3D,UAAI;AAEF,eAAO,kCAAAC,QAA2B,OAAO,OAAO;AAAA,MAClD,SAAS,OAAO;AAGd,eAAO,CAAC;AAAA,MACV;AAAA,IACF,OAAO;AAEL,aAAO,6BAA6B,OAAO,OAAO;AAAA,IACpD;AAAA,EACF;AACF;AAEA,iBAAS;",
6
- "names": ["metadata", "ruleMessages", "noDeprecatedSldsClassesCss"]
4
+ "sourcesContent": ["import { Rule } from 'eslint';\nimport { findAttr, isAttributesEmpty } from \"../utils/node\";\nimport metadata from '@salesforce-ux/sds-metadata';\nimport ruleMessages from '../config/rule-messages';\nimport { createCssVisitor } from './v9/no-deprecated-slds-classes';\n\nconst deprecatedClasses = metadata.deprecatedClasses;\nconst ruleConfig = ruleMessages['no-deprecated-classes-slds2'];\nconst { type, description, url, messages } = ruleConfig;\n\n/**\n * HTML implementation for detecting deprecated SLDS classes in HTML templates.\n * Checks class attributes on HTML elements for deprecated class names.\n */\nconst noDeprecatedClassesSlds2Html = {\n create(context) {\n function check(node) {\n if (isAttributesEmpty(node)) {\n return;\n }\n\n const classAttr = findAttr(node, \"class\");\n if (classAttr && classAttr.value) {\n const classNames = classAttr.value.value.split(/\\s+/);\n classNames.forEach((className) => {\n if (className && deprecatedClasses.includes(className)) {\n // Find the exact location of the problematic class name\n const classNameStart = classAttr.value.value.indexOf(className) + 7; // 7 here is for `class= \"`\n const classNameEnd = classNameStart + className.length;\n\n // Use the loc property to get line and column from the class attribute\n const startLoc = {\n line: classAttr.loc.start.line,\n column: classAttr.loc.start.column + classNameStart,\n };\n const endLoc = {\n line: classAttr.loc.start.line,\n column: classAttr.loc.start.column + classNameEnd,\n };\n\n context.report({\n node,\n loc: { start: startLoc, end: endLoc },\n messageId: 'deprecatedClass',\n data: {\n className,\n },\n });\n }\n });\n }\n }\n\n return {\n Tag: check,\n };\n },\n};\n\n// Create a hybrid rule that works for both HTML and CSS\nconst noDeprecatedClassesSlds2 = {\n meta: {\n type,\n docs: {\n category: \"Best Practices\",\n recommended: true,\n description,\n url\n },\n schema: [],\n messages\n },\n\n create(context) {\n const filename = context.filename || context.getFilename();\n\n // Check if we're in a CSS context\n if (filename.endsWith('.css') || filename.endsWith('.scss')) {\n // Try to detect if we have CSS support\n // In ESLint v9 with @eslint/css, we should have CSS AST support\n try {\n // Use CSS implementation (ESLint v9 with @eslint/css)\n return createCssVisitor(context);\n } catch (error) {\n // If CSS implementation fails, likely ESLint v8 without CSS support\n // Return empty visitor to avoid errors\n return {};\n }\n } else {\n // Use HTML implementation (compatible with both ESLint v8 and v9)\n return noDeprecatedClassesSlds2Html.create(context);\n }\n },\n};\n\nexport = noDeprecatedClassesSlds2;"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AACA,kBAA4C;AAC5C,0BAAqB;AACrB,2BAAyB;AACzB,wCAAiC;AAEjC,IAAM,oBAAoB,oBAAAA,QAAS;AACnC,IAAM,aAAa,qBAAAC,QAAa,6BAA6B;AAC7D,IAAM,EAAE,MAAM,aAAa,KAAK,SAAS,IAAI;AAM7C,IAAM,+BAA+B;AAAA,EACnC,OAAO,SAAS;AACd,aAAS,MAAM,MAAM;AACnB,cAAI,+BAAkB,IAAI,GAAG;AAC3B;AAAA,MACF;AAEA,YAAM,gBAAY,sBAAS,MAAM,OAAO;AACxC,UAAI,aAAa,UAAU,OAAO;AAChC,cAAM,aAAa,UAAU,MAAM,MAAM,MAAM,KAAK;AACpD,mBAAW,QAAQ,CAAC,cAAc;AAChC,cAAI,aAAa,kBAAkB,SAAS,SAAS,GAAG;AAEtD,kBAAM,iBAAiB,UAAU,MAAM,MAAM,QAAQ,SAAS,IAAI;AAClE,kBAAM,eAAe,iBAAiB,UAAU;AAGhD,kBAAM,WAAW;AAAA,cACf,MAAM,UAAU,IAAI,MAAM;AAAA,cAC1B,QAAQ,UAAU,IAAI,MAAM,SAAS;AAAA,YACvC;AACA,kBAAM,SAAS;AAAA,cACb,MAAM,UAAU,IAAI,MAAM;AAAA,cAC1B,QAAQ,UAAU,IAAI,MAAM,SAAS;AAAA,YACvC;AAEA,oBAAQ,OAAO;AAAA,cACb;AAAA,cACA,KAAK,EAAE,OAAO,UAAU,KAAK,OAAO;AAAA,cACpC,WAAW;AAAA,cACX,MAAM;AAAA,gBACJ;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF,CAAC;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,MACL,KAAK;AAAA,IACP;AAAA,EACF;AACF;AAGA,IAAM,2BAA2B;AAAA,EAC/B,MAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACJ,UAAU;AAAA,MACV,aAAa;AAAA,MACb;AAAA,MACA;AAAA,IACF;AAAA,IACA,QAAQ,CAAC;AAAA,IACT;AAAA,EACF;AAAA,EAEA,OAAO,SAAS;AACd,UAAM,WAAW,QAAQ,YAAY,QAAQ,YAAY;AAGzD,QAAI,SAAS,SAAS,MAAM,KAAK,SAAS,SAAS,OAAO,GAAG;AAG3D,UAAI;AAEF,mBAAO,oDAAiB,OAAO;AAAA,MACjC,SAAS,OAAO;AAGd,eAAO,CAAC;AAAA,MACV;AAAA,IACF,OAAO;AAEL,aAAO,6BAA6B,OAAO,OAAO;AAAA,IACpD;AAAA,EACF;AACF;AAEA,iBAAS;",
6
+ "names": ["metadata", "ruleMessages"]
7
7
  }
@@ -1,4 +1,11 @@
1
1
  import { Rule } from 'eslint';
2
+ /**
3
+ * Creates the CSS visitor for detecting deprecated SLDS classes.
4
+ * Exported separately so the hybrid rule can reuse it without triggering the deprecation guard.
5
+ */
6
+ export declare function createCssVisitor(context: any): {
7
+ "SelectorList Selector ClassSelector"(node: any): void;
8
+ };
2
9
  /**
3
10
  * CSS implementation for detecting deprecated SLDS classes in CSS files.
4
11
  * Checks class selectors for deprecated class names.
@@ -29,14 +29,32 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  // src/rules/v9/no-deprecated-slds-classes.ts
30
30
  var no_deprecated_slds_classes_exports = {};
31
31
  __export(no_deprecated_slds_classes_exports, {
32
+ createCssVisitor: () => createCssVisitor,
32
33
  default: () => no_deprecated_slds_classes_default
33
34
  });
34
35
  module.exports = __toCommonJS(no_deprecated_slds_classes_exports);
35
36
  var import_sds_metadata = __toESM(require("@salesforce-ux/sds-metadata"));
36
37
  var import_rule_messages = __toESM(require("../../config/rule-messages"));
38
+ var import_rule_utils = require("../../utils/rule-utils");
37
39
  var { type, description, url, messages } = import_rule_messages.default["no-deprecated-classes-slds2"];
38
40
  var deprecatedClasses = import_sds_metadata.default.deprecatedClasses;
39
41
  var deprecatedClassesSet = new Set(deprecatedClasses);
42
+ function createCssVisitor(context) {
43
+ return {
44
+ // Check all class selectors for deprecated classes
45
+ "SelectorList Selector ClassSelector"(node) {
46
+ const cssClassSelector = context.sourceCode.getText(node);
47
+ const className = cssClassSelector.substring(1);
48
+ if (className && deprecatedClassesSet.has(className)) {
49
+ context.report({
50
+ node,
51
+ messageId: "deprecatedClass",
52
+ data: { className }
53
+ });
54
+ }
55
+ }
56
+ };
57
+ }
40
58
  var no_deprecated_slds_classes_default = {
41
59
  meta: {
42
60
  type,
@@ -45,23 +63,32 @@ var no_deprecated_slds_classes_default = {
45
63
  recommended: true,
46
64
  url
47
65
  },
48
- messages
66
+ messages,
67
+ deprecated: {
68
+ message: "This CSS-only rule is deprecated. Use the hybrid 'no-deprecated-classes-slds2' rule instead, which handles both HTML and CSS.",
69
+ replacedBy: [
70
+ {
71
+ message: "Use 'no-deprecated-classes-slds2' which supports both HTML and CSS files.",
72
+ plugin: {
73
+ name: "@salesforce-ux/eslint-plugin-slds"
74
+ },
75
+ rule: {
76
+ name: "no-deprecated-classes-slds2",
77
+ url: "https://developer.salesforce.com/docs/platform/slds-linter/guide/reference-rules.html#no-deprecated-classes-slds2"
78
+ }
79
+ }
80
+ ]
81
+ }
49
82
  },
50
83
  create(context) {
51
- return {
52
- // Check all class selectors for deprecated classes
53
- "SelectorList Selector ClassSelector"(node) {
54
- const cssClassSelector = context.sourceCode.getText(node);
55
- const className = cssClassSelector.substring(1);
56
- if (className && deprecatedClassesSet.has(className)) {
57
- context.report({
58
- node,
59
- messageId: "deprecatedClass",
60
- data: { className }
61
- });
62
- }
63
- }
64
- };
84
+ if ((0, import_rule_utils.isRuleEnabled)(context, "@salesforce-ux/slds/no-deprecated-classes-slds2")) {
85
+ return {};
86
+ }
87
+ return createCssVisitor(context);
65
88
  }
66
89
  };
90
+ // Annotate the CommonJS export names for ESM import in node:
91
+ 0 && (module.exports = {
92
+ createCssVisitor
93
+ });
67
94
  //# sourceMappingURL=no-deprecated-slds-classes.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/rules/v9/no-deprecated-slds-classes.ts"],
4
- "sourcesContent": ["import { Rule } from 'eslint';\nimport metadata from '@salesforce-ux/sds-metadata';\nimport ruleMessages from '../../config/rule-messages';\n\n// Use the same config as the main hybrid rule (no-deprecated-classes-slds2)\nconst { type, description, url, messages } = ruleMessages['no-deprecated-classes-slds2'];\n\nconst deprecatedClasses = metadata.deprecatedClasses;\nconst deprecatedClassesSet = new Set(deprecatedClasses);\n\n/**\n * CSS implementation for detecting deprecated SLDS classes in CSS files.\n * Checks class selectors for deprecated class names.\n * Used by the hybrid no-deprecated-classes-slds2 rule for CSS contexts.\n */\nexport default {\n meta: {\n type,\n docs: {\n description,\n recommended: true,\n url,\n },\n messages,\n },\n\n create(context) {\n return {\n // Check all class selectors for deprecated classes\n \"SelectorList Selector ClassSelector\"(node) {\n const cssClassSelector = context.sourceCode.getText(node);\n\n // Extract class name (remove the leading dot)\n const className = cssClassSelector.substring(1);\n\n // Check if it's a deprecated SLDS class\n if (className && deprecatedClassesSet.has(className)) {\n context.report({\n node,\n messageId: 'deprecatedClass',\n data: { className },\n });\n }\n },\n };\n },\n} as Rule.RuleModule;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAqB;AACrB,2BAAyB;AAGzB,IAAM,EAAE,MAAM,aAAa,KAAK,SAAS,IAAI,qBAAAA,QAAa,6BAA6B;AAEvF,IAAM,oBAAoB,oBAAAC,QAAS;AACnC,IAAM,uBAAuB,IAAI,IAAI,iBAAiB;AAOtD,IAAO,qCAAQ;AAAA,EACb,MAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACJ;AAAA,MACA,aAAa;AAAA,MACb;AAAA,IACF;AAAA,IACA;AAAA,EACF;AAAA,EAEA,OAAO,SAAS;AACd,WAAO;AAAA;AAAA,MAEL,sCAAsC,MAAM;AAC1C,cAAM,mBAAmB,QAAQ,WAAW,QAAQ,IAAI;AAGxD,cAAM,YAAY,iBAAiB,UAAU,CAAC;AAG9C,YAAI,aAAa,qBAAqB,IAAI,SAAS,GAAG;AACpD,kBAAQ,OAAO;AAAA,YACb;AAAA,YACA,WAAW;AAAA,YACX,MAAM,EAAE,UAAU;AAAA,UACpB,CAAC;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
4
+ "sourcesContent": ["import { Rule } from 'eslint';\nimport metadata from '@salesforce-ux/sds-metadata';\nimport ruleMessages from '../../config/rule-messages';\nimport { isRuleEnabled } from '../../utils/rule-utils';\n\n// Use the same config as the main hybrid rule (no-deprecated-classes-slds2)\nconst { type, description, url, messages } = ruleMessages['no-deprecated-classes-slds2'];\n\nconst deprecatedClasses = metadata.deprecatedClasses;\nconst deprecatedClassesSet = new Set(deprecatedClasses);\n\n/**\n * Creates the CSS visitor for detecting deprecated SLDS classes.\n * Exported separately so the hybrid rule can reuse it without triggering the deprecation guard.\n */\nexport function createCssVisitor(context) {\n return {\n // Check all class selectors for deprecated classes\n \"SelectorList Selector ClassSelector\"(node) {\n const cssClassSelector = context.sourceCode.getText(node);\n\n // Extract class name (remove the leading dot)\n const className = cssClassSelector.substring(1);\n\n // Check if it's a deprecated SLDS class\n if (className && deprecatedClassesSet.has(className)) {\n context.report({\n node,\n messageId: 'deprecatedClass',\n data: { className },\n });\n }\n },\n };\n}\n\n/**\n * CSS implementation for detecting deprecated SLDS classes in CSS files.\n * Checks class selectors for deprecated class names.\n * Used by the hybrid no-deprecated-classes-slds2 rule for CSS contexts.\n */\nexport default {\n meta: {\n type,\n docs: {\n description,\n recommended: true,\n url,\n },\n messages,\n deprecated: {\n message: \"This CSS-only rule is deprecated. Use the hybrid 'no-deprecated-classes-slds2' rule instead, which handles both HTML and CSS.\",\n replacedBy: [\n {\n message: \"Use 'no-deprecated-classes-slds2' which supports both HTML and CSS files.\",\n plugin: {\n name: \"@salesforce-ux/eslint-plugin-slds\",\n },\n rule: {\n name: \"no-deprecated-classes-slds2\",\n url: \"https://developer.salesforce.com/docs/platform/slds-linter/guide/reference-rules.html#no-deprecated-classes-slds2\",\n },\n },\n ],\n },\n },\n\n create(context) {\n if (isRuleEnabled(context, '@salesforce-ux/slds/no-deprecated-classes-slds2')) {\n return {};\n }\n\n return createCssVisitor(context);\n },\n} as Rule.RuleModule;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,0BAAqB;AACrB,2BAAyB;AACzB,wBAA8B;AAG9B,IAAM,EAAE,MAAM,aAAa,KAAK,SAAS,IAAI,qBAAAA,QAAa,6BAA6B;AAEvF,IAAM,oBAAoB,oBAAAC,QAAS;AACnC,IAAM,uBAAuB,IAAI,IAAI,iBAAiB;AAM/C,SAAS,iBAAiB,SAAS;AACxC,SAAO;AAAA;AAAA,IAEL,sCAAsC,MAAM;AAC1C,YAAM,mBAAmB,QAAQ,WAAW,QAAQ,IAAI;AAGxD,YAAM,YAAY,iBAAiB,UAAU,CAAC;AAG9C,UAAI,aAAa,qBAAqB,IAAI,SAAS,GAAG;AACpD,gBAAQ,OAAO;AAAA,UACb;AAAA,UACA,WAAW;AAAA,UACX,MAAM,EAAE,UAAU;AAAA,QACpB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AACF;AAOA,IAAO,qCAAQ;AAAA,EACb,MAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,MACJ;AAAA,MACA,aAAa;AAAA,MACb;AAAA,IACF;AAAA,IACA;AAAA,IACA,YAAY;AAAA,MACV,SAAS;AAAA,MACT,YAAY;AAAA,QACV;AAAA,UACE,SAAS;AAAA,UACT,QAAQ;AAAA,YACN,MAAM;AAAA,UACR;AAAA,UACA,MAAM;AAAA,YACJ,MAAM;AAAA,YACN,KAAK;AAAA,UACP;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,OAAO,SAAS;AACd,YAAI,iCAAc,SAAS,iDAAiD,GAAG;AAC7E,aAAO,CAAC;AAAA,IACV;AAEA,WAAO,iBAAiB,OAAO;AAAA,EACjC;AACF;",
6
6
  "names": ["ruleMessages", "metadata"]
7
7
  }
@@ -27,13 +27,11 @@ function isRuleEnabled(context, ruleName) {
27
27
  const rules = context.settings?.sldsRules || {};
28
28
  if (ruleName in rules) {
29
29
  const ruleConfig = rules[ruleName];
30
- if (Array.isArray(ruleConfig)) {
31
- return ruleConfig[0] === true;
32
- } else if (ruleConfig !== void 0 && ruleConfig !== null) {
33
- return true;
34
- } else if (ruleConfig === false) {
30
+ const severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;
31
+ if (severity === "off" || severity === 0 || severity === false) {
35
32
  return false;
36
33
  }
34
+ return true;
37
35
  }
38
36
  } catch (error) {
39
37
  return false;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/rule-utils.ts"],
4
- "sourcesContent": ["import { Rule } from 'eslint';\n\n/**\n * Check if a specific ESLint rule is enabled in the current configuration\n * @param context - ESLint rule context\n * @param ruleName - rule name\n * @returns true if the rule is enabled, false otherwise\n */\nexport function isRuleEnabled(context: Rule.RuleContext, ruleName: string): boolean {\n try {\n // get rules from context settings\n const rules: Record<string, any> = (context.settings?.sldsRules as Record<string, any>) || {};\n \n if (ruleName in rules) {\n const ruleConfig = rules[ruleName];\n \n if (Array.isArray(ruleConfig)) {\n return ruleConfig[0] === true;\n } else if (ruleConfig !== undefined && ruleConfig !== null) {\n return true;\n } else if (ruleConfig === false) {\n return false;\n }\n }\n } catch (error) {\n return false;\n }\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,SAAS,cAAc,SAA2B,UAA2B;AAClF,MAAI;AAEF,UAAM,QAA8B,QAAQ,UAAU,aAAqC,CAAC;AAE5F,QAAI,YAAY,OAAO;AACrB,YAAM,aAAa,MAAM,QAAQ;AAEjC,UAAI,MAAM,QAAQ,UAAU,GAAG;AAC7B,eAAO,WAAW,CAAC,MAAM;AAAA,MAC3B,WAAW,eAAe,UAAa,eAAe,MAAM;AAC1D,eAAO;AAAA,MACT,WAAW,eAAe,OAAO;AAC/B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;",
4
+ "sourcesContent": ["import { Rule } from 'eslint';\n\n/**\n * Check if a specific ESLint rule is enabled in the current configuration\n * @param context - ESLint rule context\n * @param ruleName - rule name\n * @returns true if the rule is enabled, false otherwise\n */\nexport function isRuleEnabled(context: Rule.RuleContext, ruleName: string): boolean {\n try {\n // get rules from context settings\n const rules: Record<string, any> = (context.settings?.sldsRules as Record<string, any>) || {};\n \n if (ruleName in rules) {\n const ruleConfig = rules[ruleName];\n \n // Extract severity: first element if array, otherwise the value itself\n const severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;\n\n // ESLint rule severities: \"off\"/0 = disabled, \"warn\"/1 = enabled, \"error\"/2 = enabled\n if (severity === \"off\" || severity === 0 || severity === false) {\n return false;\n }\n return true;\n }\n } catch (error) {\n return false;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQO,SAAS,cAAc,SAA2B,UAA2B;AAClF,MAAI;AAEF,UAAM,QAA8B,QAAQ,UAAU,aAAqC,CAAC;AAE5F,QAAI,YAAY,OAAO;AACrB,YAAM,aAAa,MAAM,QAAQ;AAGjC,YAAM,WAAW,MAAM,QAAQ,UAAU,IAAI,WAAW,CAAC,IAAI;AAG7D,UAAI,aAAa,SAAS,aAAa,KAAK,aAAa,OAAO;AAC9D,eAAO;AAAA,MACT;AACA,aAAO;AAAA,IACT;AAAA,EACF,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesforce-ux/eslint-plugin-slds",
3
- "version": "1.1.1",
3
+ "version": "1.2.0",
4
4
  "main": "build/index.js",
5
5
  "exports": {
6
6
  ".": {