eslint 8.57.1 → 9.39.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/README.md +165 -115
- package/bin/eslint.js +112 -89
- package/conf/default-cli-options.js +22 -22
- package/conf/ecma-version.js +16 -0
- package/conf/globals.js +109 -94
- package/conf/replacements.json +24 -20
- package/conf/rule-type-list.json +89 -26
- package/lib/api.js +16 -20
- package/lib/cli-engine/cli-engine.js +841 -810
- package/lib/cli-engine/file-enumerator.js +384 -390
- package/lib/cli-engine/formatters/formatters-meta.json +17 -45
- package/lib/cli-engine/formatters/html.js +110 -102
- package/lib/cli-engine/formatters/json-with-metadata.js +5 -5
- package/lib/cli-engine/formatters/json.js +2 -2
- package/lib/cli-engine/formatters/stylish.js +97 -76
- package/lib/cli-engine/hash.js +1 -1
- package/lib/cli-engine/index.js +1 -1
- package/lib/cli-engine/lint-result-cache.js +165 -148
- package/lib/cli-engine/load-rules.js +17 -17
- package/lib/cli.js +481 -399
- package/lib/config/config-loader.js +816 -0
- package/lib/config/config.js +674 -0
- package/lib/config/default-config.js +57 -46
- package/lib/config/flat-config-array.js +170 -333
- package/lib/config/flat-config-schema.js +389 -389
- package/lib/config-api.js +12 -0
- package/lib/eslint/eslint-helpers.js +1196 -663
- package/lib/eslint/eslint.js +1262 -607
- package/lib/eslint/index.js +3 -3
- package/lib/eslint/legacy-eslint.js +786 -0
- package/lib/eslint/worker.js +173 -0
- package/lib/languages/js/index.js +336 -0
- package/lib/languages/js/source-code/index.js +7 -0
- package/lib/languages/js/source-code/source-code.js +1364 -0
- package/lib/languages/js/source-code/token-store/backward-token-comment-cursor.js +61 -0
- package/lib/languages/js/source-code/token-store/backward-token-cursor.js +57 -0
- package/lib/{source-code → languages/js/source-code}/token-store/cursor.js +36 -36
- package/lib/languages/js/source-code/token-store/cursors.js +120 -0
- package/lib/{source-code → languages/js/source-code}/token-store/decorative-cursor.js +17 -18
- package/lib/{source-code → languages/js/source-code}/token-store/filter-cursor.js +19 -20
- package/lib/languages/js/source-code/token-store/forward-token-comment-cursor.js +65 -0
- package/lib/languages/js/source-code/token-store/forward-token-cursor.js +62 -0
- package/lib/languages/js/source-code/token-store/index.js +721 -0
- package/lib/{source-code → languages/js/source-code}/token-store/limit-cursor.js +17 -18
- package/lib/languages/js/source-code/token-store/padded-token-cursor.js +45 -0
- package/lib/{source-code → languages/js/source-code}/token-store/skip-cursor.js +19 -20
- package/lib/languages/js/source-code/token-store/utils.js +110 -0
- package/lib/languages/js/validate-language-options.js +196 -0
- package/lib/linter/apply-disable-directives.js +490 -371
- package/lib/linter/code-path-analysis/code-path-analyzer.js +650 -674
- package/lib/linter/code-path-analysis/code-path-segment.js +215 -216
- package/lib/linter/code-path-analysis/code-path-state.js +2118 -2096
- package/lib/linter/code-path-analysis/code-path.js +307 -317
- package/lib/linter/code-path-analysis/debug-helpers.js +183 -163
- package/lib/linter/code-path-analysis/fork-context.js +297 -272
- package/lib/linter/code-path-analysis/id-generator.js +22 -23
- package/lib/linter/esquery.js +332 -0
- package/lib/linter/file-context.js +144 -0
- package/lib/linter/file-report.js +608 -0
- package/lib/linter/index.js +3 -5
- package/lib/linter/interpolate.js +38 -16
- package/lib/linter/linter.js +2328 -1785
- package/lib/linter/rule-fixer.js +136 -107
- package/lib/linter/rules.js +37 -46
- package/lib/linter/source-code-fixer.js +96 -94
- package/lib/linter/source-code-traverser.js +333 -0
- package/lib/linter/source-code-visitor.js +81 -0
- package/lib/linter/timing.js +145 -97
- package/lib/linter/vfile.js +115 -0
- package/lib/options.js +464 -326
- package/lib/rule-tester/index.js +3 -1
- package/lib/rule-tester/rule-tester.js +1371 -998
- package/lib/rules/accessor-pairs.js +333 -259
- package/lib/rules/array-bracket-newline.js +250 -220
- package/lib/rules/array-bracket-spacing.js +286 -229
- package/lib/rules/array-callback-return.js +401 -354
- package/lib/rules/array-element-newline.js +358 -295
- package/lib/rules/arrow-body-style.js +400 -278
- package/lib/rules/arrow-parens.js +206 -155
- package/lib/rules/arrow-spacing.js +169 -145
- package/lib/rules/block-scoped-var.js +125 -123
- package/lib/rules/block-spacing.js +186 -158
- package/lib/rules/brace-style.js +262 -181
- package/lib/rules/callback-return.js +203 -174
- package/lib/rules/camelcase.js +403 -380
- package/lib/rules/capitalized-comments.js +253 -228
- package/lib/rules/class-methods-use-this.js +231 -168
- package/lib/rules/comma-dangle.js +379 -328
- package/lib/rules/comma-spacing.js +193 -177
- package/lib/rules/comma-style.js +375 -298
- package/lib/rules/complexity.js +180 -144
- package/lib/rules/computed-property-spacing.js +236 -193
- package/lib/rules/consistent-return.js +181 -170
- package/lib/rules/consistent-this.js +167 -141
- package/lib/rules/constructor-super.js +418 -411
- package/lib/rules/curly.js +407 -468
- package/lib/rules/default-case-last.js +39 -32
- package/lib/rules/default-case.js +89 -83
- package/lib/rules/default-param-last.js +69 -53
- package/lib/rules/dot-location.js +122 -92
- package/lib/rules/dot-notation.js +193 -153
- package/lib/rules/eol-last.js +122 -102
- package/lib/rules/eqeqeq.js +191 -155
- package/lib/rules/for-direction.js +150 -122
- package/lib/rules/func-call-spacing.js +261 -213
- package/lib/rules/func-name-matching.js +294 -209
- package/lib/rules/func-names.js +165 -164
- package/lib/rules/func-style.js +209 -86
- package/lib/rules/function-call-argument-newline.js +152 -111
- package/lib/rules/function-paren-newline.js +349 -273
- package/lib/rules/generator-star-spacing.js +229 -192
- package/lib/rules/getter-return.js +208 -170
- package/lib/rules/global-require.js +85 -58
- package/lib/rules/grouped-accessor-pairs.js +201 -148
- package/lib/rules/guard-for-in.js +72 -63
- package/lib/rules/handle-callback-err.js +108 -87
- package/lib/rules/id-blacklist.js +182 -187
- package/lib/rules/id-denylist.js +174 -179
- package/lib/rules/id-length.js +197 -157
- package/lib/rules/id-match.js +350 -286
- package/lib/rules/implicit-arrow-linebreak.js +102 -61
- package/lib/rules/indent-legacy.js +1345 -1102
- package/lib/rules/indent.js +2272 -1741
- package/lib/rules/index.js +320 -294
- package/lib/rules/init-declarations.js +139 -106
- package/lib/rules/jsx-quotes.js +94 -64
- package/lib/rules/key-spacing.js +750 -615
- package/lib/rules/keyword-spacing.js +648 -587
- package/lib/rules/line-comment-position.js +143 -108
- package/lib/rules/linebreak-style.js +115 -88
- package/lib/rules/lines-around-comment.js +540 -430
- package/lib/rules/lines-around-directive.js +233 -185
- package/lib/rules/lines-between-class-members.js +305 -216
- package/lib/rules/logical-assignment-operators.js +582 -398
- package/lib/rules/max-classes-per-file.js +69 -68
- package/lib/rules/max-depth.js +146 -143
- package/lib/rules/max-len.js +473 -416
- package/lib/rules/max-lines-per-function.js +201 -176
- package/lib/rules/max-lines.js +158 -162
- package/lib/rules/max-nested-callbacks.js +102 -104
- package/lib/rules/max-params.js +102 -75
- package/lib/rules/max-statements-per-line.js +205 -180
- package/lib/rules/max-statements.js +168 -164
- package/lib/rules/multiline-comment-style.js +638 -460
- package/lib/rules/multiline-ternary.js +241 -158
- package/lib/rules/new-cap.js +233 -232
- package/lib/rules/new-parens.js +88 -61
- package/lib/rules/newline-after-var.js +287 -233
- package/lib/rules/newline-before-return.js +229 -204
- package/lib/rules/newline-per-chained-call.js +142 -109
- package/lib/rules/no-alert.js +90 -79
- package/lib/rules/no-array-constructor.js +175 -113
- package/lib/rules/no-async-promise-executor.js +30 -24
- package/lib/rules/no-await-in-loop.js +79 -70
- package/lib/rules/no-bitwise.js +113 -87
- package/lib/rules/no-buffer-constructor.js +61 -37
- package/lib/rules/no-caller.js +39 -33
- package/lib/rules/no-case-declarations.js +61 -45
- package/lib/rules/no-catch-shadow.js +76 -62
- package/lib/rules/no-class-assign.js +51 -48
- package/lib/rules/no-compare-neg-zero.js +62 -48
- package/lib/rules/no-cond-assign.js +148 -132
- package/lib/rules/no-confusing-arrow.js +98 -63
- package/lib/rules/no-console.js +202 -188
- package/lib/rules/no-const-assign.js +58 -41
- package/lib/rules/no-constant-binary-expression.js +501 -407
- package/lib/rules/no-constant-condition.js +158 -131
- package/lib/rules/no-constructor-return.js +49 -49
- package/lib/rules/no-continue.js +25 -26
- package/lib/rules/no-control-regex.js +125 -121
- package/lib/rules/no-debugger.js +28 -30
- package/lib/rules/no-delete-var.js +29 -29
- package/lib/rules/no-div-regex.js +47 -40
- package/lib/rules/no-dupe-args.js +79 -69
- package/lib/rules/no-dupe-class-members.js +102 -89
- package/lib/rules/no-dupe-else-if.js +100 -77
- package/lib/rules/no-dupe-keys.js +133 -110
- package/lib/rules/no-duplicate-case.js +50 -43
- package/lib/rules/no-duplicate-imports.js +266 -188
- package/lib/rules/no-else-return.js +430 -385
- package/lib/rules/no-empty-character-class.js +57 -50
- package/lib/rules/no-empty-function.js +197 -128
- package/lib/rules/no-empty-pattern.js +63 -56
- package/lib/rules/no-empty-static-block.js +61 -35
- package/lib/rules/no-empty.js +135 -85
- package/lib/rules/no-eq-null.js +37 -32
- package/lib/rules/no-eval.js +258 -249
- package/lib/rules/no-ex-assign.js +42 -39
- package/lib/rules/no-extend-native.js +161 -160
- package/lib/rules/no-extra-bind.js +201 -190
- package/lib/rules/no-extra-boolean-cast.js +398 -295
- package/lib/rules/no-extra-label.js +150 -130
- package/lib/rules/no-extra-parens.js +1654 -1307
- package/lib/rules/no-extra-semi.js +146 -126
- package/lib/rules/no-fallthrough.js +200 -136
- package/lib/rules/no-floating-decimal.js +74 -48
- package/lib/rules/no-func-assign.js +54 -55
- package/lib/rules/no-global-assign.js +78 -72
- package/lib/rules/no-implicit-coercion.js +350 -262
- package/lib/rules/no-implicit-globals.js +174 -133
- package/lib/rules/no-implied-eval.js +150 -112
- package/lib/rules/no-import-assign.js +145 -159
- package/lib/rules/no-inline-comments.js +101 -96
- package/lib/rules/no-inner-declarations.js +115 -78
- package/lib/rules/no-invalid-regexp.js +223 -174
- package/lib/rules/no-invalid-this.js +145 -117
- package/lib/rules/no-irregular-whitespace.js +266 -250
- package/lib/rules/no-iterator.js +29 -33
- package/lib/rules/no-label-var.js +59 -61
- package/lib/rules/no-labels.js +138 -131
- package/lib/rules/no-lone-blocks.js +127 -123
- package/lib/rules/no-lonely-if.js +105 -67
- package/lib/rules/no-loop-func.js +245 -184
- package/lib/rules/no-loss-of-precision.js +236 -201
- package/lib/rules/no-magic-numbers.js +339 -217
- package/lib/rules/no-misleading-character-class.js +548 -253
- package/lib/rules/no-mixed-operators.js +188 -164
- package/lib/rules/no-mixed-requires.js +253 -224
- package/lib/rules/no-mixed-spaces-and-tabs.js +135 -103
- package/lib/rules/no-multi-assign.js +46 -47
- package/lib/rules/no-multi-spaces.js +163 -125
- package/lib/rules/no-multi-str.js +42 -40
- package/lib/rules/no-multiple-empty-lines.js +196 -140
- package/lib/rules/no-native-reassign.js +90 -74
- package/lib/rules/no-negated-condition.js +79 -74
- package/lib/rules/no-negated-in-lhs.js +45 -32
- package/lib/rules/no-nested-ternary.js +33 -31
- package/lib/rules/no-new-func.js +71 -62
- package/lib/rules/no-new-native-nonconstructor.js +43 -39
- package/lib/rules/no-new-object.js +48 -39
- package/lib/rules/no-new-require.js +48 -31
- package/lib/rules/no-new-symbol.js +61 -43
- package/lib/rules/no-new-wrappers.js +43 -41
- package/lib/rules/no-new.js +28 -29
- package/lib/rules/no-nonoctal-decimal-escape.js +149 -121
- package/lib/rules/no-obj-calls.js +66 -53
- package/lib/rules/no-object-constructor.js +104 -97
- package/lib/rules/no-octal-escape.js +40 -43
- package/lib/rules/no-octal.js +29 -32
- package/lib/rules/no-param-reassign.js +236 -218
- package/lib/rules/no-path-concat.js +66 -51
- package/lib/rules/no-plusplus.js +60 -63
- package/lib/rules/no-process-env.js +49 -32
- package/lib/rules/no-process-exit.js +48 -28
- package/lib/rules/no-promise-executor-return.js +205 -204
- package/lib/rules/no-proto.js +26 -29
- package/lib/rules/no-prototype-builtins.js +146 -124
- package/lib/rules/no-redeclare.js +154 -155
- package/lib/rules/no-regex-spaces.js +183 -161
- package/lib/rules/no-restricted-exports.js +208 -174
- package/lib/rules/no-restricted-globals.js +254 -112
- package/lib/rules/no-restricted-imports.js +824 -384
- package/lib/rules/no-restricted-modules.js +222 -186
- package/lib/rules/no-restricted-properties.js +218 -153
- package/lib/rules/no-restricted-syntax.js +56 -52
- package/lib/rules/no-return-assign.js +56 -49
- package/lib/rules/no-return-await.js +147 -120
- package/lib/rules/no-script-url.js +53 -46
- package/lib/rules/no-self-assign.js +148 -145
- package/lib/rules/no-self-compare.js +63 -46
- package/lib/rules/no-sequences.js +135 -115
- package/lib/rules/no-setter-return.js +176 -178
- package/lib/rules/no-shadow-restricted-names.js +84 -36
- package/lib/rules/no-shadow.js +598 -310
- package/lib/rules/no-spaced-func.js +82 -60
- package/lib/rules/no-sparse-arrays.js +46 -28
- package/lib/rules/no-sync.js +61 -44
- package/lib/rules/no-tabs.js +83 -54
- package/lib/rules/no-template-curly-in-string.js +33 -32
- package/lib/rules/no-ternary.js +25 -28
- package/lib/rules/no-this-before-super.js +332 -298
- package/lib/rules/no-throw-literal.js +31 -36
- package/lib/rules/no-trailing-spaces.js +208 -174
- package/lib/rules/no-unassigned-vars.js +80 -0
- package/lib/rules/no-undef-init.js +86 -60
- package/lib/rules/no-undef.js +52 -47
- package/lib/rules/no-undefined.js +73 -74
- package/lib/rules/no-underscore-dangle.js +370 -322
- package/lib/rules/no-unexpected-multiline.js +112 -102
- package/lib/rules/no-unmodified-loop-condition.js +254 -254
- package/lib/rules/no-unneeded-ternary.js +212 -146
- package/lib/rules/no-unreachable-loop.js +145 -140
- package/lib/rules/no-unreachable.js +255 -248
- package/lib/rules/no-unsafe-finally.js +93 -85
- package/lib/rules/no-unsafe-negation.js +105 -81
- package/lib/rules/no-unsafe-optional-chaining.js +193 -177
- package/lib/rules/no-unused-expressions.js +199 -158
- package/lib/rules/no-unused-labels.js +139 -124
- package/lib/rules/no-unused-private-class-members.js +206 -182
- package/lib/rules/no-unused-vars.js +1708 -687
- package/lib/rules/no-use-before-define.js +327 -229
- package/lib/rules/no-useless-assignment.js +654 -0
- package/lib/rules/no-useless-backreference.js +212 -143
- package/lib/rules/no-useless-call.js +58 -53
- package/lib/rules/no-useless-catch.js +40 -40
- package/lib/rules/no-useless-computed-key.js +144 -108
- package/lib/rules/no-useless-concat.js +65 -59
- package/lib/rules/no-useless-constructor.js +160 -97
- package/lib/rules/no-useless-escape.js +364 -291
- package/lib/rules/no-useless-rename.js +183 -153
- package/lib/rules/no-useless-return.js +344 -307
- package/lib/rules/no-var.js +245 -212
- package/lib/rules/no-void.js +51 -46
- package/lib/rules/no-warning-comments.js +191 -183
- package/lib/rules/no-whitespace-before-property.js +131 -97
- package/lib/rules/no-with.js +24 -26
- package/lib/rules/nonblock-statement-body-position.js +149 -112
- package/lib/rules/object-curly-newline.js +306 -247
- package/lib/rules/object-curly-spacing.js +360 -296
- package/lib/rules/object-property-newline.js +137 -88
- package/lib/rules/object-shorthand.js +632 -500
- package/lib/rules/one-var-declaration-per-line.js +104 -82
- package/lib/rules/one-var.js +686 -536
- package/lib/rules/operator-assignment.js +219 -158
- package/lib/rules/operator-linebreak.js +295 -233
- package/lib/rules/padded-blocks.js +346 -290
- package/lib/rules/padding-line-between-statements.js +443 -421
- package/lib/rules/prefer-arrow-callback.js +371 -315
- package/lib/rules/prefer-const.js +418 -373
- package/lib/rules/prefer-destructuring.js +309 -278
- package/lib/rules/prefer-exponentiation-operator.js +176 -132
- package/lib/rules/prefer-named-capture-group.js +160 -141
- package/lib/rules/prefer-numeric-literals.js +121 -112
- package/lib/rules/prefer-object-has-own.js +116 -82
- package/lib/rules/prefer-object-spread.js +214 -193
- package/lib/rules/prefer-promise-reject-errors.js +140 -118
- package/lib/rules/prefer-reflect.js +126 -103
- package/lib/rules/prefer-regex-literals.js +561 -463
- package/lib/rules/prefer-rest-params.js +79 -80
- package/lib/rules/prefer-spread.js +47 -43
- package/lib/rules/prefer-template.js +266 -194
- package/lib/rules/preserve-caught-error.js +535 -0
- package/lib/rules/quote-props.js +373 -289
- package/lib/rules/quotes.js +374 -308
- package/lib/rules/radix.js +152 -134
- package/lib/rules/require-atomic-updates.js +316 -282
- package/lib/rules/require-await.js +153 -82
- package/lib/rules/require-unicode-regexp.js +296 -108
- package/lib/rules/require-yield.js +53 -54
- package/lib/rules/rest-spread-spacing.js +128 -98
- package/lib/rules/semi-spacing.js +281 -232
- package/lib/rules/semi-style.js +176 -116
- package/lib/rules/semi.js +456 -418
- package/lib/rules/sort-imports.js +307 -229
- package/lib/rules/sort-keys.js +219 -181
- package/lib/rules/sort-vars.js +127 -91
- package/lib/rules/space-before-blocks.js +199 -171
- package/lib/rules/space-before-function-paren.js +186 -148
- package/lib/rules/space-in-parens.js +359 -270
- package/lib/rules/space-infix-ops.js +237 -183
- package/lib/rules/space-unary-ops.js +356 -280
- package/lib/rules/spaced-comment.js +363 -301
- package/lib/rules/strict.js +266 -229
- package/lib/rules/switch-colon-spacing.js +130 -104
- package/lib/rules/symbol-description.js +45 -48
- package/lib/rules/template-curly-spacing.js +148 -124
- package/lib/rules/template-tag-spacing.js +98 -70
- package/lib/rules/unicode-bom.js +54 -54
- package/lib/rules/use-isnan.js +237 -110
- package/lib/rules/utils/ast-utils.js +2139 -1688
- package/lib/rules/utils/char-source.js +247 -0
- package/lib/rules/utils/fix-tracker.js +99 -88
- package/lib/rules/utils/keywords.js +59 -59
- package/lib/rules/utils/lazy-loading-rule-map.js +81 -78
- package/lib/rules/utils/regular-expressions.js +35 -19
- package/lib/rules/utils/unicode/index.js +9 -4
- package/lib/rules/utils/unicode/is-combining-character.js +1 -1
- package/lib/rules/utils/unicode/is-emoji-modifier.js +1 -1
- package/lib/rules/utils/unicode/is-regional-indicator-symbol.js +1 -1
- package/lib/rules/utils/unicode/is-surrogate-pair.js +1 -1
- package/lib/rules/valid-typeof.js +153 -109
- package/lib/rules/vars-on-top.js +152 -144
- package/lib/rules/wrap-iife.js +204 -173
- package/lib/rules/wrap-regex.js +77 -47
- package/lib/rules/yield-star-spacing.js +145 -116
- package/lib/rules/yoda.js +283 -274
- package/lib/services/parser-service.js +65 -0
- package/lib/services/processor-service.js +101 -0
- package/lib/services/suppressions-service.js +302 -0
- package/lib/services/warning-service.js +98 -0
- package/lib/shared/ajv.js +14 -14
- package/lib/shared/assert.js +21 -0
- package/lib/shared/ast-utils.js +7 -6
- package/lib/shared/deep-merge-arrays.js +62 -0
- package/lib/shared/directives.js +3 -2
- package/lib/shared/flags.js +108 -0
- package/lib/shared/logging.js +24 -16
- package/lib/shared/naming.js +109 -0
- package/lib/shared/option-utils.js +63 -0
- package/lib/shared/relative-module-resolver.js +18 -40
- package/lib/shared/runtime-info.js +138 -128
- package/lib/shared/serialization.js +78 -0
- package/lib/shared/severity.js +22 -22
- package/lib/shared/stats.js +30 -0
- package/lib/shared/string-utils.js +19 -21
- package/lib/shared/text-table.js +68 -0
- package/lib/shared/translate-cli-options.js +281 -0
- package/lib/shared/traverser.js +153 -146
- package/lib/types/config-api.d.ts +12 -0
- package/lib/types/index.d.ts +1473 -0
- package/lib/types/rules.d.ts +5589 -0
- package/lib/types/universal.d.ts +6 -0
- package/lib/types/use-at-your-own-risk.d.ts +87 -0
- package/lib/universal.js +10 -0
- package/lib/unsupported-api.js +8 -9
- package/messages/all-files-ignored.js +3 -3
- package/messages/all-matched-files-ignored.js +21 -0
- package/messages/config-file-missing.js +16 -0
- package/messages/config-plugin-missing.js +14 -0
- package/messages/config-serialize-function.js +30 -0
- package/messages/eslintrc-incompat.js +35 -16
- package/messages/eslintrc-plugins.js +8 -5
- package/messages/extend-config-missing.js +3 -3
- package/messages/failed-to-read-json.js +3 -3
- package/messages/file-not-found.js +3 -3
- package/messages/invalid-rule-options.js +2 -2
- package/messages/invalid-rule-severity.js +2 -2
- package/messages/no-config-found.js +4 -4
- package/messages/plugin-conflict.js +9 -9
- package/messages/plugin-invalid.js +4 -4
- package/messages/plugin-missing.js +4 -4
- package/messages/print-config-with-directory-path.js +2 -2
- package/messages/shared.js +6 -1
- package/messages/whitespace-found.js +3 -3
- package/package.json +105 -60
- package/conf/config-schema.js +0 -93
- package/lib/cli-engine/formatters/checkstyle.js +0 -60
- package/lib/cli-engine/formatters/compact.js +0 -60
- package/lib/cli-engine/formatters/jslint-xml.js +0 -41
- package/lib/cli-engine/formatters/junit.js +0 -82
- package/lib/cli-engine/formatters/tap.js +0 -95
- package/lib/cli-engine/formatters/unix.js +0 -58
- package/lib/cli-engine/formatters/visualstudio.js +0 -63
- package/lib/cli-engine/xml-escape.js +0 -34
- package/lib/config/flat-config-helpers.js +0 -111
- package/lib/config/rule-validator.js +0 -158
- package/lib/eslint/flat-eslint.js +0 -1159
- package/lib/linter/config-comment-parser.js +0 -185
- package/lib/linter/node-event-generator.js +0 -354
- package/lib/linter/report-translator.js +0 -369
- package/lib/linter/safe-emitter.js +0 -52
- package/lib/rule-tester/flat-rule-tester.js +0 -1131
- package/lib/rules/require-jsdoc.js +0 -122
- package/lib/rules/utils/patterns/letters.js +0 -36
- package/lib/rules/valid-jsdoc.js +0 -516
- package/lib/shared/config-validator.js +0 -347
- package/lib/shared/deprecation-warnings.js +0 -58
- package/lib/shared/types.js +0 -216
- package/lib/source-code/index.js +0 -5
- package/lib/source-code/source-code.js +0 -1055
- package/lib/source-code/token-store/backward-token-comment-cursor.js +0 -57
- package/lib/source-code/token-store/backward-token-cursor.js +0 -58
- package/lib/source-code/token-store/cursors.js +0 -90
- package/lib/source-code/token-store/forward-token-comment-cursor.js +0 -57
- package/lib/source-code/token-store/forward-token-cursor.js +0 -63
- package/lib/source-code/token-store/index.js +0 -627
- package/lib/source-code/token-store/padded-token-cursor.js +0 -38
- package/lib/source-code/token-store/utils.js +0 -107
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview This file contains the types for the use-at-your-own-risk
|
|
3
|
+
* entrypoint. It was initially extracted from the `@types/eslint` package.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
/*
|
|
7
|
+
* MIT License
|
|
8
|
+
* Copyright (c) Microsoft Corporation.
|
|
9
|
+
*
|
|
10
|
+
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
* of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
* in the Software without restriction, including without limitation the rights
|
|
13
|
+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
* copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
* furnished to do so, subject to the following conditions:
|
|
16
|
+
* The above copyright notice and this permission notice shall be included in all
|
|
17
|
+
* copies or substantial portions of the Software.
|
|
18
|
+
*
|
|
19
|
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
20
|
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
21
|
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
22
|
+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
23
|
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
24
|
+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
25
|
+
* SOFTWARE
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
import { ESLint, Rule } from "./index.js";
|
|
29
|
+
|
|
30
|
+
/** @deprecated */
|
|
31
|
+
export const builtinRules: Map<string, Rule.RuleModule>;
|
|
32
|
+
|
|
33
|
+
/** @deprecated */
|
|
34
|
+
export class FileEnumerator {
|
|
35
|
+
constructor(params?: {
|
|
36
|
+
cwd?: string;
|
|
37
|
+
configArrayFactory?: any;
|
|
38
|
+
extensions?: any;
|
|
39
|
+
globInputPaths?: boolean;
|
|
40
|
+
errorOnUnmatchedPattern?: boolean;
|
|
41
|
+
ignore?: boolean;
|
|
42
|
+
});
|
|
43
|
+
isTargetPath(filePath: string, providedConfig?: any): boolean;
|
|
44
|
+
iterateFiles(
|
|
45
|
+
patternOrPatterns: string | string[],
|
|
46
|
+
): IterableIterator<{ config: any; filePath: string; ignored: boolean }>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export { /** @deprecated */ ESLint as FlatESLint };
|
|
50
|
+
|
|
51
|
+
/** @deprecated */
|
|
52
|
+
export class LegacyESLint {
|
|
53
|
+
static configType: "eslintrc";
|
|
54
|
+
|
|
55
|
+
static readonly version: string;
|
|
56
|
+
|
|
57
|
+
static outputFixes(results: ESLint.LintResult[]): Promise<void>;
|
|
58
|
+
|
|
59
|
+
static getErrorResults(results: ESLint.LintResult[]): ESLint.LintResult[];
|
|
60
|
+
|
|
61
|
+
constructor(options?: ESLint.LegacyOptions);
|
|
62
|
+
|
|
63
|
+
lintFiles(patterns: string | string[]): Promise<ESLint.LintResult[]>;
|
|
64
|
+
|
|
65
|
+
lintText(
|
|
66
|
+
code: string,
|
|
67
|
+
options?: {
|
|
68
|
+
filePath?: string | undefined;
|
|
69
|
+
warnIgnored?: boolean | undefined;
|
|
70
|
+
},
|
|
71
|
+
): Promise<ESLint.LintResult[]>;
|
|
72
|
+
|
|
73
|
+
getRulesMetaForResults(
|
|
74
|
+
results: ESLint.LintResult[],
|
|
75
|
+
): ESLint.LintResultData["rulesMeta"];
|
|
76
|
+
|
|
77
|
+
hasFlag(flag: string): false;
|
|
78
|
+
|
|
79
|
+
calculateConfigForFile(filePath: string): Promise<any>;
|
|
80
|
+
|
|
81
|
+
isPathIgnored(filePath: string): Promise<boolean>;
|
|
82
|
+
|
|
83
|
+
loadFormatter(nameOrPath?: string): Promise<ESLint.Formatter>;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/** @deprecated */
|
|
87
|
+
export function shouldUseFlatConfig(): Promise<boolean>;
|
package/lib/universal.js
ADDED
package/lib/unsupported-api.js
CHANGED
|
@@ -12,19 +12,18 @@
|
|
|
12
12
|
//-----------------------------------------------------------------------------
|
|
13
13
|
|
|
14
14
|
const { FileEnumerator } = require("./cli-engine/file-enumerator");
|
|
15
|
-
const { FlatESLint, shouldUseFlatConfig } = require("./eslint/
|
|
16
|
-
const
|
|
17
|
-
const
|
|
15
|
+
const { ESLint: FlatESLint, shouldUseFlatConfig } = require("./eslint/eslint");
|
|
16
|
+
const { LegacyESLint } = require("./eslint/legacy-eslint");
|
|
17
|
+
const builtinRules = require("./rules");
|
|
18
18
|
|
|
19
19
|
//-----------------------------------------------------------------------------
|
|
20
20
|
// Exports
|
|
21
21
|
//-----------------------------------------------------------------------------
|
|
22
22
|
|
|
23
23
|
module.exports = {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
LegacyESLint: ESLint
|
|
24
|
+
builtinRules,
|
|
25
|
+
FlatESLint,
|
|
26
|
+
shouldUseFlatConfig,
|
|
27
|
+
FileEnumerator,
|
|
28
|
+
LegacyESLint,
|
|
30
29
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { pattern } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return `
|
|
7
7
|
You are linting "${pattern}", but all of the files matching the glob pattern "${pattern}" are ignored.
|
|
8
8
|
|
|
9
9
|
If you don't want to lint these files, remove the pattern "${pattern}" from the list of arguments passed to ESLint.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { pattern } = it;
|
|
5
|
+
|
|
6
|
+
return `
|
|
7
|
+
You are linting "${pattern}", but all of the files matching the glob pattern "${pattern}" are ignored.
|
|
8
|
+
|
|
9
|
+
If you don't want to lint these files, remove the pattern "${pattern}" from the list of arguments passed to ESLint.
|
|
10
|
+
|
|
11
|
+
If you do want to lint these files, explicitly list one or more of the files from this glob that you'd like to lint to see more details about why they are ignored.
|
|
12
|
+
|
|
13
|
+
* If the file is ignored because of a matching ignore pattern, check global ignores in your config file.
|
|
14
|
+
https://eslint.org/docs/latest/use/configure/ignore
|
|
15
|
+
|
|
16
|
+
* If the file is ignored because no matching configuration was supplied, check file patterns in your config file.
|
|
17
|
+
https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-with-arbitrary-extensions
|
|
18
|
+
|
|
19
|
+
* If the file is ignored because it is located outside of the base path, change the location of your config file to be in a parent directory.
|
|
20
|
+
`.trimStart();
|
|
21
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
module.exports = function () {
|
|
4
|
+
return `
|
|
5
|
+
ESLint couldn't find an eslint.config.(js|mjs|cjs) file.
|
|
6
|
+
|
|
7
|
+
From ESLint v9.0.0, the default configuration file is now eslint.config.js.
|
|
8
|
+
If you are using a .eslintrc.* file, please follow the migration guide
|
|
9
|
+
to update your configuration file to the new format:
|
|
10
|
+
|
|
11
|
+
https://eslint.org/docs/latest/use/configure/migration-guide
|
|
12
|
+
|
|
13
|
+
If you still have problems after following the migration guide, please stop by
|
|
14
|
+
https://eslint.org/chat/help to chat with the team.
|
|
15
|
+
`.trimStart();
|
|
16
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { pluginName, ruleId } = it;
|
|
5
|
+
|
|
6
|
+
return `
|
|
7
|
+
A configuration object specifies rule "${ruleId}", but could not find plugin "${pluginName}".
|
|
8
|
+
|
|
9
|
+
Common causes of this problem include:
|
|
10
|
+
|
|
11
|
+
1. The "${pluginName}" plugin is not defined in your configuration file.
|
|
12
|
+
2. The "${pluginName}" plugin is not defined within the same configuration object in which the "${ruleId}" rule is applied.
|
|
13
|
+
`.trimStart();
|
|
14
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
module.exports = function ({ key, objectKey }) {
|
|
4
|
+
// special case for parsers
|
|
5
|
+
const isParser =
|
|
6
|
+
objectKey === "parser" && (key === "parse" || key === "parseForESLint");
|
|
7
|
+
const parserMessage = `
|
|
8
|
+
This typically happens when you're using a custom parser that does not
|
|
9
|
+
provide a "meta" property, which is how ESLint determines the serialized
|
|
10
|
+
representation. Please open an issue with the maintainer of the custom parser
|
|
11
|
+
and share this link:
|
|
12
|
+
|
|
13
|
+
https://eslint.org/docs/latest/extend/custom-parsers#meta-data-in-custom-parsers
|
|
14
|
+
`.trim();
|
|
15
|
+
|
|
16
|
+
return `
|
|
17
|
+
The requested operation requires ESLint to serialize configuration data,
|
|
18
|
+
but the configuration key "${objectKey}.${key}" contains a function value,
|
|
19
|
+
which cannot be serialized.
|
|
20
|
+
|
|
21
|
+
${
|
|
22
|
+
isParser
|
|
23
|
+
? parserMessage
|
|
24
|
+
: "Please double-check your configuration for errors."
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
If you still have problems, please stop by https://eslint.org/chat/help to chat
|
|
28
|
+
with the team.
|
|
29
|
+
`.trimStart();
|
|
30
|
+
};
|
|
@@ -3,44 +3,55 @@
|
|
|
3
3
|
/* eslint consistent-return: 0 -- no default case */
|
|
4
4
|
|
|
5
5
|
const messages = {
|
|
6
|
-
|
|
7
|
-
env: `
|
|
6
|
+
env: `
|
|
8
7
|
A config object is using the "env" key, which is not supported in flat config system.
|
|
9
8
|
|
|
10
9
|
Flat config uses "languageOptions.globals" to define global variables for your files.
|
|
11
10
|
|
|
12
11
|
Please see the following page for information on how to convert your config object into the correct format:
|
|
13
12
|
https://eslint.org/docs/latest/use/configure/migration-guide#configuring-language-options
|
|
13
|
+
|
|
14
|
+
If you're not using "env" directly (it may be coming from a plugin), please see the following:
|
|
15
|
+
https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
14
16
|
`,
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
extends: `
|
|
17
19
|
A config object is using the "extends" key, which is not supported in flat config system.
|
|
18
20
|
|
|
19
21
|
Instead of "extends", you can include config objects that you'd like to extend from directly in the flat config array.
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
If you're using "extends" in your config file, please see the following:
|
|
22
24
|
https://eslint.org/docs/latest/use/configure/migration-guide#predefined-and-shareable-configs
|
|
25
|
+
|
|
26
|
+
If you're not using "extends" directly (it may be coming from a plugin), please see the following:
|
|
27
|
+
https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
23
28
|
`,
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
globals: `
|
|
26
31
|
A config object is using the "globals" key, which is not supported in flat config system.
|
|
27
32
|
|
|
28
33
|
Flat config uses "languageOptions.globals" to define global variables for your files.
|
|
29
34
|
|
|
30
35
|
Please see the following page for information on how to convert your config object into the correct format:
|
|
31
36
|
https://eslint.org/docs/latest/use/configure/migration-guide#configuring-language-options
|
|
37
|
+
|
|
38
|
+
If you're not using "globals" directly (it may be coming from a plugin), please see the following:
|
|
39
|
+
https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
32
40
|
`,
|
|
33
41
|
|
|
34
|
-
|
|
42
|
+
ignorePatterns: `
|
|
35
43
|
A config object is using the "ignorePatterns" key, which is not supported in flat config system.
|
|
36
44
|
|
|
37
45
|
Flat config uses "ignores" to specify files to ignore.
|
|
38
46
|
|
|
39
47
|
Please see the following page for information on how to convert your config object into the correct format:
|
|
40
48
|
https://eslint.org/docs/latest/use/configure/migration-guide#ignoring-files
|
|
49
|
+
|
|
50
|
+
If you're not using "ignorePatterns" directly (it may be coming from a plugin), please see the following:
|
|
51
|
+
https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
41
52
|
`,
|
|
42
53
|
|
|
43
|
-
|
|
54
|
+
noInlineConfig: `
|
|
44
55
|
A config object is using the "noInlineConfig" key, which is not supported in flat config system.
|
|
45
56
|
|
|
46
57
|
Flat config uses "linterOptions.noInlineConfig" to specify files to ignore.
|
|
@@ -49,34 +60,43 @@ Please see the following page for information on how to convert your config obje
|
|
|
49
60
|
https://eslint.org/docs/latest/use/configure/migration-guide#linter-options
|
|
50
61
|
`,
|
|
51
62
|
|
|
52
|
-
|
|
63
|
+
overrides: `
|
|
53
64
|
A config object is using the "overrides" key, which is not supported in flat config system.
|
|
54
65
|
|
|
55
66
|
Flat config is an array that acts like the eslintrc "overrides" array.
|
|
56
67
|
|
|
57
68
|
Please see the following page for information on how to convert your config object into the correct format:
|
|
58
69
|
https://eslint.org/docs/latest/use/configure/migration-guide#glob-based-configs
|
|
70
|
+
|
|
71
|
+
If you're not using "overrides" directly (it may be coming from a plugin), please see the following:
|
|
72
|
+
https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
59
73
|
`,
|
|
60
74
|
|
|
61
|
-
|
|
75
|
+
parser: `
|
|
62
76
|
A config object is using the "parser" key, which is not supported in flat config system.
|
|
63
77
|
|
|
64
78
|
Flat config uses "languageOptions.parser" to override the default parser.
|
|
65
79
|
|
|
66
80
|
Please see the following page for information on how to convert your config object into the correct format:
|
|
67
81
|
https://eslint.org/docs/latest/use/configure/migration-guide#custom-parsers
|
|
82
|
+
|
|
83
|
+
If you're not using "parser" directly (it may be coming from a plugin), please see the following:
|
|
84
|
+
https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
68
85
|
`,
|
|
69
86
|
|
|
70
|
-
|
|
87
|
+
parserOptions: `
|
|
71
88
|
A config object is using the "parserOptions" key, which is not supported in flat config system.
|
|
72
89
|
|
|
73
90
|
Flat config uses "languageOptions.parserOptions" to specify parser options.
|
|
74
91
|
|
|
75
92
|
Please see the following page for information on how to convert your config object into the correct format:
|
|
76
93
|
https://eslint.org/docs/latest/use/configure/migration-guide#configuring-language-options
|
|
94
|
+
|
|
95
|
+
If you're not using "parserOptions" directly (it may be coming from a plugin), please see the following:
|
|
96
|
+
https://eslint.org/docs/latest/use/configure/migration-guide#using-eslintrc-configs-in-flat-config
|
|
77
97
|
`,
|
|
78
98
|
|
|
79
|
-
|
|
99
|
+
reportUnusedDisableDirectives: `
|
|
80
100
|
A config object is using the "reportUnusedDisableDirectives" key, which is not supported in flat config system.
|
|
81
101
|
|
|
82
102
|
Flat config uses "linterOptions.reportUnusedDisableDirectives" to specify files to ignore.
|
|
@@ -85,14 +105,13 @@ Please see the following page for information on how to convert your config obje
|
|
|
85
105
|
https://eslint.org/docs/latest/use/configure/migration-guide#linter-options
|
|
86
106
|
`,
|
|
87
107
|
|
|
88
|
-
|
|
108
|
+
root: `
|
|
89
109
|
A config object is using the "root" key, which is not supported in flat config system.
|
|
90
110
|
|
|
91
111
|
Flat configs always act as if they are the root config file, so this key can be safely removed.
|
|
92
|
-
|
|
112
|
+
`,
|
|
93
113
|
};
|
|
94
114
|
|
|
95
|
-
module.exports = function({ key }) {
|
|
96
|
-
|
|
97
|
-
return messages[key].trim();
|
|
115
|
+
module.exports = function ({ key }) {
|
|
116
|
+
return messages[key].trim();
|
|
98
117
|
};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function({ plugins }) {
|
|
3
|
+
module.exports = function ({ plugins }) {
|
|
4
|
+
const isArrayOfStrings = typeof plugins[0] === "string";
|
|
4
5
|
|
|
5
|
-
|
|
6
|
+
return `
|
|
7
|
+
A config object has a "plugins" key defined as an array${isArrayOfStrings ? " of strings" : ""}. It looks something like this:
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
{
|
|
10
|
+
"plugins": ${JSON.stringify(plugins)}
|
|
11
|
+
}
|
|
9
12
|
|
|
10
|
-
Flat config requires "plugins" to be an object
|
|
13
|
+
Flat config requires "plugins" to be an object, like this:
|
|
11
14
|
|
|
12
15
|
{
|
|
13
16
|
plugins: {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { configName, importerName } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return `
|
|
7
7
|
ESLint couldn't find the config "${configName}" to extend from. Please check that the name of the config is correct.
|
|
8
8
|
|
|
9
9
|
The config "${configName}" was referenced from the config file in "${importerName}".
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { pattern, globDisabled } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return `
|
|
7
7
|
No files matching the pattern "${pattern}"${globDisabled ? " (with disabling globs)" : ""} were found.
|
|
8
8
|
Please check for typing mistakes in the pattern.
|
|
9
9
|
`.trimStart();
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
const { stringifyValueForError } = require("./shared");
|
|
4
4
|
|
|
5
|
-
module.exports = function({ ruleId, value }) {
|
|
6
|
-
|
|
5
|
+
module.exports = function ({ ruleId, value }) {
|
|
6
|
+
return `
|
|
7
7
|
Configuration for rule "${ruleId}" is invalid. Each rule must have a severity ("off", 0, "warn", 1, "error", or 2) and may be followed by additional options for the rule.
|
|
8
8
|
|
|
9
9
|
You passed '${stringifyValueForError(value, 4)}', which doesn't contain a valid severity.
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
const { stringifyValueForError } = require("./shared");
|
|
4
4
|
|
|
5
|
-
module.exports = function({ ruleId, value }) {
|
|
6
|
-
|
|
5
|
+
module.exports = function ({ ruleId, value }) {
|
|
6
|
+
return `
|
|
7
7
|
Configuration for rule "${ruleId}" is invalid. Expected severity of "off", 0, "warn", 1, "error", or 2.
|
|
8
8
|
|
|
9
9
|
You passed '${stringifyValueForError(value, 4)}'.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { directoryPath } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return `
|
|
7
7
|
ESLint couldn't find a configuration file. To set up a configuration file for this project, please run:
|
|
8
8
|
|
|
9
|
-
npm init @eslint/config
|
|
9
|
+
npm init @eslint/config@latest
|
|
10
10
|
|
|
11
11
|
ESLint looked for configuration files in ${directoryPath} and its ancestors. If it found none, it then looked in your home directory.
|
|
12
12
|
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { pluginId, plugins } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
let result = `ESLint couldn't determine the plugin "${pluginId}" uniquely.
|
|
7
7
|
`;
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
for (const { filePath, importerName } of plugins) {
|
|
10
|
+
result += `
|
|
11
11
|
- ${filePath} (loaded in "${importerName}")`;
|
|
12
|
-
|
|
12
|
+
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
result += `
|
|
15
15
|
|
|
16
16
|
Please remove the "plugins" setting from either config or remove either plugin installation.
|
|
17
17
|
|
|
18
|
-
If you still can't figure out the problem, please
|
|
18
|
+
If you still can't figure out the problem, please see https://eslint.org/docs/latest/use/troubleshooting.
|
|
19
19
|
`;
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
return result;
|
|
22
22
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { configName, importerName } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return `
|
|
7
7
|
"${configName}" is invalid syntax for a config specifier.
|
|
8
8
|
|
|
9
9
|
* If your intention is to extend from a configuration exported from the plugin, add the configuration name after a slash: e.g. "${configName}/myConfig".
|
|
@@ -11,6 +11,6 @@ module.exports = function(it) {
|
|
|
11
11
|
|
|
12
12
|
"${configName}" was referenced from the config file in "${importerName}".
|
|
13
13
|
|
|
14
|
-
If you still can't figure out the problem, please
|
|
14
|
+
If you still can't figure out the problem, please see https://eslint.org/docs/latest/use/troubleshooting.
|
|
15
15
|
`.trimStart();
|
|
16
16
|
};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { pluginName, resolvePluginsRelativeTo, importerName } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return `
|
|
7
7
|
ESLint couldn't find the plugin "${pluginName}".
|
|
8
8
|
|
|
9
9
|
(The package "${pluginName}" was not found when loaded as a Node module from the directory "${resolvePluginsRelativeTo}".)
|
|
@@ -14,6 +14,6 @@ It's likely that the plugin isn't installed correctly. Try reinstalling by runni
|
|
|
14
14
|
|
|
15
15
|
The plugin "${pluginName}" was referenced from the config file in "${importerName}".
|
|
16
16
|
|
|
17
|
-
If you still can't figure out the problem, please
|
|
17
|
+
If you still can't figure out the problem, please see https://eslint.org/docs/latest/use/troubleshooting.
|
|
18
18
|
`.trimStart();
|
|
19
19
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function() {
|
|
4
|
-
|
|
3
|
+
module.exports = function () {
|
|
4
|
+
return `
|
|
5
5
|
The '--print-config' CLI option requires a path to a source code file rather than a directory.
|
|
6
6
|
See also: https://eslint.org/docs/latest/use/command-line-interface#--print-config
|
|
7
7
|
`.trimStart();
|
package/messages/shared.js
CHANGED
|
@@ -12,7 +12,12 @@
|
|
|
12
12
|
* @returns {string} The value, stringified.
|
|
13
13
|
*/
|
|
14
14
|
function stringifyValueForError(value, indentation) {
|
|
15
|
-
|
|
15
|
+
return value
|
|
16
|
+
? JSON.stringify(value, null, 4).replace(
|
|
17
|
+
/\n/gu,
|
|
18
|
+
`\n${" ".repeat(indentation)}`,
|
|
19
|
+
)
|
|
20
|
+
: `${value}`;
|
|
16
21
|
}
|
|
17
22
|
|
|
18
23
|
module.exports = { stringifyValueForError };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
module.exports = function(it) {
|
|
4
|
-
|
|
3
|
+
module.exports = function (it) {
|
|
4
|
+
const { pluginName } = it;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
return `
|
|
7
7
|
ESLint couldn't find the plugin "${pluginName}". because there is whitespace in the name. Please check your configuration and remove all whitespace from the plugin name.
|
|
8
8
|
|
|
9
9
|
If you still can't figure out the problem, please stop by https://eslint.org/chat/help to chat with the team.
|