@alexlit/lint-kit 117.3.0 → 117.4.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.
Files changed (159) hide show
  1. package/package.json +1 -1
  2. package/packages/config-eslint/package.json +5 -9
  3. package/packages/config-eslint/plugins/no-await-in-promise.js +1 -1
  4. package/packages/config-eslint/utils/create-config.js +3 -3
  5. package/scripts/.config.sh +1 -1
  6. package/packages/config-eslint/node_modules/@eslint/eslintrc/LICENSE +0 -19
  7. package/packages/config-eslint/node_modules/@eslint/eslintrc/README.md +0 -126
  8. package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/config-schema.js +0 -79
  9. package/packages/config-eslint/node_modules/@eslint/eslintrc/conf/environments.js +0 -215
  10. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs +0 -1143
  11. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc-universal.cjs.map +0 -1
  12. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs +0 -4371
  13. package/packages/config-eslint/node_modules/@eslint/eslintrc/dist/eslintrc.cjs.map +0 -1
  14. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/cascading-config-array-factory.js +0 -532
  15. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-array.js +0 -510
  16. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/config-dependency.js +0 -124
  17. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/extracted-config.js +0 -145
  18. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/ignore-pattern.js +0 -238
  19. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/index.js +0 -19
  20. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array/override-tester.js +0 -225
  21. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/config-array-factory.js +0 -1155
  22. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/flat-compat.js +0 -318
  23. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index-universal.js +0 -29
  24. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/index.js +0 -58
  25. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/ajv.js +0 -191
  26. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-ops.js +0 -135
  27. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/config-validator.js +0 -370
  28. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js +0 -63
  29. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/naming.js +0 -96
  30. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js +0 -42
  31. package/packages/config-eslint/node_modules/@eslint/eslintrc/lib/shared/types.js +0 -149
  32. package/packages/config-eslint/node_modules/@eslint/eslintrc/package.json +0 -82
  33. package/packages/config-eslint/node_modules/@eslint/eslintrc/universal.js +0 -9
  34. package/packages/config-eslint/node_modules/ajv/.tonic_example.js +0 -20
  35. package/packages/config-eslint/node_modules/ajv/LICENSE +0 -22
  36. package/packages/config-eslint/node_modules/ajv/README.md +0 -1497
  37. package/packages/config-eslint/node_modules/ajv/dist/ajv.bundle.js +0 -7189
  38. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js +0 -3
  39. package/packages/config-eslint/node_modules/ajv/dist/ajv.min.js.map +0 -1
  40. package/packages/config-eslint/node_modules/ajv/lib/ajv.d.ts +0 -397
  41. package/packages/config-eslint/node_modules/ajv/lib/ajv.js +0 -506
  42. package/packages/config-eslint/node_modules/ajv/lib/cache.js +0 -26
  43. package/packages/config-eslint/node_modules/ajv/lib/compile/async.js +0 -90
  44. package/packages/config-eslint/node_modules/ajv/lib/compile/equal.js +0 -5
  45. package/packages/config-eslint/node_modules/ajv/lib/compile/error_classes.js +0 -34
  46. package/packages/config-eslint/node_modules/ajv/lib/compile/formats.js +0 -142
  47. package/packages/config-eslint/node_modules/ajv/lib/compile/index.js +0 -387
  48. package/packages/config-eslint/node_modules/ajv/lib/compile/resolve.js +0 -270
  49. package/packages/config-eslint/node_modules/ajv/lib/compile/rules.js +0 -66
  50. package/packages/config-eslint/node_modules/ajv/lib/compile/schema_obj.js +0 -9
  51. package/packages/config-eslint/node_modules/ajv/lib/compile/ucs2length.js +0 -20
  52. package/packages/config-eslint/node_modules/ajv/lib/compile/util.js +0 -239
  53. package/packages/config-eslint/node_modules/ajv/lib/data.js +0 -49
  54. package/packages/config-eslint/node_modules/ajv/lib/definition_schema.js +0 -37
  55. package/packages/config-eslint/node_modules/ajv/lib/dot/_limit.jst +0 -113
  56. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitItems.jst +0 -12
  57. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitLength.jst +0 -12
  58. package/packages/config-eslint/node_modules/ajv/lib/dot/_limitProperties.jst +0 -12
  59. package/packages/config-eslint/node_modules/ajv/lib/dot/allOf.jst +0 -32
  60. package/packages/config-eslint/node_modules/ajv/lib/dot/anyOf.jst +0 -46
  61. package/packages/config-eslint/node_modules/ajv/lib/dot/coerce.def +0 -51
  62. package/packages/config-eslint/node_modules/ajv/lib/dot/comment.jst +0 -9
  63. package/packages/config-eslint/node_modules/ajv/lib/dot/const.jst +0 -11
  64. package/packages/config-eslint/node_modules/ajv/lib/dot/contains.jst +0 -55
  65. package/packages/config-eslint/node_modules/ajv/lib/dot/custom.jst +0 -191
  66. package/packages/config-eslint/node_modules/ajv/lib/dot/defaults.def +0 -47
  67. package/packages/config-eslint/node_modules/ajv/lib/dot/definitions.def +0 -203
  68. package/packages/config-eslint/node_modules/ajv/lib/dot/dependencies.jst +0 -79
  69. package/packages/config-eslint/node_modules/ajv/lib/dot/enum.jst +0 -30
  70. package/packages/config-eslint/node_modules/ajv/lib/dot/errors.def +0 -194
  71. package/packages/config-eslint/node_modules/ajv/lib/dot/format.jst +0 -106
  72. package/packages/config-eslint/node_modules/ajv/lib/dot/if.jst +0 -73
  73. package/packages/config-eslint/node_modules/ajv/lib/dot/items.jst +0 -98
  74. package/packages/config-eslint/node_modules/ajv/lib/dot/missing.def +0 -39
  75. package/packages/config-eslint/node_modules/ajv/lib/dot/multipleOf.jst +0 -22
  76. package/packages/config-eslint/node_modules/ajv/lib/dot/not.jst +0 -43
  77. package/packages/config-eslint/node_modules/ajv/lib/dot/oneOf.jst +0 -54
  78. package/packages/config-eslint/node_modules/ajv/lib/dot/pattern.jst +0 -14
  79. package/packages/config-eslint/node_modules/ajv/lib/dot/properties.jst +0 -245
  80. package/packages/config-eslint/node_modules/ajv/lib/dot/propertyNames.jst +0 -52
  81. package/packages/config-eslint/node_modules/ajv/lib/dot/ref.jst +0 -85
  82. package/packages/config-eslint/node_modules/ajv/lib/dot/required.jst +0 -108
  83. package/packages/config-eslint/node_modules/ajv/lib/dot/uniqueItems.jst +0 -62
  84. package/packages/config-eslint/node_modules/ajv/lib/dot/validate.jst +0 -276
  85. package/packages/config-eslint/node_modules/ajv/lib/dotjs/README.md +0 -3
  86. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limit.js +0 -163
  87. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitItems.js +0 -80
  88. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitLength.js +0 -85
  89. package/packages/config-eslint/node_modules/ajv/lib/dotjs/_limitProperties.js +0 -80
  90. package/packages/config-eslint/node_modules/ajv/lib/dotjs/allOf.js +0 -42
  91. package/packages/config-eslint/node_modules/ajv/lib/dotjs/anyOf.js +0 -73
  92. package/packages/config-eslint/node_modules/ajv/lib/dotjs/comment.js +0 -14
  93. package/packages/config-eslint/node_modules/ajv/lib/dotjs/const.js +0 -56
  94. package/packages/config-eslint/node_modules/ajv/lib/dotjs/contains.js +0 -81
  95. package/packages/config-eslint/node_modules/ajv/lib/dotjs/custom.js +0 -228
  96. package/packages/config-eslint/node_modules/ajv/lib/dotjs/dependencies.js +0 -168
  97. package/packages/config-eslint/node_modules/ajv/lib/dotjs/enum.js +0 -66
  98. package/packages/config-eslint/node_modules/ajv/lib/dotjs/format.js +0 -150
  99. package/packages/config-eslint/node_modules/ajv/lib/dotjs/if.js +0 -103
  100. package/packages/config-eslint/node_modules/ajv/lib/dotjs/index.js +0 -33
  101. package/packages/config-eslint/node_modules/ajv/lib/dotjs/items.js +0 -140
  102. package/packages/config-eslint/node_modules/ajv/lib/dotjs/multipleOf.js +0 -80
  103. package/packages/config-eslint/node_modules/ajv/lib/dotjs/not.js +0 -84
  104. package/packages/config-eslint/node_modules/ajv/lib/dotjs/oneOf.js +0 -73
  105. package/packages/config-eslint/node_modules/ajv/lib/dotjs/pattern.js +0 -75
  106. package/packages/config-eslint/node_modules/ajv/lib/dotjs/properties.js +0 -335
  107. package/packages/config-eslint/node_modules/ajv/lib/dotjs/propertyNames.js +0 -81
  108. package/packages/config-eslint/node_modules/ajv/lib/dotjs/ref.js +0 -124
  109. package/packages/config-eslint/node_modules/ajv/lib/dotjs/required.js +0 -270
  110. package/packages/config-eslint/node_modules/ajv/lib/dotjs/uniqueItems.js +0 -86
  111. package/packages/config-eslint/node_modules/ajv/lib/dotjs/validate.js +0 -482
  112. package/packages/config-eslint/node_modules/ajv/lib/keyword.js +0 -146
  113. package/packages/config-eslint/node_modules/ajv/lib/refs/data.json +0 -17
  114. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-04.json +0 -149
  115. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-06.json +0 -154
  116. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-draft-07.json +0 -168
  117. package/packages/config-eslint/node_modules/ajv/lib/refs/json-schema-secure.json +0 -94
  118. package/packages/config-eslint/node_modules/ajv/package.json +0 -106
  119. package/packages/config-eslint/node_modules/ajv/scripts/.eslintrc.yml +0 -3
  120. package/packages/config-eslint/node_modules/ajv/scripts/bundle.js +0 -61
  121. package/packages/config-eslint/node_modules/ajv/scripts/compile-dots.js +0 -73
  122. package/packages/config-eslint/node_modules/ajv/scripts/info +0 -10
  123. package/packages/config-eslint/node_modules/ajv/scripts/prepare-tests +0 -12
  124. package/packages/config-eslint/node_modules/ajv/scripts/publish-built-version +0 -32
  125. package/packages/config-eslint/node_modules/ajv/scripts/travis-gh-pages +0 -23
  126. package/packages/config-eslint/node_modules/eslint-visitor-keys/LICENSE +0 -201
  127. package/packages/config-eslint/node_modules/eslint-visitor-keys/README.md +0 -105
  128. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.cjs +0 -384
  129. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/eslint-visitor-keys.d.cts +0 -27
  130. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/index.d.ts +0 -16
  131. package/packages/config-eslint/node_modules/eslint-visitor-keys/dist/visitor-keys.d.ts +0 -12
  132. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/index.js +0 -65
  133. package/packages/config-eslint/node_modules/eslint-visitor-keys/lib/visitor-keys.js +0 -315
  134. package/packages/config-eslint/node_modules/eslint-visitor-keys/package.json +0 -74
  135. package/packages/config-eslint/node_modules/espree/LICENSE +0 -25
  136. package/packages/config-eslint/node_modules/espree/README.md +0 -244
  137. package/packages/config-eslint/node_modules/espree/dist/espree.cjs +0 -883
  138. package/packages/config-eslint/node_modules/espree/espree.js +0 -177
  139. package/packages/config-eslint/node_modules/espree/lib/espree.js +0 -349
  140. package/packages/config-eslint/node_modules/espree/lib/features.js +0 -27
  141. package/packages/config-eslint/node_modules/espree/lib/options.js +0 -123
  142. package/packages/config-eslint/node_modules/espree/lib/token-translator.js +0 -263
  143. package/packages/config-eslint/node_modules/espree/lib/version.js +0 -3
  144. package/packages/config-eslint/node_modules/espree/package.json +0 -86
  145. package/packages/config-eslint/node_modules/globals/globals.json +0 -1998
  146. package/packages/config-eslint/node_modules/globals/index.d.ts +0 -2077
  147. package/packages/config-eslint/node_modules/globals/index.js +0 -2
  148. package/packages/config-eslint/node_modules/globals/license +0 -9
  149. package/packages/config-eslint/node_modules/globals/package.json +0 -58
  150. package/packages/config-eslint/node_modules/globals/readme.md +0 -44
  151. package/packages/config-eslint/node_modules/json-schema-traverse/.eslintrc.yml +0 -27
  152. package/packages/config-eslint/node_modules/json-schema-traverse/.travis.yml +0 -8
  153. package/packages/config-eslint/node_modules/json-schema-traverse/LICENSE +0 -21
  154. package/packages/config-eslint/node_modules/json-schema-traverse/README.md +0 -83
  155. package/packages/config-eslint/node_modules/json-schema-traverse/index.js +0 -89
  156. package/packages/config-eslint/node_modules/json-schema-traverse/package.json +0 -43
  157. package/packages/config-eslint/node_modules/json-schema-traverse/spec/.eslintrc.yml +0 -6
  158. package/packages/config-eslint/node_modules/json-schema-traverse/spec/fixtures/schema.js +0 -125
  159. package/packages/config-eslint/node_modules/json-schema-traverse/spec/index.spec.js +0 -171
