@darksheep/eslint 5.3.0 → 5.3.1
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/CHANGELOG.md +8 -0
- package/package.json +3 -3
- package/src/configs/eslint-base.js +103 -103
- package/src/configs/eslint-complexity.js +24 -24
- package/src/configs/eslint-ignores.js +32 -32
- package/src/configs/eslint-recommended.js +4 -4
- package/src/configs/eslint-style.js +12 -12
- package/src/custom/index.js +5 -5
- package/src/custom/instance-of-array.js +44 -44
- package/src/custom/loose-types.js +128 -128
- package/src/custom/no-useless-expression.js +19 -19
- package/src/custom/sequence-expression.js +15 -15
- package/src/index.js +38 -38
- package/src/plugins/eslint-comments.js +19 -19
- package/src/plugins/jsdoc.js +57 -57
- package/src/plugins/json.js +43 -43
- package/src/plugins/node.js +108 -108
- package/src/plugins/package-json.js +25 -25
- package/src/plugins/perfectionist.js +200 -200
- package/src/plugins/promise.js +9 -9
- package/src/plugins/react.js +111 -111
- package/src/plugins/regexp.js +6 -6
- package/src/plugins/sca.js +32 -32
- package/src/plugins/security.js +14 -14
- package/src/plugins/sonarjs.js +11 -11
- package/src/plugins/style.js +236 -236
- package/src/plugins/typescript.js +65 -65
- package/src/plugins/unicorn.js +40 -40
- package/src/plugins/unused-imports.js +25 -25
- package/src/plugins/yml.js +32 -32
- package/src/types.d.ts +80 -80
- package/src/utilities/editorconfig.js +150 -150
- package/src/utilities/eslint-files.js +20 -20
- package/src/utilities/expand-glob.js +33 -33
- package/src/utilities/filesystem.js +30 -30
- package/src/utilities/make-compat.js +6 -6
- package/src/utilities/package.js +29 -29
package/src/plugins/jsdoc.js
CHANGED
|
@@ -9,64 +9,64 @@ import { getPackageJson } from '../utilities/package.js';
|
|
|
9
9
|
* @returns {Promise<import('eslint').Linter.FlatConfig[]>}
|
|
10
10
|
*/
|
|
11
11
|
export async function createEslintJSDocConfig(root) {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const tsPackage = await getPackageJson(root, 'typescript');
|
|
13
|
+
const typeChecks = tsPackage == null ? 'warn' : 'off';
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
rules: {
|
|
27
|
-
'jsdoc/check-access': 'warn',
|
|
28
|
-
'jsdoc/check-alignment': 'warn',
|
|
29
|
-
'jsdoc/check-param-names': 'warn',
|
|
30
|
-
'jsdoc/check-property-names': 'warn',
|
|
31
|
-
'jsdoc/check-tag-names': 'warn',
|
|
32
|
-
'jsdoc/check-values': 'warn',
|
|
33
|
-
'jsdoc/empty-tags': 'warn',
|
|
34
|
-
'jsdoc/implements-on-classes': 'error',
|
|
35
|
-
'jsdoc/informative-docs': 'warn',
|
|
36
|
-
'jsdoc/no-defaults': 'warn',
|
|
37
|
-
'jsdoc/no-multi-asterisks': 'warn',
|
|
38
|
-
'jsdoc/require-jsdoc': [ 1, { publicOnly: true } ],
|
|
39
|
-
'jsdoc/require-param': 'warn',
|
|
40
|
-
'jsdoc/require-param-description': 'warn',
|
|
41
|
-
'jsdoc/require-param-name': 'warn',
|
|
42
|
-
'jsdoc/require-param-type': 'warn',
|
|
43
|
-
'jsdoc/require-property': 'warn',
|
|
44
|
-
'jsdoc/require-property-description': 'warn',
|
|
45
|
-
'jsdoc/require-property-name': 'warn',
|
|
46
|
-
'jsdoc/require-property-type': 'warn',
|
|
47
|
-
'jsdoc/require-returns': 'warn',
|
|
48
|
-
'jsdoc/require-returns-check': 'warn',
|
|
49
|
-
'jsdoc/require-returns-type': 'warn',
|
|
50
|
-
|
|
51
|
-
'jsdoc/check-types': typeChecks,
|
|
52
|
-
'jsdoc/no-undefined-types': typeChecks,
|
|
53
|
-
'jsdoc/valid-types': typeChecks,
|
|
54
|
-
},
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
name: 'jsdoc/javascript',
|
|
18
|
+
plugins: { jsdoc },
|
|
19
|
+
settings: {
|
|
20
|
+
jsdoc: {
|
|
21
|
+
mode: 'typescript',
|
|
22
|
+
// Prefer 'Object' over 'object'
|
|
23
|
+
preferredTypes: { object: 'Object' },
|
|
55
24
|
},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
25
|
+
},
|
|
26
|
+
rules: {
|
|
27
|
+
'jsdoc/check-access': 'warn',
|
|
28
|
+
'jsdoc/check-alignment': 'warn',
|
|
29
|
+
'jsdoc/check-param-names': 'warn',
|
|
30
|
+
'jsdoc/check-property-names': 'warn',
|
|
31
|
+
'jsdoc/check-tag-names': 'warn',
|
|
32
|
+
'jsdoc/check-values': 'warn',
|
|
33
|
+
'jsdoc/empty-tags': 'warn',
|
|
34
|
+
'jsdoc/implements-on-classes': 'error',
|
|
35
|
+
'jsdoc/informative-docs': 'warn',
|
|
36
|
+
'jsdoc/no-defaults': 'warn',
|
|
37
|
+
'jsdoc/no-multi-asterisks': 'warn',
|
|
38
|
+
'jsdoc/require-jsdoc': [ 1, { publicOnly: true } ],
|
|
39
|
+
'jsdoc/require-param': 'warn',
|
|
40
|
+
'jsdoc/require-param-description': 'warn',
|
|
41
|
+
'jsdoc/require-param-name': 'warn',
|
|
42
|
+
'jsdoc/require-param-type': 'warn',
|
|
43
|
+
'jsdoc/require-property': 'warn',
|
|
44
|
+
'jsdoc/require-property-description': 'warn',
|
|
45
|
+
'jsdoc/require-property-name': 'warn',
|
|
46
|
+
'jsdoc/require-property-type': 'warn',
|
|
47
|
+
'jsdoc/require-returns': 'warn',
|
|
48
|
+
'jsdoc/require-returns-check': 'warn',
|
|
49
|
+
'jsdoc/require-returns-type': 'warn',
|
|
68
50
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
51
|
+
'jsdoc/check-types': typeChecks,
|
|
52
|
+
'jsdoc/no-undefined-types': typeChecks,
|
|
53
|
+
'jsdoc/valid-types': typeChecks,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
name: 'jsdoc/typescript',
|
|
58
|
+
files: getTypescriptFiles(),
|
|
59
|
+
rules: {
|
|
60
|
+
'jsdoc/no-types': 'warn',
|
|
61
|
+
'jsdoc/check-types': 'off',
|
|
62
|
+
'jsdoc/no-undefined-types': 'off',
|
|
63
|
+
'jsdoc/valid-types': 'off',
|
|
64
|
+
'jsdoc/require-returns': 'off',
|
|
65
|
+
'jsdoc/require-param-type': 'off',
|
|
66
|
+
'jsdoc/require-property-type': 'off',
|
|
67
|
+
'jsdoc/require-returns-type': 'off',
|
|
68
|
+
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
72
|
}
|
package/src/plugins/json.js
CHANGED
|
@@ -6,47 +6,47 @@ import parser from 'jsonc-eslint-parser';
|
|
|
6
6
|
* @returns {Promise<import('eslint').Linter.FlatConfig[]>}
|
|
7
7
|
*/
|
|
8
8
|
export async function createEslintJsonConfig() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
name: 'json/core',
|
|
12
|
+
files: [ '**/*.json', '**/*.jsonc', '**/*.json5' ],
|
|
13
|
+
languageOptions: { parser },
|
|
14
|
+
// @ts-expect-error jsonc does not match the plugin interface
|
|
15
|
+
plugins: { jsonc },
|
|
16
|
+
rules: {
|
|
17
|
+
'jsonc/array-bracket-newline': [ 'error', 'consistent' ],
|
|
18
|
+
'jsonc/array-bracket-spacing': [ 'error', 'always' ],
|
|
19
|
+
'jsonc/array-element-newline': [ 'error', 'consistent' ],
|
|
20
|
+
'jsonc/key-spacing': [ 'error' ],
|
|
21
|
+
'jsonc/object-curly-newline': [ 'error', { consistent: true } ],
|
|
22
|
+
'jsonc/object-curly-spacing': [ 'error', 'always' ],
|
|
23
|
+
'jsonc/object-property-newline': [ 'error', { allowAllPropertiesOnSameLine: true } ],
|
|
24
|
+
'max-lines': 'off',
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
name: 'json/.json',
|
|
29
|
+
files: [ '**/*.json' ],
|
|
30
|
+
// @ts-expect-error Record<string, string> vs Record<string, 'error'>
|
|
31
|
+
rules: jsonc.configs['recommended-with-json'].rules,
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'json/.jsonc',
|
|
35
|
+
files: [ '**/*.jsonc' ],
|
|
36
|
+
// @ts-expect-error Record<string, string> vs Record<string, 'error'>
|
|
37
|
+
rules: jsonc.configs['recommended-with-jsonc'].rules,
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
name: 'json/.json5',
|
|
41
|
+
files: [ '**/*.json5' ],
|
|
42
|
+
// @ts-expect-error Record<string, string> vs Record<string, 'error'>
|
|
43
|
+
rules: jsonc.configs['recommended-with-json5'].rules,
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
name: 'json/tsconfig.json',
|
|
47
|
+
files: [ '**/tsconfig.json' ],
|
|
48
|
+
rules: { 'jsonc/no-comments': 'off' },
|
|
49
|
+
},
|
|
50
|
+
{ ignores: [ '.github/release-please/manifest.json' ] },
|
|
51
|
+
];
|
|
52
52
|
}
|
package/src/plugins/node.js
CHANGED
|
@@ -4,11 +4,11 @@ import { fileURLToPath } from 'node:url';
|
|
|
4
4
|
import n from 'eslint-plugin-n';
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
getCommonFiles,
|
|
8
|
+
getExampleFiles,
|
|
9
|
+
getModuleFiles,
|
|
10
|
+
getTestFiles,
|
|
11
|
+
getTypescriptFiles,
|
|
12
12
|
} from '../utilities/eslint-files.js';
|
|
13
13
|
|
|
14
14
|
const script = n.configs['flat/recommended-script'];
|
|
@@ -16,44 +16,44 @@ const module = n.configs['flat/recommended-module'];
|
|
|
16
16
|
|
|
17
17
|
/** @type {import('eslint').Linter.RulesRecord} */
|
|
18
18
|
const commonRules = {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
19
|
+
'n/no-new-require': 'error',
|
|
20
|
+
'n/no-mixed-requires': 'error',
|
|
21
|
+
|
|
22
|
+
'n/callback-return': 'error',
|
|
23
|
+
'n/handle-callback-err': 'error',
|
|
24
|
+
'n/no-process-exit': 'warn',
|
|
25
|
+
'n/no-process-env': 'warn',
|
|
26
|
+
'n/no-path-concat': 'error',
|
|
27
|
+
|
|
28
|
+
'n/no-callback-literal': 'off',
|
|
29
|
+
'n/no-exports-assign': 'off',
|
|
30
|
+
|
|
31
|
+
'n/global-require': [ 'error' ],
|
|
32
|
+
'n/no-unpublished-bin': 'error',
|
|
33
|
+
'n/no-unpublished-import': [ 'error', { ignoreTypeImport: true } ],
|
|
34
|
+
'n/no-unpublished-require': 'error',
|
|
35
|
+
|
|
36
|
+
'n/no-unsupported-features/es-builtins': 'error',
|
|
37
|
+
'n/no-unsupported-features/es-syntax': [ 'error', { ignores: [ 'modules' ] } ],
|
|
38
|
+
'n/no-unsupported-features/node-builtins': 'error',
|
|
39
|
+
|
|
40
|
+
'n/process-exit-as-throw': 'error',
|
|
41
|
+
'n/hashbang': 'error',
|
|
42
|
+
|
|
43
|
+
'n/no-deprecated-api': 'error',
|
|
44
|
+
|
|
45
|
+
'n/exports-style': [ 'error', 'module.exports' ],
|
|
46
|
+
'n/file-extension-in-import': [ 'error', 'always' ],
|
|
47
|
+
|
|
48
|
+
'n/prefer-global/buffer': [ 'warn', 'always' ],
|
|
49
|
+
'n/prefer-global/console': [ 'warn', 'always' ],
|
|
50
|
+
'n/prefer-global/process': [ 'warn', 'always' ],
|
|
51
|
+
'n/prefer-global/text-decoder': [ 'warn', 'never' ],
|
|
52
|
+
'n/prefer-global/text-encoder': [ 'warn', 'never' ],
|
|
53
|
+
'n/prefer-global/url-search-params': [ 'warn', 'never' ],
|
|
54
|
+
'n/prefer-global/url': [ 'warn', 'never' ],
|
|
55
|
+
'n/prefer-promises/dns': 'warn',
|
|
56
|
+
'n/prefer-promises/fs': 'warn',
|
|
57
57
|
};
|
|
58
58
|
|
|
59
59
|
/**
|
|
@@ -61,7 +61,7 @@ const commonRules = {
|
|
|
61
61
|
* @returns {string[]}
|
|
62
62
|
*/
|
|
63
63
|
function toExt(globs) {
|
|
64
|
-
|
|
64
|
+
return globs.map((glob) => glob.slice(glob.lastIndexOf('.')));
|
|
65
65
|
}
|
|
66
66
|
|
|
67
67
|
/**
|
|
@@ -70,71 +70,71 @@ function toExt(globs) {
|
|
|
70
70
|
* @returns {Promise<import('eslint').Linter.FlatConfig[]>}
|
|
71
71
|
*/
|
|
72
72
|
export async function createEslintNodeConfig(root) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
settings: {
|
|
93
|
-
node: {
|
|
94
|
-
tryExtensions: toExt(commonFiles),
|
|
95
|
-
resolvePaths: rootDirectory,
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
rules: {
|
|
99
|
-
...commonRules,
|
|
100
|
-
'n/no-sync': [ 'error', { allowAtRootLevel: true } ],
|
|
101
|
-
'n/no-extraneous-require': 'error',
|
|
102
|
-
'n/no-missing-require': 'error',
|
|
103
|
-
|
|
104
|
-
'n/no-unsupported-features/es-syntax': [ 'error', { ignores: [] } ],
|
|
105
|
-
},
|
|
73
|
+
const commonFiles = await getCommonFiles(root);
|
|
74
|
+
const moduleFiles = await getModuleFiles(root);
|
|
75
|
+
const typescriptFiles = getTypescriptFiles();
|
|
76
|
+
const exampleFiles = getExampleFiles();
|
|
77
|
+
const rootDirectory = dirname(fileURLToPath(root));
|
|
78
|
+
|
|
79
|
+
return [
|
|
80
|
+
{
|
|
81
|
+
name: 'node/common',
|
|
82
|
+
files: commonFiles,
|
|
83
|
+
ignores: exampleFiles,
|
|
84
|
+
plugins: { n },
|
|
85
|
+
languageOptions: {
|
|
86
|
+
globals: script?.languageOptions?.globals,
|
|
87
|
+
parserOptions: {
|
|
88
|
+
sourceType: 'script',
|
|
89
|
+
ecmaVersion: 2022,
|
|
106
90
|
},
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
languageOptions: {
|
|
113
|
-
globals: module?.languageOptions?.globals,
|
|
114
|
-
parserOptions: {
|
|
115
|
-
sourceType: 'module',
|
|
116
|
-
ecmaVersion: 2022,
|
|
117
|
-
},
|
|
118
|
-
},
|
|
119
|
-
settings: {
|
|
120
|
-
node: {
|
|
121
|
-
tryExtensions: toExt([ ...typescriptFiles, ...moduleFiles ]),
|
|
122
|
-
resolvePaths: rootDirectory,
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
rules: {
|
|
126
|
-
...commonRules,
|
|
127
|
-
'n/no-extraneous-import': 'error',
|
|
128
|
-
'n/no-missing-import': 'error',
|
|
129
|
-
'n/no-sync': [ 'error', { allowAtRootLevel: false } ],
|
|
130
|
-
'n/no-unsupported-features/es-syntax': [ 'error', { ignores: [ 'modules' ] } ],
|
|
131
|
-
},
|
|
91
|
+
},
|
|
92
|
+
settings: {
|
|
93
|
+
node: {
|
|
94
|
+
tryExtensions: toExt(commonFiles),
|
|
95
|
+
resolvePaths: rootDirectory,
|
|
132
96
|
},
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
97
|
+
},
|
|
98
|
+
rules: {
|
|
99
|
+
...commonRules,
|
|
100
|
+
'n/no-sync': [ 'error', { allowAtRootLevel: true } ],
|
|
101
|
+
'n/no-extraneous-require': 'error',
|
|
102
|
+
'n/no-missing-require': 'error',
|
|
103
|
+
|
|
104
|
+
'n/no-unsupported-features/es-syntax': [ 'error', { ignores: [] } ],
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'node/module-and-typescript',
|
|
109
|
+
files: [ ...typescriptFiles, ...moduleFiles ],
|
|
110
|
+
ignores: exampleFiles,
|
|
111
|
+
plugins: { n },
|
|
112
|
+
languageOptions: {
|
|
113
|
+
globals: module?.languageOptions?.globals,
|
|
114
|
+
parserOptions: {
|
|
115
|
+
sourceType: 'module',
|
|
116
|
+
ecmaVersion: 2022,
|
|
138
117
|
},
|
|
139
|
-
|
|
118
|
+
},
|
|
119
|
+
settings: {
|
|
120
|
+
node: {
|
|
121
|
+
tryExtensions: toExt([ ...typescriptFiles, ...moduleFiles ]),
|
|
122
|
+
resolvePaths: rootDirectory,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
rules: {
|
|
126
|
+
...commonRules,
|
|
127
|
+
'n/no-extraneous-import': 'error',
|
|
128
|
+
'n/no-missing-import': 'error',
|
|
129
|
+
'n/no-sync': [ 'error', { allowAtRootLevel: false } ],
|
|
130
|
+
'n/no-unsupported-features/es-syntax': [ 'error', { ignores: [ 'modules' ] } ],
|
|
131
|
+
},
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
name: 'node/test-files',
|
|
135
|
+
files: getTestFiles(),
|
|
136
|
+
plugins: { n },
|
|
137
|
+
rules: { 'n/no-sync': 'off' },
|
|
138
|
+
},
|
|
139
|
+
];
|
|
140
140
|
}
|
|
@@ -6,31 +6,31 @@ import jsoncParser from 'jsonc-eslint-parser';
|
|
|
6
6
|
* @returns {Promise<import('eslint').Linter.FlatConfig[]>}
|
|
7
7
|
*/
|
|
8
8
|
export async function createEslintPackageJsonConfig() {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
9
|
+
return [
|
|
10
|
+
{
|
|
11
|
+
name: 'package-json/custom',
|
|
12
|
+
// @ts-expect-error
|
|
13
|
+
plugins: { 'package-json': plugin },
|
|
14
|
+
languageOptions: {
|
|
15
|
+
parser: jsoncParser,
|
|
16
|
+
},
|
|
17
|
+
files: [ 'package.json', '**/package.json' ],
|
|
18
|
+
rules: {
|
|
19
|
+
'package-json/order-properties': [ 'error', { order: 'sort-package-json' } ],
|
|
20
|
+
'package-json/sort-collections': 'error',
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
22
|
+
// Seems to break renovate finding changelogs
|
|
23
|
+
'package-json/prefer-repository-shorthand': 'off',
|
|
24
|
+
// Breaks workspace dependency linking
|
|
25
|
+
// Invalid version range for dependency @darksheep/clone: workspace:~
|
|
26
|
+
'package-json/valid-package-def': 'warn',
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
'package-json/unique-dependencies': 'error',
|
|
29
|
+
'package-json/valid-local-dependency': 'error',
|
|
30
|
+
'package-json/valid-name': 'error',
|
|
31
|
+
'package-json/valid-repository-directory': 'error',
|
|
32
|
+
'package-json/valid-version': 'error',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
36
|
}
|