update socials section
This commit is contained in:
		
							
								
								
									
										191
									
								
								node_modules/@eslint/eslintrc/lib/shared/ajv.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										191
									
								
								node_modules/@eslint/eslintrc/lib/shared/ajv.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,191 @@ | ||||
| /** | ||||
|  * @fileoverview The instance of Ajv validator. | ||||
|  * @author Evgeny Poberezkin | ||||
|  */ | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Requirements | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| import Ajv from "ajv"; | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Helpers | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| /* | ||||
|  * Copied from ajv/lib/refs/json-schema-draft-04.json | ||||
|  * The MIT License (MIT) | ||||
|  * Copyright (c) 2015-2017 Evgeny Poberezkin | ||||
|  */ | ||||
| const metaSchema = { | ||||
|     id: "http://json-schema.org/draft-04/schema#", | ||||
|     $schema: "http://json-schema.org/draft-04/schema#", | ||||
|     description: "Core schema meta-schema", | ||||
|     definitions: { | ||||
|         schemaArray: { | ||||
|             type: "array", | ||||
|             minItems: 1, | ||||
|             items: { $ref: "#" } | ||||
|         }, | ||||
|         positiveInteger: { | ||||
|             type: "integer", | ||||
|             minimum: 0 | ||||
|         }, | ||||
|         positiveIntegerDefault0: { | ||||
|             allOf: [{ $ref: "#/definitions/positiveInteger" }, { default: 0 }] | ||||
|         }, | ||||
|         simpleTypes: { | ||||
|             enum: ["array", "boolean", "integer", "null", "number", "object", "string"] | ||||
|         }, | ||||
|         stringArray: { | ||||
|             type: "array", | ||||
|             items: { type: "string" }, | ||||
|             minItems: 1, | ||||
|             uniqueItems: true | ||||
|         } | ||||
|     }, | ||||
|     type: "object", | ||||
|     properties: { | ||||
|         id: { | ||||
|             type: "string" | ||||
|         }, | ||||
|         $schema: { | ||||
|             type: "string" | ||||
|         }, | ||||
|         title: { | ||||
|             type: "string" | ||||
|         }, | ||||
|         description: { | ||||
|             type: "string" | ||||
|         }, | ||||
|         default: { }, | ||||
|         multipleOf: { | ||||
|             type: "number", | ||||
|             minimum: 0, | ||||
|             exclusiveMinimum: true | ||||
|         }, | ||||
|         maximum: { | ||||
|             type: "number" | ||||
|         }, | ||||
|         exclusiveMaximum: { | ||||
|             type: "boolean", | ||||
|             default: false | ||||
|         }, | ||||
|         minimum: { | ||||
|             type: "number" | ||||
|         }, | ||||
|         exclusiveMinimum: { | ||||
|             type: "boolean", | ||||
|             default: false | ||||
|         }, | ||||
|         maxLength: { $ref: "#/definitions/positiveInteger" }, | ||||
|         minLength: { $ref: "#/definitions/positiveIntegerDefault0" }, | ||||
|         pattern: { | ||||
|             type: "string", | ||||
|             format: "regex" | ||||
|         }, | ||||
|         additionalItems: { | ||||
|             anyOf: [ | ||||
|                 { type: "boolean" }, | ||||
|                 { $ref: "#" } | ||||
|             ], | ||||
|             default: { } | ||||
|         }, | ||||
|         items: { | ||||
|             anyOf: [ | ||||
|                 { $ref: "#" }, | ||||
|                 { $ref: "#/definitions/schemaArray" } | ||||
|             ], | ||||
|             default: { } | ||||
|         }, | ||||
|         maxItems: { $ref: "#/definitions/positiveInteger" }, | ||||
|         minItems: { $ref: "#/definitions/positiveIntegerDefault0" }, | ||||
|         uniqueItems: { | ||||
|             type: "boolean", | ||||
|             default: false | ||||
|         }, | ||||
|         maxProperties: { $ref: "#/definitions/positiveInteger" }, | ||||
|         minProperties: { $ref: "#/definitions/positiveIntegerDefault0" }, | ||||
|         required: { $ref: "#/definitions/stringArray" }, | ||||
|         additionalProperties: { | ||||
|             anyOf: [ | ||||
|                 { type: "boolean" }, | ||||
|                 { $ref: "#" } | ||||
|             ], | ||||
|             default: { } | ||||
|         }, | ||||
|         definitions: { | ||||
|             type: "object", | ||||
|             additionalProperties: { $ref: "#" }, | ||||
|             default: { } | ||||
|         }, | ||||
|         properties: { | ||||
|             type: "object", | ||||
|             additionalProperties: { $ref: "#" }, | ||||
|             default: { } | ||||
|         }, | ||||
|         patternProperties: { | ||||
|             type: "object", | ||||
|             additionalProperties: { $ref: "#" }, | ||||
|             default: { } | ||||
|         }, | ||||
|         dependencies: { | ||||
|             type: "object", | ||||
|             additionalProperties: { | ||||
|                 anyOf: [ | ||||
|                     { $ref: "#" }, | ||||
|                     { $ref: "#/definitions/stringArray" } | ||||
|                 ] | ||||
|             } | ||||
|         }, | ||||
|         enum: { | ||||
|             type: "array", | ||||
|             minItems: 1, | ||||
|             uniqueItems: true | ||||
|         }, | ||||
|         type: { | ||||
|             anyOf: [ | ||||
|                 { $ref: "#/definitions/simpleTypes" }, | ||||
|                 { | ||||
|                     type: "array", | ||||
|                     items: { $ref: "#/definitions/simpleTypes" }, | ||||
|                     minItems: 1, | ||||
|                     uniqueItems: true | ||||
|                 } | ||||
|             ] | ||||
|         }, | ||||
|         format: { type: "string" }, | ||||
|         allOf: { $ref: "#/definitions/schemaArray" }, | ||||
|         anyOf: { $ref: "#/definitions/schemaArray" }, | ||||
|         oneOf: { $ref: "#/definitions/schemaArray" }, | ||||
|         not: { $ref: "#" } | ||||
|     }, | ||||
|     dependencies: { | ||||
|         exclusiveMaximum: ["maximum"], | ||||
|         exclusiveMinimum: ["minimum"] | ||||
|     }, | ||||
|     default: { } | ||||
| }; | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Public Interface | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| export default (additionalOptions = {}) => { | ||||
|     const ajv = new Ajv({ | ||||
|         meta: false, | ||||
|         useDefaults: true, | ||||
|         validateSchema: false, | ||||
|         missingRefs: "ignore", | ||||
|         verbose: true, | ||||
|         schemaId: "auto", | ||||
|         ...additionalOptions | ||||
|     }); | ||||
|  | ||||
|     ajv.addMetaSchema(metaSchema); | ||||
|     // eslint-disable-next-line no-underscore-dangle | ||||
|     ajv._opts.defaultMeta = metaSchema.id; | ||||
|  | ||||
|     return ajv; | ||||
| }; | ||||
							
								
								
									
										135
									
								
								node_modules/@eslint/eslintrc/lib/shared/config-ops.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								node_modules/@eslint/eslintrc/lib/shared/config-ops.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,135 @@ | ||||
