import * as eslint from 'eslint'; import * as semver from 'semver'; import { c as convertConfigToRc } from './shared/eslint-compat-utils.74f551ea.mjs'; import { g as getUnsupported } from './shared/eslint-compat-utils.3ecba7ac.mjs'; import 'module'; var __defProp = Object.defineProperty; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __publicField = (obj, key, value) => { __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); return value; }; let cacheESLint, cacheLegacyESLint; function getESLint() { return cacheESLint != null ? cacheESLint : cacheESLint = getESLintInternal(); function getESLintInternal() { if (semver.gte(eslint.Linter.version, "9.0.0-0")) { return eslint.ESLint; } return getUnsupported().FlatESLint || (eslint.ESLint ? getESLintClassFromLegacyESLint(eslint.ESLint) : getESLintClassFromLegacyESLint(getLegacyESLintClassFromCLIEngine())); } } function getLegacyESLint() { return cacheLegacyESLint != null ? cacheLegacyESLint : cacheLegacyESLint = getLegacyESLintInternal(); function getLegacyESLintInternal() { return getUnsupported().LegacyESLint || eslint.ESLint || getLegacyESLintClassFromCLIEngine(); } } function getESLintClassFromLegacyESLint(legacyESLintClass) { return class ESLintFromLegacyESLint extends legacyESLintClass { static get version() { return legacyESLintClass.version; } constructor(options) { super(adjustOptions(options)); } }; function adjustOptions(options) { const { baseConfig: originalBaseConfig, overrideConfig: originalOverrideConfig, overrideConfigFile, ...newOptions } = options || {}; if (originalBaseConfig) { const [baseConfig, plugins] = convertConfig(originalBaseConfig); newOptions.baseConfig = baseConfig; if (plugins) { newOptions.plugins = plugins; } } if (originalOverrideConfig) { const [overrideConfig, plugins] = convertConfig(originalOverrideConfig); newOptions.overrideConfig = overrideConfig; if (plugins) { newOptions.plugins = plugins; } } if (overrideConfigFile) { if (overrideConfigFile === true) { newOptions.useEslintrc = false; } else { newOptions.overrideConfigFile = overrideConfigFile; } } return newOptions; } function convertConfig(config) { const { plugins, ...otherConfig } = config; delete otherConfig.files; if (typeof otherConfig.processor !== "string") delete otherConfig.processor; const newConfig = convertConfigToRc(otherConfig); if (plugins) { newConfig.plugins = Object.keys(plugins); } return [newConfig, plugins]; } } function getLegacyESLintClassFromCLIEngine() { const CLIEngine = eslint.CLIEngine; class LegacyESLintFromCLIEngine { constructor(options) { __publicField(this, "engine"); const { overrideConfig: { plugins, globals, rules, ...overrideConfig } = { plugins: [], globals: {}, rules: {} }, fix, reportUnusedDisableDirectives, plugins: pluginsMap, ...otherOptions } = options || {}; const cliEngineOptions = { fix: Boolean(fix), reportUnusedDisableDirectives: reportUnusedDisableDirectives ? reportUnusedDisableDirectives !== "off" : void 0, ...otherOptions, globals: globals ? Object.keys(globals).filter((n) => globals[n]) : void 0, plugins: plugins || [], rules: rules ? Object.fromEntries( Object.entries(rules).flatMap( ([ruleId, opt]) => opt ? [[ruleId, opt]] : [] ) ) : void 0, ...overrideConfig }; this.engine = new CLIEngine(cliEngineOptions); for (const [name, plugin] of Object.entries(pluginsMap || {})) { this.engine.addPlugin(name, plugin); } } static get version() { return CLIEngine.version; } // eslint-disable-next-line @typescript-eslint/require-await -- ignore async lintText(...params) { var _a; const result = this.engine.executeOnText(params[0], (_a = params[1]) == null ? void 0 : _a.filePath); return result.results; } // eslint-disable-next-line @typescript-eslint/require-await -- ignore async lintFiles(...params) { const result = this.engine.executeOnFiles( Array.isArray(params[0]) ? params[0] : [params[0]] ); return result.results; } // eslint-disable-next-line @typescript-eslint/require-await -- ignore static async outputFixes(...params) { return CLIEngine.outputFixes({ results: params[0] }); } } return LegacyESLintFromCLIEngine; } export { getESLint, getLegacyESLint };