@@ -1,1143 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var util = require('util');
6
- var path = require('path');
7
- var Ajv = require('ajv');
8
- var globals = require('globals');
9
-
10
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
11
-
12
- var util__default = /*#__PURE__*/_interopDefaultLegacy(util);
13
- var path__default = /*#__PURE__*/_interopDefaultLegacy(path);
14
- var Ajv__default = /*#__PURE__*/_interopDefaultLegacy(Ajv);
15
- var globals__default = /*#__PURE__*/_interopDefaultLegacy(globals);
16
-
17
- /**
18
- * @fileoverview Config file operations. This file must be usable in the browser,
19
- * so no Node-specific code can be here.
20
- * @author Nicholas C. Zakas
21
- */
22
-
23
- //------------------------------------------------------------------------------
24
- // Private
25
- //------------------------------------------------------------------------------
26
-
27
- const RULE_SEVERITY_STRINGS = ["off", "warn", "error"],
28
- RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => {
29
- map[value] = index;
30
- return map;
31
- }, {}),
32
- VALID_SEVERITIES = [0, 1, 2, "off", "warn", "error"];
33
-
34
- //------------------------------------------------------------------------------
35
- // Public Interface
36
- //------------------------------------------------------------------------------
37
-
38
- /**
39
- * Normalizes the severity value of a rule's configuration to a number
40
- * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally
41
- * received from the user. A valid config value is either 0, 1, 2, the string "off" (treated the same as 0),
42
- * the string "warn" (treated the same as 1), the string "error" (treated the same as 2), or an array
43
- * whose first element is one of the above values. Strings are matched case-insensitively.
44
- * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0.
45
- */
46
- function getRuleSeverity(ruleConfig) {
47
- const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;
48
-
49
- if (severityValue === 0 || severityValue === 1 || severityValue === 2) {
50
- return severityValue;
51
- }
52
-
53
- if (typeof severityValue === "string") {
54
- return RULE_SEVERITY[severityValue.toLowerCase()] || 0;
55
- }
56
-
57
- return 0;
58
- }
59
-
60
- /**
61
- * Converts old-style severity settings (0, 1, 2) into new-style
62
- * severity settings (off, warn, error) for all rules. Assumption is that severity
63
- * values have already been validated as correct.
64
- * @param {Object} config The config object to normalize.
65
- * @returns {void}
66
- */
67
- function normalizeToStrings(config) {
68
-
69
- if (config.rules) {
70
- Object.keys(config.rules).forEach(ruleId => {
71
- const ruleConfig = config.rules[ruleId];
72
-
73
- if (typeof ruleConfig === "number") {
74
- config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0];
75
- } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === "number") {
76
- ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0];
77
- }
78
- });
79
- }
80
- }
81
-
82
- /**
83
- * Determines if the severity for the given rule configuration represents an error.
84
- * @param {int|string|Array} ruleConfig The configuration for an individual rule.
85
- * @returns {boolean} True if the rule represents an error, false if not.
86
- */
87
- function isErrorSeverity(ruleConfig) {
88
- return getRuleSeverity(ruleConfig) === 2;
89
- }
90
-
91
- /**
92
- * Checks whether a given config has valid severity or not.
93
- * @param {number|string|Array} ruleConfig The configuration for an individual rule.
94
- * @returns {boolean} `true` if the configuration has valid severity.
95
- */
96
- function isValidSeverity(ruleConfig) {
97
- let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig;
98
-
99
- if (typeof severity === "string") {
100
- severity = severity.toLowerCase();
101
- }
102
- return VALID_SEVERITIES.indexOf(severity) !== -1;
103
- }
104
-
105
- /**
106
- * Checks whether every rule of a given config has valid severity or not.
107
- * @param {Object} config The configuration for rules.
108
- * @returns {boolean} `true` if the configuration has valid severity.
109
- */
110
- function isEverySeverityValid(config) {
111
- return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId]));
112
- }
113
-
114
- /**
115
- * Normalizes a value for a global in a config
116
- * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in
117
- * a global directive comment
118
- * @returns {("readable"|"writeable"|"off")} The value normalized as a string
119
- * @throws Error if global value is invalid
120
- */
121
- function normalizeConfigGlobal(configuredValue) {
122
- switch (configuredValue) {
123
- case "off":
124
- return "off";
125
-
126
- case true:
127
- case "true":
128
- case "writeable":
129
- case "writable":
130
- return "writable";
131
-
132
- case null:
133
- case false:
134
- case "false":
135
- case "readable":
136
- case "readonly":
137
- return "readonly";
138
-
139
- default:
140
- throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`);
141
- }
142
- }
143
-
144
- var ConfigOps = {
145
- __proto__: null,
146
- getRuleSeverity: getRuleSeverity,
147
- normalizeToStrings: normalizeToStrings,
148
- isErrorSeverity: isErrorSeverity,
149
- isValidSeverity: isValidSeverity,
150
- isEverySeverityValid: isEverySeverityValid,
151
- normalizeConfigGlobal: normalizeConfigGlobal
152
- };
153
-
154
- /**
155
- * @fileoverview Provide the function that emits deprecation warnings.
156
- * @author Toru Nagashima <http://github.com/mysticatea>
157
- */
158
-
159
- //------------------------------------------------------------------------------
160
- // Private
161
- //------------------------------------------------------------------------------
162
-
163
- // Defitions for deprecation warnings.
164
- const deprecationWarningMessages = {
165
- ESLINT_LEGACY_ECMAFEATURES:
166
- "The 'ecmaFeatures' config file property is deprecated and has no effect.",
167
- ESLINT_PERSONAL_CONFIG_LOAD:
168
- "'~/.eslintrc.*' config files have been deprecated. " +
169
- "Please use a config file per project or the '--config' option.",
170
- ESLINT_PERSONAL_CONFIG_SUPPRESS:
171
- "'~/.eslintrc.*' config files have been deprecated. " +
172
- "Please remove it or add 'root:true' to the config files in your " +
173
- "projects in order to avoid loading '~/.eslintrc.*' accidentally."
174
- };
175
-
176
- const sourceFileErrorCache = new Set();
177
-
178
- /**
179
- * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted
180
- * for each unique file path, but repeated invocations with the same file path have no effect.
181
- * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active.
182
- * @param {string} source The name of the configuration source to report the warning for.
183
- * @param {string} errorCode The warning message to show.
184
- * @returns {void}
185
- */
186
- function emitDeprecationWarning(source, errorCode) {
187
- const cacheKey = JSON.stringify({ source, errorCode });
188
-
189
- if (sourceFileErrorCache.has(cacheKey)) {
190
- return;
191
- }
192
- sourceFileErrorCache.add(cacheKey);
193
-
194
- const rel = path__default["default"].relative(process.cwd(), source);
195
- const message = deprecationWarningMessages[errorCode];
196
-
197
- process.emitWarning(
198
- `${message} (found in "${rel}")`,
199
- "DeprecationWarning",
200
- errorCode
201
- );
202
- }
203
-
204
- /**
205
- * @fileoverview The instance of Ajv validator.
206
- * @author Evgeny Poberezkin
207
- */
208
-
209
- //-----------------------------------------------------------------------------
210
- // Helpers
211
- //-----------------------------------------------------------------------------
212
-
213
- /*
214
- * Copied from ajv/lib/refs/json-schema-draft-04.json
215
- * The MIT License (MIT)
216
- * Copyright (c) 2015-2017 Evgeny Poberezkin
217
- */
218
- const metaSchema = {
219
- id: "http://json-schema.org/draft-04/schema#",
220
- $schema: "http://json-schema.org/draft-04/schema#",
221
- description: "Core schema meta-schema",
222
- definitions: {
223
- schemaArray: {
224
- type: "array",
225
- minItems: 1,
226
- items: { $ref: "#" }
227
- },
228
- positiveInteger: {
229
- type: "integer",
230
- minimum: 0
231
- },
232
- positiveIntegerDefault0: {
233
- allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }]
234
- },
235
- simpleTypes: {
236
- enum: ["array", "boolean", "integer", "null", "number", "object", "string"]
237
- },
238
- stringArray: {
239
- type: "array",
240
- items: { type: "string" },
241
- minItems: 1,
242
- uniqueItems: true
243
- }
244
- },
245
- type: "object",
246
- properties: {
247
- id: {
248
- type: "string"
249
- },
250
- $schema: {
251
- type: "string"
252
- },
253
- title: {
254
- type: "string"
255
- },
256
- description: {
257
- type: "string"
258
- },
259
- default: { },
260
- multipleOf: {
261
- type: "number",
262
- minimum: 0,
263
- exclusiveMinimum: true
264
- },
265
- maximum: {
266
- type: "number"
267
- },
268
- exclusiveMaximum: {
269
- type: "boolean",
270
- default: false
271
- },
272
- minimum: {
273
- type: "number"
274
- },
275
- exclusiveMinimum: {
276
- type: "boolean",
277
- default: false
278
- },
279
- maxLength: { $ref: "#/definitions/positiveInteger" },
280
- minLength: { $ref: "#/definitions/positiveIntegerDefault0" },
281
- pattern: {
282
- type: "string",
283
- format: "regex"
284
- },
285
- additionalItems: {
286
- anyOf: [
287
- { type: "boolean" },
288
- { $ref: "#" }
289
- ],
290
- default: { }
291
- },
292
- items: {
293
- anyOf: [
294
- { $ref: "#" },
295
- { $ref: "#/definitions/schemaArray" }
296
- ],
297
- default: { }
298
- },
299
- maxItems: { $ref: "#/definitions/positiveInteger" },
300
- minItems: { $ref: "#/definitions/positiveIntegerDefault0" },
301
- uniqueItems: {
302
- type: "boolean",
303
- default: false
304
- },
305
- maxProperties: { $ref: "#/definitions/positiveInteger" },
306
- minProperties: { $ref: "#/definitions/positiveIntegerDefault0" },
307
- required: { $ref: "#/definitions/stringArray" },
308
- additionalProperties: {
309
- anyOf: [
310
- { type: "boolean" },
311
- { $ref: "#" }
312
- ],
313
- default: { }
314
- },
315
- definitions: {
316
- type: "object",
317
- additionalProperties: { $ref: "#" },
318
- default: { }
319
- },
320
- properties: {
321
- type: "object",
322
- additionalProperties: { $ref: "#" },
323
- default: { }
324
- },
325
- patternProperties: {
326
- type: "object",
327
- additionalProperties: { $ref: "#" },
328
- default: { }
329
- },
330
- dependencies: {
331
- type: "object",
332
- additionalProperties: {
333
- anyOf: [
334
- { $ref: "#" },
335
- { $ref: "#/definitions/stringArray" }
336
- ]
337
- }
338
- },
339
- enum: {
340
- type: "array",
341
- minItems: 1,
342
- uniqueItems: true
343
- },
344
- type: {
345
- anyOf: [
346
- { $ref: "#/definitions/simpleTypes" },
347
- {
348
- type: "array",
349
- items: { $ref: "#/definitions/simpleTypes" },
350
- minItems: 1,
351
- uniqueItems: true
352
- }
353
- ]
354
- },
355
- format: { type: "string" },
356
- allOf: { $ref: "#/definitions/schemaArray" },
357
- anyOf: { $ref: "#/definitions/schemaArray" },
358
- oneOf: { $ref: "#/definitions/schemaArray" },
359
- not: { $ref: "#" }
360
- },
361
- dependencies: {
362
- exclusiveMaximum: ["maximum"],
363
- exclusiveMinimum: ["minimum"]
364
- },
365
- default: { }
366
- };
367
-
368
- //------------------------------------------------------------------------------
369
- // Public Interface
370
- //------------------------------------------------------------------------------
371
-
372
- var ajvOrig = (additionalOptions = {}) => {
373
- const ajv = new Ajv__default["default"]({
374
- meta: false,
375
- useDefaults: true,
376
- validateSchema: false,
377
- missingRefs: "ignore",
378
- verbose: true,
379
- schemaId: "auto",
380
- ...additionalOptions
381
- });
382
-
383
- ajv.addMetaSchema(metaSchema);
384
- // eslint-disable-next-line no-underscore-dangle
385
- ajv._opts.defaultMeta = metaSchema.id;
386
-
387
- return ajv;
388
- };
389
-
390
- /**
391
- * @fileoverview Defines a schema for configs.
392
- * @author Sylvan Mably
393
- */
394
-
395
- const baseConfigProperties = {
396
- $schema: { type: "string" },
397
- env: { type: "object" },
398
- extends: { $ref: "#/definitions/stringOrStrings" },
399
- globals: { type: "object" },
400
- overrides: {
401
- type: "array",
402
- items: { $ref: "#/definitions/overrideConfig" },
403
- additionalItems: false
404
- },
405
- parser: { type: ["string", "null"] },
406
- parserOptions: { type: "object" },
407
- plugins: { type: "array" },
408
- processor: { type: "string" },
409
- rules: { type: "object" },
410
- settings: { type: "object" },
411
- noInlineConfig: { type: "boolean" },
412
- reportUnusedDisableDirectives: { type: "boolean" },
413
-
414
- ecmaFeatures: { type: "object" } // deprecated; logs a warning when used
415
- };
416
-
417
- const configSchema = {
418
- definitions: {
419
- stringOrStrings: {
420
- oneOf: [
421
- { type: "string" },
422
- {
423
- type: "array",
424
- items: { type: "string" },
425
- additionalItems: false
426
- }
427
- ]
428
- },
429
- stringOrStringsRequired: {
430
- oneOf: [
431
- { type: "string" },
432
- {
433
- type: "array",
434
- items: { type: "string" },
435
- additionalItems: false,
436
- minItems: 1
437
- }
438
- ]
439
- },
440
-
441
- // Config at top-level.
442
- objectConfig: {
443
- type: "object",
444
- properties: {
445
- root: { type: "boolean" },
446
- ignorePatterns: { $ref: "#/definitions/stringOrStrings" },
447
- ...baseConfigProperties
448
- },
449
- additionalProperties: false
450
- },
451
-
452
- // Config in `overrides`.
453
- overrideConfig: {
454
- type: "object",
455
- properties: {
456
- excludedFiles: { $ref: "#/definitions/stringOrStrings" },
457
- files: { $ref: "#/definitions/stringOrStringsRequired" },
458
- ...baseConfigProperties
459
- },
460
- required: ["files"],
461
- additionalProperties: false
462
- }
463
- },
464
-
465
- $ref: "#/definitions/objectConfig"
466
- };
467
-
468
- /**
469
- * @fileoverview Defines environment settings and globals.
470
- * @author Elan Shanker
471
- */
472
-
473
- //------------------------------------------------------------------------------
474
- // Helpers
475
- //------------------------------------------------------------------------------
476
-
477
- /**
478
- * Get the object that has difference.
479
- * @param {Record<string,boolean>} current The newer object.
480
- * @param {Record<string,boolean>} prev The older object.
481
- * @returns {Record<string,boolean>} The difference object.
482
- */
483
- function getDiff(current, prev) {
484
- const retv = {};
485
-
486
- for (const [key, value] of Object.entries(current)) {
487
- if (!Object.hasOwnProperty.call(prev, key)) {
488
- retv[key] = value;
489
- }
490
- }
491
-
492
- return retv;
493
- }
494
-
495
- const newGlobals2015 = getDiff(globals__default["default"].es2015, globals__default["default"].es5); // 19 variables such as Promise, Map, ...
496
- const newGlobals2017 = {
497
- Atomics: false,
498
- SharedArrayBuffer: false
499
- };
500
- const newGlobals2020 = {
501
- BigInt: false,
502
- BigInt64Array: false,
503
- BigUint64Array: false,
504
- globalThis: false
505
- };
506
-
507
- const newGlobals2021 = {
508
- AggregateError: false,
509
- FinalizationRegistry: false,
510
- WeakRef: false
511
- };
512
-
513
- //------------------------------------------------------------------------------
514
- // Public Interface
515
- //------------------------------------------------------------------------------
516
-
517
- /** @type {Map<string, import("../lib/shared/types").Environment>} */
518
- var environments = new Map(Object.entries({
519
-
520
- // Language
521
- builtin: {
522
- globals: globals__default["default"].es5
523
- },
524
- es6: {
525
- globals: newGlobals2015,
526
- parserOptions: {
527
- ecmaVersion: 6
528
- }
529
- },
530
- es2015: {
531
- globals: newGlobals2015,
532
- parserOptions: {
533
- ecmaVersion: 6
534
- }
535
- },
536
- es2016: {
537
- globals: newGlobals2015,
538
- parserOptions: {
539
- ecmaVersion: 7
540
- }
541
- },
542
- es2017: {
543
- globals: { ...newGlobals2015, ...newGlobals2017 },
544
- parserOptions: {
545
- ecmaVersion: 8
546
- }
547
- },
548
- es2018: {
549
- globals: { ...newGlobals2015, ...newGlobals2017 },
550
- parserOptions: {
551
- ecmaVersion: 9
552
- }
553
- },
554
- es2019: {
555
- globals: { ...newGlobals2015, ...newGlobals2017 },
556
- parserOptions: {
557
- ecmaVersion: 10
558
- }
559
- },
560
- es2020: {
561
- globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020 },
562
- parserOptions: {
563
- ecmaVersion: 11
564
- }
565
- },
566
- es2021: {
567
- globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
568
- parserOptions: {
569
- ecmaVersion: 12
570
- }
571
- },
572
- es2022: {
573
- globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
574
- parserOptions: {
575
- ecmaVersion: 13
576
- }
577
- },
578
- es2023: {
579
- globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
580
- parserOptions: {
581
- ecmaVersion: 14
582
- }
583
- },
584
- es2024: {
585
- globals: { ...newGlobals2015, ...newGlobals2017, ...newGlobals2020, ...newGlobals2021 },
586
- parserOptions: {
587
- ecmaVersion: 15
588
- }
589
- },
590
-
591
- // Platforms
592
- browser: {
593
- globals: globals__default["default"].browser
594
- },
595
- node: {
596
- globals: globals__default["default"].node,
597
- parserOptions: {
598
- ecmaFeatures: {
599
- globalReturn: true
600
- }
601
- }
602
- },
603
- "shared-node-browser": {
604
- globals: globals__default["default"]["shared-node-browser"]
605
- },
606
- worker: {
607
- globals: globals__default["default"].worker
608
- },
609
- serviceworker: {
610
- globals: globals__default["default"].serviceworker
611
- },
612
-
613
- // Frameworks
614
- commonjs: {
615
- globals: globals__default["default"].commonjs,
616
- parserOptions: {
617
- ecmaFeatures: {
618
- globalReturn: true
619
- }
620
- }
621
- },
622
- amd: {
623
- globals: globals__default["default"].amd
624
- },
625
- mocha: {
626
- globals: globals__default["default"].mocha
627
- },
628
- jasmine: {
629
- globals: globals__default["default"].jasmine
630
- },
631
- jest: {
632
- globals: globals__default["default"].jest
633
- },
634
- phantomjs: {
635
- globals: globals__default["default"].phantomjs
636
- },
637
- jquery: {
638
- globals: globals__default["default"].jquery
639
- },
640
- qunit: {
641
- globals: globals__default["default"].qunit
642
- },
643
- prototypejs: {
644
- globals: globals__default["default"].prototypejs
645
- },
646
- shelljs: {
647
- globals: globals__default["default"].shelljs
648
- },
649
- meteor: {
650
- globals: globals__default["default"].meteor
651
- },
652
- mongo: {
653
- globals: globals__default["default"].mongo
654
- },
655
- protractor: {
656
- globals: globals__default["default"].protractor
657
- },
658
- applescript: {
659
- globals: globals__default["default"].applescript
660
- },
661
- nashorn: {
662
- globals: globals__default["default"].nashorn
663
- },
664
- atomtest: {
665
- globals: globals__default["default"].atomtest
666
- },
667
- embertest: {
668
- globals: globals__default["default"].embertest
669
- },
670
- webextensions: {
671
- globals: globals__default["default"].webextensions
672
- },
673
- greasemonkey: {
674
- globals: globals__default["default"].greasemonkey
675
- }
676
- }));
677
-
678
- /**
679
- * @fileoverview Validates configs.
680
- * @author Brandon Mills
681
- */
682
-
683
- const ajv = ajvOrig();
684
-
685
- const ruleValidators = new WeakMap();
686
- const noop = Function.prototype;
687
-
688
- //------------------------------------------------------------------------------
689
- // Private
690
- //------------------------------------------------------------------------------
691
- let validateSchema;
692
- const severityMap = {
693
- error: 2,
694
- warn: 1,
695
- off: 0
696
- };
697
-
698
- const validated = new WeakSet();
699
-
700
- // JSON schema that disallows passing any options
701
- const noOptionsSchema = Object.freeze({
702
- type: "array",
703
- minItems: 0,
704
- maxItems: 0
705
- });
706
-
707
- //-----------------------------------------------------------------------------
708
- // Exports
709
- //-----------------------------------------------------------------------------
710
-
711
- class ConfigValidator {
712
- constructor({ builtInRules = new Map() } = {}) {
713
- this.builtInRules = builtInRules;
714
- }
715
-
716
- /**
717
- * Gets a complete options schema for a rule.
718
- * @param {Rule} rule A rule object
719
- * @throws {TypeError} If `meta.schema` is specified but is not an array, object or `false`.
720
- * @returns {Object|null} JSON Schema for the rule's options.
721
- * `null` if rule wasn't passed or its `meta.schema` is `false`.
722
- */
723
- getRuleOptionsSchema(rule) {
724
- if (!rule) {
725
- return null;
726
- }
727
-
728
- if (!rule.meta) {
729
- return { ...noOptionsSchema }; // default if `meta.schema` is not specified
730
- }
731
-
732
- const schema = rule.meta.schema;
733
-
734
- if (typeof schema === "undefined") {
735
- return { ...noOptionsSchema }; // default if `meta.schema` is not specified
736
- }
737
-
738
- // `schema:false` is an allowed explicit opt-out of options validation for the rule
739
- if (schema === false) {
740
- return null;
741
- }
742
-
743
- if (typeof schema !== "object" || schema === null) {
744
- throw new TypeError("Rule's `meta.schema` must be an array or object");
745
- }
746
-
747
- // ESLint-specific array form needs to be converted into a valid JSON Schema definition
748
- if (Array.isArray(schema)) {
749
- if (schema.length) {
750
- return {
751
- type: "array",
752
- items: schema,
753
- minItems: 0,
754
- maxItems: schema.length
755
- };
756
- }
757
-
758
- // `schema:[]` is an explicit way to specify that the rule does not accept any options
759
- return { ...noOptionsSchema };
760
- }
761
-
762
- // `schema:<object>` is assumed to be a valid JSON Schema definition
763
- return schema;
764
- }
765
-
766
- /**
767
- * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid.
768
- * @param {options} options The given options for the rule.
769
- * @returns {number|string} The rule's severity value
770
- */
771
- validateRuleSeverity(options) {
772
- const severity = Array.isArray(options) ? options[0] : options;
773
- const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity;
774
-
775
- if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) {
776
- return normSeverity;
777
- }
778
-
779
- throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util__default["default"].inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`);
780
-
781
- }
782
-
783
- /**
784
- * Validates the non-severity options passed to a rule, based on its schema.
785
- * @param {{create: Function}} rule The rule to validate
786
- * @param {Array} localOptions The options for the rule, excluding severity
787
- * @returns {void}
788
- */
789
- validateRuleSchema(rule, localOptions) {
790
- if (!ruleValidators.has(rule)) {
791
- try {
792
- const schema = this.getRuleOptionsSchema(rule);
793
-
794
- if (schema) {
795
- ruleValidators.set(rule, ajv.compile(schema));
796
- }
797
- } catch (err) {
798
- const errorWithCode = new Error(err.message, { cause: err });
799
-
800
- errorWithCode.code = "ESLINT_INVALID_RULE_OPTIONS_SCHEMA";
801
-
802
- throw errorWithCode;
803
- }
804
- }
805
-
806
- const validateRule = ruleValidators.get(rule);
807
-
808
- if (validateRule) {
809
- validateRule(localOptions);
810
- if (validateRule.errors) {
811
- throw new Error(validateRule.errors.map(
812
- error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n`
813
- ).join(""));
814
- }
815
- }
816
- }
817
-
818
- /**
819
- * Validates a rule's options against its schema.
820
- * @param {{create: Function}|null} rule The rule that the config is being validated for
821
- * @param {string} ruleId The rule's unique name.
822
- * @param {Array|number} options The given options for the rule.
823
- * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined,
824
- * no source is prepended to the message.
825
- * @returns {void}
826
- */
827
- validateRuleOptions(rule, ruleId, options, source = null) {
828
- try {
829
- const severity = this.validateRuleSeverity(options);
830
-
831
- if (severity !== 0) {
832
- this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []);
833
- }
834
- } catch (err) {
835
- let enhancedMessage = err.code === "ESLINT_INVALID_RULE_OPTIONS_SCHEMA"
836
- ? `Error while processing options validation schema of rule '${ruleId}': ${err.message}`
837
- : `Configuration for rule "${ruleId}" is invalid:\n${err.message}`;
838
-
839
- if (typeof source === "string") {
840
- enhancedMessage = `${source}:\n\t${enhancedMessage}`;
841
- }
842
-
843
- const enhancedError = new Error(enhancedMessage, { cause: err });
844
-
845
- if (err.code) {
846
- enhancedError.code = err.code;
847
- }
848
-
849
- throw enhancedError;
850
- }
851
- }
852
-
853
- /**
854
- * Validates an environment object
855
- * @param {Object} environment The environment config object to validate.
856
- * @param {string} source The name of the configuration source to report in any errors.
857
- * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments.
858
- * @returns {void}
859
- */
860
- validateEnvironment(
861
- environment,
862
- source,
863
- getAdditionalEnv = noop
864
- ) {
865
-
866
- // not having an environment is ok
867
- if (!environment) {
868
- return;
869
- }
870
-
871
- Object.keys(environment).forEach(id => {
872
- const env = getAdditionalEnv(id) || environments.get(id) || null;
873
-
874
- if (!env) {
875
- const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`;
876
-
877
- throw new Error(message);
878
- }
879
- });
880
- }
881
-
882
- /**
883
- * Validates a rules config object
884
- * @param {Object} rulesConfig The rules config object to validate.
885
- * @param {string} source The name of the configuration source to report in any errors.
886
- * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules
887
- * @returns {void}
888
- */
889
- validateRules(
890
- rulesConfig,
891
- source,
892
- getAdditionalRule = noop
893
- ) {
894
- if (!rulesConfig) {
895
- return;
896
- }
897
-
898
- Object.keys(rulesConfig).forEach(id => {
899
- const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null;
900
-
901
- this.validateRuleOptions(rule, id, rulesConfig[id], source);
902
- });
903
- }
904
-
905
- /**
906
- * Validates a `globals` section of a config file
907
- * @param {Object} globalsConfig The `globals` section
908
- * @param {string|null} source The name of the configuration source to report in the event of an error.
909
- * @returns {void}
910
- */
911
- validateGlobals(globalsConfig, source = null) {
912
- if (!globalsConfig) {
913
- return;
914
- }
915
-
916
- Object.entries(globalsConfig)
917
- .forEach(([configuredGlobal, configuredValue]) => {
918
- try {
919
- normalizeConfigGlobal(configuredValue);
920
- } catch (err) {
921
- throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`);
922
- }
923
- });
924
- }
925
-
926
- /**
927
- * Validate `processor` configuration.
928
- * @param {string|undefined} processorName The processor name.
929
- * @param {string} source The name of config file.
930
- * @param {function(id:string): Processor} getProcessor The getter of defined processors.
931
- * @returns {void}
932
- */
933
- validateProcessor(processorName, source, getProcessor) {
934
- if (processorName && !getProcessor(processorName)) {
935
- throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`);
936
- }
937
- }
938
-
939
- /**
940
- * Formats an array of schema validation errors.
941
- * @param {Array} errors An array of error messages to format.
942
- * @returns {string} Formatted error message
943
- */
944
- formatErrors(errors) {
945
- return errors.map(error => {
946
- if (error.keyword === "additionalProperties") {
947
- const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty;
948
-
949
- return `Unexpected top-level property "${formattedPropertyPath}"`;
950
- }
951
- if (error.keyword === "type") {
952
- const formattedField = error.dataPath.slice(1);
953
- const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema;
954
- const formattedValue = JSON.stringify(error.data);
955
-
956
- return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`;
957
- }
958
-
959
- const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath;
960
-
961
- return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`;
962
- }).map(message => `\t- ${message}.\n`).join("");
963
- }
964
-
965
- /**
966
- * Validates the top level properties of the config object.
967
- * @param {Object} config The config object to validate.
968
- * @param {string} source The name of the configuration source to report in any errors.
969
- * @returns {void}
970
- */
971
- validateConfigSchema(config, source = null) {
972
- validateSchema = validateSchema || ajv.compile(configSchema);
973
-
974
- if (!validateSchema(config)) {
975
- throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`);
976
- }
977
-
978
- if (Object.hasOwnProperty.call(config, "ecmaFeatures")) {
979
- emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES");
980
- }
981
- }
982
-
983
- /**
984
- * Validates an entire config object.
985
- * @param {Object} config The config object to validate.
986
- * @param {string} source The name of the configuration source to report in any errors.
987
- * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules.
988
- * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs.
989
- * @returns {void}
990
- */
991
- validate(config, source, getAdditionalRule, getAdditionalEnv) {
992
- this.validateConfigSchema(config, source);
993
- this.validateRules(config.rules, source, getAdditionalRule);
994
- this.validateEnvironment(config.env, source, getAdditionalEnv);
995
- this.validateGlobals(config.globals, source);
996
-
997
- for (const override of config.overrides || []) {
998
- this.validateRules(override.rules, source, getAdditionalRule);
999
- this.validateEnvironment(override.env, source, getAdditionalEnv);
1000
- this.validateGlobals(config.globals, source);
1001
- }
1002
- }
1003
-
1004
- /**
1005
- * Validate config array object.
1006
- * @param {ConfigArray} configArray The config array to validate.
1007
- * @returns {void}
1008
- */
1009
- validateConfigArray(configArray) {
1010
- const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments);
1011
- const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors);
1012
- const getPluginRule = Map.prototype.get.bind(configArray.pluginRules);
1013
-
1014
- // Validate.
1015
- for (const element of configArray) {
1016
- if (validated.has(element)) {
1017
- continue;
1018
- }
1019
- validated.add(element);
1020
-
1021
- this.validateEnvironment(element.env, element.name, getPluginEnv);
1022
- this.validateGlobals(element.globals, element.name);
1023
- this.validateProcessor(element.processor, element.name, getPluginProcessor);
1024
- this.validateRules(element.rules, element.name, getPluginRule);
1025
- }
1026
- }
1027
-
1028
- }
1029
-
1030
- /**
1031
- * @fileoverview Common helpers for naming of plugins, formatters and configs
1032
- */
1033
-
1034
- const NAMESPACE_REGEX = /^@.*\//iu;
1035
-
1036
- /**
1037
- * Brings package name to correct format based on prefix
1038
- * @param {string} name The name of the package.
1039
- * @param {string} prefix Can be either "eslint-plugin", "eslint-config" or "eslint-formatter"
1040
- * @returns {string} Normalized name of the package
1041
- * @private
1042
- */
1043
- function normalizePackageName(name, prefix) {
1044
- let normalizedName = name;
1045
-
1046
- /**
1047
- * On Windows, name can come in with Windows slashes instead of Unix slashes.
1048
- * Normalize to Unix first to avoid errors later on.
1049
- * https://github.com/eslint/eslint/issues/5644
1050
- */
1051
- if (normalizedName.includes("\\")) {
1052
- normalizedName = normalizedName.replace(/\\/gu, "/");
1053
- }
1054
-
1055
- if (normalizedName.charAt(0) === "@") {
1056
-
1057
- /**
1058
- * it's a scoped package
1059
- * package name is the prefix, or just a username
1060
- */
1061
- const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"),
1062
- scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u");
1063
-
1064
- if (scopedPackageShortcutRegex.test(normalizedName)) {
1065
- normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`);
1066
- } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) {
1067
-
1068
- /**
1069
- * for scoped packages, insert the prefix after the first / unless
1070
- * the path is already @scope/eslint or @scope/eslint-xxx-yyy
1071
- */
1072
- normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`);
1073
- }
1074
- } else if (!normalizedName.startsWith(`${prefix}-`)) {
1075
- normalizedName = `${prefix}-${normalizedName}`;
1076
- }
1077
-
1078
- return normalizedName;
1079
- }
1080
-
1081
- /**
1082
- * Removes the prefix from a fullname.
1083
- * @param {string} fullname The term which may have the prefix.
1084
- * @param {string} prefix The prefix to remove.
1085
- * @returns {string} The term without prefix.
1086
- */
1087
- function getShorthandName(fullname, prefix) {
1088
- if (fullname[0] === "@") {
1089
- let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname);
1090
-
1091
- if (matchResult) {
1092
- return matchResult[1];
1093
- }
1094
-
1095
- matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname);
1096
- if (matchResult) {
1097
- return `${matchResult[1]}/${matchResult[2]}`;
1098
- }
1099
- } else if (fullname.startsWith(`${prefix}-`)) {
1100
- return fullname.slice(prefix.length + 1);
1101
- }
1102
-
1103
- return fullname;
1104
- }
1105
-
1106
- /**
1107
- * Gets the scope (namespace) of a term.
1108
- * @param {string} term The term which may have the namespace.
1109
- * @returns {string} The namespace of the term if it has one.
1110
- */
1111
- function getNamespaceFromTerm(term) {
1112
- const match = term.match(NAMESPACE_REGEX);
1113
-
1114
- return match ? match[0] : "";
1115
- }
1116
-
1117
- var naming = {
1118
- __proto__: null,
1119
- normalizePackageName: normalizePackageName,
1120
- getShorthandName: getShorthandName,
1121
- getNamespaceFromTerm: getNamespaceFromTerm
1122
- };
1123
-
1124
- /**
1125
- * @fileoverview Package exports for @eslint/eslintrc
1126
- * @author Nicholas C. Zakas
1127
- */
1128
-
1129
- //-----------------------------------------------------------------------------
1130
- // Exports
1131
- //-----------------------------------------------------------------------------
1132
-
1133
- const Legacy = {
1134
- environments,
1135
-
1136
- // shared
1137
- ConfigOps,
1138
- ConfigValidator,
1139
- naming
1140
- };
1141
-
1142
- exports.Legacy = Legacy;
1143
- //# sourceMappingURL=eslintrc-universal.cjs.map