| /** | ||||
|  * @fileoverview Config file operations. This file must be usable in the browser, | ||||
|  * so no Node-specific code can be here. | ||||
|  * @author Nicholas C. Zakas | ||||
|  */ | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Private | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| const RULE_SEVERITY_STRINGS = ["off", "warn", "error"], | ||||
|     RULE_SEVERITY = RULE_SEVERITY_STRINGS.reduce((map, value, index) => { | ||||
|         map[value] = index; | ||||
|         return map; | ||||
|     }, {}), | ||||
|     VALID_SEVERITIES = [0, 1, 2, "off", "warn", "error"]; | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Public Interface | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| /** | ||||
|  * Normalizes the severity value of a rule's configuration to a number | ||||
|  * @param {(number|string|[number, ...*]|[string, ...*])} ruleConfig A rule's configuration value, generally | ||||
|  * received from the user. A valid config value is either 0, 1, 2, the string "off" (treated the same as 0), | ||||
|  * the string "warn" (treated the same as 1), the string "error" (treated the same as 2), or an array | ||||
|  * whose first element is one of the above values. Strings are matched case-insensitively. | ||||
|  * @returns {(0|1|2)} The numeric severity value if the config value was valid, otherwise 0. | ||||
|  */ | ||||
| function getRuleSeverity(ruleConfig) { | ||||
|     const severityValue = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; | ||||
|  | ||||
|     if (severityValue === 0 || severityValue === 1 || severityValue === 2) { | ||||
|         return severityValue; | ||||
|     } | ||||
|  | ||||
|     if (typeof severityValue === "string") { | ||||
|         return RULE_SEVERITY[severityValue.toLowerCase()] || 0; | ||||
|     } | ||||
|  | ||||
|     return 0; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Converts old-style severity settings (0, 1, 2) into new-style | ||||
|  * severity settings (off, warn, error) for all rules. Assumption is that severity | ||||
|  * values have already been validated as correct. | ||||
|  * @param {Object} config The config object to normalize. | ||||
|  * @returns {void} | ||||
|  */ | ||||
| function normalizeToStrings(config) { | ||||
|  | ||||
|     if (config.rules) { | ||||
|         Object.keys(config.rules).forEach(ruleId => { | ||||
|             const ruleConfig = config.rules[ruleId]; | ||||
|  | ||||
|             if (typeof ruleConfig === "number") { | ||||
|                 config.rules[ruleId] = RULE_SEVERITY_STRINGS[ruleConfig] || RULE_SEVERITY_STRINGS[0]; | ||||
|             } else if (Array.isArray(ruleConfig) && typeof ruleConfig[0] === "number") { | ||||
|                 ruleConfig[0] = RULE_SEVERITY_STRINGS[ruleConfig[0]] || RULE_SEVERITY_STRINGS[0]; | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Determines if the severity for the given rule configuration represents an error. | ||||
|  * @param {int|string|Array} ruleConfig The configuration for an individual rule. | ||||
|  * @returns {boolean} True if the rule represents an error, false if not. | ||||
|  */ | ||||
| function isErrorSeverity(ruleConfig) { | ||||
|     return getRuleSeverity(ruleConfig) === 2; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Checks whether a given config has valid severity or not. | ||||
|  * @param {number|string|Array} ruleConfig The configuration for an individual rule. | ||||
|  * @returns {boolean} `true` if the configuration has valid severity. | ||||
|  */ | ||||
| function isValidSeverity(ruleConfig) { | ||||
|     let severity = Array.isArray(ruleConfig) ? ruleConfig[0] : ruleConfig; | ||||
|  | ||||
|     if (typeof severity === "string") { | ||||
|         severity = severity.toLowerCase(); | ||||
|     } | ||||
|     return VALID_SEVERITIES.indexOf(severity) !== -1; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Checks whether every rule of a given config has valid severity or not. | ||||
|  * @param {Object} config The configuration for rules. | ||||
|  * @returns {boolean} `true` if the configuration has valid severity. | ||||
|  */ | ||||
| function isEverySeverityValid(config) { | ||||
|     return Object.keys(config).every(ruleId => isValidSeverity(config[ruleId])); | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Normalizes a value for a global in a config | ||||
|  * @param {(boolean|string|null)} configuredValue The value given for a global in configuration or in | ||||
|  * a global directive comment | ||||
|  * @returns {("readable"|"writeable"|"off")} The value normalized as a string | ||||
|  * @throws Error if global value is invalid | ||||
|  */ | ||||
| function normalizeConfigGlobal(configuredValue) { | ||||
|     switch (configuredValue) { | ||||
|         case "off": | ||||
|             return "off"; | ||||
|  | ||||
|         case true: | ||||
|         case "true": | ||||
|         case "writeable": | ||||
|         case "writable": | ||||
|             return "writable"; | ||||
|  | ||||
|         case null: | ||||
|         case false: | ||||
|         case "false": | ||||
|         case "readable": | ||||
|         case "readonly": | ||||
|             return "readonly"; | ||||
|  | ||||
|         default: | ||||
|             throw new Error(`'${configuredValue}' is not a valid configuration for a global (use 'readonly', 'writable', or 'off')`); | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { | ||||
|     getRuleSeverity, | ||||
|     normalizeToStrings, | ||||
|     isErrorSeverity, | ||||
|     isValidSeverity, | ||||
|     isEverySeverityValid, | ||||
|     normalizeConfigGlobal | ||||
| }; | ||||
							
								
								
									
										325
									
								
								node_modules/@eslint/eslintrc/lib/shared/config-validator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										325
									
								
								node_modules/@eslint/eslintrc/lib/shared/config-validator.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,325 @@ | ||||
| /** | ||||
|  * @fileoverview Validates configs. | ||||
|  * @author Brandon Mills | ||||
|  */ | ||||
|  | ||||
| /* eslint class-methods-use-this: "off" */ | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Requirements | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| import util from "util"; | ||||
| import * as ConfigOps from "./config-ops.js"; | ||||
| import { emitDeprecationWarning } from "./deprecation-warnings.js"; | ||||
| import ajvOrig from "./ajv.js"; | ||||
| import configSchema from "../../conf/config-schema.js"; | ||||
| import BuiltInEnvironments from "../../conf/environments.js"; | ||||
|  | ||||
| const ajv = ajvOrig(); | ||||
|  | ||||
| const ruleValidators = new WeakMap(); | ||||
| const noop = Function.prototype; | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Private | ||||
| //------------------------------------------------------------------------------ | ||||
| let validateSchema; | ||||
| const severityMap = { | ||||
|     error: 2, | ||||
|     warn: 1, | ||||
|     off: 0 | ||||
| }; | ||||
|  | ||||
| const validated = new WeakSet(); | ||||
|  | ||||
| //----------------------------------------------------------------------------- | ||||
| // Exports | ||||
| //----------------------------------------------------------------------------- | ||||
|  | ||||
| export default class ConfigValidator { | ||||
|     constructor({ builtInRules = new Map() } = {}) { | ||||
|         this.builtInRules = builtInRules; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Gets a complete options schema for a rule. | ||||
|      * @param {{create: Function, schema: (Array|null)}} rule A new-style rule object | ||||
|      * @returns {Object} JSON Schema for the rule's options. | ||||
|      */ | ||||
|     getRuleOptionsSchema(rule) { | ||||
|         if (!rule) { | ||||
|             return null; | ||||
|         } | ||||
|  | ||||
|         const schema = rule.schema || rule.meta && rule.meta.schema; | ||||
|  | ||||
|         // Given a tuple of schemas, insert warning level at the beginning | ||||
|         if (Array.isArray(schema)) { | ||||
|             if (schema.length) { | ||||
|                 return { | ||||
|                     type: "array", | ||||
|                     items: schema, | ||||
|                     minItems: 0, | ||||
|                     maxItems: schema.length | ||||
|                 }; | ||||
|             } | ||||
|             return { | ||||
|                 type: "array", | ||||
|                 minItems: 0, | ||||
|                 maxItems: 0 | ||||
|             }; | ||||
|  | ||||
|         } | ||||
|  | ||||
|         // Given a full schema, leave it alone | ||||
|         return schema || null; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates a rule's severity and returns the severity value. Throws an error if the severity is invalid. | ||||
|      * @param {options} options The given options for the rule. | ||||
|      * @returns {number|string} The rule's severity value | ||||
|      */ | ||||
|     validateRuleSeverity(options) { | ||||
|         const severity = Array.isArray(options) ? options[0] : options; | ||||
|         const normSeverity = typeof severity === "string" ? severityMap[severity.toLowerCase()] : severity; | ||||
|  | ||||
|         if (normSeverity === 0 || normSeverity === 1 || normSeverity === 2) { | ||||
|             return normSeverity; | ||||
|         } | ||||
|  | ||||
|         throw new Error(`\tSeverity should be one of the following: 0 = off, 1 = warn, 2 = error (you passed '${util.inspect(severity).replace(/'/gu, "\"").replace(/\n/gu, "")}').\n`); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates the non-severity options passed to a rule, based on its schema. | ||||
|      * @param {{create: Function}} rule The rule to validate | ||||
|      * @param {Array} localOptions The options for the rule, excluding severity | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateRuleSchema(rule, localOptions) { | ||||
|         if (!ruleValidators.has(rule)) { | ||||
|             const schema = this.getRuleOptionsSchema(rule); | ||||
|  | ||||
|             if (schema) { | ||||
|                 ruleValidators.set(rule, ajv.compile(schema)); | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         const validateRule = ruleValidators.get(rule); | ||||
|  | ||||
|         if (validateRule) { | ||||
|             validateRule(localOptions); | ||||
|             if (validateRule.errors) { | ||||
|                 throw new Error(validateRule.errors.map( | ||||
|                     error => `\tValue ${JSON.stringify(error.data)} ${error.message}.\n` | ||||
|                 ).join("")); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates a rule's options against its schema. | ||||
|      * @param {{create: Function}|null} rule The rule that the config is being validated for | ||||
|      * @param {string} ruleId The rule's unique name. | ||||
|      * @param {Array|number} options The given options for the rule. | ||||
|      * @param {string|null} source The name of the configuration source to report in any errors. If null or undefined, | ||||
|      * no source is prepended to the message. | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateRuleOptions(rule, ruleId, options, source = null) { | ||||
|         try { | ||||
|             const severity = this.validateRuleSeverity(options); | ||||
|  | ||||
|             if (severity !== 0) { | ||||
|                 this.validateRuleSchema(rule, Array.isArray(options) ? options.slice(1) : []); | ||||
|             } | ||||
|         } catch (err) { | ||||
|             const enhancedMessage = `Configuration for rule "${ruleId}" is invalid:\n${err.message}`; | ||||
|  | ||||
|             if (typeof source === "string") { | ||||
|                 throw new Error(`${source}:\n\t${enhancedMessage}`); | ||||
|             } else { | ||||
|                 throw new Error(enhancedMessage); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates an environment object | ||||
|      * @param {Object} environment The environment config object to validate. | ||||
|      * @param {string} source The name of the configuration source to report in any errors. | ||||
|      * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded environments. | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateEnvironment( | ||||
|         environment, | ||||
|         source, | ||||
|         getAdditionalEnv = noop | ||||
|     ) { | ||||
|  | ||||
|         // not having an environment is ok | ||||
|         if (!environment) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         Object.keys(environment).forEach(id => { | ||||
|             const env = getAdditionalEnv(id) || BuiltInEnvironments.get(id) || null; | ||||
|  | ||||
|             if (!env) { | ||||
|                 const message = `${source}:\n\tEnvironment key "${id}" is unknown\n`; | ||||
|  | ||||
|                 throw new Error(message); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates a rules config object | ||||
|      * @param {Object} rulesConfig The rules config object to validate. | ||||
|      * @param {string} source The name of the configuration source to report in any errors. | ||||
|      * @param {function(ruleId:string): Object} getAdditionalRule A map from strings to loaded rules | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateRules( | ||||
|         rulesConfig, | ||||
|         source, | ||||
|         getAdditionalRule = noop | ||||
|     ) { | ||||
|         if (!rulesConfig) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         Object.keys(rulesConfig).forEach(id => { | ||||
|             const rule = getAdditionalRule(id) || this.builtInRules.get(id) || null; | ||||
|  | ||||
|             this.validateRuleOptions(rule, id, rulesConfig[id], source); | ||||
|         }); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates a `globals` section of a config file | ||||
|      * @param {Object} globalsConfig The `globals` section | ||||
|      * @param {string|null} source The name of the configuration source to report in the event of an error. | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateGlobals(globalsConfig, source = null) { | ||||
|         if (!globalsConfig) { | ||||
|             return; | ||||
|         } | ||||
|  | ||||
|         Object.entries(globalsConfig) | ||||
|             .forEach(([configuredGlobal, configuredValue]) => { | ||||
|                 try { | ||||
|                     ConfigOps.normalizeConfigGlobal(configuredValue); | ||||
|                 } catch (err) { | ||||
|                     throw new Error(`ESLint configuration of global '${configuredGlobal}' in ${source} is invalid:\n${err.message}`); | ||||
|                 } | ||||
|             }); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validate `processor` configuration. | ||||
|      * @param {string|undefined} processorName The processor name. | ||||
|      * @param {string} source The name of config file. | ||||
|      * @param {function(id:string): Processor} getProcessor The getter of defined processors. | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateProcessor(processorName, source, getProcessor) { | ||||
|         if (processorName && !getProcessor(processorName)) { | ||||
|             throw new Error(`ESLint configuration of processor in '${source}' is invalid: '${processorName}' was not found.`); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Formats an array of schema validation errors. | ||||
|      * @param {Array} errors An array of error messages to format. | ||||
|      * @returns {string} Formatted error message | ||||
|      */ | ||||
|     formatErrors(errors) { | ||||
|         return errors.map(error => { | ||||
|             if (error.keyword === "additionalProperties") { | ||||
|                 const formattedPropertyPath = error.dataPath.length ? `${error.dataPath.slice(1)}.${error.params.additionalProperty}` : error.params.additionalProperty; | ||||
|  | ||||
|                 return `Unexpected top-level property "${formattedPropertyPath}"`; | ||||
|             } | ||||
|             if (error.keyword === "type") { | ||||
|                 const formattedField = error.dataPath.slice(1); | ||||
|                 const formattedExpectedType = Array.isArray(error.schema) ? error.schema.join("/") : error.schema; | ||||
|                 const formattedValue = JSON.stringify(error.data); | ||||
|  | ||||
|                 return `Property "${formattedField}" is the wrong type (expected ${formattedExpectedType} but got \`${formattedValue}\`)`; | ||||
|             } | ||||
|  | ||||
|             const field = error.dataPath[0] === "." ? error.dataPath.slice(1) : error.dataPath; | ||||
|  | ||||
|             return `"${field}" ${error.message}. Value: ${JSON.stringify(error.data)}`; | ||||
|         }).map(message => `\t- ${message}.\n`).join(""); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates the top level properties of the config object. | ||||
|      * @param {Object} config The config object to validate. | ||||
|      * @param {string} source The name of the configuration source to report in any errors. | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateConfigSchema(config, source = null) { | ||||
|         validateSchema = validateSchema || ajv.compile(configSchema); | ||||
|  | ||||
|         if (!validateSchema(config)) { | ||||
|             throw new Error(`ESLint configuration in ${source} is invalid:\n${this.formatErrors(validateSchema.errors)}`); | ||||
|         } | ||||
|  | ||||
|         if (Object.hasOwnProperty.call(config, "ecmaFeatures")) { | ||||
|             emitDeprecationWarning(source, "ESLINT_LEGACY_ECMAFEATURES"); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validates an entire config object. | ||||
|      * @param {Object} config The config object to validate. | ||||
|      * @param {string} source The name of the configuration source to report in any errors. | ||||
|      * @param {function(ruleId:string): Object} [getAdditionalRule] A map from strings to loaded rules. | ||||
|      * @param {function(envId:string): Object} [getAdditionalEnv] A map from strings to loaded envs. | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validate(config, source, getAdditionalRule, getAdditionalEnv) { | ||||
|         this.validateConfigSchema(config, source); | ||||
|         this.validateRules(config.rules, source, getAdditionalRule); | ||||
|         this.validateEnvironment(config.env, source, getAdditionalEnv); | ||||
|         this.validateGlobals(config.globals, source); | ||||
|  | ||||
|         for (const override of config.overrides || []) { | ||||
|             this.validateRules(override.rules, source, getAdditionalRule); | ||||
|             this.validateEnvironment(override.env, source, getAdditionalEnv); | ||||
|             this.validateGlobals(config.globals, source); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Validate config array object. | ||||
|      * @param {ConfigArray} configArray The config array to validate. | ||||
|      * @returns {void} | ||||
|      */ | ||||
|     validateConfigArray(configArray) { | ||||
|         const getPluginEnv = Map.prototype.get.bind(configArray.pluginEnvironments); | ||||
|         const getPluginProcessor = Map.prototype.get.bind(configArray.pluginProcessors); | ||||
|         const getPluginRule = Map.prototype.get.bind(configArray.pluginRules); | ||||
|  | ||||
|         // Validate. | ||||
|         for (const element of configArray) { | ||||
|             if (validated.has(element)) { | ||||
|                 continue; | ||||
|             } | ||||
|             validated.add(element); | ||||
|  | ||||
|             this.validateEnvironment(element.env, element.name, getPluginEnv); | ||||
|             this.validateGlobals(element.globals, element.name); | ||||
|             this.validateProcessor(element.processor, element.name, getPluginProcessor); | ||||
|             this.validateRules(element.rules, element.name, getPluginRule); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										63
									
								
								node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								node_modules/@eslint/eslintrc/lib/shared/deprecation-warnings.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,63 @@ | ||||
| /** | ||||
|  * @fileoverview Provide the function that emits deprecation warnings. | ||||
|  * @author Toru Nagashima <http://github.com/mysticatea> | ||||
|  */ | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Requirements | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| import path from "path"; | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Private | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| // Defitions for deprecation warnings. | ||||
| const deprecationWarningMessages = { | ||||
|     ESLINT_LEGACY_ECMAFEATURES: | ||||
|         "The 'ecmaFeatures' config file property is deprecated and has no effect.", | ||||
|     ESLINT_PERSONAL_CONFIG_LOAD: | ||||
|         "'~/.eslintrc.*' config files have been deprecated. " + | ||||
|         "Please use a config file per project or the '--config' option.", | ||||
|     ESLINT_PERSONAL_CONFIG_SUPPRESS: | ||||
|         "'~/.eslintrc.*' config files have been deprecated. " + | ||||
|         "Please remove it or add 'root:true' to the config files in your " + | ||||
|         "projects in order to avoid loading '~/.eslintrc.*' accidentally." | ||||
| }; | ||||
|  | ||||
| const sourceFileErrorCache = new Set(); | ||||
|  | ||||
| /** | ||||
|  * Emits a deprecation warning containing a given filepath. A new deprecation warning is emitted | ||||
|  * for each unique file path, but repeated invocations with the same file path have no effect. | ||||
|  * No warnings are emitted if the `--no-deprecation` or `--no-warnings` Node runtime flags are active. | ||||
|  * @param {string} source The name of the configuration source to report the warning for. | ||||
|  * @param {string} errorCode The warning message to show. | ||||
|  * @returns {void} | ||||
|  */ | ||||
| function emitDeprecationWarning(source, errorCode) { | ||||
|     const cacheKey = JSON.stringify({ source, errorCode }); | ||||
|  | ||||
|     if (sourceFileErrorCache.has(cacheKey)) { | ||||
|         return; | ||||
|     } | ||||
|     sourceFileErrorCache.add(cacheKey); | ||||
|  | ||||
|     const rel = path.relative(process.cwd(), source); | ||||
|     const message = deprecationWarningMessages[errorCode]; | ||||
|  | ||||
|     process.emitWarning( | ||||
|         `${message} (found in "${rel}")`, | ||||
|         "DeprecationWarning", | ||||
|         errorCode | ||||
|     ); | ||||
| } | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Public Interface | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| export { | ||||
|     emitDeprecationWarning | ||||
| }; | ||||
							
								
								
									
										96
									
								
								node_modules/@eslint/eslintrc/lib/shared/naming.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								node_modules/@eslint/eslintrc/lib/shared/naming.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,96 @@ | ||||
| /** | ||||
|  * @fileoverview Common helpers for naming of plugins, formatters and configs | ||||
|  */ | ||||
|  | ||||
| const NAMESPACE_REGEX = /^@.*\//iu; | ||||
|  | ||||
| /** | ||||
|  * Brings package name to correct format based on prefix | ||||
|  * @param {string} name The name of the package. | ||||
|  * @param {string} prefix Can be either "eslint-plugin", "eslint-config" or "eslint-formatter" | ||||
|  * @returns {string} Normalized name of the package | ||||
|  * @private | ||||
|  */ | ||||
| function normalizePackageName(name, prefix) { | ||||
|     let normalizedName = name; | ||||
|  | ||||
|     /** | ||||
|      * On Windows, name can come in with Windows slashes instead of Unix slashes. | ||||
|      * Normalize to Unix first to avoid errors later on. | ||||
|      * https://github.com/eslint/eslint/issues/5644 | ||||
|      */ | ||||
|     if (normalizedName.includes("\\")) { | ||||
|         normalizedName = normalizedName.replace(/\\/gu, "/"); | ||||
|     } | ||||
|  | ||||
|     if (normalizedName.charAt(0) === "@") { | ||||
|  | ||||
|         /** | ||||
|          * it's a scoped package | ||||
|          * package name is the prefix, or just a username | ||||
|          */ | ||||
|         const scopedPackageShortcutRegex = new RegExp(`^(@[^/]+)(?:/(?:${prefix})?)?$`, "u"), | ||||
|             scopedPackageNameRegex = new RegExp(`^${prefix}(-|$)`, "u"); | ||||
|  | ||||
|         if (scopedPackageShortcutRegex.test(normalizedName)) { | ||||
|             normalizedName = normalizedName.replace(scopedPackageShortcutRegex, `$1/${prefix}`); | ||||
|         } else if (!scopedPackageNameRegex.test(normalizedName.split("/")[1])) { | ||||
|  | ||||
|             /** | ||||
|              * for scoped packages, insert the prefix after the first / unless | ||||
|              * the path is already @scope/eslint or @scope/eslint-xxx-yyy | ||||
|              */ | ||||
|             normalizedName = normalizedName.replace(/^@([^/]+)\/(.*)$/u, `@$1/${prefix}-$2`); | ||||
|         } | ||||
|     } else if (!normalizedName.startsWith(`${prefix}-`)) { | ||||
|         normalizedName = `${prefix}-${normalizedName}`; | ||||
|     } | ||||
|  | ||||
|     return normalizedName; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Removes the prefix from a fullname. | ||||
|  * @param {string} fullname The term which may have the prefix. | ||||
|  * @param {string} prefix The prefix to remove. | ||||
|  * @returns {string} The term without prefix. | ||||
|  */ | ||||
| function getShorthandName(fullname, prefix) { | ||||
|     if (fullname[0] === "@") { | ||||
|         let matchResult = new RegExp(`^(@[^/]+)/${prefix}$`, "u").exec(fullname); | ||||
|  | ||||
|         if (matchResult) { | ||||
|             return matchResult[1]; | ||||
|         } | ||||
|  | ||||
|         matchResult = new RegExp(`^(@[^/]+)/${prefix}-(.+)$`, "u").exec(fullname); | ||||
|         if (matchResult) { | ||||
|             return `${matchResult[1]}/${matchResult[2]}`; | ||||
|         } | ||||
|     } else if (fullname.startsWith(`${prefix}-`)) { | ||||
|         return fullname.slice(prefix.length + 1); | ||||
|     } | ||||
|  | ||||
|     return fullname; | ||||
| } | ||||
|  | ||||
| /** | ||||
|  * Gets the scope (namespace) of a term. | ||||
|  * @param {string} term The term which may have the namespace. | ||||
|  * @returns {string} The namespace of the term if it has one. | ||||
|  */ | ||||
| function getNamespaceFromTerm(term) { | ||||
|     const match = term.match(NAMESPACE_REGEX); | ||||
|  | ||||
|     return match ? match[0] : ""; | ||||
| } | ||||
|  | ||||
| //------------------------------------------------------------------------------ | ||||
| // Public Interface | ||||
| //------------------------------------------------------------------------------ | ||||
|  | ||||
| export { | ||||
|     normalizePackageName, | ||||
|     getShorthandName, | ||||
|     getNamespaceFromTerm | ||||
| }; | ||||
							
								
								
									
										42
									
								
								node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								node_modules/@eslint/eslintrc/lib/shared/relative-module-resolver.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| /** | ||||
|  * Utility for resolving a module relative to another module | ||||
|  * @author Teddy Katz | ||||
|  */ | ||||
|  | ||||
| import Module from "module"; | ||||
|  | ||||
| /* | ||||
|  * `Module.createRequire` is added in v12.2.0. It supports URL as well. | ||||
|  * We only support the case where the argument is a filepath, not a URL. | ||||
|  */ | ||||
| const createRequire = Module.createRequire; | ||||
|  | ||||
| /** | ||||
|  * Resolves a Node module relative to another module | ||||
|  * @param {string} moduleName The name of a Node module, or a path to a Node module. | ||||
|  * @param {string} relativeToPath An absolute path indicating the module that `moduleName` should be resolved relative to. This must be | ||||
|  * a file rather than a directory, but the file need not actually exist. | ||||
|  * @returns {string} The absolute path that would result from calling `require.resolve(moduleName)` in a file located at `relativeToPath` | ||||
|  */ | ||||
| function resolve(moduleName, relativeToPath) { | ||||
|     try { | ||||
|         return createRequire(relativeToPath).resolve(moduleName); | ||||
|     } catch (error) { | ||||
|  | ||||
|         // This `if` block is for older Node.js than 12.0.0. We can remove this block in the future. | ||||
|         if ( | ||||
|             typeof error === "object" && | ||||
|             error !== null && | ||||
|             error.code === "MODULE_NOT_FOUND" && | ||||
|             !error.requireStack && | ||||
|             error.message.includes(moduleName) | ||||
|         ) { | ||||
|             error.message += `\nRequire stack:\n- ${relativeToPath}`; | ||||
|         } | ||||
|         throw error; | ||||
|     } | ||||
| } | ||||
|  | ||||
| export { | ||||
|     resolve | ||||
| }; | ||||
							
								
								
									
										149
									
								
								node_modules/@eslint/eslintrc/lib/shared/types.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										149
									
								
								node_modules/@eslint/eslintrc/lib/shared/types.js
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,149 @@ | ||||
| /** | ||||
|  * @fileoverview Define common types for input completion. | ||||
|  * @author Toru Nagashima <https://github.com/mysticatea> | ||||
|  */ | ||||
|  | ||||
| /** @type {any} */ | ||||
| export default {}; | ||||
|  | ||||
| /** @typedef {boolean | "off" | "readable" | "readonly" | "writable" | "writeable"} GlobalConf */ | ||||
| /** @typedef {0 | 1 | 2 | "off" | "warn" | "error"} SeverityConf */ | ||||
| /** @typedef {SeverityConf | [SeverityConf, ...any[]]} RuleConf */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} EcmaFeatures | ||||
|  * @property {boolean} [globalReturn] Enabling `return` statements at the top-level. | ||||
|  * @property {boolean} [jsx] Enabling JSX syntax. | ||||
|  * @property {boolean} [impliedStrict] Enabling strict mode always. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} ParserOptions | ||||
|  * @property {EcmaFeatures} [ecmaFeatures] The optional features. | ||||
|  * @property {3|5|6|7|8|9|10|11|12|2015|2016|2017|2018|2019|2020|2021} [ecmaVersion] The ECMAScript version (or revision number). | ||||
|  * @property {"script"|"module"} [sourceType] The source code type. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} ConfigData | ||||
|  * @property {Record<string, boolean>} [env] The environment settings. | ||||
|  * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. | ||||
|  * @property {Record<string, GlobalConf>} [globals] The global variable settings. | ||||
|  * @property {string | string[]} [ignorePatterns] The glob patterns that ignore to lint. | ||||
|  * @property {boolean} [noInlineConfig] The flag that disables directive comments. | ||||
|  * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. | ||||
|  * @property {string} [parser] The path to a parser or the package name of a parser. | ||||
|  * @property {ParserOptions} [parserOptions] The parser options. | ||||
|  * @property {string[]} [plugins] The plugin specifiers. | ||||
|  * @property {string} [processor] The processor specifier. | ||||
|  * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. | ||||
|  * @property {boolean} [root] The root flag. | ||||
|  * @property {Record<string, RuleConf>} [rules] The rule settings. | ||||
|  * @property {Object} [settings] The shared settings. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} OverrideConfigData | ||||
|  * @property {Record<string, boolean>} [env] The environment settings. | ||||
|  * @property {string | string[]} [excludedFiles] The glob pattarns for excluded files. | ||||
|  * @property {string | string[]} [extends] The path to other config files or the package name of shareable configs. | ||||
|  * @property {string | string[]} files The glob patterns for target files. | ||||
|  * @property {Record<string, GlobalConf>} [globals] The global variable settings. | ||||
|  * @property {boolean} [noInlineConfig] The flag that disables directive comments. | ||||
|  * @property {OverrideConfigData[]} [overrides] The override settings per kind of files. | ||||
|  * @property {string} [parser] The path to a parser or the package name of a parser. | ||||
|  * @property {ParserOptions} [parserOptions] The parser options. | ||||
|  * @property {string[]} [plugins] The plugin specifiers. | ||||
|  * @property {string} [processor] The processor specifier. | ||||
|  * @property {boolean} [reportUnusedDisableDirectives] The flag to report unused `eslint-disable` comments. | ||||
|  * @property {Record<string, RuleConf>} [rules] The rule settings. | ||||
|  * @property {Object} [settings] The shared settings. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} ParseResult | ||||
|  * @property {Object} ast The AST. | ||||
|  * @property {ScopeManager} [scopeManager] The scope manager of the AST. | ||||
|  * @property {Record<string, any>} [services] The services that the parser provides. | ||||
|  * @property {Record<string, string[]>} [visitorKeys] The visitor keys of the AST. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} Parser | ||||
|  * @property {(text:string, options:ParserOptions) => Object} parse The definition of global variables. | ||||
|  * @property {(text:string, options:ParserOptions) => ParseResult} [parseForESLint] The parser options that will be enabled under this environment. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} Environment | ||||
|  * @property {Record<string, GlobalConf>} [globals] The definition of global variables. | ||||
|  * @property {ParserOptions} [parserOptions] The parser options that will be enabled under this environment. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} LintMessage | ||||
|  * @property {number} column The 1-based column number. | ||||
|  * @property {number} [endColumn] The 1-based column number of the end location. | ||||
|  * @property {number} [endLine] The 1-based line number of the end location. | ||||
|  * @property {boolean} fatal If `true` then this is a fatal error. | ||||
|  * @property {{range:[number,number], text:string}} [fix] Information for autofix. | ||||
|  * @property {number} line The 1-based line number. | ||||
|  * @property {string} message The error message. | ||||
|  * @property {string|null} ruleId The ID of the rule which makes this message. | ||||
|  * @property {0|1|2} severity The severity of this message. | ||||
|  * @property {Array<{desc?: string, messageId?: string, fix: {range: [number, number], text: string}}>} [suggestions] Information for suggestions. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} SuggestionResult | ||||
|  * @property {string} desc A short description. | ||||
|  * @property {string} [messageId] Id referencing a message for the description. | ||||
|  * @property {{ text: string, range: number[] }} fix fix result info | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} Processor | ||||
|  * @property {(text:string, filename:string) => Array<string | { text:string, filename:string }>} [preprocess] The function to extract code blocks. | ||||
|  * @property {(messagesList:LintMessage[][], filename:string) => LintMessage[]} [postprocess] The function to merge messages. | ||||
|  * @property {boolean} [supportsAutofix] If `true` then it means the processor supports autofix. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} RuleMetaDocs | ||||
|  * @property {string} category The category of the rule. | ||||
|  * @property {string} description The description of the rule. | ||||
|  * @property {boolean} recommended If `true` then the rule is included in `eslint:recommended` preset. | ||||
|  * @property {string} url The URL of the rule documentation. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} RuleMeta | ||||
|  * @property {boolean} [deprecated] If `true` then the rule has been deprecated. | ||||
|  * @property {RuleMetaDocs} docs The document information of the rule. | ||||
|  * @property {"code"|"whitespace"} [fixable] The autofix type. | ||||
|  * @property {Record<string,string>} [messages] The messages the rule reports. | ||||
|  * @property {string[]} [replacedBy] The IDs of the alternative rules. | ||||
|  * @property {Array|Object} schema The option schema of the rule. | ||||
|  * @property {"problem"|"suggestion"|"layout"} type The rule type. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} Rule | ||||
|  * @property {Function} create The factory of the rule. | ||||
|  * @property {RuleMeta} meta The meta data of the rule. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @typedef {Object} Plugin | ||||
|  * @property {Record<string, ConfigData>} [configs] The definition of plugin configs. | ||||
|  * @property {Record<string, Environment>} [environments] The definition of plugin environments. | ||||
|  * @property {Record<string, Processor>} [processors] The definition of plugin processors. | ||||
|  * @property {Record<string, Function | Rule>} [rules] The definition of plugin rules. | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * Information of deprecated rules. | ||||
|  * @typedef {Object} DeprecatedRuleInfo | ||||
|  * @property {string} ruleId The rule ID. | ||||
|  * @property {string[]} replacedBy The rule IDs that replace this deprecated rule. | ||||
|  */ | ||||
		Reference in New Issue
	
	Block a user