@swisspost/design-system-eslint 10.0.0-next.69 → 10.0.0-next.71

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 (22) hide show
  1. package/dist/rules/html/migrations/no-deprecated-breakpoints.d.ts +2 -2
  2. package/dist/rules/html/migrations/no-deprecated-breakpoints.d.ts.map +1 -1
  3. package/dist/rules/html/migrations/no-deprecated-breakpoints.js +12 -3
  4. package/dist/rules/html/migrations/no-deprecated-breakpoints.js.map +1 -1
  5. package/dist/rules/html/migrations/no-deprecated-gap-utilities.d.ts.map +1 -1
  6. package/dist/rules/html/migrations/no-deprecated-gap-utilities.js +3 -1
  7. package/dist/rules/html/migrations/no-deprecated-gap-utilities.js.map +1 -1
  8. package/dist/rules/html/migrations/no-deprecated-gutter-utilities.d.ts.map +1 -1
  9. package/dist/rules/html/migrations/no-deprecated-gutter-utilities.js +3 -1
  10. package/dist/rules/html/migrations/no-deprecated-gutter-utilities.js.map +1 -1
  11. package/dist/rules/html/migrations/no-deprecated-spacing-utilities.d.ts.map +1 -1
  12. package/dist/rules/html/migrations/no-deprecated-spacing-utilities.js +6 -1
  13. package/dist/rules/html/migrations/no-deprecated-spacing-utilities.js.map +1 -1
  14. package/dist/utils/create-class-update-rule.d.ts +7 -1
  15. package/dist/utils/create-class-update-rule.d.ts.map +1 -1
  16. package/dist/utils/create-class-update-rule.js +48 -38
  17. package/dist/utils/create-class-update-rule.js.map +1 -1
  18. package/dist/utils/two-phases-classes-update.d.ts +5 -1
  19. package/dist/utils/two-phases-classes-update.d.ts.map +1 -1
  20. package/dist/utils/two-phases-classes-update.js +15 -6
  21. package/dist/utils/two-phases-classes-update.js.map +1 -1
  22. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- export declare const mutationsPhase1: Record<string, [string, string]>;
2
- export declare const mutationsPhase2: Record<string, [string, string]>;
1
+ export declare const mutationsPhase1: Record<string, [string, string, boolean?]>;
2
+ export declare const mutationsPhase2: Record<string, [string, string, boolean?]>;
3
3
  export declare const namePhase1 = "no-deprecated-breakpoints-phase-1";
4
4
  export declare const namePhase2 = "no-deprecated-breakpoints-phase-2";
5
5
  export declare const rulePhase1: import("@typescript-eslint/utils/ts-eslint").RuleModule<string, [], import("../../../utils/create-rule").RuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-breakpoints.ts"],"names":[],"mappings":"AAiJA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,CAAC;AAEpE,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM,CAAC;AAgCpE,eAAO,MAAM,UAAU,sCAAsC,CAAC;AAC9D,eAAO,MAAM,UAAU,sCAAsC,CAAC;AAE9D,eAAO,MAAM,UAAU,+KAOrB,CAAC;AAEH,eAAO,MAAM,UAAU,+KAOrB,CAAC"}
1
+ {"version":3,"file":"no-deprecated-breakpoints.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-breakpoints.ts"],"names":[],"mappings":"AAuJA,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAM,CAAC;AAE9E,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAM,CAAC;AAqC9E,eAAO,MAAM,UAAU,sCAAsC,CAAC;AAC9D,eAAO,MAAM,UAAU,sCAAsC,CAAC;AAE9D,eAAO,MAAM,UAAU,+KAOrB,CAAC;AAEH,eAAO,MAAM,UAAU,+KAOrB,CAAC"}
@@ -130,11 +130,16 @@ const classesConfig = {
130
130
  },
131
131
  };
132
132
  // Breakpoint changes
133
+ // 'rg' → 'sm' and 'sm' → 'xs' are reported but not auto-fixed: after renaming 'rg' → 'sm',
134
+ // the result would be picked up by the 'sm' → 'xs' rule and renamed to the wrong final value.
135
+ // Only 'xxl' → 'xl' is safe to auto-fix.
133
136
  const breakpointMap = {
134
137
  sm: 'xs',
135
138
  rg: 'sm',
136
139
  xxl: 'xl',
137
140
  };
