diff --git a/.github/renovate.json5 b/.github/renovate.json5 index c14c3ed55e56..b8d7426f2cff 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -16,16 +16,6 @@ '@nrwl/jest', '@nrwl/nx-cloud', '@nrwl/tao', - // TODO - once we bump pass the major, we can remove these. Currently renovate is creating broken, immortal PRs - '@rollup/plugin-babel', - '@rollup/plugin-commonjs', - '@rollup/plugin-json', - '@rollup/plugin-node-resolve', - '@rollup/plugin-replace', - '@rollup/plugin-terser', - '@rollup/pluginutils', - 'rollup-plugin-terser', - 'rollup', ], ignorePaths: [ // integration test package.json's should never be updated as they're purposely fixed tests @@ -85,11 +75,6 @@ matchPackagePrefixes: ['@types/jest', 'jest-', '@jest/'], groupName: 'jest', }, - { - matchPackagePrefixes: ['@rollup', 'rollup-'], - matchPackageNames: ['rollup'], - groupName: 'rollup', - }, ], postUpdateOptions: [ // run yarn dedupe to cleanup the lockfile after updates diff --git a/packages/scope-manager/package.json b/packages/scope-manager/package.json index e02f58c3b1a5..cc88c8f313ab 100644 --- a/packages/scope-manager/package.json +++ b/packages/scope-manager/package.json @@ -14,11 +14,7 @@ "types": "./dist/index.d.ts", "default": "./dist/index.js" }, - "./package.json": "./package.json", - "./use-at-your-own-risk/analyze": { - "types": "./dist/analyze.d.ts", - "default": "./dist/analyze.js" - } + "./package.json": "./package.json" }, "engines": { "node": "^14.18.0 || ^16.0.0 || >=18.0.0" diff --git a/packages/typescript-estree/package.json b/packages/typescript-estree/package.json index 2128ffb4674f..76de95f5a1c5 100644 --- a/packages/typescript-estree/package.json +++ b/packages/typescript-estree/package.json @@ -15,17 +15,9 @@ "default": "./dist/index.js" }, "./package.json": "./package.json", - "./use-at-your-own-risk/ast-converter": { - "types": "./dist/ast-converter.d.ts", - "default": "./dist/ast-converter.js" - }, - "./use-at-your-own-risk/parseSettings": { - "types": "./dist/parseSettings/index.d.ts", - "default": "./dist/parseSettings/index.js" - }, - "./use-at-your-own-risk/getScriptKind": { - "types": "./dist/create-program/getScriptKind.d.ts", - "default": "./dist/create-program/getScriptKind.js" + "./use-at-your-own-risk": { + "types": "./dist/use-at-your-own-risk.d.ts", + "default": "./dist/use-at-your-own-risk.js" } }, "engines": { diff --git a/packages/typescript-estree/src/use-at-your-own-risk.ts b/packages/typescript-estree/src/use-at-your-own-risk.ts new file mode 100644 index 000000000000..c289e11086ca --- /dev/null +++ b/packages/typescript-estree/src/use-at-your-own-risk.ts @@ -0,0 +1,8 @@ +// required by website +export * from './create-program/getScriptKind'; +export * from './ast-converter'; +export type { ParseSettings } from './parseSettings'; + +// required by packages/utils/src/ts-estree.ts +export * from './getModifiers'; +export { typescriptVersionIsAtLeast } from './version-check'; diff --git a/packages/visitor-keys/package.json b/packages/visitor-keys/package.json index ee1aea006d1c..a7276671f51b 100644 --- a/packages/visitor-keys/package.json +++ b/packages/visitor-keys/package.json @@ -15,11 +15,7 @@ "types": "./dist/index.d.ts", "default": "./dist/index.js" }, - "./package.json": "./package.json", - "./use-at-your-own-risk/visitor-keys": { - "types": "./dist/visitor-keys.d.ts", - "default": "./dist/visitor-keys.js" - } + "./package.json": "./package.json" }, "engines": { "node": "^14.18.0 || ^16.0.0 || >=18.0.0" diff --git a/packages/website-eslint/build.ts b/packages/website-eslint/build.ts new file mode 100644 index 000000000000..ee24cee305a7 --- /dev/null +++ b/packages/website-eslint/build.ts @@ -0,0 +1,167 @@ +/* eslint-disable no-process-exit, no-console */ + +import * as fs from 'node:fs/promises'; +import { createRequire } from 'node:module'; +import * as path from 'node:path'; + +import * as esbuild from 'esbuild'; + +function requireResolved(targetPath: string): string { + return createRequire(__filename).resolve(targetPath); +} + +function normalizePath(filePath: string): string { + return filePath.replace(/\\/g, '/'); +} + +function requireMock(targetPath: string): Promise { + return fs.readFile(requireResolved(targetPath), 'utf8'); +} + +function makeFilter(filePath: string | string[]): { filter: RegExp } { + const paths = Array.isArray(filePath) ? filePath : [filePath]; + const norm = paths.map(item => + normalizePath(item).replace(/\//g, '[\\\\/]').replace(/\./g, '\\.'), + ); + return { filter: new RegExp('(' + norm.join('|') + ')$') }; +} + +function createResolve( + targetPath: string, + join: string, +): esbuild.OnResolveResult { + const resolvedPackage = requireResolved(targetPath + '/package.json'); + return { + path: path.join(resolvedPackage, '../src/', join), + }; +} + +async function buildPackage(name: string, file: string): Promise { + const eslintRoot = requireResolved('eslint/package.json'); + const linterPath = path.join(eslintRoot, '../lib/linter/linter.js'); + const rulesPath = path.join(eslintRoot, '../lib/rules/index.js'); + + await esbuild.build({ + entryPoints: { + [name]: requireResolved(file), + }, + format: 'cjs', + platform: 'browser', + bundle: true, + external: [], + minify: true, + treeShaking: true, + write: true, + target: 'es2020', + sourcemap: 'linked', + outdir: './dist/', + supported: {}, + banner: { + // https://github.com/evanw/esbuild/issues/819 + js: `define(['exports', 'vs/language/typescript/tsWorker'], function (exports) {`, + }, + footer: { + // https://github.com/evanw/esbuild/issues/819 + js: `});`, + }, + define: { + 'process.env.NODE_ENV': '"production"', + 'process.env.NODE_DEBUG': 'false', + 'process.env.IGNORE_TEST_WIN32': 'true', + 'process.env.DEBUG': 'false', + 'process.emitWarning': 'console.warn', + 'process.platform': '"browser"', + 'process.env.TIMING': 'undefined', + 'define.amd': 'false', + global: 'window', + }, + alias: { + util: requireResolved('./src/mock/util.js'), + assert: requireResolved('./src/mock/assert.js'), + path: requireResolved('./src/mock/path.js'), + typescript: requireResolved('./src/mock/typescript.js'), + 'lru-cache': requireResolved('./src/mock/lru-cache.js'), + }, + plugins: [ + { + name: 'replace-plugin', + setup(build): void { + build.onLoad( + makeFilter([ + '/eslint-utils/rule-tester/RuleTester.ts', + '/ts-eslint/ESLint.ts', + '/ts-eslint/RuleTester.ts', + '/ts-eslint/CLIEngine.ts', + ]), + async args => { + console.log('onLoad:replace', args.path); + const contents = await requireMock('./src/mock/empty.js'); + return { contents, loader: 'js' }; + }, + ); + build.onLoad( + makeFilter('/eslint/lib/unsupported-api.js'), + async args => { + console.log('onLoad:eslint:unsupported-api', args.path); + let contents = await requireMock('./src/mock/eslint-rules.js'); + // this is needed to bypass system module resolver + contents = contents.replace( + 'vt:eslint/rules', + normalizePath(rulesPath), + ); + return { contents, loader: 'js' }; + }, + ); + build.onLoad(makeFilter('/eslint/lib/api.js'), async args => { + console.log('onLoad:eslint', args.path); + let text = await requireMock('./src/mock/eslint.js'); + // this is needed to bypass system module resolver + text = text.replace('vt:eslint/linter', normalizePath(linterPath)); + return { contents: text, loader: 'js' }; + }); + build.onResolve( + makeFilter([ + '@typescript-eslint/typescript-estree', + '@typescript-eslint/typescript-estree/use-at-your-own-risk', + ]), + () => + createResolve( + '@typescript-eslint/typescript-estree', + 'use-at-your-own-risk.ts', + ), + ); + const anyAlias = /^(@typescript-eslint\/[a-z-]+)\/([a-z-]+)$/; + build.onResolve({ filter: anyAlias }, args => { + const parts = args.path.match(anyAlias); + if (parts) { + return createResolve(parts[1], `${parts[2]}/index.ts`); + } + return null; + }); + build.onResolve(makeFilter('@typescript-eslint/[a-z-]+'), args => + createResolve(args.path, 'index.ts'), + ); + build.onEnd(e => { + for (const error of e.errors) { + console.error(error); + } + for (const warning of e.warnings) { + console.warn(warning); + } + }); + }, + }, + ], + }); +} + +console.time('building eslint for web'); + +buildPackage('index', './src/index.js') + .then(() => { + console.timeEnd('building eslint for web'); + }) + .catch((e: unknown) => { + console.error(String(e)); + process.exit(1); + }); diff --git a/packages/website-eslint/package.json b/packages/website-eslint/package.json index f6953c336ef8..f98341c5701d 100644 --- a/packages/website-eslint/package.json +++ b/packages/website-eslint/package.json @@ -17,30 +17,22 @@ "node": "^14.18.0 || ^16.0.0 || >=18.0.0" }, "scripts": { - "build": "rollup --config=rollup.config.js", + "build": "yarn tsx ./build.ts", "format": "prettier --write \"./**/*.{ts,mts,cts,tsx,js,mjs,cjs,jsx,json,md,css}\" --ignore-path ../../.prettierignore", "lint": "nx lint", "typecheck": "tsc --noEmit" }, - "dependencies": { - "@typescript-eslint/types": "5.56.0", - "@typescript-eslint/utils": "5.56.0" - }, "devDependencies": { - "@rollup/plugin-commonjs": "^23.0.0", - "@rollup/plugin-json": "^5.0.0", - "@rollup/plugin-node-resolve": "^15.0.0", - "@rollup/plugin-terser": "^0.4.0", - "@rollup/pluginutils": "^5.0.0", "@typescript-eslint/eslint-plugin": "5.56.0", "@typescript-eslint/parser": "5.56.0", "@typescript-eslint/scope-manager": "5.56.0", "@typescript-eslint/typescript-estree": "5.56.0", "@typescript-eslint/visitor-keys": "5.56.0", + "@typescript-eslint/types": "5.56.0", + "@typescript-eslint/utils": "5.56.0", "eslint": "*", + "esbuild": "~0.17.12", "esquery": "*", - "magic-string": "0.25.9", - "rollup": "^2.75.4", "semver": "^7.3.7" } } diff --git a/packages/website-eslint/rollup-plugin/replace.js b/packages/website-eslint/rollup-plugin/replace.js deleted file mode 100644 index 559367c34a26..000000000000 --- a/packages/website-eslint/rollup-plugin/replace.js +++ /dev/null @@ -1,96 +0,0 @@ -const path = require('path'); -const Module = require('module'); -const rollupPluginUtils = require('@rollup/pluginutils'); -const MagicString = require('magic-string'); - -function toAbsolute(id) { - return id.startsWith('./') ? path.resolve(id) : require.resolve(id); -} - -function log(opts, message, type = 'info') { - if (opts.verbose) { - // eslint-disable-next-line no-console - console.log('rollup-plugin-replace > [' + type + ']', message); - } -} - -function createMatcher(it) { - if (typeof it === 'function') { - return it; - } else { - return rollupPluginUtils.createFilter(it); - } -} - -module.exports = (options = {}) => { - const aliasesCache = new Map(); - const aliases = (options.alias || []).map(item => { - return { - match: item.match, - matcher: createMatcher(item.match), - target: item.target, - absoluteTarget: toAbsolute(item.target), - }; - }); - const replaces = (options.replace || []).map(item => { - return { - match: item.match, - test: item.test, - replace: - typeof item.replace === 'string' ? () => item.replace : item.replace, - - matcher: createMatcher(item.match), - }; - }); - - return { - name: 'rollup-plugin-replace', - resolveId(id, importerPath) { - const importeePath = - id.startsWith('./') || id.startsWith('../') - ? Module.createRequire(importerPath).resolve(id) - : id; - - let result = aliasesCache.get(importeePath); - if (result) { - return result; - } - - result = aliases.find(item => item.matcher(importeePath)); - if (result) { - aliasesCache.set(importeePath, result.absoluteTarget); - log(options, `${importeePath} as ${result.target}`, 'resolve'); - return result.absoluteTarget; - } - - return null; - }, - transform(code, id) { - let hasReplacements = false; - let magicString = new MagicString(code); - - replaces.forEach(item => { - if (item.matcher && !item.matcher(id)) { - return; - } - - let match = item.test.exec(code); - let start; - let end; - while (match) { - hasReplacements = true; - start = match.index; - end = start + match[0].length; - magicString.overwrite(start, end, item.replace(match)); - match = item.test.global ? item.test.exec(code) : null; - } - }); - - if (!hasReplacements) { - return; - } - log(options, id, 'replace'); - return { code: magicString.toString() }; - }, - }; -}; diff --git a/packages/website-eslint/rollup.config.js b/packages/website-eslint/rollup.config.js deleted file mode 100644 index 1ba2e0991135..000000000000 --- a/packages/website-eslint/rollup.config.js +++ /dev/null @@ -1,139 +0,0 @@ -import commonjs from '@rollup/plugin-commonjs'; -import json from '@rollup/plugin-json'; -import resolve from '@rollup/plugin-node-resolve'; -import terser from '@rollup/plugin-terser'; - -const replace = require('./rollup-plugin/replace'); - -module.exports = { - input: 'src/linter/linter.js', - output: { - format: 'amd', - interop: 'auto', - freeze: false, - sourcemap: true, - file: 'dist/index.js', - }, - external: ['vs/language/typescript/tsWorker'], - plugins: [ - terser({ - keep_classnames: true, - compress: { - global_defs: { - 'process.platform': '"browser"', - 'process.env.CI': 'undefined', - '@process.env.TSESTREE_SINGLE_RUN': 'undefined', - '@process.env.DEBUG': 'undefined', - }, - }, - }), - replace({ - // verbose: true, - alias: [ - { - // those files should be omitted, we do not want them to be exposed to web - match: [ - /eslint\/lib\/(rule-tester|eslint|cli-engine|init)\//u, - /eslint\/lib\/cli\.js$/, - /utils\/dist\/eslint-utils\/rule-tester\/RuleTester\.js$/, - /utils\/dist\/ts-eslint\/CLIEngine\.js$/, - /utils\/dist\/ts-eslint\/RuleTester\.js$/, - /typescript-estree\/dist\/create-program\/getWatchProgramsForProjects\.js/, - /typescript-estree\/dist\/create-program\/createProjectProgram\.js/, - /typescript-estree\/dist\/create-program\/createIsolatedProgram\.js/, - /typescript-estree\/dist\/clear-caches\.js/, - /utils\/dist\/ts-eslint\/ESLint\.js/, - /ajv\/lib\/definition_schema\.js/, - /stream/, - /os/, - /fs/, - ], - target: './src/mock/empty.js', - }, - { - // use window.ts instead of bundling typescript - match: /typescript$/u, - target: './src/mock/typescript.js', - }, - { - // assert for web - match: /^assert$/u, - target: './src/mock/assert.js', - }, - { - // path for web - match: /^path$/u, - target: './src/mock/path.js', - }, - { - // util for web - match: /^util$/u, - target: './src/mock/util.js', - }, - { - // semver simplified, solve issue with circular dependencies - match: /semver$/u, - target: './src/mock/semver.js', - }, - { - match: /^globby$/u, - target: './src/mock/globby.js', - }, - { - match: /^is-glob$/u, - target: './src/mock/is-glob.js', - }, - ], - replace: [ - { - // we do not want dynamic imports - match: /eslint\/lib\/linter\/rules\.js$/u, - test: /require\(this\._rules\[ruleId\]\)/u, - replace: 'null', - }, - { - // esquery has both browser and node versions, we are bundling browser version that has different export - test: /esquery\.parse\(/u, - replace: 'esquery.default.parse(', - }, - { - // esquery has both browser and node versions, we are bundling browser version that has different export - test: /esquery\.matches\(/u, - replace: 'esquery.default.matches(', - }, - { - // replace all process.env.NODE_DEBUG with false - test: /process\.env\.NODE_DEBUG/u, - replace: 'false', - }, - { - // replace all process.env.TIMING with false - test: /process\.env\.TIMING/u, - replace: 'false', - }, - { - // replace all process.env.IGNORE_TEST_WIN32 with true - test: /process\.env\.IGNORE_TEST_WIN32/u, - replace: 'true', - }, - { - // replace all process.cwd with "/" - test: /process\.cwd\(\)/u, - replace: '"/"', - }, - { - // replace all process.emitWarning with console.warn - test: /process.emitWarning/u, - replace: 'console.warn', - }, - ], - }), - resolve({ - browser: true, - exportConditions: ['require'], - preferBuiltins: false, - }), - commonjs(), - json({ preferConst: true }), - ], -}; diff --git a/packages/website-eslint/src/index.js b/packages/website-eslint/src/index.js new file mode 100644 index 000000000000..c00a82466473 --- /dev/null +++ b/packages/website-eslint/src/index.js @@ -0,0 +1,31 @@ +/* +NOTE - this file intentionally uses deep `/use-at-your-own-risk` imports into our packages. +This is so that rollup can properly tree-shake and only include the necessary code. +This saves us having to mock unnecessary things and reduces our bundle size. +*/ +// @ts-check + +import { rules } from '@typescript-eslint/eslint-plugin'; +import { analyze } from '@typescript-eslint/scope-manager'; +import { + astConverter, + getScriptKind, +} from '@typescript-eslint/typescript-estree/use-at-your-own-risk'; +import { visitorKeys } from '@typescript-eslint/visitor-keys'; +import { Linter } from 'eslint'; +import esquery from 'esquery'; + +// don't change exports to export * +exports.getScriptKind = getScriptKind; +exports.analyze = analyze; +exports.visitorKeys = visitorKeys; +exports.astConverter = astConverter; +exports.esquery = esquery; + +exports.createLinter = function () { + const linter = new Linter(); + for (const name in rules) { + linter.defineRule(`@typescript-eslint/${name}`, rules[name]); + } + return linter; +}; diff --git a/packages/website-eslint/src/linter/linter.js b/packages/website-eslint/src/linter/linter.js deleted file mode 100644 index c6953a894316..000000000000 --- a/packages/website-eslint/src/linter/linter.js +++ /dev/null @@ -1,27 +0,0 @@ -/* -NOTE - this file intentionally uses deep `/use-at-your-own-risk` imports into our packages. -This is so that rollup can properly tree-shake and only include the necessary code. -This saves us having to mock unnecessary things and reduces our bundle size. -*/ -// @ts-check - -import 'vs/language/typescript/tsWorker'; - -import rules from '@typescript-eslint/eslint-plugin/use-at-your-own-risk/rules'; -import { Linter } from 'eslint'; -import esquery from 'esquery'; - -export function createLinter() { - const linter = new Linter(); - for (const name in rules) { - linter.defineRule(`@typescript-eslint/${name}`, rules[name]); - } - return linter; -} - -export { analyze } from '@typescript-eslint/scope-manager/use-at-your-own-risk/analyze'; -export { visitorKeys } from '@typescript-eslint/visitor-keys/use-at-your-own-risk/visitor-keys'; -export { astConverter } from '@typescript-eslint/typescript-estree/use-at-your-own-risk/ast-converter'; -export { getScriptKind } from '@typescript-eslint/typescript-estree/use-at-your-own-risk/getScriptKind'; - -export { esquery }; diff --git a/packages/website-eslint/src/mock/empty.js b/packages/website-eslint/src/mock/empty.js index ff8b4c56321a..cb0ff5c3b541 100644 --- a/packages/website-eslint/src/mock/empty.js +++ b/packages/website-eslint/src/mock/empty.js @@ -1 +1 @@ -export default {}; +export {}; diff --git a/packages/website-eslint/src/mock/eslint-rules.js b/packages/website-eslint/src/mock/eslint-rules.js new file mode 100644 index 000000000000..e38eed4cefbd --- /dev/null +++ b/packages/website-eslint/src/mock/eslint-rules.js @@ -0,0 +1 @@ +exports.builtinRules = require('vt:eslint/rules'); diff --git a/packages/website-eslint/src/mock/eslint.js b/packages/website-eslint/src/mock/eslint.js new file mode 100644 index 000000000000..bb112732ff67 --- /dev/null +++ b/packages/website-eslint/src/mock/eslint.js @@ -0,0 +1,7 @@ +class RuleTester {} +class SourceCode {} + +exports.Linter = require('vt:eslint/linter').Linter; + +exports.RuleTester = RuleTester; +exports.SourceCode = SourceCode; diff --git a/packages/website-eslint/src/mock/globby.js b/packages/website-eslint/src/mock/globby.js deleted file mode 100644 index 80c2ae2d9e13..000000000000 --- a/packages/website-eslint/src/mock/globby.js +++ /dev/null @@ -1,4 +0,0 @@ -export function sync() { - // the website config is static and doesn't use glob config - return []; -} diff --git a/packages/website-eslint/src/mock/is-glob.js b/packages/website-eslint/src/mock/is-glob.js deleted file mode 100644 index e35771f6460f..000000000000 --- a/packages/website-eslint/src/mock/is-glob.js +++ /dev/null @@ -1,4 +0,0 @@ -export default function isGlob() { - // the website config is static and doesn't use glob config - return false; -} diff --git a/packages/website-eslint/src/mock/lru-cache.js b/packages/website-eslint/src/mock/lru-cache.js new file mode 100644 index 000000000000..ed112299ab18 --- /dev/null +++ b/packages/website-eslint/src/mock/lru-cache.js @@ -0,0 +1,14 @@ +class LruCache { + constructor() { + this.cache = new Map(); + } + get(name) { + return this.cache.get(name); + } + set(name, value) { + this.cache.set(name, value); + return value; + } +} + +module.exports = LruCache; diff --git a/packages/website-eslint/src/mock/semver.js b/packages/website-eslint/src/mock/semver.js deleted file mode 100644 index ef1ba71db660..000000000000 --- a/packages/website-eslint/src/mock/semver.js +++ /dev/null @@ -1,7 +0,0 @@ -import major from 'semver/functions/major'; -import satisfies from 'semver/functions/satisfies'; - -// just in case someone adds a import * as semver usage -export { satisfies, major }; - -export default { satisfies, major }; diff --git a/packages/website-eslint/src/mock/util.js b/packages/website-eslint/src/mock/util.js index 3e5cd5e0e71b..13e7fa4bada0 100644 --- a/packages/website-eslint/src/mock/util.js +++ b/packages/website-eslint/src/mock/util.js @@ -4,4 +4,4 @@ util.inspect = function (value) { return value; }; -export default util; +module.exports = util; diff --git a/packages/website-eslint/tsconfig.json b/packages/website-eslint/tsconfig.json index fe93b0d695fe..46fcbe96e9bf 100644 --- a/packages/website-eslint/tsconfig.json +++ b/packages/website-eslint/tsconfig.json @@ -8,6 +8,6 @@ "noEmit": true, "skipLibCheck": true }, - "include": ["src", "types", "rollup-plugin"], + "include": ["src", "types", "build.ts"], "references": [] } diff --git a/packages/website/src/components/linter/WebLinter.ts b/packages/website/src/components/linter/WebLinter.ts index e8e2e7e3aa79..e8a92a1003c3 100644 --- a/packages/website/src/components/linter/WebLinter.ts +++ b/packages/website/src/components/linter/WebLinter.ts @@ -2,8 +2,10 @@ import { createVirtualCompilerHost } from '@site/src/components/linter/CompilerH import { parseSettings } from '@site/src/components/linter/config'; import type { analyze } from '@typescript-eslint/scope-manager'; import type { ParserOptions } from '@typescript-eslint/types'; -import type { astConverter } from '@typescript-eslint/typescript-estree/use-at-your-own-risk/ast-converter'; -import type { getScriptKind } from '@typescript-eslint/typescript-estree/use-at-your-own-risk/getScriptKind'; +import type { + astConverter, + getScriptKind, +} from '@typescript-eslint/typescript-estree/use-at-your-own-risk'; import type { TSESLint, TSESTree } from '@typescript-eslint/utils'; import type esquery from 'esquery'; import type { diff --git a/packages/website/src/components/linter/config.ts b/packages/website/src/components/linter/config.ts index e528d202e643..93466f9451ab 100644 --- a/packages/website/src/components/linter/config.ts +++ b/packages/website/src/components/linter/config.ts @@ -1,4 +1,4 @@ -import type { ParseSettings } from '@typescript-eslint/typescript-estree/use-at-your-own-risk/parseSettings'; +import type { ParseSettings } from '@typescript-eslint/typescript-estree/use-at-your-own-risk'; export const parseSettings: ParseSettings = { allowInvalidAST: false, diff --git a/yarn.lock b/yarn.lock index 61f33a76d20f..33b1003736e3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2505,7 +2505,7 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.13": +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.14" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== @@ -3103,25 +3103,6 @@ "@babel/helper-module-imports" "^7.10.4" "@rollup/pluginutils" "^3.1.0" -"@rollup/plugin-commonjs@^23.0.0": - version "23.0.7" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-23.0.7.tgz#7d26d879caa54283086de1974b66f512ef60abdc" - integrity sha512-hsSD5Qzyuat/swzrExGG5l7EuIlPhwTsT7KwKbSCQzIcJWjRxiimi/0tyMYY2bByitNb3i1p+6JWEDGa0NvT0Q== - dependencies: - "@rollup/pluginutils" "^5.0.1" - commondir "^1.0.1" - estree-walker "^2.0.2" - glob "^8.0.3" - is-reference "1.2.1" - magic-string "^0.27.0" - -"@rollup/plugin-json@^5.0.0": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-5.0.2.tgz#d7dbbac62ff74064876b3e5d0d863cb3ad1e7cdb" - integrity sha512-D1CoOT2wPvadWLhVcmpkDnesTzjhNIQRWLsc3fA49IFOP2Y84cFOOJ+nKGYedvXHKUsPeq07HR4hXpBBr+CHlA== - dependencies: - "@rollup/pluginutils" "^5.0.1" - "@rollup/plugin-node-resolve@^11.2.1": version "11.2.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60" @@ -3134,18 +3115,6 @@ is-module "^1.0.0" resolve "^1.19.0" -"@rollup/plugin-node-resolve@^15.0.0": - version "15.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz#72be449b8e06f6367168d5b3cd5e2802e0248971" - integrity sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg== - dependencies: - "@rollup/pluginutils" "^5.0.1" - "@types/resolve" "1.20.2" - deepmerge "^4.2.2" - is-builtin-module "^3.2.0" - is-module "^1.0.0" - resolve "^1.22.1" - "@rollup/plugin-replace@^2.4.1": version "2.4.2" resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a" @@ -3154,15 +3123,6 @@ "@rollup/pluginutils" "^3.1.0" magic-string "^0.25.7" -"@rollup/plugin-terser@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.0.tgz#4c76249ad337f3eb04ab409332f23717af2c1fbf" - integrity sha512-Ipcf3LPNerey1q9ZMjiaWHlNPEHNU/B5/uh9zXLltfEQ1lVSLLeZSgAtTPWGyw8Ip1guOeq+mDtdOlEj/wNxQw== - dependencies: - serialize-javascript "^6.0.0" - smob "^0.0.6" - terser "^5.15.1" - "@rollup/pluginutils@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" @@ -3172,15 +3132,6 @@ estree-walker "^1.0.1" picomatch "^2.2.2" -"@rollup/pluginutils@^5.0.0", "@rollup/pluginutils@^5.0.1": - version "5.0.2" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.0.2.tgz#012b8f53c71e4f6f9cb317e311df1404f56e7a33" - integrity sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA== - dependencies: - "@types/estree" "^1.0.0" - estree-walker "^2.0.2" - picomatch "^2.3.1" - "@rushstack/node-core-library@3.55.2": version "3.55.2" resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.55.2.tgz#d951470bac98171de13a8a351d4537c63fbfd0b6" @@ -3611,10 +3562,6 @@ version "0.0.0" uid "" -"@types/estree@*": - version "0.0.0" - uid "" - "@types/estree@0.0.39": version "0.0.0" uid "" @@ -3623,10 +3570,6 @@ version "0.0.0" uid "" -"@types/estree@^1.0.0": - version "0.0.0" - uid "" - "@types/estree@link:./tools/dummypkg": version "0.0.0" uid "" @@ -3889,11 +3832,6 @@ dependencies: "@types/node" "*" -"@types/resolve@1.20.2": - version "1.20.2" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" - integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== - "@types/retry@^0.12.0": version "0.12.1" resolved "https://registry.yarnpkg.com/@types/retry/-/retry-0.12.1.tgz#d8f1c0d0dc23afad6dc16a9e993a0865774b4065" @@ -6670,7 +6608,7 @@ es6-weak-map@^2.0.3: es6-iterator "^2.0.3" es6-symbol "^3.1.1" -esbuild@~0.17.6: +esbuild@~0.17.12, esbuild@~0.17.6: version "0.17.12" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.12.tgz#2ad7523bf1bc01881e9d904bc04e693bd3bdcf2f" integrity sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ== @@ -6994,11 +6932,6 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -estree-walker@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" - integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== - esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -7728,7 +7661,7 @@ glob-to-regexp@^0.4.1: resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@*, glob@^8.0.1, glob@^8.0.3: +glob@*, glob@^8.0.1: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== @@ -8745,13 +8678,6 @@ is-promise@^2.2.2: resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== -is-reference@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" - integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== - dependencies: - "@types/estree" "*" - is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -9972,20 +9898,13 @@ lz-string@^1.5.0: resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== -magic-string@0.25.9, magic-string@^0.25.0, magic-string@^0.25.7: +magic-string@^0.25.0, magic-string@^0.25.7: version "0.25.9" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== dependencies: sourcemap-codec "^1.4.8" -magic-string@^0.27.0: - version "0.27.0" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.27.0.tgz#e4a3413b4bab6d98d2becffd48b4a257effdbbf3" - integrity sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA== - dependencies: - "@jridgewell/sourcemap-codec" "^1.4.13" - make-dir@*, make-dir@3.1.0, make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -12603,7 +12522,7 @@ rollup-plugin-terser@^7.0.0: serialize-javascript "^4.0.0" terser "^5.0.0" -rollup@^2.43.1, rollup@^2.75.4: +rollup@^2.43.1: version "2.79.1" resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== @@ -13016,11 +12935,6 @@ smart-buffer@^4.2.0: resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -smob@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/smob/-/smob-0.0.6.tgz#09b268fea916158a2781c152044c6155adbb8aa1" - integrity sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw== - sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" @@ -13606,7 +13520,7 @@ terser-webpack-plugin@^5.1.3, terser-webpack-plugin@^5.3.3: serialize-javascript "^6.0.0" terser "^5.7.2" -terser@^5.0.0, terser@^5.10.0, terser@^5.15.1, terser@^5.7.2: +terser@^5.0.0, terser@^5.10.0, terser@^5.7.2: version "5.16.5" resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.5.tgz#1c285ca0655f467f92af1bbab46ab72d1cb08e5a" integrity sha512-qcwfg4+RZa3YvlFh0qjifnzBHjKGNbtDo9yivMqMFDy9Q6FSaQWSB/j1xKhsoUFJIqDOM3TsN6D5xbrMrFcHbg==