@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.
- package/LICENSE +202 -0
- package/README.md +91 -29
- package/dist/configs/html/all.d.ts +4 -0
- package/dist/configs/html/all.d.ts.map +1 -0
- package/dist/configs/html/all.js +46 -0
- package/dist/configs/html/all.js.map +1 -0
- package/dist/configs/html/base.d.ts +5 -0
- package/dist/configs/html/base.d.ts.map +1 -0
- package/dist/configs/html/base.js +15 -0
- package/dist/configs/html/base.js.map +1 -0
- package/dist/configs/html/migrations.d.ts +4 -0
- package/dist/configs/html/migrations.d.ts.map +1 -0
- package/dist/configs/html/migrations.js +17 -0
- package/dist/configs/html/migrations.js.map +1 -0
- package/dist/configs/html/recommended.d.ts +4 -0
- package/dist/configs/html/recommended.d.ts.map +1 -0
- package/dist/configs/html/recommended.js +46 -0
- package/dist/configs/html/recommended.js.map +1 -0
- package/dist/configs/stencil/recommended.d.ts +4 -0
- package/dist/configs/stencil/recommended.d.ts.map +1 -0
- package/dist/configs/stencil/recommended.js +25 -0
- package/dist/configs/stencil/recommended.js.map +1 -0
- package/dist/configs/ts/all.d.ts +4 -0
- package/dist/configs/ts/all.d.ts.map +1 -0
- package/dist/configs/ts/all.js +46 -0
- package/dist/configs/ts/all.js.map +1 -0
- package/dist/configs/ts/base.d.ts +5 -0
- package/dist/configs/ts/base.d.ts.map +1 -0
- package/dist/configs/ts/base.js +16 -0
- package/dist/configs/ts/base.js.map +1 -0
- package/dist/configs/ts/migrations.d.ts +4 -0
- package/dist/configs/ts/migrations.d.ts.map +1 -0
- package/dist/configs/ts/migrations.js +18 -0
- package/dist/configs/ts/migrations.js.map +1 -0
- package/dist/configs/ts/recommended.d.ts +4 -0
- package/dist/configs/ts/recommended.d.ts.map +1 -0
- package/dist/configs/ts/recommended.js +46 -0
- package/dist/configs/ts/recommended.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations.d.ts +4 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +28 -0
- package/dist/migrations.js.map +1 -0
- package/dist/parsers/html/html-node.d.ts +12 -0
- package/dist/parsers/html/html-node.d.ts.map +1 -0
- package/dist/parsers/html/html-node.js +3 -0
- package/dist/parsers/html/html-node.js.map +1 -0
- package/dist/parsers/html/index.d.ts +8 -0
- package/dist/parsers/html/index.d.ts.map +1 -0
- package/dist/parsers/html/index.js +11 -0
- package/dist/parsers/html/index.js.map +1 -0
- package/dist/parsers/html/parser.d.ts +29 -0
- package/dist/parsers/html/parser.d.ts.map +1 -0
- package/dist/parsers/html/parser.js +186 -0
- package/dist/parsers/html/parser.js.map +1 -0
- package/dist/rules/html/index.d.ts +2 -0
- package/dist/rules/html/index.d.ts.map +1 -0
- package/dist/rules/html/index.js +5 -0
- package/dist/rules/html/index.js.map +1 -0
- package/dist/rules/html/migrations/index.d.ts +20 -0
- package/dist/rules/html/migrations/index.d.ts.map +1 -0
- package/dist/rules/html/migrations/index.js +82 -0
- package/dist/rules/html/migrations/index.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-alert.d.ts +4 -0
- package/dist/rules/html/migrations/no-deprecated-alert.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-alert.js +44 -0
- package/dist/rules/html/migrations/no-deprecated-alert.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-breakpoints.d.ts +7 -0
- package/dist/rules/html/migrations/no-deprecated-breakpoints.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-breakpoints.js +179 -0
- package/dist/rules/html/migrations/no-deprecated-breakpoints.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-btn-rg.d.ts +4 -0
- package/dist/rules/html/migrations/no-deprecated-btn-rg.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-btn-rg.js +17 -0
- package/dist/rules/html/migrations/no-deprecated-btn-rg.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-chip-filter.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-chip-filter.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-chip-filter.js +19 -0
- package/dist/rules/html/migrations/no-deprecated-chip-filter.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-elevation-utilities.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-elevation-utilities.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-elevation-utilities.js +23 -0
- package/dist/rules/html/migrations/no-deprecated-elevation-utilities.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-font-curves.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-font-curves.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-font-curves.js +25 -0
- package/dist/rules/html/migrations/no-deprecated-font-curves.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-font-sizes.d.ts +10 -0
- package/dist/rules/html/migrations/no-deprecated-font-sizes.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-font-sizes.js +78 -0
- package/dist/rules/html/migrations/no-deprecated-font-sizes.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-font-weight.d.ts +4 -0
- package/dist/rules/html/migrations/no-deprecated-font-weight.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-font-weight.js +52 -0
- package/dist/rules/html/migrations/no-deprecated-font-weight.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-gap-utilities.d.ts +7 -0
- package/dist/rules/html/migrations/no-deprecated-gap-utilities.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-gap-utilities.js +22 -0
- package/dist/rules/html/migrations/no-deprecated-gap-utilities.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-gutter-utilities.d.ts +7 -0
- package/dist/rules/html/migrations/no-deprecated-gutter-utilities.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-gutter-utilities.js +22 -0
- package/dist/rules/html/migrations/no-deprecated-gutter-utilities.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-h-clearfix.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-h-clearfix.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-h-clearfix.js +19 -0
- package/dist/rules/html/migrations/no-deprecated-h-clearfix.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.js +19 -0
- package/dist/rules/html/migrations/no-deprecated-h-visuallyhidden.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-loader.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-loader.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-loader.js +29 -0
- package/dist/rules/html/migrations/no-deprecated-loader.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-position-helpers.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-position-helpers.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-position-helpers.js +22 -0
- package/dist/rules/html/migrations/no-deprecated-position-helpers.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-shadow-utilities.d.ts +5 -0
- package/dist/rules/html/migrations/no-deprecated-shadow-utilities.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-shadow-utilities.js +22 -0
- package/dist/rules/html/migrations/no-deprecated-shadow-utilities.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-sizing-utilities.d.ts +7 -0
- package/dist/rules/html/migrations/no-deprecated-sizing-utilities.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-sizing-utilities.js +49 -0
- package/dist/rules/html/migrations/no-deprecated-sizing-utilities.js.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-spacing-utilities.d.ts +7 -0
- package/dist/rules/html/migrations/no-deprecated-spacing-utilities.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-deprecated-spacing-utilities.js +56 -0
- package/dist/rules/html/migrations/no-deprecated-spacing-utilities.js.map +1 -0
- package/dist/rules/html/migrations/no-form-text.d.ts +4 -0
- package/dist/rules/html/migrations/no-form-text.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-form-text.js +40 -0
- package/dist/rules/html/migrations/no-form-text.js.map +1 -0
- package/dist/rules/html/migrations/no-unnumbered-border-radius.d.ts +5 -0
- package/dist/rules/html/migrations/no-unnumbered-border-radius.d.ts.map +1 -0
- package/dist/rules/html/migrations/no-unnumbered-border-radius.js +23 -0
- package/dist/rules/html/migrations/no-unnumbered-border-radius.js.map +1 -0
- package/dist/rules/index.d.ts +4 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +41 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/stencil-strict-props-initialization.d.ts +4 -0
- package/dist/rules/stencil-strict-props-initialization.d.ts.map +1 -0
- package/dist/rules/stencil-strict-props-initialization.js +57 -0
- package/dist/rules/stencil-strict-props-initialization.js.map +1 -0
- package/dist/rules/ts/index.d.ts +2 -0
- package/dist/rules/ts/index.d.ts.map +1 -0
- package/dist/rules/ts/index.js +5 -0
- package/dist/rules/ts/index.js.map +1 -0
- package/dist/rules/ts/migrations/index.d.ts +2 -0
- package/dist/rules/ts/migrations/index.d.ts.map +1 -0
- package/dist/rules/ts/migrations/index.js +5 -0
- package/dist/rules/ts/migrations/index.js.map +1 -0
- package/dist/utils/common-data.d.ts +2 -0
- package/dist/utils/common-data.d.ts.map +1 -0
- package/dist/utils/common-data.js +11 -0
- package/dist/utils/common-data.js.map +1 -0
- package/dist/utils/create-class-update-rule.d.ts +15 -0
- package/dist/utils/create-class-update-rule.d.ts.map +1 -0
- package/dist/utils/create-class-update-rule.js +43 -0
- package/dist/utils/create-class-update-rule.js.map +1 -0
- package/dist/utils/create-rule.d.ts +7 -0
- package/dist/utils/create-rule.d.ts.map +1 -0
- package/dist/utils/create-rule.js +28 -0
- package/dist/utils/create-rule.js.map +1 -0
- package/dist/utils/generate-messages.d.ts +5 -0
- package/dist/utils/generate-messages.d.ts.map +1 -0
- package/dist/utils/generate-messages.js +9 -0
- package/dist/utils/generate-messages.js.map +1 -0
- package/dist/utils/generate-mutations.d.ts +5 -0
- package/dist/utils/generate-mutations.d.ts.map +1 -0
- package/dist/utils/generate-mutations.js +9 -0
- package/dist/utils/generate-mutations.js.map +1 -0
- package/dist/utils/get-all-rules.d.ts +3 -0
- package/dist/utils/get-all-rules.d.ts.map +1 -0
- package/dist/utils/get-all-rules.js +12 -0
- package/dist/utils/get-all-rules.js.map +1 -0
- package/dist/utils/get-recommended-rules.d.ts +4 -0
- package/dist/utils/get-recommended-rules.d.ts.map +1 -0
- package/dist/utils/get-recommended-rules.js +13 -0
- package/dist/utils/get-recommended-rules.js.map +1 -0
- package/dist/utils/two-phases-classes-update.d.ts +24 -0
- package/dist/utils/two-phases-classes-update.d.ts.map +1 -0
- package/dist/utils/two-phases-classes-update.js +83 -0
- package/dist/utils/two-phases-classes-update.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rules/ts/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,OAAO,GAAG,EAAE,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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
|
-
"
|
|
4
|
-
"
|
|
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
|
-
"
|
|
7
|
-
"
|
|
8
|
-
"
|
|
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
|
+
}
|