141
+ // Both 'rg' and 'sm' create a chain collision when auto-fixed.
142
+ const manualOnlyBreakpoints = new Set(['rg', 'sm']);
138
143
  const messagesPhase1 = {};
139
144
  exports.mutationsPhase1 = {};
140
145
  const messagesPhase2 = {};
@@ -149,10 +154,14 @@ for (const type in classesConfig) {
149
154
  const oldClass = `${prefix}-${breakpoint}-${suffix}`;
150
155
  const tempClass = `${tempPrefix}${prefix}-${breakpointMap[breakpoint]}-${suffix}`;
151
156
  const newClass = `${prefix}-${breakpointMap[breakpoint]}-${suffix}`;
157
+ const isConflicting = manualOnlyBreakpoints.has(breakpoint);
152
158
  const keyPhase1 = `deprecatedBreakpointsPhase1_${index}`;
153
- messagesPhase1[keyPhase1] =
154
- `The "${oldClass}" class is deprecated. Please replace it with "${newClass}".`;
155
- exports.mutationsPhase1[keyPhase1] = [oldClass, tempClass];
159
+ messagesPhase1[keyPhase1] = isConflicting
160
+ ? `The "${oldClass}" class is deprecated. Please replace it with "${newClass}". ⚠️ This cannot be auto-fixed — rename it manually to avoid a chain collision.`
161
+ : `The "${oldClass}" class is deprecated. Please replace it with "${newClass}".`;
162
+ exports.mutationsPhase1[keyPhase1] = isConflicting
163
+ ? [oldClass, newClass, true]
164
+ : [oldClass, tempClass];
156
165
  const keyPhase2 = `deprecatedBreakpointsPhase2_${index}`;
157
166
  messagesPhase2[keyPhase2] =
158
167
  `The "${oldClass}" class is deprecated. Please replace it with "${newClass}".`;
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-breakpoints.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-breakpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"no-deprecated-breakpoints.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-breakpoints.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-gap-utilities.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gap-utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACd,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,IAAI,EAAE,aAIlB,CAAC;AAEF,eAAO,MAAM,KAAK;;;GAchB,CAAC"}
1
+ {"version":3,"file":"no-deprecated-gap-utilities.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gap-utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACd,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,IAAI,EAAE,aAMlB,CAAC;AAEF,eAAO,MAAM,KAAK;;;GAchB,CAAC"}
@@ -5,7 +5,9 @@ const common_data_1 = require("../../../utils/common-data");
5
5
  const two_phases_classes_update_1 = require("../../../utils/two-phases-classes-update");
6
6
  // Class names
7
7
  const classNames = ['gap-', 'column-gap-', 'row-gap-'];
