linter-bundle 7.5.0 → 7.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.linter-bundle.schema.json +25 -0
- package/CHANGELOG.md +26 -1
- package/README.md +17 -13
- package/eslint/index.mjs +15 -5
- package/eslint/type-declarations.mjs +5 -2
- package/helper/linter-bundle-config.d.ts +4 -0
- package/lint.js +5 -4
- package/package.json +14 -13
- package/stylelint/index.mjs +150 -71
- package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationColonSpaceChecker.mjs +2 -2
- package/TODO.md +0 -0
|
@@ -104,8 +104,33 @@
|
|
|
104
104
|
},
|
|
105
105
|
"additionalProperties": false
|
|
106
106
|
},
|
|
107
|
+
"css": {
|
|
108
|
+
"type": "object",
|
|
109
|
+
"properties": {
|
|
110
|
+
"verbose": {
|
|
111
|
+
"type": "boolean"
|
|
112
|
+
},
|
|
113
|
+
"timing": {
|
|
114
|
+
"type": "boolean"
|
|
115
|
+
},
|
|
116
|
+
"git": {
|
|
117
|
+
"type": "boolean"
|
|
118
|
+
},
|
|
119
|
+
"include": {
|
|
120
|
+
"type": "array",
|
|
121
|
+
"items": {
|
|
122
|
+
"type": "string"
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
"patternPrefix": {
|
|
126
|
+
"type": "string"
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
"additionalProperties": false
|
|
130
|
+
},
|
|
107
131
|
"sass": {
|
|
108
132
|
"type": "object",
|
|
133
|
+
"deprecated": true,
|
|
109
134
|
"properties": {
|
|
110
135
|
"verbose": {
|
|
111
136
|
"type": "boolean"
|
package/CHANGELOG.md
CHANGED
|
@@ -6,7 +6,32 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
-
[Show all code changes](https://github.com/jens-duttke/linter-bundle/compare/v7.
|
|
9
|
+
[Show all code changes](https://github.com/jens-duttke/linter-bundle/compare/v7.6.0...HEAD)
|
|
10
|
+
|
|
11
|
+
## [7.6.0] - 2025-05-14
|
|
12
|
+
|
|
13
|
+
- [general] Added support for `.css` files in ESLint and Stylelint rules
|
|
14
|
+
- [eslint] Updated `eslint` from `9.24.0` to `9.26.0`
|
|
15
|
+
- [eslint] Updated `eslint-import-resolver-typescript` from `4.3.2` to `4.3.4`
|
|
16
|
+
- [eslint] Updated `eslint-plugin-jsdoc` from `50.6.9` to `50.6.17`
|
|
17
|
+
- [eslint] Updated `eslint-plugin-n` from `17.17.0` to `17.18.0`
|
|
18
|
+
- [eslint] Updated `eslint-plugin-unicorn` from `58.0.0` to `59.0.1`
|
|
19
|
+
- [eslint] Updated `globals` from `16.0.0` to `16.1.0`
|
|
20
|
+
- [eslint] Updated `typescript-eslint` from `8.29.1` to `8.32.1`
|
|
21
|
+
- [stylelint] Updated `stylelint` from `16.18.0` to `16.19.1`
|
|
22
|
+
- [stylelint] Updated `stylelint-order` from `6.0.4` to `7.0.0`
|
|
23
|
+
- [stylelint] Updated `stylelint-scss` from `6.11.1` to `6.12.0`
|
|
24
|
+
- [eslint] Renamed `unicorn/no-array-push-push` rule to `prefer-single-call`
|
|
25
|
+
- [eslint] Renamed `unicorn/no-length-as-slice-end` rule to `no-unnecessary-slice-end`
|
|
26
|
+
- [eslint] Added but disabled [`unicorn/prefer-import-meta-properties`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-import-meta-properties.md) rule
|
|
27
|
+
- [eslint] Added [`unicorn/no-unnecessary-array-flat-depth`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-array-flat-depth.md) rule
|
|
28
|
+
- [eslint] Added [`unicorn/no-unnecessary-array-splice-count`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-array-splice-count.md) rule
|
|
29
|
+
- [eslint] Activated [`unicorn/prefer-event-target`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-event-target.md) rule
|
|
30
|
+
- [eslint] Activated [`unicorn/prefer-top-level-await`](https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/prefer-top-level-await.md) rule
|
|
31
|
+
- [eslint] Added [`@typescript-eslint/no-unnecessary-type-conversion`](https://typescript-eslint.io/rules/no-unnecessary-type-conversion/) rule
|
|
32
|
+
- [stylelint] Activated [`selector-not-notation`](https://stylelint.io/user-guide/rules/selector-not-notation/) rule with "complex" option
|
|
33
|
+
|
|
34
|
+
[Show all code changes](https://github.com/jens-duttke/linter-bundle/compare/v7.5.0...v7.6.0)
|
|
10
35
|
|
|
11
36
|
## [7.5.0] - 2025-04-08
|
|
12
37
|
|
package/README.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
Ready-to use bundle of linting tools, containing configurations for
|
|
10
10
|
|
|
11
11
|
- [ESLint](https://eslint.org/): JavaScript (Node.js); TypeScript, React (Browser)
|
|
12
|
-
- [stylelint](https://stylelint.io/): SCSS (Browser)
|
|
12
|
+
- [stylelint](https://stylelint.io/): CSS, SCSS (Browser)
|
|
13
13
|
- [markdownlint](https://github.com/DavidAnson/markdownlint): Markdown
|
|
14
14
|
- [better-npm-audit](https://www.npmjs.com/package/better-npm-audit): Security audit using `npm`
|
|
15
15
|
- [improved-yarn-audit](https://www.npmjs.com/package/improved-yarn-audit): Security audit using `yarn`
|
|
@@ -84,8 +84,8 @@ npm install linter-bundle --save-dev
|
|
|
84
84
|
```json
|
|
85
85
|
{
|
|
86
86
|
"scripts": {
|
|
87
|
-
"lint": "lint tsc ts
|
|
88
|
-
"lint-different-configurations": "lint tsc --tsconfig=./path1/tsconfig.json tsc --tsconfig=./path2/tsconfig.json ts
|
|
87
|
+
"lint": "lint tsc ts css md audit",
|
|
88
|
+
"lint-different-configurations": "lint tsc --tsconfig=./path1/tsconfig.json tsc --tsconfig=./path2/tsconfig.json ts css md audit"
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
```
|
|
@@ -224,8 +224,8 @@ The file itself, and any of the options is optional.
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
},
|
|
227
|
-
"
|
|
228
|
-
"include": ["./included/*.
|
|
227
|
+
"css": {
|
|
228
|
+
"include": ["./included/*.css"],
|
|
229
229
|
"patternPrefix": "(my-prefix|another-prefix)"
|
|
230
230
|
},
|
|
231
231
|
"md": {
|
|
@@ -405,9 +405,9 @@ export default {
|
|
|
405
405
|
},
|
|
406
406
|
|
|
407
407
|
/**
|
|
408
|
-
* Configuration, specific to the `
|
|
408
|
+
* Configuration, specific to the `css` command.
|
|
409
409
|
*/
|
|
410
|
-
|
|
410
|
+
css: {
|
|
411
411
|
/**
|
|
412
412
|
* `verbose`, `timing` and `git` are the same as in the root node.
|
|
413
413
|
*/
|
|
@@ -420,7 +420,7 @@ export default {
|
|
|
420
420
|
*
|
|
421
421
|
* @type {string[]}
|
|
422
422
|
*/
|
|
423
|
-
include: ['./included/*.
|
|
423
|
+
include: ['./included/*.css'],
|
|
424
424
|
|
|
425
425
|
/**
|
|
426
426
|
* The prefix used for the 'custom-media-pattern' (`@media (--my-prefix-foo)`) and 'custom-property-pattern' (`var(--my-prefix-bar)`) rule.
|
|
@@ -444,7 +444,7 @@ export default {
|
|
|
444
444
|
*
|
|
445
445
|
* @type {string[]}
|
|
446
446
|
*/
|
|
447
|
-
include: ['./included/*.
|
|
447
|
+
include: ['./included/*.md']
|
|
448
448
|
},
|
|
449
449
|
|
|
450
450
|
/**
|
|
@@ -532,7 +532,7 @@ The command line arguments are separated in groups. Here are some examples:
|
|
|
532
532
|
|
|
533
533
|
```sh
|
|
534
534
|
# Run File restrictions, TypeScript compiler, ESLint, Stylelint, Markdownlint, and audit in the given order, using the default configuration
|
|
535
|
-
lint files tsc ts
|
|
535
|
+
lint files tsc ts css md audit
|
|
536
536
|
|
|
537
537
|
# Run ESLint and Audit, and show their terminal output even on success
|
|
538
538
|
lint --verbose ts audit
|
|
@@ -593,12 +593,12 @@ Argument | Description | Example
|
|
|
593
593
|
`--include` | Patterns with files which should be considered | `--include="./cypress/**/*.ts"`
|
|
594
594
|
`--exclude` | Patterns with files which should not be considered. Can be used multiple times for different patterns. Used as `--ignore-pattern` argument for ESLint. | `--exclude="cypress" --exclude=".storybook"`
|
|
595
595
|
|
|
596
|
-
### `lint
|
|
596
|
+
### `lint css`
|
|
597
597
|
|
|
598
598
|
Will execute:
|
|
599
599
|
|
|
600
600
|
```sh
|
|
601
|
-
stylelint "src/**/*.scss" --formatter unix --report-needless-disables --report-invalid-scope-disables --report-descriptionless-disables
|
|
601
|
+
stylelint "src/**/*.{css,scss}" --formatter unix --report-needless-disables --report-invalid-scope-disables --report-descriptionless-disables
|
|
602
602
|
```
|
|
603
603
|
|
|
604
604
|
### `lint md`
|
|
@@ -668,7 +668,8 @@ To ensure the stylelint plugins are correctly loaded, you need to adjust the set
|
|
|
668
668
|
```json
|
|
669
669
|
{
|
|
670
670
|
"stylelint.enable": true,
|
|
671
|
-
"stylelint.validate": [
|
|
671
|
+
"stylelint.validate": [,
|
|
672
|
+
"css",
|
|
672
673
|
"scss"
|
|
673
674
|
],
|
|
674
675
|
"css.validate": false,
|
|
@@ -702,6 +703,9 @@ To visualize the max line-length rules in VSCode, you can activate rulers, by ad
|
|
|
702
703
|
"[markdown]": {
|
|
703
704
|
"editor.rulers": [300]
|
|
704
705
|
},
|
|
706
|
+
"[css]": {
|
|
707
|
+
"editor.rulers": [160]
|
|
708
|
+
},
|
|
705
709
|
"[scss]": {
|
|
706
710
|
"editor.rulers": [160]
|
|
707
711
|
},
|
package/eslint/index.mjs
CHANGED
|
@@ -782,6 +782,7 @@ export default [
|
|
|
782
782
|
'@typescript-eslint/no-unnecessary-type-arguments': 'error',
|
|
783
783
|
'@typescript-eslint/no-unnecessary-type-assertion': 'error',
|
|
784
784
|
'@typescript-eslint/no-unnecessary-type-constraint': 'error',
|
|
785
|
+
'@typescript-eslint/no-unnecessary-type-conversion': 'error',
|
|
785
786
|
'@typescript-eslint/no-unnecessary-type-parameters': 'error',
|
|
786
787
|
'@typescript-eslint/no-unsafe-argument': 'error',
|
|
787
788
|
'@typescript-eslint/no-unsafe-assignment': 'error',
|
|
@@ -921,6 +922,7 @@ export default [
|
|
|
921
922
|
'import/no-self-import': 'error',
|
|
922
923
|
'import/no-unassigned-import': ['error', {
|
|
923
924
|
allow: [
|
|
925
|
+
'**/*.css',
|
|
924
926
|
'**/*.scss',
|
|
925
927
|
'jest-extended'
|
|
926
928
|
]
|
|
@@ -1030,6 +1032,12 @@ export default [
|
|
|
1030
1032
|
namespace: true,
|
|
1031
1033
|
named: false
|
|
1032
1034
|
},
|
|
1035
|
+
'./styles.module.css': {
|
|
1036
|
+
unassigned: false,
|
|
1037
|
+
default: false,
|
|
1038
|
+
namespace: true,
|
|
1039
|
+
named: false
|
|
1040
|
+
},
|
|
1033
1041
|
'./styles.module.scss': {
|
|
1034
1042
|
unassigned: false,
|
|
1035
1043
|
default: false,
|
|
@@ -1044,7 +1052,6 @@ export default [
|
|
|
1044
1052
|
'unicorn/no-array-callback-reference': 'off', // If I use functions, they are the best option for this use-case
|
|
1045
1053
|
'unicorn/no-array-for-each': 'error',
|
|
1046
1054
|
'unicorn/no-array-method-this-argument': 'error',
|
|
1047
|
-
'unicorn/no-array-push-push': 'error',
|
|
1048
1055
|
'unicorn/no-array-reduce': ['error', { allowSimpleOperations: true }],
|
|
1049
1056
|
'unicorn/no-await-expression-member': 'error',
|
|
1050
1057
|
'unicorn/no-console-spaces': 'error',
|
|
@@ -1056,7 +1063,6 @@ export default [
|
|
|
1056
1063
|
'unicorn/no-invalid-fetch-options': 'error',
|
|
1057
1064
|
'unicorn/no-invalid-remove-event-listener': 'error',
|
|
1058
1065
|
'unicorn/no-keyword-prefix': 'off',
|
|
1059
|
-
'unicorn/no-length-as-slice-end': 'error',
|
|
1060
1066
|
'unicorn/no-lonely-if': 'off', // Sometimes the code is clearer if-conditions are not combined
|
|
1061
1067
|
'unicorn/no-magic-array-flat-depth': 'error',
|
|
1062
1068
|
'unicorn/no-named-default': 'error',
|
|
@@ -1072,8 +1078,11 @@ export default [
|
|
|
1072
1078
|
'unicorn/no-thenable': 'error',
|
|
1073
1079
|
'unicorn/no-this-assignment': 'error',
|
|
1074
1080
|
'unicorn/no-typeof-undefined': 'error',
|
|
1081
|
+
'unicorn/no-unnecessary-array-flat-depth': 'error',
|
|
1082
|
+
'unicorn/no-unnecessary-array-splice-count': 'error',
|
|
1075
1083
|
'unicorn/no-unnecessary-await': 'error',
|
|
1076
1084
|
'unicorn/no-unnecessary-polyfills': 'error',
|
|
1085
|
+
'unicorn/no-unnecessary-slice-end': 'error',
|
|
1077
1086
|
'unicorn/no-unreadable-array-destructuring': 'error',
|
|
1078
1087
|
'unicorn/no-unreadable-iife': 'error',
|
|
1079
1088
|
'unicorn/no-unused-properties': 'error',
|
|
@@ -1101,9 +1110,10 @@ export default [
|
|
|
1101
1110
|
'unicorn/prefer-dom-node-dataset': 'off', // `setAttribute` is faster than `dataset`. See https://www.measurethat.net/Benchmarks/Show/7740/0/classname-vs-setattribute-vs-classlist-vs-dataset
|
|
1102
1111
|
'unicorn/prefer-dom-node-remove': 'error',
|
|
1103
1112
|
'unicorn/prefer-dom-node-text-content': 'error',
|
|
1104
|
-
'unicorn/prefer-event-target': '
|
|
1113
|
+
'unicorn/prefer-event-target': 'error',
|
|
1105
1114
|
'unicorn/prefer-export-from': ['error', { ignoreUsedVariables: true }],
|
|
1106
1115
|
'unicorn/prefer-global-this': 'off', // This makes only sense if the same code may run on the server-side. Often the auto-fixing of this rule doesn't make sense
|
|
1116
|
+
'unicorn/prefer-import-meta-properties': 'off', // @todo Regarding `n/no-unsupported-features/node-builtins` it's still an experimental feature, so check back in 2026
|
|
1107
1117
|
'unicorn/prefer-includes': 'error',
|
|
1108
1118
|
'unicorn/prefer-json-parse-buffer': 'off', // TypeScript states that string needs to be used as of the ES specification. @see https://github.com/microsoft/TypeScript/issues/11842
|
|
1109
1119
|
'unicorn/prefer-keyboard-event-key': 'error',
|
|
@@ -1116,7 +1126,6 @@ export default [
|
|
|
1116
1126
|
'unicorn/prefer-native-coercion-functions': 'off',
|
|
1117
1127
|
'unicorn/prefer-negative-index': 'error',
|
|
1118
1128
|
'unicorn/prefer-number-properties': 'error',
|
|
1119
|
-
'unicorn/prefer-object-has-own': 'off', // Not widely supported yet. Can be activated in 2024
|
|
1120
1129
|
'unicorn/prefer-object-from-entries': 'error',
|
|
1121
1130
|
'unicorn/prefer-optional-catch-binding': 'error',
|
|
1122
1131
|
'unicorn/prefer-prototype-methods': 'error',
|
|
@@ -1124,6 +1133,7 @@ export default [
|
|
|
1124
1133
|
'unicorn/prefer-reflect-apply': 'error',
|
|
1125
1134
|
'unicorn/prefer-set-has': 'error',
|
|
1126
1135
|
'unicorn/prefer-set-size': 'error',
|
|
1136
|
+
'unicorn/prefer-single-call': 'error',
|
|
1127
1137
|
'unicorn/prefer-spread': 'off', // @todo Disabled till there a solution for the warning, that `slice()` on Typed-Arrays should be replaced (which is not possible). @see https://github.com/sindresorhus/eslint-plugin-unicorn/issues/1064
|
|
1128
1138
|
'unicorn/prefer-string-raw': 'off', // The overhead of writing String.raw`...` is not worth the inconsistency in writing strings
|
|
1129
1139
|
'unicorn/prefer-string-replace-all': 'off', // @todo Available since 2020 in browsers. Should this be preferred?
|
|
@@ -1133,7 +1143,7 @@ export default [
|
|
|
1133
1143
|
'unicorn/prefer-structured-clone': 'error',
|
|
1134
1144
|
'unicorn/prefer-switch': 'error',
|
|
1135
1145
|
'unicorn/prefer-ternary': 'off', // We prefer readability over saving a few chars
|
|
1136
|
-
'unicorn/prefer-top-level-await': '
|
|
1146
|
+
'unicorn/prefer-top-level-await': 'error',
|
|
1137
1147
|
'unicorn/prefer-regexp-test': 'error',
|
|
1138
1148
|
'unicorn/prefer-type-error': 'error',
|
|
1139
1149
|
'unicorn/prevent-abbreviations': ['error', { ignore: ['args', 'i', 'j', 'i18n', /[Rr]ef/u, /[Pp]arams/u, /[Pp]rops/u] }],
|
|
@@ -36,14 +36,17 @@ export default [
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
files: [
|
|
39
|
+
files: [
|
|
40
|
+
'**/*.css.d.ts',
|
|
41
|
+
'**/*.scss.d.ts'
|
|
42
|
+
],
|
|
40
43
|
rules: {
|
|
41
44
|
/**
|
|
42
45
|
* eslint
|
|
43
46
|
*
|
|
44
47
|
* @see https://eslint.org/docs/rules/
|
|
45
48
|
*/
|
|
46
|
-
'linebreak-style': 'off' // Ignore for automatically generated .
|
|
49
|
+
'linebreak-style': 'off' // Ignore for automatically generated .(s)css.d.ts files, since that does not affect the project.
|
|
47
50
|
}
|
|
48
51
|
}
|
|
49
52
|
];
|
package/lint.js
CHANGED
|
@@ -23,7 +23,7 @@ const require = createRequire(import.meta.url);
|
|
|
23
23
|
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
|
-
* @typedef {'files' | 'tsc' | 'ts' | 'sass' | 'md' | 'audit'} TaskNames
|
|
26
|
+
* @typedef {'files' | 'tsc' | 'ts' | 'css' | 'sass' | 'md' | 'audit'} TaskNames
|
|
27
27
|
* @typedef {Partial<Record<string, (string | boolean)[]>>} TaskConfig
|
|
28
28
|
* @typedef {import('./helper/run-process.js').ProcessResult} ProcessResult
|
|
29
29
|
* @typedef {{ taskName: TaskNames; taskConfig: TaskConfig; }} TaskNameAndConfig
|
|
@@ -52,6 +52,7 @@ await (async () => {
|
|
|
52
52
|
case 'ts':
|
|
53
53
|
return runESLintTask(taskName, taskConfig);
|
|
54
54
|
|
|
55
|
+
case 'css':
|
|
55
56
|
case 'sass':
|
|
56
57
|
return runStylelintTask(taskName, taskConfig);
|
|
57
58
|
|
|
@@ -214,7 +215,7 @@ async function runESLintTask (taskName, taskConfig) {
|
|
|
214
215
|
}
|
|
215
216
|
|
|
216
217
|
/**
|
|
217
|
-
* Runs the `
|
|
218
|
+
* Runs the `css` task.
|
|
218
219
|
*
|
|
219
220
|
* @param {TaskNameAndConfig['taskName']} taskName - Name of the task as used in the command line
|
|
220
221
|
* @param {TaskNameAndConfig['taskConfig']} taskConfig - Configuration of the task
|
|
@@ -227,7 +228,7 @@ async function runStylelintTask (taskName, taskConfig) {
|
|
|
227
228
|
verbose: getConfigValue(taskName, taskConfig, 'verbose')
|
|
228
229
|
};
|
|
229
230
|
|
|
230
|
-
const includes = await getIncludes(newTaskConfig, 'src/**/*.scss');
|
|
231
|
+
const includes = await getIncludes(newTaskConfig, 'src/**/*.{css,scss}');
|
|
231
232
|
|
|
232
233
|
if (!includes) {
|
|
233
234
|
return generateDummyJobOutput(taskName, newTaskConfig, {
|
|
@@ -415,7 +416,7 @@ async function validateEnvironment () {
|
|
|
415
416
|
* @throws {Error} If no task has be specified in the arguments
|
|
416
417
|
*/
|
|
417
418
|
function getTasksToRun (argv) {
|
|
418
|
-
const TASKS = new Set(['tsc', 'ts', 'sass', 'md', 'audit', 'files']);
|
|
419
|
+
const TASKS = new Set(['tsc', 'ts', 'css', 'sass', 'md', 'audit', 'files']);
|
|
419
420
|
const ARG_REGEXP = /^--([^=]+)(?:=(.+))?$/u;
|
|
420
421
|
|
|
421
422
|
/** @type {TaskNameAndConfig | null} */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "linter-bundle",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.6.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Ready-to use bundle of linting tools, containing configurations for ESLint, stylelint and markdownlint.",
|
|
6
6
|
"keywords": [
|
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
"react",
|
|
16
16
|
"react-hooks",
|
|
17
17
|
"unicorn",
|
|
18
|
-
"scss"
|
|
18
|
+
"scss",
|
|
19
|
+
"css"
|
|
19
20
|
],
|
|
20
21
|
"author": "Jens Duttke <github@duttke.de> (https://github.com/jens-duttke)",
|
|
21
22
|
"license": "MIT",
|
|
@@ -43,32 +44,32 @@
|
|
|
43
44
|
"dependencies": {
|
|
44
45
|
"@stylistic/eslint-plugin": "4.2.0",
|
|
45
46
|
"@stylistic/eslint-plugin-jsx": "4.2.0",
|
|
46
|
-
"eslint": "9.
|
|
47
|
+
"eslint": "9.26.0",
|
|
47
48
|
"eslint-formatter-unix": "8.40.0",
|
|
48
|
-
"eslint-import-resolver-typescript": "4.3.
|
|
49
|
+
"eslint-import-resolver-typescript": "4.3.4",
|
|
49
50
|
"eslint-import-resolver-webpack": "0.13.10",
|
|
50
51
|
"eslint-plugin-eslint-comments": "3.2.0",
|
|
51
52
|
"eslint-plugin-functional": "9.0.1",
|
|
52
53
|
"eslint-plugin-import": "2.31.0",
|
|
53
54
|
"eslint-plugin-jest": "28.11.0",
|
|
54
|
-
"eslint-plugin-jsdoc": "50.6.
|
|
55
|
+
"eslint-plugin-jsdoc": "50.6.17",
|
|
55
56
|
"eslint-plugin-jsx-a11y": "6.10.2",
|
|
56
|
-
"eslint-plugin-n": "17.
|
|
57
|
+
"eslint-plugin-n": "17.18.0",
|
|
57
58
|
"eslint-plugin-promise": "7.2.1",
|
|
58
59
|
"eslint-plugin-react": "7.37.5",
|
|
59
60
|
"eslint-plugin-react-hooks": "5.2.0",
|
|
60
|
-
"eslint-plugin-unicorn": "
|
|
61
|
-
"globals": "16.
|
|
61
|
+
"eslint-plugin-unicorn": "59.0.1",
|
|
62
|
+
"globals": "16.1.0",
|
|
62
63
|
"markdownlint-cli": "0.44.0",
|
|
63
64
|
"micromatch": "4.0.8",
|
|
64
65
|
"postcss-scss": "4.0.9",
|
|
65
|
-
"stylelint": "16.
|
|
66
|
+
"stylelint": "16.19.1",
|
|
66
67
|
"stylelint-declaration-block-no-ignored-properties": "2.8.0",
|
|
67
68
|
"stylelint-high-performance-animation": "1.11.0",
|
|
68
|
-
"stylelint-order": "
|
|
69
|
-
"stylelint-scss": "6.
|
|
69
|
+
"stylelint-order": "7.0.0",
|
|
70
|
+
"stylelint-scss": "6.12.0",
|
|
70
71
|
"stylelint-use-logical-spec": "5.0.1",
|
|
71
|
-
"typescript-eslint": "8.
|
|
72
|
+
"typescript-eslint": "8.32.1"
|
|
72
73
|
},
|
|
73
74
|
"peerDependencies": {
|
|
74
75
|
"@typescript-eslint/utils": "*",
|
|
@@ -78,7 +79,7 @@
|
|
|
78
79
|
"devDependencies": {
|
|
79
80
|
"@types/eslint": "9.6.1",
|
|
80
81
|
"@types/micromatch": "4.0.9",
|
|
81
|
-
"@types/node": "22.
|
|
82
|
+
"@types/node": "22.15.18",
|
|
82
83
|
"stylelint-find-new-rules": "5.0.0",
|
|
83
84
|
"typescript": "5.8.3"
|
|
84
85
|
}
|
package/stylelint/index.mjs
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
const { linterBundleConfig } = await import('../helper/linter-bundle-config.js');
|
|
6
6
|
|
|
7
|
+
linterBundleConfig.css = (linterBundleConfig.sass ?? linterBundleConfig.css ?? {});
|
|
8
|
+
|
|
7
9
|
export default {
|
|
8
10
|
reportNeedlessDisables: true,
|
|
9
11
|
reportInvalidScopeDisables: true,
|
|
@@ -130,6 +132,95 @@ export default {
|
|
|
130
132
|
*/
|
|
131
133
|
'plugin/selector-tag-no-without-class': ['/./']
|
|
132
134
|
}
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
files: ['**/*.scss'],
|
|
138
|
+
rules: {
|
|
139
|
+
/**
|
|
140
|
+
* stylelint
|
|
141
|
+
*
|
|
142
|
+
* @see https://github.com/stylelint/stylelint/tree/master/lib/rules
|
|
143
|
+
*/
|
|
144
|
+
'at-rule-no-unknown': null, // scss/at-rule-no-unknown
|
|
145
|
+
'declaration-property-value-no-unknown': null, // Covered by scss/declaration-property-value-no-unknown
|
|
146
|
+
'function-no-unknown': null, // Implemented by scss/function-no-unknown
|
|
147
|
+
'property-no-unknown': null, // Covered by scss/property-no-unknown
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* stylelint-scss
|
|
151
|
+
*
|
|
152
|
+
* @see https://www.npmjs.com/package/stylelint-scss
|
|
153
|
+
*/
|
|
154
|
+
'scss/at-each-key-value-single-line': true,
|
|
155
|
+
'scss/at-else-closing-brace-newline-after': 'always-last-in-chain',
|
|
156
|
+
'scss/at-else-closing-brace-space-after': 'never-intermediate',
|
|
157
|
+
'scss/at-else-empty-line-before': 'never',
|
|
158
|
+
'scss/at-else-if-parentheses-space-before': 'always',
|
|
159
|
+
'scss/at-extend-no-missing-placeholder': true,
|
|
160
|
+
'scss/function-calculation-no-interpolation': true,
|
|
161
|
+
'scss/at-function-named-arguments': ['never', { ignoreFunctions: ['scale-color', 'color.scale'] }],
|
|
162
|
+
'scss/at-function-parentheses-space-before': 'always',
|
|
163
|
+
'scss/at-function-pattern': '^[a-z]+(-[a-z]+)*$',
|
|
164
|
+
'scss/at-if-closing-brace-newline-after': 'always-last-in-chain',
|
|
165
|
+
'scss/at-if-closing-brace-space-after': 'never-intermediate',
|
|
166
|
+
'scss/at-if-no-null': true,
|
|
167
|
+
'scss/at-mixin-argumentless-call-parentheses': 'never',
|
|
168
|
+
'scss/at-mixin-named-arguments': ['always', { ignore: ['single-argument'] }],
|
|
169
|
+
'scss/at-mixin-no-risky-nesting-selector': true,
|
|
170
|
+
'scss/at-mixin-parentheses-space-before': 'always',
|
|
171
|
+
'scss/at-mixin-pattern': '^[a-z]+(-[a-z]+)*$',
|
|
172
|
+
'scss/at-root-no-redundant': true,
|
|
173
|
+
'scss/at-rule-conditional-no-parentheses': true,
|
|
174
|
+
'scss/at-rule-no-unknown': true,
|
|
175
|
+
'scss/at-use-no-unnamespaced': true,
|
|
176
|
+
'scss/comment-no-loud': true,
|
|
177
|
+
'scss/declaration-nested-properties-no-divided-groups': true,
|
|
178
|
+
'scss/declaration-nested-properties': 'never',
|
|
179
|
+
'scss/declaration-property-value-no-unknown': [
|
|
180
|
+
true,
|
|
181
|
+
{
|
|
182
|
+
ignoreProperties: {
|
|
183
|
+
'initial-value': /.+/u,
|
|
184
|
+
'grid-template-areas': /^\([^\u0000]+\)$/u, // Whole block wrapped in parentheses.
|
|
185
|
+
'/.+/': /((^|\s)\$[a-z])|/ui // SCSS variables
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
],
|
|
189
|
+
'scss/dimension-no-non-numeric-values': true,
|
|
190
|
+
'scss/dollar-variable-colon-space-after': 'always',
|
|
191
|
+
'scss/dollar-variable-colon-space-before': 'never',
|
|
192
|
+
'scss/dollar-variable-empty-line-before': [
|
|
193
|
+
'always',
|
|
194
|
+
{
|
|
195
|
+
except: ['first-nested', 'after-comment', 'after-dollar-variable']
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
'scss/dollar-variable-empty-line-after': [
|
|
199
|
+
'always',
|
|
200
|
+
{
|
|
201
|
+
except: ['last-nested', 'before-dollar-variable'],
|
|
202
|
+
ignore: ['before-comment', 'inside-single-line-block']
|
|
203
|
+
}
|
|
204
|
+
],
|
|
205
|
+
'scss/dollar-variable-first-in-block': [true, { ignore: ['comments', 'imports'] }],
|
|
206
|
+
'scss/dollar-variable-no-missing-interpolation': true,
|
|
207
|
+
'scss/dollar-variable-no-namespaced-assignment': true,
|
|
208
|
+
'scss/dollar-variable-pattern': '^[a-z]+(-[a-z]+)*$',
|
|
209
|
+
'scss/function-color-channel': true,
|
|
210
|
+
'scss/function-color-relative': true,
|
|
211
|
+
'scss/function-no-unknown': [true, { ignoreFunctions: [/^custom-/u] }],
|
|
212
|
+
'scss/function-quote-no-quoted-strings-inside': true,
|
|
213
|
+
'scss/function-unquote-no-unquoted-strings-inside': true,
|
|
214
|
+
'scss/load-partial-extension': 'always',
|
|
215
|
+
'scss/map-keys-quotes': 'always',
|
|
216
|
+
'scss/media-feature-value-dollar-variable': 'never',
|
|
217
|
+
'scss/no-duplicate-dollar-variables': true,
|
|
218
|
+
'scss/no-duplicate-mixins': true,
|
|
219
|
+
'scss/no-global-function-names': true,
|
|
220
|
+
'scss/no-unused-private-members': true,
|
|
221
|
+
'scss/percent-placeholder-pattern': '^[a-z]+(-[a-z]+)*$',
|
|
222
|
+
'scss/selector-no-union-class-name': true
|
|
223
|
+
}
|
|
133
224
|
}
|
|
134
225
|
],
|
|
135
226
|
rules: {
|
|
@@ -157,7 +248,7 @@ export default {
|
|
|
157
248
|
}
|
|
158
249
|
],
|
|
159
250
|
'at-rule-no-deprecated': true,
|
|
160
|
-
'at-rule-no-unknown':
|
|
251
|
+
'at-rule-no-unknown': true,
|
|
161
252
|
'at-rule-no-vendor-prefix': true,
|
|
162
253
|
'at-rule-prelude-no-invalid': true,
|
|
163
254
|
'at-rule-property-required-list': [{
|
|
@@ -170,7 +261,7 @@ export default {
|
|
|
170
261
|
ignore: ['with-var-inside']
|
|
171
262
|
}
|
|
172
263
|
],
|
|
173
|
-
'color-hex-alpha': null, //
|
|
264
|
+
'color-hex-alpha': null, // Alpha values should only be used if necessary
|
|
174
265
|
'color-hex-length': 'short',
|
|
175
266
|
'color-named': 'never',
|
|
176
267
|
'color-no-hex': true,
|
|
@@ -186,11 +277,11 @@ export default {
|
|
|
186
277
|
'comment-pattern': /^[^\s].+[^\s]$/u,
|
|
187
278
|
'comment-whitespace-inside': 'always',
|
|
188
279
|
'comment-word-disallowed-list': null,
|
|
189
|
-
'container-name-pattern': (linterBundleConfig.
|
|
190
|
-
'custom-media-pattern': (linterBundleConfig.
|
|
280
|
+
'container-name-pattern': (linterBundleConfig.css.patternPrefix ? `${linterBundleConfig.css.patternPrefix}-[a-z][a-zA-Z]+(-[a-z][a-zA-Z]+\\d*)+` : null),
|
|
281
|
+
'custom-media-pattern': (linterBundleConfig.css.patternPrefix ? `${linterBundleConfig.css.patternPrefix}-[a-z][a-zA-Z]+(-[a-z][a-zA-Z]+\\d*)+` : null),
|
|
191
282
|
'custom-property-empty-line-before': null, // Empty lines between custom properties are optional
|
|
192
283
|
'custom-property-no-missing-var-function': true,
|
|
193
|
-
'custom-property-pattern': (linterBundleConfig.
|
|
284
|
+
'custom-property-pattern': (linterBundleConfig.css.patternPrefix ? `${linterBundleConfig.css.patternPrefix}-[a-z][a-zA-Z]+(-[a-z][a-zA-Z]+\\d*)*` : null),
|
|
194
285
|
'declaration-block-no-duplicate-custom-properties': true,
|
|
195
286
|
'declaration-block-no-duplicate-properties': [
|
|
196
287
|
true,
|
|
@@ -228,7 +319,7 @@ export default {
|
|
|
228
319
|
'declaration-property-value-allowed-list': null,
|
|
229
320
|
'declaration-property-value-disallowed-list': null,
|
|
230
321
|
'declaration-property-value-keyword-no-deprecated': true,
|
|
231
|
-
'declaration-property-value-no-unknown':
|
|
322
|
+
'declaration-property-value-no-unknown': true,
|
|
232
323
|
'font-family-name-quotes': 'always-where-recommended',
|
|
233
324
|
'font-family-no-duplicate-names': true,
|
|
234
325
|
'font-family-no-missing-generic-family-keyword': true,
|
|
@@ -238,7 +329,7 @@ export default {
|
|
|
238
329
|
'function-disallowed-list': null,
|
|
239
330
|
'function-linear-gradient-no-nonstandard-direction': true,
|
|
240
331
|
'function-name-case': 'lower',
|
|
241
|
-
'function-no-unknown':
|
|
332
|
+
'function-no-unknown': true,
|
|
242
333
|
'function-url-no-scheme-relative': true,
|
|
243
334
|
'function-url-quotes': 'always',
|
|
244
335
|
'function-url-scheme-disallowed-list': null,
|
|
@@ -250,7 +341,7 @@ export default {
|
|
|
250
341
|
'keyframe-declaration-no-important': true,
|
|
251
342
|
'keyframe-selector-notation': 'percentage',
|
|
252
343
|
'keyframes-name-pattern': String.raw`^[a-z]+(-[a-z]+)*\d*$`,
|
|
253
|
-
'layer-name-pattern': (linterBundleConfig.
|
|
344
|
+
'layer-name-pattern': (linterBundleConfig.css.patternPrefix ? `${linterBundleConfig.css.patternPrefix}-[a-z][a-zA-Z]+(-[a-z][a-zA-Z]+\\d*)+` : null),
|
|
254
345
|
'length-zero-no-unit': true,
|
|
255
346
|
'max-nesting-depth': 6,
|
|
256
347
|
'media-feature-name-allowed-list': null,
|
|
@@ -279,7 +370,7 @@ export default {
|
|
|
279
370
|
'font', // Shorthand property is to complex
|
|
280
371
|
'grid-gap' // @deprecated Use gap.
|
|
281
372
|
],
|
|
282
|
-
'property-no-unknown':
|
|
373
|
+
'property-no-unknown': true,
|
|
283
374
|
'property-no-vendor-prefix': true,
|
|
284
375
|
'rule-selector-property-disallowed-list': null,
|
|
285
376
|
'rule-empty-line-before': [
|
|
@@ -316,7 +407,7 @@ export default {
|
|
|
316
407
|
'selector-nested-pattern': null,
|
|
317
408
|
'selector-no-qualifying-type': [true, { ignore: ['attribute', 'class'] }],
|
|
318
409
|
'selector-no-vendor-prefix': true,
|
|
319
|
-
'selector-not-notation':
|
|
410
|
+
'selector-not-notation': 'complex',
|
|
320
411
|
'selector-pseudo-class-allowed-list': null,
|
|
321
412
|
'selector-pseudo-class-disallowed-list': null,
|
|
322
413
|
'selector-pseudo-class-no-unknown': [true, { ignorePseudoClasses: ['global'] }],
|
|
@@ -950,68 +1041,56 @@ export default {
|
|
|
950
1041
|
*
|
|
951
1042
|
* @see https://www.npmjs.com/package/stylelint-scss
|
|
952
1043
|
*/
|
|
953
|
-
'scss/at-each-key-value-single-line':
|
|
954
|
-
'scss/at-else-closing-brace-newline-after':
|
|
955
|
-
'scss/at-else-closing-brace-space-after':
|
|
956
|
-
'scss/at-else-empty-line-before':
|
|
957
|
-
'scss/at-else-if-parentheses-space-before':
|
|
958
|
-
'scss/at-extend-no-missing-placeholder':
|
|
959
|
-
'scss/function-calculation-no-interpolation':
|
|
960
|
-
'scss/at-function-named-arguments':
|
|
961
|
-
'scss/at-function-parentheses-space-before':
|
|
962
|
-
'scss/at-function-pattern':
|
|
963
|
-
'scss/at-if-closing-brace-newline-after':
|
|
964
|
-
'scss/at-if-closing-brace-space-after':
|
|
965
|
-
'scss/at-if-no-null':
|
|
1044
|
+
'scss/at-each-key-value-single-line': null,
|
|
1045
|
+
'scss/at-else-closing-brace-newline-after': null,
|
|
1046
|
+
'scss/at-else-closing-brace-space-after': null,
|
|
1047
|
+
'scss/at-else-empty-line-before': null,
|
|
1048
|
+
'scss/at-else-if-parentheses-space-before': null,
|
|
1049
|
+
'scss/at-extend-no-missing-placeholder': null,
|
|
1050
|
+
'scss/function-calculation-no-interpolation': null,
|
|
1051
|
+
'scss/at-function-named-arguments': null,
|
|
1052
|
+
'scss/at-function-parentheses-space-before': null,
|
|
1053
|
+
'scss/at-function-pattern': null,
|
|
1054
|
+
'scss/at-if-closing-brace-newline-after': null,
|
|
1055
|
+
'scss/at-if-closing-brace-space-after': null,
|
|
1056
|
+
'scss/at-if-no-null': null,
|
|
966
1057
|
'scss/at-import-partial-extension-allowed-list': null,
|
|
967
1058
|
'scss/at-import-partial-extension-disallowed-list': null,
|
|
968
|
-
'scss/at-mixin-argumentless-call-parentheses':
|
|
969
|
-
'scss/at-mixin-named-arguments':
|
|
970
|
-
'scss/at-mixin-no-risky-nesting-selector':
|
|
971
|
-
'scss/at-mixin-parentheses-space-before':
|
|
972
|
-
'scss/at-mixin-pattern':
|
|
973
|
-
'scss/at-root-no-redundant':
|
|
974
|
-
'scss/at-rule-conditional-no-parentheses':
|
|
975
|
-
'scss/at-rule-no-unknown':
|
|
976
|
-
'scss/at-use-no-unnamespaced':
|
|
1059
|
+
'scss/at-mixin-argumentless-call-parentheses': null,
|
|
1060
|
+
'scss/at-mixin-named-arguments': null,
|
|
1061
|
+
'scss/at-mixin-no-risky-nesting-selector': null,
|
|
1062
|
+
'scss/at-mixin-parentheses-space-before': null,
|
|
1063
|
+
'scss/at-mixin-pattern': null,
|
|
1064
|
+
'scss/at-root-no-redundant': null,
|
|
1065
|
+
'scss/at-rule-conditional-no-parentheses': null,
|
|
1066
|
+
'scss/at-rule-no-unknown': null,
|
|
1067
|
+
'scss/at-use-no-unnamespaced': null,
|
|
977
1068
|
'scss/at-use-no-redundant-alias': null,
|
|
978
1069
|
'scss/block-no-redundant-nesting': null,
|
|
979
1070
|
'scss/comment-no-empty': true,
|
|
980
|
-
'scss/comment-no-loud':
|
|
981
|
-
'scss/declaration-nested-properties-no-divided-groups':
|
|
982
|
-
'scss/declaration-nested-properties':
|
|
1071
|
+
'scss/comment-no-loud': null,
|
|
1072
|
+
'scss/declaration-nested-properties-no-divided-groups': null,
|
|
1073
|
+
'scss/declaration-nested-properties': null,
|
|
983
1074
|
'scss/declaration-property-value-no-unknown': [
|
|
984
1075
|
true,
|
|
985
1076
|
{
|
|
986
1077
|
ignoreProperties: {
|
|
987
1078
|
'initial-value': /.+/u,
|
|
988
|
-
'grid-template-areas': /^\([^\u0000]+\)$/u
|
|
989
|
-
'/.+/': /((^|\s)\$[a-z])|/ui // SCSS variables
|
|
1079
|
+
'grid-template-areas': /^\([^\u0000]+\)$/u // Whole block wrapped in parentheses.
|
|
990
1080
|
}
|
|
991
1081
|
}
|
|
992
1082
|
],
|
|
993
|
-
'scss/dimension-no-non-numeric-values':
|
|
1083
|
+
'scss/dimension-no-non-numeric-values': null,
|
|
994
1084
|
'scss/dollar-variable-colon-newline-after': null,
|
|
995
|
-
'scss/dollar-variable-colon-space-after':
|
|
996
|
-
'scss/dollar-variable-colon-space-before':
|
|
1085
|
+
'scss/dollar-variable-colon-space-after': null,
|
|
1086
|
+
'scss/dollar-variable-colon-space-before': null,
|
|
997
1087
|
'scss/dollar-variable-default': null,
|
|
998
|
-
'scss/dollar-variable-empty-line-before':
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
'scss/dollar-variable-empty-line-after': [
|
|
1005
|
-
'always',
|
|
1006
|
-
{
|
|
1007
|
-
except: ['last-nested', 'before-dollar-variable'],
|
|
1008
|
-
ignore: ['before-comment', 'inside-single-line-block']
|
|
1009
|
-
}
|
|
1010
|
-
],
|
|
1011
|
-
'scss/dollar-variable-first-in-block': [true, { ignore: ['comments', 'imports'] }],
|
|
1012
|
-
'scss/dollar-variable-no-missing-interpolation': true,
|
|
1013
|
-
'scss/dollar-variable-no-namespaced-assignment': true,
|
|
1014
|
-
'scss/dollar-variable-pattern': '^[a-z]+(-[a-z]+)*$',
|
|
1088
|
+
'scss/dollar-variable-empty-line-before': null,
|
|
1089
|
+
'scss/dollar-variable-empty-line-after': null,
|
|
1090
|
+
'scss/dollar-variable-first-in-block': null,
|
|
1091
|
+
'scss/dollar-variable-no-missing-interpolation': null,
|
|
1092
|
+
'scss/dollar-variable-no-namespaced-assignment': null,
|
|
1093
|
+
'scss/dollar-variable-pattern': null,
|
|
1015
1094
|
'scss/double-slash-comment-empty-line-before': [
|
|
1016
1095
|
'always',
|
|
1017
1096
|
{
|
|
@@ -1021,31 +1100,31 @@ export default {
|
|
|
1021
1100
|
],
|
|
1022
1101
|
'scss/double-slash-comment-inline': null,
|
|
1023
1102
|
'scss/double-slash-comment-whitespace-inside': 'always',
|
|
1024
|
-
'scss/function-color-channel':
|
|
1025
|
-
'scss/function-color-relative':
|
|
1103
|
+
'scss/function-color-channel': null,
|
|
1104
|
+
'scss/function-color-relative': null,
|
|
1026
1105
|
'scss/function-disallowed-list': null,
|
|
1027
|
-
'scss/function-no-unknown':
|
|
1028
|
-
'scss/function-quote-no-quoted-strings-inside':
|
|
1029
|
-
'scss/function-unquote-no-unquoted-strings-inside':
|
|
1106
|
+
'scss/function-no-unknown': null,
|
|
1107
|
+
'scss/function-quote-no-quoted-strings-inside': null,
|
|
1108
|
+
'scss/function-unquote-no-unquoted-strings-inside': null,
|
|
1030
1109
|
'scss/load-no-partial-leading-underscore': null,
|
|
1031
|
-
'scss/load-partial-extension':
|
|
1032
|
-
'scss/map-keys-quotes':
|
|
1033
|
-
'scss/media-feature-value-dollar-variable':
|
|
1110
|
+
'scss/load-partial-extension': null,
|
|
1111
|
+
'scss/map-keys-quotes': null,
|
|
1112
|
+
'scss/media-feature-value-dollar-variable': null,
|
|
1034
1113
|
'scss/no-dollar-variables': null,
|
|
1035
|
-
'scss/no-duplicate-dollar-variables':
|
|
1114
|
+
'scss/no-duplicate-dollar-variables': null,
|
|
1036
1115
|
'scss/no-duplicate-load-rules': true,
|
|
1037
|
-
'scss/no-duplicate-mixins':
|
|
1038
|
-
'scss/no-global-function-names':
|
|
1039
|
-
'scss/no-unused-private-members':
|
|
1116
|
+
'scss/no-duplicate-mixins': null,
|
|
1117
|
+
'scss/no-global-function-names': null,
|
|
1118
|
+
'scss/no-unused-private-members': null,
|
|
1040
1119
|
'scss/operator-no-newline-after': true,
|
|
1041
1120
|
'scss/operator-no-newline-before': true,
|
|
1042
1121
|
'scss/operator-no-unspaced': true,
|
|
1043
1122
|
'scss/partial-no-import': null,
|
|
1044
|
-
'scss/percent-placeholder-pattern':
|
|
1123
|
+
'scss/percent-placeholder-pattern': null,
|
|
1045
1124
|
'scss/property-no-unknown': true,
|
|
1046
1125
|
'scss/selector-nest-combinators': null, // Sometimes nesting does not make sense
|
|
1047
1126
|
'scss/selector-no-redundant-nesting-selector': true,
|
|
1048
|
-
'scss/selector-no-union-class-name':
|
|
1127
|
+
'scss/selector-no-union-class-name': null,
|
|
1049
1128
|
|
|
1050
1129
|
/**
|
|
1051
1130
|
* stylelint-selector-no-empty
|
package/stylelint/plugins/stylelint-15.11.0-stylistic/rules/declarationColonSpaceChecker.mjs
CHANGED
|
@@ -41,8 +41,8 @@ export default function declarationColonSpaceChecker (options) {
|
|
|
41
41
|
report({
|
|
42
42
|
message,
|
|
43
43
|
node: decl,
|
|
44
|
-
index: decl.prop.
|
|
45
|
-
endIndex: decl.prop.
|
|
44
|
+
index: decl.prop.length + 1,
|
|
45
|
+
endIndex: decl.prop.length + 1,
|
|
46
46
|
result: options.result,
|
|
47
47
|
ruleName: options.checkedRuleName,
|
|
48
48
|
fix: (options.fix ? () => options.fix(decl, i) : undefined)
|
package/TODO.md
DELETED
|
File without changes
|