@swisspost/design-system-eslint 0.0.1 → 1.1.0-next.2

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 (191) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +91 -29
  3. package/dist/configs/html/all.d.ts +4 -0
  4. package/dist/configs/html/all.d.ts.map +1 -0
  5. package/dist/configs/html/all.js +46 -0
  6. package/dist/configs/html/all.js.map +1 -0
  7. package/dist/configs/html/base.d.ts +5 -0
  8. package/dist/configs/html/base.d.ts.map +1 -0
  9. package/dist/configs/html/base.js +15 -0
  10. package/dist/configs/html/base.js.map +1 -0
  11. package/dist/configs/html/migrations.d.ts +4 -0
  12. package/dist/configs/html/migrations.d.ts.map +1 -0
  13. package/dist/configs/html/migrations.js +17 -0
  14. package/dist/configs/html/migrations.js.map +1 -0
  15. package/dist/configs/html/recommended.d.ts +4 -0
  16. package/dist/configs/html/recommended.d.ts.map +1 -0
  17. package/dist/configs/html/recommended.js +46 -0
  18. package/dist/configs/html/recommended.js.map +1 -0
  19. package/dist/configs/stencil/recommended.d.ts +4 -0
  20. package/dist/configs/stencil/recommended.d.ts.map +1 -0
  21. package/dist/configs/stencil/recommended.js +25 -0
  22. package/dist/configs/stencil/recommended.js.map +1 -0
  23. package/dist/configs/ts/all.d.ts +4 -0
  24. package/dist/configs/ts/all.d.ts.map +1 -0
  25. package/dist/configs/ts/all.js +46 -0
  26. package/dist/configs/ts/all.js.map +1 -0
  27. package/dist/configs/ts/base.d.ts +5 -0
  28. package/dist/configs/ts/base.d.ts.map +1 -0
  29. package/dist/configs/ts/base.js +16 -0
  30. package/dist/configs/ts/base.js.map +1 -0
  31. package/dist/configs/ts/migrations.d.ts +4 -0
  32. package/dist/configs/ts/migrations.d.ts.map +1 -0
  33. package/dist/configs/ts/migrations.js +18 -0
  34. package/dist/configs/ts/migrations.js.map +1 -0
  35. package/dist/configs/ts/recommended.d.ts +4 -0
  36. package/dist/configs/ts/recommended.d.ts.map +1 -0
  37. package/dist/configs/ts/recommended.js +46 -0
  38. package/dist/configs/ts/recommended.js.map +1 -0
  39. package/dist/index.d.ts +31 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +50 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/migrations.d.ts +4 -0
  44. package/dist/migrations.d.ts.map +1 -0
  45. package/dist/migrations.js +28 -0
  46. package/dist/migrations.js.map +1 -0
  47. package/dist/parsers/html/html-node.d.ts +12 -0
  48. package/dist/parsers/html/html-node.d.ts.map +1 -0
  49. package/dist/parsers/html/html-node.js +3 -0
  50. package/dist/parsers/html/html-node.js.map +1 -0
  51. package/dist/parsers/html/index.d.ts +8 -0
  52. package/dist/parsers/html/index.d.ts.map +1 -0
  53. package/dist/parsers/html/index.js +11 -0
  54. package/dist/parsers/html/index.js.map +1 -0
  55. package/dist/parsers/html/parser.d.ts +29 -0
  56. package/dist/parsers/html/parser.d.ts.map +1 -0
  57. package/dist/parsers/html/parser.js +186 -0
  58. package/dist/parsers/html/parser.js.map +1 -0
  59. package/dist/rules/html/index.d.ts +2 -0
  60. package/dist/rules/html/index.d.ts.map +1 -0
  61. package/dist/rules/html/index.js +5 -0
  62. package/dist/rules/html/index.js.map +1 -0
  63. package/dist/rules/html/migrations/index.d.ts +20 -0
  64. package/dist/rules/html/migrations/index.d.ts.map +1 -0
  65. package/dist/rules/html/migrations/index.js +82 -0
  66. package/dist/rules/html/migrations/index.js.map +1 -0
  67. package/dist/rules/html/migrations/no-deprecated-alert.d.ts +4 -0
  68. package/dist/rules/html/migrations/no-deprecated-alert.d.ts.map +1 -0
  69. package/dist/rules/html/migrations/no-deprecated-alert.js +44 -0
  70. package/dist/rules/html/migrations/no-deprecated-alert.js.map +1 -0
  71. package/dist/rules/html/migrations/no-deprecated-breakpoints.d.ts +7 -0
  72. package/dist/rules/html/migrations/no-deprecated-breakpoints.d.ts.map +1 -0
  73. package/dist/rules/html/migrations/no-deprecated-breakpoints.js +179 -0
  74. package/dist/rules/html/migrations/no-deprecated-breakpoints.js.map +1 -0
  75. package/dist/rules/html/migrations/no-deprecated-btn-rg.d.ts +4 -0
  76. package/dist/rules/html/migrations/no-deprecated-btn-rg.d.ts.map +1 -0
  77. package/dist/rules/html/migrations/no-deprecated-btn-rg.js +17 -0
  78. package/dist/rules/html/migrations/no-deprecated-btn-rg.js.map +1 -0
  79. package/dist/rules/html/migrations/no-deprecated-chip-filter.d.ts +5 -0
  80. package/dist/rules/html/migrations/no-deprecated-chip-filter.d.ts.map +1 -0
  81. package/dist/rules/html/migrations/no-deprecated-chip-filter.js +19 -0
  82. package/dist/rules/html/migrations/no-deprecated-chip-filter.js.map +1 -0
  83. package/dist/rules/html/migrations/no-deprecated-elevation-utilities.d.ts +5 -0
  84. package/dist/rules/html/migrations/no-deprecated-elevation-utilities.d.ts.map +1 -0
  85. package/dist/rules/html/migrations/no-deprecated-elevation-utilities.js +23 -0
  86. package/dist/rules/html/migrations/no-deprecated-elevation-utilities.js.map +1 -0
  87. package/dist/rules/html/migrations/no-deprecated-font-curves.d.ts +5 -0
  88. package/dist/rules/html/migrations/no-deprecated-font-curves.d.ts.map +1 -0
  89. package/dist/rules/html/migrations/no-deprecated-font-curves.js +25 -0
  90. package/dist/rules/html/migrations/no-deprecated-font-curves.js.map +1 -0
  91. package/dist/rules/html/migrations/no-deprecated-font-sizes.d.ts +10 -0
  92. package/dist/rules/html/migrations/no-deprecated-font-sizes.d.ts.map +1 -0
  93. package/dist/rules/html/migrations/no-deprecated-font-sizes.js +78 -0
  94. package/dist/rules/html/migrations/no-deprecated-font-sizes.js.map +1 -0
  95. package/dist/rules/html/migrations/no-deprecated-font-weight.d.ts +4 -0
  96. package/dist/rules/html/migrations/no-deprecated-font-weight.d.ts.map +1 -0
  97. package/dist/rules/html/migrations/no-deprecated-font-weight.js +52 -0
  98. package/dist/rules/html/migrations/no-deprecated-font-weight.js.map +1 -0
  99. package/dist/rules/html/migrations/no-deprecated-gap-utilities.d.ts +7 -0
  100. package/dist/rules/html/migrations/no-deprecated-gap-utilities.d.ts.map +1 -0
  101. package/dist/rules/html/migrations/no-deprecated-gap-utilities.js +22 -0
  102. package/dist/rules/html/migrations/no-deprecated-gap-utilities.js.map +1 -0
  103. package/dist/rules/html/migrations/no-deprecated-gutter-utilities.d.ts +7 -0
  104. package/dist/rules/html/migrations/no-deprecated-gutter-utilities.d.ts.map +1 -0
  105. package/dist/rules/html/migrations/no-deprecated-gutter-utilities.js +22 -0
  106. package/dist/rules/html/migrations/no-deprecated-gutter-utilities.js.map +1 -0
  107. package/dist/rules/html/migrations/no-deprecated-h-clearfix.d.ts +5 -0
  108. package/dist/rules/html/migrations/no-deprecated-h-clearfix.d.ts.map +1 -0
  109. package/dist/rules/html/migrations/no-deprecated-h-clearfix.js +19 -0
  110. package/dist/rules/html/migrations/no-deprecated-h-clearfix.js.map +1 -0
  111. package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.d.ts +5 -0
  112. package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.d.ts.map +1 -0
  113. package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.js +19 -0
  114. package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.js.map +1 -0
  115. package/dist/rules/html/migrations/no-deprecated-loader.d.ts +5 -0
  116. package/dist/rules/html/migrations/no-deprecated-loader.d.ts.map +1 -0
  117. package/dist/rules/html/migrations/no-deprecated-loader.js +29 -0
  118. package/dist/rules/html/migrations/no-deprecated-loader.js.map +1 -0
  119. package/dist/rules/html/migrations/no-deprecated-position-helpers.d.ts +5 -0
  120. package/dist/rules/html/migrations/no-deprecated-position-helpers.d.ts.map +1 -0
  121. package/dist/rules/html/migrations/no-deprecated-position-helpers.js +22 -0
  122. package/dist/rules/html/migrations/no-deprecated-position-helpers.js.map +1 -0
  123. package/dist/rules/html/migrations/no-deprecated-shadow-utilities.d.ts +5 -0
  124. package/dist/rules/html/migrations/no-deprecated-shadow-utilities.d.ts.map +1 -0
  125. package/dist/rules/html/migrations/no-deprecated-shadow-utilities.js +22 -0
  126. package/dist/rules/html/migrations/no-deprecated-shadow-utilities.js.map +1 -0
  127. package/dist/rules/html/migrations/no-deprecated-sizing-utilities.d.ts +7 -0
  128. package/dist/rules/html/migrations/no-deprecated-sizing-utilities.d.ts.map +1 -0
  129. package/dist/rules/html/migrations/no-deprecated-sizing-utilities.js +49 -0
  130. package/dist/rules/html/migrations/no-deprecated-sizing-utilities.js.map +1 -0
  131. package/dist/rules/html/migrations/no-deprecated-spacing-utilities.d.ts +7 -0
  132. package/dist/rules/html/migrations/no-deprecated-spacing-utilities.d.ts.map +1 -0
  133. package/dist/rules/html/migrations/no-deprecated-spacing-utilities.js +56 -0
  134. package/dist/rules/html/migrations/no-deprecated-spacing-utilities.js.map +1 -0
  135. package/dist/rules/html/migrations/no-form-text.d.ts +4 -0
  136. package/dist/rules/html/migrations/no-form-text.d.ts.map +1 -0
  137. package/dist/rules/html/migrations/no-form-text.js +40 -0
  138. package/dist/rules/html/migrations/no-form-text.js.map +1 -0
  139. package/dist/rules/html/migrations/no-unnumbered-border-radius.d.ts +5 -0
  140. package/dist/rules/html/migrations/no-unnumbered-border-radius.d.ts.map +1 -0
  141. package/dist/rules/html/migrations/no-unnumbered-border-radius.js +23 -0
  142. package/dist/rules/html/migrations/no-unnumbered-border-radius.js.map +1 -0
  143. package/dist/rules/index.d.ts +4 -0
  144. package/dist/rules/index.d.ts.map +1 -0
  145. package/dist/rules/index.js +41 -0
  146. package/dist/rules/index.js.map +1 -0
  147. package/dist/rules/stencil-strict-props-initialization.d.ts +4 -0
  148. package/dist/rules/stencil-strict-props-initialization.d.ts.map +1 -0
  149. package/dist/rules/stencil-strict-props-initialization.js +57 -0
  150. package/dist/rules/stencil-strict-props-initialization.js.map +1 -0
  151. package/dist/rules/ts/index.d.ts +2 -0
  152. package/dist/rules/ts/index.d.ts.map +1 -0
  153. package/dist/rules/ts/index.js +5 -0
  154. package/dist/rules/ts/index.js.map +1 -0
  155. package/dist/rules/ts/migrations/index.d.ts +2 -0
  156. package/dist/rules/ts/migrations/index.d.ts.map +1 -0
  157. package/dist/rules/ts/migrations/index.js +5 -0
  158. package/dist/rules/ts/migrations/index.js.map +1 -0
  159. package/dist/utils/common-data.d.ts +2 -0
  160. package/dist/utils/common-data.d.ts.map +1 -0
  161. package/dist/utils/common-data.js +11 -0
  162. package/dist/utils/common-data.js.map +1 -0
  163. package/dist/utils/create-class-update-rule.d.ts +15 -0
  164. package/dist/utils/create-class-update-rule.d.ts.map +1 -0
  165. package/dist/utils/create-class-update-rule.js +43 -0
  166. package/dist/utils/create-class-update-rule.js.map +1 -0
  167. package/dist/utils/create-rule.d.ts +7 -0
  168. package/dist/utils/create-rule.d.ts.map +1 -0
  169. package/dist/utils/create-rule.js +28 -0
  170. package/dist/utils/create-rule.js.map +1 -0
  171. package/dist/utils/generate-messages.d.ts +5 -0
  172. package/dist/utils/generate-messages.d.ts.map +1 -0
  173. package/dist/utils/generate-messages.js +9 -0
  174. package/dist/utils/generate-messages.js.map +1 -0
  175. package/dist/utils/generate-mutations.d.ts +5 -0
  176. package/dist/utils/generate-mutations.d.ts.map +1 -0
  177. package/dist/utils/generate-mutations.js +9 -0
  178. package/dist/utils/generate-mutations.js.map +1 -0
  179. package/dist/utils/get-all-rules.d.ts +3 -0
  180. package/dist/utils/get-all-rules.d.ts.map +1 -0
  181. package/dist/utils/get-all-rules.js +12 -0
  182. package/dist/utils/get-all-rules.js.map +1 -0
  183. package/dist/utils/get-recommended-rules.d.ts +4 -0
  184. package/dist/utils/get-recommended-rules.d.ts.map +1 -0
  185. package/dist/utils/get-recommended-rules.js +13 -0
  186. package/dist/utils/get-recommended-rules.js.map +1 -0
  187. package/dist/utils/two-phases-classes-update.d.ts +24 -0
  188. package/dist/utils/two-phases-classes-update.d.ts.map +1 -0
  189. package/dist/utils/two-phases-classes-update.js +83 -0
  190. package/dist/utils/two-phases-classes-update.js.map +1 -0
  191. package/package.json +69 -7
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.dsLintingRules = void 0;
37
+ const stencil_strict_props_initialization_1 = __importStar(require("./stencil-strict-props-initialization"));
38
+ exports.dsLintingRules = {
39
+ [stencil_strict_props_initialization_1.name]: stencil_strict_props_initialization_1.default,
40
+ };
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6GAE+C;AAElC,QAAA,cAAc,GAAG;IAC5B,CAAC,0CAAwC,CAAC,EAAE,6CAAoC;CACjF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const name = "stencil-strict-props-initialization";
2
+ declare const _default: import("@typescript-eslint/utils/ts-eslint").RuleModule<"propStrictInit", [], import("../utils/create-rule").RuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
3
+ export default _default;
4
+ //# sourceMappingURL=stencil-strict-props-initialization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stencil-strict-props-initialization.d.ts","sourceRoot":"","sources":["../../src/rules/stencil-strict-props-initialization.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,wCAAwC,CAAC;;AAE1D,wBAqDG"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.name = void 0;
4
+ const create_rule_1 = require("../utils/create-rule");
5
+ const utils_1 = require("@typescript-eslint/utils");
6
+ exports.name = 'stencil-strict-props-initialization';
7
+ exports.default = (0, create_rule_1.createRule)({
8
+ name: exports.name,
9
+ meta: {
10
+ docs: {
11
+ dir: 'ts',
12
+ description: 'Reports any Stencil component @Prop properties that lack an initial value and are neither marked as optional (?) nor definitely assigned (!).',
13
+ },
14
+ messages: {
15
+ propStrictInit: "The '@Prop' property '{{propertyName}}' must have an initial value, or be explicitly marked as optional (?) or definitely assigned (!).",
16
+ },
17
+ type: 'suggestion',
18
+ schema: [],
19
+ },
20
+ defaultOptions: [],
21
+ create(context) {
22
+ return {
23
+ PropertyDefinition(node) {
24
+ if (node.decorators && node.decorators.length > 0) {
25
+ // Check if any decorator is @Prop()
26
+ const isProp = node.decorators.some(decorator => {
27
+ // Check for CallExpression like @Prop()
28
+ if (decorator.expression.type === utils_1.AST_NODE_TYPES.CallExpression) {
29
+ const callee = decorator.expression.callee;
30
+ // Check if the callee is an Identifier named 'Prop'
31
+ if (callee.type === utils_1.AST_NODE_TYPES.Identifier && callee.name === 'Prop') {
32
+ return true;
33
+ }
34
+ }
35
+ return false; // Ignore other decorator types or CallExpressions with different callees
36
+ });
37
+ if (isProp) {
38
+ // Check if the property is optional (?) or definitely assigned (!)
39
+ const isOptional = node.optional;
40
+ const isDefinitelyAssigned = node.definite;
41
+ // Also check if the property has no initial value set
42
+ if (!isOptional && !isDefinitelyAssigned && node.value === null) {
43
+ context.report({
44
+ node,
45
+ messageId: 'propStrictInit',
46
+ data: {
47
+ propertyName: node.key.type === utils_1.AST_NODE_TYPES.Identifier ? node.key.name : 'unknown',
48
+ },
49
+ });
50
+ }
51
+ }
52
+ }
53
+ },
54
+ };
55
+ },
56
+ });
57
+ //# sourceMappingURL=stencil-strict-props-initialization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stencil-strict-props-initialization.js","sourceRoot":"","sources":["../../src/rules/stencil-strict-props-initialization.ts"],"names":[],"mappings":";;;AAAA,sDAAkD;AAClD,oDAA0D;AAE7C,QAAA,IAAI,GAAG,qCAAqC,CAAC;AAE1D,kBAAe,IAAA,wBAAU,EAAC;IACxB,IAAI,EAAJ,YAAI;IACJ,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,GAAG,EAAE,IAAI;YACT,WAAW,EACT,+IAA+I;SAClJ;QACD,QAAQ,EAAE;YACR,cAAc,EACZ,yIAAyI;SAC5I;QACD,IAAI,EAAE,YAAY;QAClB,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAElB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,kBAAkB,CAAC,IAAI;gBACrB,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClD,oCAAoC;oBACpC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;wBAC9C,wCAAwC;wBACxC,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,KAAK,sBAAc,CAAC,cAAc,EAAE,CAAC;4BAChE,MAAM,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;4BAC3C,oDAAoD;4BACpD,IAAI,MAAM,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gCACxE,OAAO,IAAI,CAAC;4BACd,CAAC;wBACH,CAAC;wBACD,OAAO,KAAK,CAAC,CAAC,yEAAyE;oBACzF,CAAC,CAAC,CAAC;oBACH,IAAI,MAAM,EAAE,CAAC;wBACX,mEAAmE;wBACnE,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC;wBACjC,MAAM,oBAAoB,GAAG,IAAI,CAAC,QAAQ,CAAC;wBAC3C,sDAAsD;wBACtD,IAAI,CAAC,UAAU,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;4BAChE,OAAO,CAAC,MAAM,CAAC;gCACb,IAAI;gCACJ,SAAS,EAAE,gBAAgB;gCAC3B,IAAI,EAAE;oCACJ,YAAY,EACV,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,sBAAc,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iCAC1E;6BACF,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const tsRules: {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/rules/ts/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,IAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tsRules = void 0;
4
+ exports.tsRules = {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/ts/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const tsMigrationRules: {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rules/ts/migrations/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,IAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tsMigrationRules = void 0;
4
+ exports.tsMigrationRules = {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/rules/ts/migrations/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG,EAAE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const bootstrapSizeMap: Record<string, number>;
2
+ //# sourceMappingURL=common-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-data.d.ts","sourceRoot":"","sources":["../../src/utils/common-data.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bootstrapSizeMap = void 0;
4
+ exports.bootstrapSizeMap = {
5
+ '1': 4,
6
+ '2': 8,
7
+ '4': 24,
8
+ '3': 16,
9
+ '5': 48,
10
+ };
11
+ //# sourceMappingURL=common-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-data.js","sourceRoot":"","sources":["../../src/utils/common-data.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAA2B;IACtD,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,CAAC;IACN,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;IACP,GAAG,EAAE,EAAE;CACR,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { Rule } from 'eslint';
2
+ type RuleType = Rule.RuleMetaData['type'];
3
+ export interface RuleConfigBase {
4
+ name: string;
5
+ type?: RuleType;
6
+ }
7
+ export interface PhaseConfig<T> {
8
+ description: string;
9
+ messages: T;
10
+ mutations: Record<keyof T, [string, string]>;
11
+ }
12
+ type SinglePhaseRuleConfig<T> = RuleConfigBase & PhaseConfig<T>;
13
+ export declare const createClassUpdateRule: <T extends Record<string, string>>(config: SinglePhaseRuleConfig<T>) => import("@typescript-eslint/utils/ts-eslint").RuleModule<string, [], import("./create-rule").RuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
14
+ export {};
15
+ //# sourceMappingURL=create-class-update-rule.d.ts.map
@@ -0,0 +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;AAE9B,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,KAAK,qBAAqB,CAAC,CAAC,IAAI,cAAc,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAEhE,eAAO,MAAM,qBAAqB,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpE,QAAQ,qBAAqB,CAAC,CAAC,CAAC,qKAuC9B,CAAC"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createClassUpdateRule = void 0;
4
+ const create_rule_1 = require("./create-rule");
5
+ const createClassUpdateRule = (config) => (0, create_rule_1.createRule)({
6
+ name: config.name,
7
+ meta: {
8
+ docs: {
9
+ dir: 'html',
10
+ description: config.description,
11
+ },
12
+ messages: config.messages,
13
+ type: config.type || 'problem',
14
+ fixable: 'code',
15
+ schema: [],
16
+ },
17
+ defaultOptions: [],
18
+ create(context) {
19
+ return {
20
+ tag(node) {
21
+ const $node = node.toCheerio();
22
+ Object.entries(config.mutations).forEach(([messageId, [oldClass, newClass]]) => {
23
+ if ($node.hasClass(oldClass)) {
24
+ context.report({
25
+ messageId,
26
+ loc: node.loc,
27
+ ...(newClass
28
+ ? {
29
+ fix(fixer) {
30
+ const fixedNode = $node.removeClass(oldClass).addClass(newClass);
31
+ return fixer.replaceTextRange(node.range, fixedNode.toString());
32
+ },
33
+ }
34
+ : {}),
35
+ });
36
+ }
37
+ });
38
+ },
39
+ };
40
+ },
41
+ });
42
+ exports.createClassUpdateRule = createClassUpdateRule;
43
+ //# sourceMappingURL=create-class-update-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-class-update-rule.js","sourceRoot":"","sources":["../../src/utils/create-class-update-rule.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAmBpC,MAAM,qBAAqB,GAAG,CACnC,MAAgC,EAChC,EAAE,CACF,IAAA,wBAAU,EAAC;IACT,IAAI,EAAE,MAAM,CAAC,IAAI;IACjB,IAAI,EAAE;QACJ,IAAI,EAAE;YACJ,GAAG,EAAE,MAAM;YACX,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC;QACD,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,SAAS;QAC9B,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,EAAE;KACX;IACD,cAAc,EAAE,EAAE;IAClB,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,GAAG,CAAC,IAAc;gBAChB,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAE/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE;oBAC7E,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;wBAC7B,OAAO,CAAC,MAAM,CAAC;4BACb,SAAS;4BACT,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,GAAG,CAAC,QAAQ;gCACV,CAAC,CAAC;oCACE,GAAG,CAAC,KAAK;wCACP,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;wCACjE,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;oCAClE,CAAC;iCACF;gCACH,CAAC,CAAC,EAAE,CAAC;yBACR,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC,CAAC;AAxCQ,QAAA,qBAAqB,yBAwC7B"}
@@ -0,0 +1,7 @@
1
+ import { ESLintUtils } from '@typescript-eslint/utils';
2
+ export interface RuleDocs {
3
+ dir: 'html' | 'html/migrations' | 'ts' | 'ts/migrations';
4
+ recommended?: boolean;
5
+ }
6
+ export declare const createRule: <Options extends readonly unknown[], MessageIds extends string>({ meta, name, ...rule }: Readonly<ESLintUtils.RuleWithMetaAndName<Options, MessageIds, RuleDocs>>) => ESLintUtils.RuleModule<MessageIds, Options, RuleDocs, ESLintUtils.RuleListener>;
7
+ //# sourceMappingURL=create-rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-rule.d.ts","sourceRoot":"","sources":["../../src/utils/create-rule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,GAAG,eAAe,CAAC;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AA4BD,eAAO,MAAM,UAAU,uPAGtB,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRule = void 0;
4
+ const utils_1 = require("@typescript-eslint/utils");
5
+ /**
6
+ * We need to patch the RuleCreator in order to use the directory from the meta.docs object in the URL.
7
+ */
8
+ const patchedRuleCreator = (urlCreator) => {
9
+ return function createRule({ name, meta, defaultOptions, create }) {
10
+ return {
11
+ meta: {
12
+ ...meta,
13
+ docs: {
14
+ ...meta.docs,
15
+ url: urlCreator(name, meta.docs.dir),
16
+ },
17
+ },
18
+ defaultOptions,
19
+ create(context) {
20
+ const optionsWithDefault = utils_1.ESLintUtils.applyDefault(defaultOptions, context.options);
21
+ return create(context, optionsWithDefault);
22
+ },
23
+ };
24
+ };
25
+ };
26
+ patchedRuleCreator.withoutDocs = utils_1.ESLintUtils.RuleCreator.withoutDocs;
27
+ exports.createRule = patchedRuleCreator((ruleName, ruleDirectory) => `https://github.com/swisspost/design-system/blob/main/packages/eslint/docs/rules/${ruleDirectory}/${ruleName}.md`);
28
+ //# sourceMappingURL=create-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-rule.js","sourceRoot":"","sources":["../../src/utils/create-rule.ts"],"names":[],"mappings":";;;AAAA,oDAAuD;AAOvD;;GAEG;AACH,MAAM,kBAAkB,GAAG,CACzB,UAA+D,EACT,EAAE;IACxD,OAAO,SAAS,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE;QAC/D,OAAO;YACL,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,IAAI,EAAE;oBACJ,GAAG,IAAI,CAAC,IAAI;oBACZ,GAAG,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;iBACrC;aACF;YACD,cAAc;YACd,MAAM,CAAC,OAAO;gBACZ,MAAM,kBAAkB,GAAG,mBAAW,CAAC,YAAY,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBACrF,OAAO,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAC7C,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,mBAAW,CAAC,WAAW,CAAC,WAAW,CAAC;AAExD,QAAA,UAAU,GAAG,kBAAkB,CAC1C,CAAC,QAAgB,EAAE,aAAqB,EAAE,EAAE,CAC1C,mFAAmF,aAAa,IAAI,QAAQ,KAAK,CACpH,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function generateReplacedClassMessages(classesMap: Array<{
2
+ old: string;
3
+ new: string;
4
+ }>): Record<string, string>;
5
+ //# sourceMappingURL=generate-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-messages.d.ts","sourceRoot":"","sources":["../../src/utils/generate-messages.ts"],"names":[],"mappings":"AAAA,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQxB"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateReplacedClassMessages = generateReplacedClassMessages;
4
+ function generateReplacedClassMessages(classesMap) {
5
+ return classesMap.reduce((o, key) => Object.assign(o, {
6
+ [key.old]: `The "${key.old}" class has been deleted. Please remove it or replace it with "${key.new}".`,
7
+ }), {});
8
+ }
9
+ //# sourceMappingURL=generate-messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-messages.js","sourceRoot":"","sources":["../../src/utils/generate-messages.ts"],"names":[],"mappings":";;AAAA,sEAUC;AAVD,SAAgB,6BAA6B,CAC3C,UAA+C;IAE/C,OAAO,UAAU,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;QACf,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,GAAG,kEAAkE,GAAG,CAAC,GAAG,IAAI;KACxG,CAAC,EACJ,EAAE,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function generateReplacedClassMutations(classesMap: Array<{
2
+ old: string;
3
+ new: string;
4
+ }>): Record<string, [string, string]>;
5
+ //# sourceMappingURL=generate-mutations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-mutations.d.ts","sourceRoot":"","sources":["../../src/utils/generate-mutations.ts"],"names":[],"mappings":"AAAA,wBAAgB,8BAA8B,CAC5C,UAAU,EAAE,KAAK,CAAC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAC9C,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAQlC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateReplacedClassMutations = generateReplacedClassMutations;
4
+ function generateReplacedClassMutations(classesMap) {
5
+ return classesMap.reduce((o, key) => Object.assign(o, {
6
+ [key.old]: [key.old, key.new],
7
+ }), {});
8
+ }
9
+ //# sourceMappingURL=generate-mutations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-mutations.js","sourceRoot":"","sources":["../../src/utils/generate-mutations.ts"],"names":[],"mappings":";;AAAA,wEAUC;AAVD,SAAgB,8BAA8B,CAC5C,UAA+C;IAE/C,OAAO,UAAU,CAAC,MAAM,CACtB,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACT,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;QACf,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC;KAC9B,CAAC,EACJ,EAAE,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { ESLintUtils } from '@typescript-eslint/utils';
2
+ export declare const getAllRules: (pluginName: string, rules: Record<string, ESLintUtils.RuleModule<string>>) => Record<string, "error">;
3
+ //# sourceMappingURL=get-all-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-all-rules.d.ts","sourceRoot":"","sources":["../../src/utils/get-all-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D,eAAO,MAAM,WAAW,GACtB,YAAY,MAAM,EAClB,OAAO,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,4BAStD,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getAllRules = void 0;
4
+ const getAllRules = (pluginName, rules) => {
5
+ const allRules = {};
6
+ Object.keys(rules).forEach(ruleName => {
7
+ allRules[`${pluginName}/${ruleName}`] = 'error';
8
+ });
9
+ return allRules;
10
+ };
11
+ exports.getAllRules = getAllRules;
12
+ //# sourceMappingURL=get-all-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-all-rules.js","sourceRoot":"","sources":["../../src/utils/get-all-rules.ts"],"names":[],"mappings":";;;AAEO,MAAM,WAAW,GAAG,CACzB,UAAkB,EAClB,KAAqD,EACrD,EAAE;IACF,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;QACpC,QAAQ,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAXW,QAAA,WAAW,eAWtB"}
@@ -0,0 +1,4 @@
1
+ import type { ESLintUtils } from '@typescript-eslint/utils';
2
+ import { RuleDocs } from './create-rule';
3
+ export declare const getRecommendedRules: (pluginName: string, rules: Record<string, ESLintUtils.RuleModule<string, [], RuleDocs>>) => Record<string, "error">;
4
+ //# sourceMappingURL=get-recommended-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-recommended-rules.d.ts","sourceRoot":"","sources":["../../src/utils/get-recommended-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,eAAO,MAAM,mBAAmB,GAC9B,YAAY,MAAM,EAClB,OAAO,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC,4BASpE,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRecommendedRules = void 0;
4
+ const getRecommendedRules = (pluginName, rules) => {
5
+ const recommendedRules = {};
6
+ Object.entries(rules).forEach(([ruleName, rule]) => {
7
+ if (rule.meta.docs?.recommended)
8
+ recommendedRules[`${pluginName}/${ruleName}`] = 'error';
9
+ });
10
+ return recommendedRules;
11
+ };
12
+ exports.getRecommendedRules = getRecommendedRules;
13
+ //# sourceMappingURL=get-recommended-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-recommended-rules.js","sourceRoot":"","sources":["../../src/utils/get-recommended-rules.ts"],"names":[],"mappings":";;;AAGO,MAAM,mBAAmB,GAAG,CACjC,UAAkB,EAClB,KAAmE,EACnE,EAAE;IACF,MAAM,gBAAgB,GAA4B,EAAE,CAAC;IAErD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;QACjD,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW;YAAE,gBAAgB,CAAC,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;IAC3F,CAAC,CAAC,CAAC;IAEH,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AAXW,QAAA,mBAAmB,uBAW9B"}
@@ -0,0 +1,24 @@
1
+ import { PhaseConfig, RuleConfigBase } from './create-class-update-rule';
2
+ type RuleMessages = Record<string, string>;
3
+ interface TwoPhaseRuleConfig<T, U> extends RuleConfigBase {
4
+ phases: [PhaseConfig<T>, PhaseConfig<U>];
5
+ }
6
+ export interface TwoPhasesData {
7
+ phases: [PhaseConfig<Record<string, string>>, PhaseConfig<Record<string, string>>];
8
+ }
9
+ export declare function arrayToMap(array: Array<string | number>): Record<string, string | number>;
10
+ /**
11
+ * Since some classes are identical between before and after the migration but with different values,
12
+ * we have to do the migration in two phase:
13
+ * - First, migrate all `oldClassName` classes to `_tmp-newClassName`
14
+ * - Second, migrate all `_tmp-newClassName` to `newClassName`
15
+ *
16
+ * This ensures that we don't get any deprecation errors when running the tests on those identical classes
17
+ */
18
+ export declare function setUpClassesMutations(classNamesMap: Record<string, string | number>, classValuesMap: Record<string, string | number>, messageId: string): TwoPhasesData;
19
+ export declare const createTwoPhasesClassUpdateRule: <T extends RuleMessages, U extends RuleMessages>(config: TwoPhaseRuleConfig<T, U>) => {
20
+ name: string;
21
+ rule: import("@typescript-eslint/utils/ts-eslint").RuleModule<string, [], import("./create-rule").RuleDocs, import("@typescript-eslint/utils/ts-eslint").RuleListener>;
22
+ }[];
23
+ export {};
24
+ //# sourceMappingURL=two-phases-classes-update.d.ts.map
@@ -0,0 +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,CAKzF;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,CAuDf;AAED,eAAO,MAAM,8BAA8B,GAAI,CAAC,SAAS,YAAY,EAAE,CAAC,SAAS,YAAY,EAC3F,QAAQ,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC;;;GAiBjC,CAAC"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTwoPhasesClassUpdateRule = void 0;
4
+ exports.arrayToMap = arrayToMap;
5
+ exports.setUpClassesMutations = setUpClassesMutations;
6
+ const create_class_update_rule_1 = require("./create-class-update-rule");
7
+ // Empty string means no breakpoint
8
+ const breakpoints = ['sm-', 'md-', 'lg-', 'xl-', ''];
9
+ function arrayToMap(array) {
10
+ return array.reduce((obj, val) => {
11
+ obj[val.toString()] = val;
12
+ return obj;
13
+ }, {});
14
+ }
15
+ /**
16
+ * Since some classes are identical between before and after the migration but with different values,
17
+ * we have to do the migration in two phase:
18
+ * - First, migrate all `oldClassName` classes to `_tmp-newClassName`
19
+ * - Second, migrate all `_tmp-newClassName` to `newClassName`
20
+ *
21
+ * This ensures that we don't get any deprecation errors when running the tests on those identical classes
22
+ */
23
+ function setUpClassesMutations(classNamesMap, classValuesMap, messageId) {
24
+ const messagesPhase1 = {};
25
+ const mutationsPhase1 = {};
26
+ const messagesPhase2 = {};
27
+ const mutationsPhase2 = {};
28
+ let index = 0;
29
+ // Temporary prefix to differenciate old and new class names
30
+ const tempPrefix = '_tmp-';
31
+ // Generate all the possible classes based on the class names, breakpoint and class values
32
+ for (const className in classNamesMap) {
33
+ for (const bp of breakpoints) {
34
+ for (const classValue in classValuesMap) {
35
+ const oldClass = className + bp + classValue;
36
+ const finalNewClass = classNamesMap[className] + bp + classValuesMap[classValue];
37
+ // Add the index to the tempClass to avoid issues with having the wrong error msg when running tests
38
+ const tempClass = tempPrefix + index + finalNewClass;
39
+ const keyPhase1 = `${messageId}Phase1_${index}`;
40
+ messagesPhase1[keyPhase1] = `The "${oldClass}" class is deprecated. Please replace it with "${finalNewClass}".`;
41
+ // Mutate from `oldClass` to `_tmp-newClass`
42
+ mutationsPhase1[keyPhase1] = [oldClass, tempClass];
43
+ const keyPhase2 = `${messageId}Phase2_${index}`;
44
+ messagesPhase2[keyPhase2] = `The "${oldClass}" class is deprecated. Please replace it with "${finalNewClass}".`;
45
+ // Mutate from `_tmp-newClass` to `newClass`
46
+ mutationsPhase2[keyPhase2] = [tempClass, finalNewClass];
47
+ index++;
48
+ }
49
+ }
50
+ }
51
+ return {
52
+ phases: [
53
+ {
54
+ description: '',
55
+ messages: messagesPhase1,
56
+ mutations: mutationsPhase1,
57
+ },
58
+ {
59
+ description: '',
60
+ messages: messagesPhase2,
61
+ mutations: mutationsPhase2,
62
+ },
63
+ ],
64
+ };
65
+ }
66
+ const createTwoPhasesClassUpdateRule = (config) => {
67
+ const makePhaseRule = (phaseIndex) => {
68
+ const phase = config.phases[phaseIndex];
69
+ return (0, create_class_update_rule_1.createClassUpdateRule)({
70
+ name: `${config.name}-phase-${phaseIndex + 1}`,
71
+ type: config.type || 'problem',
72
+ description: phase.description,
73
+ messages: phase.messages,
74
+ mutations: phase.mutations,
75
+ });
76
+ };
77
+ return [
78
+ { name: `${config.name}-phase-1`, rule: makePhaseRule(0) },
79
+ { name: `${config.name}-phase-2`, rule: makePhaseRule(1) },
80
+ ];
81
+ };
82
+ exports.createTwoPhasesClassUpdateRule = createTwoPhasesClassUpdateRule;
83
+ //# sourceMappingURL=two-phases-classes-update.js.map
@@ -0,0 +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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"}
package/package.json CHANGED
@@ -1,10 +1,72 @@
1
1
  {
2
2
  "name": "@swisspost/design-system-eslint",
3
- "version": "0.0.1",
4
- "description": "OIDC trusted publishing setup package for @swisspost/design-system-eslint",
3
+ "private": false,
4
+ "version": "1.1.0-next.2",
5
+ "description": "A set of custom ESLint rules to help keeping projects using the Swiss Post Design System up-to-date.",
6
+ "author": "Swiss Post <design-system@post.ch>",
7
+ "license": "Apache-2.0",
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "publishConfig": {
11
+ "access": "public",
12
+ "linkDirectory": "true"
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "package.json",
17
+ "LICENSE",
18
+ "README.md"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "https://github.com/swisspost/design-system",
23
+ "directory": "packages/eslint-plugin"
24
+ },
25
+ "homepage": "https://design-system.post.ch",
26
+ "bugs": {
27
+ "url": "https://github.com/swisspost/design-system/issues"
28
+ },
29
+ "dependencies": {
30
+ "@typescript-eslint/utils": "8.22.0",
31
+ "cheerio": "1.0.0",
32
+ "eslint-scope": "8.2.0"
33
+ },
34
+ "devDependencies": {
35
+ "@eslint/js": "9.19.0",
36
+ "@types/eslint-scope": "3.7.7",
37
+ "@types/jest": "29.5.14",
38
+ "@typescript-eslint/rule-tester": "8.22.0",
39
+ "concurrently": "9.1.2",
40
+ "domhandler": "5.0.3",
41
+ "eslint": "9.19.0",
42
+ "globals": "16.0.0",
43
+ "jest": "29.7.0",
44
+ "parse5": "7.2.1",
45
+ "rimraf": "6.0.1",
46
+ "ts-jest": "29.2.5",
47
+ "typescript": "5.8.3",
48
+ "typescript-eslint": "8.22.0"
49
+ },
50
+ "peerDependencies": {
51
+ "eslint": ">=9.0.0",
52
+ "typescript": ">=5.0.0"
53
+ },
5
54
  "keywords": [
6
- "oidc",
7
- "trusted-publishing",
8
- "setup"
9
- ]
10
- }
55
+ "eslint",
56
+ "eslintplugin",
57
+ "eslint-plugin",
58
+ "design-system",
59
+ "ui",
60
+ "frontend"
61
+ ],
62
+ "scripts": {
63
+ "clean": "rimraf dist",
64
+ "build": "pnpm clean && tsc -p tsconfig.build.json",
65
+ "start": "pnpm build --watch",
66
+ "inspect": "concurrently -n start,inspect -c cyan,green \"pnpm start\" \"eslint --c eslint.play.js --inspect-config\"",
67
+ "lint": "eslint",
68
+ "lint:fix": "eslint --fix",
69
+ "unit": "jest",
70
+ "unit:watch": "jest --watchAll"
71
+ }
72
+ }