8
- exports.data = (0, two_phases_classes_update_1.setUpClassesMutations)((0, two_phases_classes_update_1.arrayToMap)(classNames), common_data_1.bootstrapSizeMap, 'deprecatedGapUtilities');
8
+ exports.data = (0, two_phases_classes_update_1.setUpClassesMutations)((0, two_phases_classes_update_1.arrayToMap)(classNames), common_data_1.bootstrapSizeMap, 'deprecatedGapUtilities',
9
+ // '1' → '4' and '4' → '24' form a chain collision: both are reported but not auto-fixed.
10
+ new Set(['1', '4']));
9
11
  exports.rules = (0, two_phases_classes_update_1.createTwoPhasesClassUpdateRule)({
10
12
  name: 'no-deprecated-gap-utilities',
11
13
  phases: [
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-gap-utilities.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gap-utilities.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,wFAKkD;AAElD,cAAc;AACd,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAE1C,QAAA,IAAI,GAAkB,IAAA,iDAAqB,EACtD,IAAA,sCAAU,EAAC,UAAU,CAAC,EACtB,8BAAgB,EAChB,wBAAwB,CACzB,CAAC;AAEW,QAAA,KAAK,GAAG,IAAA,0DAA8B,EAAC;IAClD,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE;QACN;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,mHAAmH;SACtH;QACD;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,4GAA4G;SAC/G;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"no-deprecated-gap-utilities.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gap-utilities.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,wFAKkD;AAElD,cAAc;AACd,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAE1C,QAAA,IAAI,GAAkB,IAAA,iDAAqB,EACtD,IAAA,sCAAU,EAAC,UAAU,CAAC,EACtB,8BAAgB,EAChB,wBAAwB;AACxB,yFAAyF;AACzF,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACpB,CAAC;AAEW,QAAA,KAAK,GAAG,IAAA,0DAA8B,EAAC;IAClD,IAAI,EAAE,6BAA6B;IACnC,MAAM,EAAE;QACN;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,mHAAmH;SACtH;QACD;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,4GAA4G;SAC/G;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-gutter-utilities.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gutter-utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACd,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,IAAI,EAAE,aAIlB,CAAC;AAEF,eAAO,MAAM,KAAK;;;GAchB,CAAC"}
1
+ {"version":3,"file":"no-deprecated-gutter-utilities.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gutter-utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACd,MAAM,0CAA0C,CAAC;AAKlD,eAAO,MAAM,IAAI,EAAE,aAMlB,CAAC;AAEF,eAAO,MAAM,KAAK;;;GAchB,CAAC"}
@@ -5,7 +5,9 @@ const common_data_1 = require("../../../utils/common-data");
5
5
  const two_phases_classes_update_1 = require("../../../utils/two-phases-classes-update");
6
6
  // Class names
7
7
  const classNames = ['g-', 'gx-', 'gy-'];
8
- exports.data = (0, two_phases_classes_update_1.setUpClassesMutations)((0, two_phases_classes_update_1.arrayToMap)(classNames), common_data_1.bootstrapSizeMap, 'deprecatedGutterUtilities');
8
+ exports.data = (0, two_phases_classes_update_1.setUpClassesMutations)((0, two_phases_classes_update_1.arrayToMap)(classNames), common_data_1.bootstrapSizeMap, 'deprecatedGutterUtilities',
9
+ // '1' → '4' and '4' → '24' form a chain collision: both are reported but not auto-fixed.
10
+ new Set(['1', '4']));
9
11
  exports.rules = (0, two_phases_classes_update_1.createTwoPhasesClassUpdateRule)({
10
12
  name: 'no-deprecated-gutter-utilities',
11
13
  phases: [
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-gutter-utilities.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gutter-utilities.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,wFAKkD;AAElD,cAAc;AACd,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAE3B,QAAA,IAAI,GAAkB,IAAA,iDAAqB,EACtD,IAAA,sCAAU,EAAC,UAAU,CAAC,EACtB,8BAAgB,EAChB,2BAA2B,CAC5B,CAAC;AAEW,QAAA,KAAK,GAAG,IAAA,0DAA8B,EAAC;IAClD,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAAE;QACN;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,sHAAsH;SACzH;QACD;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,+GAA+G;SAClH;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"no-deprecated-gutter-utilities.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-gutter-utilities.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,wFAKkD;AAElD,cAAc;AACd,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAE3B,QAAA,IAAI,GAAkB,IAAA,iDAAqB,EACtD,IAAA,sCAAU,EAAC,UAAU,CAAC,EACtB,8BAAgB,EAChB,2BAA2B;AAC3B,yFAAyF;AACzF,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CACpB,CAAC;AAEW,QAAA,KAAK,GAAG,IAAA,0DAA8B,EAAC;IAClD,IAAI,EAAE,gCAAgC;IACtC,MAAM,EAAE;QACN;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,sHAAsH;SACzH;QACD;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,+GAA+G;SAClH;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-spacing-utilities.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-spacing-utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACd,MAAM,0CAA0C,CAAC;AAwClD,eAAO,MAAM,IAAI,EAAE,aAIlB,CAAC;AAEF,eAAO,MAAM,KAAK;;;GAchB,CAAC"}
1
+ {"version":3,"file":"no-deprecated-spacing-utilities.d.ts","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-spacing-utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,aAAa,EACd,MAAM,0CAA0C,CAAC;AAwClD,eAAO,MAAM,IAAI,EAAE,aASlB,CAAC;AAEF,eAAO,MAAM,KAAK;;;GAchB,CAAC"}
@@ -39,7 +39,12 @@ const classValuesMap = {
39
39
  'giant': 80,
40
40
  'bigger-giant': 80,
41
41
  };
42
- exports.data = (0, two_phases_classes_update_1.setUpClassesMutations)((0, two_phases_classes_update_1.arrayToMap)(classNames), classValuesMap, 'deprecatedSpacingUtilities');
42
+ exports.data = (0, two_phases_classes_update_1.setUpClassesMutations)((0, two_phases_classes_update_1.arrayToMap)(classNames), classValuesMap, 'deprecatedSpacingUtilities',
43
+ // These values form chain collisions and are reported but not auto-fixed:
44
+ // '1' → '4' → '24'
45
+ // 'hair' → '1' → '4' → '24'
46
+ // 'micro'→ '4' → '24'
47
+ new Set(['1', '4', 'hair', 'micro']));
43
48
  exports.rules = (0, two_phases_classes_update_1.createTwoPhasesClassUpdateRule)({
44
49
  name: 'no-deprecated-spacing-utilities',
45
50
  phases: [
@@ -1 +1 @@
1
- {"version":3,"file":"no-deprecated-spacing-utilities.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-spacing-utilities.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,wFAKkD;AAElD,cAAc;AACd,MAAM,UAAU,GAAG;IACjB,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEF,2CAA2C;AAC3C,MAAM,cAAc,GAA2B;IAC7C,GAAG,8BAAgB;IACnB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,EAAE;CACnB,CAAC;AAEW,QAAA,IAAI,GAAkB,IAAA,iDAAqB,EACtD,IAAA,sCAAU,EAAC,UAAU,CAAC,EACtB,cAAc,EACd,4BAA4B,CAC7B,CAAC;AAEW,QAAA,KAAK,GAAG,IAAA,0DAA8B,EAAC;IAClD,IAAI,EAAE,iCAAiC;IACvC,MAAM,EAAE;QACN;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,gIAAgI;SACnI;QACD;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,yHAAyH;SAC5H;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"no-deprecated-spacing-utilities.js","sourceRoot":"","sources":["../../../../src/rules/html/migrations/no-deprecated-spacing-utilities.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,wFAKkD;AAElD,cAAc;AACd,MAAM,UAAU,GAAG;IACjB,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC;AAEF,2CAA2C;AAC3C,MAAM,cAAc,GAA2B;IAC7C,GAAG,8BAAgB;IACnB,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC;IACT,eAAe,EAAE,EAAE;IACnB,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;IACT,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE;IACV,aAAa,EAAE,EAAE;IACjB,OAAO,EAAE,EAAE;IACX,cAAc,EAAE,EAAE;CACnB,CAAC;AAEW,QAAA,IAAI,GAAkB,IAAA,iDAAqB,EACtD,IAAA,sCAAU,EAAC,UAAU,CAAC,EACtB,cAAc,EACd,4BAA4B;AAC5B,0EAA0E;AAC1E,wBAAwB;AACxB,8BAA8B;AAC9B,wBAAwB;AACxB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CACrC,CAAC;AAEW,QAAA,KAAK,GAAG,IAAA,0DAA8B,EAAC;IAClD,IAAI,EAAE,iCAAiC;IACvC,MAAM,EAAE;QACN;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,gIAAgI;SACnI;QACD;YACE,GAAG,YAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACjB,WAAW,EACT,yHAAyH;SAC5H;KACF;CACF,CAAC,CAAC"}
@@ -7,7 +7,13 @@ export interface RuleConfigBase {
7
7
  export interface PhaseConfig<T> {
8
8
  description: string;
9
9
  messages: T;
10
- mutations: Record<keyof T, [string, string]>;
10
+ /**
11
+ * Tuple of [oldClass, newClass, manualOnly?].
12
+ * When `manualOnly` is `true` the rule reports the violation but provides no autofix,
13
+ * because applying the fix would create a chain collision with another migration rule.
14
+ * Users must migrate these classes by hand.
15
+ */
16
+ mutations: Record<keyof T, [string, string, boolean?]>;
11
17
  }
12
18
  export interface PhaseConfigWrapper {
13
19
  description: string;
@@ -1 +1 @@
1
- {"version":3,"file":"create-class-update-rule.d.ts","sourceRoot":"","sources":["../../src/utils/create-class-update-rule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM9B,KAAK,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC9C;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;CACL;AAED,KAAK,qBAAqB,CAAC,CAAC,IAAI,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAChE,KAAK,4BAA4B,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAExE,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpE,QAAQ,qBAAqB,CAAC,CAAC,CAAC,qKAiG9B,CAAC;AAEL,eAAO,MAAM,4BAA4B,GAAI,QAAQ,4BAA4B;;;;CAUhF,CAAC"}
1
+ {"version":3,"file":"create-class-update-rule.d.ts","sourceRoot":"","sources":["../../src/utils/create-class-update-rule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAM9B,KAAK,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;AAE1C,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,CAAC;IACZ;;;;;OAKG;IACH,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACxD;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE;QACV,GAAG,EAAE,MAAM,CAAC;QACZ,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;CACL;AAED,KAAK,qBAAqB,CAAC,CAAC,IAAI,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAChE,KAAK,4BAA4B,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAExE,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpE,QAAQ,qBAAqB,CAAC,CAAC,CAAC,qKA2G9B,CAAC;AAEL,eAAO,MAAM,4BAA4B,GAAI,QAAQ,4BAA4B;;;;CAUhF,CAAC"}
@@ -23,22 +23,27 @@ const createClassUpdateRule = (config) => (0, create_rule_1.createRule)({
23
23
  return {
24
24
  tag(node) {
25
25
  const $node = node.toCheerio();
26
- Object.entries(config.mutations).forEach(([messageId, [oldClass, newClass]]) => {
26
+ Object.entries(config.mutations).forEach(([messageId, [oldClass, newClass, manualOnly]]) => {
27
27
  // Simple HTML class
28
28
  if ($node.hasClass(oldClass)) {
29
29
  context.report({
30
30
  messageId,
31
31
  loc: node.loc,
32
- fix(fixer) {
33
- const fixedNode = $node.removeClass(oldClass);
34
- if (newClass)
35
- fixedNode.addClass(newClass);
36
- // Remove empty class attribute
37
- if (!fixedNode.attr('class')?.trim())
38
- fixedNode.removeAttr('class');
39
- const fixedHtml = (0, empty_attrs_remover_1.removeEmptyAttrs)($node.toString(), context, node);
40
- return fixer.replaceTextRange(node.range, fixedHtml);
41
- },
32
+ // Reported but not auto-fixed — the renamed class would chain into another rule.
33
+ ...(manualOnly
34
+ ? {}
35
+ : {
36
+ fix(fixer) {
37
+ const fixedNode = $node.removeClass(oldClass);
38
+ if (newClass)
39
+ fixedNode.addClass(newClass);
40
+ // Remove empty class attribute
41
+ if (!fixedNode.attr('class')?.trim())
42
+ fixedNode.removeAttr('class');
43
+ const fixedHtml = (0, empty_attrs_remover_1.removeEmptyAttrs)($node.toString(), context, node);
44
+ return fixer.replaceTextRange(node.range, fixedHtml);
45
+ },
46
+ }),
42
47
  });
43
48
  return;
44
49
  }
@@ -57,33 +62,38 @@ const createClassUpdateRule = (config) => (0, create_rule_1.createRule)({
57
62
  context.report({
58
63
  loc: node.loc,
59
64
  messageId,
60
- fix(fixer) {
61
- if (isClassBinding) {
62
- const fixedAttrName = `[class.${newClass}]`;
63
- const oldAttrValue = $node.attr(attrName);
64
- if (!oldAttrValue)
65
- return null;
66
- $node.attr(fixedAttrName, oldAttrValue);
67
- $node.removeAttr(`[class.${oldClass}]`);
68
- const fixedHtml = (0, empty_attrs_remover_1.removeEmptyAttrs)($node.toString(), context, node);
69
- return fixer.replaceTextRange(node.range, fixedHtml);
70
- }
71
- const raw = $node.attr(attrName)?.trim();
72
- if (!raw)
73
- return null;
74
- const newValue = (0, class_binding_helpers_1.getNewAttrValue)($node, attrName, oldClass, newClass, raw);
75
- if (newValue === null)
76
- return null;
77
- const targetAttr = attrName;
78
- if (newValue === '')
79
- $node.removeAttr(targetAttr);
80
- else
81
- $node.attr(targetAttr, newValue);
82
- if (isNgClass && attrName !== targetAttr)
83
- $node.removeAttr(attrName);
84
- const fixedHtml = (0, empty_attrs_remover_1.removeEmptyAttrs)($node.toString(), context, node);
85
- return fixer.replaceTextRange(node.range, fixedHtml);
86
- },
65
+ // Reported but not auto-fixed in dynamic bindings: chain collision risk.
66
+ ...(manualOnly
67
+ ? {}
68
+ : {
69
+ fix(fixer) {
70
+ if (isClassBinding) {
71
+ const fixedAttrName = `[class.${newClass}]`;
72
+ const oldAttrValue = $node.attr(attrName);
73
+ if (!oldAttrValue)
74
+ return null;
75
+ $node.attr(fixedAttrName, oldAttrValue);
76
+ $node.removeAttr(`[class.${oldClass}]`);
77
+ const fixedHtml = (0, empty_attrs_remover_1.removeEmptyAttrs)($node.toString(), context, node);
78
+ return fixer.replaceTextRange(node.range, fixedHtml);
79
+ }
80
+ const raw = $node.attr(attrName)?.trim();
81
+ if (!raw)
82
+ return null;
83
+ const newValue = (0, class_binding_helpers_1.getNewAttrValue)($node, attrName, oldClass, newClass, raw);
84
+ if (newValue === null)
85
+ return null;
86
+ const targetAttr = attrName;
87
+ if (newValue === '')
88
+ $node.removeAttr(targetAttr);
89
+ else
90
+ $node.attr(targetAttr, newValue);
91
+ if (isNgClass && attrName !== targetAttr)
92
+ $node.removeAttr(attrName);
93
+ const fixedHtml = (0, empty_attrs_remover_1.removeEmptyAttrs)($node.toString(), context, node);
94
+ return fixer.replaceTextRange(node.range, fixedHtml);
95
+ },
96
+ }),
87
97
  });
88
98
  }
89
99
  });
@@ -1 +1 @@
1
- {"version":3,"file":"create-class-update-rule.js","sourceRoot":"","sources":["../../src/utils/create-class-update-rule.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-class-update-rule.js","sourceRoot":"","sources":["../../src/utils/create-class-update-rule.ts"],"names":[],"mappings":"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"}
@@ -14,8 +14,12 @@ export declare function arrayToMap(array: Array<string | number>): Record<string
14
14
  * - Second, migrate all `_tmp-newClassName` to `newClassName`
15
15
  *
16
16
  * This ensures that we don't get any deprecation errors when running the tests on those identical classes
17
+ *
18
+ * @param conflictingOldValues - A set of old class value tokens (e.g. `'1'`, `'hair'`) whose
19
+ * replacement would collide with another migration rule when ESLint loops the fix pass.
20
+ * These classes are flagged but **not auto-fixed** — users must migrate them by hand.
17
21
  */
18
- export declare function setUpClassesMutations(classNamesMap: Record<string, string | number>, classValuesMap: Record<string, string | number>, messageId: string): TwoPhasesData;
22
+ export declare function setUpClassesMutations(classNamesMap: Record<string, string | number>, classValuesMap: Record<string, string | number>, messageId: string, conflictingOldValues?: ReadonlySet<string>): TwoPhasesData;
19
23
  export declare const createTwoPhasesClassUpdateRule: <T extends RuleMessages, U extends RuleMessages>(config: TwoPhaseRuleConfig<T, U>) => {
20
24
  name: string;
21
25
  rule: import("@typescript-eslint/utils/ts-eslint").RuleModule<string, [], import("./create-rule").RuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
@@ -1 +1 @@
1
- {"version":3,"file":"two-phases-classes-update.d.ts","sourceRoot":"","sources":["../../src/utils/two-phases-classes-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEhG,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,UAAU,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,cAAc;IACvD,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACpF;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAQzF;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC9C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC/C,SAAS,EAAE,MAAM,GAChB,aAAa,CAqDf;AAED,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY,EAC3F,QAAQ,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;;;GAiBjC,CAAC"}
1
+ {"version":3,"file":"two-phases-classes-update.d.ts","sourceRoot":"","sources":["../../src/utils/two-phases-classes-update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,WAAW,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEhG,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,UAAU,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,cAAc;IACvD,MAAM,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACpF;AAKD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAQzF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC9C,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAC/C,SAAS,EAAE,MAAM,EACjB,oBAAoB,GAAE,WAAW,CAAC,MAAM,CAAa,GACpD,aAAa,CA2Df;AAED,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY,EAC3F,QAAQ,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;;;GAiBjC,CAAC"}
@@ -19,8 +19,12 @@ function arrayToMap(array) {
19
19
  * - Second, migrate all `_tmp-newClassName` to `newClassName`
20
20
  *
21
21
  * This ensures that we don't get any deprecation errors when running the tests on those identical classes
22
+ *
23
+ * @param conflictingOldValues - A set of old class value tokens (e.g. `'1'`, `'hair'`) whose
24
+ * replacement would collide with another migration rule when ESLint loops the fix pass.
25
+ * These classes are flagged but **not auto-fixed** — users must migrate them by hand.
22
26
  */
23
- function setUpClassesMutations(classNamesMap, classValuesMap, messageId) {
27
+ function setUpClassesMutations(classNamesMap, classValuesMap, messageId, conflictingOldValues = new Set()) {
24
28
  const messagesPhase1 = {};
25
29
  const mutationsPhase1 = {};
26
30
  const messagesPhase2 = {};
@@ -36,15 +40,20 @@ function setUpClassesMutations(classNamesMap, classValuesMap, messageId) {
36
40
  const finalNewClass = classNamesMap[className] + bp + classValuesMap[classValue];
37
41
  // Add the index to the tempClass to avoid issues with having the wrong error msg when running tests
38
42
  const tempClass = tempPrefix + index + finalNewClass;
43
+ const isConflicting = conflictingOldValues.has(classValue);
39
44
  const keyPhase1 = `${messageId}Phase1_${index}`;
40
- messagesPhase1[keyPhase1] =
41
- `The "${oldClass}" class is deprecated. Please replace it with "${finalNewClass}".`;
42
- // Mutate from `oldClass` to `_tmp-newClass`
43
- mutationsPhase1[keyPhase1] = [oldClass, tempClass];
45
+ messagesPhase1[keyPhase1] = isConflicting
46
+ ? `The "${oldClass}" class is deprecated. Please replace it with "${finalNewClass}". ⚠️ This cannot be auto-fixed — rename it manually to avoid a chain collision.`
47
+ : `The "${oldClass}" class is deprecated. Please replace it with "${finalNewClass}".`;
48
+ // Conflicting values are reported but not auto-fixed — the renamed class would be
49
+ // picked up by another rule and renamed again to the wrong final value.
50
+ mutationsPhase1[keyPhase1] = isConflicting
51
+ ? [oldClass, finalNewClass, true]
52
+ : [oldClass, tempClass];
44
53
  const keyPhase2 = `${messageId}Phase2_${index}`;
45
54
  messagesPhase2[keyPhase2] =
46
55
  `The "${oldClass}" class is deprecated. Please replace it with "${finalNewClass}".`;
47
- // Mutate from `_tmp-newClass` to `newClass`
56
+ // Phase-2 entry only matters for non-conflicting values (conflicting ones never get a temp class)
48
57
  mutationsPhase2[keyPhase2] = [tempClass, finalNewClass];
49
58
  index++;
50
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"two-phases-classes-update.js","sourceRoot":"","sources":["../../src/utils/two-phases-classes-update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"two-phases-classes-update.js","sourceRoot":"","sources":["../../src/utils/two-phases-classes-update.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@swisspost/design-system-eslint",
3
3
  "private": false,
4
- "version": "10.0.0-next.69",
4
+ "version": "10.0.0-next.71",
5
5
  "description": "A set of custom ESLint rules to help keeping projects using the Swiss Post Design System up-to-date.",
6
6
  "author": "Swiss Post <design-system@post.ch>",
7
7
  "license": "Apache-2.0",
@@ -35,7 +35,7 @@
35
35
  "devDependencies": {
36
36
  "@eslint/js": "9.19.0",
37
37
  "@types/eslint-scope": "3.7.7",
38
- "@types/jest": "^30.0.0",
38
+ "@types/jest": "30.0.0",
39
39
  "@typescript-eslint/rule-tester": "8.49.0",
40
40
  "concurrently": "9.2.1",
41
41
  "domhandler": "5.0.3",